Browse Source

合并代码

csx 4 years ago
parent
commit
5eeeca3660

+ 37 - 9
controllers/dialysis_record_api_controller.go View File

@@ -2039,6 +2039,9 @@ func (this *DialysisRecordAPIController) StartDialysis() {
2039 2039
 
2040 2040
 	schedule, err := service.GetDayScheduleByBedid(adminUserInfo.CurrentOrgId, schedulestartTime, bedID, schedual_type)
2041 2041
 
2042
+	//查询该床位是否有人用了
2043
+	order, order_err := service.GetDialysisOrderByBedId(adminUserInfo.CurrentOrgId, schedulestartTime, bedID, schedual_type)
2044
+
2042 2045
 	if err == gorm.ErrRecordNotFound { //空床位
2043 2046
 		// 修改了床位逻辑
2044 2047
 		daySchedule, _ := service.GetDaySchedule(adminUserInfo.CurrentOrgId, schedulestartTime, scheduleendTime, patientID)
@@ -2056,17 +2059,42 @@ func (this *DialysisRecordAPIController) StartDialysis() {
2056 2059
 
2057 2060
 	} else if err == nil {
2058 2061
 		if schedule.ID > 0 && schedule.DialysisOrder.ID == 0 { //有排班没上机记录
2059
-			daySchedule, _ := service.GetDaySchedule(adminUserInfo.CurrentOrgId, schedulestartTime, scheduleendTime, patientID)
2060
-			if daySchedule.ID > 0 {
2061
-				daySchedule.PartitionId = deviceNumber.ZoneID
2062
-				daySchedule.BedId = bedID
2063
-				daySchedule.ScheduleType = schedual_type
2064
-				daySchedule.UpdatedTime = time.Now().Unix()
2065
-				err := service.UpdateSchedule(&daySchedule)
2066
-				if err != nil {
2067
-					this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2062
+
2063
+			if order_err == nil {
2064
+				if order.ID > 0 { //该机位被其他人占用了
2065
+					this.ServeFailJSONWithSGJErrorCode(enums.ErrorDialysisOrderRepeatBed)
2068 2066
 					return
2067
+
2068
+				} else {
2069
+					daySchedule, _ := service.GetDaySchedule(adminUserInfo.CurrentOrgId, schedulestartTime, scheduleendTime, patientID)
2070
+					if daySchedule.ID > 0 {
2071
+						daySchedule.PartitionId = deviceNumber.ZoneID
2072
+						daySchedule.BedId = bedID
2073
+						daySchedule.ScheduleType = schedual_type
2074
+						daySchedule.UpdatedTime = time.Now().Unix()
2075
+						err := service.UpdateSchedule(&daySchedule)
2076
+						if err != nil {
2077
+							this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2078
+							return
2079
+						}
2080
+					}
2069 2081
 				}
2082
+			} else if order_err == gorm.ErrRecordNotFound { //该床位没被占用
2083
+				daySchedule, _ := service.GetDaySchedule(adminUserInfo.CurrentOrgId, schedulestartTime, scheduleendTime, patientID)
2084
+				if daySchedule.ID > 0 {
2085
+					daySchedule.PartitionId = deviceNumber.ZoneID
2086
+					daySchedule.BedId = bedID
2087
+					daySchedule.ScheduleType = schedual_type
2088
+					daySchedule.UpdatedTime = time.Now().Unix()
2089
+					err := service.UpdateSchedule(&daySchedule)
2090
+					if err != nil {
2091
+						this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2092
+						return
2093
+					}
2094
+				}
2095
+			} else if order_err != nil {
2096
+				this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2097
+				return
2070 2098
 			}
2071 2099
 		} else if schedule.ID > 0 && schedule.DialysisOrder.ID > 0 { //有排班且有上机记录
2072 2100
 			this.ServeFailJSONWithSGJErrorCode(enums.ErrorDialysisOrderRepeatBed)

+ 34 - 9
controllers/mobile_api_controllers/dialysis_api_controller.go View File

@@ -2574,6 +2574,9 @@ func (this *DialysisAPIController) StartDialysis() {
2574 2574
 
2575 2575
 	schedule, err := service.GetDayScheduleByBedid(adminUserInfo.Org.Id, schedulestartTime, bedID, schedual_type)
2576 2576
 
2577
+	//查询该床位是否有人用了
2578
+	order, order_err := service.GetDialysisOrderByBedId(adminUserInfo.Org.Id, schedulestartTime, bedID, schedual_type)
2579
+
2577 2580
 	if err == gorm.ErrRecordNotFound { //空床位
2578 2581
 		// 修改了床位逻辑
2579 2582
 		daySchedule, _ := service.GetDaySchedule(adminUserInfo.Org.Id, schedulestartTime, scheduleendTime, patientID)
@@ -2591,16 +2594,38 @@ func (this *DialysisAPIController) StartDialysis() {
2591 2594
 
2592 2595
 	} else if err == nil {
2593 2596
 		if schedule.ID > 0 && schedule.DialysisOrder.ID == 0 { //有排班没上机记录
2594
-			daySchedule, _ := service.GetDaySchedule(adminUserInfo.Org.Id, schedulestartTime, scheduleendTime, patientID)
2595
-			if daySchedule.ID > 0 {
2596
-				daySchedule.PartitionId = deviceNumber.ZoneID
2597
-				daySchedule.BedId = bedID
2598
-				daySchedule.ScheduleType = schedual_type
2599
-				daySchedule.UpdatedTime = time.Now().Unix()
2600
-				err := service.UpdateSchedule(&daySchedule)
2601
-				if err != nil {
2602
-					this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2597
+
2598
+			if order_err == nil {
2599
+				if order.ID > 0 { //该机位被其他人占用了
2600
+					this.ServeFailJSONWithSGJErrorCode(enums.ErrorDialysisOrderRepeatBed)
2603 2601
 					return
2602
+
2603
+				} else {
2604
+					daySchedule, _ := service.GetDaySchedule(adminUserInfo.Org.Id, schedulestartTime, scheduleendTime, patientID)
2605
+					if daySchedule.ID > 0 {
2606
+						daySchedule.PartitionId = deviceNumber.ZoneID
2607
+						daySchedule.BedId = bedID
2608
+						daySchedule.ScheduleType = schedual_type
2609
+						daySchedule.UpdatedTime = time.Now().Unix()
2610
+						err := service.UpdateSchedule(&daySchedule)
2611
+						if err != nil {
2612
+							this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2613
+							return
2614
+						}
2615
+					}
2616
+				}
2617
+			} else if order_err == gorm.ErrRecordNotFound { //该床位没被占用
2618
+				daySchedule, _ := service.GetDaySchedule(adminUserInfo.Org.Id, schedulestartTime, scheduleendTime, patientID)
2619
+				if daySchedule.ID > 0 {
2620
+					daySchedule.PartitionId = deviceNumber.ZoneID
2621
+					daySchedule.BedId = bedID
2622
+					daySchedule.ScheduleType = schedual_type
2623
+					daySchedule.UpdatedTime = time.Now().Unix()
2624
+					err := service.UpdateSchedule(&daySchedule)
2625
+					if err != nil {
2626
+						this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2627
+						return
2628
+					}
2604 2629
 				}
2605 2630
 			}
2606 2631
 		} else if schedule.ID > 0 && schedule.DialysisOrder.ID > 0 { //有排班且有上机记录

+ 5 - 0
service/schedule_service.go View File

@@ -393,3 +393,8 @@ func FindSchedualTemplateExportLog(org_id int64, export_time int64) (errLogs []*
393 393
 	err = readDb.Model(&models.ExportErrLog{}).Where("user_org_id = ? AND export_time = ? AND log_type = 3", org_id, export_time).Find(&errLogs).Error
394 394
 	return
395 395
 }
396
+
397
+func GetDialysisOrderByBedId(orgID, start, bed_id int64, schedule_type int64) (schedule models.DialysisOrder, err error) {
398
+	err = readDb.Model(&models.DialysisOrder{}).Where("user_org_id=?  and dialysis_date=? and bed_id=? and status=1 AND schedual_type = ?", orgID, start, bed_id, schedule_type).First(&schedule).Error
399
+	return
400
+}