Ver código fonte

自定义工单穿SQL过去的时候 根据前端选择不同类型,拼接不同的SQL

wangmiaomiao 8 meses atrás
pai
commit
4f2718b9ab

+ 106 - 8
slibra-admin/src/main/java/com/slibra/web/controller/business/GRPCController.java

@@ -549,7 +549,7 @@ public class GRPCController extends BaseController {
                 //2024年7月29日11:47:05 调整:图表以及大模型的数据都由大模型处理,这里拼接他需要的格式
 //                chatReq.setQuestion(this.buildGDCustomQuestion(timeBegin, timeEnd, chatReq.getWhichWay()));
                 chatReq.setQuestion(MODULE_CONTENT_CUSTOM);
-                extraStr = buildGDCustomQuestion(timeBegin, timeEnd, chatReq.getWhichWay());
+                extraStr = buildGDCustomQuestion(timeBegin, timeEnd, chatReq);
                 //2024年6月20日16:48:08  如果是自定义工单,需要处理图表 放到remark中
                 chatReq.setRemark(JSON.toJSONString(frontService.customWorkOrderHandleByData(workOrderReq, workOrderRes), JSONWriter.Feature.WriteNulls));
             }
@@ -654,7 +654,7 @@ public class GRPCController extends BaseController {
     }
 
 
