Browse Source

患者检验检查统计开发

XMLWAN 4 years ago
parent
commit
0ced66876d

+ 1 - 1
controllers/data_api_controller.go View File

228
 	//	dataconfig.Order = 0
228
 	//	dataconfig.Order = 0
229
 	//}
229
 	//}
230
 	configOrgId := int64(dataBody["org_id"].(float64))
230
 	configOrgId := int64(dataBody["org_id"].(float64))
231
-
231
+	fmt.Println("configOrgId=========================", configOrgId)
232
 	// 验证关键字段的值是否重复
232
 	// 验证关键字段的值是否重复
233
 	// configId := int64(dataBody["id"].(float64))
233
 	// configId := int64(dataBody["id"].(float64))
234
 	// thisConfig,_:=service.FindConfigByNameForUpdate(dataconfig.Module, dataconfig.Name,dataconfig.ParentId,dataconfig.OrgId,configId)
234
 	// thisConfig,_:=service.FindConfigByNameForUpdate(dataconfig.Module, dataconfig.Name,dataconfig.ParentId,dataconfig.OrgId,configId)

+ 51 - 13
controllers/new_mobile_api_controllers/common_api_controller.go View File

215
 		Sort:            sort,
215
 		Sort:            sort,
216
 		RangeValue:      rangvalue,
216
 		RangeValue:      rangvalue,
217
 		RangeType:       rangtype,
217
 		RangeType:       rangtype,
218
+		Status:          1,
219
+		UserOrgId:       orgId,
220
+		CreatedTime:     time.Now().Unix(),
221
+		UpdatedTime:     time.Now().Unix(),
218
 	}
222
 	}
219
 	err = service.UpdarteConfiguration(&standard, id)
223
 	err = service.UpdarteConfiguration(&standard, id)
220
 	if err != nil {
224
 	if err != nil {
224
 	this.ServeSuccessJSON(map[string]interface{}{
228
 	this.ServeSuccessJSON(map[string]interface{}{
225
 		"standard": standard,
229
 		"standard": standard,
226
 	})
230
 	})
231
+
227
 }
232
 }
228
 
233
 
229
 func (this *CommonApiController) DeleteConfiguration() {
234
 func (this *CommonApiController) DeleteConfiguration() {
950
 	startDate, parseDateErr := utils.ParseTimeStringToTime("2006-01-02", startime)
955
 	startDate, parseDateErr := utils.ParseTimeStringToTime("2006-01-02", startime)
951
 	fmt.Println("parseDateErr", parseDateErr)
956
 	fmt.Println("parseDateErr", parseDateErr)
952
 	statime := startDate.Unix()
957
 	statime := startDate.Unix()
953
-	fmt.Println("开始时间=====================================", statime)
958
+	fmt.Println("开始时间", statime)
954
 	endtime := this.GetString("endtime")
959
 	endtime := this.GetString("endtime")
955
 	fmt.Println("endtime", endtime)
960
 	fmt.Println("endtime", endtime)
956
 	endTimeYMDHmsStr := endtime + " 23:59:59"
961
 	endTimeYMDHmsStr := endtime + " 23:59:59"
1054
 		})
1059
 		})
1055
 	}
1060
 	}
1056
 
1061
 
1062
+	if rangetype == 2 {
1063
+		list, err := service.GetProjectListOne(orgid, lapseto, modetype, statime, entime, firstQuarterStartUnix, fisrtQuarterEndStrUnix, secondeQuarterStartUnix, secondQuarterEndStrUnix, threeQuarterStartUnix, threeQuarterEndStrUnix, fourQuarterStartUnix, fourQuarterEndStrUnix)
1064
+		//统计达标个数
1065
+		standList, err := service.GetProjectStandListOne(orgid, lapseto, modetype, statime, entime, firstQuarterStartUnix, fisrtQuarterEndStrUnix, secondeQuarterStartUnix, secondQuarterEndStrUnix, threeQuarterStartUnix, threeQuarterEndStrUnix, fourQuarterStartUnix, fourQuarterEndStrUnix)
1066
+		if err != nil {
1067
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1068
+			return
1069
+		}
1070
+
1071
+		this.ServeSuccessJSON(map[string]interface{}{
1072
+			"list":      list,
1073
+			"standList": standList,
1074
+		})
1075
+	}
1057
 }
1076
 }
1058
 
1077
 
