Browse Source

消毒计划

XMLWAN 4 years ago
parent
commit
3140845ecf

+ 493 - 0
controllers/doctor_schedule_api_controller.go View File

@@ -0,0 +1,493 @@
1
+package controllers
2
+
3
+import (
4
+	"XT_New/enums"
5
+	"XT_New/models"
6
+	"XT_New/service"
7
+	"fmt"
8
+	"github.com/astaxie/beego"
9
+	"github.com/jinzhu/gorm"
10
+	"time"
11
+)
12
+
13
+type DoctorScheduleApiController struct {
14
+	BaseAuthAPIController
15
+}
16
+
17
+func DoctorScheduleRouters() {
18
+
19
+	beego.Router("/api/schedules/savedoctorschedules", &DoctorScheduleApiController{}, "Get:SaveDoctorSchedules")
20
+	beego.Router("/api/schedules/getdoctorschedulelist", &DoctorScheduleApiController{}, "Get:GetDoctorScheduleList")
21
+	beego.Router("/api/schedules/getscheduledetail", &DoctorScheduleApiController{}, "Get:GetScheduleDetail")
22
+	beego.Router("/api/schedules/updateschedule", &DoctorScheduleApiController{}, "Get:UpdateSchedule")
23
+	beego.Router("/api/schedule/deleteschedule", &DoctorScheduleApiController{}, "Get:DeleteSchedule")
24
+	beego.Router("/api/schedule/getdoctorlist", &DoctorScheduleApiController{}, "Get:GetDoctorList")
25
+	beego.Router("/api/schedule/getschedulelist", &DoctorScheduleApiController{}, "Get:GetScheduleList")
26
+	beego.Router("/api/schedule/addschedule", &DoctorScheduleApiController{}, "Get:AddSchedule")
27
+	beego.Router("/api/schedule/getstaffschedulelist", &DoctorScheduleApiController{}, "Get:GetStaffScheduleList")
28
+	beego.Router("/api/schedule/getnextweeklist", &DoctorScheduleApiController{}, "Get:GetNextWeekList")
29
+	beego.Router("/api/schedule/getschedulebydoctorid", &DoctorScheduleApiController{}, "Get:GetScheduleByDoctorId")
30
+	beego.Router("/api/schedule/tosearchsechedulelist", &DoctorScheduleApiController{}, "Get:ToSearchScheduleList")
31
+	beego.Router("api/schedule/deletestaffschedule", &DoctorScheduleApiController{}, "Get:DeleteStaffSchedule")
32
+	beego.Router("/api/schedule/copystaffschedule", &DoctorScheduleApiController{}, "Get:CopyStaffSchedule")
33
+	beego.Router("/api/scheudle/updatecontinusschedule", &DoctorScheduleApiController{}, "Get:UpdateContinusSchedule")
34
+}
35
+
36
+func (this *DoctorScheduleApiController) SaveDoctorSchedules() {
37
+	adminUser := this.GetAdminUserInfo()
38
+	orgId := adminUser.CurrentOrgId
39
+	class_name := this.GetString("class_name")
40
+	class_attributes, _ := this.GetInt64("class_attributes")
41
+	timeone_start := this.GetString("timeone_start")
42
+	timeone_type, _ := this.GetInt64("timeone_type")
43
+	timeone_end := this.GetString("timeone_end")
44
+	timetwo_start := this.GetString("timetwo_start")
45
+	timetwo_type, _ := this.GetInt64("timetwo_type")
46
+	timetwo_end := this.GetString("timetwo_end")
47
+	work_time := this.GetString("work_time")
48
+	remarks := this.GetString("remarks")
49
+
50
+	schedules := models.DoctorSchedules{
51
+		ClassName:       class_name,
52
+		ClassAttributes: class_attributes,
53
+		TimeoneStart:    timeone_start,
54
+		TimeoneType:     timeone_type,
55
+		TimeoneEnd:      timeone_end,
56
+		TimetwoStart:    timetwo_start,
57
+		TimetwoEnd:      timetwo_end,
58
+		TimetwoType:     timetwo_type,
59
+		WorkTime:        work_time,
60
+		Remarks:         remarks,
61
+		UserOrgId:       orgId,
62
+		Status:          1,
63
+		Ctime:           time.Now().Unix(),
64
+	}
65
+
66
+	//查询班种名称是否存在
67
+	_, errcode := service.GetClassName(orgId, class_name)
68
+	//如果不存在
69
+	if errcode == gorm.ErrRecordNotFound {
70
+		err := service.CreateDotorSchedule(&schedules)
71
+		if err != nil {
72
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
73
+			return
74
+		}
75
+
76
+		this.ServeSuccessJSON(map[string]interface{}{
77
+			"schedules": schedules,
78
+		})
79
+	} else if errcode == nil {
80
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "班种名称已存在")
81
+		return
82
+	}
83
+
84
+}
85
+
86
+func (this *DoctorScheduleApiController) GetDoctorScheduleList() {
87
+	adminUserInfo := this.GetAdminUserInfo()
88
+	orgId := adminUserInfo.CurrentOrgId
89
+	page, _ := this.GetInt64("page")
90
+	limit, _ := this.GetInt64("limit")
91
+	schedules, total, err := service.GetDoctorScheduleList(orgId, page, limit)
92
+	if err != nil {
93
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
94
+		return
95
+	}
96
+
97
+	this.ServeSuccessJSON(map[string]interface{}{
98
+		"schedules": schedules,
99
+		"total":     total,
100
+	})
101
+	//查询该机构是否有班种,如果没有去读系统默认的
102
+	//_, errcode := service.GetDoctorScheduleByOrgId(orgId)
103
+	//if errcode == gorm.ErrRecordNotFound{
104
+	//  schedules, total, err := service.GetDoctorScheduleList(0,page, limit)
105
+	//  if err != nil {
106
+	//    this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
107
+	//    return
108
+	//  }
109
+	//
110
+	//  this.ServeSuccessJSON(map[string]interface{}{
111
+	//    "schedules": schedules,
112
+	//    "total":total,
113
+	//  })
114
+	//}else if errcode == nil{
115
+	//  schedules, total, err := service.GetDoctorScheduleList(orgId, page, limit)
116
+	//  if err != nil {
117
+	//    this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
118
+	//    return
119
+	//  }
120
+	//
121
+	//  this.ServeSuccessJSON(map[string]interface{}{
122
+	//    "schedules": schedules,
123
+	//    "total":total,
124
+	//  })
125
+	//}
126
+}
127
+
128
+func (this *DoctorScheduleApiController) GetScheduleDetail() {
129
+
130
+	id, _ := this.GetInt64("id")
131
+	scheduleDetail, err := service.GetScheduleDetail(id)
132
+	if err != nil {
133
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
134
+		return
135
+	}
136
+
137
+	this.ServeSuccessJSON(map[string]interface{}{
138
+		"scheduleDetail": scheduleDetail,
139
+	})
140
+}
141
+
142
+func (this *DoctorScheduleApiController) UpdateSchedule() {
143
+
144
+	id, _ := this.GetInt64("id")
145
+	class_name := this.GetString("class_name")
146
+	class_attributes, _ := this.GetInt64("class_attributes")
147
+	timeone_start := this.GetString("timeone_start")
148
+	timeone_type, _ := this.GetInt64("timeone_type")
149
+	timeone_end := this.GetString("timeone_end")
150
+	timetwo_start := this.GetString("timetwo_start")
151
+	timetwo_type, _ := this.GetInt64("timetwo_type")
152
+	timetwo_end := this.GetString("timetwo_end")
153
+	work_time := this.GetString("work_time")
154
+	remarks := this.GetString("remarks")
155
+	user_org_id, _ := this.GetInt64("user_org_id")
156
+
157
+	schedules := models.DoctorSchedules{
158
+		ClassName:       class_name,
159
+		ClassAttributes: class_attributes,
160
+		TimeoneStart:    timeone_start,
161
+		TimeoneType:     timeone_type,
162
+		TimeoneEnd:      timeone_end,
163
+		TimetwoStart:    timetwo_start,
164
+		TimetwoEnd:      timetwo_end,
165
+		TimetwoType:     timetwo_type,
166
+		WorkTime:        work_time,
167
+		Remarks:         remarks,
168
+	}
169
+
170
+	if user_org_id == 0 {
171
+		err := service.CreateDotorSchedule(&schedules)
172
+		if err != nil {
173
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
174
+			return
175
+		}
176
+	} else {
177
+		//查询是否班种名称已存在
178
+		scheduledata, _ := service.GetClassNameIsExsit(class_name, user_org_id, id)
179
+
180
+		if scheduledata.ID > 0 && scheduledata.ID != id {
181
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "班种名称已存在")
182
+			return
183
+		}
184
+
185
+		err := service.UpdateScheduleList(id, &schedules)
186
+		if err != nil {
187
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
188
+			return
189
+		}
190
+	}
191
+	this.ServeSuccessJSON(map[string]interface{}{
192
+		"schedules": schedules,
193
+	})
194
+}
195
+
196
+func (this *DoctorScheduleApiController) DeleteSchedule() {
197
+	adminUserInfo := this.GetAdminUserInfo()
198
+	orgId := adminUserInfo.CurrentOrgId
199
+	id, _ := this.GetInt64("id")
200
+	//产寻该班种是否存在排班,如果存在不能删除
201
+	_, errcode := service.GetStaffScheduleByScheduleType(id, orgId)
202
+	if errcode == gorm.ErrRecordNotFound {
203
+		err := service.DeleteScheduleById(id)
204
+		if err != nil {
205
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
206
+			return
207
+		}
208
+		returnData := make(map[string]interface{}, 0)
209
+		returnData["msg"] = "ok"
210
+		this.ServeSuccessJSON(returnData)
211
+		return
212
+	} else if errcode == nil {
213
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "该班种已存在排班,不能删除")
214
+		return
215
+	}
216
+
217
+}
218
+
219
+func (this *DoctorScheduleApiController) GetDoctorList() {
220
+
221
+	orgId := this.GetAdminUserInfo().CurrentOrgId
222
+	appId := this.GetAdminUserInfo().CurrentAppId
223
+	//admin_user_id := this.GetAdminUserInfo().AdminUser.Id
224
+	list, err := service.GetDoctorList(orgId, appId)
225
+	if err != nil {
226
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
227
+		return
228
+	}
229
+
230
+	this.ServeSuccessJSON(map[string]interface{}{
231
+		"list": list,
232
+	})
233
+}
234
+
235
+func (this *DoctorScheduleApiController) GetScheduleList() {
236
+
237
+	orgId := this.GetAdminUserInfo().CurrentOrgId
238
+	_, errcode := service.GetDoctorScheduleByOrgId(orgId)
239
+	if errcode == gorm.ErrRecordNotFound {
240
+		scheduleList, err := service.GetScheduleList(0)
241
+		if err != nil {
242
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
243
+			return
244
+		}
245
+
246
+		this.ServeSuccessJSON(map[string]interface{}{
247
+			"scheduleList": scheduleList,
248
+		})
249
+	} else {
250
+		scheduleList, err := service.GetScheduleList(orgId)
251
+		if err != nil {
252
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
253
+			return
254
+		}
255
+
256
+		this.ServeSuccessJSON(map[string]interface{}{
257
+			"scheduleList": scheduleList,
258
+		})
259
+	}
260
+}
261
+
262
+func (this *DoctorScheduleApiController) AddSchedule() {
263
+
264
+	orgId := this.GetAdminUserInfo().CurrentOrgId
265
+	doctor_id, _ := this.GetInt64("doctor_id")
266
+	fmt.Println("doctor_id", doctor_id)
267
+	doctor_type, _ := this.GetInt64("doctor_type")
268
+	fmt.Println("doctor_type", doctor_type)
269
+	start_time, _ := this.GetInt64("start_time")
270
+	fmt.Println("start_time", start_time)
271
+	end_time, _ := this.GetInt64("end_time")
272
+	fmt.Println("end_time", end_time)
273
+	schedule_type, _ := this.GetInt64("schedule_type")
274
+	fmt.Println("schedule_type", schedule_type)
275
+	schedule_week, _ := this.GetInt64("schedule_week")
276
+	fmt.Println("schedule_week", schedule_week)
277
+	schedule_date, _ := this.GetInt64("schedule_date")
278
+	schedule := models.StaffSchedule{
279
+		DoctorId:     doctor_id,
280
+		DoctorType:   doctor_type,
281
+		ScheduleType: schedule_type,
282
+		ScheduleWeek: schedule_week,
283
+		UserOrgId:    orgId,
284
+		StartTime:    start_time,
285
+		EndTime:      end_time,
286
+		Status:       1,
287
+		Ctime:        time.Now().Unix(),
288
+		ScheduleDate: schedule_date,
289
+	}
290
+
291
+	_, errcode := service.GetScheduleListDetail(doctor_id, orgId, schedule_date)
292
+	fmt.Println("errcode-----", errcode)
293
+	if errcode == gorm.ErrRecordNotFound {
294
+		err := service.AddSchedule(&schedule)
295
+		if err != nil {
296
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
297
+			return
298
+		}
299
+
300
+		this.ServeSuccessJSON(map[string]interface{}{
301
+			"schedule": schedule,
302
+		})
303
+	} else if errcode == nil {
304
+		schedules, _ := service.GetScheduleListDetail(doctor_id, orgId, schedule_date)
305
+		err := service.UpdateStaffList(&schedule, schedules.ID)
306
+		if err != nil {
307
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
308
+			return
309
+		}
310
+
311
+		this.ServeSuccessJSON(map[string]interface{}{
312
+			"schedule": schedule,
313
+		})
314
+	}
315
+
316
+}
317
+
318
+func (this *DoctorScheduleApiController) GetStaffScheduleList() {
319
+
320
+	start_time, _ := this.GetInt64("start_time")
321
+	fmt.Println("start_time", start_time)
322
+	end_time, _ := this.GetInt64("end_time")
323
+	fmt.Println("end_time", end_time)
324
+	orgId := this.GetAdminUserInfo().CurrentOrgId
325
+	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
326
+	if err != nil {
327
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
328
+		return
329
+	}
330
+
331
+	this.ServeSuccessJSON(map[string]interface{}{
332
+		"staffList": staffList,
333
+	})
334
+}
335
+
336
+func (this *DoctorScheduleApiController) GetNextWeekList() {
337
+	start_time, _ := this.GetInt64("start_time")
338
+	fmt.Println("start_time", start_time)
339
+	end_time, _ := this.GetInt64("end_time")
340
+	fmt.Println("end_time", end_time)
341
+	orgId := this.GetAdminUserInfo().CurrentOrgId
342
+	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
343
+	if err != nil {
344
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
345
+		return
346
+	}
347
+
348
+	this.ServeSuccessJSON(map[string]interface{}{
349
+		"staffList": staffList,
350
+	})
351
+}
352
+
353
+func (this *DoctorScheduleApiController) GetScheduleByDoctorId() {
354
+
355
+	doctor_id, _ := this.GetInt64("doctor_id")
356
+	start_time, _ := this.GetInt64("start_time")
357
+	end_time, _ := this.GetInt64("end_time")
358
+	orgId := this.GetAdminUserInfo().CurrentOrgId
359
+	staffList, err := service.GetScheduleByDoctorId(doctor_id, start_time, end_time, orgId)
360
+	if err != nil {
361
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
362
+		return
363
+	}
364
+
365
+	this.ServeSuccessJSON(map[string]interface{}{
366
+		"staffList": staffList,
367
+	})
368
+}
369
+
370
+func (this *DoctorScheduleApiController) ToSearchScheduleList() {
371
+
372
+	//doctor_id, _ := this.GetInt64("doctor_id")
373
+	user_name := this.GetString("user_name")
374
+	start_time, _ := this.GetInt64("start_time")
375
+	end_time, _ := this.GetInt64("end_time")
376
+	orgId := this.GetAdminUserInfo().CurrentOrgId
377
+	staffList, err := service.ToSearchSeacheduleList(user_name, start_time, end_time, orgId)
378
+	if err != nil {
379
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
380
+		return
381
+	}
382
+
383
+	this.ServeSuccessJSON(map[string]interface{}{
384
+		"staffList": staffList,
385
+	})
386
+}
387
+
388
+func (this *DoctorScheduleApiController) DeleteStaffSchedule() {
389
+	adminUserInfo := this.GetAdminUserInfo()
390
+	orgId := adminUserInfo.CurrentOrgId
391
+	start_time, _ := this.GetInt64("start_time")
392
+	fmt.Println("start_time", start_time)
393
+	end_time, _ := this.GetInt64("end_time")
394
+	err := service.DeleteStaffSchedule(orgId, start_time, end_time)
395
+	if err != nil {
396
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
397
+		return
398
+	}
399
+	returnData := make(map[string]interface{}, 0)
400
+	returnData["msg"] = "ok"
401
+	this.ServeSuccessJSON(returnData)
402
+	return
403
+}
404
+
405
+func (this *DoctorScheduleApiController) CopyStaffSchedule() {
406
+
407
+	adminUserInfo := this.GetAdminUserInfo()
408
+	orgId := adminUserInfo.CurrentOrgId
409
+	start_time, _ := this.GetInt64("start_time")
410
+	fmt.Println("start_time", start_time)
411
+	end_time, _ := this.GetInt64("end_time")
412
+	fmt.Println("end_time", end_time)
413
+	copy_startime, _ := this.GetInt64("copy_startime")
414
+	fmt.Println("copy_startime", copy_startime)
415
+	copy_endtime, _ := this.GetInt64("copy_endtime")
416
+	schedule, err := service.GetStaffScheduleListTwo(orgId, start_time, end_time)
417
+	//查询选中日期的排班是否存在
418
+	_, errcode := service.GetNextWeekSchedule(orgId, copy_startime, copy_endtime)
419
+	if errcode == gorm.ErrRecordNotFound {
420
+		for _, item := range schedule {
421
+			//fmt.Println(item.StartTime+604800)
422
+			//礼拜1
423
+			if item.ScheduleWeek == 1 {
424
+				item.ScheduleDate = copy_startime
425
+			}
426
+			if item.ScheduleWeek == 2 {
427
+				item.ScheduleDate = copy_startime + 86400
428
+			}
429
+			if item.ScheduleWeek == 3 {
430
+				item.ScheduleDate = copy_startime + 172800
431
+			}
432
+			if item.ScheduleWeek == 4 {
433
+				item.ScheduleDate = copy_startime + 259200
434
+			}
435
+			if item.ScheduleWeek == 5 {
436
+				item.ScheduleDate = copy_startime + 345600
437
+			}
438
+
439
+			if item.ScheduleWeek == 6 {
440
+				item.ScheduleDate = copy_startime + 432000
441
+			}
442
+			//礼拜天
443
+			if item.ScheduleWeek == 0 {
444
+				item.ScheduleDate = copy_endtime
445
+			}
446
+			staffSchedule := models.StaffSchedule{
447
+				DoctorId:     item.DoctorId,
448
+				DoctorType:   item.DoctorType,
449
+				ScheduleType: item.ScheduleType,
450
+				ScheduleWeek: item.ScheduleWeek,
451
+				UserOrgId:    item.UserOrgId,
452
+				StartTime:    copy_startime,
453
+				EndTime:      copy_endtime,
454
+				Status:       1,
455
+				Ctime:        time.Now().Unix(),
456
+				ScheduleDate: item.ScheduleDate,
457
+			}
458
+			service.AddSchedule(&staffSchedule)
459
+		}
460
+		if err != nil {
461
+			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
462
+			return
463
+		}
464
+		returnData := make(map[string]interface{}, 0)
465
+		returnData["msg"] = "ok"
466
+		this.ServeSuccessJSON(returnData)
467
+		return
468
+	} else if errcode == nil {
469
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "排班数据已存在")
470
+		fmt.Print("下周排班已存在")
471
+		return
472
+	}
473
+
474
+}
475
+
476
+func (this *DoctorScheduleApiController) UpdateContinusSchedule() {
477
+	adminUserInfo := this.GetAdminUserInfo()
478
+	orgId := adminUserInfo.CurrentOrgId
479
+	is_status, _ := this.GetInt64("is_status")
480
+	fmt.Println("is_status", is_status)
481
+	schedule := models.ContinueSchedule{
482
+		IsStatus: is_status,
483
+	}
484
+	err := service.UpdateContinusSchedule(&schedule, orgId)
485
+	if err != nil {
486
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
487
+		return
488
+	}
489
+
490
+	this.ServeSuccessJSON(map[string]interface{}{
491
+		"schedule": schedule,
492
+	})
493
+}

