From db38b24898e99794369ae6a78ab43089b4c5cfef Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 24 四月 2024 13:59:15 +0800
Subject: [PATCH] 考勤修改
---
controllers/attendance_controller.go | 49 ++++++++++++----
controllers/response/attendance_response.go | 1
docs/swagger.yaml | 24 ++++++++
docs/docs.go | 32 ++++++++++
docs/swagger.json | 32 ++++++++++
controllers/request/attendance_request.go | 7 ++
6 files changed, 133 insertions(+), 12 deletions(-)
diff --git a/controllers/attendance_controller.go b/controllers/attendance_controller.go
index ed10c34..4a5978d 100644
--- a/controllers/attendance_controller.go
+++ b/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)
diff --git a/controllers/request/attendance_request.go b/controllers/request/attendance_request.go
index 493c9b8..336361b 100644
--- a/controllers/request/attendance_request.go
+++ b/controllers/request/attendance_request.go
@@ -27,4 +27,11 @@
WorkerId string `json:"workerId"` //浜哄憳id
Status constvar.AttendanceStatus `json:"status"` //鐘舵��
OverTimeDuration decimal.Decimal `json:"overTimeDuration"` //鍔犵彮鏃堕暱
+ WorkerName string `json:"workerName"` //浜哄憳濮撳悕
+ StartWorkTime string `json:"startWorkTime"` //涓婄彮鎵撳崱鏃堕棿
+ EndWorkTime string `json:"endWorkTime"` //涓嬬彮鎵撳崱鏃堕棿
+ Classes string `json:"classes"` //鐝
+ ClassesStartTime string `json:"classesStartTime"` //鐝寮�濮嬫椂闂�
+ ClassesEndTime string `json:"classesEndTime"` //鐝涓嬬彮鏃堕棿
+ WorkTypeId uint `json:"workTypeId"` //宸ョid
}
diff --git a/controllers/response/attendance_response.go b/controllers/response/attendance_response.go
index 9aaccba..09a75c9 100644
--- a/controllers/response/attendance_response.go
+++ b/controllers/response/attendance_response.go
@@ -12,6 +12,7 @@
type AttendanceStatistic struct {
WorkerId string `json:"workerId"` //浜哄憳id
WorkerName string `json:"workerName"` //浜哄憳濮撳悕
+ WorkTypeId uint `json:"workTypeId"` //宸ョid
WorkType string `json:"workType"` //宸ョ
Month string `json:"month"` //鏈堜唤
WeekdayOverTime decimal.Decimal `json:"weekdayOverTime"` //宸ヤ綔鏃ュ姞鐝椂闀�
diff --git a/docs/docs.go b/docs/docs.go
index c5cb506..eb82777 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -3782,13 +3782,33 @@
"request.UpdateAttendance": {
"type": "object",
"properties": {
+ "classes": {
+ "description": "鐝",
+ "type": "string"
+ },
+ "classesEndTime": {
+ "description": "鐝涓嬬彮鏃堕棿",
+ "type": "string"
+ },
+ "classesStartTime": {
+ "description": "鐝寮�濮嬫椂闂�",
+ "type": "string"
+ },
"date": {
"description": "鏃ユ湡",
+ "type": "string"
+ },
+ "endWorkTime": {
+ "description": "涓嬬彮鎵撳崱鏃堕棿",
"type": "string"
},
"overTimeDuration": {
"description": "鍔犵彮鏃堕暱",
"type": "number"
+ },
+ "startWorkTime": {
+ "description": "涓婄彮鎵撳崱鏃堕棿",
+ "type": "string"
},
"status": {
"description": "鐘舵��",
@@ -3798,8 +3818,16 @@
}
]
},
+ "workTypeId": {
+ "description": "宸ョid",
+ "type": "integer"
+ },
"workerId": {
"description": "浜哄憳id",
+ "type": "string"
+ },
+ "workerName": {
+ "description": "浜哄憳濮撳悕",
"type": "string"
}
}
@@ -4181,6 +4209,10 @@
"description": "宸ョ",
"type": "string"
},
+ "workTypeId": {
+ "description": "宸ョid",
+ "type": "integer"
+ },
"workerId": {
"description": "浜哄憳id",
"type": "string"
diff --git a/docs/swagger.json b/docs/swagger.json
index 140dac5..741cb43 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -3770,13 +3770,33 @@
"request.UpdateAttendance": {
"type": "object",
"properties": {
+ "classes": {
+ "description": "鐝",
+ "type": "string"
+ },
+ "classesEndTime": {
+ "description": "鐝涓嬬彮鏃堕棿",
+ "type": "string"
+ },
+ "classesStartTime": {
+ "description": "鐝寮�濮嬫椂闂�",
+ "type": "string"
+ },
"date": {
"description": "鏃ユ湡",
+ "type": "string"
+ },
+ "endWorkTime": {
+ "description": "涓嬬彮鎵撳崱鏃堕棿",
"type": "string"
},
"overTimeDuration": {
"description": "鍔犵彮鏃堕暱",
"type": "number"
+ },
+ "startWorkTime": {
+ "description": "涓婄彮鎵撳崱鏃堕棿",
+ "type": "string"
},
"status": {
"description": "鐘舵��",
@@ -3786,8 +3806,16 @@
}
]
},
+ "workTypeId": {
+ "description": "宸ョid",
+ "type": "integer"
+ },
"workerId": {
"description": "浜哄憳id",
+ "type": "string"
+ },
+ "workerName": {
+ "description": "浜哄憳濮撳悕",
"type": "string"
}
}
@@ -4169,6 +4197,10 @@
"description": "宸ョ",
"type": "string"
},
+ "workTypeId": {
+ "description": "宸ョid",
+ "type": "integer"
+ },
"workerId": {
"description": "浜哄憳id",
"type": "string"
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 385f797..9f9d21a 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1056,18 +1056,39 @@
type: object
request.UpdateAttendance:
properties:
+ classes:
+ description: 鐝
+ type: string
+ classesEndTime:
+ description: 鐝涓嬬彮鏃堕棿
+ type: string
+ classesStartTime:
+ description: 鐝寮�濮嬫椂闂�
+ type: string
date:
description: 鏃ユ湡
+ type: string
+ endWorkTime:
+ description: 涓嬬彮鎵撳崱鏃堕棿
type: string
overTimeDuration:
description: 鍔犵彮鏃堕暱
type: number
+ startWorkTime:
+ description: 涓婄彮鎵撳崱鏃堕棿
+ type: string
status:
allOf:
- $ref: '#/definitions/constvar.AttendanceStatus'
description: 鐘舵��
+ workTypeId:
+ description: 宸ョid
+ type: integer
workerId:
description: 浜哄憳id
+ type: string
+ workerName:
+ description: 浜哄憳濮撳悕
type: string
type: object
request.UpdateDict:
@@ -1341,6 +1362,9 @@
workType:
description: 宸ョ
type: string
+ workTypeId:
+ description: 宸ョid
+ type: integer
workerId:
description: 浜哄憳id
type: string
--
Gitblit v1.8.0