From b9923a20b59938e59b3e57defee16a29a0c90a56 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期五, 12 七月 2024 15:52:31 +0800
Subject: [PATCH] 产量登记表添加自动编号

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

diff --git a/controllers/dict.go b/controllers/dict.go
index 31f0965..d2d4d8b 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{}
@@ -158,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