Переглянути джерело

fix:过滤供应商停用的指标

Roc 6 місяців тому
батько
коміт
596bfe9339

+ 37 - 0
controllers/data_manage/edb_info_refresh.go

@@ -723,6 +723,43 @@ func (c *EdbInfoController) SaveRelationEdbRefreshStatus() {
 		br.ErrMsg = "获取数据失败,Err:" + e.Error()
 		return
 	}
+
+	// 如果是钢联化工,那么需要过滤供应商暂停的指标
+	if req.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
+		// 获取未被供应商暂停的指标
+		tmpEdbCodeList := make([]string, 0)
+		for _, v := range edbList {
+			tmpEdbCodeList = append(tmpEdbCodeList, v.EdbCode)
+		}
+		notIsSupplierStopIndexList, e := data_manage.GetNotIsSupplierStopIndexByCodeList(tmpEdbCodeList)
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + e.Error()
+			return
+		}
+
+		// 未被供应商暂停的指标编码
+		notIsSupplierStopIndexCodeList := make([]string, 0)
+		for _, v := range notIsSupplierStopIndexList {
+			notIsSupplierStopIndexCodeList = append(notIsSupplierStopIndexCodeList, v.IndexCode)
+		}
+
+		//查询未被供应商暂停的指标信息
+		edbList, err = data_manage.GetEdbInfoByEdbCodeList(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, notIsSupplierStopIndexCodeList)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+
+		if len(edbList) <= 0 {
+			br.Ret = 200
+			br.Success = true
+			br.Msg = "保存成功"
+			return
+		}
+	}
+
 	fromEdbIdList := make([]int, 0)
 	for _, v := range edbList {
 		if req.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {

+ 20 - 0
models/data_manage/mysteel_chemical_index.go

@@ -700,3 +700,23 @@ func ModifyMysteelChemicalUpdateStatusByEdbInfoIds(edbInfoIds []int, isStop int,
 
 	return
 }
+
+// GetNotIsSupplierStopIndexByCodeList
+// @Description: 获取未被供应商停更的指标
+// @author: Roc
+// @datetime 2024-08-28 18:15:03
+// @param codeList []string
+// @return items []*BaseFromMysteelChemicalIndex
+// @return err error
+func GetNotIsSupplierStopIndexByCodeList(codeList []string) (items []*BaseFromMysteelChemicalIndex, err error) {
+	num := len(codeList)
+	if num <= 0 {
+		return
+	}
+
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE is_supplier_stop = 0 AND index_code in (` + utils.GetOrmInReplace(num) + `) `
+	_, err = o.Raw(sql, codeList).QueryRows(&items)
+
+	return
+}