-    private String buildGDCustomQuestion(String timeBegin, String timeEnd, int whichWay) {
+    private String buildGDCustomQuestion(String timeBegin, String timeEnd, ChatReq chatReq) {
         //存放的JSON
         HashMap<String, Object> map = new HashMap<>();
         map.put(TIMEBEGIN, timeBegin);
@@ -664,14 +664,112 @@ public class GRPCController extends BaseController {
         //拼装的SQL
         HashMap<String, Object> sqlMap = new HashMap<>();
         StringBuilder sb = new StringBuilder();
-        if(whichWay == 0){//日报
-            sqlMap.put(REPORT, sb.append(TOOLS_WORK_ORDER_SQL_DAILY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
-            sb = new StringBuilder();
+        if(chatReq.getWhichWay() == 0){//日报
+//            sqlMap.put(REPORT, sb.append(TOOLS_WORK_ORDER_SQL_DAILY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+            //2024年7月31日10:32:14 要根据前端用户选择的不同指标来拼接不同的SQL
+            //只要出现一个就可以拼接了
+            if (chatReq.getJsSlq() || chatReq.getJsCod() || chatReq.getJsTn() || chatReq.getJsTp() || chatReq.getJsNh3() || chatReq.getJsSs()
+                || chatReq.getCsSlqc() || chatReq.getCsCod() || chatReq.getCsTn() || chatReq.getCsTp() || chatReq.getCsNh3() || chatReq.getCsSs()){
+                //拼接
+                sb.append(TOOLS_WORK_ORDER_SQL_DAILY_BEGIN);
+                if(chatReq.getJsSlq())
+                    sb.append(", AVG(JS_SLQ)  进水量");
+                if(chatReq.getJsCod())
+                    sb.append(",AVG(JS_COD)  进水COD");
+                if(chatReq.getJsTn())
+                    sb.append(",AVG(JS_TN)  进水总氮");
+                if(chatReq.getJsTp())
+                    sb.append(",AVG(JS_TP)  进水总磷");
+                if(chatReq.getJsNh3())
+                    sb.append(",AVG(JS_NH3)  进水氨氮");
+                if(chatReq.getJsSs())
+                    sb.append(",AVG(JS_SS)  进水SS");
+                if(chatReq.getCsSlqc())
+                    sb.append(",AVG(CS_SLQC)  出水量");
+                if(chatReq.getCsCod())
+                    sb.append(",AVG(CS_COD)  出水COD");
+                if(chatReq.getCsTn())
+                    sb.append(",AVG(CS_TN)  出水总氮");
+                if(chatReq.getCsTp())
+                    sb.append(",AVG(CS_TP)  出水总磷");
+                if(chatReq.getCsNh3())
+                    sb.append(",AVG(CS_NH3)  出水氨氮");
+                if(chatReq.getCsSs())
+                    sb.append(",AVG(CS_SS)  出水SS");
+                sb.append(TOOLS_WORK_ORDER_SQL_DAILY_END).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END);
+                sqlMap.put(REPORT, sb.toString());
+                //清空
+                sb = new StringBuilder();
+            }
         }else{//工业库
-            sqlMap.put(ONLINE, sb.append(TOOLS_WORK_ORDER_SQL_INDUSTRY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
-            sb = new StringBuilder();
+//            sqlMap.put(ONLINE, sb.append(TOOLS_WORK_ORDER_SQL_INDUSTRY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+            //2024年7月31日10:32:14 要根据前端用户选择的不同指标来拼接不同的SQL
+            //只要出现一个就可以拼接了
+            if (chatReq.getJsSlq() || chatReq.getJsCod() || chatReq.getJsTn() || chatReq.getJsTp() || chatReq.getJsNh3() || chatReq.getJsSs()
+                    || chatReq.getCsSlqc() || chatReq.getCsCod() || chatReq.getCsTn() || chatReq.getCsTp() || chatReq.getCsNh3() || chatReq.getCsSs()){
+                //拼接
+                sb.append(TOOLS_WORK_ORDER_SQL_INDUSTRY_BEGIN);
+                if(chatReq.getJsSlq())
+                    sb.append(", AVG(JSL)  进水量");
+                if(chatReq.getJsCod())
+                    sb.append(",AVG(JS_COD)  进水COD");
+                if(chatReq.getJsTn())
+                    sb.append(",AVG(JS_TN)  进水总氮");
+                if(chatReq.getJsTp())
+                    sb.append(",AVG(JS_TP)  进水总磷");
+                if(chatReq.getJsNh3())
+                    sb.append(",AVG(JS_NH3)  进水氨氮");
+                if(chatReq.getJsSs())
+                    sb.append(",AVG(JS_SS)  进水SS");
+                if(chatReq.getCsSlqc())
+                    sb.append(",AVG(CSL)  出水量");
+                if(chatReq.getCsCod())
+                    sb.append(",AVG(CS_COD)  出水COD");
+                if(chatReq.getCsTn())
+                    sb.append(",AVG(CS_TN)  出水总氮");
+                if(chatReq.getCsTp())
+                    sb.append(",AVG(CS_TP)  出水总磷");
+                if(chatReq.getCsNh3())
+                    sb.append(",AVG(CS_NH3)  出水氨氮");
+                if(chatReq.getCsSs())
+                    sb.append(",AVG(CS_SS)  出水SS");
+                sb.append(TOOLS_WORK_ORDER_SQL_INDUSTRY_END).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END);
+                sqlMap.put(ONLINE, sb.toString());
+                //清空
+                sb = new StringBuilder();
+            }
+        }
+//        sqlMap.put(ROBOT, sb.append(TOOLS_WORK_ORDER_SQL_ROBOT).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+        //2024年7月31日10:32:14 要根据前端用户选择的不同指标来拼接不同的SQL
+        //只要出现一个就可以拼接了
+        if(chatReq.getNo3Hlj1Jqr() || chatReq.getNo3Hlj2Jqr() || chatReq.getNh31Jqr() || chatReq.getNh32Jqr()
+            || chatReq.getNo3Qyc1Jqr() || chatReq.getNo3Qyc2Jqr() || chatReq.getTpRccJqr()){
+            //拼接
+            sb.append(TOOLS_WORK_ORDER_SQL_ROBOT_BEGIN);
+            if(chatReq.getNo3Hlj1Jqr()){
+                sb.append(", AVG(NO3_HLJ1_JQR) '#1好氧池硝酸盐'");
+            }
+            if(chatReq.getNo3Hlj2Jqr()){
+                sb.append(",AVG(NO3_HLJ2_JQR) '#2好氧池硝酸盐'");
+            }
+            if(chatReq.getNh31Jqr()){
+                sb.append(",AVG(NH3_1_JQR) '#1缺氧氨氮'");
+            }
+            if(chatReq.getNh32Jqr()){
+                sb.append(",AVG(NH3_2_JQR) '#2缺氧氨氮'");
+            }
+            if(chatReq.getNo3Qyc1Jqr()){
+                sb.append(",AVG(NO3_QYC_1_JQR) '#1缺氧池硝酸盐'");
+            }
+            if(chatReq.getNo3Qyc2Jqr()){
+                sb.append(",AVG(NO3_QYC_2_JQR) '#2缺氧池硝酸盐'");
+            }
+            if(chatReq.getTpRccJqr()){
+                sb.append(",AVG(TP_RCC_JQR) '二沉池正磷酸盐'");
+            }
+            sb.append(TOOLS_WORK_ORDER_SQL_ROBOT_END).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END);
+            sqlMap.put(ROBOT, sb.toString());
         }
-        sqlMap.put(ROBOT, sb.append(TOOLS_WORK_ORDER_SQL_ROBOT).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
         map.put(DATA, sqlMap);
         return JSON.toJSONString(map);
     }

+ 7 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -94,11 +94,18 @@ public class MyConstants {
     public static final String ROBOT = "robot";
     public static final String TOOLS_WORK_ORDER_SQL_INDUSTRY = "SELECT TEST_DATE TEST_DATE, AVG(JS_SLQ)  进水量,AVG(JS_COD)  进水COD,AVG(JS_TN)  进水总氮,AVG(JS_TP)  进水总磷,AVG(JS_NH3)  进水氨氮,AVG(JS_SS)  进水SS,AVG(CS_SLQC)  出水量,AVG(CS_COD)  出水COD,AVG(CS_TN)  出水总氮,AVG(CS_TP)  出水总磷,AVG(CS_NH3)  出水氨氮,AVG(CS_SS)  出水SS FROM t_xinyi_industry WHERE TEST_DATE BETWEEN ";
 
+    public static final String TOOLS_WORK_ORDER_SQL_INDUSTRY_BEGIN = "SELECT TEST_DATE TEST_DATE";
+
+    public static final String TOOLS_WORK_ORDER_SQL_INDUSTRY_END = " FROM t_xinyi_industry WHERE TEST_DATE BETWEEN ";
     public static final String TOOLS_WORK_ORDER_SQL_DAILY = "SELECT TEST_DATE TEST_DATE, AVG(JSL)  进水量,AVG(JS_COD)  进水COD,AVG(JS_TN)  进水总氮,AVG(JS_TP)  进水总磷,AVG(JS_NH3)  进水氨氮,AVG(JS_SS)  进水SS,AVG(CSL)  出水量,AVG(CS_COD)  出水COD,AVG(CS_TN)  出水总氮,AVG(CS_TP)  出水总磷,AVG(CS_NH3)  出水氨氮,AVG(CS_SS)  出水SS FROM t_xinyi_daily WHERE TEST_DATE BETWEEN ";
 
+    public static final String TOOLS_WORK_ORDER_SQL_DAILY_BEGIN = "SELECT TEST_DATE TEST_DATE";
+    public static final String TOOLS_WORK_ORDER_SQL_DAILY_END = " FROM t_xinyi_daily WHERE TEST_DATE BETWEEN ";
 
     public static final String TOOLS_WORK_ORDER_SQL_ROBOT = "SELECT TEST_DATE TEST_DATE, AVG(NO3_HLJ1_JQR) '1#好氧池硝酸盐',AVG(NO3_HLJ2_JQR) '2#好氧池硝酸盐',AVG(NH3_1_JQR) '1#缺氧氨氮',AVG(NH3_2_JQR) '2#缺氧氨氮',AVG(NO3_QYC_1_JQR) '1#缺氧池硝酸盐',AVG(NO3_QYC_2_JQR) '2#缺氧池硝酸盐',AVG(TP_RCC_JQR) '二沉池正磷酸盐' FROM t_xinyi_robot WHERE TEST_DATE BETWEEN ";
 
+    public static final String TOOLS_WORK_ORDER_SQL_ROBOT_BEGIN = "SELECT TEST_DATE TEST_DATE";
+    public static final String TOOLS_WORK_ORDER_SQL_ROBOT_END = " FROM t_xinyi_robot WHERE TEST_DATE BETWEEN ";
 
     public static final String TOOLS_WORK_ORDER_SQL_DIAN_BEGIN = "'{";
     public static final String TOOLS_WORK_ORDER_SQL_DIAN_END = "}'";