| | |
| | | "silkserver/middleware" |
| | | "silkserver/models" |
| | | "silkserver/pkg/logx" |
| | | "silkserver/pkg/structx" |
| | | "silkserver/pkg/timex" |
| | | "time" |
| | | ) |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "人员id和考勤日期不能为空") |
| | | return |
| | | } |
| | | m := make(map[string]interface{}) |
| | | m["status"] = params.Status |
| | | m["overTimeDuration"] = params.OverTimeDuration |
| | | err = models.NewAttendanceManageSearch().SetDate(params.Date).SetWorkerId(params.WorkerId).UpdateByMap(m) |
| | | count, err := models.NewAttendanceManageSearch().SetDate(params.Date).SetWorkerId(params.WorkerId).Count() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "更新失败") |
| | | util.ResponseFormat(c, code.RequestParamError, err) |
| | | return |
| | | } |
| | | if count > 0 { |
| | | m := make(map[string]interface{}) |
| | | m["status"] = params.Status |
| | | m["over_time_duration"] = params.OverTimeDuration |
| | | err = models.NewAttendanceManageSearch().SetDate(params.Date).SetWorkerId(params.WorkerId).UpdateByMap(m) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "更新失败") |
| | | return |
| | | } |
| | | } else { |
| | | var manage models.AttendanceManage |
| | | err = structx.AssignTo(params, &manage) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "数据转换失败") |
| | | return |
| | | } |
| | | info := middleware.GetUserInfo(c) |
| | | manage.AddPeople = info.NickName |
| | | manage.CreateTime = timex.TimeToString2(time.Now()) |
| | | err = models.NewAttendanceManageSearch().Create(&manage) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "更新失败") |
| | | return |
| | | } |
| | | } |
| | | |
| | | util.ResponseFormat(c, code.Success, "更新成功") |
| | | } |
| | | |
| | |
| | | } |
| | | year, month, _ := location.Date() |
| | | date := timex.GetDate(year, month) |
| | | var details []response.AttendanceDetail |
| | | for i := 1; i <= date; i++ { |
| | | var ad response.AttendanceDetail |
| | | ad.Date = i |
| | | ad.Status = constvar.Vacation |
| | | details = append(details, ad) |
| | | } |
| | | |
| | | manages, err := models.NewAttendanceManageSearch().SetMonth(params.Month).SetPreload(true).FindNotTotal() |
| | | if err != nil { |
| | |
| | | as.WorkerName = manage.WorkerName |
| | | as.WorkType = manage.WorkType.WorkName |
| | | as.Month = params.Month |
| | | as.WorkTypeId = manage.WorkTypeId |
| | | var details []response.AttendanceDetail |
| | | for i := 1; i <= date; i++ { |
| | | var ad response.AttendanceDetail |
| | | ad.Date = i |
| | | ad.Status = constvar.Vacation |
| | | details = append(details, ad) |
| | | } |
| | | as.Details = details |
| | | } |
| | | as.WeekdayOverTime = as.WeekdayOverTime.Add(manage.OverTimeDuration) |