From edf3066724ad442d6929210c830cb67c17277690 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期四, 01 八月 2024 11:46:33 +0800
Subject: [PATCH] 添加工资计算自动任务
---
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(¶ms)
- //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(¶ms)
+ 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(¶ms)
+ 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