From 067650e77790adeb5222b7736649cb5b6b016162 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 28 四月 2024 10:49:44 +0800
Subject: [PATCH] 时间范围和该工人以往添加记录重复性校验

---
 controllers/raw_silk_standard.go |  159 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 155 insertions(+), 4 deletions(-)

diff --git a/controllers/raw_silk_standard.go b/controllers/raw_silk_standard.go
index 2ab9dd2..53db4c0 100644
--- a/controllers/raw_silk_standard.go
+++ b/controllers/raw_silk_standard.go
@@ -2,10 +2,14 @@
 
 import (
 	"github.com/gin-gonic/gin"
+	"gorm.io/gorm"
 	"silkserver/controllers/request"
+	"silkserver/controllers/response"
 	"silkserver/extend/code"
 	"silkserver/extend/util"
 	"silkserver/models"
+	"silkserver/pkg/snowflake"
+	"strconv"
 )
 
 type RawSilkStandardController struct {
@@ -43,12 +47,12 @@
 //	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氫环鏍囧噯
 //	@Summary	鑾峰彇鐢熶笣瀹氫环鏍囧噯
 //	@Produce	application/json
-//	@Param		object	body		models.RawSilkPriceStandard	true	"鍙傛暟"
-//	@Success	200		{object}	util.Response		"鎴愬姛"
+//	@Param		object	query		request.GetPriceStandard	true	"鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.RawSilkPriceStandard}		"鎴愬姛"
 //	@Router		/api-jl/v1/system/getPriceStandardList [get]
 func (slf RawSilkStandardController) GetPriceStandardList(c *gin.Context) {
 	var param request.GetPriceStandard
-	err := c.BindJSON(&param)
+	err := c.ShouldBindQuery(&param)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
@@ -58,5 +62,152 @@
 		util.ResponseFormat(c, code.SelectError, "鏌ヨ澶辫触")
 		return
 	}
-	util.ResponseFormatList(c, code.Success, list, int(total))
+	util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// DeletePriceStandard
+//
+//	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氫环鏍囧噯
+//	@Summary	鍒犻櫎鐢熶笣瀹氫环鏍囧噯
+//	@Produce	application/json
+//	@Param		id	path		string			true	"id"
+//	@Success	200	{object}	util.Response	"鎴愬姛"
+//	@Router		/api-jl/v1/system/deletePriceStandard/{id} [delete]
+func (slf RawSilkStandardController) DeletePriceStandard(c *gin.Context) {
+	id := c.Param("id")
+	if id == "" {
+		util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d")
+		return
+	}
+	atoi, err := strconv.Atoi(id)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
+		return
+	}
+	err = models.NewRawSilkPriceStandardSearch().SetId(atoi).Delete()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
+}
+
+// GetRankStandard
+//
+//	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氱骇鏍囧噯
+//	@Summary	鑾峰彇鐢熶笣瀹氱骇鏍囧噯
+//	@Produce	application/json
+//	@Success	200	{object}	util.ResponseList{data=[]response.RankStandard}	"鎴愬姛"
+//	@Router		/api-jl/v1/system/getRankStandard [get]
+func (slf RawSilkStandardController) GetRankStandard(c *gin.Context) {
+	standards, err := models.NewRawSilkRankStandardSearch().FindNotTotal()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鑾峰彇鐢熶笣瀹氱骇鏍囧噯澶辫触")
+		return
+	}
+	m := make(map[string]response.RankStandard)
+	for _, standard := range standards {
+		var dr response.DynamicsRank
+		dr.RankName = standard.RankName
+		dr.RankValue = standard.RankValue
+		dr.RankProp = standard.RankProp
+		rankStandard, ok := m[standard.LineId]
+		if !ok {
+			rankStandard.LineId = standard.LineId
+			rankStandard.CheckItem = standard.CheckItem
+			rankStandard.StartFineness = standard.StartFineness
+			rankStandard.EndFineness = standard.EndFineness
+			rankStandard.RankA = standard.RankA
+			rankStandard.RankB = standard.RankB
+			rankStandard.RankC = standard.RankC
+		}
+		rankStandard.DynamicsRanks = append(rankStandard.DynamicsRanks, dr)
+		m[standard.LineId] = rankStandard
+	}
+	data := make([]response.RankStandard, 0)
+	for _, standard := range m {
+		data = append(data, standard)
+	}
+	util.ResponseFormat(c, code.Success, data)
+}
+
+// SaveRankStandard
+//
+//	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氱骇鏍囧噯
+//	@Summary	淇濆瓨鐢熶笣瀹氱骇鏍囧噯
+//	@Produce	application/json
+//	@Param		object	body		request.SaveRankStandard	true	"鍙傛暟"
+//	@Success	200		{object}	util.Response		"鎴愬姛"
+//	@Router		/api-jl/v1/system/saveRankStandard [post]
+func (slf RawSilkStandardController) SaveRankStandard(c *gin.Context) {
+	var rankStandard request.SaveRankStandard
+	err := c.BindJSON(&rankStandard)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	batch := make([]*models.RawSilkRankStandard, 0)
+	for _, standard := range rankStandard.RankStandard {
+		var rank models.RawSilkRankStandard
+		if standard.LineId == "" {
+			rank.LineId = snowflake.GenerateIdStr()
+		} else {
+			rank.LineId = standard.LineId
+		}
+		rank.CheckItem = standard.CheckItem
+		rank.StartFineness = standard.StartFineness
+		rank.EndFineness = standard.EndFineness
+		rank.RankA = standard.RankA
+		rank.RankB = standard.RankB
+		rank.RankC = standard.RankC
+		for _, dynamicsRank := range standard.DynamicsRanks {
+			rs := rank
+			rs.RankProp = dynamicsRank.RankProp
+			rs.RankName = dynamicsRank.RankName
+			rs.RankValue = dynamicsRank.RankValue
+			batch = append(batch, &rs)
+		}
+	}
+
+	err = models.WithTransaction(func(db *gorm.DB) error {
+		err = models.NewRawSilkRankStandardSearch().SetOrm(db).DeleteAll()
+		if err != nil {
+			return err
+		}
+		if len(batch) > 0 {
+			err = models.NewRawSilkRankStandardSearch().SetOrm(db).CreateBatch(batch)
+			if err != nil {
+				return err
+			}
+		}
+		return nil
+	})
+	if err != nil {
+		util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
+}
+
+// GetRankStandardGrade
+//
+//	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氱骇鏍囧噯
+//	@Summary	鑾峰彇鐢熶笣绛夌骇
+//	@Produce	application/json
+//	@Success	200	{object}	util.Response{data=map[string]string}	"鎴愬姛"
+//	@Router		/api-jl/v1/system/getRankStandardGrade [get]
+func (slf RawSilkStandardController) GetRankStandardGrade(c *gin.Context) {
+	standards, err := models.NewRawSilkRankStandardSearch().FindNotTotal()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鑾峰彇鐢熶笣绛夌骇澶辫触")
+		return
+	}
+	m := make(map[string]string)
+	m["閲庣氦"] = "閲庣氦"
+	m["澶ч噹"] = "澶ч噹"
+	m["鐗归噹"] = "鐗归噹"
+	for _, standard := range standards {
+		m[standard.RankName] = standard.RankName
+	}
+	util.ResponseFormat(c, code.Success, m)
 }

--
Gitblit v1.8.0