瀏覽代碼

消毒计划

XMLWAN 4 年之前
父節點
當前提交
33df8abbfd
共有 2 個文件被更改,包括 175 次插入1 次删除
  1. 57 1
      controllers/doctor_schedule_api_controller.go
  2. 118 0
      service/doctor_schedule_service.go

+ 57 - 1
controllers/doctor_schedule_api_controller.go 查看文件

@@ -34,6 +34,8 @@ func DoctorScheduleRouters() {
34 34
 	beego.Router("/api/schedule/savenursesort", &DoctorScheduleApiController{}, "Get:SaveNureSort")
35 35
 	beego.Router("/api/schedule/saveisschedule", &DoctorScheduleApiController{}, "Get:SaveIsSchedule")
36 36
 	beego.Router("/api/schedule/getscheudlelisttotal", &DoctorScheduleApiController{}, "Get:GetScheduleListTotal")
37
+	beego.Router("/api/schedule/tosearchtotal", &DoctorScheduleApiController{}, "Get:ToSeachTotal")
38
+	beego.Router("/api/schedule/changeoption", &DoctorScheduleApiController{}, "Get:ChangeOption")
37 39
 }
38 40
 
39 41
 func (this *DoctorScheduleApiController) SaveDoctorSchedules() {
@@ -553,9 +555,14 @@ func (this *DoctorScheduleApiController) GetScheduleListTotal() {
553 555
 	fmt.Println("end_time", end_time)
554 556
 	adminUserInfo := this.GetAdminUserInfo()
555 557
 	orgId := adminUserInfo.CurrentOrgId
556
-	//统计总工时
558
+	//统计班次
557 559
 	scheudletotal, err := service.GetScheduleListTotal(orgId, start_time, end_time)
560
+	//统计总工时
558 561
 	list, err := service.GetTotalMinutes(orgId, start_time, end_time)
562
+	//统计出勤天数
563
+	workDay, err := service.GetTotalWorkDay(orgId, start_time, end_time)
564
+	//统计缺勤天数
565
+	noWorkDay, err := service.GetTotalNoWorkDay(orgId, start_time, end_time)
559 566
 	if err != nil {
560 567
 		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
561 568
 		return
@@ -564,5 +571,54 @@ func (this *DoctorScheduleApiController) GetScheduleListTotal() {
564 571
 	this.ServeSuccessJSON(map[string]interface{}{
565 572
 		"scheudletotal": scheudletotal,
566 573
 		"list":          list,
574
+		"workDay":       workDay,
575
+		"noWorkDay":     noWorkDay,
576
+	})
577
+}
578
+
579
+func (this *DoctorScheduleApiController) ToSeachTotal() {
580
+	start_time, _ := this.GetInt64("start_time")
581
+	fmt.Println(start_time)
582
+	end_time, _ := this.GetInt64("end_time")
583
+	fmt.Println("end_time", end_time)
584
+	adminUserInfo := this.GetAdminUserInfo()
585
+	orgId := adminUserInfo.CurrentOrgId
586
+	fmt.Println(orgId)
587
+	keyword := this.GetString("keyword")
588
+	fmt.Println("keyword", keyword)
589
+	scheduletotal, err := service.GetSearchScheduleListTotal(orgId, start_time, end_time, keyword)
590
+	list, err := service.GeSearchtTotalMinutes(orgId, start_time, end_time, keyword)
591
+	workDay, err := service.GetSearchWorkDay(orgId, start_time, end_time, keyword)
592
+	noWorkDay, err := service.GetSearchWorkNoDay(orgId, start_time, end_time, keyword)
593
+	if err != nil {
594
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
595
+		return
596
+	}
597
+	this.ServeSuccessJSON(map[string]interface{}{
598
+		"scheduletotal": scheduletotal,
599
+		"list":          list,
600
+		"workDay":       workDay,
601
+		"noWorkDay":     noWorkDay,
602
+	})
603
+}
604
+
605
+func (this *DoctorScheduleApiController) ChangeOption() {
606
+
607
+	start_time, _ := this.GetInt64("start_time")
608
+	fmt.Println(start_time)
609
+	end_time, _ := this.GetInt64("end_time")
610
+	fmt.Println("end_time", end_time)
611
+	adminUserInfo := this.GetAdminUserInfo()
612
+	orgId := adminUserInfo.CurrentOrgId
613
+	fmt.Println(orgId)
614
+	doctor_type, _ := this.GetInt64("doctor_type")
615
+	fmt.Println("doctor_type", doctor_type)
616
+	scheduletotal, err := service.ChagneScheduleListTotal(orgId, start_time, end_time, doctor_type)
617
+	if err != nil {
618
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
619
+		return
620
+	}
621
+	this.ServeSuccessJSON(map[string]interface{}{
622
+		"scheduletotal": scheduletotal,
567 623
 	})
568 624
 }

+ 118 - 0
service/doctor_schedule_service.go 查看文件

@@ -280,3 +280,121 @@ func GetTotalMinutes(orgid int64, startime int64, endtime int64) (schedule []*mo
280 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
281 281
 	return schedule, err
282 282
 }
283
+
284
+func GetTotalWorkDay(orgid int64, startime int64, endtime int64) (schedule []*models.CountStaffSchedule, err error) {
285
+
286
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
287
+	if startime > 0 {
288
+		db = db.Where("x.start_time >=?", startime)
289
+	}
290
+	if endtime > 0 {
291
+		db = db.Where("x.end_time <=?", endtime)
292
+	}
293
+	if orgid > 0 {
294
+		db = db.Where("x.user_org_id = ?", orgid)
295
+	}
296
+	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
297
+	return schedule, err
298
+}
299
+
300
+func GetTotalNoWorkDay(orgid int64, startime int64, endtime int64) (schedule []*models.CountStaffSchedule, err error) {
301
+
302
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
303
+	if startime > 0 {
304
+		db = db.Where("x.start_time >=?", startime)
305
+	}
306
+	if endtime > 0 {
307
+		db = db.Where("x.end_time <=?", endtime)
308
+	}
309
+	if orgid > 0 {
310
+		db = db.Where("x.user_org_id = ?", orgid)
311
+	}
312
+	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
313
+	return schedule, err
314
+}
315
+
316
+func GetSearchScheduleListTotal(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
317
+	likeKey := "%" + keywords + "%"
318
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
319
+	if startime > 0 {
320
+		db = db.Where("x.start_time >=?", startime)
321
+	}
322
+	if endtime > 0 {
323
+		db = db.Where("x.end_time <=?", endtime)
324
+	}
325
+	if orgid > 0 {
326
+		db = db.Where("x.user_org_id = ?", orgid)
327
+	}
328
+	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").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
329
+	return schedule, err
330
+}
331
+
332
+func GeSearchtTotalMinutes(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
333
+	likeKey := "%" + keywords + "%"
334
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
335
+	if startime > 0 {
336
+		db = db.Where("x.start_time >=?", startime)
337
+	}
338
+	if endtime > 0 {
339
+		db = db.Where("x.end_time <=?", endtime)
340
+	}
341
+	if orgid > 0 {
342
+		db = db.Where("x.user_org_id = ?", orgid)
343
+	}
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
345
+	return schedule, err
346
+}
347
+
348
+func GetSearchWorkDay(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
349
+	likeKey := "%" + keywords + "%"
350
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
351
+	if startime > 0 {
352
+		db = db.Where("x.start_time >=?", startime)
353
+	}
354
+	if endtime > 0 {
355
+		db = db.Where("x.end_time <=?", endtime)
356
+	}
357
+	if orgid > 0 {
358
+		db = db.Where("x.user_org_id = ?", orgid)
359
+	}
360
+	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").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
361
+	return schedule, err
362
+}
363
+
364
+func GetSearchWorkNoDay(orgid int64, startime int64, endtime int64, keywords string) (schedule []*models.CountStaffSchedule, err error) {
365
+	likeKey := "%" + keywords + "%"
366
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
367
+	if startime > 0 {
368
+		db = db.Where("x.start_time >=?", startime)
369
+	}
370
+	if endtime > 0 {
371
+		db = db.Where("x.end_time <=?", endtime)
372
+	}
373
+	if orgid > 0 {
374
+		db = db.Where("x.user_org_id = ?", orgid)
375
+	}
376
+	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").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 = 2", orgid, orgid).Scan(&schedule).Error
377
+	return schedule, err
378
+}
379
+
380
+func ChagneScheduleListTotal(orgid int64, startime int64, endtime int64, doctortype int64) (schedule []*models.CountStaffSchedule, err error) {
381
+
382
+	db := XTReadDB().Table("xt_staff_schedule as x").Where("x.status = 1")
383
+	if startime > 0 {
384
+		db = db.Where("x.start_time >=?", startime)
385
+	}
386
+	if endtime > 0 {
387
+		db = db.Where("x.end_time <=?", endtime)
388
+	}
389
+	if orgid > 0 {
390
+		db = db.Where("x.user_org_id = ?", orgid)
391
+	}
392
+	if doctortype == 0 {
393
+		db = db.Where("x.doctor_type = 2 or x.doctor_type = 3")
394
+	}
395
+	if doctortype > 0 {
396
+		db = db.Where("x.doctor_type = ?", doctortype)
397
+	}
398
+	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
+	return schedule, err
400
+}