From edf3066724ad442d6929210c830cb67c17277690 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期四, 01 八月 2024 11:46:33 +0800
Subject: [PATCH] 添加工资计算自动任务

---
 controllers/dict.go |   76 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 9 deletions(-)

diff --git a/controllers/dict.go b/controllers/dict.go
index 1d33456..084e88a 100644
--- a/controllers/dict.go
+++ b/controllers/dict.go
@@ -5,12 +5,14 @@
 	"fmt"
 	"github.com/gin-gonic/gin"
 	"gorm.io/gorm"
+	"silkserver/constvar"
 	"silkserver/controllers/request"
 	"silkserver/extend/code"
 	"silkserver/extend/util"
 	"silkserver/models"
 	"silkserver/pkg/convertx"
 	"silkserver/pkg/structx"
+	"strconv"
 )
 
 type DictController struct{}
@@ -88,19 +90,19 @@
 }
 
 func (slf DictController) ParamsCheck(params models.Dict) (err error) {
-	if params.Number == "" || params.Name == "" {
+	if params.Name == "" {
 		return errors.New("鍙傛暟缂哄け")
 	}
-	dict, err := models.NewDictSearch().SetNumber(params.Number).First()
-	if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
-		return errors.New("缂栧彿閲嶅")
-	}
-
-	dict, err = models.NewDictSearch().SetName(params.Name).First()
+	dict, err := models.NewDictSearch().SetName(params.Name).First()
 	if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
 		return errors.New("鍚嶇О閲嶅")
 	}
-
+	if params.Number != "" {
+		dict, err := models.NewDictSearch().SetDictType(params.DictType).SetNumber(params.Number).First()
+		if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
+			return errors.New("缂栧彿閲嶅")
+		}
+	}
 	return nil
 }
 
@@ -118,7 +120,11 @@
 		return
 	}
 
-	list, err := models.NewDictSearch().SetDictType(params.DictType).FindAll()
+	search := models.NewDictSearch()
+	if params.DictType > 0 {
+		search = search.SetDictType(params.DictType)
+	}
+	list, err := search.SetKeyword(params.Keyword).FindAll()
 
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
@@ -154,3 +160,55 @@
 	}
 	util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛")
 }
+
+// GetAutoCode
+//
+// @Tags	绯荤粺璁剧疆/瀛楀吀
+// @Summary	鑾峰彇鑷姩缂栫爜
+// @Produce	application/json
+// @Param   Authorization	header string true "token"
+// @Param   object  query    request.CodeStandard true  "鏌ヨ鍙傛暟"
+// @Success	200	{object}	util.Response{data=map[string]interface{}}
+// @Router	/api-jl/v1/system/getAutoCode [get]
+func (slf *DictController) GetAutoCode(c *gin.Context) {
+	var params request.CodeStandard
+	var (
+		id     = 0
+		prefix = ""
+		err    error
+	)
+	if params.Type, err = strconv.Atoi(c.Query("type")); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璇疯緭鍏ユ纭殑绫诲瀷")
+		return
+	}
+	switch constvar.CodeStandardType(params.Type) {
+	case constvar.CodeStandardType_Workshop:
+		id, err = models.NewWorkshopManageSearch().MaxAutoIncr()
+		prefix = "CJ"
+	case constvar.CodeStandardType_Fineness:
+		id, err = models.NewFinenessRegisterSearch().MaxAutoIncr()
+		prefix = "XD"
+	case constvar.CodeStandardType_Yield:
+		id, err = models.NewYieldRegisterSearch().MaxAutoIncr()
+		prefix = "CL"
+	default:
+		util.ResponseFormat(c, code.RequestParamError, "缂栫爜瑙勫垯涓嶅瓨鍦�")
+		return
+	}
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鑾峰彇鏈�澶у�煎け璐�")
+		return
+	}
+	m := make(map[string]interface{})
+
+	strMaxAutoIncr := strconv.Itoa(id + 1)
+	count := 8 - len(strMaxAutoIncr)
+	for i := 0; i < count; i++ {
+		strMaxAutoIncr = "0" + strMaxAutoIncr
+	}
+
+	m["id"] = prefix + strMaxAutoIncr
+	m["codeStandardID"] = constvar.CodeStandardType_Fineness
+	m["maxAutoIncr"] = id + 1
+	util.ResponseFormat(c, code.Success, m)
+}

--
Gitblit v1.8.0