1059
 func (this *CommonApiController) GetMonthProjectList() {
1078
 func (this *CommonApiController) GetMonthProjectList() {
1210
 	decEndStrs, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", decEndStr)
1229
 	decEndStrs, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", decEndStr)
1211
 	decEndStrsUnix := decEndStrs.Unix()
1230
 	decEndStrsUnix := decEndStrs.Unix()
1212
 	fmt.Println("12月末", decEndStrsUnix)
1231
 	fmt.Println("12月末", decEndStrsUnix)
1213
-	//统计总共
1214
-	monthlist, err := service.GetMonthProjectList(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1215
-	//统计不合格
1216
-	monthNolist, err := service.GetMonthProjectListTwo(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1217
-	fmt.Println("monthnolist=====", monthNolist)
1218
-	if err != nil {
1219
-		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1220
-		return
1232
+	rangetype, _ := this.GetInt64("range_type")
1233
+	fmt.Println("range_type", rangetype)
1234
+	if rangetype == 1 {
1235
+		//统计总共
1236
+		monthlist, err := service.GetMonthProjectList(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1237
+		//统计不合格
1238
+		monthNolist, err := service.GetMonthProjectListTwo(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1239
+		fmt.Println("monthnolist", monthNolist)
1240
+		if err != nil {
1241
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1242
+			return
1243
+		}
1244
+
1245
+		this.ServeSuccessJSON(map[string]interface{}{
1246
+			"monthlist":   monthlist,
1247
+			"monthNolist": monthNolist,
1248
+		})
1249
+	}
1250
+
1251
+	if rangetype == 2 {
1252
+		monthlist, err := service.GetMonthProjectListOne(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1253
+		monthNolist, err := service.GetMonthProjectListThree(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1254
+		if err != nil {
1255
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1256
+			return
1257
+		}
1258
+
1259
+		this.ServeSuccessJSON(map[string]interface{}{
1260
+			"monthlist":   monthlist,
1261
+			"monthNolist": monthNolist,
1262
+		})
1221
 	}
1263
 	}
1222
 
1264
 
1223
-	this.ServeSuccessJSON(map[string]interface{}{
1224
-		"monthlist":   monthlist,
1225
-		"monthNolist": monthNolist,
1226
-	})
1227
 }
1265
 }
1228
 
1266
 
1229
 func (this *CommonApiController) GetPatientscontrol() {
1267
 func (this *CommonApiController) GetPatientscontrol() {

+ 5 - 3
controllers/new_mobile_api_controllers/new_common_api_controller.go View File

193
 	fmt.Println("limit", limit)
193
 	fmt.Println("limit", limit)
194
 	adminInfo := this.GetMobileAdminUserInfo()
194
 	adminInfo := this.GetMobileAdminUserInfo()
195
 	orgId := adminInfo.Org.Id
195
 	orgId := adminInfo.Org.Id
196
+	count, _ := service.TotalDialysisCount(statime, entime, orgId)
196
 	prescriptionList, _ := service.GetAllDialysisList(statime, entime, orgId)
197
 	prescriptionList, _ := service.GetAllDialysisList(statime, entime, orgId)
197
 	list, totallist, err := service.GetDialysisPatientList(statime, entime, page, limit, orgId)
198
 	list, totallist, err := service.GetDialysisPatientList(statime, entime, page, limit, orgId)
198
 	if err != nil {
199
 	if err != nil {
203
 		"list":             list,
204
 		"list":             list,
204
 		"totallist":        totallist,
205
 		"totallist":        totallist,
205
 		"prescriptionList": prescriptionList,
206
 		"prescriptionList": prescriptionList,
207
+		"count":            count,
206
 	})
208
 	})
207
 }
209
 }
208
 
210
 
506
 	endDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", endTimeYMDHmsStr)
508
 	endDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", endTimeYMDHmsStr)
507
 	entime := endDate.Unix()
509
 	entime := endDate.Unix()
508
 	fmt.Println("结束日期", entime)
510
 	fmt.Println("结束日期", entime)
509
-	//group, parseDateErr := service.GetItemNameGroup(orgid, statime, entime)
510
-	//quarter, err := service.GetFirstQuarter(orgid, statime, entime)
511
 	count, err := service.GetQuarterTotalCount(orgid, statime, entime, lapseto)
511
 	count, err := service.GetQuarterTotalCount(orgid, statime, entime, lapseto)
512
+	countwo, _ := service.GetQuarterTotalCountTwo(orgid, statime, entime, lapseto)
512
 	if err != nil {
513
 	if err != nil {
513
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
514
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
514
 		return
515
 		return
515
 	}
516
 	}
516
 	this.ServeSuccessJSON(map[string]interface{}{
517
 	this.ServeSuccessJSON(map[string]interface{}{
517
-		"count": count,
518
+		"count":   count,
519
+		"countwo": countwo,
518
 	})
520
 	})
519
 }
521
 }
520
 
522
 

+ 3 - 5
models/common_models.go View File

388
 }
388
 }
389
 
389
 
390
 type ProjectCountOne struct {
390
 type ProjectCountOne struct {
391
-	Total      string
392
-	Count      int64
393
-	NoCount    int64
394
-	MinRange   string `gorm:"column:min_range" json:"min_range" form:"min_range"`
395
-	LargeRange string `gorm:"column:large_range" json:"large_range" form:"large_range"`
391
+	Total   string
392
+	Count   int64
393
+	NoCount int64
396
 }
394
 }
397
 
395
 
