From a904aa32e66688ba76c9e4b71b6738b0ba5f5d4f Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期四, 25 七月 2024 11:44:09 +0800
Subject: [PATCH] 添加字段,工种添加工种编码,用于计算工资(id无法固定工种信息)

---
 controllers/report_forms_controller.go |   82 ++++++++++++++++++++++++++++++++++------
 1 files changed, 69 insertions(+), 13 deletions(-)

diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index b00be87..5332c88 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -2,6 +2,11 @@
 
 import (
 	"github.com/gin-gonic/gin"
+	"silkserver/controllers/request"
+	"silkserver/controllers/response"
+	"silkserver/extend/code"
+	"silkserver/extend/util"
+	"silkserver/models"
 )
 
 type ReportFormsController struct {
@@ -10,23 +15,74 @@
 // SalaryReportForms
 //
 //	@Tags		鎶ヨ〃绠$悊
-//	@Summary	钖祫鎶ヨ〃
+//	@Summary	鑾峰彇钖祫鎶ヨ〃
 //	@Produce	application/json
 //	@Param		object	body		request.SalaryReportForms	true	"鍙傛暟"
 //	@Param     	Authorization	header string true "token"
-//	@Success	200		{object}	util.ResponseList{data=[]models.WorkTypeManage}		"鎴愬姛"
+//	@Success	200		{object}	util.ResponseList{data=[]response.SalaryReportForms}		"鎴愬姛"
 //	@Router		/api-jl/v1/forms/salaryReportForms [post]
 func (slf ReportFormsController) SalaryReportForms(c *gin.Context) {
-	//var params request.SalaryReportForms
-	//err := c.BindJSON(&params)
-	//if err != nil {
-	//	util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
-	//	return
-	//}
-	//workers, err := models.NewWorkerSearch().SetPage(params.Page, params.PageSize).FindNotTotal()
-	//if err != nil {
-	//	util.ResponseFormat(c, code.RequestParamError, err)
-	//	return
-	//}
+	var params request.SalaryReportForms
+	err := c.BindJSON(&params)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	reportForms, total, err := models.NewSalaryReportFormSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).
+		SetMonth(params.Month).SetPreload(true).Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, err)
+		return
+	}
+	data := make([]response.SalaryReportForms, 0)
+	for _, form := range reportForms {
+		var srf response.SalaryReportForms
+		srf.WorkerId = form.WorkerId
+		srf.WorkerName = form.WorkerName
+		srf.Phone = form.Phone
+		srf.IssueSalary = form.IssueSalary
+		srf.Remark = form.Remark
+		srf.WorkType = form.WorkType.WorkName
+		salaryDetails := make([]response.SalaryDetail, 0)
+		for _, detail := range form.Details {
+			var sd response.SalaryDetail
+			sd.SalaryTypeId = detail.SalaryTypeId
+			sd.SalaryType = detail.SalaryType.Name
+			sd.Amount = detail.Amount
+			salaryDetails = append(salaryDetails, sd)
+		}
+		srf.Details = salaryDetails
+		data = append(data, srf)
+	}
+	util.ResponseFormatList(c, code.Success, data, total)
+}
 
+// UpdateSalaryReportForms
+//
+//	@Tags		鎶ヨ〃绠$悊
+//	@Summary	淇敼钖祫鎶ヨ〃
+//	@Produce	application/json
+//	@Param		object	body		request.UpdateSalaryReportForms	true	"鍙傛暟"
+//	@Param     	Authorization	header string true "token"
+//	@Success	200		{object}	util.Response		"鎴愬姛"
+//	@Router		/api-jl/v1/forms/updateSalaryReportForms [post]
+func (slf ReportFormsController) UpdateSalaryReportForms(c *gin.Context) {
+	var params request.UpdateSalaryReportForms
+	err := c.BindJSON(&params)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	first, err := models.NewSalaryReportFormSearch().SetMonth(params.Month).SetWorkerId(params.WorkerId).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, err)
+		return
+	}
+	err = models.NewSalaryDetailsSearch().SetSalaryTypeId(params.SalaryTypeId).SetSalaryReportFormId(first.ID).
+		UpdateByMap(map[string]interface{}{"amount": params.Amount})
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏇存柊澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.RequestParamError, "鏇存柊鎴愬姛")
 }

--
Gitblit v1.8.0