Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
| | |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.CommandType; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.dto.Param; |
| | | import com.dy.pipIrrGlobal.command.enums.LastOperateENUM; |
| | | import com.dy.pipIrrGlobal.command.result.CommandResultCode; |
| | | import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import jakarta.annotation.PostConstruct; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpEntity; |
| | |
| | | * @Description 命令支撑类 |
| | | */ |
| | | |
| | | //@Component |
| | | //@DependsOn({"baSettingsMapper", "prControllerMapper"}) |
| | | public class ComSupport { |
| | | protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ; |
| | | |
| | |
| | | @Autowired |
| | | private PrControllerMapper prControllerMapper; |
| | | |
| | | //@Autowired |
| | | //private CommandSv commandSv; |
| | | |
| | | @Autowired |
| | | private RmCommandHistoryMapper rmCommandHistoryMapper; |
| | | |
| | | @Autowired |
| | | private SeVirtualCardMapper seVirtualCardMapper; |
| | | |
| | | public static ComSupport comSupport; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 发送命令并处理请求结果及执行结果 |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | protected BaseResponse dealWithCommandResult(Param po) { |
| | | protected BaseResponse<Boolean> dealWithCommandResult(Param po) { |
| | | Long comId = po.getComId(); |
| | | Byte comType = po.getComType(); |
| | | String commandCode = po.getCommandCode(); |
| | | String commandName = po.getCommandName(); |
| | | Long intakeId = po.getIntakeId(); |
| | | String rtuAddr = po.getRtuAddr(); |
| | | String protocol = po.getProtocol(); |
| | | Long vcId = po.getVcId(); |
| | | Object param = po.getParam(); |
| | | String rtuResultSendWebUrl = po.getRtuResultSendWebUrl(); |
| | | Long operator = po.getOperator(); |
| | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | //commandSv.insert(rmCommandHistory); |
| | | rmCommandHistoryMapper.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | // 回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | //commandSv.updateCommandResult(rmCommandHistory); |
| | | rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory); |
| | | return BaseResponseUtils.buildFail(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString()); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if (response_CallBack.getContent().toString().equals(CommandResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte) 0); |
| | | rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(CommandResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | |
| | | System.out.println(job_subData); |
| | | Boolean dealResult = job_subData.getBoolean("success"); |
| | | if(!dealResult) { |
| | | return BaseResponseUtils.buildFail(response_CallBack.getContent().toString()); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功,返回回调内容 |
| | | * 如果是开关阀:更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | if(comType != null) { |
| | | SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | virtualCard.setId(vcId); |
| | | if(comType == 1) { |
| | | virtualCard.setInUse((byte) 1); |
| | | }else { |
| | | virtualCard.setInUse((byte) 0); |
| | | } |
| | | virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | } |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildFail(job_param.getString("message")); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | } |
| | | } |
| | |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-04 11:25 |
| | | * @LastEditTime 2024-06-04 11:25 |
| | | * @Description |
| | | * @Description 构造命令、发送命令并处理请求结果及执行结果所需参数对象 |
| | | */ |
| | | |
| | | @Data |
| | |
| | | |
| | | private Long comId; |
| | | |
| | | /** |
| | | * 命令类型,1-开发,2-关阀 |
| | | */ |
| | | private Byte comType; |
| | | |
| | | private String commandCode; |
| | | |
| | | private String commandName; |
| | | |
| | | private Long intakeId; |
| | | |
| | |
| | | |
| | | private String protocol; |
| | | |
| | | private Long vcId; |
| | | |
| | | /** |
| | | * 视图对象 |
| | | */ |
| | | private Object param; |
| | | |
| | | private String rtuResultSendWebUrl; |
New file |
| | |
| | | package com.dy.pipIrrGlobal.command.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-24 22:08 |
| | | * @LastEditTime 2024-06-24 22:08 |
| | | * @Description 虚拟卡操作枚举 |
| | | */ |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum LastOperateENUM { |
| | | OPEN_ACCOUNT((byte)1, "开户"), |
| | | RECHARGE((byte)2, "充值"), |
| | | CONSUME((byte)3, "消费"), |
| | | APPLY_REFUND((byte)4, "申请退款"), |
| | | AUDIT_REFUND((byte)5, "退款审核"), |
| | | REFUND((byte)6, "退款"), |
| | | OPEN_VALVE((byte)7, "开阀"), |
| | | CLOSE_VALVE((byte)8, "关阀"); |
| | | |
| | | private final Byte code; |
| | | private final String message; |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrGlobal.daoRm; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-20 10:34 |
| | | * @LastEditTime 2024-06-20 10:34 |
| | | * @Description |
| | | */ |
| | | |
| | | @Mapper |
| | | public interface RmOpenCloseHistoryMapper extends BaseMapper<RmOpenCloseHistory> { |
| | | int deleteByPrimaryKey(Long id); |
| | | |
| | | int insert(RmOpenCloseHistory record); |
| | | |
| | | int insertSelective(RmOpenCloseHistory record); |
| | | |
| | | RmOpenCloseHistory selectByPrimaryKey(Long id); |
| | | |
| | | int updateByPrimaryKeySelective(RmOpenCloseHistory record); |
| | | |
| | | int updateByPrimaryKey(RmOpenCloseHistory record); |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrGlobal.daoRm; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-20 10:34 |
| | | * @LastEditTime 2024-06-20 10:34 |
| | | * @Description |
| | | */ |
| | | |
| | | @Mapper |
| | | public interface RmOpenCloseLastMapper extends BaseMapper<RmOpenCloseLast> { |
| | | int deleteByPrimaryKey(Long id); |
| | | |
| | | int insert(RmOpenCloseLast record); |
| | | |
| | | int insertSelective(RmOpenCloseLast record); |
| | | |
| | | RmOpenCloseLast selectByPrimaryKey(Long id); |
| | | |
| | | int updateByPrimaryKeySelective(RmOpenCloseLast record); |
| | | |
| | | int updateByPrimaryKey(RmOpenCloseLast record); |
| | | |
| | | /** |
| | | * 根据阀控器地址获取开关阀上报最新数据 |
| | | * @param rtuAddr |
| | | * @return |
| | | */ |
| | | List<RmOpenCloseLast> getRmOpenCloseReportLast(String rtuAddr); |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrGlobal.pojoRm; |
| | | |
| | | import com.alibaba.fastjson2.annotation.JSONField; |
| | | import com.alibaba.fastjson2.writer.ObjectWriterImplToString; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; |
| | | import com.dy.common.po.BaseEntity; |
| | | import com.dy.common.util.DateTime; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.*; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-20 10:34 |
| | | * @LastEditTime 2024-06-20 10:34 |
| | | * @Description |
| | | */ |
| | | /** |
| | | * 开关阀报历史数据表 |
| | | */ |
| | | |
| | | @TableName(value="rm_open_close_history", autoResultMap = true) |
| | | @Data |
| | | @Builder |
| | | @ToString |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | @Schema(name = "开关阀报历史数据表") |
| | | public class RmOpenCloseHistory implements BaseEntity { |
| | | public static final long serialVersionUID = 202406201040001L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | @TableId(type = IdType.INPUT) |
| | | public Long id; |
| | | |
| | | /** |
| | | * 控制器实体ID(外键) |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | public Long controllerId; |
| | | |
| | | /** |
| | | * 取水口实体ID(外键) |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | public Long intakeId; |
| | | |
| | | /** |
| | | * 控制器地址 |
| | | */ |
| | | public String rtuAddr; |
| | | |
| | | /** |
| | | * 开阀数据接收日期时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date opDt; |
| | | |
| | | /** |
| | | * 开阀控制器时钟 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date opRtuDt; |
| | | |
| | | /** |
| | | * IC卡地址(远程关闭时为0) |
| | | */ |
| | | public String opIcCardAddr; |
| | | |
| | | /** |
| | | * IC卡编号(17位数字) |
| | | */ |
| | | public String opIcCardNo; |
| | | |
| | | /** |
| | | * 开阀订单号(16位数字) |
| | | */ |
| | | public String opOrderNo; |
| | | |
| | | /** |
| | | * 开泵/阀时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date openDt; |
| | | |
| | | /** |
| | | * 开阀水表累计水量 |
| | | */ |
| | | public Double opWaterTotalAmount; |
| | | |
| | | /** |
| | | * 开阀电表累计电量 |
| | | */ |
| | | public Double opEleTotalAmount; |
| | | |
| | | /** |
| | | * 开阀用户剩余金额 |
| | | */ |
| | | public Double opMoneyRemainUser; |
| | | |
| | | /** |
| | | * 开阀用户剩余水量 |
| | | */ |
| | | public Double opWaterRemainUser; |
| | | |
| | | /** |
| | | * 关泵/阀方式 |
| | | */ |
| | | public Byte opType; |
| | | |
| | | /** |
| | | * 关阀IC卡地址(远程关闭时为0) |
| | | */ |
| | | public String clIcCardAddr; |
| | | |
| | | /** |
| | | * 关阀IC卡编号(17位数字) |
| | | */ |
| | | public String clIcCardNo; |
| | | |
| | | /** |
| | | * 关阀订单号(16位数字) |
| | | */ |
| | | public String clOrderNo; |
| | | |
| | | /** |
| | | * 开始时间(分时日月) |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date startDt; |
| | | |
| | | /** |
| | | * 结束时间(分时日月) |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date endDt; |
| | | |
| | | /** |
| | | * 水表累计流量 |
| | | */ |
| | | public Double clWaterTotalAmount; |
| | | |
| | | /** |
| | | * 电表累计电量 |
| | | */ |
| | | public Double clEleTotalAmount; |
| | | |
| | | /** |
| | | * 用户剩余金额 |
| | | */ |
| | | public Double clMoneyRemainUser; |
| | | |
| | | /** |
| | | * 用户剩余水量 |
| | | */ |
| | | public Double clWaterRemainUser; |
| | | |
| | | /** |
| | | * 本次使用电量 |
| | | */ |
| | | public Double thisEle; |
| | | |
| | | /** |
| | | * 本次使用水量 |
| | | */ |
| | | public Double thisWater; |
| | | |
| | | /** |
| | | * 本次使用金额 |
| | | */ |
| | | public Double thisMoney; |
| | | |
| | | /** |
| | | * 本次使用时间长 |
| | | */ |
| | | public Integer thisDuration; |
| | | |
| | | public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{ |
| | | this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt); |
| | | this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt); |
| | | //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt); |
| | | this.opIcCardAddr = cdData.icCardAddr; |
| | | this.opIcCardNo = cdData.icCardNo; |
| | | this.opOrderNo = cdData.orderNo; |
| | | this.opWaterTotalAmount = cdData.waterTotalAmount; |
| | | this.opEleTotalAmount = cdData.eleTotalAmount; |
| | | this.opMoneyRemainUser = cdData.moneyRemainUser; |
| | | this.opWaterRemainUser = cdData.waterRemainUser; |
| | | } |
| | | |
| | | public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{ |
| | | this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt); |
| | | this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt); |
| | | this.opType = cdData.opType; |
| | | this.clIcCardAddr = cdData.icCardAddr; |
| | | this.clIcCardNo = cdData.icCardNo; |
| | | this.clOrderNo = cdData.orderNo; |
| | | this.clWaterTotalAmount = cdData.waterTotalAmount; |
| | | this.clEleTotalAmount = cdData.eleTotalAmount; |
| | | this.clMoneyRemainUser = cdData.moneyRemain; |
| | | this.clWaterRemainUser = cdData.waterRemain; |
| | | this.thisEle = cdData.thisEle; |
| | | this.thisWater = cdData.thisWater; |
| | | this.thisMoney = cdData.thisMoney; |
| | | this.thisDuration = cdData.thisDuration; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrGlobal.pojoRm; |
| | | |
| | | import com.alibaba.fastjson2.annotation.JSONField; |
| | | import com.alibaba.fastjson2.writer.ObjectWriterImplToString; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; |
| | | import com.dy.common.po.BaseEntity; |
| | | import com.dy.common.util.DateTime; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.*; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-20 10:34 |
| | | * @LastEditTime 2024-06-20 10:34 |
| | | * @Description |
| | | */ |
| | | /** |
| | | * 开关阀报最新数据表 |
| | | */ |
| | | |
| | | @TableName(value="rm_open_close_last", autoResultMap = true) |
| | | @Data |
| | | @Builder |
| | | @ToString |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | @Schema(name = "开关阀报最新数据表") |
| | | public class RmOpenCloseLast implements BaseEntity { |
| | | public static final long serialVersionUID = 202406201041001L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | @TableId(type = IdType.INPUT) |
| | | public Long id; |
| | | |
| | | /** |
| | | * 控制器实体ID(外键) |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | public Long controllerId; |
| | | |
| | | /** |
| | | * 取水口实体ID(外键) |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | public Long intakeId; |
| | | |
| | | /** |
| | | * 控制器地址 |
| | | */ |
| | | public String rtuAddr; |
| | | |
| | | /** |
| | | * 开阀数据接收日期时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date opDt; |
| | | |
| | | /** |
| | | * 开阀控制器时钟 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date opRtuDt; |
| | | |
| | | /** |
| | | * IC卡地址(远程关闭时为0) |
| | | */ |
| | | public String opIcCardAddr; |
| | | |
| | | /** |
| | | * IC卡编号(17位数字) |
| | | */ |
| | | public String opIcCardNo; |
| | | |
| | | /** |
| | | * 开阀订单号(16位数字) |
| | | */ |
| | | public String opOrderNo; |
| | | |
| | | /** |
| | | * 开泵/阀时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date openDt; |
| | | |
| | | /** |
| | | * 开阀水表累计水量 |
| | | */ |
| | | public Double opWaterTotalAmount; |
| | | |
| | | /** |
| | | * 开阀电表累计电量 |
| | | */ |
| | | public Double opEleTotalAmount; |
| | | |
| | | /** |
| | | * 开阀用户剩余金额 |
| | | */ |
| | | public Double opMoneyRemainUser; |
| | | |
| | | /** |
| | | * 开阀用户剩余水量 |
| | | */ |
| | | public Double opWaterRemainUser; |
| | | |
| | | /** |
| | | * 关泵/阀方式 |
| | | */ |
| | | public Byte opType; |
| | | |
| | | /** |
| | | * 关阀IC卡地址(远程关闭时为0) |
| | | */ |
| | | public String clIcCardAddr; |
| | | |
| | | /** |
| | | * 关阀IC卡编号(17位数字) |
| | | */ |
| | | public String clIcCardNo; |
| | | |
| | | /** |
| | | * 关阀订单号(16位数字) |
| | | */ |
| | | public String clOrderNo; |
| | | |
| | | /** |
| | | * 开始时间(分时日月) |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date startDt; |
| | | |
| | | /** |
| | | * 结束时间(分时日月) |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | public Date endDt; |
| | | |
| | | /** |
| | | * 水表累计流量 |
| | | */ |
| | | public Double clWaterTotalAmount; |
| | | |
| | | /** |
| | | * 电表累计电量 |
| | | */ |
| | | public Double clEleTotalAmount; |
| | | |
| | | /** |
| | | * 用户剩余金额 |
| | | */ |
| | | public Double clMoneyRemainUser; |
| | | |
| | | /** |
| | | * 用户剩余水量 |
| | | */ |
| | | public Double clWaterRemainUser; |
| | | |
| | | /** |
| | | * 本次使用电量 |
| | | */ |
| | | public Double thisEle; |
| | | |
| | | /** |
| | | * 本次使用水量 |
| | | */ |
| | | public Double thisWater; |
| | | |
| | | /** |
| | | * 本次使用金额 |
| | | */ |
| | | public Double thisMoney; |
| | | |
| | | /** |
| | | * 本次使用时间长 |
| | | */ |
| | | public Integer thisDuration; |
| | | |
| | | public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{ |
| | | this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt); |
| | | this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt); |
| | | //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt); |
| | | this.opIcCardAddr = cdData.icCardAddr; |
| | | this.opIcCardNo = cdData.icCardNo; |
| | | this.opOrderNo = cdData.orderNo; |
| | | this.opWaterTotalAmount = cdData.waterTotalAmount; |
| | | this.opEleTotalAmount = cdData.eleTotalAmount; |
| | | this.opMoneyRemainUser = cdData.moneyRemainUser; |
| | | this.opWaterRemainUser = cdData.waterRemainUser; |
| | | } |
| | | |
| | | public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{ |
| | | this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt); |
| | | this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt); |
| | | this.opType = cdData.opType; |
| | | this.clIcCardAddr = cdData.icCardAddr; |
| | | this.clIcCardNo = cdData.icCardNo; |
| | | this.clOrderNo = cdData.orderNo; |
| | | this.clWaterTotalAmount = cdData.waterTotalAmount; |
| | | this.clEleTotalAmount = cdData.eleTotalAmount; |
| | | this.clMoneyRemainUser = cdData.moneyRemain; |
| | | this.clWaterRemainUser = cdData.waterRemain; |
| | | this.thisEle = cdData.thisEle; |
| | | this.thisWater = cdData.thisWater; |
| | | this.thisMoney = cdData.thisMoney; |
| | | this.thisDuration = cdData.thisDuration; |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseHistoryMapper"> |
| | | <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory"> |
| | | <!--@mbg.generated--> |
| | | <!--@Table rm_open_close_history--> |
| | | <id column="id" jdbcType="BIGINT" property="id" /> |
| | | <result column="controller_id" jdbcType="BIGINT" property="controllerId" /> |
| | | <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> |
| | | <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" /> |
| | | <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" /> |
| | | <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" /> |
| | | <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" /> |
| | | <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" /> |
| | | <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" /> |
| | | <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" /> |
| | | <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" /> |
| | | <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" /> |
| | | <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" /> |
| | | <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" /> |
| | | <result column="op_type" jdbcType="TINYINT" property="opType" /> |
| | | <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" /> |
| | | <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" /> |
| | | <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" /> |
| | | <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" /> |
| | | <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" /> |
| | | <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" /> |
| | | <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" /> |
| | | <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" /> |
| | | <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" /> |
| | | <result column="this_ele" jdbcType="FLOAT" property="thisEle" /> |
| | | <result column="this_water" jdbcType="FLOAT" property="thisWater" /> |
| | | <result column="this_money" jdbcType="FLOAT" property="thisMoney" /> |
| | | <result column="this_duration" jdbcType="INTEGER" property="thisDuration" /> |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!--@mbg.generated--> |
| | | id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, |
| | | op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, |
| | | op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, |
| | | end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, |
| | | this_ele, this_water, this_money, this_duration |
| | | </sql> |
| | | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_open_close_history |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | <!--@mbg.generated--> |
| | | delete from rm_open_close_history |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </delete> |
| | | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory"> |
| | | <!--@mbg.generated--> |
| | | insert into rm_open_close_history (id, controller_id, intake_id, |
| | | rtu_addr, op_dt, op_rtu_dt, |
| | | op_ic_card_addr, op_ic_card_no, op_order_no, |
| | | open_dt, op_water_total_amount, op_ele_total_amount, |
| | | op_money_remain_user, op_water_remain_user, op_type, |
| | | cl_ic_card_addr, cl_ic_card_no, cl_order_no, |
| | | start_dt, end_dt, cl_water_total_amount, |
| | | cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, |
| | | this_ele, this_water, this_money, |
| | | this_duration) |
| | | values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, |
| | | #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, |
| | | #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, |
| | | #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, |
| | | #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, |
| | | #{thisDuration,jdbcType=INTEGER}) |
| | | </insert> |
| | | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory"> |
| | | <!--@mbg.generated--> |
| | | insert into rm_open_close_history |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="controllerId != null"> |
| | | controller_id, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | intake_id, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | rtu_addr, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | op_dt, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | op_rtu_dt, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | op_ic_card_addr, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | op_ic_card_no, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | op_order_no, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | open_dt, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | op_water_total_amount, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | op_ele_total_amount, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | op_money_remain_user, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | op_water_remain_user, |
| | | </if> |
| | | <if test="opType != null"> |
| | | op_type, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | cl_ic_card_addr, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | cl_ic_card_no, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | cl_order_no, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | start_dt, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | end_dt, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | cl_water_total_amount, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | cl_ele_total_amount, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | cl_money_remain_user, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | cl_water_remain_user, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | this_ele, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | this_water, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | this_money, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | this_duration, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="controllerId != null"> |
| | | #{controllerId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | #{intakeId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | #{rtuAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | #{opDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | #{opIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | #{opOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | #{openDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opType != null"> |
| | | #{opType,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | #{clIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | #{clOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | #{startDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | #{endDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | #{thisEle,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | #{thisWater,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | #{thisMoney,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | #{thisDuration,jdbcType=INTEGER}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory"> |
| | | <!--@mbg.generated--> |
| | | update rm_open_close_history |
| | | <set> |
| | | <if test="controllerId != null"> |
| | | controller_id = #{controllerId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | op_dt = #{opDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | op_order_no = #{opOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | open_dt = #{openDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opType != null"> |
| | | op_type = #{opType,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | cl_order_no = #{clOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | start_dt = #{startDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | end_dt = #{endDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | this_ele = #{thisEle,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | this_water = #{thisWater,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | this_money = #{thisMoney,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | this_duration = #{thisDuration,jdbcType=INTEGER}, |
| | | </if> |
| | | </set> |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory"> |
| | | <!--@mbg.generated--> |
| | | update rm_open_close_history |
| | | set controller_id = #{controllerId,jdbcType=BIGINT}, |
| | | intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, |
| | | op_dt = #{opDt,jdbcType=TIMESTAMP}, |
| | | op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR}, |
| | | op_order_no = #{opOrderNo,jdbcType=VARCHAR}, |
| | | open_dt = #{openDt,jdbcType=TIMESTAMP}, |
| | | op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | op_type = #{opType,jdbcType=TINYINT}, |
| | | cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR}, |
| | | cl_order_no = #{clOrderNo,jdbcType=VARCHAR}, |
| | | start_dt = #{startDt,jdbcType=TIMESTAMP}, |
| | | end_dt = #{endDt,jdbcType=TIMESTAMP}, |
| | | cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | this_ele = #{thisEle,jdbcType=FLOAT}, |
| | | this_water = #{thisWater,jdbcType=FLOAT}, |
| | | this_money = #{thisMoney,jdbcType=FLOAT}, |
| | | this_duration = #{thisDuration,jdbcType=INTEGER} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseLastMapper"> |
| | | <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | <!--@mbg.generated--> |
| | | <!--@Table rm_open_close_last--> |
| | | <id column="id" jdbcType="BIGINT" property="id" /> |
| | | <result column="controller_id" jdbcType="BIGINT" property="controllerId" /> |
| | | <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> |
| | | <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" /> |
| | | <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" /> |
| | | <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" /> |
| | | <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" /> |
| | | <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" /> |
| | | <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" /> |
| | | <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" /> |
| | | <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" /> |
| | | <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" /> |
| | | <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" /> |
| | | <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" /> |
| | | <result column="op_type" jdbcType="TINYINT" property="opType" /> |
| | | <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" /> |
| | | <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" /> |
| | | <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" /> |
| | | <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" /> |
| | | <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" /> |
| | | <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" /> |
| | | <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" /> |
| | | <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" /> |
| | | <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" /> |
| | | <result column="this_ele" jdbcType="FLOAT" property="thisEle" /> |
| | | <result column="this_water" jdbcType="FLOAT" property="thisWater" /> |
| | | <result column="this_money" jdbcType="FLOAT" property="thisMoney" /> |
| | | <result column="this_duration" jdbcType="INTEGER" property="thisDuration" /> |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!--@mbg.generated--> |
| | | id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, |
| | | op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, |
| | | op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, |
| | | end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, |
| | | this_ele, this_water, this_money, this_duration |
| | | </sql> |
| | | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_open_close_last |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | <!--@mbg.generated--> |
| | | delete from rm_open_close_last |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </delete> |
| | | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | <!--@mbg.generated--> |
| | | insert into rm_open_close_last (id, controller_id, intake_id, |
| | | rtu_addr, op_dt, op_rtu_dt, |
| | | op_ic_card_addr, op_ic_card_no, op_order_no, |
| | | open_dt, op_water_total_amount, op_ele_total_amount, |
| | | op_money_remain_user, op_water_remain_user, op_type, |
| | | cl_ic_card_addr, cl_ic_card_no, cl_order_no, |
| | | start_dt, end_dt, cl_water_total_amount, |
| | | cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, |
| | | this_ele, this_water, this_money, |
| | | this_duration) |
| | | values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, |
| | | #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, |
| | | #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, |
| | | #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, |
| | | #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, |
| | | #{thisDuration,jdbcType=INTEGER}) |
| | | </insert> |
| | | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | <!--@mbg.generated--> |
| | | insert into rm_open_close_last |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="controllerId != null"> |
| | | controller_id, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | intake_id, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | rtu_addr, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | op_dt, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | op_rtu_dt, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | op_ic_card_addr, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | op_ic_card_no, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | op_order_no, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | open_dt, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | op_water_total_amount, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | op_ele_total_amount, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | op_money_remain_user, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | op_water_remain_user, |
| | | </if> |
| | | <if test="opType != null"> |
| | | op_type, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | cl_ic_card_addr, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | cl_ic_card_no, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | cl_order_no, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | start_dt, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | end_dt, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | cl_water_total_amount, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | cl_ele_total_amount, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | cl_money_remain_user, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | cl_water_remain_user, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | this_ele, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | this_water, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | this_money, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | this_duration, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="controllerId != null"> |
| | | #{controllerId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | #{intakeId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | #{rtuAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | #{opDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | #{opIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | #{opOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | #{openDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opType != null"> |
| | | #{opType,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | #{clIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | #{clOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | #{startDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | #{endDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | #{thisEle,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | #{thisWater,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | #{thisMoney,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | #{thisDuration,jdbcType=INTEGER}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | <!--@mbg.generated--> |
| | | update rm_open_close_last |
| | | <set> |
| | | <if test="controllerId != null"> |
| | | controller_id = #{controllerId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="rtuAddr != null"> |
| | | rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opDt != null"> |
| | | op_dt = #{opDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opRtuDt != null"> |
| | | op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opIcCardAddr != null"> |
| | | op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opIcCardNo != null"> |
| | | op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="opOrderNo != null"> |
| | | op_order_no = #{opOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="openDt != null"> |
| | | open_dt = #{openDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="opWaterTotalAmount != null"> |
| | | op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opEleTotalAmount != null"> |
| | | op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opMoneyRemainUser != null"> |
| | | op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opWaterRemainUser != null"> |
| | | op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="opType != null"> |
| | | op_type = #{opType,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="clIcCardAddr != null"> |
| | | cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clIcCardNo != null"> |
| | | cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clOrderNo != null"> |
| | | cl_order_no = #{clOrderNo,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="startDt != null"> |
| | | start_dt = #{startDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="endDt != null"> |
| | | end_dt = #{endDt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="clWaterTotalAmount != null"> |
| | | cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clEleTotalAmount != null"> |
| | | cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clMoneyRemainUser != null"> |
| | | cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="clWaterRemainUser != null"> |
| | | cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisEle != null"> |
| | | this_ele = #{thisEle,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisWater != null"> |
| | | this_water = #{thisWater,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisMoney != null"> |
| | | this_money = #{thisMoney,jdbcType=FLOAT}, |
| | | </if> |
| | | <if test="thisDuration != null"> |
| | | this_duration = #{thisDuration,jdbcType=INTEGER}, |
| | | </if> |
| | | </set> |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | <!--@mbg.generated--> |
| | | update rm_open_close_last |
| | | set controller_id = #{controllerId,jdbcType=BIGINT}, |
| | | intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, |
| | | op_dt = #{opDt,jdbcType=TIMESTAMP}, |
| | | op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP}, |
| | | op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR}, |
| | | op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR}, |
| | | op_order_no = #{opOrderNo,jdbcType=VARCHAR}, |
| | | open_dt = #{openDt,jdbcType=TIMESTAMP}, |
| | | op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT}, |
| | | op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT}, |
| | | op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT}, |
| | | op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT}, |
| | | op_type = #{opType,jdbcType=TINYINT}, |
| | | cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR}, |
| | | cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR}, |
| | | cl_order_no = #{clOrderNo,jdbcType=VARCHAR}, |
| | | start_dt = #{startDt,jdbcType=TIMESTAMP}, |
| | | end_dt = #{endDt,jdbcType=TIMESTAMP}, |
| | | cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT}, |
| | | cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT}, |
| | | cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT}, |
| | | cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT}, |
| | | this_ele = #{thisEle,jdbcType=FLOAT}, |
| | | this_water = #{thisWater,jdbcType=FLOAT}, |
| | | this_money = #{thisMoney,jdbcType=FLOAT}, |
| | | this_duration = #{thisDuration,jdbcType=INTEGER} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | |
| | | <!--根据阀控器地址获取开关阀上报最新数据--> |
| | | <select id="getRmOpenCloseReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_open_close_last |
| | | where rtu_addr = #{rtuAddr} |
| | | </select> |
| | | </mapper> |
| | |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | @Autowired |
| | | private RmTimingReportLastMapper rmTimingReportLastDao; // 定点上报最新数据DAO |
| | | |
| | | @Autowired |
| | | private RmOpenCloseHistoryMapper rmOpenCloseHistoryDao; |
| | | @Autowired |
| | | private RmOpenCloseLastMapper rmOpenCloseLastDao; |
| | | |
| | | //@Autowired |
| | | //@Lazy |
| | | //private DbSv sv ; |
| | |
| | | this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ; |
| | | } |
| | | |
| | | /** |
| | | * 保存控制器开关阀上报数据最新记录(202404) |
| | | * @param po |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveRmOpenCloseLast(RmOpenCloseLast po){ |
| | | this.rmOpenCloseLastDao.insert(po) ; |
| | | } |
| | | |
| | | /** |
| | | * 保存控制器开关阀上报数据历史记录(202404) |
| | | * @param po |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveRmOpenCloseHistory(RmOpenCloseHistory po){ |
| | | this.rmOpenCloseHistoryDao.insert(po) ; |
| | | } |
| | | |
| | | /** |
| | | * 得到控制器开关阀上报数据最新记录(202404) |
| | | * @param rtuAddr |
| | | * @return |
| | | */ |
| | | public RmOpenCloseLast getRmOpenCloseLast(String rtuAddr){ |
| | | List<RmOpenCloseLast> list = rmOpenCloseLastDao.getRmOpenCloseReportLast(rtuAddr); |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | | return null ; |
| | | } |
| | | |
| | | /** |
| | | * 保存控制器开关阀上报数据最新记录(202404) |
| | | * @param po |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateRmOpenCloseLast(RmOpenCloseLast po){ |
| | | this.rmOpenCloseLastDao.updateByPrimaryKeySelective(po); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////// |
| | | // |
New file |
| | |
| | | package com.dy.rtuMw.server.rtuData.p206V202404; |
| | | |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-20 13:48 |
| | | * @LastEditTime 2024-06-20 13:48 |
| | | * @Description |
| | | */ |
| | | public class TkDealCloseValveReportV202404 extends TaskSurpport { |
| | | private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName()); |
| | | |
| | | //类ID,一定与Tree.xml配置文件中配置一致 |
| | | public static final String taskId = "TkDealCloseValveReportV202404"; |
| | | |
| | | /** |
| | | * 执行节点任务:关阀上报 |
| | | * |
| | | * @param data 需要处理的数据 |
| | | */ |
| | | @Override |
| | | public void execute(Object data) { |
| | | Data d = (Data) data; |
| | | DataV202404 dV202404 = (DataV202404) d.getSubData(); |
| | | Object cdObj = dV202404.subData; |
| | | if (cdObj != null) { |
| | | try { |
| | | Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId); |
| | | DbSv sv = (DbSv) objs[0]; |
| | | PrController controller = (PrController) objs[1]; |
| | | if (cdObj instanceof DataCd85Vo) { |
| | | DataCd85Vo cdData = (DataCd85Vo) (cdObj); |
| | | this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd85Vo)cdObj); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("保存控制器开阀报数据时发生异常", e); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 处理关阀报数据 |
| | | * @param sv 服务 |
| | | * @param controller 控制器对象 |
| | | * @param rtuAddr 控制器地址 |
| | | * @param dataV202404 协议数据 |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData) throws Exception { |
| | | this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData); |
| | | this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData); |
| | | } |
| | | |
| | | /** |
| | | * 保存或更新控制器关阀报最新数据 |
| | | * @param sv 服务bean |
| | | * @param controller 控制器对象 |
| | | * @param rtuAddr 控制器地址 |
| | | * @param dataV202404 协议数据 |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception { |
| | | RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr); |
| | | if(po == null){ |
| | | po = new RmOpenCloseLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.rtuAddr = rtuAddr; |
| | | po.valueFrom85(dataV202404, cdData); |
| | | sv.saveRmOpenCloseLast(po); |
| | | }else{ |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.valueFrom85(dataV202404, cdData); |
| | | sv.updateRmOpenCloseLast(po); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 保存控制器关阀报历史数据 |
| | | * @param sv 服务bean |
| | | * @param controller 控制器对象 |
| | | * @param rtuAddr 控制器地址 |
| | | * @param dataV202404 协议数据 |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception { |
| | | RmOpenCloseHistory po = new RmOpenCloseHistory(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.rtuAddr = rtuAddr; |
| | | po.valueFrom85(dataV202404, cdData); |
| | | sv.saveRmOpenCloseHistory(po); ; |
| | | } |
| | | } |
| | |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import org.apache.logging.log4j.LogManager; |
| | |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData) throws Exception { |
| | | //this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData); |
| | | //this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData); |
| | | this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData); |
| | | this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param dataV202404 协议数据 |
| | | * @param cdData 功能数据 |
| | | */ |
| | | //private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception { |
| | | // RmTimingReportLast po = sv.getRmTimingReportLast(rtuAddr) ; |
| | | // if(po == null){ |
| | | // po = new RmTimingReportLast(); |
| | | // po.controllerId = controller==null?null:controller.getId(); |
| | | // po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | // po.rtuAddr = rtuAddr; |
| | | // po.valueFrom(dataV202404, cdData); |
| | | // sv.saveRmTimingReportLast(po) ; |
| | | // }else{ |
| | | // po.controllerId = controller==null?null:controller.getId(); |
| | | // po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | // po.valueFrom(dataV202404, cdData); |
| | | // sv.updateRmTimingReportLast(po); |
| | | // } |
| | | //} |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception { |
| | | RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr); |
| | | if(po == null){ |
| | | po = new RmOpenCloseLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.rtuAddr = rtuAddr; |
| | | po.valueFrom84(dataV202404, cdData); |
| | | sv.saveRmOpenCloseLast(po); |
| | | }else{ |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.valueFrom84(dataV202404, cdData); |
| | | sv.updateRmOpenCloseLast(po); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 保存控制器工作报历史数据 |
| | |
| | | * @param dataV202404 协议数据 |
| | | * @param cdData 功能数据 |
| | | */ |
| | | //private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception { |
| | | // RmTimingReportHistory po = new RmTimingReportHistory(); |
| | | // po.controllerId = controller==null?null:controller.getId(); |
| | | // po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | // po.rtuAddr = rtuAddr; |
| | | // po.valueFrom(dataV202404, cdData); |
| | | // sv.saveRmTimingReportHistory(po); ; |
| | | //} |
| | | private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception { |
| | | RmOpenCloseHistory po = new RmOpenCloseHistory(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | | po.intakeId = controller==null?null:controller.getIntakeId(); |
| | | po.rtuAddr = rtuAddr; |
| | | po.valueFrom84(dataV202404, cdData); |
| | | sv.saveRmOpenCloseHistory(po); ; |
| | | } |
| | | } |
| | |
| | | <task id="TkDealWorkingReportV202404" name="控制器工作报(功能码80)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealWorkingReportV202404" /> |
| | | <task id="TkDealTimingReportV202404" name="控制器定时上报(功能码83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" /> |
| | | <task id="TkDealOpenValveReportV202404" name="控制器开阀上报(功能码84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealOpenValveReportV202404" /> |
| | | <task id="TkDealCloseValveReportV202404" name="控制器关阀上报(功能码85)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealCloseValveReportV202404" /> |
| | | </task> |
| | | <!-- 识别命令响应数据 --> |
| | | <task id="TkFindComResponseV202404" name="识别响应命令数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404"> |
| | |
| | | */ |
| | | @Transactional |
| | | public int delete(Long id){ |
| | | return this.dao.deleteLogicById(id) ; |
| | | return this.dao.deleteByPrimaryKey(id) ; |
| | | } |
| | | |
| | | /** |
| | |
| | | import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; |
| | | import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; |
| | |
| | | private final PrIntakeMapper prIntakeMapper; |
| | | private final PrWaterPriceMapper prWaterPriceMapper; |
| | | private final PrIntakeVcMapper prIntakeVcMapper; |
| | | private final SeClientCardMapper seClientCardMapper; |
| | | |
| | | /** |
| | | * 虚拟卡ID换虚拟卡对象 |
| | |
| | | jsonObject.put("isOnLine", entry.getValue()); |
| | | jsonArray.add(jsonObject); |
| | | } |
| | | |
| | | System.out.println(jsonArray); |
| | | return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId); |
| | | } else { |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 根据水卡编号获取水卡对象,远程充值使用 |
| | | * @param cardId |
| | | * @return |
| | | */ |
| | | public SeClientCard geClientCardByCardId(Long cardId) { |
| | | return seClientCardMapper.selectByPrimaryKey(cardId); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.common.dto; |
| | | |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-26 8:44 |
| | | * @LastEditTime 2024-06-26 8:44 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | public class Recharge extends DtoBase { |
| | | public static final long serialVersionUID = 202406260745001L; |
| | | |
| | | /** |
| | | * 水卡ID |
| | | */ |
| | | @NotNull(message = "水卡ID不能为空") |
| | | private Long cardId; |
| | | |
| | | /** |
| | | * 充值金额 |
| | | */ |
| | | @NotNull(message = "充值金额不能为空") |
| | | private Double chargeMoney; |
| | | |
| | | /** |
| | | * 充值水量 |
| | | */ |
| | | private Double chargeWater; |
| | | |
| | | } |
| | |
| | | GET_RESULT_ERROR(10002, "获取结果异常"), |
| | | PLEASE_SELECT_A_VC(10003, "请选择一张虚拟卡"), |
| | | IN_USE_VC_CANNOT_OPEN_VALVE(10004, "使用中虚拟卡不能用来开阀"), |
| | | VALVE_CLOSED(10005, "该取水口已关阀"), |
| | | VALVE_CLOSED(10005, "该取水口不在线或已关阀"), |
| | | |
| | | /** |
| | | * RTU |
| | | */ |
| | | RTU_NOT_EXIST(20001, "阀控器不存在"); |
| | | RTU_NOT_EXIST(20001, "阀控器不存在"), |
| | | //RTU_ADDR_CANNOT_BE_NULL(20002, "阀控器地址不能为空"); |
| | | |
| | | CLIENT_CARD_NOT_EXIST(30001, "水卡不存在"); |
| | | |
| | | private final Integer code; |
| | | private final String message; |
| | | } |
| | |
| | | package com.dy.pipIrrRemote.rtu; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.ComSupport; |
| | | import com.dy.pipIrrGlobal.command.dto.Param; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrRemote.common.CommandSv; |
| | | import com.dy.pipIrrRemote.common.dto.Addr; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Objects; |
| | | |
| | |
| | | // 创建视图 |
| | | ComCd10Vo param = new ComCd10Vo() ; |
| | | param.controllerType = controllerType; |
| | | param.projectNo =projectNo; |
| | | param.projectNo = projectNo; |
| | | param.rtuNewAddr = newRtuAddr; |
| | | |
| | | // 发送命令并处理请求结果及执行结果 |
| | | Param po = new Param(); |
| | | po.setComId(comId); |
| | | po.setCommandCode(commandCode); |
| | | po.setIntakeId(intakeId); |
| | | po.setRtuAddr(rtuAddr); |
| | | po.setProtocol(protocol); |
| | | po.setParam(param); |
| | | po.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | po.setOperator(operator); |
| | | return dealWithCommandResult(po); |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 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(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_10; |
| | | |
| | | // 创建视图 |
| | | Com97Vo param = new Com97Vo() ; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | //回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildFail(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildFail(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功,返回回调内容 |
| | | */ |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildFail(job_param.getString("message")); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(""); |
| | | } else { |
| | | return BaseResponseUtils.buildFail("系统暂不支持该协议"); |
| | | } |
| | |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | String commandCode = CodeV202404.cd_97; |
| | | //String commandCode = CodeV202404.cd_97; |
| | | Long intakeId = po.getIntakeId(); |
| | | Long operator = po.getOperator(); |
| | | Long comId = idLongGenerator.generate(); |
| | | |
| | | // 获取系统参数 |
| | | if(!setuped) { |
| | | setUp(); |
| | | } |
| | | |
| | | // 取水口ID换阀控器地址及通讯协议 |
| | | //PrController prController = commandSv.getControllerByIntakeId(intakeId); |
| | | //if(prController == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage()); |
| | | //} |
| | | //String rtuAddr = prController.getRtuAddr(); |
| | | //String protocol = prController.getProtocol(); |
| | | String rtuAddr = ""; |
| | | String protocol = ""; |
| | | 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"); |
| | | |
| | | // 创建视图 |
| | | ComCdXyVo param = new ComCdXyVo(); |
| | | param.controllerType = controllerType; |
| | | param.projectNo = projectNo; |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_97; |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, "",intakeId, rtuAddr, protocol, param, operator); |
| | | comId = commandSv.insert(rmCommandHistory); |
| | | // 创建视图 |
| | | ComCdXyVo param = new ComCdXyVo(); |
| | | param.controllerType = controllerType; |
| | | param.projectNo = projectNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode,"", rtuAddr, protocol, param); |
| | | return sendCom2Mw(com); |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 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(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_10; |
| | | |
| | | // 创建视图 |
| | | Com97Vo param = new Com97Vo() ; |
| | | return BaseResponseUtils.buildSuccess(""); |
| | | } else { |
| | | return BaseResponseUtils.buildFail("系统暂不支持该协议"); |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.dy.pipIrrRemote.valve; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; |
| | | 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.util.IDLongGenerator; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.ComSupport; |
| | | import com.dy.pipIrrGlobal.command.dto.Param; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | | import com.dy.pipIrrRemote.common.CommandSv; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import com.dy.pipIrrRemote.common.dto.ValveClose; |
| | | import com.dy.pipIrrRemote.common.dto.Recharge; |
| | | import com.dy.pipIrrRemote.common.dto.ValveOpen; |
| | | import com.dy.pipIrrRemote.common.enums.LastOperateENUM; |
| | | import com.dy.pipIrrRemote.result.RemoteResultCode; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | param.elePrice = 0.0; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | //rmCommandHistory = new RmCommandHistory(); |
| | | //rmCommandHistory.setId(comId); |
| | | //rmCommandHistory.setResult((byte)0); |
| | | //commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | // SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | // virtualCard.setId(vcId); |
| | | // virtualCard.setInUse((byte) 1); |
| | | // virtualCard.setIntakeId(intakeId); |
| | | // virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | // virtualCard.setLastOperateTime(new Date()); |
| | | // seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | //Data myData = (Data)response_CallBack.getContent(); |
| | | //return BaseResponseUtils.buildSuccess(myData); |
| | | |
| | | JSONObject job_response = new JSONObject(); |
| | | job_response.put("rtuAddr", rtuAddr); |
| | | job_response.put("vcNum", vc.getVcNum()); |
| | | job_response.put("orderNo", orderNo); |
| | | //job_response.put("operator", operator); |
| | | return BaseResponseUtils.buildSuccess(job_response); |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)1); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_92; |
| | |
| | | param.waterPrice = waterPrice; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | //回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | * 不返回关阀参数 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 1); |
| | | //virtualCard.setIntakeId(intakeId); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | //JSONObject job_response = new JSONObject(); |
| | | //job_response.put("message", RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | //job_response.put("rtuAddr", rtuAddr); |
| | | //job_response.put("vcNum", vc.getVcNum()); |
| | | //job_response.put("orderNo", orderNo); |
| | | //return BaseResponseUtils.buildSuccess(job_response); |
| | | return BaseResponseUtils.buildErrorMsg(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | virtualCard.setId(vcId); |
| | | virtualCard.setInUse((byte) 1); |
| | | virtualCard.setIntakeId(intakeId); |
| | | virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | //Data myData = (Data)response_CallBack.getContent(); |
| | | //return BaseResponseUtils.buildSuccess(myData) ; |
| | | |
| | | JSONObject job_response = new JSONObject(); |
| | | job_response.put("message", "ok"); |
| | | job_response.put("rtuAddr", rtuAddr); |
| | | job_response.put("vcNum", vc.getVcNum()); |
| | | job_response.put("orderNo", orderNo); |
| | | //job_response.put("operator", operator); |
| | | return BaseResponseUtils.buildSuccess(job_response); |
| | | |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 平台远程关阀_参数模式 |
| | | * @param valve |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "close", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> close(@RequestBody @Valid ValveClose valve, BindingResult bindingResult) { |
| | | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss"); |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | String rtuAddr = valve.getRtuAddr(); |
| | | String vcNum = valve.getVcNum(); |
| | | String orderNo = valve.getOrderNo(); |
| | | Long operator = valve.getOperator(); |
| | | Long comId = idLongGenerator.generate(); |
| | | |
| | | // 获取系统参数 |
| | | if(!setuped) { |
| | | setUp(); |
| | | } |
| | | |
| | | // 阀控器地址换取水口ID和通讯协议 |
| | | JSONObject job_rtu = getRtu(null, rtuAddr); |
| | | if(job_rtu == null) { |
| | | return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage()); |
| | | } |
| | | Long intakeId = job_rtu.getLong("intakeId"); |
| | | String protocol = job_rtu.getString("protocol"); |
| | | |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_93; |
| | | |
| | | // 创建视图 |
| | | ComCd93_A3Vo param = new ComCd93_A3Vo(); |
| | | param.controllerType = controllerType; |
| | | param.projectNo = projectNo; |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | //rmCommandHistory = new RmCommandHistory(); |
| | | //rmCommandHistory.setId(comId); |
| | | //rmCommandHistory.setResult((byte)0); |
| | | //commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildErrorMsgMsg(WechatResultCode.GET_RESULT_ERROR.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | //SeVirtualCard virtualCard = seVirtualCardMapper.getVcCardByNum(vcNum); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setIntakeId(null); |
| | | //virtualCard.setLastOperate(LastOperateENUM.CLOSE_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKey(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_93; |
| | | |
| | | // 创建视图 |
| | | Com98Vo param = new Com98Vo() ; |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | |
| | | |
| | | //SeVirtualCard virtualCard = seVirtualCardMapper.getVcCardByNum(vcNum); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setIntakeId(null); |
| | | //virtualCard.setLastOperate(LastOperateENUM.CLOSE_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKey(virtualCard); |
| | | return BaseResponseUtils.buildErrorMsg(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | SeVirtualCard virtualCard = seVirtualCardMapper.getVcCardByNum(vcNum); |
| | | virtualCard.setInUse((byte) 0); |
| | | virtualCard.setIntakeId(null); |
| | | virtualCard.setLastOperate(LastOperateENUM.CLOSE_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKey(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)1); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> closeByIntake(@RequestBody @Valid DtoBase dtoBase, BindingResult bindingResult) { |
| | | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss"); |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | |
| | | } |
| | | String rtuAddr = voUnclosedParam.getRtuAddr(); |
| | | String vcNum = voUnclosedParam.getVcNum(); |
| | | Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); |
| | | String orderNo = voUnclosedParam.getOrderNo(); |
| | | Long comId = idLongGenerator.generate(); |
| | | |
| | |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | //rmCommandHistory = new RmCommandHistory(); |
| | | //rmCommandHistory.setId(comId); |
| | | //rmCommandHistory.setResult((byte)0); |
| | | //commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildErrorMsgMsg(WechatResultCode.GET_RESULT_ERROR.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)2); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_93; |
| | |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.updateCommandResult(rmCommandHistory); |
| | | |
| | | //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | return BaseResponseUtils.buildErrorMsg(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | virtualCard.setId(vcId); |
| | | virtualCard.setInUse((byte) 0); |
| | | virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)2); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 平台远程充值 |
| | | * @param po |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "recharge", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> recharge(@RequestBody @Valid Recharge po, BindingResult bindingResult) { |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | Long intakeId = po.getIntakeId(); |
| | | Long cardId = po.getCardId(); |
| | | Double chargeMoney = po.getChargeMoney(); |
| | | Double chargeWater = po.getChargeWater(); |
| | | Long operator = po.getOperator(); |
| | | String flowNo = RandomStringUtils.randomNumeric(12); // 生成12位随机数 |
| | | 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"); |
| | | |
| | | // 水卡ID换水卡地址及水卡编号 |
| | | SeClientCard seClientCard = commandSv.geClientCardByCardId(cardId); |
| | | if(seClientCard == null) { |
| | | return BaseResponseUtils.buildErrorMsg(RemoteResultCode.CLIENT_CARD_NOT_EXIST.getMessage()); |
| | | } |
| | | String icCardAddr = seClientCard.getCardaddr(); |
| | | String icCardNo = seClientCard.getCardnum(); |
| | | |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_15; |
| | | |
| | | // 创建视图 |
| | | ComCd15Vo param = new ComCd15Vo(); |
| | | param.controllerType = controllerType; |
| | | param.projectNo = projectNo; |
| | | param.icCardAddr = icCardAddr; |
| | | param.icCardNo = icCardNo; |
| | | param.chargeMoney = chargeMoney; |
| | | param.chargeWater = chargeWater; |
| | | param.flowNo = flowNo; |
| | | |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 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(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_10; |
| | | |
| | | // 创建视图 |
| | | Com97Vo param = new Com97Vo() ; |
| | | return BaseResponseUtils.buildSuccess(""); |
| | | } else { |
| | | return BaseResponseUtils.buildFail("系统暂不支持该协议"); |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeOpenId; |
| | | import com.dy.pipIrrGlobal.voSe.VoClientWechat; |
| | | import com.dy.pipIrrSell.wechatpay.PayInfo; |
| | | import com.dy.pipIrrWechat.client.dto.CodeLoginDTO; |
| | | import com.dy.pipIrrWechat.client.dto.CodeVerifyDTO; |
| | | import com.dy.pipIrrWechat.result.WechatResultCode; |
New file |
| | |
| | | package com.dy.pipIrrWechat.client; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-03-06 13:49 |
| | | * @LastEditTime 2024-03-06 13:49 |
| | | * @Description |
| | | */ |
| | | public class PayInfo { |
| | | /** |
| | | * 小程序登录API |
| | | */ |
| | | public static String loginUrl = "https://api.weixin.qq.com/sns/jscode2session"; |
| | | |
| | | /** |
| | | * 检验登录态 |
| | | */ |
| | | public static String checkSessionUrl = "https://api.weixin.qq.com/wxa/checksession"; |
| | | |
| | | /** |
| | | * 重置登录态 |
| | | */ |
| | | public static String resetUserSessionKeyUrl = "https://api.weixin.qq.com/wxa/resetusersessionkey"; |
| | | |
| | | /** |
| | | * 获取接口调用凭据 |
| | | */ |
| | | public static String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token"; |
| | | |
| | | /** |
| | | * 统一下单API |
| | | */ |
| | | //public static String orderUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder"; |
| | | public static String orderUrl = "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi"; |
| | | |
| | | /** |
| | | * 平台证书下载URL |
| | | */ |
| | | public static String certificates = "https://api.mch.weixin.qq.com/v3/certificates"; |
| | | |
| | | /* |
| | | * 支付结果通知API |
| | | */ |
| | | public static String notifyUrl = "https://44978f7456.imdo.co/sell/payment/orderNotify"; |
| | | |
| | | /* |
| | | * 查询订单API |
| | | */ |
| | | public static String queryUrl = "https://api.mch.weixin.qq.com/pay/orderquery"; |
| | | |
| | | /** |
| | | * 申请退款API |
| | | */ |
| | | public static String refundUrl = "https://api.mch.weixin.qq.com/v3/refund/domestic/refunds"; |
| | | |
| | | /* |
| | | * 退款通知API |
| | | */ |
| | | public static String refundNotifyUrl = "https://www.muxiaobao.com/wxpay/pay.action"; |
| | | |
| | | /* |
| | | * 退款查询API |
| | | */ |
| | | public static String refundQueryUrl = "https://api.mch.weixin.qq.com/pay/refundquery"; |
| | | |
| | | /* |
| | | * 小程序唯一标识 |
| | | */ |
| | | //public static String appid = "wxbc2b6a00dd904ead"; |
| | | public static String appid = "wxf773810cd5643196"; |
| | | |
| | | /* |
| | | * 小程序的 app secret |
| | | */ |
| | | //public static String secret = "796ffe3e9921f756db0499e80d6ed0cd"; |
| | | public static String secret = "080d4f947095551e988cfe9338e27f15"; |
| | | |
| | | /* |
| | | * 小程序的授权类型,登录凭证校验使用 |
| | | */ |
| | | public static String grantType = "authorization_code"; |
| | | |
| | | /* |
| | | * 商户号(微信支付分配的商户号) |
| | | */ |
| | | public static String mchid = "1640721520"; |
| | | |
| | | /* |
| | | * 商户平台设置的密钥key |
| | | */ |
| | | public static String key = "DaYuJieShuiYanJiuYuan20230412ABC"; |
| | | |
| | | /** |
| | | * 商户API证书序列号 |
| | | */ |
| | | public static String serial_no = "52D65AA66405C738670377F467178F4C950E1606"; |
| | | |
| | | /* |
| | | * 终端IP,调用微信支付API的机器IP |
| | | */ |
| | | public static String addrIp = "47.104.211.89"; |
| | | |
| | | /* |
| | | * 随机字符串,长度要求在32位以内 |
| | | */ |
| | | //public static String nonceStr = PayHelper.generateRandomString(); |
| | | |
| | | /* |
| | | * 时间戳 从1970年1月1日00:00:00至今的秒数,即当前的时间 |
| | | */ |
| | | //public static Long timeStamp = PayHelper.getTimeStamp(); |
| | | |
| | | /* |
| | | * 交易类型,小程序取值JSAPI |
| | | */ |
| | | public static String tradeType = "JSAPI"; |
| | | |
| | | /* |
| | | * 签名类型 |
| | | */ |
| | | //public static String signType = "MD5"; |
| | | public static String signType = "RSA"; |
| | | |
| | | /* |
| | | * 商品描述 商品简单描述,该字段请按照规范传递 |
| | | */ |
| | | //public static String body = "大禹研究院-水费"; |
| | | public static String description = "大禹研究院-水费"; |
| | | |
| | | /* |
| | | * 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用 |
| | | */ |
| | | public static String attach = "天津"; |
| | | |
| | | /* |
| | | * 签名,参与签名参数:appid、attach、mch_id、nonce_str、body、out_trade_no、total_fee、spbill_create_ip、notify_url、trade_type、openid |
| | | */ |
| | | public String sign = ""; |
| | | |
| | | /** |
| | | * HTTP头认证类型 |
| | | */ |
| | | public static String schema = "WECHATPAY2-SHA256-RSA2048"; |
| | | |
| | | /** |
| | | * 私钥文件路径 |
| | | */ |
| | | public static String privateCertFileName = "C:\\webchat\\apiclient_key.pem"; |
| | | |
| | | public static String publicCertFileName = "C:\\webchat\\wxp_cert.pem"; |
| | | |
| | | /* |
| | | * 微信订单号,优先使用 |
| | | */ |
| | | public static String transactionid = ""; |
| | | |
| | | /* |
| | | * 商户系统内部订单号 |
| | | */ |
| | | public static String out_trade_no = ""; |
| | | |
| | | /* |
| | | * 商户退款单号 |
| | | */ |
| | | public static String out_refund_no = ""; |
| | | |
| | | /* |
| | | * 退款金额 |
| | | */ |
| | | public static Float refundfee; |
| | | |
| | | /* |
| | | * 订单金额 |
| | | */ |
| | | public static Float totalfee; |
| | | } |
| | |
| | | import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; |
| | | import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | |
| | | private final PrIntakeMapper prIntakeMapper; |
| | | private final PrWaterPriceMapper prWaterPriceMapper; |
| | | private final PrIntakeVcMapper prIntakeVcMapper; |
| | | private final SeClientCardMapper seClientCardMapper; |
| | | |
| | | /** |
| | | * 虚拟卡ID换虚拟卡对象 |
| | |
| | | public Long getVcIdByIntakeId(Long intakeId) { |
| | | return prIntakeVcMapper.getVcIdByIntakeId(intakeId); |
| | | } |
| | | |
| | | /** |
| | | * 根据水卡编号获取水卡对象,远程充值使用 |
| | | * @param cardId |
| | | * @return |
| | | */ |
| | | public SeClientCard geClientCardByCardId(Long cardId) { |
| | | return seClientCardMapper.selectByPrimaryKey(cardId); |
| | | } |
| | | } |
| | |
| | | package com.dy.pipIrrWechat.command; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; |
| | | 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.util.IDLongGenerator; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.ComSupport; |
| | | import com.dy.pipIrrGlobal.command.dto.Param; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | | import com.dy.pipIrrWechat.command.dto.Recharge; |
| | | import com.dy.pipIrrWechat.command.dto.ValveClose; |
| | | import com.dy.pipIrrWechat.command.dto.ValveOpen; |
| | | import com.dy.pipIrrWechat.command.enums.LastOperateENUM; |
| | | import com.dy.pipIrrWechat.result.WechatResultCode; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | @Slf4j |
| | | @Tag(name = "小程序阀控器控制", description = "小程序阀控器控制") |
| | | @RestController |
| | | @RequestMapping(path="valve") |
| | | @RequestMapping(path = "valve") |
| | | @RequiredArgsConstructor |
| | | public class ValveCtrl extends ComSupport { |
| | | private final CommandSv commandSv; |
| | | private final SeVirtualCardMapper seVirtualCardMapper; |
| | | private final IDLongGenerator idLongGenerator; |
| | | private String rtuResultSendWebUrl = "http://127.0.0.1:8087/wx/comRes/receive" ; |
| | | private String rtuResultSendWebUrl = "http://127.0.0.1:8087/wx/comRes/receive"; |
| | | |
| | | /** |
| | | * 小程序远程开阀 |
| | |
| | | */ |
| | | @PostMapping(path = "open_wx", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> open(@RequestBody @Valid ValveOpen valve, BindingResult bindingResult) { |
| | | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss"); |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | if (bindingResult != null && bindingResult.hasErrors()) { |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | |
| | | * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡 |
| | | * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡 |
| | | */ |
| | | if(vcId == null) { |
| | | if (vcId == null) { |
| | | vcId = commandSv.getVcIdByIntakeId(intakeId); |
| | | if(vcId == null) { |
| | | if (vcId == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | } |
| | | } |
| | | |
| | | // 获取系统参数 |
| | | if(!setuped) { |
| | | if (!setuped) { |
| | | setUp(); |
| | | } |
| | | |
| | | // 虚拟卡ID换虚拟卡对象 |
| | | VoVirtualCard vc = commandSv.getVcById(vcId); |
| | | if(vc == null) { |
| | | if (vc == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | } |
| | | if(vc.getInUse() == 1) { |
| | | if (vc.getInUse() == 1) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage()); |
| | | } |
| | | |
| | |
| | | |
| | | // 取水口ID换阀控器地址及通讯协议 |
| | | JSONObject job_rtu = getRtu(intakeId, null); |
| | | if(job_rtu == null) { |
| | | if (job_rtu == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); |
| | | } |
| | | String rtuAddr = job_rtu.getString("rtuAddr"); |
| | |
| | | String orderNo = generateOrderNo(); |
| | | |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | if (protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_A2; |
| | | |
| | |
| | | param.elePrice = 0.0; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)1); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 1); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | } else if (protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_97; |
| | | |
| | | // 创建视图 |
| | | Com97Vo param = new Com97Vo() ; |
| | | Com97Vo param = new Com97Vo(); |
| | | param.icCardNo = vc.getVcNum(); |
| | | param.moneyRemain = vc.getMoney(); |
| | | param.waterPrice = waterPrice; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | //回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.update(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if(response_CallBack.getContent().toString().equals(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.update(rmCommandHistory); |
| | | |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 1); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | virtualCard.setId(vcId); |
| | | virtualCard.setInUse((byte) 1); |
| | | virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)1); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 小程序远程关阀 |
| | | * |
| | | * @param valve |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "close_wx", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> close(@RequestBody @Valid ValveClose valve, BindingResult bindingResult) { |
| | | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss"); |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | if (bindingResult != null && bindingResult.hasErrors()) { |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | String rtuAddr = valve.getRtuAddr(); |
| | | String vcNum = valve.getVcNum(); |
| | | Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); |
| | | String orderNo = valve.getOrderNo(); |
| | | Long operator = valve.getOperator(); |
| | | Long comId = idLongGenerator.generate(); |
| | | |
| | | // 获取系统参数 |
| | | if(!setuped) { |
| | | if (!setuped) { |
| | | setUp(); |
| | | } |
| | | |
| | | // 阀控器地址换取水口ID和通讯协议 |
| | | JSONObject job_rtu = getRtu(null, rtuAddr); |
| | | if(job_rtu == null) { |
| | | if (job_rtu == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); |
| | | } |
| | | Long intakeId = job_rtu.getLong("intakeId"); |
| | | String protocol = job_rtu.getString("protocol"); |
| | | |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | if (protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_A3; |
| | | |
| | |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV202404.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调失败 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getMsg()); |
| | | //return BaseResponseUtils.buildErrorMsg(WechatResultCode.GET_RESULT_ERROR.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)2); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV202404.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if (protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_98; |
| | | |
| | | // 创建视图 |
| | | Com98Vo param = new Com98Vo() ; |
| | | Com98Vo param = new Com98Vo(); |
| | | param.icCardNo = vcNum; |
| | | param.orderNo = orderNo; |
| | | |
| | | // 构造命令 |
| | | Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param); |
| | | |
| | | // 发送命令 |
| | | JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) { |
| | | //if(1 > 0) { |
| | | // 请求成功 |
| | | |
| | | // 创建命令日志对象并添加到数据库中 |
| | | String commandName = CodeV1_0_1.getCodeName(commandCode); |
| | | RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator); |
| | | commandSv.insert(rmCommandHistory); |
| | | |
| | | // 处理回调 |
| | | BaseResponse response_CallBack = dealWithCallBack(comId); |
| | | |
| | | // 回调异常 |
| | | if(!response_CallBack.getCode().equals("0001")) { |
| | | // 命令日志执行结果改为失败 |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.update(rmCommandHistory); |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | // 回调超时 |
| | | if(response_CallBack.getContent().toString().equals(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) { |
| | | /** |
| | | * 回调超时,暂时认为执行失败 |
| | | * 命令置为失败 |
| | | * 虚拟卡依旧保持使用中的状态 |
| | | */ |
| | | |
| | | rmCommandHistory = new RmCommandHistory(); |
| | | rmCommandHistory.setId(comId); |
| | | rmCommandHistory.setResult((byte)0); |
| | | commandSv.update(rmCommandHistory); |
| | | |
| | | //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | //SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | //virtualCard.setId(vcId); |
| | | //virtualCard.setInUse((byte) 0); |
| | | //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | //virtualCard.setLastOperateTime(new Date()); |
| | | //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage()); |
| | | } |
| | | |
| | | // 回调成功,再判断执行是否成功 |
| | | 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) { |
| | | return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString()); |
| | | } |
| | | |
| | | /** |
| | | * 执行成功 |
| | | * 更改虚拟卡状态:是否使用中、最后操作、最后操作时间 |
| | | */ |
| | | Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum); |
| | | SeVirtualCard virtualCard = new SeVirtualCard(); |
| | | virtualCard.setId(vcId); |
| | | virtualCard.setInUse((byte) 0); |
| | | virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode()); |
| | | virtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); |
| | | |
| | | // 回调返回的内容 |
| | | Data myData = (Data)response_CallBack.getContent(); |
| | | return BaseResponseUtils.buildSuccess(myData) ; |
| | | } else { |
| | | // 请求失败 |
| | | JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); |
| | | return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); |
| | | } |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)2); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据操作员ID获取未关阀记录 |
| | | * |
| | | * @param operator |
| | | * @return |
| | | */ |
| | | @GetMapping(path = "/get") |
| | | //@SsoAop() |
| | | public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator){ |
| | | public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator) { |
| | | try { |
| | | List<VoUnclosedValve> res = commandSv.getUnclosedValves(operator); |
| | | return BaseResponseUtils.buildSuccess(res); |
| | | } catch (Exception e) { |
| | | log.error("获取未关阀记录异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 小程序远程充值 |
| | | * @param po |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "recharge", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public BaseResponse<Boolean> recharge(@RequestBody @Valid Recharge po, BindingResult bindingResult) { |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | Long intakeId = po.getIntakeId(); |
| | | Long cardId = po.getCardId(); |
| | | Double chargeMoney = po.getChargeMoney(); |
| | | Double chargeWater = po.getChargeWater(); |
| | | Long operator = po.getOperator(); |
| | | String flowNo = RandomStringUtils.randomNumeric(12); // 生成12位随机数 |
| | | Long comId = idLongGenerator.generate(); |
| | | |
| | | // 获取系统参数 |
| | | if(!setuped) { |
| | | setUp(); |
| | | } |
| | | |
| | | // 取水口ID换阀控器地址及通讯协议 |
| | | JSONObject job_rtu = getRtu(intakeId, null); |
| | | if(job_rtu == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); |
| | | } |
| | | String rtuAddr = job_rtu.getString("rtuAddr"); |
| | | String protocol = job_rtu.getString("protocol"); |
| | | |
| | | // 水卡ID换水卡地址及水卡编号 |
| | | SeClientCard seClientCard = commandSv.geClientCardByCardId(cardId); |
| | | if(seClientCard == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.CLIENT_CARD_NOT_EXIST.getMessage()); |
| | | } |
| | | String icCardAddr = seClientCard.getCardaddr(); |
| | | String icCardNo = seClientCard.getCardnum(); |
| | | |
| | | String commandCode = null; |
| | | if(protocol.equals("p206V202404")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV202404.cd_15; |
| | | |
| | | // 创建视图 |
| | | ComCd15Vo param = new ComCd15Vo(); |
| | | param.controllerType = controllerType; |
| | | param.projectNo = projectNo; |
| | | param.icCardAddr = icCardAddr; |
| | | param.icCardNo = icCardNo; |
| | | param.chargeMoney = chargeMoney; |
| | | param.chargeWater = chargeWater; |
| | | param.flowNo = flowNo; |
| | | |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 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(rtuResultSendWebUrl); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else if(protocol.equals("p206V1_0_1")) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1_0_1.cd_10; |
| | | |
| | | // 创建视图 |
| | | Com97Vo param = new Com97Vo() ; |
| | | return BaseResponseUtils.buildSuccess(""); |
| | | } else { |
| | | return BaseResponseUtils.buildFail("系统暂不支持该协议"); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrWechat.command.dto; |
| | | |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-26 10:45 |
| | | * @LastEditTime 2024-06-26 10:45 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | public class Recharge extends DtoBase { |
| | | public static final long serialVersionUID = 202406261045001L; |
| | | |
| | | /** |
| | | * 水卡ID |
| | | */ |
| | | @NotNull(message = "水卡ID不能为空") |
| | | private Long cardId; |
| | | |
| | | /** |
| | | * 充值金额 |
| | | */ |
| | | @NotNull(message = "充值金额不能为空") |
| | | private Double chargeMoney; |
| | | |
| | | /** |
| | | * 充值水量 |
| | | */ |
| | | private Double chargeWater; |
| | | } |
| | |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class ValveClose { |
| | | public static final long serialVersionUID = 202405241727001L; |
| | | |
| | |
| | | package com.dy.pipIrrWechat.command.dto; |
| | | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class ValveOpen extends DtoBase{ |
| | | public static final long serialVersionUID = 202405231531001L; |
| | | |
| | |
| | | import jakarta.validation.constraints.Max; |
| | | import jakarta.validation.constraints.Min; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class OnLineIntakesQO extends QueryConditionVo { |
| | | /** |
| | | * 中间件返回的RTU在线情况对象数组 |
| | |
| | | import jakarta.validation.constraints.Max; |
| | | import jakarta.validation.constraints.Min; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class OnLineIntakesQO extends QueryConditionVo { |
| | | /** |
| | | * 中间件返回的RTU在线情况对象数组 |
| | |
| | | RTU_NOT_EXIST(20001, "阀控器不存在"), |
| | | //RTU_ADDR_CANNOT_BE_NULL(20002, "阀控器地址不能为空"); |
| | | |
| | | CLIENT_CARD_NOT_EXIST(30001, "水卡不存在"), |
| | | |
| | | /** |
| | | * 微信用户 |
| | | */ |