pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -250,16 +250,16 @@ // 构造命令 Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); // 创建命令日志对象并添加到数据库中 RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); rmCommandHistoryMapper.insert(rmCommandHistory); comId = rmCommandHistory.getComId(); // 发送命令 JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { // 请求成功, 处理回调 BaseResponse response_CallBack = dealWithCallBack(comId); // 创建命令日志对象并添加到数据库中 RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); rmCommandHistoryMapper.insert(rmCommandHistory); comId = rmCommandHistory.getComId(); // 回调异常 if(!response_CallBack.getCode().equals("0001")) { @@ -288,9 +288,7 @@ // 回调成功,再判断执行是否成功 JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent()); System.out.println(job_content); JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData"); System.out.println(job_subData); Boolean dealResult = job_subData.getBoolean("success"); if(!dealResult) { /** @@ -301,7 +299,8 @@ rmCommandHistory.setComId(comId); rmCommandHistory.setResult((byte)0); rmCommandHistory.setResultTime(new Date()); rmCommandHistory.setResultText((JSONObject)JSON.toJSON(response_CallBack.getContent())); //rmCommandHistory.setResultText((JSONObject)JSON.toJSON(response_CallBack.getContent())); rmCommandHistory.setResultText(response_CallBack.getContent().toString()); rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory); return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -2,9 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.voRm.VoCommand; import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import com.dy.pipIrrGlobal.voRm.VoCommand; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -13,20 +13,20 @@ /** * @author ZhuBaoMin * @date 2024-05-24 10:46 * @LastEditTime 2024-05-24 10:46 * @date 2024-07-17 10:31 * @LastEditTime 2024-07-17 10:31 * @Description */ @Mapper public interface RmCommandHistoryMapper extends BaseMapper<RmCommandHistory> { int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long comId); int insert(RmCommandHistory record); int insertSelective(RmCommandHistory record); RmCommandHistory selectByPrimaryKey(Long id); RmCommandHistory selectByPrimaryKey(Long comId); int updateByPrimaryKeySelective(RmCommandHistory record); pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
@@ -1,5 +1,4 @@ package com.dy.pipIrrGlobal.pojoRm; /** * @author ZhuBaoMin * @date 2024-05-24 10:46 @@ -24,8 +23,8 @@ import java.util.Date; /** * 命令日志表 */ * 命令日志表 */ @TableName(value = "rm_command_history", autoResultMap = true) @Data @Builder @@ -107,7 +106,6 @@ /** * 命令结果内容 */ @TableField(typeHandler = JacksonTypeHandler.class) private JSONObject resultText; private String resultText; } pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
@@ -6,8 +6,8 @@ type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://192.168.40.166:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://8.140.179.55:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://8.140.179.55:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
@@ -5,8 +5,8 @@ #name: sp type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://8.140.179.55:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -15,35 +15,37 @@ <result column="operator" jdbcType="BIGINT" property="operator" /> <result column="result" jdbcType="TINYINT" property="result" /> <result column="result_time" jdbcType="TIMESTAMP" property="resultTime" /> <result column="result_text" property="resultText" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> <result column="result_text" jdbcType="LONGVARCHAR" property="resultText" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, `operator`, `result`, result_time, result_text com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, `operator`, `result`, result_time, result_text </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> select <include refid="Base_Column_List" /> from rm_command_history where com_id = #{id,jdbcType=BIGINT} where com_id = #{comId,jdbcType=BIGINT} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from rm_command_history where com_id = #{id,jdbcType=BIGINT} where com_id = #{comId,jdbcType=BIGINT} </delete> <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> insert into rm_command_history (com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, `operator`, `result`, result_time, result_text) values (#{comId,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT}, #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}) insert into rm_command_history (com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, `operator`, `result`, result_time, result_text ) values (#{comId,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT}, #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType=LONGVARCHAR} ) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> @@ -121,7 +123,7 @@ #{resultTime,jdbcType=TIMESTAMP}, </if> <if test="resultText != null"> #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{resultText,jdbcType=LONGVARCHAR}, </if> </trim> </insert> @@ -160,7 +162,7 @@ result_time = #{resultTime,jdbcType=TIMESTAMP}, </if> <if test="resultText != null"> result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, result_text = #{resultText,jdbcType=LONGVARCHAR}, </if> </set> where com_id = #{comId,jdbcType=BIGINT} @@ -178,7 +180,7 @@ `operator` = #{operator,jdbcType=BIGINT}, `result` = #{result,jdbcType=TINYINT}, result_time = #{resultTime,jdbcType=TIMESTAMP}, result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} result_text = #{resultText,jdbcType=LONGVARCHAR} where com_id = #{comId,jdbcType=BIGINT} </update> @@ -218,36 +220,36 @@ <!--根据取水口ID获取该取水口未关阀参数--> <select id="getUncloseParam" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam"> SELECT com.rtu_addr AS rtuAddr, com.param ->>'$.orderNo' AS orderNo, com.param ->>'$.icCardNo' AS vcNum com.rtu_addr AS rtuAddr, com.param ->>'$.orderNo' AS orderNo, com.param ->>'$.icCardNo' AS vcNum 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 INNER JOIN JSON_TABLE( <!-- '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> #{onLineMap}, '$[*]' COLUMNS( rtuAddr VARCHAR(20) PATH '$.rtuAddr', isOnLine BOOLEAN PATH '$.isOnLine' ) ) rtus ON com.rtu_addr = rtus.rtuAddr INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr INNER JOIN pr_intake inta ON con.intakeId = inta.id INNER JOIN JSON_TABLE( <!-- '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> #{onLineMap}, '$[*]' COLUMNS( rtuAddr VARCHAR(20) PATH '$.rtuAddr', isOnLine BOOLEAN PATH '$.isOnLine' ) ) rtus ON com.rtu_addr = rtus.rtuAddr WHERE (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97') AND con.intakeId = #{intakeId} AND NOT EXISTS ( SELECT * FROM rm_command_history WHERE (result IS NULL OR result = 1 ) AND (command_code = '93' OR command_code = 'A3' OR command_code = '98') AND param ->>'$.orderNo' = com.param ->>'$.orderNo' ) AND NOT EXISTS ( SELECT * FROM rm_command_history WHERE (result IS NULL OR result = 1 ) AND (command_code = '93' OR command_code = 'A3' OR command_code = '98') AND param ->>'$.orderNo' = com.param ->>'$.orderNo' ) ORDER BY com.send_time DESC LIMIT 0,1 LIMIT 0,1 </select> <!--根据指定条件获取命令日志历史记录总数--> <select id="getCommandHistoriesCount" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount COUNT(*) AS recordCount FROM rm_command_history his INNER JOIN pr_intake inta ON inta.id = his.intake_id LEFT JOIN se_client cli ON cli.id = his.operator @@ -268,23 +270,23 @@ <!--根据指定条件获取命令日志历史记录--> <select id="getCommandHistories" resultType="com.dy.pipIrrGlobal.voRm.VoCommand"> SELECT his.com_id AS comId, his.command_name AS commandName, inta.name AS intakeName, his.rtu_addr AS rtuAddr, his.protocol, his.send_time AS sendTime, his.result_time AS resultTime, (CASE WHEN his.result = 1 THEN "成功" ELSE "失败" his.com_id AS comId, his.command_name AS commandName, inta.name AS intakeName, his.rtu_addr AS rtuAddr, his.protocol, his.send_time AS sendTime, his.result_time AS resultTime, (CASE WHEN his.result = 1 THEN "成功" ELSE "失败" END) AS result, his.result_text, IFNULL(cli.name, user.name) AS userName his.result_text, IFNULL(cli.name, user.name) AS userName FROM rm_command_history his INNER JOIN pr_intake inta ON inta.id = his.intake_id LEFT JOIN se_client cli ON cli.id = his.operator LEFT JOIN ba_user user ON user.id = his.operator INNER JOIN pr_intake inta ON inta.id = his.intake_id LEFT JOIN se_client cli ON cli.id = his.operator LEFT JOIN ba_user user ON user.id = his.operator <where> <if test = "commandName != null and commandName !=''"> AND his.command_name LIKE CONCAT('%',#{commandName},'%') @@ -304,5 +306,4 @@ </if> </trim> </select> </mapper> pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
@@ -1,17 +1,14 @@ package com.dy.rtuMw.server.rtuData.p206V1_0_0; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.dy.common.mw.protocol.p206V1_0_0.*; import com.dy.common.mw.protocol.Data; import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd92Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd93Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo; import com.dy.common.util.DateTime; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.rtuMw.server.rtuData.TaskSurpport; import com.dy.common.mw.protocol.Data; import com.dy.rtuMw.server.rtuData.dbSv.DbSv; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -60,19 +57,23 @@ if(obj instanceof DataCd97Vo){ DataCd97Vo vo = (DataCd97Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); //po.setResultText((JSONObject) JSON.toJSON(vo)); po.setResultText(vo.toString()); }else if(obj instanceof DataCd98Vo){ DataCd98Vo vo = (DataCd98Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)); po.setResultText((JSONObject) JSON.toJSON(vo)); //po.setResultText((JSONObject) JSON.toJSON(vo)); po.setResultText(vo.toString()); }else if(obj instanceof DataCd92Vo){ DataCd92Vo vo = (DataCd92Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); //po.setResultText((JSONObject) JSON.toJSON(vo)); po.setResultText(vo.toString()); }else if(obj instanceof DataCd93Vo){ DataCd93Vo vo = (DataCd93Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); //po.setResultText((JSONObject) JSON.toJSON(vo)); po.setResultText(vo.toString()); } return po ; } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -3,8 +3,8 @@ datasource: #配置数据源 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -81,7 +81,7 @@ * @return */ @PostMapping(path = "open_wx", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class) public BaseResponse<Boolean> open(@RequestBody @Valid ValveOpen valve, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); @@ -227,7 +227,7 @@ * @return */ @PostMapping(path = "close_wx", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class) public BaseResponse<Boolean> close(@RequestBody @Valid ValveClose valve, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
@@ -34,7 +34,8 @@ * @param qo * @return */ @GetMapping(path = "one_intake") //@GetMapping(path = "one_intake") @GetMapping(path = "all_intakes") public BaseResponse<QueryResultVo<VoOnLineIntake>> getOneIntake(OnLineIntakesQO qo) { try { return BaseResponseUtils.buildSuccess(intakeSv.selectOneIntake(qo)); @@ -49,8 +50,8 @@ * @param qo * @return */ @GetMapping(path = "all_intakes") public BaseResponse<QueryResultVo<VoOnLineIntake>> getAllIntakes(OnLineIntakesQO qo) { @GetMapping(path = "all_intakes2") public BaseResponse<QueryResultVo<List<VoOnLineIntake>>> getAllIntakes(OnLineIntakesQO qo) { try { return BaseResponseUtils.buildSuccess(intakeSv.selectAllIntakes(qo)); } catch (Exception e) {