From 1bd58eb901da8ca32d15c121effa7e22cc89e1bd Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期四, 25 七月 2024 11:47:12 +0800
Subject: [PATCH] 添加功能,工资计算(根据历史工资excel给定的规则进行编写)

---
 controllers/salary_plan_controller.go |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 102 insertions(+), 0 deletions(-)

diff --git a/controllers/salary_plan_controller.go b/controllers/salary_plan_controller.go
index 0212979..461b326 100644
--- a/controllers/salary_plan_controller.go
+++ b/controllers/salary_plan_controller.go
@@ -233,3 +233,105 @@
 	}
 	util.ResponseFormat(c, code.Success, dicts)
 }
+
+// GetPayrollProductionCarList
+//
+//	@Tags		鍛樺伐钖祫/钖叕鏂规
+//	@Summary	鑾峰彇杞﹀彴姣忓ぉ鐨勪骇閲忓垪琛�
+//	@Produce	application/json
+//	@Param     	Authorization	header string true "token"
+//	@Param     	object  query    request.PayrollProductionCar true  "鏌ヨ鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.PayrollProductionCar}	"鎴愬姛"
+//	@Router		/api-jl/v1/salary/getPayrollProductionCarList [get]
+func (slf SalaryPlanController) GetPayrollProductionCarList(c *gin.Context) {
+	var params request.PayrollProductionCar
+	if err := c.ShouldBindQuery(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+
+	carSearch := models.NewPayrollProductionCarSearch()
+	if len(params.Cycle) == 0 && len(params.Monthly) == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "璇锋鏌ユ煡璇㈠懆鏈�,蹇呴』杈撳叆鎸夊ぉ鏌ヨ鎴栨寜鏈堟煡璇€�傛牸寮忥細Cycle锛坹yyy-MM-dd锛� 鎴� Monthly锛坹yyy-MM锛�")
+		return
+	}
+	carSearch.SetPage(params.Page, params.PageSize)
+	carSearch.SetWorkshopNumber(params.WorkshopNumber).SetGroupNumber(params.GroupNumber).SetCarNumber(params.CarNumber).SetMarketNumber(params.MarketNumber).SetSpec(params.Spec)
+	list, total, err := carSearch.Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+		return
+	}
+
+	util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// GetPayrollProductionGroupList
+//
+//	@Tags		鍛樺伐钖祫/钖叕鏂规
+//	@Summary	鑾峰彇灏忕粍姣忓ぉ鐨勪骇閲忓垪琛�
+//	@Produce	application/json
+//	@Param     	Authorization	header string true "token"
+//	@Param     	object  query    request.PayrollProductionGroup true  "鏌ヨ鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.PayrollProductionGroup}	"鎴愬姛"
+//	@Router		/api-jl/v1/salary/getPayrollProductionGroupList [get]
+func (slf SalaryPlanController) GetPayrollProductionGroupList(c *gin.Context) {
+	var params request.PayrollProductionGroup
+	if err := c.ShouldBindQuery(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	//params = request.PayrollProductionGroup{
+	//	Cycle:          c.Query("cycle"),
+	//	Monthly:        c.Query("monthly"),
+	//	WorkshopNumber: c.Query("workshopNumber"),
+	//}
+	//params.GroupNumber, _ = strconv.Atoi(c.Query("groupNumber"))
+	//params.Page, _ = strconv.Atoi(c.Query("page"))
+	//params.PageSize, _ = strconv.Atoi(c.Query("pageSize"))
+
+	if len(params.Cycle) == 0 && len(params.Monthly) == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "璇锋鏌ユ煡璇㈠懆鏈�,蹇呴』杈撳叆鎸夊ぉ鏌ヨ鎴栨寜鏈堟煡璇€�傛牸寮忥細Cycle锛坹yyy-MM-dd锛� 鎴� Monthly锛坹yyy-MM锛�")
+		return
+	}
+	list, total, err := models.NewPayrollProductionGroupSearch().SetPage(params.Page, params.PageSize).
+		SetCycle(params.Cycle).SetMonthly(params.Monthly).SetWorkshopNumber(params.WorkshopNumber).SetGroupNumber(params.GroupNumber).
+		Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+		return
+	}
+
+	util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// GetPayrollSalaryPlanList
+//
+//	@Tags		鍛樺伐钖祫/钖叕鏂规
+//	@Summary	鑾峰彇浜哄憳姣忔湀鐨勮柂璧勫垪琛�
+//	@Produce	application/json
+//	@Param     	Authorization	header string true "token"
+//	@Param     	object  query    request.PayrollSalaryPlan true  "鏌ヨ鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.PayrollSalaryPlan}	"鎴愬姛"
+//	@Router		/api-jl/v1/salary/getPayrollSalaryPlanList [get]
+func (slf SalaryPlanController) GetPayrollSalaryPlanList(c *gin.Context) {
+	var params request.PayrollSalaryPlan
+	if err := c.ShouldBindQuery(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+
+	if len(params.Cycle) == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "璇锋鏌ユ煡璇㈠懆鏈熴�傛牸寮忥細Cycle锛坹yyy-MM-dd锛�")
+		return
+	}
+	list, total, err := models.NewPayrollSalaryPlanSearch().SetPage(params.Page, params.PageSize).
+		SetCycle(params.Cycle).SetWorkerID(params.WorkerID).SetKeyword(params.Keyword).SetWorkTypeID(uint(params.WorkTypeID)).SetWorkTypeCode(constvar.JobType(params.WorkTypeCode)).
+		Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+		return
+	}
+
+	util.ResponseFormatList(c, code.Success, list, total)
+}

--
Gitblit v1.8.0