yinbentan
2024-07-31 b94bef381946e22fd1038f24e6d9de911d194640
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package controllers
 
import (
    "github.com/gin-gonic/gin"
    "silkserver/controllers/request"
    "silkserver/controllers/response"
    "silkserver/extend/code"
    "silkserver/extend/util"
    "silkserver/models"
)
 
type ReportFormsController struct {
}
 
// SalaryReportForms
//
//    @Tags        报表管理
//    @Summary    获取薪资报表
//    @Produce    application/json
//    @Param        object    body        request.SalaryReportForms    true    "参数"
//    @Param         Authorization    header string true "token"
//    @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, "参数解析失败,数据类型错误")
        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, "参数解析失败,数据类型错误")
        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, "更新成功")
}