Browse Source

checkreport

Rick.Lan 1 month ago
parent
commit
0ca749aebb

+ 1 - 0
controllers/api_base_controller.go View File

51
 	beego.Router("/xcx/api/checkrecord/getcheckrecorditembyid", &CheckRecordApiController{}, "Get:GetCheckRecordItemById")
51
 	beego.Router("/xcx/api/checkrecord/getcheckrecorditembyid", &CheckRecordApiController{}, "Get:GetCheckRecordItemById")
52
 	beego.Router("/xcx/api/checkrecord/getcheckrecordlist", &CheckRecordApiController{}, "Get:GetCheckRecordList")
52
 	beego.Router("/xcx/api/checkrecord/getcheckrecordlist", &CheckRecordApiController{}, "Get:GetCheckRecordList")
53
 	beego.Router("/xcx/api/checkrecord/qrcodecheckrecord", &CheckRecordApiController{}, "Get:QrCodeCheckRecord")
53
 	beego.Router("/xcx/api/checkrecord/qrcodecheckrecord", &CheckRecordApiController{}, "Get:QrCodeCheckRecord")
54
+	beego.Router("/xcx/api/checkrecord/getcheckrecorditemreport", &CheckRecordApiController{}, "Get:GetCheckRecordItemReport")
54
 
55
 
55
 }
56
 }
56
 
57
 

+ 19 - 6
controllers/check_record_api_controller.go View File

42
 
42
 
43
 }
43
 }
44
 
44
 
45
-/**********
46
 // @Title GetCheckRecordItemReport
45
 // @Title GetCheckRecordItemReport
47
 // @Description 获取检测报告
46
 // @Description 获取检测报告
48
-// @Param   itemid query int true "项目ID"
47
+// @Param   itemnum query int true "项目编号"
49
 // @Param   daymun query int true "最近几天"
48
 // @Param   daymun query int true "最近几天"
50
-// @Success 200 {object} models.AppCheckRecordItemReportVO success
49
+// @Success 200 {array} models.AppCheckRecordItemReportVO success
51
 // @Failure 500 error
50
 // @Failure 500 error
52
 // @Security token
51
 // @Security token
53
 // @router /getcheckrecorditemreport [get]
52
 // @router /getcheckrecorditemreport [get]
54
 func (c *CheckRecordApiController) GetCheckRecordItemReport() {
53
 func (c *CheckRecordApiController) GetCheckRecordItemReport() {
54
+	itemNum, err := c.GetInt("itemnum")
55
+	if err != nil {
56
+		c.ServeDynamicFailJsonSend(err.Error())
57
+		return
58
+	}
59
+	dataNum, _ := c.GetInt("dataNum", 7)
55
 
60
 
56
-}**/
61
+	report, err := service.NewCheckRecordService().GetCheckRecordItemReport(dataNum, itemNum, c.CurrentUser.Id)
62
+	if err != nil {
63
+		c.ServeDynamicFailJsonSend(err.Error())
64
+		return
65
+	}
66
+
67
+	c.ServeSuccessJSON(report)
68
+
69
+}
57
 
70
 
58
 // @Title GetCheckRecordItemById
71
 // @Title GetCheckRecordItemById
59
 // @Description 通过检测ID查看检测结果
72
 // @Description 通过检测ID查看检测结果
92
 		c.ServeDynamicFailJsonSend(fmt.Sprintf("analyzeCheckRecord err:%v", err))
105
 		c.ServeDynamicFailJsonSend(fmt.Sprintf("analyzeCheckRecord err:%v", err))
93
 		return
106
 		return
94
 	}
107
 	}
95
-	checkRecordItem.CheckDate = record.Ctime
108
+	checkRecordItem.CheckDate = models.Time(record.Ctime)
96
 	checkRecordItem.UserID = int64(record.UserId)
109
 	checkRecordItem.UserID = int64(record.UserId)
97
 	checkRecordItem.Bind = checkRecordItem.UserID > 0
110
 	checkRecordItem.Bind = checkRecordItem.UserID > 0
98
 	checkRecordItem.CheckRecordID = record.Id
111
 	checkRecordItem.CheckRecordID = record.Id
291
 			return
