Rick.Lan 1 mēnesi atpakaļ
vecāks
revīzija
0ca749aebb

+ 1 - 0
controllers/api_base_controller.go Parādīt failu

@@ -51,6 +51,7 @@ func ApiControllersRegisterRouters() {
51 51
 	beego.Router("/xcx/api/checkrecord/getcheckrecorditembyid", &CheckRecordApiController{}, "Get:GetCheckRecordItemById")
52 52
 	beego.Router("/xcx/api/checkrecord/getcheckrecordlist", &CheckRecordApiController{}, "Get:GetCheckRecordList")
53 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 Parādīt failu

@@ -42,18 +42,31 @@ func (c *CheckRecordApiController) GetCheckRecordList() {
42 42
 
43 43
 }
44 44
 
45
-/**********
46 45
 // @Title GetCheckRecordItemReport
47 46
 // @Description 获取检测报告
48
-// @Param   itemid query int true "项目ID"
47
+// @Param   itemnum query int true "项目编号"
49 48
 // @Param   daymun query int true "最近几天"
50
-// @Success 200 {object} models.AppCheckRecordItemReportVO success
49
+// @Success 200 {array} models.AppCheckRecordItemReportVO success
51 50
 // @Failure 500 error
52 51
 // @Security token
53 52
 // @router /getcheckrecorditemreport [get]
54 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 71
 // @Title GetCheckRecordItemById
59 72
 // @Description 通过检测ID查看检测结果
@@ -92,7 +105,7 @@ func (c *CheckRecordApiController) GetCheckRecordItemById() {
92 105
 		c.ServeDynamicFailJsonSend(fmt.Sprintf("analyzeCheckRecord err:%v", err))
93 106
 		return
94 107
 	}
95
-	checkRecordItem.CheckDate = record.Ctime
108
+	checkRecordItem.CheckDate = models.Time(record.Ctime)
96 109
 	checkRecordItem.UserID = int64(record.UserId)
97 110
 	checkRecordItem.Bind = checkRecordItem.UserID > 0
98 111
 	checkRecordItem.CheckRecordID = record.Id
@@ -291,7 +304,7 @@ func (c *CheckRecordApiController) QrCodeCheckRecord() {
291 304
 			return
292 305
 		}
293 306
 		checkRecordItem.Status = status
294
-		checkRecordItem.CheckDate = record.Ctime
307
+		checkRecordItem.CheckDate = models.Time(record.Ctime)
295 308
 		checkRecordItem.UserID = int64(record.UserId)
296 309
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
297 310
 		checkRecordItem.CheckRecordID = record.Id

+ 1 - 1
controllers/message_api_controllor.go Parādīt failu

@@ -165,7 +165,7 @@ func createCheckRecordItem(items []*models.CheckItem, crId int64, alerts *[]stri
165 165
 	}
166 166
 
167 167
 	cri.CheckValue = scope.Value
168
-	if scope.Type == 1 {
168
+	if scope.Type != 1 {
169 169
 		*alerts = append(*alerts, strconv.Itoa(n))
170 170
 	}
171 171
 	return crs.CreateCheckRecordItem(&cri)

+ 1 - 1
models/httpmodels.go Parādīt failu

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

+ 16 - 0
service/checkitemservice.go Parādīt failu

@@ -28,3 +28,19 @@ func (s *CheckItemService) GetCheckItems(lang, t string) ([]*models.CheckItem, e
28 28
 	err := db.Order("check_item_number").Find(&items).Error
29 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 Parādīt failu

@@ -1,6 +1,8 @@
1 1
 package service
2 2
 
3 3
 import (
4
+	"encoding/json"
5
+	"fmt"
4 6
 	"strconv"
5 7
 	"strings"
6 8
 	"sws_xcx/models"
@@ -34,7 +36,7 @@ func (s *CheckRecordService) GetCheckRecordByAcc(deviceId uint64, acc int) (reco
34 36
 func (s *CheckRecordService) GetCheckRecordList(pageNum, pageSize int, userid uint64) (vos []models.AppCheckRecordVO, total int, err error) {
35 37
 	offset := (pageNum - 1) * pageSize
36 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 40
 	if len(records) > 0 {
39 41
 		is := NewCheckItemService()
40 42
 		cnItems, err1 := is.GetCheckItems("cn", "1")
@@ -83,6 +85,47 @@ func (s *CheckRecordService) GetCheckRecordList(pageNum, pageSize int, userid ui
83 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 129
 func (s *CheckRecordService) CreateCheckRecord(checkRecord *models.CheckRecord) error {
87 130
 	return s.wdb.Model(checkRecord).Create(checkRecord).Error
88 131
 }

+ 3 - 3
service/deviceservice.go Parādīt failu

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

+ 2 - 2
service/userhealthprofileservice.go Parādīt failu

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

+ 78 - 0
swagger/swagger.json Parādīt failu

@@ -46,6 +46,52 @@
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 95
         "/api/checkrecord/getcheckrecordlist": {
50 96
             "get": {
51 97
                 "tags": [
@@ -611,6 +657,38 @@
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 692
         "models.AppCheckRecordItemVO": {
615 693
             "title": "AppCheckRecordItemVO",
616 694
             "type": "object",

+ 56 - 0
swagger/swagger.yml Parādīt failu

@@ -32,6 +32,38 @@ paths:
32 32
           description: error
33 33
       security:
34 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 67
   /api/checkrecord/getcheckrecordlist:
36 68
     get:
37 69
       tags:
@@ -425,6 +457,30 @@ definitions:
425 457
       value_index:
426 458
         description: 检测值索引
427 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 484
   models.AppCheckRecordItemVO:
429 485
     title: AppCheckRecordItemVO
430 486
     type: object

+ 1 - 1
tests/default_test.go Parādīt failu

@@ -404,7 +404,7 @@ func TestHandleQrCode(t *testing.T) {
404 404
 			return
405 405
 		}
406 406
 		checkRecordItem.Status = status
407
-		checkRecordItem.CheckDate = record.Ctime
407
+		checkRecordItem.CheckDate = models.Time(record.Ctime)
408 408
 		checkRecordItem.UserID = int64(record.UserId)
409 409
 		checkRecordItem.Bind = checkRecordItem.UserID > 0
410 410
 		checkRecordItem.CheckRecordID = record.Id