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(&param)
+	err := c.BindJSON(&param)
 	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