304
 			return
292
 		}
305
 		}
293
 		checkRecordItem.Status = status
306
 		checkRecordItem.Status = status
294
-		checkRecordItem.CheckDate = record.Ctime
307
+		checkRecordItem.CheckDate = models.Time(record.Ctime)
295
 		checkRecordItem.UserID = int64(record.UserId)
308
 		checkRecordItem.UserID = int64(record.UserId)
296
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
309
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
297
 		checkRecordItem.CheckRecordID = record.Id
310
 		checkRecordItem.CheckRecordID = record.Id

+ 1 - 1
controllers/message_api_controllor.go View File

165
 	}
165
 	}
166
 
166
 
167
 	cri.CheckValue = scope.Value
167
 	cri.CheckValue = scope.Value
168
-	if scope.Type == 1 {
168
+	if scope.Type != 1 {
169
 		*alerts = append(*alerts, strconv.Itoa(n))
169
 		*alerts = append(*alerts, strconv.Itoa(n))
170
 	}
170
 	}
171
 	return crs.CreateCheckRecordItem(&cri)
171
 	return crs.CreateCheckRecordItem(&cri)

+ 1 - 1
models/httpmodels.go View File

213
 	AlertCount    int                           `json:"alert_count" description:"异常数量"`
213
 	AlertCount    int                           `json:"alert_count" description:"异常数量"`
214
 	NormalCount   int                           `json:"normal_count" description:"正常数量"`
214
 	NormalCount   int                           `json:"normal_count" description:"正常数量"`
215
 	Describe      string                        `json:"describe" description:"描述"`
215
 	Describe      string                        `json:"describe" description:"描述"`
216
-	CheckDate     time.Time                     `json:"check_date" description:"检测日期"`
216
+	CheckDate     Time                          `json:"check_date" description:"检测日期"`
217
 	CheckRecordID int64                         `json:"check_record_id" description:"检测记录id"`
217
 	CheckRecordID int64                         `json:"check_record_id" description:"检测记录id"`
218
 	UserID        int64                         `json:"user_id" description:"绑定用户id 默认自己"`
218
 	UserID        int64                         `json:"user_id" description:"绑定用户id 默认自己"`
219
 	AlertGrade    int                           `json:"alert_grade" description:"风险等级 1 低  2 中 3 高"`
219
 	AlertGrade    int                           `json:"alert_grade" description:"风险等级 1 低  2 中 3 高"`

+ 16 - 0
service/checkitemservice.go View File

28
 	err := db.Order("check_item_number").Find(&items).Error
28
 	err := db.Order("check_item_number").Find(&items).Error
29
 	return items, err
29
 	return items, err
30
 }
30
 }
31
+
32
+func (s *CheckItemService) GetCheckItemById(id int64) (item models.CheckItem, err error) {
33
+	err = s.rdb.Where("id = ?", id).First(&item).Error
34
+	if err == gorm.ErrRecordNotFound {
35
+		err = nil
36
+	}
37
+	return
38
+}
39
+
40
+func (s *CheckItemService) GetCheckItemByNumber(number int, lang, deviceType string) (item models.CheckItem, err error) {
41
+	err = s.rdb.Where("check_item_number = ? and language= ? and device_type= ? ", number, lang, deviceType).First(&item).Error
42
+	if err == gorm.ErrRecordNotFound {
43
+		err = nil
44
+	}
45
+	return
46
+}

+ 44 - 1
service/checkrecordservice.go View File

1
 package service
1
 package service
2
 
2
 
