pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -57,16 +57,6 @@ */ List<VoUnclosedValve> getUnclosedValves(@Param("onLineMap") String onLineMap, @Param("comIds") String comIds); /** * 根据操作员ID获取未关阀记录(包含在线情况) * @param onLineMap * @param operator * @return */ List<VoUnclosedValve> getUnclosedValves2(@Param("onLineMap") String onLineMap, @Param("operator") Long operator); /** * 根据取水口ID获取该取水口未关阀参数,平台选择取水口关阀使用 * @param intakeId pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -275,8 +275,7 @@ ) ) rtus ON com.rtu_addr = rtus.rtuAddr <where> AND com.com_id in (#{comIds}) AND com.com_id in (${comIds}) AND ( SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' @@ -284,75 +283,6 @@ LIMIT 1 ) IS NOT NULL AND ( SELECT cl_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1 ) IS NULL </where> GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo', com.command_code, com.send_time, dt, waterInstant ORDER BY com.send_time DESC </select> <!--根据操作员ID获取未关阀记录(包含在线情况)--> <select id="getUnclosedValves2" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> SELECT inta.name AS intakeNum, IFNULL(rtus.isOnLine, false) AS isOnLine, com.rtu_addr AS rtuAddr, com.param ->> '$.icCardNo' AS vcNum, ( SELECT param ->> '$.orderNo' AS orderNo FROM rm_command_history WHERE rtu_addr = com.rtu_addr ORDER BY send_time desc LIMIT 0,1 ) AS orderNo, 'toClose' AS state, CASE WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 1 ELSE 0 END AS planned, com.send_time AS sendTime, (SELECT dt FROM rm_work_report_last WHERE rtu_addr = com.rtu_addr AND ic_card_no = com.param ->> '$.icCardNo' <!--AND dt > (SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1)--> AND dt > com.send_time ORDER BY dt DESC LIMIT 1) AS dt, (SELECT water_instant FROM rm_work_report_last WHERE rtu_addr = com.rtu_addr AND ic_card_no = com.param ->> '$.icCardNo' <!--AND dt > (SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1)--> AND dt > com.send_time ORDER BY dt DESC LIMIT 1) AS waterInstant FROM rm_command_history com INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr INNER JOIN pr_intake inta ON con.intakeId = inta.id LEFT JOIN JSON_TABLE( <!-- '[{"rtuAddr":"620201000030","isOnLine":true}]',--> #{onLineMap}, '$[*]' COLUMNS ( rtuAddr VARCHAR(20) PATH '$.rtuAddr', isOnLine BOOLEAN PATH '$.isOnLine' ) ) rtus ON com.rtu_addr = rtus.rtuAddr <where> AND com.operator = #{operator} AND com.result = 1 AND ((com.protocol = 'p206V1' OR com.protocol = 'p206V2') AND (com.command_code = '92' OR com.command_code = '97' OR com.command_code = '99' OR com.command_code = 'A0' OR com.command_code = 'A1' OR com.command_code = 'A2')) AND ( SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1 ) IS NOT NULL AND ( SELECT cl_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -17,6 +17,7 @@ import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.voRm.VoCommand; import com.dy.pipIrrGlobal.voRm.VoRtuAndVc; import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; @@ -118,7 +119,6 @@ com.code = "LCD0001"; com.type = "innerCommand"; comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); JSONArray jsonArray = new JSONArray(); @@ -133,17 +133,32 @@ }); } System.out.println(jsonArray); //} else { // return new ArrayList<>(); } List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves2(jsonArray.toJSONString(), operator); /** * 获取未关阀的RTU地址和虚拟卡编号对数组 * 遍历数组获取最后命令日志ID集合 */ List<VoRtuAndVc> rtus = rmCommandHistoryMapper.getUnclosedRtus(operator); String comIds = ""; if(rtus != null && rtus.size() > 0) { for (int i = 0; i < rtus.size(); i++) { Long comId = rmCommandHistoryMapper.getLastComId(rtus.get(i).getRtuAddr(), rtus.get(i).getVcNum()); if(comId > 0) { comIds = comIds + "\"" + comId + "\","; } } } if(comIds.length() > 0) { comIds = comIds.substring(0, comIds.length()-1); List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), comIds); if(res != null) { return res; } else { return new ArrayList<>(); } } return new ArrayList<>(); } /** * 为指定(阀控器地址、水卡编号、无关阀记录)开关阀最新记录添加关阀时间,使之不在未关阀记录中显示 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -100,7 +100,6 @@ com.code = "LCD0001"; com.type = "innerCommand"; comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); JSONArray jsonArray = new JSONArray(); @@ -114,7 +113,7 @@ jsonArray.add(jsonObject); }); } System.out.println(jsonArray.toJSONString()); //System.out.println(jsonArray.toJSONString()); } /** @@ -127,7 +126,7 @@ for (int i = 0; i < rtus.size(); i++) { Long comId = rmCommandHistoryMapper.getLastComId(rtus.get(i).getRtuAddr(), rtus.get(i).getVcNum()); if(comId > 0) { comIds = comIds + comId + ","; comIds = comIds + "\"" + comId + "\","; } } } pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application.yml
@@ -2,7 +2,9 @@ profiles: include: global, database, database-ym, database-sp, database-test #actutor的web端口 jpa: show-sql=true:#actutor的web端口 management: server: port: ${pipIrr.wechat.actutorPort}