XMLWAN преди 4 години
родител
ревизия
38fca5e3a7

+ 47 - 13
controllers/doctor_schedule_api_controller.go Целия файл

@@ -36,6 +36,8 @@ func DoctorScheduleRouters() {
36 36
 	beego.Router("/api/schedule/getscheudlelisttotal", &DoctorScheduleApiController{}, "Get:GetScheduleListTotal")
37 37
 	beego.Router("/api/schedule/tosearchtotal", &DoctorScheduleApiController{}, "Get:ToSeachTotal")
38 38
 	beego.Router("/api/schedule/changeoption", &DoctorScheduleApiController{}, "Get:ChangeOption")
39
+	beego.Router("/api/schedule/getchartlist", &DoctorScheduleApiController{}, "Get:GetChartlist")
40
+
39 41
 }
40 42
 
41 43
 func (this *DoctorScheduleApiController) SaveDoctorSchedules() {
@@ -578,47 +580,79 @@ func (this *DoctorScheduleApiController) GetScheduleListTotal() {
578 580
 
579 581
 func (this *DoctorScheduleApiController) ToSeachTotal() {
580 582
 	start_time, _ := this.GetInt64("start_time")
581
-	fmt.Println(start_time)
582 583
 	end_time, _ := this.GetInt64("end_time")
583
-	fmt.Println("end_time", end_time)
584 584
 	adminUserInfo := this.GetAdminUserInfo()
585 585
 	orgId := adminUserInfo.CurrentOrgId
586
-	fmt.Println(orgId)
587 586
 	keyword := this.GetString("keyword")
588
-	fmt.Println("keyword", keyword)
587
+	//统计表
589 588
 	scheduletotal, err := service.GetSearchScheduleListTotal(orgId, start_time, end_time, keyword)
590 589
 	list, err := service.GeSearchtTotalMinutes(orgId, start_time, end_time, keyword)
591 590
 	workDay, err := service.GetSearchWorkDay(orgId, start_time, end_time, keyword)
592 591
 	noWorkDay, err := service.GetSearchWorkNoDay(orgId, start_time, end_time, keyword)
592
+
593
+	//统计图
594
+	chartTotalMinute, err := service.GetChartTotalMinutesOne(orgId, start_time, end_time, keyword)
595
+	chartWorkDayMinute, err := service.GetChartTotalMinutesTwo(orgId, start_time, end_time, keyword)
596
+
593 597
 	if err != nil {
594 598
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
595 599
 		return
596 600
 	}
597 601
 	this.ServeSuccessJSON(map[string]interface{}{
598
-		"scheduletotal": scheduletotal,
599
-		"list":          list,
600
-		"workDay":       workDay,
601
-		"noWorkDay":     noWorkDay,
602
+		"scheduletotal":      scheduletotal,
603
+		"list":               list,
604
+		"workDay":            workDay,
605
+		"noWorkDay":          noWorkDay,
606
+		"chartTotalMinute":   chartTotalMinute,
607
+		"chartWorkDayMinute": chartWorkDayMinute,
602 608
 	})
603 609
 }
604 610
 
605 611
 func (this *DoctorScheduleApiController) ChangeOption() {
606 612
 
607 613
 	start_time, _ := this.GetInt64("start_time")
608
-	fmt.Println(start_time)
609 614
 	end_time, _ := this.GetInt64("end_time")
610
-	fmt.Println("end_time", end_time)
611 615
 	adminUserInfo := this.GetAdminUserInfo()
612 616
 	orgId := adminUserInfo.CurrentOrgId
613
-	fmt.Println(orgId)
614 617
 	doctor_type, _ := this.GetInt64("doctor_type")
615
-	fmt.Println("doctor_type", doctor_type)
618
+	//统计图
616 619
 	scheduletotal, err := service.ChagneScheduleListTotal(orgId, start_time, end_time, doctor_type)
620
+	list, err := service.ChangeScheduleMinute(orgId, start_time, end_time, doctor_type)
621
+	workday, err := service.ChangeWorkDay(orgId, start_time, end_time, doctor_type)
622
+	worknoday, err := service.ChangeNoWorkDay(orgId, start_time, end_time, doctor_type)
623
+
624
+	//统计表
625
+	chartotalminute, err := service.ChartTotalMinute(orgId, start_time, end_time, doctor_type)
626
+	chartworkdayminute, err := service.ChartWorkDayMinute(orgId, start_time, end_time, doctor_type)
627
+	if err != nil {
628
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
629
+		return
630
+	}
631
+	this.ServeSuccessJSON(map[string]interface{}{
632
+		"scheduletotal":      scheduletotal,
633
+		"list":               list,
634
+		"workday":            workday,
635
+		"worknoday":          worknoday,
636
+		"chartotalminute":    chartotalminute,
637
+		"chartworkdayminute": chartworkdayminute,
638
+	})
639
+}
640
+
641
+func (this *DoctorScheduleApiController) GetChartlist() {
642
+	start_time, _ := this.GetInt64("start_time")
643
+	end_time, _ := this.GetInt64("end_time")
644
+	adminUserInfo := this.GetAdminUserInfo()
645
+	orgId := adminUserInfo.CurrentOrgId
646
+	//统计总工时
647
+	list, err := service.GetTotalMinutesOne(orgId, start_time, end_time)
648
+	//统计出勤的总工时
649
+	workDaylist, err := service.GetTotalMinutesTwo(orgId, start_time, end_time)
617 650
 	if err != nil {
618 651
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
619 652
 		return
620 653
 	}
621 654
 	this.ServeSuccessJSON(map[string]interface{}{
622
-		"scheduletotal": scheduletotal,
655
+		"list":        list,
656
+		"workDaylist": workDaylist,
623 657
 	})
624 658
 }

+ 1 - 0
controllers/new_mobile_api_controllers/new_role_api_controller.go Целия файл

@@ -217,6 +217,7 @@ func (this *NewRoleApiController) CreateAdminUser() {
217 217
 					CreateTime:    time.Now().Unix(),
218 218
 					ModifyTime:    time.Now().Unix(),
219 219
 					RoleIds:       role_ids,
220
+					IsSort:        1,
220 221
 				}
221 222
 				err := service.CreateUserRole(app_role)
222 223
 				if err != nil {

+ 145 - 6
controllers/new_mobile_api_controllers/staff_schedule_api_controller.go Целия файл

@@ -16,24 +16,34 @@ func (this *StaffScheduleApiController) GetMobileDoctorList() {
16 16
 	orgId := this.GetMobileAdminUserInfo().Org.Id
17 17
 	appId := this.GetMobileAdminUserInfo().App.Id
18 18
 	staffList, err := service.GetDoctorList(orgId, appId)
19
+	//获取所有的医生
20
+	doctorList, err := service.GetAllDoctorList(orgId, appId)
21
+
22
+	//获取所有的护士
23
+	nurseList, err := service.GetAllNurseList(orgId, appId)
24
+	if err != nil {
25
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
26
+		return
27
+	}
28
+
19 29
 	if err != nil {
20 30
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
21 31
 		return
22 32
 	}
23 33
 
24 34
 	this.ServeSuccessJSON(map[string]interface{}{
25
-		"staffList": staffList,
35
+		"staffList":  staffList,
36
+		"doctorList": doctorList,
37
+		"nurseList":  nurseList,
26 38
 	})
27 39
 }
28 40
 
29 41
 func (this *StaffScheduleApiController) GetMobileStaffScheduleList() {
30 42
 
31 43
 	orgId := this.GetMobileAdminUserInfo().Org.Id
32
-	fmt.Println("orgid", orgId)
33 44
 	start_time, _ := this.GetInt64("start_time")
34 45
 	fmt.Println("staft_time", start_time)
35 46
 	end_time, _ := this.GetInt64("end_time")
36
-	fmt.Println("end_time", end_time)
37 47
 	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
38 48
 	if err != nil {
39 49
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
@@ -48,11 +58,8 @@ func (this *StaffScheduleApiController) GetMobileStaffScheduleList() {
48 58
 func (this *StaffScheduleApiController) GetMobileNextWeekScheduleLIst() {
49 59
 
50 60
 	orgId := this.GetMobileAdminUserInfo().Org.Id
51
-	fmt.Println("orgid", orgId)
52 61
 	start_time, _ := this.GetInt64("start_time")
53
-	fmt.Println("staft_time", start_time)
54 62
 	end_time, _ := this.GetInt64("end_time")
55
-	fmt.Println("end_time", end_time)
56 63
 	staffList, err := service.GetStaffScheduleList(orgId, start_time, end_time)
57 64
 	if err != nil {
58 65
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
@@ -96,3 +103,135 @@ func (this *StaffScheduleApiController) GetSearchPatientByDoctorId() {
96 103
 		"staffList": staffList,
97 104
 	})
98 105
 }
106
+
107
+func (this *StaffScheduleApiController) GetMobileSchedulelist() {
108
+
109
+	orgId := this.GetMobileAdminUserInfo().Org.Id
110
+	list, err := service.GetScheduleList(orgId)
111
+	if err != nil {
112
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
113
+		return
114
+	}
115
+
116
+	this.ServeSuccessJSON(map[string]interface{}{
117
+		"list": list,
118
+	})
119
+}
120
+
121
+func (this *StaffScheduleApiController) GetMobileScheduleListTotal() {
122
+
123
+	start_time, _ := this.GetInt64("start_time")
124
+	end_time, _ := this.GetInt64("end_time")
125
+	orgId := this.GetMobileAdminUserInfo().Org.Id
126
+
127
+	//统计班次
128
+	scheudletotal, err := service.GetScheduleListTotal(orgId, start_time, end_time)
129
+	//统计总工时
130
+	list, err := service.GetTotalMinutes(orgId, start_time, end_time)
131
+	//统计出勤天数
132
+	workDay, err := service.GetTotalWorkDay(orgId, start_time, end_time)
133
+	//统计缺勤天数
134
+	noWorkDay, err := service.GetTotalNoWorkDay(orgId, start_time, end_time)
135
+	if err != nil {
136
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
137
+		return
138
+	}
139
+	this.ServeSuccessJSON(map[string]interface{}{
140
+		"scheudletotal": scheudletotal,
141
+		"list":          list,
142
+		"workDay":       workDay,
143
+		"noWorkDay":     noWorkDay,
144
+	})
145
+}
146
+
147
+func (this *StaffScheduleApiController) GetMySchedule() {
148
+	start_time, _ := this.GetInt64("start_time")
149
+	end_time, _ := this.GetInt64("end_time")
150
+	orgId := this.GetMobileAdminUserInfo().Org.Id
151
+	creator, _ := this.GetInt64("creator")
152
+	schedule, err := service.GetMySchedule(start_time, end_time, orgId, creator)
153
+	if err != nil {
154
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
155
+		return
156
+	}
157
+	this.ServeSuccessJSON(map[string]interface{}{
158
+		"schedule": schedule,
159
+	})
160
+}
161
+
162
+func (this *StaffScheduleApiController) GetMobileChartList() {
163
+
164
+	start_time, _ := this.GetInt64("start_time")
165
+	end_time, _ := this.GetInt64("end_time")
166
+	orgId := this.GetMobileAdminUserInfo().Org.Id
167
+	//统计总工时
168
+	list, err := service.GetTotalMinutesOne(orgId, start_time, end_time)
169
+	//统计出勤的总工时
170
+	workDaylist, err := service.GetTotalMinutesTwo(orgId, start_time, end_time)
171
+	if err != nil {
172
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
173
+		return
174
+	}
175
+	this.ServeSuccessJSON(map[string]interface{}{
176
+		"list":        list,
177
+		"workDaylist": workDaylist,
178
+	})
179
+}
180
+
181
+func (this *StaffScheduleApiController) ToSearchMobileTotal() {
182
+
183
+	start_time, _ := this.GetInt64("start_time")
184
+	end_time, _ := this.GetInt64("end_time")
185
+	orgId := this.GetMobileAdminUserInfo().Org.Id
186
+	keyword := this.GetString("keyword")
187
+	//统计表
188
+	scheduletotal, err := service.GetSearchScheduleListTotal(orgId, start_time, end_time, keyword)
189
+	list, err := service.GeSearchtTotalMinutes(orgId, start_time, end_time, keyword)
190
+	workDay, err := service.GetSearchWorkDay(orgId, start_time, end_time, keyword)
191
+	noWorkDay, err := service.GetSearchWorkNoDay(orgId, start_time, end_time, keyword)
192
+
193
+	//统计图
194
+	chartTotalMinute, err := service.GetChartTotalMinutesOne(orgId, start_time, end_time, keyword)
195
+	chartWorkDayMinute, err := service.GetChartTotalMinutesTwo(orgId, start_time, end_time, keyword)
196
+	if err != nil {
197
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
198
+		return
199
+	}
200
+	this.ServeSuccessJSON(map[string]interface{}{
201
+		"scheduletotal":      scheduletotal,
202
+		"list":               list,
203
+		"workDay":            workDay,
204
+		"noWorkDay":          noWorkDay,
205
+		"chartTotalMinute":   chartTotalMinute,
206
+		"chartWorkDayMinute": chartWorkDayMinute,
207
+	})
208
+}
209
+
210
+func (this *StaffScheduleApiController) ChangeMobileOption() {
211
+
212
+	start_time, _ := this.GetInt64("start_time")
213
+	end_time, _ := this.GetInt64("end_time")
214
+	orgId := this.GetMobileAdminUserInfo().Org.Id
215
+	doctor_type, _ := this.GetInt64("doctor_type")
216
+	//统计图
217
+	scheduletotal, err := service.ChagneScheduleListTotal(orgId, start_time, end_time, doctor_type)
218
+	list, err := service.ChangeScheduleMinute(orgId, start_time, end_time, doctor_type)
219
+	workday, err := service.ChangeWorkDay(orgId, start_time, end_time, doctor_type)
220
+	worknoday, err := service.ChangeNoWorkDay(orgId, start_time, end_time, doctor_type)
221
+
222
+	//统计表
223
+	chartotalminute, err := service.ChartTotalMinute(orgId, start_time, end_time, doctor_type)
224
+	chartworkdayminute, err := service.ChartWorkDayMinute(orgId, start_time, end_time, doctor_type)
225
+	if err != nil {
226
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
227
+		return
228
+	}
229
+	this.ServeSuccessJSON(map[string]interface{}{
230
+		"scheduletotal":      scheduletotal,
231
+		"list":               list,
232
+		"workday":            workday,
233
+		"worknoday":          worknoday,
234
+		"chartotalminute":    chartotalminute,
235
+		"chartworkdayminute": chartworkdayminute,
236
+	})
237
+}

+ 6 - 0
controllers/new_mobile_api_controllers/staff_schedule_api_router.go Целия файл

@@ -9,4 +9,10 @@ func StaffScheduleApiControllersRegisterRouters() {
9 9
 	beego.Router("/m/api/getmobilenextweekschedulelist", &StaffScheduleApiController{}, "Get:GetMobileNextWeekScheduleLIst")
10 10
 	beego.Router("/m/api/getschedulebyusertype", &StaffScheduleApiController{}, "Get:GetScheduleByUserType")
11 11
 	beego.Router("/m/api/getsearchpatientbydoctorid", &StaffScheduleApiController{}, "Get:GetSearchPatientByDoctorId")
12
+	beego.Router("/m/api/getmobileschedulelist", &StaffScheduleApiController{}, "Get:GetMobileSchedulelist")
13
+	beego.Router("/m/api/getmobileschedulelisttoal", &StaffScheduleApiController{}, "Get:GetMobileScheduleListTotal")
14
+	beego.Router("m/api/getmyschedule", &StaffScheduleApiController{}, "Get:GetMySchedule")
15
+	beego.Router("/m/api/getmobilechartlist", &StaffScheduleApiController{}, "Get:GetMobileChartList")
16
+	beego.Router("/m/api/tosearchmobiletotal", &StaffScheduleApiController{}, "Get:ToSearchMobileTotal")
17
+	beego.Router("/m/api/changemobileoption", &StaffScheduleApiController{}, "Get:ChangeMobileOption")
12 18
 }

+ 1 - 0
models/doctor_schedule_models.go Целия файл

@@ -104,4 +104,5 @@ type CountStaffSchedule struct {
104 104
 	Sort          int64  `gorm:"column:sort" json:"sort" form:"sort"`
105 105
 	Count         int64
106 106
 	TotalMininute int64 `gorm:"column:totalminute" json:"totalminute" form:"totalminute"`
107
+	WorkMinute    int64 `gorm:"column:workminute" json:"workminute" form:"workminute"`
107 108
 }

+ 179 - 2
service/doctor_schedule_service.go Целия файл

@@ -277,7 +277,69 @@ func GetTotalMinutes(orgid int64, startime int64, endtime int64) (schedule []*mo
277 277
 	if orgid > 0 {
278 278
 		db = db.Where("x.user_org_id = ?", orgid)
279 279
 	}
280
-	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").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 s.user_org_id = ? and s.status = 1", orgid, orgid).Scan(&schedule).Error
280
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
281
+	return schedule, err
282
+}
283
+
284
+func GetTotalMinutesOne(orgid int64, startime int64, endtime int64) (schedule []*models.CountStaffSchedule, err error) {
285
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
286
+	if startime > 0 {
287
+		db = db.Where("x.start_time >=?", startime)
288
+	}
289
+	if endtime > 0 {
290
+		db = db.Where("x.end_time <=?", endtime)
291
+	}
292
+	if orgid > 0 {
293
+		db = db.Where("x.user_org_id = ?", orgid)
294
+	}
295
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").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 s.user_org_id = ? and s.status = 1 ", orgid, orgid).Scan(&schedule).Error
296
+	return schedule, err
297
+}
298
+
299
+func GetTotalMinutesTwo(orgid int64, startime int64, endtime int64) (schedule []*models.CountStaffSchedule, err error) {
300
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
301
+	if startime > 0 {
302
+		db = db.Where("x.start_time >=?", startime)
303
+	}
304
+	if endtime > 0 {
305
+		db = db.Where("x.end_time <=?", endtime)
306
+	}
307
+	if orgid > 0 {
308
+		db = db.Where("x.user_org_id = ?", orgid)
309
+	}
310
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as workminute").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
311
+	return schedule, err
312
+}
313
+
314
+func GetChartTotalMinutesOne(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
315
+	likeKey := "%" + keywords + "%"
316
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
317
+	if startime > 0 {
318
+		db = db.Where("x.start_time >=?", startime)
319
+	}
320
+	if endtime > 0 {
321
+		db = db.Where("x.end_time <=?", endtime)
322
+	}
323
+	if orgid > 0 {
324
+		db = db.Where("x.user_org_id = ?", orgid)
325
+	}
326
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Where("r.user_name like ?", likeKey).Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1 and s.user_org_id = ? and s.status = 1 ", orgid, orgid).Scan(&schedule).Error
327
+	return schedule, err
328
+}
329
+
330
+func GetChartTotalMinutesTwo(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
331
+	likeKey := "%" + keywords + "%"
332
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
333
+	if startime > 0 {
334
+		db = db.Where("x.start_time >=?", startime)
335
+	}
336
+	if endtime > 0 {
337
+		db = db.Where("x.end_time <=?", endtime)
338
+	}
339
+	if orgid > 0 {
340
+		db = db.Where("x.user_org_id = ?", orgid)
341
+	}
342
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as workminute").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Where("r.user_name like ?", likeKey).Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1 and s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
281 343
 	return schedule, err
282 344
 }
283 345
 
@@ -341,7 +403,7 @@ func GeSearchtTotalMinutes(orgid int64, startime int64, endtime int64, keywords
341 403
 	if orgid > 0 {
342 404
 		db = db.Where("x.user_org_id = ?", orgid)
343 405
 	}
344
-	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Where("r.user_name like ?", likeKey).Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1 and s.user_org_id = ? and s.status = 1", orgid, orgid).Scan(&schedule).Error
406
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.doctor_id").Where("r.user_name like ?", likeKey).Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Where("r.org_id = ? and r.status = 1 and s.user_org_id = ? and s.status = 1  and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
345 407
 	return schedule, err
346 408
 }
347 409
 
@@ -398,3 +460,118 @@ func ChagneScheduleListTotal(orgid int64, startime int64, endtime int64, doctort
398 460
 	err = db.Group("x.doctor_id,x.schedule_type").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,count(s.class_name) as count").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 s.user_org_id = ? and s.status = 1 ", orgid, orgid).Scan(&schedule).Error
399 461
 	return schedule, err
400 462
 }
463
+
464
+func ChangeScheduleMinute(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
465
+
466
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
467
+	if startime > 0 {
468
+		db = db.Where("x.start_time >=?", startime)
469
+	}
470
+	if endtime > 0 {
471
+		db = db.Where("x.end_time <=?", endtime)
472
+	}
473
+	if orgid > 0 {
474
+		db = db.Where("x.user_org_id = ?", orgid)
475
+	}
476
+	if doctortype == 0 {
477
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
478
+	}
479
+	if doctortype > 0 {
480
+		db = db.Where("x.doctor_type = ?", doctortype)
481
+	}
482
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
483
+	return schedule, err
484
+}
485
+
486
+func ChangeWorkDay(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
487
+
488
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
489
+	if startime > 0 {
490
+		db = db.Where("x.start_time >=?", startime)
491
+	}
492
+	if endtime > 0 {
493
+		db = db.Where("x.end_time <=?", endtime)
494
+	}
495
+	if orgid > 0 {
496
+		db = db.Where("x.user_org_id = ?", orgid)
497
+	}
498
+	if doctortype == 0 {
499
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
500
+	}
501
+	if doctortype > 0 {
502
+		db = db.Where("x.doctor_type = ?", doctortype)
503
+	}
504
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,count(x.id) as count").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
505
+	return schedule, err
506
+}
507
+
508
+func ChangeNoWorkDay(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
509
+
510
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
511
+	if startime > 0 {
512
+		db = db.Where("x.start_time >=?", startime)
513
+	}
514
+	if endtime > 0 {
515
+		db = db.Where("x.end_time <=?", endtime)
516
+	}
517
+	if orgid > 0 {
518
+		db = db.Where("x.user_org_id = ?", orgid)
519
+	}
520
+	if doctortype == 0 {
521
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
522
+	}
523
+	if doctortype > 0 {
524
+		db = db.Where("x.doctor_type = ?", doctortype)
525
+	}
526
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,count(x.id) as count").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 2", orgid, orgid).Scan(&schedule).Error
527
+	return schedule, err
528
+}
529
+
530
+func ChartTotalMinute(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
531
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
532
+	if startime > 0 {
533
+		db = db.Where("x.start_time >=?", startime)
534
+	}
535
+	if endtime > 0 {
536
+		db = db.Where("x.end_time <=?", endtime)
537
+	}
538
+	if orgid > 0 {
539
+		db = db.Where("x.user_org_id = ?", orgid)
540
+	}
541
+	if doctortype == 0 {
542
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
543
+	}
544
+	if doctortype > 0 {
545
+		db = db.Where("x.doctor_type = ?", doctortype)
546
+	}
547
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as totalminute").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 s.user_org_id = ? and s.status = 1 ", orgid, orgid).Scan(&schedule).Error
548
+	return schedule, err
549
+}
550
+
551
+func ChartWorkDayMinute(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
552
+
553
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
554
+	if startime > 0 {
555
+		db = db.Where("x.start_time >=?", startime)
556
+	}
557
+	if endtime > 0 {
558
+		db = db.Where("x.end_time <=?", endtime)
559
+	}
560
+	if orgid > 0 {
561
+		db = db.Where("x.user_org_id = ?", orgid)
562
+	}
563
+	if doctortype == 0 {
564
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
565
+	}
566
+	if doctortype > 0 {
567
+		db = db.Where("x.doctor_type = ?", doctortype)
568
+	}
569
+	err = db.Group("x.doctor_id").Select("x.doctor_id,x.schedule_type,x.start_time,x.end_time,x.schedule_date,r.user_name,s.class_name,r.sort,r.is_sort,sum(s.minute) as workminute").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 s.user_org_id = ? and s.status = 1 and s.class_attributes = 1", orgid, orgid).Scan(&schedule).Error
570
+	return schedule, err
571
+}
572
+
573
+func GetMySchedule(startime int64, endtime int64, orgid int64, creator int64) (schedule []*models.XtStaffSchedule, err error) {
574
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
575
+	err = db.Group("x.id").Select("x.doctor_id,x.schedule_week,s.class_name").Where("x.start_time >=? and x.end_time<=? and x.user_org_id = ? and x.doctor_id = ?", startime, endtime, orgid, creator).Joins("left join xt_doctor_schedules as s on s.id = x.schedule_type").Scan(&schedule).Error
576
+	return schedule, err
577
+}