3
 import (
3
 import (
4
+	"encoding/json"
5
+	"fmt"
4
 	"strconv"
6
 	"strconv"
5
 	"strings"
7
 	"strings"
6
 	"sws_xcx/models"
8
 	"sws_xcx/models"
34
 func (s *CheckRecordService) GetCheckRecordList(pageNum, pageSize int, userid uint64) (vos []models.AppCheckRecordVO, total int, err error) {
36
 func (s *CheckRecordService) GetCheckRecordList(pageNum, pageSize int, userid uint64) (vos []models.AppCheckRecordVO, total int, err error) {
35
 	offset := (pageNum - 1) * pageSize
37
 	offset := (pageNum - 1) * pageSize
36
 	records := make([]*models.CheckRecord, pageSize)
38
 	records := make([]*models.CheckRecord, pageSize)
37
-	err = s.rdb.Model(&models.CheckRecord{}).Where("user_id= ? and delete_flag = ?", 0).Count(&total).Order("id desc").Offset(offset).Limit(pageSize).Find(&records).Error
39
+	err = s.rdb.Model(&models.CheckRecord{}).Where("user_id= ? and delete_flag = ?", userid, 0).Count(&total).Order("id desc").Offset(offset).Limit(pageSize).Find(&records).Error
38
 	if len(records) > 0 {
40
 	if len(records) > 0 {
39
 		is := NewCheckItemService()
41
 		is := NewCheckItemService()
40
 		cnItems, err1 := is.GetCheckItems("cn", "1")
42
 		cnItems, err1 := is.GetCheckItems("cn", "1")
83
 	return
85
 	return
84
 }
86
 }
85
 
87
 
88
+func (s *CheckRecordService) GetCheckRecordItemReport(dataNum, itemNum int, userid uint64) (reports []*models.AppCheckRecordItemReportVO, err error) {
89
+
90
+	item, err := NewCheckItemService().GetCheckItemByNumber(itemNum, "cn", "1")
91
+	if err != nil {
92
+		return
93
+	}
94
+	if item.Id == 0 {
95
+		err = fmt.Errorf("系统无此检查项目 num:%v", itemNum)
96
+		return
97
+	}
98
+
99
+	var items []*models.CheckRecordItem
100
+
101
+	err = s.rdb.Raw("select i.* from  check_record_item as i inner join check_record as c on i.check_id=c.id where i.check_item_id = ? and c.user_id = ? and c.delete_flag=0", item.Id, userid).Order("id desc").Limit(dataNum).Scan(&items).Error
102
+
103
+	if len(items) > 0 {
104
+		var scopes []*models.CheckItemScopeVO
105
+		json.Unmarshal([]byte(item.ScopeList), &scopes)
106
+		reports = make([]*models.AppCheckRecordItemReportVO, len(items))
107
+		for i, ci := range items {
108
+			report := models.AppCheckRecordItemReportVO{}
109
+			report.ID = item.CheckItemNumber
110
+			report.CheckValueIndex = ci.CheckValueIndex
111
+			report.Unit = item.Unit
112
+			report.Date = models.Time(ci.Ctime)
113
+			for _, scope := range scopes {
114
+				if scope.Index == ci.CheckValueIndex {
115
+					if scope.Num != "" {
116
+						report.Value = scope.Num
117
+					} else {
118
+						report.Value = scope.Value
119
+					}
120
+				}
121
+			}
122
+			reports[i] = &report
123
+		}
124
+	}
125
+
126
+	return
127
+}
128
+
86
 func (s *CheckRecordService) CreateCheckRecord(checkRecord *models.CheckRecord) error {
129
 func (s *CheckRecordService) CreateCheckRecord(checkRecord *models.CheckRecord) error {
87
 	return s.wdb.Model(checkRecord).Create(checkRecord).Error
130
 	return s.wdb.Model(checkRecord).Create(checkRecord).Error
88
 }
131
 }

+ 3 - 3
service/deviceservice.go View File

22
 func (s *DeviceService) GetDeviceInfo(id int) (models.Device, error) {
22
 func (s *DeviceService) GetDeviceInfo(id int) (models.Device, error) {
23
 	var device models.Device
23
 	var device models.Device
24
 	err := s.rdb.Model(&device).First(&device, id).Error
24
 	err := s.rdb.Model(&device).First(&device, id).Error
25
-	if err == nil || err == gorm.ErrRecordNotFound {
25
+	if err == gorm.ErrRecordNotFound {
26
 		err = nil
26
 		err = nil
27
 	}
27
 	}
28
 	return device, err
28
 	return device, err
38
 // 		db = db.Where("user_id = ?", userId)
38
 // 		db = db.Where("user_id = ?", userId)
39
 // 	}
39
 // 	}
40
 // 	err := db.First(&device_relate).Error
40
 // 	err := db.First(&device_relate).Error
41
-// 	if err == nil || err == gorm.ErrRecordNotFound {
41
+// 	if err == gorm.ErrRecordNotFound {
42
 // 		err = nil
42
 // 		err = nil
43
 // 	}
43
 // 	}
44
 // 	return device_relate, err
44
 // 	return device_relate, err
47
 func (s *DeviceService) GetDeviceByNo(serialno string) (models.Device, error) {
47
 func (s *DeviceService) GetDeviceByNo(serialno string) (models.Device, error) {
48
 	var device models.Device
48
 	var device models.Device
49
 	err := s.rdb.Model(&device).Where("serialno = ?", serialno).First(&device).Error
49
 	err := s.rdb.Model(&device).Where("serialno = ?", serialno).First(&device).Error
50
-	if err == nil || err == gorm.ErrRecordNotFound {
50
+	if err == gorm.ErrRecordNotFound {
51
 		err = nil
51
 		err = nil
52
 	}
52
 	}
53
 	return device, err
53
 	return device, err

+ 2 - 2
service/userhealthprofileservice.go View File

25
 func (s *HealthProfileService) GetUserHealthProfileByUserId(userId uint64) (*models.UserHealthProfile, error) {
25
 func (s *HealthProfileService) GetUserHealthProfileByUserId(userId uint64) (*models.UserHealthProfile, error) {
26
 	p := &models.UserHealthProfile{}
26
 	p := &models.UserHealthProfile{}
27
 	err := s.rdb.Find(p, "user_id = ?", userId).Error
27
 	err := s.rdb.Find(p, "user_id = ?", userId).Error
28
-	if err == nil || err == gorm.ErrRecordNotFound {
28
+	if err == gorm.ErrRecordNotFound {
29
 		err = nil
29
 		err = nil
30
 	}
30
 	}
31
 	return p, err
31
 	return p, err
34
 func (s *HealthProfileService) Get(id uint64) (models.UserHealthProfile, error) {
34
 func (s *HealthProfileService) Get(id uint64) (models.UserHealthProfile, error) {
35
 	p := &models.UserHealthProfile{}
35
 	p := &models.UserHealthProfile{}
36
 	err := s.rdb.First(p, id).Error
36
 	err := s.rdb.First(p, id).Error
37
-	if err == nil || err == gorm.ErrRecordNotFound {
37
+	if err == gorm.ErrRecordNotFound {
38
 		err = nil
38
 		err = nil
39
 	}
39
 	}
40
 	return *p, err
40
 	return *p, err

+ 78 - 0
swagger/swagger.json View File

46
                 ]
46
                 ]
47
             }
47
             }
48
         },
48
         },
49
+        "/api/checkrecord/getcheckrecorditemreport": {
50
+            "get": {
51
+                "tags": [
52
+                    "api/checkrecord"
53
+                ],
54
+                "description": "获取检测报告\n\u003cbr\u003e",
55
+                "operationId": "CheckRecordApiController.GetCheckRecordItemReport",
56
+                "parameters": [
57
+                    {
58
+                        "in": "query",
59
+                        "name": "itemnum",
60
+                        "description": "项目编号",
61
+                        "required": true,
62
+                        "type": "integer",
63
+                        "format": "int64"
64
+                    },
65
+                    {
66
+                        "in": "query",
67
+                        "name": "daymun",
68
+                        "description": "最近几天",
69
+                        "required": true,
70
+                        "type": "integer",
71
+                        "format": "int64"
72
+                    }
73
+                ],
74
+                "responses": {
75
+                    "200": {
76
+                        "description": "success",
77
+                        "schema": {
78
+                            "type": "array",
79
+                            "items": {
80
+                                "$ref": "#/definitions/models.AppCheckRecordItemReportVO"
81
+                            }
82
+                        }
83
+                    },
84
+                    "500": {
85
+                        "description": "error"
86
+                    }
87
+                },
88
+                "security": [
89
+                    {
90
+                        "token": []
91
+                    }
92
+                ]
93
+            }
94
+        },
49
         "/api/checkrecord/getcheckrecordlist": {
95
         "/api/checkrecord/getcheckrecordlist": {
50
             "get": {
96
             "get": {
51
                 "tags": [
97
                 "tags": [
611
                 }
657
                 }
612
             }
658
             }
613
         },
659
         },
660
+        "models.AppCheckRecordItemReportVO": {
661
+            "title": "AppCheckRecordItemReportVO",
662
+            "type": "object",
663
+            "properties": {
664
+                "check_value_index": {
665
+                    "description": "检测值下标",
666
+                    "type": "integer",
667
+                    "format": "int64"
668
+                },
669
+                "date": {
670
+                    "$ref": "#/definitions/models.Time",
671
+                    "description": "检测时间"
672
+                },
673
+                "describe": {
674
+                    "description": "描述",
675
+                    "type": "string"
676
+                },
677
+                "id": {
678
+                    "description": "id",
679
+                    "type": "integer",
680
+                    "format": "int64"
681
+                },
682
+                "unit": {
683
+                    "description": "单位",
684
+                    "type": "string"
685
+                },
686
+                "value": {
687
+                    "description": "检测值",
688
+                    "type": "string"
689
+                }
690
+            }
691
+        },
614
         "models.AppCheckRecordItemVO": {
692
         "models.AppCheckRecordItemVO": {
615
             "title": "AppCheckRecordItemVO",
693
             "title": "AppCheckRecordItemVO",
616
             "type": "object",
694
             "type": "object",

+ 56 - 0
swagger/swagger.yml View File

32
           description: error
32
           description: error
33
       security:
33
       security:
34
       - token: []
34
       - token: []
35
+  /api/checkrecord/getcheckrecorditemreport:
36
+    get:
37
+      tags:
38
+      - api/checkrecord
39
+      description: |-
40
+        获取检测报告
41
+        <br>
42
+      operationId: CheckRecordApiController.GetCheckRecordItemReport
43
+      parameters:
44
+      - in: query
45
+        name: itemnum
46
+        description: 项目编号
47
+        required: true
48
+        type: integer
49
+        format: int64
50
+      - in: query
51
+        name: daymun
52
+        description: 最近几天
53
+        required: true
54
+        type: integer
55
+        format: int64
56
+      responses:
57
+        "200":
58
+          description: success
59
+          schema:
60
+            type: array
61
+            items:
62
+              $ref: '#/definitions/models.AppCheckRecordItemReportVO'
63
+        "500":
64
+          description: error
65
+      security:
66
+      - token: []
35
   /api/checkrecord/getcheckrecordlist:
67
   /api/checkrecord/getcheckrecordlist:
36
     get:
68
     get:
37
       tags:
69
       tags:
425
       value_index:
457
       value_index:
426
         description: 检测值索引
458
         description: 检测值索引
427
         type: string
459
         type: string
460
+  models.AppCheckRecordItemReportVO:
461
+    title: AppCheckRecordItemReportVO
462
+    type: object
463
+    properties:
464
+      check_value_index:
465
+        description: 检测值下标
466
+        type: integer
467
+        format: int64
468
+      date:
469
+        $ref: '#/definitions/models.Time'
470
+        description: 检测时间
471
+      describe:
472
+        description: 描述
473
+        type: string
474
+      id:
475
+        description: id
476
+        type: integer
477
+        format: int64
478
+      unit:
479
+        description: 单位
480
+        type: string
481
+      value:
482
+        description: 检测值
483
+        type: string
428
   models.AppCheckRecordItemVO:
484
   models.AppCheckRecordItemVO:
429
     title: AppCheckRecordItemVO
485
     title: AppCheckRecordItemVO
430
     type: object
486
     type: object

+ 1 - 1
tests/default_test.go View File

404
 			return
404
 			return
405
 		}
405
 		}
406
 		checkRecordItem.Status = status
406
 		checkRecordItem.Status = status
407
-		checkRecordItem.CheckDate = record.Ctime
407
+		checkRecordItem.CheckDate = models.Time(record.Ctime)
408
 		checkRecordItem.UserID = int64(record.UserId)
408
 		checkRecordItem.UserID = int64(record.UserId)
409
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
409
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
410
 		checkRecordItem.CheckRecordID = record.Id
410
 		checkRecordItem.CheckRecordID = record.Id