From 9e864a183115ba2420797a8bda661187b1069e00 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期二, 23 四月 2024 11:46:41 +0800
Subject: [PATCH] 考勤统计与车间修改
---
controllers/attendance_controller.go | 26 ++++++++++--
pkg/timex/timex.go | 19 +++++++++
controllers/request/system_set.go | 4 +
controllers/response/attendance_response.go | 2
docs/swagger.yaml | 4 +-
docs/docs.go | 4 +-
docs/swagger.json | 4 +-
controllers/workshop_manage_controller.go | 6 +-
router/router.go | 2
9 files changed, 54 insertions(+), 17 deletions(-)
diff --git a/controllers/attendance_controller.go b/controllers/attendance_controller.go
index e63e361..edc8dec 100644
--- a/controllers/attendance_controller.go
+++ b/controllers/attendance_controller.go
@@ -13,7 +13,6 @@
"silkserver/models"
"silkserver/pkg/logx"
"silkserver/pkg/timex"
- "strings"
"time"
)
@@ -207,11 +206,28 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟涓嶈兘涓虹┖")
return
}
+ //鑾峰彇鏈堜唤澶╂暟
+ location, err := time.ParseInLocation("2006-01", "2024-04", time.Local)
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏈堜唤鏍煎紡閿欒")
+ return
+ }
+ 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 {
util.ResponseFormat(c, code.RequestParamError, err)
return
}
+
m := make(map[string]response.AttendanceStatistic)
for _, manage := range manages {
var as response.AttendanceStatistic
@@ -222,13 +238,13 @@
as.WorkerName = manage.WorkerName
as.WorkType = manage.WorkType.WorkName
as.Month = params.Month
+ as.Details = details
}
as.WeekdayOverTime = as.WeekdayOverTime.Add(manage.OverTimeDuration)
as.ActualAttendanceDays = as.ActualAttendanceDays + 1
- var ad response.AttendanceDetail
- ad.Date = strings.ReplaceAll(manage.Date, params.Month+"-", "")
- ad.Status = manage.Status
- as.Details = append(as.Details, ad)
+ time2, _ := timex.StringToTime2(manage.Date)
+ day := time2.Day()
+ as.Details[day-1].Status = manage.Status
m[manage.WorkerId] = as
}
diff --git a/controllers/request/system_set.go b/controllers/request/system_set.go
index 2fc8b98..cfe2744 100644
--- a/controllers/request/system_set.go
+++ b/controllers/request/system_set.go
@@ -53,7 +53,9 @@
// ---------------------------------------杞﹂棿---------------------------------
type GetWorkshopManage struct {
PageInfo
- KeyWord string `json:"keyWord"`
+ KeyWord string `json:"keyWord"`
+ WorkshopName string `json:"workshopName"` //杞﹂棿鍚嶇О
+ GroupNumber int `json:"groupNumber"` //缁勫埆
}
type GetWorkshopManageCar struct {
diff --git a/controllers/response/attendance_response.go b/controllers/response/attendance_response.go
index 4b38892..9cd28ef 100644
--- a/controllers/response/attendance_response.go
+++ b/controllers/response/attendance_response.go
@@ -22,6 +22,6 @@
}
type AttendanceDetail struct {
- Date string `json:"date"` //鏃ユ湡
+ Date int `json:"date"` //鏃ユ湡
Status constvar.AttendanceStatus `json:"status"` //鐘舵��
}
diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go
index 6c34217..8cf5c99 100644
--- a/controllers/workshop_manage_controller.go
+++ b/controllers/workshop_manage_controller.go
@@ -50,15 +50,15 @@
// @Param Authorization header string true "token"
// @Param object query request.GetPriceStandard true "鍙傛暟"
// @Success 200 {object} util.ResponseList{data=[]models.WorkshopManage} "鎴愬姛"
-// @Router /api-jl/v1/system/getWorkshopManageList [get]
+// @Router /api-jl/v1/system/getWorkshopManageList [post]
func (slf WorkshopManageController) GetWorkshopManageList(c *gin.Context) {
var param request.GetWorkshopManage
- err := c.ShouldBindQuery(¶m)
+ err := c.BindJSON(¶m)
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- list, total, err := models.NewWorkshopManageSearch().SetPage(param.Page, param.PageSize).Find()
+ list, total, err := models.NewWorkshopManageSearch().SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber).SetPage(param.Page, param.PageSize).Find()
if err != nil {
util.ResponseFormat(c, code.SelectError, "鏌ヨ澶辫触")
return
diff --git a/docs/docs.go b/docs/docs.go
index c3e6e3f..5a49f1f 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1589,7 +1589,7 @@
}
},
"/api-jl/v1/system/getWorkshopManageList": {
- "get": {
+ "post": {
"produces": [
"application/json"
],
@@ -3975,7 +3975,7 @@
"properties": {
"date": {
"description": "鏃ユ湡",
- "type": "string"
+ "type": "integer"
},
"status": {
"description": "鐘舵��",
diff --git a/docs/swagger.json b/docs/swagger.json
index a8cc528..cdb5d20 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1577,7 +1577,7 @@
}
},
"/api-jl/v1/system/getWorkshopManageList": {
- "get": {
+ "post": {
"produces": [
"application/json"
],
@@ -3963,7 +3963,7 @@
"properties": {
"date": {
"description": "鏃ユ湡",
- "type": "string"
+ "type": "integer"
},
"status": {
"description": "鐘舵��",
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index dd37dc9..30ea8d3 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1245,7 +1245,7 @@
properties:
date:
description: 鏃ユ湡
- type: string
+ type: integer
status:
allOf:
- $ref: '#/definitions/constvar.AttendanceStatus'
@@ -2342,7 +2342,7 @@
tags:
- 绯荤粺璁剧疆/杞﹂棿绠$悊
/api-jl/v1/system/getWorkshopManageList:
- get:
+ post:
parameters:
- description: token
in: header
diff --git a/pkg/timex/timex.go b/pkg/timex/timex.go
index 68f63c9..e07e2f9 100644
--- a/pkg/timex/timex.go
+++ b/pkg/timex/timex.go
@@ -56,3 +56,22 @@
func GetCurrentTime() string {
return time.Now().Format(timeLayout)
}
+
+func GetDate(year int, month time.Month) int {
+ day := 0
+ if month == time.February {
+ if (year%4 == 0 && year%100 != 0) || year%400 == 0 {
+ day = 29
+ } else {
+ day = 28
+ }
+ } else {
+ if month == time.January || month == time.March || month == time.May || month == time.July ||
+ month == time.August || month == time.October || month == time.December {
+ day = 31
+ } else {
+ day = 30
+ }
+ }
+ return day
+}
diff --git a/router/router.go b/router/router.go
index 8d2b3e2..f7ec6b0 100644
--- a/router/router.go
+++ b/router/router.go
@@ -46,7 +46,7 @@
systemApi.GET("getRankStandardGrade", rawSilkController.GetRankStandardGrade) //鑾峰彇鐢熶笣绛夌骇
systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard) //淇濆瓨鐢熶笣瀹氱骇鏍囧噯
//杞﹂棿绠$悊
- systemApi.GET("getWorkshopManageList", workshopController.GetWorkshopManageList) //鑾峰彇杞﹂棿绠$悊鍒楄〃
+ systemApi.POST("getWorkshopManageList", workshopController.GetWorkshopManageList) //鑾峰彇杞﹂棿绠$悊鍒楄〃
systemApi.POST("saveWorkshopManage", workshopController.SaveWorkshopManage) //淇濆瓨杞﹂棿绠$悊
systemApi.DELETE("deleteWorkshopManage/:id", workshopController.DeleteWorkshopManage) //鍒犻櫎杞﹂棿绠$悊
systemApi.GET("getWorkshopManageGroup/:number", workshopController.GetWorkshopManageGroup) //鑾峰彇杞﹂棿缁勫埆
--
Gitblit v1.8.0