398
 type ProjectCount struct {
396
 type ProjectCount struct {

+ 732 - 59
service/common_service.go View File

1026
 	if lapseto == 0 {
1026
 	if lapseto == 0 {
1027
 		d := XTReadDB().Table("xt_patients as s")
1027
 		d := XTReadDB().Table("xt_patients as s")
1028
 		fmt.Println("d", d)
1028
 		fmt.Println("d", d)
1029
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1029
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
1030
 		table := XTReadDB().Table("xt_inspection_reference as r")
1030
 		table := XTReadDB().Table("xt_inspection_reference as r")
1031
-		//q := XTReadDB().Table("xt_quality_control_standard as q")
1032
-		//fmt.Println("q",q)
1031
+		q := XTReadDB().Table("xt_quality_control_standard as r")
1032
+		fmt.Println("q", q)
1033
 		fmt.Println(table)
1033
 		fmt.Println(table)
1034
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1034
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1035
 			"SELECT " +
1035
 			"SELECT " +
1036
 			"CASE " +
1036
 			"CASE " +
1037
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '第一季度'" +
1038
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <=  r.range_max+0 THEN '第二季度'" +
1039
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第三季度'" +
1040
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第四季度'" +
1037
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0  THEN '第一季度'" +
1038
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <=  r.large_range+0 THEN '第二季度'" +
1039
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第三季度'" +
1040
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第四季度'" +
1041
 			" ELSE '其他'" +
1041
 			" ELSE '其他'" +
1042
-			"END AS nnd FROM xt_inspection as x  left join xt_inspection_reference as  r on (r.item_id = x.item_id AND r.org_id > 0) OR ( x.item_id = r.id AND r.org_id = 0) left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= range_max+0)"
1042
+			"END AS nnd FROM xt_inspection as x  left join xt_quality_control_standard as  r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.min_range + 0 AND x.inspect_value + 0 <= r.large_range+0)"
1043
 		countParams := make([]interface{}, 0)
1043
 		countParams := make([]interface{}, 0)
1044
 		countParams = append(countParams, firststart)
1044
 		countParams = append(countParams, firststart)
1045
 		countParams = append(countParams, firstend)
1045
 		countParams = append(countParams, firstend)
1054
 			countSQL += " AND x.org_id=?"
1054
 			countSQL += " AND x.org_id=?"
1055
 			countParams = append(countParams, orgid)
1055
 			countParams = append(countParams, orgid)
1056
 
1056
 
1057
+		}
1058
+		if orgid > 0 {
1059
+			db = db.Where("r.user_org_id=?", orgid)
1060
+			countSQL += " AND r.user_org_id=?"
1061
+			countParams = append(countParams, orgid)
1062
+
1057
 		}
1063
 		}
1058
 		if modetype > 0 {
1064
 		if modetype > 0 {
1059
 			db = db.Where("x.item_id = ?", modetype)
1065
 			db = db.Where("x.item_id = ?", modetype)
1078
 	if lapseto == 1 {
1084
 	if lapseto == 1 {
1079
 		d := XTReadDB().Table("xt_patients as s")
1085
 		d := XTReadDB().Table("xt_patients as s")
1080
 		fmt.Println("d", d)
1086
 		fmt.Println("d", d)
1081
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1087
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
1082
 		table := XTReadDB().Table("xt_inspection_reference as r")
1088
 		table := XTReadDB().Table("xt_inspection_reference as r")
1089
+		q := XTReadDB().Table("xt_quality_control_standard as r")
1090
+		fmt.Println("q", q)
1083
 		fmt.Println(table)
1091
 		fmt.Println(table)
1084
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1092
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1085
 			"SELECT " +
1093
 			"SELECT " +
1086
 			"CASE " +
1094
 			"CASE " +
1087
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '第一季度'" +
1088
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第二季度'" +
1089
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第三季度'" +
1090
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第四季度'" +
1095
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0  THEN '第一季度'" +
1096
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <=  r.large_range+0 THEN '第二季度'" +
1097
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第三季度'" +
1098
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第四季度'" +
1091
 			" ELSE '其他'" +
1099
 			" ELSE '其他'" +
1092
-			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1100
+			"END AS nnd FROM xt_inspection as x  left join xt_quality_control_standard as  r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.min_range + 0 AND x.inspect_value + 0 <= r.large_range+0)"
1093
 		countParams := make([]interface{}, 0)
1101
 		countParams := make([]interface{}, 0)
1094
 		countParams = append(countParams, firststart)
1102
 		countParams = append(countParams, firststart)
1095
 		countParams = append(countParams, firstend)
1103
 		countParams = append(countParams, firstend)
1104
 			countSQL += " AND x.org_id=?"
1112
 			countSQL += " AND x.org_id=?"
1105
 			countParams = append(countParams, orgid)
1113
 			countParams = append(countParams, orgid)
1106
 
1114
 
1115
+		}
1116
+		if orgid > 0 {
1117
+			db = db.Where("r.user_org_id=?", orgid)
1118
+			countSQL += " AND r.user_org_id=?"
1119
+			countParams = append(countParams, orgid)
1120
+
1107
 		}
1121
 		}
1108
 		if modetype > 0 {
1122
 		if modetype > 0 {
1109
 			db = db.Where("x.item_id = ?", modetype)
1123
 			db = db.Where("x.item_id = ?", modetype)
1124
 		countSQL += ")a GROUP BY nnd"
1138
 		countSQL += ")a GROUP BY nnd"
1125
 		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1139
 		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1126
 	}
1140
 	}
1141
+	return
1142
+}
1127
 
1143
 
1128
-	if lapseto == 2 {
1144
+func GetProjectStandListOne(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCount, err error) {
1145
+
1146
+	if lapseto == 0 {
1129
 		d := XTReadDB().Table("xt_patients as s")
1147
 		d := XTReadDB().Table("xt_patients as s")
1130
 		fmt.Println("d", d)
1148
 		fmt.Println("d", d)
1131
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1149
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
1132
 		table := XTReadDB().Table("xt_inspection_reference as r")
1150
 		table := XTReadDB().Table("xt_inspection_reference as r")
1151
+		q := XTReadDB().Table("xt_quality_control_standard as r")
1152
+		fmt.Println("q", q)
1133
 		fmt.Println(table)
1153
 		fmt.Println(table)
1134
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1154
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1135
 			"SELECT " +
1155
 			"SELECT " +
1136
 			"CASE " +
1156
 			"CASE " +
1137
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '第一季度'" +
1138
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第二季度'" +
1139
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第三季度'" +
1140
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '第四季度'" +
1157
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
1158
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
1159
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
1160
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
1141
 			" ELSE '其他'" +
1161
 			" ELSE '其他'" +
1142
-			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1162
+			"END AS nnd FROM xt_inspection as x  left join xt_quality_control_standard as  r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value = r.range_value)"
1163
+		countParams := make([]interface{}, 0)
1164
+		countParams = append(countParams, firststart)
1165
+		countParams = append(countParams, firstend)
1166
+		countParams = append(countParams, sencondstart)
1167
+		countParams = append(countParams, sencondend)
1168
+		countParams = append(countParams, threestart)
1169
+		countParams = append(countParams, threeend)
1170
+		countParams = append(countParams, fourstart)
1171
+		countParams = append(countParams, fourend)
1172
+		if orgid > 0 {
1173
+			db = db.Where("x.org_id=?", orgid)
1174
+			countSQL += " AND x.org_id=?"
1175
+			countParams = append(countParams, orgid)
1176
+
1177
+		}
1178
+		if orgid > 0 {
1179
+			db = db.Where("r.user_org_id=?", orgid)
1180
+			countSQL += " AND r.user_org_id=?"
1181
+			countParams = append(countParams, orgid)
1182
+
1183
+		}
1184
+		if modetype > 0 {
1185
+			db = db.Where("x.item_id = ?", modetype)
1186
+			countSQL += " AND x.item_id=?"
1187
+			countParams = append(countParams, modetype)
1188
+		}
1189
+		if startime > 0 {
1190
+			db = db.Where("x.inspect_date >= ? ", startime)
1191
+			countSQL += " AND x.inspect_date >=?"
1192
+			countParams = append(countParams, startime)
1193
+		}
1194
+		if endtime > 0 {
1195
+			db = db.Where("x.inspect_date <= ?", endtime)
1196
+			countSQL += " AND x.inspect_date <=?"
1197
+			countParams = append(countParams, endtime)
1198
+		}
1199
+
1200
+		countSQL += ")a GROUP BY nnd"
1201
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1202
+	}
1203
+
1204
+	if lapseto == 1 {
1205
+		d := XTReadDB().Table("xt_patients as s")
1206
+		fmt.Println("d", d)
1207
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
1208
+		table := XTReadDB().Table("xt_inspection_reference as r")
1209
+		q := XTReadDB().Table("xt_quality_control_standard as r")
1210
+		fmt.Println("q", q)
1211
+		fmt.Println(table)
1212
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1213
+			"SELECT " +
1214
+			"CASE " +
1215
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
1216
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
1217
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
1218
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
1219
+			" ELSE '其他'" +
1220
+			"END AS nnd FROM xt_inspection as x  left join xt_quality_control_standard as  r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value = r.range_value)"
1143
 		countParams := make([]interface{}, 0)
1221
 		countParams := make([]interface{}, 0)
1144
 		countParams = append(countParams, firststart)
1222
 		countParams = append(countParams, firststart)
1145
 		countParams = append(countParams, firstend)
1223
 		countParams = append(countParams, firstend)
1154
 			countSQL += " AND x.org_id=?"
1232
 			countSQL += " AND x.org_id=?"
1155
 			countParams = append(countParams, orgid)
1233
 			countParams = append(countParams, orgid)
1156
 
1234
 
1235
+		}
1236
+		if orgid > 0 {
1237
+			db = db.Where("r.user_org_id=?", orgid)
1238
+			countSQL += " AND r.user_org_id=?"
1239
+			countParams = append(countParams, orgid)
1240
+
1157
 		}
1241
 		}
1158
 		if modetype > 0 {
1242
 		if modetype > 0 {
1159
 			db = db.Where("x.item_id = ?", modetype)
1243
 			db = db.Where("x.item_id = ?", modetype)
1183
 
1267
 
1184
 		d := XTReadDB().Table("xt_patients as s")
1268
 		d := XTReadDB().Table("xt_patients as s")
1185
 		fmt.Println("d", d)
1269
 		fmt.Println("d", d)
1186
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1270
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1")
1187
 
1271
 
1188
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1272
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1189
 			"SELECT " +
1273
 			"SELECT " +
1255
 
1339
 
1256
 		d := XTReadDB().Table("xt_patients as s")
1340
 		d := XTReadDB().Table("xt_patients as s")
1257
 		fmt.Println("d", d)
1341
 		fmt.Println("d", d)
1258
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1342
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1 ")
1259
 
1343
 
1260
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1344
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1261
 			"SELECT " +
1345
 			"SELECT " +
1326
 	if lapseto == 2 {
1410
 	if lapseto == 2 {
1327
 		d := XTReadDB().Table("xt_patients as s")
1411
 		d := XTReadDB().Table("xt_patients as s")
1328
 		fmt.Println("d", d)
1412
 		fmt.Println("d", d)
1329
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1413
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_value <> 0 and x.inspect_type = 1")
1330
 
1414
 
1331
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1415
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1332
 			"SELECT " +
1416
 			"SELECT " +
1396
 	return
1480
 	return
1397
 }
1481
 }
1398
 
1482
 
1399
-func GetMonthProjectListTwo(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
1400
-	fmt.Println("lapseto=======", lapseto)
1483
+func GetMonthProjectListOne(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCountOne, err error) {
1484
+
1401
 	if lapseto == 0 {
1485
 	if lapseto == 0 {
1486
+
1402
 		d := XTReadDB().Table("xt_patients as s")
1487
 		d := XTReadDB().Table("xt_patients as s")
1403
 		fmt.Println("d", d)
1488
 		fmt.Println("d", d)
1404
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1405
-		table := XTReadDB().Table("xt_inspection_reference as r")
1406
-		fmt.Println(table)
1489
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
1490
+
1407
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1491
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1408
 			"SELECT " +
1492
 			"SELECT " +
1409
 			"CASE " +
1493
 			"CASE " +
1410
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1411
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1412
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1413
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1414
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1415
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1416
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1417
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1418
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1419
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1420
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1421
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1494
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '一月'" +
1495
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '二月'" +
1496
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '三月'" +
1497
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '四月'" +
1498
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '五月'" +
1499
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '六月'" +
1500
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '七月'" +
1501
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '八月'" +
1502
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '九月'" +
1503
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十月'" +
1504
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十一月'" +
1505
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十二月'" +
1422
 			" ELSE '其他'" +
1506
 			" ELSE '其他'" +
1423
-			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1507
+			"END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2)"
1424
 		countParams := make([]interface{}, 0)
1508
 		countParams := make([]interface{}, 0)
1425
 		countParams = append(countParams, januaryStartStrUnix)
1509
 		countParams = append(countParams, januaryStartStrUnix)
1426
 		countParams = append(countParams, januaryEndStrUnix)
1510
 		countParams = append(countParams, januaryEndStrUnix)
1474
 
1558
 
1475
 		d := XTReadDB().Table("xt_patients as s")
1559
 		d := XTReadDB().Table("xt_patients as s")
1476
 		fmt.Println("d", d)
1560
 		fmt.Println("d", d)
1477
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1478
-		table := XTReadDB().Table("xt_inspection_reference as r")
1479
-		fmt.Println(table)
1561
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1  and and x.inspect_type = 2")
1562
+
1480
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1563
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1481
 			"SELECT " +
1564
 			"SELECT " +
1482
 			"CASE " +
1565
 			"CASE " +
1483
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1484
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1485
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1486
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1487
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1488
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1489
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1490
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1491
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1492
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1493
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1494
-			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1566
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '一月'" +
1567
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '二月'" +
1568
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '三月'" +
1569
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '四月'" +
1570
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '五月'" +
1571
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '六月'" +
1572
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '七月'" +
1573
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '八月'" +
1574
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '九月'" +
1575
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十月'" +
1576
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十一月'" +
1577
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十二月'" +
1495
 			" ELSE '其他'" +
1578
 			" ELSE '其他'" +
1496
-			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1579
+			"END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1)"
1497
 		countParams := make([]interface{}, 0)
1580
 		countParams := make([]interface{}, 0)
1498
 		countParams = append(countParams, januaryStartStrUnix)
1581
 		countParams = append(countParams, januaryStartStrUnix)
1499
 		countParams = append(countParams, januaryEndStrUnix)
1582
 		countParams = append(countParams, januaryEndStrUnix)
1546
 	if lapseto == 2 {
1629
 	if lapseto == 2 {
1547
 		d := XTReadDB().Table("xt_patients as s")
1630
 		d := XTReadDB().Table("xt_patients as s")
1548
 		fmt.Println("d", d)
1631
 		fmt.Println("d", d)
1549
-		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1632
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
1633
+
1634
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1635
+			"SELECT " +
1636
+			"CASE " +
1637
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '一月'" +
1638
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '二月'" +
1639
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '三月'" +
1640
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '四月'" +
1641
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '五月'" +
1642
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '六月'" +
1643
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '七月'" +
1644
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '八月'" +
1645
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '九月'" +
1646
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十月'" +
1647
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十一月'" +
1648
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '十二月'" +
1649
+			" ELSE '其他'" +
1650
+			"END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2)"
1651
+		countParams := make([]interface{}, 0)
1652
+		countParams = append(countParams, januaryStartStrUnix)
1653
+		countParams = append(countParams, januaryEndStrUnix)
1654
+		countParams = append(countParams, febStartStrStrUnix)
1655
+		countParams = append(countParams, febEndStrUnix)
1656
+		countParams = append(countParams, marchStartStrUnix)
1657
+		countParams = append(countParams, marchEndStrUnix)
1658
+		countParams = append(countParams, aprStartStrUnix)
1659
+		countParams = append(countParams, aprEndStrsUnix)
1660
+		countParams = append(countParams, mayStartStrUnix)
1661
+		countParams = append(countParams, mayEndStrsUnix)
1662
+		countParams = append(countParams, junStartStrUnix)
1663
+		countParams = append(countParams, junEndStrsUnix)
1664
+		countParams = append(countParams, julStartStrUnix)
1665
+		countParams = append(countParams, julEndStrsUnix)
1666
+		countParams = append(countParams, augStartStrUnix)
1667
+		countParams = append(countParams, augEndStrsUnix)
1668
+		countParams = append(countParams, sepStartStrUnix)
1669
+		countParams = append(countParams, sepEndStrsUnix)
1670
+		countParams = append(countParams, octStartStrUnix)
1671
+		countParams = append(countParams, octEndStrsUnix)
1672
+		countParams = append(countParams, novStartStrUnix)
1673
+		countParams = append(countParams, novEndStrsUnix)
1674
+		countParams = append(countParams, decStartStrUnix)
1675
+		countParams = append(countParams, decEndStrsUnix)
1676
+		if orgid > 0 {
1677
+			db = db.Where("x.org_id=?", orgid)
1678
+			countSQL += " AND x.org_id=?"
1679
+			countParams = append(countParams, orgid)
1680
+		}
1681
+		if modetype > 0 {
1682
+			db = db.Where("x.item_id = ?", modetype)
1683
+			countSQL += " AND x.item_id=?"
1684
+			countParams = append(countParams, modetype)
1685
+		}
1686
+		if januaryStartStrUnix > 0 {
1687
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
1688
+			countSQL += " AND x.inspect_date >=?"
1689
+			countParams = append(countParams, januaryStartStrUnix)
1690
+		}
1691
+		if decEndStrsUnix > 0 {
1692
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
1693
+			countSQL += " AND x.inspect_date <=?"
1694
+			countParams = append(countParams, decEndStrsUnix)
1695
+		}
1696
+		countSQL += ")a GROUP BY nnd"
1697
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1698
+	}
1699
+	return
1700
+}
1701
+
1702
+func GetProjectListOne(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountOne, err error) {
1703
+
1704
+	if lapseto == 0 {
1705
+		d := XTReadDB().Table("xt_patients as s")
1706
+		fmt.Println("d", d)
1707
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
1708
+
1709
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1710
+			"SELECT " +
1711
+			"CASE " +
1712
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第一季度'" +
1713
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第二季度'" +
1714
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第三季度'" +
1715
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第四季度'" +
1716
+			" ELSE '其他'" +
1717
+			"END AS nnd FROM xt_inspection as x  left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2)"
1718
+		countParams := make([]interface{}, 0)
1719
+		countParams = append(countParams, firststart)
1720
+		countParams = append(countParams, firstend)
1721
+		countParams = append(countParams, sencondstart)
1722
+		countParams = append(countParams, sencondend)
1723
+		countParams = append(countParams, threestart)
1724
+		countParams = append(countParams, threeend)
1725
+		countParams = append(countParams, fourstart)
1726
+		countParams = append(countParams, fourend)
1727
+		if orgid > 0 {
1728
+			db = db.Where("x.org_id=?", orgid)
1729
+			countSQL += " AND x.org_id=?"
1730
+			countParams = append(countParams, orgid)
1731
+
1732
+		}
1733
+		if modetype > 0 {
1734
+			db = db.Where("x.item_id = ?", modetype)
1735
+			countSQL += " AND x.item_id=?"
1736
+			countParams = append(countParams, modetype)
1737
+		}
1738
+		if startime > 0 {
1739
+			db = db.Where("x.inspect_date >= ?", startime)
1740
+			countSQL += " AND x.inspect_date >=?"
1741
+			countParams = append(countParams, startime)
1742
+		}
1743
+		if endtime > 0 {
1744
+			db = db.Where("x.inspect_date <= ?", endtime)
1745
+			countSQL += " AND x.inspect_date <=?"
1746
+			countParams = append(countParams, endtime)
1747
+		}
1748
+		countSQL += ")a GROUP BY nnd"
1749
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1750
+	}
1751
+
1752
+	if lapseto == 1 {
1753
+		d := XTReadDB().Table("xt_patients as s")
1754
+		fmt.Println("d", d)
1755
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
1756
+
1757
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1758
+			"SELECT " +
1759
+			"CASE " +
1760
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第一季度'" +
1761
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第二季度'" +
1762
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第三季度'" +
1763
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第四季度'" +
1764
+			" ELSE '其他'" +
1765
+			"END AS nnd FROM xt_inspection as x  left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2)"
1766
+		countParams := make([]interface{}, 0)
1767
+		countParams = append(countParams, firststart)
1768
+		countParams = append(countParams, firstend)
1769
+		countParams = append(countParams, sencondstart)
1770
+		countParams = append(countParams, sencondend)
1771
+		countParams = append(countParams, threestart)
1772
+		countParams = append(countParams, threeend)
1773
+		countParams = append(countParams, fourstart)
1774
+		countParams = append(countParams, fourend)
1775
+		if orgid > 0 {
1776
+			db = db.Where("x.org_id=?", orgid)
1777
+			countSQL += " AND x.org_id=?"
1778
+			countParams = append(countParams, orgid)
1779
+
1780
+		}
1781
+		if modetype > 0 {
1782
+			db = db.Where("x.item_id = ?", modetype)
1783
+			countSQL += " AND x.item_id=?"
1784
+			countParams = append(countParams, modetype)
1785
+		}
1786
+		if startime > 0 {
1787
+			db = db.Where("x.inspect_date >= ?", startime)
1788
+			countSQL += " AND x.inspect_date >=?"
1789
+			countParams = append(countParams, startime)
1790
+		}
1791
+		if endtime > 0 {
1792
+			db = db.Where("x.inspect_date <= ?", endtime)
1793
+			countSQL += " AND x.inspect_date <=?"
1794
+			countParams = append(countParams, endtime)
1795
+		}
1796
+		countSQL += ")a GROUP BY nnd"
1797
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1798
+	}
1799
+
1800
+	if lapseto == 2 {
1801
+		d := XTReadDB().Table("xt_patients as s")
1802
+		fmt.Println("d", d)
1803
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1804
+
1805
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1806
+			"SELECT " +
1807
+			"CASE " +
1808
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第一季度'" +
1809
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第二季度'" +
1810
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第三季度'" +
1811
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? THEN '第四季度'" +
1812
+			" ELSE '其他'" +
1813
+			"END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2)"
1814
+		countParams := make([]interface{}, 0)
1815
+		countParams = append(countParams, firststart)
1816
+		countParams = append(countParams, firstend)
1817
+		countParams = append(countParams, sencondstart)
1818
+		countParams = append(countParams, sencondend)
1819
+		countParams = append(countParams, threestart)
1820
+		countParams = append(countParams, threeend)
1821
+		countParams = append(countParams, fourstart)
1822
+		countParams = append(countParams, fourend)
1823
+		if orgid > 0 {
1824
+			db = db.Where("x.org_id=?", orgid)
1825
+			countSQL += " AND x.org_id=?"
1826
+			countParams = append(countParams, orgid)
1827
+
1828
+		}
1829
+		if modetype > 0 {
1830
+			db = db.Where("x.item_id = ?", modetype)
1831
+			countSQL += " AND x.item_id=?"
1832
+			countParams = append(countParams, modetype)
1833
+		}
1834
+
1835
+		if startime > 0 {
1836
+			db = db.Where("x.inspect_date >= ?", startime)
1837
+			countSQL += " AND x.inspect_date >=?"
1838
+			countParams = append(countParams, startime)
1839
+		}
1840
+		if endtime > 0 {
1841
+			db = db.Where("x.inspect_date <= ?", endtime)
1842
+			countSQL += " AND x.inspect_date <=?"
1843
+			countParams = append(countParams, endtime)
1844
+		}
1845
+
1846
+		countSQL += ")a GROUP BY nnd"
1847
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1848
+
1849
+	}
1850
+	return
1851
+}
1852
+
1853
+func GetMonthProjectListTwo(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
1854
+	if lapseto == 0 {
1855
+		d := XTReadDB().Table("xt_patients as s")
1856
+		fmt.Println("d", d)
1857
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
1858
+		table := XTReadDB().Table("xt_inspection_reference as r")
1859
+		fmt.Println(table)
1860
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1861
+			"SELECT " +
1862
+			"CASE " +
1863
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1864
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1865
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1866
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1867
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1868
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1869
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1870
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1871
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1872
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1873
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1874
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1875
+			" ELSE '其他'" +
1876
+			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1877
+		countParams := make([]interface{}, 0)
1878
+		countParams = append(countParams, januaryStartStrUnix)
1879
+		countParams = append(countParams, januaryEndStrUnix)
1880
+		countParams = append(countParams, febStartStrStrUnix)
1881
+		countParams = append(countParams, febEndStrUnix)
1882
+		countParams = append(countParams, marchStartStrUnix)
1883
+		countParams = append(countParams, marchEndStrUnix)
1884
+		countParams = append(countParams, aprStartStrUnix)
1885
+		countParams = append(countParams, aprEndStrsUnix)
1886
+		countParams = append(countParams, mayStartStrUnix)
1887
+		countParams = append(countParams, mayEndStrsUnix)
1888
+		countParams = append(countParams, junStartStrUnix)
1889
+		countParams = append(countParams, junEndStrsUnix)
1890
+		countParams = append(countParams, julStartStrUnix)
1891
+		countParams = append(countParams, julEndStrsUnix)
1892
+		countParams = append(countParams, augStartStrUnix)
1893
+		countParams = append(countParams, augEndStrsUnix)
1894
+		countParams = append(countParams, sepStartStrUnix)
1895
+		countParams = append(countParams, sepEndStrsUnix)
1896
+		countParams = append(countParams, octStartStrUnix)
1897
+		countParams = append(countParams, octEndStrsUnix)
1898
+		countParams = append(countParams, novStartStrUnix)
1899
+		countParams = append(countParams, novEndStrsUnix)
1900
+		countParams = append(countParams, decStartStrUnix)
1901
+		countParams = append(countParams, decEndStrsUnix)
1902
+		if orgid > 0 {
1903
+			db = db.Where("x.org_id=?", orgid)
1904
+			countSQL += " AND x.org_id=?"
1905
+			countParams = append(countParams, orgid)
1906
+		}
1907
+		if modetype > 0 {
1908
+			db = db.Where("x.item_id = ?", modetype)
1909
+			countSQL += " AND x.item_id=?"
1910
+			countParams = append(countParams, modetype)
1911
+		}
1912
+		if januaryStartStrUnix > 0 {
1913
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
1914
+			countSQL += " AND x.inspect_date >=?"
1915
+			countParams = append(countParams, januaryStartStrUnix)
1916
+		}
1917
+		if decEndStrsUnix > 0 {
1918
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
1919
+			countSQL += " AND x.inspect_date <=?"
1920
+			countParams = append(countParams, decEndStrsUnix)
1921
+		}
1922
+		countSQL += ")a GROUP BY nnd"
1923
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1924
+	}
1925
+
1926
+	if lapseto == 1 {
1927
+
1928
+		d := XTReadDB().Table("xt_patients as s")
1929
+		fmt.Println("d", d)
1930
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
1931
+		table := XTReadDB().Table("xt_inspection_reference as r")
1932
+		fmt.Println(table)
1933
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1934
+			"SELECT " +
1935
+			"CASE " +
1936
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1937
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1938
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1939
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1940
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1941
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1942
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1943
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1944
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1945
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1946
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1947
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1948
+			" ELSE '其他'" +
1949
+			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1950
+		countParams := make([]interface{}, 0)
1951
+		countParams = append(countParams, januaryStartStrUnix)
1952
+		countParams = append(countParams, januaryEndStrUnix)
1953
+		countParams = append(countParams, febStartStrStrUnix)
1954
+		countParams = append(countParams, febEndStrUnix)
1955
+		countParams = append(countParams, marchStartStrUnix)
1956
+		countParams = append(countParams, marchEndStrUnix)
1957
+		countParams = append(countParams, aprStartStrUnix)
1958
+		countParams = append(countParams, aprEndStrsUnix)
1959
+		countParams = append(countParams, mayStartStrUnix)
1960
+		countParams = append(countParams, mayEndStrsUnix)
1961
+		countParams = append(countParams, junStartStrUnix)
1962
+		countParams = append(countParams, junEndStrsUnix)
1963
+		countParams = append(countParams, julStartStrUnix)
1964
+		countParams = append(countParams, julEndStrsUnix)
1965
+		countParams = append(countParams, augStartStrUnix)
1966
+		countParams = append(countParams, augEndStrsUnix)
1967
+		countParams = append(countParams, sepStartStrUnix)
1968
+		countParams = append(countParams, sepEndStrsUnix)
1969
+		countParams = append(countParams, octStartStrUnix)
1970
+		countParams = append(countParams, octEndStrsUnix)
1971
+		countParams = append(countParams, novStartStrUnix)
1972
+		countParams = append(countParams, novEndStrsUnix)
1973
+		countParams = append(countParams, decStartStrUnix)
1974
+		countParams = append(countParams, decEndStrsUnix)
1975
+		if orgid > 0 {
1976
+			db = db.Where("x.org_id=?", orgid)
1977
+			countSQL += " AND x.org_id=?"
1978
+			countParams = append(countParams, orgid)
1979
+		}
1980
+		if modetype > 0 {
1981
+			db = db.Where("x.item_id = ?", modetype)
1982
+			countSQL += " AND x.item_id=?"
1983
+			countParams = append(countParams, modetype)
1984
+		}
1985
+		if januaryStartStrUnix > 0 {
1986
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
1987
+			countSQL += " AND x.inspect_date >=?"
1988
+			countParams = append(countParams, januaryStartStrUnix)
1989
+		}
1990
+		if decEndStrsUnix > 0 {
1991
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
1992
+			countSQL += " AND x.inspect_date <=?"
1993
+			countParams = append(countParams, decEndStrsUnix)
1994
+		}
1995
+		countSQL += ")a GROUP BY nnd"
1996
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1997
+	}
1998
+
1999
+	if lapseto == 2 {
2000
+		d := XTReadDB().Table("xt_patients as s")
2001
+		fmt.Println("d", d)
2002
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
2003
+		table := XTReadDB().Table("xt_inspection_reference as r")
2004
+		fmt.Println(table)
2005
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
2006
+			"SELECT " +
2007
+			"CASE " +
2008
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
2009
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
2010
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
2011
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
2012
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
2013
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
2014
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
2015
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
2016
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
2017
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
2018
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
2019
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
2020
+			" ELSE '其他'" +
2021
+			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
2022
+		countParams := make([]interface{}, 0)
2023
+		countParams = append(countParams, januaryStartStrUnix)
2024
+		countParams = append(countParams, januaryEndStrUnix)
2025
+		countParams = append(countParams, febStartStrStrUnix)
2026
+		countParams = append(countParams, febEndStrUnix)
2027
+		countParams = append(countParams, marchStartStrUnix)
2028
+		countParams = append(countParams, marchEndStrUnix)
2029
+		countParams = append(countParams, aprStartStrUnix)
2030
+		countParams = append(countParams, aprEndStrsUnix)
2031
+		countParams = append(countParams, mayStartStrUnix)
2032
+		countParams = append(countParams, mayEndStrsUnix)
2033
+		countParams = append(countParams, junStartStrUnix)
2034
+		countParams = append(countParams, junEndStrsUnix)
2035
+		countParams = append(countParams, julStartStrUnix)
2036
+		countParams = append(countParams, julEndStrsUnix)
2037
+		countParams = append(countParams, augStartStrUnix)
2038
+		countParams = append(countParams, augEndStrsUnix)
2039
+		countParams = append(countParams, sepStartStrUnix)
2040
+		countParams = append(countParams, sepEndStrsUnix)
2041
+		countParams = append(countParams, octStartStrUnix)
2042
+		countParams = append(countParams, octEndStrsUnix)
2043
+		countParams = append(countParams, novStartStrUnix)
2044
+		countParams = append(countParams, novEndStrsUnix)
2045
+		countParams = append(countParams, decStartStrUnix)
2046
+		countParams = append(countParams, decEndStrsUnix)
2047
+		if orgid > 0 {
2048
+			db = db.Where("x.org_id=?", orgid)
2049
+			countSQL += " AND x.org_id=?"
2050
+			countParams = append(countParams, orgid)
2051
+		}
2052
+		if modetype > 0 {
2053
+			db = db.Where("x.item_id = ?", modetype)
2054
+			countSQL += " AND x.item_id=?"
2055
+			countParams = append(countParams, modetype)
2056
+		}
2057
+		if januaryStartStrUnix > 0 {
2058
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
2059
+			countSQL += " AND x.inspect_date >=?"
2060
+			countParams = append(countParams, januaryStartStrUnix)
2061
+		}
2062
+		if decEndStrsUnix > 0 {
2063
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
2064
+			countSQL += " AND x.inspect_date <=?"
2065
+			countParams = append(countParams, decEndStrsUnix)
2066
+		}
2067
+		countSQL += ")a GROUP BY nnd"
2068
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
2069
+	}
2070
+	return
2071
+}
2072
+
2073
+func GetMonthProjectListThree(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
2074
+	if lapseto == 0 {
2075
+		d := XTReadDB().Table("xt_patients as s")
2076
+		fmt.Println("d", d)
2077
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
2078
+		table := XTReadDB().Table("xt_quality_control_standard as r")
2079
+		fmt.Println(table)
2080
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
2081
+			"SELECT " +
2082
+			"CASE " +
2083
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '一月'" +
2084
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '二月'" +
2085
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '三月'" +
2086
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '四月'" +
2087
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '五月'" +
2088
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '六月'" +
2089
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '七月'" +
2090
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '八月'" +
2091
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '九月'" +
2092
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '十月'" +
2093
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '十一月'" +
2094
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value <> r.range_value  THEN '十二月'" +
2095
+			" ELSE '其他'" +
2096
+			"END AS nnd FROM xt_inspection as x left join LEFT JOIN xt_quality_control_standard AS r ON r.inspection_minor = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value <> r.range_value)"
2097
+		countParams := make([]interface{}, 0)
2098
+		countParams = append(countParams, januaryStartStrUnix)
2099
+		countParams = append(countParams, januaryEndStrUnix)
2100
+		countParams = append(countParams, febStartStrStrUnix)
2101
+		countParams = append(countParams, febEndStrUnix)
2102
+		countParams = append(countParams, marchStartStrUnix)
2103
+		countParams = append(countParams, marchEndStrUnix)
2104
+		countParams = append(countParams, aprStartStrUnix)
2105
+		countParams = append(countParams, aprEndStrsUnix)
2106
+		countParams = append(countParams, mayStartStrUnix)
2107
+		countParams = append(countParams, mayEndStrsUnix)
2108
+		countParams = append(countParams, junStartStrUnix)
2109
+		countParams = append(countParams, junEndStrsUnix)
2110
+		countParams = append(countParams, julStartStrUnix)
2111
+		countParams = append(countParams, julEndStrsUnix)
2112
+		countParams = append(countParams, augStartStrUnix)
2113
+		countParams = append(countParams, augEndStrsUnix)
2114
+		countParams = append(countParams, sepStartStrUnix)
2115
+		countParams = append(countParams, sepEndStrsUnix)
2116
+		countParams = append(countParams, octStartStrUnix)
2117
+		countParams = append(countParams, octEndStrsUnix)
2118
+		countParams = append(countParams, novStartStrUnix)
2119
+		countParams = append(countParams, novEndStrsUnix)
2120
+		countParams = append(countParams, decStartStrUnix)
2121
+		countParams = append(countParams, decEndStrsUnix)
2122
+		if orgid > 0 {
2123
+			db = db.Where("x.org_id=?", orgid)
2124
+			countSQL += " AND x.org_id=?"
2125
+			countParams = append(countParams, orgid)
2126
+		}
2127
+		if modetype > 0 {
2128
+			db = db.Where("x.item_id = ?", modetype)
2129
+			countSQL += " AND x.item_id=?"
2130
+			countParams = append(countParams, modetype)
2131
+		}
2132
+		if januaryStartStrUnix > 0 {
2133
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
2134
+			countSQL += " AND x.inspect_date >=?"
2135
+			countParams = append(countParams, januaryStartStrUnix)
2136
+		}
2137
+		if decEndStrsUnix > 0 {
2138
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
2139
+			countSQL += " AND x.inspect_date <=?"
2140
+			countParams = append(countParams, decEndStrsUnix)
2141
+		}
2142
+		countSQL += ")a GROUP BY nnd"
2143
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
2144
+	}
2145
+
2146
+	if lapseto == 1 {
2147
+
2148
+		d := XTReadDB().Table("xt_patients as s")
2149
+		fmt.Println("d", d)
2150
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
2151
+		table := XTReadDB().Table("xt_inspection_reference as r")
2152
+		fmt.Println(table)
2153
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
2154
+			"SELECT " +
2155
+			"CASE " +
2156
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
2157
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
2158
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
2159
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
2160
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
2161
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
2162
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
2163
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
2164
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
2165
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
2166
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
2167
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
2168
+			" ELSE '其他'" +
2169
+			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
2170
+		countParams := make([]interface{}, 0)
2171
+		countParams = append(countParams, januaryStartStrUnix)
2172
+		countParams = append(countParams, januaryEndStrUnix)
2173
+		countParams = append(countParams, febStartStrStrUnix)
2174
+		countParams = append(countParams, febEndStrUnix)
2175
+		countParams = append(countParams, marchStartStrUnix)
2176
+		countParams = append(countParams, marchEndStrUnix)
2177
+		countParams = append(countParams, aprStartStrUnix)
2178
+		countParams = append(countParams, aprEndStrsUnix)
2179
+		countParams = append(countParams, mayStartStrUnix)
2180
+		countParams = append(countParams, mayEndStrsUnix)
2181
+		countParams = append(countParams, junStartStrUnix)
2182
+		countParams = append(countParams, junEndStrsUnix)
2183
+		countParams = append(countParams, julStartStrUnix)
2184
+		countParams = append(countParams, julEndStrsUnix)
2185
+		countParams = append(countParams, augStartStrUnix)
2186
+		countParams = append(countParams, augEndStrsUnix)
2187
+		countParams = append(countParams, sepStartStrUnix)
2188
+		countParams = append(countParams, sepEndStrsUnix)
2189
+		countParams = append(countParams, octStartStrUnix)
2190
+		countParams = append(countParams, octEndStrsUnix)
2191
+		countParams = append(countParams, novStartStrUnix)
2192
+		countParams = append(countParams, novEndStrsUnix)
2193
+		countParams = append(countParams, decStartStrUnix)
2194
+		countParams = append(countParams, decEndStrsUnix)
2195
+		if orgid > 0 {
2196
+			db = db.Where("x.org_id=?", orgid)
2197
+			countSQL += " AND x.org_id=?"
2198
+			countParams = append(countParams, orgid)
2199
+		}
2200
+		if modetype > 0 {
2201
+			db = db.Where("x.item_id = ?", modetype)
2202
+			countSQL += " AND x.item_id=?"
2203
+			countParams = append(countParams, modetype)
2204
+		}
2205
+		if januaryStartStrUnix > 0 {
2206
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
2207
+			countSQL += " AND x.inspect_date >=?"
2208
+			countParams = append(countParams, januaryStartStrUnix)
2209
+		}
2210
+		if decEndStrsUnix > 0 {
2211
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
2212
+			countSQL += " AND x.inspect_date <=?"
2213
+			countParams = append(countParams, decEndStrsUnix)
2214
+		}
2215
+		countSQL += ")a GROUP BY nnd"
2216
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
2217
+	}
2218
+
2219
+	if lapseto == 2 {
2220
+		d := XTReadDB().Table("xt_patients as s")
2221
+		fmt.Println("d", d)
2222
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
1550
 		table := XTReadDB().Table("xt_inspection_reference as r")
2223
 		table := XTReadDB().Table("xt_inspection_reference as r")
1551
 		fmt.Println(table)
2224
 		fmt.Println(table)
1552
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
2225
 		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +

+ 1 - 1
service/data.go View File

190
 
190
 
191
 func BatchInsertQualityControl(org_id int64) (err error) {
191
 func BatchInsertQualityControl(org_id int64) (err error) {
192
 
192
 
193
-	err = readDb.Exec("INSERT INTO xt_quality_control_standard(user_org_id,inspection_major,inspection_minor,min_range,large_range,sort,created_time,status) SELECT ?,inspection_major,inspection_minor,min_range,large_range,sort,created_time,status FROM xt_quality_control_standard where user_org_id = 0", org_id).Error
193
+	err = readDb.Exec("INSERT INTO xt_quality_control_standard(user_org_id,inspection_major,inspection_minor,min_range,large_range,sort,created_time,status,range_type,range_value) SELECT ?,inspection_major,inspection_minor,min_range,large_range,sort,created_time,status,range_type,range_value FROM xt_quality_control_standard where user_org_id = 0", org_id).Error
194
 	return
194
 	return
195
 }
195
 }
196
 
196