pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -256,6 +256,7 @@ // 创建命令日志对象并添加到数据库中 RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); rmCommandHistoryMapper.insert(rmCommandHistory); comId = rmCommandHistory.getId(); // 回调异常 if(!response_CallBack.getCode().equals("0001")) { @@ -289,12 +290,24 @@ System.out.println(job_subData); Boolean dealResult = job_subData.getBoolean("success"); if(!dealResult) { /** * 执行失败 * 更新执行结果、返回结果时间、结果内容 */ rmCommandHistory = new RmCommandHistory(); rmCommandHistory.setId(comId); rmCommandHistory.setResult((byte)0); rmCommandHistory.setResultTime(new Date()); rmCommandHistory.setResultText((JSONObject)JSON.toJSON(response_CallBack.getContent())); rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory); return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); } /** * 执行成功,返回回调内容 * 执行成功 * 如果是开关阀:更改虚拟卡状态:是否使用中、最后操作、最后操作时间 * 更新执行结果、返回结果时间、结果内容 * 返回回调内容 */ if(comType != null) { SeVirtualCard virtualCard = new SeVirtualCard(); @@ -311,6 +324,15 @@ // 回调返回的内容 Data myData = (Data)response_CallBack.getContent(); // 更新命令日志:执行结果、返回结果时间、结果内容 rmCommandHistory = new RmCommandHistory(); rmCommandHistory.setId(comId); rmCommandHistory.setResult((byte)1); rmCommandHistory.setResultTime(new Date()); rmCommandHistory.setResultText((JSONObject)JSON.toJSON(myData)); rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory); return BaseResponseUtils.buildSuccess(myData) ; } else { // 请求失败 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -43,6 +43,5 @@ * @param intakeId * @return */ //VoUnclosedParam getUncloseParam(Long intakeId); VoUnclosedParam getUncloseParam(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId); } pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -253,13 +253,13 @@ AND card.cardNum like CONCAT('%',#{cardNum},'%') </if> <if test = "paymentId != null and paymentId > 0"> AND ope.payment_id = ${paymentId} </if> <!-- <if test = "paymentId != null and paymentId > 0">--> <!-- AND ope.payment_id = ${paymentId}--> <!-- </if>--> <if test = "rechargeTimeStart != null and rechargeTimeStop != null"> AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop} </if> <!-- <if test = "rechargeTimeStart != null and rechargeTimeStop != null">--> <!-- AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}--> <!-- </if>--> </where> </select> @@ -297,13 +297,13 @@ AND card.cardNum like CONCAT('%',#{cardNum},'%') </if> <if test = "paymentId != null and paymentId > 0"> AND ope.payment_id = ${paymentId} </if> <!-- <if test = "paymentId != null and paymentId > 0">--> <!-- AND ope.payment_id = ${paymentId}--> <!-- </if>--> <if test = "rechargeTimeStart != null and rechargeTimeStop != null"> AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop} </if> <!-- <if test = "rechargeTimeStart != null and rechargeTimeStop != null">--> <!-- AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}--> <!-- </if>--> </where> ORDER BY ope.operate_dt DESC <trim prefix="limit " > pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -3,7 +3,6 @@ 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.DataCd83CloseVo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; import com.dy.common.util.DateTime; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory; @@ -141,21 +140,22 @@ * @throws Exception */ private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception { RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), rtuAddr, null, null, null, null, null, null,null, DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), dataCd83CloseVo.type, dataCd83CloseVo.totalAmount, dataCd83CloseVo.icCardNo, dataCd83CloseVo.icCardAddr, dataCd83CloseVo.remainMoney, dataCd83CloseVo.thisAmount, dataCd83CloseVo.thisMoney, dataCd83CloseVo.thisTime, DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; return po ; //RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), // rtuAddr, // null, null, null, null, null, null,null, // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), // dataCd83CloseVo.type, // dataCd83CloseVo.totalAmount, // dataCd83CloseVo.icCardNo, // dataCd83CloseVo.icCardAddr, // dataCd83CloseVo.remainMoney, // dataCd83CloseVo.thisAmount, // dataCd83CloseVo.thisMoney, // dataCd83CloseVo.thisTime, // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; //return po ; return null; } @@ -169,21 +169,22 @@ * @throws Exception */ private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception { RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), rtuAddr, null, null, null, null, null, null,null, DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), dataCd83CloseVo.type, dataCd83CloseVo.totalAmount, dataCd83CloseVo.icCardNo, dataCd83CloseVo.icCardAddr, dataCd83CloseVo.remainMoney, dataCd83CloseVo.thisAmount, dataCd83CloseVo.thisMoney, dataCd83CloseVo.thisTime, DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; return po ; //RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), // rtuAddr, // null, null, null, null, null, null,null, // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), // dataCd83CloseVo.type, // dataCd83CloseVo.totalAmount, // dataCd83CloseVo.icCardNo, // dataCd83CloseVo.icCardAddr, // dataCd83CloseVo.remainMoney, // dataCd83CloseVo.thisAmount, // dataCd83CloseVo.thisMoney, // dataCd83CloseVo.thisTime, // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; //return po ; return null; } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Usability.java
New file @@ -0,0 +1,22 @@ package com.dy.pipIrrRemote.common.dto; import jakarta.validation.constraints.NotNull; import lombok.Data; /** * @author ZhuBaoMin * @date 2024-07-02 11:00 * @LastEditTime 2024-07-02 11:00 * @Description 终端用水有效性对象 */ @Data public class Usability extends DtoBase { public static final long serialVersionUID = 202407021101001L; /** * 终端用水有效性 */ @NotNull(message = "终端用水有效性不能为空") private Boolean valid; } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -6,10 +6,7 @@ import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo; import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo; import com.dy.common.mw.protocol.p206V202404.CodeV202404; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd9CVo; import com.dy.common.mw.protocol.p206V202404.downVos.*; import com.dy.common.util.IDLongGenerator; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; @@ -21,10 +18,7 @@ import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.common.CommandSv; import com.dy.pipIrrRemote.common.dto.Card; import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.common.dto.Recharge; import com.dy.pipIrrRemote.common.dto.ValveOpen; import com.dy.pipIrrRemote.common.dto.*; import com.dy.pipIrrRemote.result.RemoteResultCode; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -461,4 +455,98 @@ return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); } } /** * 设备终端用水控制 * @param usability * @param bindingResult * @return */ @PostMapping(path = "usability", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() public BaseResponse<Boolean> usability(@RequestBody @Valid Usability usability, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Long intakeId = usability.getIntakeId(); Boolean valid = usability.getValid(); Long operator = usability.getOperator(); Long comId = idLongGenerator.generate(); // 获取系统参数 if(!setuped) { setUp(); } // 取水口ID换阀控器地址及通讯协议 JSONObject job_rtu = getRtu(intakeId, null); if(job_rtu == null) { return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage()); } String rtuAddr = job_rtu.getString("rtuAddr"); String protocol = job_rtu.getString("protocol"); String commandCode = null; if(protocol.equals("p206V202404")) { if(valid) { // 获取功能码 commandCode = CodeV202404.cd_30; // 创建视图 ComCd31Vo param = new ComCd31Vo(); param.controllerType = controllerType; param.projectNo = projectNo; param.valid = true; /** * 构造命令、发送命令并处理请求结果及执行结果 * 1 准备参数 * 2 调用公共方法 */ Param myParam = new Param(); myParam.setComId(comId); myParam.setCommandCode(commandCode); myParam.setCommandName(CodeV202404.getCodeName(commandCode)); myParam.setIntakeId(intakeId); myParam.setRtuAddr(rtuAddr); myParam.setProtocol(protocol); myParam.setParam(param); myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm); myParam.setOperator(operator); return dealWithCommandResult(myParam); }else { // 获取功能码 commandCode = CodeV202404.cd_31; // 创建视图 ComCd31Vo param = new ComCd31Vo(); param.controllerType = controllerType; param.projectNo = projectNo; param.valid = false; /** * 构造命令、发送命令并处理请求结果及执行结果 * 1 准备参数 * 2 调用公共方法 */ Param myParam = new Param(); myParam.setComId(comId); myParam.setCommandCode(commandCode); myParam.setCommandName(CodeV202404.getCodeName(commandCode)); myParam.setIntakeId(intakeId); myParam.setRtuAddr(rtuAddr); myParam.setProtocol(protocol); myParam.setParam(param); myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm); myParam.setOperator(operator); return dealWithCommandResult(myParam); } } else if(protocol.equals("p206V1_0_1")) { return BaseResponseUtils.buildErrorMsg(RemoteResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage()); } else { return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); } } } pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -220,16 +220,16 @@ */ public QueryResultVo<List<VoRecharge>> getRecharges(QoRecharge queryVo) { //完善查询充值记录的起止时间 String rechargeTimeStart = queryVo.rechargeTimeStart; String rechargeTimeStop = queryVo.rechargeTimeStop; if(rechargeTimeStart != null) { rechargeTimeStart = rechargeTimeStart + " 00:00:00"; queryVo.setRechargeTimeStart(rechargeTimeStart); } if(rechargeTimeStop != null) { rechargeTimeStop = rechargeTimeStop + " 23:59:59"; queryVo.setRechargeTimeStop(rechargeTimeStop); } //String rechargeTimeStart = queryVo.rechargeTimeStart; //String rechargeTimeStop = queryVo.rechargeTimeStop; //if(rechargeTimeStart != null) { // rechargeTimeStart = rechargeTimeStart + " 00:00:00"; // queryVo.setRechargeTimeStart(rechargeTimeStart); //} //if(rechargeTimeStop != null) { // rechargeTimeStop = rechargeTimeStop + " 23:59:59"; // queryVo.setRechargeTimeStop(rechargeTimeStop); //} Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoRecharge.java
@@ -20,17 +20,20 @@ @Schema(name = "IC卡充值记录查询条件") public class QoRecharge extends QueryConditionVo { @Schema(description = "农户姓名") public String clientName; private String clientName; @Schema(description = "农户编号") private Long clientId; private String clientNum; @Schema(description = "IC卡号") public String cardAddr; private Long cardNum; @Schema(description = "付款方式") public Integer paymentId; //@Schema(description = "农户编号") //private Long clientId; //@Schema(description = "IC卡号") //public String cardAddr; //@Schema(description = "付款方式") //public Integer paymentId; //@Schema(description = "充值时间_开始") //public LocalDateTime rechargeTimeStart; @@ -38,9 +41,7 @@ //@Schema(description = "充值时间_结束") //public LocalDateTime rechargeTimeStop; @Schema(description = "充值时间_开始") public String rechargeTimeStart; //public String rechargeTimeStart; @Schema(description = "充值时间_结束") public String rechargeTimeStop; //public String rechargeTimeStop; } pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -62,25 +62,6 @@ } /** * 添加命令日志 * @param po 命令日志对象 * @return 字符串类型的主键 */ public Long insert(RmCommandHistory po) { rmCommandHistoryMapper.insert(po); return po.getId(); } /** * 修改命令日志信息 * @param po 命令日志对象 * @return 影响记录数量 */ public Integer update(RmCommandHistory po) { return rmCommandHistoryMapper.updateByPrimaryKeySelective(po); } /** * 根据操作员ID获取未关阀记录(包含在线情况) * @param operator * @return @@ -135,4 +116,25 @@ public SeClientCard geClientCardByCardId(Long cardId) { return seClientCardMapper.selectByPrimaryKey(cardId); } /** * 添加命令日志 * @param po 命令日志对象 * @return 字符串类型的主键 */ public Long insert(RmCommandHistory po) { rmCommandHistoryMapper.insert(po); return po.getId(); } /** * 修改命令日志信息 * @param po 命令日志对象 * @return 影响记录数量 */ public Integer update(RmCommandHistory po) { return rmCommandHistoryMapper.updateByPrimaryKeySelective(po); } }