Ver código fonte

合并决策分支代码

王苗苗 6 meses atrás
pai
commit
b7010f02a6

BIN
.DS_Store


BIN
slibra-admin/.DS_Store


+ 25 - 2
slibra-admin/src/main/java/com/slibra/web/controller/business/GRPCController.java

@@ -384,13 +384,15 @@ public class GRPCController extends BaseController {
         PolicyReq policyReq = new PolicyReq();
         //2024年7月11日17:57:53 因为化验室的改了  但是 调用决策还得用原来的几个值
         String category = xinyiWarningRecord.getCategory();
-        if(ROBOT_XSY_1.getCode().equalsIgnoreCase(category) || ROBOT_XSY_2.getCode().equalsIgnoreCase(category)){
+        /*if(ROBOT_XSY_1.getCode().equalsIgnoreCase(category) || ROBOT_XSY_2.getCode().equalsIgnoreCase(category)){
             category = CS_ZD.getCode();
         } else if (ROBOT_ANDAN_1.getCode().equalsIgnoreCase(category) || ROBOT_ANDAN_2.getCode().equalsIgnoreCase(category)) {
             category = CS_AD.getCode();
         }else if (ROBOT_ECCZLSY.getCode().equalsIgnoreCase(category)) {
             category = CS_ZL.getCode();
-        }
+        }*/
+        //2024年08月25日15:40:31 处理数据映射,改成字母,但是显示的还是中文
+        category = this.parseCategory(category);
         policyReq.setNorm(category);
 //        policyReq.setNorm(chatReq.getCategory());//2024年7月12日16:23:24  因为有转义。。。
         policyReq.setFeedback(StringUtils.isBlank(feedback) ? null : JSON.parseObject(feedback, Map.class));
@@ -412,6 +414,27 @@ public class GRPCController extends BaseController {
         return JSON.toJSONString(policyReq, JSONWriter.Feature.WriteNulls);
     }
 
+
+    private String parseCategory(String category) {
+        switch (category) {
+            case "进水COD" : return "js_cod";
+            case "进水总磷" : return "js_tp";
+            case "进水总氮" : return "js_tn";
+            case "进水氨氮" : return "js_andan";
+            case "进水SS" : return "js_ss";
+            case "出水COD" : return "cs_cod";
+            case "出水总磷" : return "cs_tp";
+            case "出水总氮" : return "cs_tn";
+            case "出水氨氮" : return "cs_andan";
+            case "出水SS" : return "cs_ss";
+            case "#1好氧硝酸盐" : return "cs_tn_lxjc1";
+            case "#2好氧硝酸盐" : return "cs_tn_lxjc2";
+            case "出水氨氮连续检测" : return "cs_andan_lxjc1";
+            case "二沉池正磷酸盐" : return "cs_tp_lxjc";
+            default: throw new ServiceException("暂时不支持的类型");
+        }
+    }
+
     private void addChatRecord(ChatReq chatReq, String sessionId, int type, String warningId, String question, List<String> resultData) {
         chatReq.setSessionId(sessionId);
         chatReq.setType(type);//类型(0问答 1决策 2本地 3仿真预测)

+ 1 - 1
slibra-admin/src/main/resources/application-dev.yml

@@ -109,7 +109,7 @@ application:
 #默认走测试环境
 big-model:
   ip: 10.0.0.24
-  port: 27070
+  port: 37070
   temperature: 0.7
   topP: 0.7
 

+ 0 - 3
slibra-common/src/main/java/com/slibra/common/DecimalUtils.java

@@ -25,9 +25,6 @@ public class DecimalUtils {
     public static BigDecimal getAbsAndScale(BigDecimal req, int length){
         if(Objects.isNull(req))
             return null;
-
-
-
         return req.abs().setScale(length, RoundingMode.DOWN);
     }
 

+ 1 - 0
slibra-common/src/main/java/com/slibra/common/enums/BusinessEnum.java

@@ -58,6 +58,7 @@ public class BusinessEnum {
         ROBOT_ECCZLSY("二沉池正磷酸盐", "二沉池正磷酸盐"),
         ROBOT_ANDAN_1("#1氨氮", "#1氨氮"),
         ROBOT_ANDAN_2("#2氨氮", "#2氨氮"),
+        ROBOT_CS_AD("出水氨氮连续检测", "出水氨氮连续检测"),
 
         //2024年7月26日11:11:06 氨氮报警(两个池子)合成一个出水氨氮  CS_AD
 

+ 36 - 32
slibra-common/src/main/java/com/slibra/common/utils/format/WaterFormat.java

@@ -21,31 +21,33 @@ public class WaterFormat {
     public static DecisionReq getWaterDecimationData(DecisionReq decisionReq, TXinyiDaily daily ) {
         // 格式化小数
         // 溶解氧1位 碳源投加量 2位 其他都是整数
-        decisionReq.setCodIn(DecimalUtils.getAbsAndScale(decisionReq.getCodIn(), INT_0));
-        decisionReq.setCodInName(DecimalUtils.getAbsAndScale(decisionReq.getCodInName(), INT_0));
-        decisionReq.setCodOff(DecimalUtils.getAbsAndScale(decisionReq.getCodOff(), INT_0));
-        decisionReq.setCodOffName(DecimalUtils.getAbsAndScale(decisionReq.getCodOffName(), INT_0));
-        decisionReq.setCodOffCon(DecimalUtils.getAbsAndScale(decisionReq.getCodOffCon(), INT_0));
-        decisionReq.setTpIn(DecimalUtils.getAbsAndScale(decisionReq.getTpIn(), INT_0));
-        decisionReq.setTpInName(DecimalUtils.getAbsAndScale(decisionReq.getTpInName(), INT_0));
-        decisionReq.setTpOff(DecimalUtils.getAbsAndScale(decisionReq.getTpOff(), INT_0));
-        decisionReq.setTpOffName(DecimalUtils.getAbsAndScale(decisionReq.getTpOffName(), INT_0));
-        decisionReq.setTpOffCon(DecimalUtils.getAbsAndScale(decisionReq.getTpOffCon(), INT_0));
-        decisionReq.setTnIn(DecimalUtils.getAbsAndScale(decisionReq.getTnIn(), INT_0));
-        decisionReq.setTnInName(DecimalUtils.getAbsAndScale(decisionReq.getTnInName(), INT_0));
-        decisionReq.setTnOff(DecimalUtils.getAbsAndScale(decisionReq.getTnOff(), INT_0));
-        decisionReq.setTnOffName(DecimalUtils.getAbsAndScale(decisionReq.getTnOffName(), INT_0));
-        decisionReq.setTnOffCon(DecimalUtils.getAbsAndScale(decisionReq.getTnOffCon(), INT_0));
-        decisionReq.setAddanIn(DecimalUtils.getAbsAndScale(decisionReq.getAddanIn(), INT_0));
-        decisionReq.setAddanInName(DecimalUtils.getAbsAndScale(decisionReq.getAddanInName(), INT_0));
-        decisionReq.setAndanOff(DecimalUtils.getAbsAndScale(decisionReq.getAndanOff(), INT_0));
-        decisionReq.setAndanOffName(DecimalUtils.getAbsAndScale(decisionReq.getAndanOffName(), INT_0));
-        decisionReq.setAndanOffCon(DecimalUtils.getAbsAndScale(decisionReq.getAndanOffCon(), INT_0));
-        decisionReq.setSsIn(DecimalUtils.getAbsAndScale(decisionReq.getSsIn(), INT_0));
-        decisionReq.setSsInName(DecimalUtils.getAbsAndScale(decisionReq.getSsInName(), INT_0));
-        decisionReq.setSsOff(DecimalUtils.getAbsAndScale(decisionReq.getSsOff(), INT_0));
-        decisionReq.setSsOffName(DecimalUtils.getAbsAndScale(decisionReq.getSsOffName(), INT_0));
-        decisionReq.setSsOffCon(DecimalUtils.getAbsAndScale(decisionReq.getSsOffCon(), INT_0));
+        //2024年08月26日19:58:28 所有报警相关的真实值改成两位小数
+        //2024年08月27日09:21:26 对应的管控值和标准值也改成保留两位小数
+        decisionReq.setCodIn(DecimalUtils.getAbsAndScale(decisionReq.getCodIn(), INT_2));
+        decisionReq.setCodInName(DecimalUtils.getAbsAndScale(decisionReq.getCodInName(), INT_2));
+        decisionReq.setCodOff(DecimalUtils.getAbsAndScale(decisionReq.getCodOff(), INT_2));
+        decisionReq.setCodOffName(DecimalUtils.getAbsAndScale(decisionReq.getCodOffName(), INT_2));
+        decisionReq.setCodOffCon(DecimalUtils.getAbsAndScale(decisionReq.getCodOffCon(), INT_2));
+        decisionReq.setTpIn(DecimalUtils.getAbsAndScale(decisionReq.getTpIn(), INT_2));
+        decisionReq.setTpInName(DecimalUtils.getAbsAndScale(decisionReq.getTpInName(), INT_2));
+        decisionReq.setTpOff(DecimalUtils.getAbsAndScale(decisionReq.getTpOff(), INT_2));
+        decisionReq.setTpOffName(DecimalUtils.getAbsAndScale(decisionReq.getTpOffName(), INT_2));
+        decisionReq.setTpOffCon(DecimalUtils.getAbsAndScale(decisionReq.getTpOffCon(), INT_2));
+        decisionReq.setTnIn(DecimalUtils.getAbsAndScale(decisionReq.getTnIn(), INT_2));
+        decisionReq.setTnInName(DecimalUtils.getAbsAndScale(decisionReq.getTnInName(), INT_2));
+        decisionReq.setTnOff(DecimalUtils.getAbsAndScale(decisionReq.getTnOff(), INT_2));
+        decisionReq.setTnOffName(DecimalUtils.getAbsAndScale(decisionReq.getTnOffName(), INT_2));
+        decisionReq.setTnOffCon(DecimalUtils.getAbsAndScale(decisionReq.getTnOffCon(), INT_2));
+        decisionReq.setAddanIn(DecimalUtils.getAbsAndScale(decisionReq.getAddanIn(), INT_2));
+        decisionReq.setAddanInName(DecimalUtils.getAbsAndScale(decisionReq.getAddanInName(), INT_2));
+        decisionReq.setAndanOff(DecimalUtils.getAbsAndScale(decisionReq.getAndanOff(), INT_2));
+        decisionReq.setAndanOffName(DecimalUtils.getAbsAndScale(decisionReq.getAndanOffName(), INT_2));
+        decisionReq.setAndanOffCon(DecimalUtils.getAbsAndScale(decisionReq.getAndanOffCon(), INT_2));
+        decisionReq.setSsIn(DecimalUtils.getAbsAndScale(decisionReq.getSsIn(), INT_2));
+        decisionReq.setSsInName(DecimalUtils.getAbsAndScale(decisionReq.getSsInName(), INT_2));
+        decisionReq.setSsOff(DecimalUtils.getAbsAndScale(decisionReq.getSsOff(), INT_2));
+        decisionReq.setSsOffName(DecimalUtils.getAbsAndScale(decisionReq.getSsOffName(), INT_2));
+        decisionReq.setSsOffCon(DecimalUtils.getAbsAndScale(decisionReq.getSsOffCon(), INT_2));
         decisionReq.setTdsIn(DecimalUtils.getAbsAndScale(decisionReq.getTdsIn(), INT_0));
         decisionReq.setTdsInName(DecimalUtils.getAbsAndScale(decisionReq.getTdsInName(), INT_0));
         decisionReq.setT(DecimalUtils.getAbsAndScale(daily.getJsSw(), MyConstants.INT_0));
@@ -75,14 +77,15 @@ public class WaterFormat {
         decisionReq.setTpLv(DecimalUtils.getAbsAndScale(decisionReq.getTpLv(), INT_0));
         decisionReq.setTpLvContinuity(DecimalUtils.getAbsAndScale(decisionReq.getTpLvContinuity(), INT_0));
         // 碳源投加量 2位
+        //2024年08月27日20:10:49 化验室多个池子的也改成保留两位
         decisionReq.setTyjyl(DecimalUtils.getAbsAndScaleStr(decisionReq.getTyjyl(), INT_2));
         decisionReq.setCltjl(DecimalUtils.getAbsAndScaleStr(decisionReq.getCltjl(), INT_0));
-        decisionReq.setHycxsyAll(DecimalUtils.getAbsForArray(decisionReq.getHycxsyAll(), INT_0));
-        decisionReq.setQyanAll(DecimalUtils.getAbsForArray(decisionReq.getQyanAll(), INT_0));
-        decisionReq.setQyckxsyAll(DecimalUtils.getAbsForArray(decisionReq.getQyckxsyAll(), INT_0));
+        decisionReq.setHycxsyAll(DecimalUtils.getAbsForArray(decisionReq.getHycxsyAll(), INT_2));
+        decisionReq.setQyanAll(DecimalUtils.getAbsForArray(decisionReq.getQyanAll(), INT_2));
+        decisionReq.setQyckxsyAll(DecimalUtils.getAbsForArray(decisionReq.getQyckxsyAll(), INT_2));
         decisionReq.setGwnl(DecimalUtils.getAbsAndScale(daily.getGWNL(), INT_0));
         decisionReq.setEccZl(DecimalUtils.getAbsAndScaleStr(decisionReq.getEccZl(), INT_2));//这里要保留2为小数,否则数据太小,全都是0  示例:0.411195  0.372263
-        decisionReq.setHyzlsyAll(DecimalUtils.getAbsForArray(decisionReq.getHyzlsyAll(), INT_0));
+        decisionReq.setHyzlsyAll(DecimalUtils.getAbsForArray(decisionReq.getHyzlsyAll(), INT_2));
         decisionReq.setR(DecimalUtils.getAbsAndScale(daily.getNhlR(), INT_0));
         decisionReq.setRR(DecimalUtils.getAbsAndScale(daily.getWhlR(), INT_0));
         BigDecimal jsBod5 = daily.getJsBod5();
@@ -142,9 +145,9 @@ public class WaterFormat {
         if(StringUtils.isNotBlank(hycxsyAll)){//好氧
             List<BigDecimal> hyStrings = JSON.parseArray(hycxsyAll, BigDecimal.class);
             BigDecimal no3Hlj1Jqr = hyStrings.get(0);
-            decisionReq.setTnOffLxjc1(DecimalUtils.getAbsAndScale(no3Hlj1Jqr, INT_0));
+            decisionReq.setTnOffLxjc1(DecimalUtils.getAbsAndScale(no3Hlj1Jqr, INT_2));
             BigDecimal no3Hlj2Jqr = hyStrings.get(1);
-            decisionReq.setTnOffLxjc2(DecimalUtils.getAbsAndScale(no3Hlj2Jqr, INT_0));
+            decisionReq.setTnOffLxjc2(DecimalUtils.getAbsAndScale(no3Hlj2Jqr, INT_2));
             //处理氨氮 需要计算
             //缺氧硝酸盐
             String qyckxsyAll = decisionReq.getQyckxsyAll();
@@ -160,7 +163,7 @@ public class WaterFormat {
                     BigDecimal nh32Jqr = qyStrings2.get(1);
                     BigDecimal anDan1 = no3Qyc1Jqr.add(nh31Jqr).subtract(no3Hlj1Jqr);
                     BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
-                    decisionReq.setAnDanOffLxjc(DecimalUtils.getAbsAndScale(anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP), INT_0));
+                    decisionReq.setAnDanOffLxjc(DecimalUtils.getAbsAndScale(anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP), INT_2));
                 }
             }
         }
@@ -176,6 +179,7 @@ public class WaterFormat {
         List<BigDecimal> strings = JSON.parseArray("[11.898019,12.96599]", BigDecimal.class);
         System.out.println(strings.get(0));
         System.out.println(strings.get(1));
+        System.out.println(DecimalUtils.getAbsAndScaleStr("12.819", INT_2));
     }
 
 }

+ 26 - 3
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -17,6 +17,7 @@ import com.slibra.common.constant.MyConstants;
 import com.slibra.common.core.domain.DecisionReq;
 import com.slibra.common.core.domain.TXinyiDaily;
 import com.slibra.common.enums.BusinessEnum;
+import com.slibra.common.exception.ServiceException;
 import com.slibra.common.utils.DateUtils;
 import com.slibra.common.utils.LocalDateTimeUtil;
 import com.slibra.common.utils.StringUtils;
@@ -1592,13 +1593,15 @@ public class AsyncTask {
             PolicyReq policyReq = new PolicyReq();
             //2024年7月11日17:57:53 因为化验室的改了  但是 调用决策还得用原来的几个值
             String category = tXinyiWarningRecord.getCategory();
-            if(ROBOT_XSY_1.getCode().equalsIgnoreCase(category) || ROBOT_XSY_2.getCode().equalsIgnoreCase(category)){
+            /*if(ROBOT_XSY_1.getCode().equalsIgnoreCase(category) || ROBOT_XSY_2.getCode().equalsIgnoreCase(category)){
                 category = CS_ZD.getCode();
             } else if (ROBOT_ANDAN_1.getCode().equalsIgnoreCase(category) || ROBOT_ANDAN_2.getCode().equalsIgnoreCase(category)) {
                 category = CS_AD.getCode();
             }else if (ROBOT_ECCZLSY.getCode().equalsIgnoreCase(category)) {
                 category = CS_ZL.getCode();
-            }
+            }*/
+            //2024年08月25日15:40:31 处理数据映射,改成字母,但是显示的还是中文
+            category = this.parseCategory(category);
             policyReq.setNorm(category);
             HashMap<String, Object> hashMap = new HashMap<>();
             policyReq.setFeedback(hashMap);//不能传null
@@ -1675,6 +1678,26 @@ public class AsyncTask {
         }
     }
 
+    private String parseCategory(String category) {
+        switch (category) {
+            case "进水COD" : return "js_cod";
+            case "进水总磷" : return "js_tp";
+            case "进水总氮" : return "js_tn";
+            case "进水氨氮" : return "js_andan";
+            case "进水SS" : return "js_ss";
+            case "出水COD" : return "cs_cod";
+            case "出水总磷" : return "cs_tp";
+            case "出水总氮" : return "cs_tn";
+            case "出水氨氮" : return "cs_andan";
+            case "出水SS" : return "cs_ss";
+            case "#1好氧硝酸盐" : return "cs_tn_lxjc1";
+            case "#2好氧硝酸盐" : return "cs_tn_lxjc2";
+            case "出水氨氮连续检测" : return "cs_andan_lxjc1";
+            case "二沉池正磷酸盐" : return "cs_tp_lxjc";
+            default: throw new ServiceException("暂时不支持的类型");
+        }
+    }
+
 
     /**
      * 2024年7月11日10:32:49 生化报警的展示额外处理(因为涉及到很多的单位)
@@ -2319,7 +2342,7 @@ public class AsyncTask {
             BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
             if(!Objects.isNull(csadBzz)){
                 BigDecimal divide = anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP);
-                handleXinYiWarningsRobot(csadBzz, divide, csadGkz, CS_AD.getCode(), tXinyiIndustry, normConfig);
+                handleXinYiWarningsRobot(csadBzz, divide, csadGkz, ROBOT_CS_AD.getCode(), tXinyiIndustry, normConfig);
             }
         }
     }