+ 48 - 2
controllers/doctors_api_controller.go View File

@@ -2,6 +2,7 @@ package controllers
2 2
 
3 3
 import (
4 4
 	"XT_New/service"
5
+	"strconv"
5 6
 
6 7
 	"XT_New/models"
7 8
 	"XT_New/utils"
@@ -22,6 +23,9 @@ func DoctorApiRegistRouters() {
22 23
 	beego.Router("/api/patient/getAllDoctor", &DoctorsApiController{}, "Get:GetAllDoctor")
23 24
 	beego.Router("/api/patient/updatedryweightdata", &DoctorsApiController{}, "Post:UpdatedDryWeightData")
24 25
 	beego.Router("/api/patient/getalldata", &DoctorsApiController{}, "Get:GetAllData")
26
+	beego.Router("/api/paients/getdryweightdetail", &DoctorsApiController{}, "Get:GetDryWeightDetail")
27
+	beego.Router("/api/patients/modifydryweightdata", &DoctorsApiController{}, "Get:ModifydryWeightData")
28
+	beego.Router("/api/patient/deletedryweight", &DoctorsApiController{}, "Delete:DeleteDryWeight")
25 29
 }
26 30
 
27 31
 func (c *DoctorsApiController) GetAllDoctorAndNurse() {
@@ -154,8 +158,6 @@ func (c *DoctorsApiController) UpdatedDryWeightData() {
154 158
 
155 159
 	err := service.CreatePatientWeight(&patientDryweight)
156 160
 	//sgjPatientDryweight, _ := service.GetLastData(orgid)
157
-	//fmt.Println("fffffffffffffffffffffffffffffffffffffffffffff")
158
-	//fmt.Println("sgjPatientDryWeight",sgjPatientDryweight)s
159 161
 	recordDateStr := time.Now().Format("2006-01-02")
160 162
 	recordDate, parseDateErr := utils.ParseTimeStringToTime("2006-01-02", recordDateStr)
161 163
 	fmt.Scan("parseDateErr", parseDateErr)
@@ -192,3 +194,47 @@ func (c *DoctorsApiController) GetAllData() {
192 194
 		"total": total,
193 195
 	})
194 196
 }
197
+
198
+func (c *DoctorsApiController) GetDryWeightDetail() {
199
+
200
+	id, _ := c.GetInt64("id")
201
+	dryweight, _ := service.GetDryWeightDetailById(id)
202
+	c.ServeSuccessJSON(map[string]interface{}{
203
+		"dryweight": dryweight,
204
+	})
205
+}
206
+
207
+func (c *DoctorsApiController) ModifydryWeightData() {
208
+
209
+	adjustvalue := c.GetString("adjustvalue")
210
+
211
+	creator, _ := c.GetInt64("creator")
212
+
213
+	dryweight, _ := c.GetInt64("dryweight")
214
+	dry := strconv.FormatInt(dryweight, 10)
215
+	dry_weight, _ := strconv.ParseFloat(dry, 64)
216
+	id, _ := c.GetInt64("id")
217
+
218
+	remark := c.GetString("remark")
219
+
220
+	patientDryweight := models.SgjPatientDryweight{
221
+		AdjustedValue: adjustvalue,
222
+		Creator:       creator,
223
+		DryWeight:     dry_weight,
224
+		Remakes:       remark,
225
+	}
226
+	service.ModifyDryWeightData(&patientDryweight, id)
227
+	c.ServeSuccessJSON(map[string]interface{}{
228
+		"patientDryweight": patientDryweight,
229
+	})
230
+}
231
+
232
+func (c *DoctorsApiController) DeleteDryWeight() {
233
+
234
+	id, _ := c.GetInt64("id")
235
+	service.DeleteDryWeight(id)
236
+	returnData := make(map[string]interface{}, 0)
237
+	returnData["msg"] = "ok"
238
+	c.ServeSuccessJSON(returnData)
239
+	return
240
+}

+ 9 - 0
controllers/gobal_config_api_controller.go View File

@@ -1054,6 +1054,15 @@ func (this *GobalConfigApiController) ChangeOrg() {
1054 1054
 			utils.ErrorLog("字段批量插入失败:%v", err)
1055 1055
 		}
1056 1056
 
1057
+		//查询该机构是否存在医护排班
1058
+		_, errcode := service.GetDoctorScheduleByOrgId(tempOrg.Id)
1059
+		//如果没有就插入
1060
+		if errcode == gorm.ErrRecordNotFound {
1061
+			err = service.BatchInsertDoctorSchedule(tempOrg.Id)
1062
+		} else {
1063
+			utils.ErrorLog("医护排班默认数据插入失败:%v", err)
1064
+		}
1065
+
1057 1066
 		var didRegistedForSCRM bool = false
1058 1067
 		var didRegistedForCDM bool = false
1059 1068
 		var didRegistedForMall bool = false

+ 10 - 0
controllers/mobile_api_controllers/login_api_controller.go View File

@@ -7,6 +7,7 @@ import (
7 7
 	"XT_New/utils"
8 8
 	"encoding/json"
9 9
 	"fmt"
10
+	"github.com/jinzhu/gorm"
10 11
 	"io/ioutil"
11 12
 	"net/http"
12 13
 	"net/url"
@@ -199,6 +200,15 @@ func (this *LoginAPIController) LoginByPwd() {
199 200
 			utils.ErrorLog("字段批量插入失败:%v", requestErr)
200 201
 		}
201 202
 
203
+		//查询该机构是否存在医护排班
204
+		_, errcode := service.GetDoctorScheduleByOrgId(org.Id)
205
+		//如果没有就插入
206
+		if errcode == gorm.ErrRecordNotFound {
207
+			err = service.BatchInsertDoctorSchedule(org.Id)
208
+		} else {
209
+			utils.ErrorLog("医护排班默认数据插入失败:%v", err)
210
+		}
211
+
202 212
 		this.ServeSuccessJSON(map[string]interface{}{
203 213
 			"admin": adminUser,
204 214
 			"user":  appRole,

+ 98 - 0
controllers/new_mobile_api_controllers/staff_schedule_api_controller.go View File

@@ -0,0 +1,98 @@
1
+package new_mobile_api_controllers
2
+
3
+import (
4
+	"XT_New/controllers/mobile_api_controllers"
5
+	"XT_New/enums"
6
+	"XT_New/service"
7
+	"fmt"
8
+)
9
+
10
+type StaffScheduleApiController struct {
11
+	mobile_api_controllers.MobileBaseAPIAuthController
12
+}
13
+
14
+func (this *StaffScheduleApiController) GetMobileDoctorList() {
15
+
16
+	orgId := this.GetMobileAdminUserInfo().Org.Id
17
+	appId := this.GetMobileAdminUserInfo().App.Id
18
+	staffList, err := service.GetDoctorList(orgId, appId)
19
+	if err != nil {
20
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
21
+		return
22
+	}
23
+
24
+	this.ServeSuccessJSON(map[string]interface{}{
25
+		"staffList": staffList,
26
+	})
27
+}
28
+
29
+func (this *StaffScheduleApiController) GetMobileStaffScheduleList() {
30
+
31
+	orgId := this.GetMobileAdminUserInfo().Org.Id
32
+	fmt.Println("orgid", orgId)
33
+	start_time, _ := this.GetInt64("start_time")
34
+	fmt.Println("staft_time", start_time)
35
+	end_time, _ := this.GetInt64("end_time")
36
+	fmt.Println("end_time", end_time)
37
+	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
38
+	if err != nil {
39
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
40
+		return
41
+	}
42
+
43
+	this.ServeSuccessJSON(map[string]interface{}{
44
+		"staffList": staffList,
45
+	})
46
+}
47
+
48
+func (this *StaffScheduleApiController) GetMobileNextWeekScheduleLIst() {
49
+
50
+	orgId := this.GetMobileAdminUserInfo().Org.Id
51
+	fmt.Println("orgid", orgId)
52
+	start_time, _ := this.GetInt64("start_time")
53
+	fmt.Println("staft_time", start_time)
54
+	end_time, _ := this.GetInt64("end_time")
55
+	fmt.Println("end_time", end_time)
56
+	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
57
+	if err != nil {
58
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
59
+		return
60
+	}
61
+
62
+	this.ServeSuccessJSON(map[string]interface{}{
63
+		"staffList": staffList,
64
+	})
65
+}
66
+
67
+func (this *StaffScheduleApiController) GetScheduleByUserType() {
68
+	doctor_id, _ := this.GetInt64("doctor_id")
69
+	start_time, _ := this.GetInt64("start_time")
70
+	end_time, _ := this.GetInt64("end_time")
71
+	orgId := this.GetMobileAdminUserInfo().Org.Id
72
+	staffList, err := service.GetScheduleByDoctorId(doctor_id, start_time, end_time, orgId)
73
+	if err != nil {
74
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
75
+		return
76
+	}
77
+
78
+	this.ServeSuccessJSON(map[string]interface{}{
79
+		"staffList": staffList,
80
+	})
81
+}
82
+
83
+func (this *StaffScheduleApiController) GetSearchPatientByDoctorId() {
84
+
85
+	orgId := this.GetMobileAdminUserInfo().Org.Id
86
+	user_name := this.GetString("user_name")
87
+	start_time, _ := this.GetInt64("start_time")
88
+	end_time, _ := this.GetInt64("end_time")
89
+	staffList, err := service.ToSearchSeacheduleList(user_name, start_time, end_time, orgId)
90
+	if err != nil {
91
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
92
+		return
93
+	}
94
+
95
+	this.ServeSuccessJSON(map[string]interface{}{
96
+		"staffList": staffList,
97
+	})
98
+}

+ 12 - 0
controllers/new_mobile_api_controllers/staff_schedule_api_router.go View File

@@ -0,0 +1,12 @@
1
+package new_mobile_api_controllers
2
+
3
+import "github.com/astaxie/beego"
4
+
5
+func StaffScheduleApiControllersRegisterRouters() {
6
+
7
+	beego.Router("/m/api/getmobiledoctorlist", &StaffScheduleApiController{}, "Get:GetMobileDoctorList")
8
+	beego.Router("/m/api/getmobilestaffschedulelist", &StaffScheduleApiController{}, "Get:GetMobileStaffScheduleList")
9
+	beego.Router("/m/api/getmobilenextweekschedulelist", &StaffScheduleApiController{}, "Get:GetMobileNextWeekScheduleLIst")
10
+	beego.Router("/m/api/getschedulebyusertype", &StaffScheduleApiController{}, "Get:GetScheduleByUserType")
11
+	beego.Router("/m/api/getsearchpatientbydoctorid", &StaffScheduleApiController{}, "Get:GetSearchPatientByDoctorId")
12
+}

+ 6 - 0
controllers/schedule_api_controller.go View File

@@ -334,7 +334,13 @@ func (c *ScheduleApiController) CreateSchedule() {
334 334
 		return
335 335
 	}
336 336
 
337
+	redis := service.RedisClient()
338
+	defer redis.Close()
337 339
 	err = service.CreateSchedule(&schedule)
340
+
341
+	key := "scheduals_" + scheduleDate + "_" + strconv.FormatInt(adminUserInfo.CurrentOrgId, 10)
342
+	redis.Set(key, "", time.Second)
343
+
338 344
 	fmt.Println(err)
339 345
 	if err != nil {
340 346
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateScheduleFail)

+ 29 - 0
controllers/verify_login_controller.go View File

@@ -7,10 +7,12 @@ import (
7 7
 	"XT_New/utils"
8 8
 	"fmt"
9 9
 	"github.com/astaxie/beego"
10
+	"github.com/jinzhu/gorm"
10 11
 	"net/url"
11 12
 	"regexp"
12 13
 	"strconv"
13 14
 	"strings"
15
+	"time"
14 16
 )
15 17
 
16 18
 func VerifyUserLoginControllerRegistRouters() {
@@ -184,6 +186,33 @@ func (this *VerifyUserLoginAPIController) VerifyToken() {
184 186
 				utils.ErrorLog("字段批量插入失败:%v", err)
185 187
 			}
186 188
 
189
+			//查询该机构是否存在医护排班
190
+			_, errcode := service.GetDoctorScheduleByOrgId(curOrg.Id)
191
+			fmt.Println("errcode2------------------", errcode)
192
+			//如果没有就插入
193
+			if errcode == gorm.ErrRecordNotFound {
194
+				err = service.BatchInsertDoctorSchedule(curOrg.Id)
195
+			} else {
196
+				utils.ErrorLog("医护排班默认数据插入失败:%v", err)
197
+			}
198
+
199
+			//产询该机构是否连续排班的状态值
200
+			_, errcodes := service.GetContinueScheduleByOrgId(curOrg.Id)
201
+			if errcodes == gorm.ErrRecordNotFound {
202
+				schedule := models.ContinueSchedule{
203
+					IsStatus:  1,
204
+					UserOrgId: curOrg.Id,
205
+					Status:    1,
206
+					Ctime:     time.Now().Unix(),
207
+				}
208
+				err := service.CreateContinueSchedule(&schedule)
209
+				if err == nil {
210
+					utils.ErrorLog("创建连续排班值成功:%v", err)
211
+				}
212
+			} else {
213
+				utils.ErrorLog("连续排班已存在数据:%v", err)
214
+			}
215
+
187 216
 			var pruviews []*models.Purview
188 217
 			var curAppUrlfors []string
189 218
 			if len(curAppUrlfors) == 0 {

+ 1 - 1
main.go View File

@@ -16,6 +16,6 @@ func main() {
16 16
 	service.BeginAutoCreateWeekDisinfectionJob()
17 17
 	//service.BeginAutoCreatePlanJob()
18 18
 	//service.AutoClearSchedules()
19
-
19
+	service.BeginAutoCreateStaffScheduleJob()
20 20
 	beego.Run()
21 21
 }

+ 85 - 0
models/doctor_schedule_models.go View File

@@ -0,0 +1,85 @@
1
+package models
2
+
3
+type DoctorSchedules struct {
4
+	ID              int64  `gorm:"column:id" json:"id" form:"id"`
5
+	ClassName       string `gorm:"column:class_name" json:"class_name" form:"class_name"`
6
+	ClassAttributes int64  `gorm:"column:class_attributes" json:"class_attributes" form:"class_attributes"`
7
+	TimeoneStart    string `gorm:"column:timeone_start" json:"timeone_start" form:"timeone_start"`
8
+	TimeoneType     int64  `gorm:"column:timeone_type" json:"timeone_type" form:"timeone_type"`
9
+	TimeoneEnd      string `gorm:"column:timeone_end" json:"timeone_end" form:"timeone_end"`
10
+	TimetwoStart    string `gorm:"column:timetwo_start" json:"timetwo_start" form:"timetwo_start"`
11
+	TimetwoType     int64  `gorm:"column:timetwo_type" json:"timetwo_type" form:"timetwo_type"`
12
+	TimetwoEnd      string `gorm:"column:timetwo_end" json:"timetwo_end" form:"timetwo_end"`
13
+	WorkTime        string `gorm:"column:work_time" json:"work_time" form:"work_time"`
14
+	Remarks         string `gorm:"column:remarks" json:"remarks" form:"remarks"`
15
+	UserOrgId       int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
16
+	Status          int64  `gorm:"column:status" json:"status" form:"status"`
17
+	Ctime           int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
18
+	Mtime           int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
19
+}
20
+
21
+func (DoctorSchedules) TableName() string {
22
+	return "xt_doctor_schedules"
23
+}
24
+
25
+type StaffSchedule struct {
26
+	ID           int64 `gorm:"column:id" json:"id" form:"id"`
27
+	DoctorId     int64 `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
28
+	DoctorType   int64 `gorm:"column:doctor_type" json:"doctor_type" form:"doctor_type"`
29
+	ScheduleType int64 `gorm:"column:schedule_type" json:"schedule_type" form:"schedule_type"`
30
+	ScheduleWeek int64 `gorm:"column:schedule_week" json:"schedule_week" form:"schedule_week"`
31
+	UserOrgId    int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
32
+	StartTime    int64 `gorm:"column:start_time" json:"start_time" form:"start_time"`
33
+	EndTime      int64 `gorm:"column:end_time" json:"end_time" form:"end_time"`
34
+	Status       int64 `gorm:"column:status" json:"status" form:"status"`
35
+	Ctime        int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
36
+	Mtime        int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
37
+	ScheduleDate int64 `gorm:"column:schedule_date" json:"schedule_date" form:"schedule_date"`
38
+}
39
+
40
+func (StaffSchedule) TableName() string {
41
+	return "xt_staff_schedule"
42
+}
43
+
44
+type XtStaffSchedule struct {
45
+	ID           int64  `gorm:"column:id" json:"id" form:"id"`
46
+	DoctorId     int64  `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
47
+	DoctorType   int64  `gorm:"column:doctor_type" json:"doctor_type" form:"doctor_type"`
48
+	ScheduleType int64  `gorm:"column:schedule_type" json:"schedule_type" form:"schedule_type"`
49
+	ScheduleWeek int64  `gorm:"column:schedule_week" json:"schedule_week" form:"schedule_week"`
50
+	UserOrgId    int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
51
+	StartTime    int64  `gorm:"column:start_time" json:"start_time" form:"start_time"`
52
+	EndTime      int64  `gorm:"column:end_time" json:"end_time" form:"end_time"`
53
+	Status       int64  `gorm:"column:status" json:"status" form:"status"`
54
+	Ctime        int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
55
+	Mtime        int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
56
+	ScheduleDate int64  `gorm:"column:schedule_date" json:"schedule_date" form:"schedule_date"`
57
+	UserName     string `gorm:"column:user_name" json:"user_name" form:"user_name"`
58
+	ClassName    string `gorm:"column:class_name" json:"class_name" form:"class_name"`
59
+	AdminUserId  int64  `gorm:"column:admin_user_id" json:"admin_user_id" form:"admin_user_id"`
60
+	UserType     int64  `gorm:"column:user_type" json:"user_type" form:"user_type"`
61
+}
62
+
63
+type XTSgjUserAdminRole struct {
64
+	ID          int64  `gorm:"column:id" json:"id" form:"id"`
65
+	AdminUserId int64  `gorm:"column:admin_user_id" json:"admin_user_id" form:"admin_user_id"`
66
+	UserName    string `gorm:"column:user_name" json:"user_name" form:"user_name"`
67
+	UserType    int64  `gorm:"column:user_type" json:"user_type" form:"user_type"`
68
+}
69
+
70
+func (XTSgjUserAdminRole) TableName() string {
71
+	return "sgj_user_admin_role"
72
+}
73
+
74
+type ContinueSchedule struct {
75
+	IsStatus  int64 `gorm:"column:is_status" json:"is_status" form:"is_status"`
76
+	Status    int64 `gorm:"column:status" json:"status" form:"status"`
77
+	UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
78
+	ID        int64 `gorm:"column:id" json:"id" form:"id"`
79
+	Ctime     int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
80
+	Mtime     int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
81
+}
82
+
83
+func (ContinueSchedule) TableName() string {
84
+	return "xt_continue_schedule"
85
+}

+ 2 - 0
routers/router.go View File

@@ -62,4 +62,6 @@ func init() {
62 62
 	new_m_api.NewManageApiControllersRegisterRouters()
63 63
 	controllers.ManageRouters()
64 64
 	//controllers.PatientRouters()
65
+	controllers.DoctorScheduleRouters()
66
+	new_m_api.StaffScheduleApiControllersRegisterRouters()
65 67
 }

+ 147 - 0
service/auto_create_staff_schedule_service.go View File

@@ -0,0 +1,147 @@
1
+package service
2
+
3
+import (
4
+	"XT_New/models"
5
+	"fmt"
6
+	"github.com/jinzhu/gorm"
7
+	"github.com/robfig/cron"
8
+	"time"
9
+)
10
+
11
+//// cron表达式 https://www.cnblogs.com/zuxingyu/p/6023919.html
12
+//var createWeekDisinfectionCronJob *cron.Cron
13
+//
14
+//func init() {
15
+//  createWeekDisinfectionCronJob = cron.New()
16
+//  //spec := "0 0 23 * * ?" // 每天23点执行一次
17
+//  spec := "0 55 23 * * ?" // 每天23点55执行一次
18
+//  //spec := "0 0 5 * * ?" // 每天23点55执行一次
19
+//  //spec := "0 */1 * * * ?" // 每1分钟执行一次
20
+//  createWeekDisinfectionCronJob.AddFunc(spec, func() {
21
+//
22
+//    AutoCreateWeekDisinfectionJob()
23
+//  })
24
+//}
25
+//
26
+//func BeginAutoCreateWeekDisinfectionJob() {
27
+//
28
+//  createWeekDisinfectionCronJob.Start()
29
+//}
30
+
31
+//// cron表达式 https://www.cnblogs.com/zuxingyu/p/6023919.html
32
+
33
+var createStaffScheduleCronJob *cron.Cron
34
+
35
+func init() {
36
+	createStaffScheduleCronJob = cron.New()
37
+	//spec := "0 */1 * * * ?" // 每1分钟执行一次
38
+	spec := "0 55 23 * * ?" // 每天23点55执行一次
39
+	createStaffScheduleCronJob.AddFunc(spec, func() {
40
+		AutoCreateStaffScheduleJob()
41
+	})
42
+}
43
+
44
+func BeginAutoCreateStaffScheduleJob() {
45
+
46
+	createStaffScheduleCronJob.Start()
47
+}
48
+
49
+func AutoCreateStaffScheduleJob() {
50
+
51
+	now := time.Now()
52
+
53
+	offset := int(time.Monday - now.Weekday())
54
+	if offset > 0 {
55
+		offset = -6
56
+	}
57
+	weekStart := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset)
58
+	fmt.Println("weekStart", weekStart.Unix())
59
+	start_time := weekStart.Unix()
60
+	fmt.Println("start_time", start_time)
61
+	weekEnd := time.Date(now.Year(), now.Month(), now.Day()+6, 0, 0, 0, 0, time.Local).AddDate(0, 0, offset)
62
+	fmt.Println("weekEnd", weekEnd.Unix())
63
+	end_time := weekEnd.Unix()
64
+	fmt.Println("end_time", end_time)
65
+
66
+	//查询该机构的连续排班是否开启
67
+	// 获取所有机构信息
68
+	orgs, _ := GetAllOrgs()
69
+	for _, item := range orgs {
70
+		fmt.Println(item)
71
+		//查询该机构是否开启连续排班功能
72
+		schdule, _ := GetAutoContinueSchdule(item.ID)
73
+		//如果状态值未开启不生成连续排班
74
+		if schdule.IsStatus == 0 {
75
+			fmt.Println("连续排班未开启")
76
+		}
77
+		//连续排班开启
78
+		if schdule.IsStatus == 1 {
79
+			//查询该机构本周的排班数据
80
+			schedules, _ := GeThisWeekScheduleData(item.ID, start_time, end_time)
81
+			for _, it := range schedules {
82
+				staffSchedule := models.StaffSchedule{
83
+					DoctorId:     it.DoctorId,
84
+					DoctorType:   it.DoctorType,
85
+					ScheduleType: it.ScheduleType,
86
+					ScheduleWeek: it.ScheduleWeek,
87
+					UserOrgId:    it.UserOrgId,
88
+					StartTime:    it.StartTime + 604800,
89
+					EndTime:      it.EndTime + 604800,
90
+					Status:       1,
91
+					Ctime:        time.Now().Unix(),
92
+					ScheduleDate: it.ScheduleDate + 604800,
93
+				}
94
+				//产询该机构下周是否填加了数据
95
+				_, errcode := GetNextWeekData(it.UserOrgId, it.DoctorId, it.ScheduleDate+604800)
96
+				if errcode == gorm.ErrRecordNotFound {
97
+					AddSchedules(&staffSchedule)
98
+				} else {
99
+					fmt.Println("下周数据已生成")
100
+				}
101
+				//if len(schedules) != len(schedule) {
102
+				//    AddSchedules(&staffSchedule)
103
+				//}else{
104
+				//   fmt.Println("下周数据已生成")
105
+				//   //createStaffScheduleCronJob.Stop()
106
+				//}
107
+			}
108
+		}
109
+	}
110
+}
111
+
112
+func GetAllOrgs() (orgs []*models.SgjUserOrg, err error) {
113
+
114
+	err = UserReadDB().Model(&orgs).Where("status = 1").Find(&orgs).Error
115
+	return orgs, err
116
+}
117
+
118
+func GetAutoContinueSchdule(orgid int64) (models.ContinueSchedule, error) {
119
+
120
+	schedule := models.ContinueSchedule{}
121
+	err := XTReadDB().Model(&schedule).Where("user_org_id = ? and status = 1", orgid).Find(&schedule).Error
122
+	return schedule, err
123
+}
124
+
125
+func GeThisWeekScheduleData(orgid int64, startime int64, endtime int64) (staffschedule []*models.StaffSchedule, err error) {
126
+
127
+	err = XTReadDB().Model(&staffschedule).Where("user_org_id = ? and status = 1 and start_time>=? and end_time<=?", orgid, startime, endtime).Find(&staffschedule).Error
128
+	return staffschedule, err
129
+}
130
+
131
+func AddSchedules(schedule *models.StaffSchedule) error {
132
+
133
+	err := XTWriteDB().Model(&schedule).Create(&schedule).Error
134
+	return err
135
+}
136
+
137
+func GetNextWeekData(orgid int64, docid int64, scheduledate int64) (*models.StaffSchedule, error) {
138
+	schedule := models.StaffSchedule{}
139
+	err := XTReadDB().Model(&schedule).Where("user_org_id = ? and status = 1 and doctor_id =? and schedule_date =?", orgid, docid, scheduledate).Find(&schedule).Error
140
+	if err == gorm.ErrRecordNotFound {
141
+		return nil, err
142
+	}
143
+	if err != nil {
144
+		return nil, err
145
+	}
146
+	return &schedule, nil
147
+}

+ 12 - 0
service/data.go View File

@@ -225,3 +225,15 @@ func BatchInsertFiledSystemConfig(org_id int64) (err error) {
225 225
 	err = readDb.Exec("INSERT  INTO sgj_xt.xt_filed_config  ( org_id,  module,  filed_name,  filed_name_cn,  is_show ) SELECT ?,  module,  filed_name,  filed_name_cn,  is_show FROM sgj_xt.xt_filed_config  WHERE org_id = 9442", org_id).Error
226 226
 	return
227 227
 }
228
+
229
+func BatchInsertDoctorSchedule(orgid int64) (err error) {
230
+
231
+	err = readDb.Exec("INSERT INTO sgj_xt.xt_doctor_schedules(user_org_id,class_name,class_attributes,timeone_start,timeone_type,timeone_end,timetwo_start,timetwo_type,timetwo_end,work_time,remarks,status,ctime) SELECT ?, class_name,class_attributes,timeone_start,timeone_type,timeone_end,timetwo_start,timetwo_type,timetwo_end,work_time,remarks,status,ctime FROM xt_doctor_schedules WHERE user_org_id = 0", orgid).Error
232
+	return
233
+}
234
+
235
+func CreateContinueSchedule(schedule *models.ContinueSchedule) error {
236
+
237
+	err := writeDb.Model(&schedule).Create(&schedule).Error
238
+	return err
239
+}

+ 226 - 0
service/doctor_schedule_service.go View File

@@ -0,0 +1,226 @@
1
+package service
2
+
3
+import (
4
+	"XT_New/models"
5
+	"fmt"
6
+	"github.com/jinzhu/gorm"
7
+	"time"
8
+)
9
+
10
+func GetClassName(orgid int64, class_name string) (*models.DoctorSchedules, error) {
11
+
12
+	schedules := models.DoctorSchedules{}
13
+	err := XTReadDB().Model(&schedules).Where("user_org_id = ? and status = 1 and class_name = ?", orgid, class_name).Find(&schedules).Error
14
+	if err == gorm.ErrRecordNotFound {
15
+		return nil, err
16
+	}
17
+	if err != nil {
18
+		return nil, err
19
+	}
20
+	return &schedules, nil
21
+}
22
+
23
+func CreateDotorSchedule(schedules *models.DoctorSchedules) error {
24
+
25
+	err := XTWriteDB().Create(&schedules).Error
26
+	return err
27
+}
28
+
29
+func GetDoctorScheduleByOrgId(orgid int64) (*models.DoctorSchedules, error) {
30
+	schedules := models.DoctorSchedules{}
31
+	err := XTReadDB().Model(&schedules).Where("user_org_id = ? and status = 1", orgid).Find(&schedules).Error
32
+	if err == gorm.ErrRecordNotFound {
33
+		return nil, err
34
+	}
35
+	if err != nil {
36
+		return nil, err
37
+	}
38
+	return &schedules, nil
39
+}
40
+
41
+func GetDoctorScheduleList(orgid int64, page int64, limit int64) (schedules []*models.DoctorSchedules, total int64, err error) {
42
+	offset := (page - 1) * limit
43
+	err = XTReadDB().Model(&schedules).Where("user_org_id = ? and status =1", orgid).Count(&total).Offset(offset).Limit(limit).Find(&schedules).Error
44
+	return schedules, total, err
45
+}
46
+
47
+func GetScheduleDetail(id int64) (models.DoctorSchedules, error) {
48
+	schedules := models.DoctorSchedules{}
49
+	err := XTReadDB().Model(&schedules).Where("id=? and status = 1", id).Find(&schedules).Error
50
+	return schedules, err
51
+}
52
+
53
+func GetClassNameIsExsit(classname string, orgid int64, id int64) (schedule models.DoctorSchedules, err error) {
54
+
55
+	err = XTReadDB().Model(&schedule).Where("class_name = ? and user_org_id =? and id <> ?", classname, orgid, id).First(&schedule).Error
56
+	return schedule, err
57
+}
58
+
59
+func UpdateScheduleList(id int64, schedules *models.DoctorSchedules) error {
60
+
61
+	err := XTReadDB().Model(&schedules).Where("id=?", id).Updates(map[string]interface{}{"class_name": schedules.ClassName, "class_attributes": schedules.ClassAttributes, "timeone_start": schedules.TimeoneStart, "timeone_type": schedules.TimeoneType, "timeone_end": schedules.TimeoneEnd, "timetwo_start": schedules.TimetwoStart, "timetwo_type": schedules.TimetwoType, "timetwo_end": schedules.TimetwoEnd, "work_time": schedules.WorkTime, "remarks": schedules.Remarks, "mtime": time.Now().Unix()}).Error
62
+	return err
63
+}
64
+
65
+func GetStaffScheduleByScheduleType(id int64, orgid int64) (*models.StaffSchedule, error) {
66
+	schedule := models.StaffSchedule{}
67
+	err := XTReadDB().Model(&schedule).Where("schedule_type = ? and user_org_id = ? and status = 1", id, orgid).Find(&schedule).Error
68
+	if err == gorm.ErrRecordNotFound {
69
+		return nil, err
70
+	}
71
+	if err != nil {
72
+		return nil, err
73
+	}
74
+	return &schedule, nil
75
+}
76
+
77
+func DeleteScheduleById(id int64) error {
78
+	schedules := models.DoctorSchedules{}
79
+	err := XTWriteDB().Model(&schedules).Where("id=?", id).Updates(map[string]interface{}{"status": 0}).Error
80
+	return err
81
+}
82
+
83
+func GetDoctorList(orgid int64, appid int64) (role []*models.XTSgjUserAdminRole, err error) {
84
+
85
+	err = UserReadDB().Model(&role).Where("org_id = ? and app_id = ? and status = 1 ", orgid, appid).Order("user_type desc").Find(&role).Error
86
+	return role, err
87
+}
88
+
89
+func GetScheduleList(orgid int64) (schedule []*models.DoctorSchedules, err error) {
90
+
91
+	err = XTReadDB().Model(&schedule).Where("user_org_id = ? and status = 1", orgid).Find(&schedule).Error
92
+	return schedule, err
93
+}
94
+
95
+func GetScheduleListDetail(doctor_id int64, orgid int64, scheduledate int64) (*models.StaffSchedule, error) {
96
+	schedule := models.StaffSchedule{}
97
+	err := XTReadDB().Model(&schedule).Where("doctor_id = ? and user_org_id = ? and status =1 and schedule_date = ?", doctor_id, orgid, scheduledate).Find(&schedule).Error
98
+	if err == gorm.ErrRecordNotFound {
99
+		return nil, err
100
+	}
101
+	if err != nil {
102
+		return nil, err
103
+	}
104
+	return &schedule, nil
105
+}
106
+
107
+func AddSchedule(schedule *models.StaffSchedule) error {
108
+
109
+	err := XTWriteDB().Create(&schedule).Error
110
+	return err
111
+}
112
+
113
+func UpdateStaffList(schedule *models.StaffSchedule, id int64) error {
114
+	err := XTReadDB().Model(&schedule).Where("id=?", id).Updates(map[string]interface{}{"doctor_id": schedule.DoctorId, "doctor_type": schedule.DoctorType, "schedule_type": schedule.ScheduleType, "schedule_week": schedule.ScheduleWeek, "schedule_date": schedule.ScheduleDate, "mtime": time.Now().Unix()}).Error
115
+	return err
116
+}
117
+
118
+func GetStaffScheduleList(orgid int64, startime int64, endtime int64) (schedule []*models.XtStaffSchedule, err error) {
119
+
120
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
121
+	if startime > 0 {
122
+		db = db.Where("x.start_time >=?", startime)
123
+	}
124
+	if endtime > 0 {
125
+		db = db.Where("x.end_time <=?", endtime)
126
+	}
127
+	if orgid > 0 {
128
+		db = db.Where("x.user_org_id = ?", orgid)
129
+	}
130
+	err = db.Group("x.id").Select("x.id,x.doctor_id,x.doctor_type,x.schedule_type,x.schedule_week,x.user_org_id,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.admin_user_id,r.user_type").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1", orgid).Scan(&schedule).Error
131
+	return schedule, err
132
+}
133
+
134
+func GetStaffScheduleListTwo(orgid int64, startime int64, endtime int64) (schedule []*models.StaffSchedule, err error) {
135
+
136
+	err = XTReadDB().Model(&schedule).Where("user_org_id = ? and start_time>=? and end_time<=? and status = 1", orgid, startime, endtime).Find(&schedule).Error
137
+	return schedule, err
138
+}
139
+
140
+func GetNextWeekSchedule(orgid int64, startime int64, endtime int64) (*models.StaffSchedule, error) {
141
+	schedule := models.StaffSchedule{}
142
+	err := XTReadDB().Model(&schedule).Where("user_org_id = ? and status = 1 and start_time >=? and end_time<=?", orgid, startime, endtime).Find(&schedule).Error
143
+	if err == gorm.ErrRecordNotFound {
144
+		return nil, err
145
+	}
146
+	if err != nil {
147
+		return nil, err
148
+	}
149
+	return &schedule, nil
150
+}
151
+
152
+func GetScheduleByDoctorId(doctorid int64, startime int64, endtime int64, orgid int64) (schedule []*models.XtStaffSchedule, err error) {
153
+	fmt.Println(doctorid, startime, endtime)
154
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
155
+	if startime > 0 {
156
+		db = db.Where("x.start_time >=?", startime)
157
+	}
158
+	if endtime > 0 {
159
+		db = db.Where("x.end_time <=?", endtime)
160
+	}
161
+	if orgid > 0 {
162
+		db = db.Where("x.user_org_id = ?", orgid)
163
+	}
164
+	if doctorid == 0 {
165
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
166
+	}
167
+	if doctorid > 0 {
168
+		db = db.Where("x.doctor_type = ?", doctorid)
169
+	}
170
+	err = db.Group("x.id").Select("x.id,x.doctor_id,x.doctor_type,x.schedule_type,x.schedule_week,x.user_org_id,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.admin_user_id").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1", orgid).Scan(&schedule).Error
171
+	return schedule, err
172
+}
173
+
174
+func ToSearchSeacheduleList(keywords string, startime int64, endtime int64, orgid int64) (schedule []*models.XtStaffSchedule, err error) {
175
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
176
+	if startime > 0 {
177
+		db = db.Where("x.start_time >=?", startime)
178
+	}
179
+	if endtime > 0 {
180
+		db = db.Where("x.end_time <=?", endtime)
181
+	}
182
+	if orgid > 0 {
183
+		db = db.Where("x.user_org_id = ?", orgid)
184
+	}
185
+	likeKey := "%" + keywords + "%"
186
+	//if(doctorid >0){
187
+	//  db = db.Where("x.doctor_id = ?", doctorid)
188
+	//}
189
+	err = db.Group("x.id").Select("x.id,x.doctor_id,x.doctor_type,x.schedule_type,x.schedule_week,x.user_org_id,x.start_time,x.schedule_date,x.end_time,r.user_type,r.user_name,s.class_name,r.admin_user_id").Joins("left join sgj_users.sgj_user_admin_role AS r ON r.admin_user_id = x.doctor_id").Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1 and r.user_name like ?", orgid, likeKey).Scan(&schedule).Error
190
+	return schedule, err
191
+}
192
+
193
+func DeleteStaffSchedule(orgid int64, startime int64, endtime int64) error {
194
+
195
+	schedule := models.StaffSchedule{}
196
+	err := XTWriteDB().Model(&schedule).Where("user_org_id = ? and start_time >= ? and end_time <=?", orgid, startime, endtime).Updates(map[string]interface{}{"status": 0}).Error
197
+	return err
198
+}
199
+
200
+func GetContinueScheduleByOrgId(orgid int64) (*models.ContinueSchedule, error) {
201
+
202
+	//schedules := models.DoctorSchedules{}
203
+	//err := XTReadDB().Model(&schedules).Where("user_org_id = ? and status = 1", orgid).Find(&schedules).Error
204
+	//if err == gorm.ErrRecordNotFound {
205
+	//  return nil, err
206
+	//}
207
+	//if err != nil {
208
+	//  return nil, err
209
+	//}
210
+	//return &schedules, nil
211
+	schedule := models.ContinueSchedule{}
212
+	err := XTReadDB().Model(&schedule).Where("user_org_id = ? and status = 1", orgid).Find(&schedule).Error
213
+	if err == gorm.ErrRecordNotFound {
214
+		return nil, err
215
+	}
216
+	if err != nil {
217
+		return nil, err
218
+	}
219
+	return &schedule, nil
220
+}
221
+
222
+func UpdateContinusSchedule(schedule *models.ContinueSchedule, orgid int64) error {
223
+
224
+	err := XTWriteDB().Model(&schedule).Where("user_org_id = ? and status = 1", orgid).Updates(map[string]interface{}{"is_status": schedule.IsStatus, "mtime": time.Now().Unix()}).Error
225
+	return err
226
+}