liujiandao
2024-04-24 db38b24898e99794369ae6a78ab43089b4c5cfef
controllers/attendance_controller.go
@@ -12,6 +12,7 @@
   "silkserver/middleware"
   "silkserver/models"
   "silkserver/pkg/logx"
   "silkserver/pkg/structx"
   "silkserver/pkg/timex"
   "time"
)
@@ -229,14 +230,37 @@
      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, "更新成功")
}
@@ -268,13 +292,6 @@
   }
   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 {
@@ -292,6 +309,14 @@
         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)