From adb8a4d6c2806beae1ac97af7f71c8a3ce3ed0c9 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 23 四月 2024 15:25:13 +0800 Subject: [PATCH] 修改考勤信息 --- controllers/attendance_controller.go | 31 +++++ docs/swagger.yaml | 61 +++++++++ docs/docs.go | 92 ++++++++++++++- docs/swagger.json | 92 ++++++++++++++- controllers/request/attendance_request.go | 12 ++ models/attendance_manage.go | 18 +++ router/router.go | 1 7 files changed, 286 insertions(+), 21 deletions(-) diff --git a/controllers/attendance_controller.go b/controllers/attendance_controller.go index edc8dec..709151e 100644 --- a/controllers/attendance_controller.go +++ b/controllers/attendance_controller.go @@ -186,6 +186,37 @@ util.ResponseFormatList(c, code.Success, manages, total) } +// UpdateAttendance +// +// @Tags 鑰冨嫟绠$悊 +// @Summary 鏇存柊鑰冨嫟 +// @Produce application/json +// @Param object body request.UpdateAttendance true "鍙傛暟" +// @Param Authorization header string true "token" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/attendance/updateAttendance [post] +func (slf AttendanceController) UpdateAttendance(c *gin.Context) { + var params request.UpdateAttendance + err := c.BindJSON(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } + if params.Date == "" || params.WorkerId == "" { + 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) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鏇存柊澶辫触") + return + } + util.ResponseFormat(c, code.Success, "鏇存柊鎴愬姛") +} + // GetAttendanceStatistic // // @Tags 鑰冨嫟绠$悊 diff --git a/controllers/request/attendance_request.go b/controllers/request/attendance_request.go index 27163c5..f492dbc 100644 --- a/controllers/request/attendance_request.go +++ b/controllers/request/attendance_request.go @@ -1,5 +1,10 @@ package request +import ( + "github.com/shopspring/decimal" + "silkserver/constvar" +) + type GetAttendanceList struct { PageInfo Keyword string `json:"keyword"` @@ -12,3 +17,10 @@ type GetAttendanceStatistic struct { Month string `json:"month"` //鏈堜唤 } + +type UpdateAttendance struct { + Date string `json:"date"` //鏃ユ湡 + WorkerId string `json:"workerId"` //浜哄憳id + Status constvar.AttendanceStatus `json:"status"` //鐘舵�� + OverTimeDuration decimal.Decimal `json:"overTimeDuration"` //鍔犵彮鏃堕暱 +} diff --git a/docs/docs.go b/docs/docs.go index 5a49f1f..f4e0312 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -238,6 +238,43 @@ } } }, + "/api-jl/v1/attendance/updateAttendance": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "鑰冨嫟绠$悊" + ], + "summary": "鏇存柊鑰冨嫟", + "parameters": [ + { + "description": "鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateAttendance" + } + }, + { + "type": "string", + "description": "token", + "name": "Authorization", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/util.Response" + } + } + } + } + }, "/api-jl/v1/fineness/changeYieldRegister": { "post": { "produces": [ @@ -2954,10 +2991,6 @@ "id": { "type": "integer" }, - "name": { - "description": "杞﹂棿", - "type": "string" - }, "startDate": { "description": "寮�濮嬫棩鏈�", "type": "string" @@ -2981,9 +3014,17 @@ "description": "宸ヤ汉ID", "type": "string" }, + "workshop": { + "description": "杞﹂棿缂栧彿", + "type": "string" + }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, @@ -3333,7 +3374,8 @@ "startWorkerPosition", "workerId", "workshop", - "workshopGroup" + "workshopGroup", + "workshopName" ], "properties": { "endDate": { @@ -3357,12 +3399,16 @@ "type": "string" }, "workshop": { - "description": "杞﹂棿", + "description": "杞﹂棿缂栧彿", "type": "string" }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, @@ -3680,6 +3726,31 @@ } } }, + "request.UpdateAttendance": { + "type": "object", + "properties": { + "date": { + "description": "鏃ユ湡", + "type": "string" + }, + "overTimeDuration": { + "description": "鍔犵彮鏃堕暱", + "type": "number" + }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/constvar.AttendanceStatus" + } + ] + }, + "workerId": { + "description": "浜哄憳id", + "type": "string" + } + } + }, "request.UpdateDict": { "type": "object", "properties": { @@ -3737,7 +3808,8 @@ "startWorkerPosition", "workerId", "workshop", - "workshopGroup" + "workshopGroup", + "workshopName" ], "properties": { "endDate": { @@ -3764,12 +3836,16 @@ "type": "string" }, "workshop": { - "description": "杞﹂棿", + "description": "杞﹂棿缂栧彿", "type": "string" }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, diff --git a/docs/swagger.json b/docs/swagger.json index cdb5d20..55fc2f0 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -226,6 +226,43 @@ } } }, + "/api-jl/v1/attendance/updateAttendance": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "鑰冨嫟绠$悊" + ], + "summary": "鏇存柊鑰冨嫟", + "parameters": [ + { + "description": "鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UpdateAttendance" + } + }, + { + "type": "string", + "description": "token", + "name": "Authorization", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/util.Response" + } + } + } + } + }, "/api-jl/v1/fineness/changeYieldRegister": { "post": { "produces": [ @@ -2942,10 +2979,6 @@ "id": { "type": "integer" }, - "name": { - "description": "杞﹂棿", - "type": "string" - }, "startDate": { "description": "寮�濮嬫棩鏈�", "type": "string" @@ -2969,9 +3002,17 @@ "description": "宸ヤ汉ID", "type": "string" }, + "workshop": { + "description": "杞﹂棿缂栧彿", + "type": "string" + }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, @@ -3321,7 +3362,8 @@ "startWorkerPosition", "workerId", "workshop", - "workshopGroup" + "workshopGroup", + "workshopName" ], "properties": { "endDate": { @@ -3345,12 +3387,16 @@ "type": "string" }, "workshop": { - "description": "杞﹂棿", + "description": "杞﹂棿缂栧彿", "type": "string" }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, @@ -3668,6 +3714,31 @@ } } }, + "request.UpdateAttendance": { + "type": "object", + "properties": { + "date": { + "description": "鏃ユ湡", + "type": "string" + }, + "overTimeDuration": { + "description": "鍔犵彮鏃堕暱", + "type": "number" + }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/constvar.AttendanceStatus" + } + ] + }, + "workerId": { + "description": "浜哄憳id", + "type": "string" + } + } + }, "request.UpdateDict": { "type": "object", "properties": { @@ -3725,7 +3796,8 @@ "startWorkerPosition", "workerId", "workshop", - "workshopGroup" + "workshopGroup", + "workshopName" ], "properties": { "endDate": { @@ -3752,12 +3824,16 @@ "type": "string" }, "workshop": { - "description": "杞﹂棿", + "description": "杞﹂棿缂栧彿", "type": "string" }, "workshopGroup": { "description": "杞︾粍", "type": "integer" + }, + "workshopName": { + "description": "杞﹂棿鍚嶇О", + "type": "string" } } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 30ea8d3..1b4dca5 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -535,9 +535,6 @@ type: integer id: type: integer - name: - description: 杞﹂棿 - type: string startDate: description: 寮�濮嬫棩鏈� type: string @@ -553,9 +550,15 @@ workerId: description: 宸ヤ汉ID type: string + workshop: + description: 杞﹂棿缂栧彿 + type: string workshopGroup: description: 杞︾粍 type: integer + workshopName: + description: 杞﹂棿鍚嶇О + type: string type: object models.WorkshopManage: properties: @@ -803,11 +806,14 @@ description: 宸ヤ汉ID type: string workshop: - description: 杞﹂棿 + description: 杞﹂棿缂栧彿 type: string workshopGroup: description: 杞︾粍 type: integer + workshopName: + description: 杞﹂棿鍚嶇О + type: string required: - endDate - endWorkerPosition @@ -816,6 +822,7 @@ - workerId - workshop - workshopGroup + - workshopName type: object request.ChangeYieldRegister: properties: @@ -1031,6 +1038,22 @@ $ref: '#/definitions/request.RankStandard' type: array type: object + request.UpdateAttendance: + properties: + date: + description: 鏃ユ湡 + type: string + overTimeDuration: + description: 鍔犵彮鏃堕暱 + type: number + status: + allOf: + - $ref: '#/definitions/constvar.AttendanceStatus' + description: 鐘舵�� + workerId: + description: 浜哄憳id + type: string + type: object request.UpdateDict: properties: dictType: @@ -1083,11 +1106,14 @@ description: 宸ヤ汉ID type: string workshop: - description: 杞﹂棿 + description: 杞﹂棿缂栧彿 type: string workshopGroup: description: 杞︾粍 type: integer + workshopName: + description: 杞﹂棿鍚嶇О + type: string required: - endDate - endWorkerPosition @@ -1096,6 +1122,7 @@ - workerId - workshop - workshopGroup + - workshopName type: object request.YieldRegisterCircleInfo: properties: @@ -1513,6 +1540,30 @@ summary: 淇濆瓨鍔犵彮瑙勫垯 tags: - 鑰冨嫟绠$悊 + /api-jl/v1/attendance/updateAttendance: + post: + parameters: + - description: 鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.UpdateAttendance' + - description: token + in: header + name: Authorization + required: true + type: string + produces: + - application/json + responses: + "200": + description: 鎴愬姛 + schema: + $ref: '#/definitions/util.Response' + summary: 鏇存柊鑰冨嫟 + tags: + - 鑰冨嫟绠$悊 /api-jl/v1/fineness/changeYieldRegister: post: parameters: diff --git a/models/attendance_manage.go b/models/attendance_manage.go index ed14ff0..6663197 100644 --- a/models/attendance_manage.go +++ b/models/attendance_manage.go @@ -71,6 +71,16 @@ return slf } +func (slf *AttendanceManageSearch) SetDate(date string) *AttendanceManageSearch { + slf.Date = date + return slf +} + +func (slf *AttendanceManageSearch) SetWorkerId(workerId string) *AttendanceManageSearch { + slf.WorkerId = workerId + return slf +} + func (slf *AttendanceManageSearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) @@ -86,6 +96,14 @@ db = db.Where("date like ?", slf.Month+"%") } + if slf.Date != "" { + db = db.Where("date = ?", slf.Date) + } + + if slf.WorkerId != "" { + db = db.Where("worker_id = ?", slf.WorkerId) + } + return db } diff --git a/router/router.go b/router/router.go index f7ec6b0..450b567 100644 --- a/router/router.go +++ b/router/router.go @@ -107,6 +107,7 @@ { attendanceApi.POST("attendanceInput", attendanceController.AttendanceInput) //鑰冨嫟瀵煎叆 attendanceApi.POST("getAttendanceList", attendanceController.GetAttendanceList) //鑾峰彇鑰冨嫟鍒楄〃 + attendanceApi.POST("updateAttendance", attendanceController.UpdateAttendance) //鏇存柊鑰冨嫟 attendanceApi.POST("getAttendanceStatistic", attendanceController.GetAttendanceStatistic) //鑾峰彇鑰冨嫟缁熻 attendanceApi.DELETE("deleteAttendanceInfo", attendanceController.DeleteAttendanceInfo) //鍒犻櫎鑰冨嫟淇℃伅 attendanceApi.GET("getAttendanceRule", attendanceController.GetAttendanceRule) //鑾峰彇鍔犵彮瑙勫垯 -- Gitblit v1.8.0