pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -4,6 +4,7 @@ import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -29,9 +30,10 @@ int updateByPrimaryKey(RmCommandHistory record); /** * 根据操作员ID获取未关阀记录 * @param operator 操作员ID * @return 未关阀记录 * 根据操作员ID获取未关阀记录(包含在线情况) * @param onLineMap * @param operator * @return */ List<VoUnclosedValve> getUnclosedValves(Long operator); List<VoUnclosedValve> getUnclosedValves(@Param("onLineMap") String onLineMap, @Param("operator") Long operator); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
@@ -20,6 +20,8 @@ private String intakeNum; private Boolean isOnLine; private String rtuAddr; private String orderNo; pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -171,20 +171,29 @@ where id = #{id,jdbcType=BIGINT} </update> <!--根据操作员ID获取未关阀记录--> <!--根据操作员ID获取未关阀记录(包含在线情况)--> <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> SELECT com.command_code AS commandCode, inta.name AS intakeNum, com.rtuAddr, com.param ->>'$.orderNo' AS orderNo, com.param ->>'$.icCardNo' AS vcNum, com.send_time AS openTime com.command_code AS commandCode, inta.name AS intakeNum, rtus.isOnLine, com.rtuAddr, com.param ->>'$.orderNo' AS orderNo, com.param ->>'$.icCardNo' AS vcNum, com.send_time AS openTime FROM rm_command_history com INNER JOIN pr_controller con ON com.rtuAddr = con.rtuAddr INNER JOIN pr_intake inta ON con.intakeId = inta.id INNER JOIN pr_controller con ON com.rtuAddr = con.rtuAddr INNER JOIN pr_intake inta ON con.intakeId = inta.id INNER JOIN JSON_TABLE( <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> #{onLineMap}, '$[*]' COLUMNS( rtuAddr VARCHAR(20) PATH '$.rtuAddr', isOnLine BOOLEAN PATH '$.isOnLine' ) ) rtus ON com.rtuAddr = rtus.rtuAddr WHERE (com.command_code = '92' OR com.command_code = 'A2') AND com.operator = #{operator} AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo') AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo') ORDER BY com.send_time DESC </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -67,16 +67,6 @@ return rmCommandHistoryMapper.updateByPrimaryKeySelective(po); } /** * 根据操作员ID获取未关阀记录 * @param operator * @return */ public List<VoUnclosedValve> getUnclosedValves(Long operator) { return rmCommandHistoryMapper.getUnclosedValves(operator); } /** * 获取取水口列表 * @return @@ -146,4 +136,41 @@ } } /** * 根据操作员ID获取未关阀记录(包含在线情况) * @param operator * @return */ public List<VoUnclosedValve> getUnclosedValves(Long operator) { Command com = new Command() ; com.id = Command.defaultId; com.code = "LCD0001"; com.type = "innerCommand"; JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); if(response != null && response.getString("code").equals("0001")) { JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap"); HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); JSONArray jsonArray = new JSONArray(); for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { JSONObject jsonObject = new JSONObject(); jsonObject.put("rtuAddr", entry.getKey()); jsonObject.put("isOnLine", entry.getValue()); jsonArray.add(jsonObject); } List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator); if(res != null) { return res; } else { return new ArrayList<>(); } } else { QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); return new ArrayList<>(); } } } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
@@ -51,7 +51,7 @@ protected static String controllerType = "57"; /** * 查询所有RTU在线情况 * 查询所有RTU在线情况(仅测试用) * @return */ @GetMapping(path = "get_online") pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -280,7 +280,7 @@ @SsoAop() public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator){ try { List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(operator); List<VoUnclosedValve> res = commandSv.getUnclosedValves(operator); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取未关阀记录异常", e); pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -406,10 +406,10 @@ /** * 校验验证码 * @param phoneNumber * @param code * @param po * @param bindingResult * @return * @throws ClientException * @throws IOException */ @Operation(summary = "校验验证码", description = "校验验证码") @ApiResponses(value = {