| | |
| | | index += 8 ; |
| | | cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ; |
| | | |
| | | index += 8 ; |
| | | cdData.opDt = GlParse.parseRtuDt(bs, index) ; |
| | | //2025-05-13江海叫删除 |
| | | //index += 8 ; |
| | | //cdData.opDt = GlParse.parseRtuDt(bs, index) ; |
| | | |
| | | index += 6 ; |
| | | cdData.opType = bs[index]; |
| | |
| | | cdData.eleTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ; |
| | | |
| | | index += 5 ; |
| | | cdData.moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ; |
| | | cdData.moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/10000.0D ; |
| | | |
| | | index += 5 ; |
| | | cdData.waterRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ; |
| | |
| | | cdData.thisWater = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ; |
| | | |
| | | index += 4 ; |
| | | cdData.thisMoney = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ; |
| | | cdData.thisMoney = ByteUtil.BCD2Long_LE(bs, index, index + 3)/10000.0D ; |
| | | |
| | | index += 4 ; |
| | | cdData.thisDuration = ByteUtil.BCD2Int_LE(bs, index, index + 1) ; |
| | |
| | | package com.dy.common.mw.protocol.p206V202404.upVos; |
| | | |
| | | import com.dy.common.mw.protocol.UpComResVo; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.CommonV202404; |
| | | import lombok.Data; |
| | | |
| | | //平台/APP远程关闭水泵/阀门 |
| | | @Data |
| | | public class DataCd92_A2Vo { |
| | | public class DataCd92_A2Vo implements UpComResVo { |
| | | |
| | | public String controllerType;//控制器类型 |
| | | public Integer projectNo ;//项目编号 |
| | | public String icCardNo ;//IC卡编号(17位数字) |
| | | public String orderNo ;//订单号(16位数字) |
| | | public String opDt ;//开泵/阀时间(yyyy-mm-dd HH:MM:SS) |
| | | //2025-05-13江海叫删除 |
| | | //public String opDt ;//开泵/阀时间(yyyy-mm-dd HH:MM:SS) |
| | | public Byte opType ;//开阀类型 |
| | | public Byte opResult ;//开启泵/阀结果: 0x00:成功 0x81:失败 |
| | | |
| | |
| | | sb.append(" 订单号 : ") ; |
| | | sb.append(orderNo == null?"未知":orderNo) ; |
| | | sb.append("\n") ; |
| | | /* |
| | | sb.append(" 开泵/阀时间 : ") ; |
| | | sb.append(opDt == null?"未知":opDt) ; |
| | | sb.append("\n") ; |
| | | */ |
| | | sb.append(" 开启泵/阀类型 : ") ; |
| | | sb.append(opType == null?"未知":(opType.byteValue() == 0x01 ? "平台":"用户")) ; |
| | | sb.append("\n") ; |
| | |
| | | return sb.toString() ; |
| | | } |
| | | |
| | | public String toStr(boolean showBase){ |
| | | StringBuffer sb = new StringBuffer() ; |
| | | if(showBase){ |
| | | sb.append(comName + " : \n") ; |
| | | sb.append("控制器类型 : ") ; |
| | | sb.append(CommonV202404.ctrlDevType(controllerType)) ; |
| | | sb.append("\n") ; |
| | | sb.append("项目编号 : ") ; |
| | | sb.append(projectNo == null?"未知":projectNo) ; |
| | | sb.append("\n") ; |
| | | } |
| | | sb.append("IC卡编号 : ") ; |
| | | sb.append(icCardNo == null?"未知":icCardNo) ; |
| | | sb.append("\n") ; |
| | | sb.append("订单号 : ") ; |
| | | sb.append(orderNo == null?"未知":orderNo) ; |
| | | sb.append("\n") ; |
| | | /* |
| | | sb.append("开泵/阀时间 : ") ; |
| | | sb.append(opDt == null?"未知":opDt) ; |
| | | sb.append("\n") ; |
| | | */ |
| | | sb.append("开启泵/阀类型 : ") ; |
| | | sb.append(opType == null?"未知":(opType.byteValue() == 0x01 ? "平台":"用户")) ; |
| | | sb.append("\n") ; |
| | | sb.append("开启泵/阀结果 : ") ; |
| | | sb.append(opResult == null?"未知":(opResult.byteValue() == 0x01 ? "成功":"失败")) ; |
| | | sb.append("\n") ; |
| | | return sb.toString() ; |
| | | } |
| | | |
| | | |
| | | public String comLog(){ |
| | | StringBuilder sb = new StringBuilder() ; |
| | | sb.append("远程开阀命令回复:\n"); |
| | | sb.append(opResult == null?"未知":(opResult.byteValue() == 0x01 ? "成功":"失败")); |
| | | sb.append("\n"); |
| | | |
| | | return sb.toString() ; |
| | | } |
| | | |
| | | @Override |
| | | public String comLog(String code) { |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | package com.dy.common.mw.protocol.p206V202404.upVos; |
| | | |
| | | import com.dy.common.mw.protocol.UpComResVo; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.CommonV202404; |
| | | import lombok.Data; |
| | |
| | | //平台/APP远程关闭水泵/阀门 + 刷卡关泵/阀上报 |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=false) |
| | | public class DataCd93_A3Vo extends AlarmVo { |
| | | public class DataCd93_A3Vo extends AlarmVo implements UpComResVo { |
| | | |
| | | public String controllerType;//控制器类型 |
| | | public Integer projectNo ;//项目编号 |
| | |
| | | sb.append(" 本次使用金额 : ") ; |
| | | sb.append(thisMoney == null?"未知":thisMoney) ; |
| | | sb.append("\n") ; |
| | | sb.append(" 本次使用时间长 : ") ; |
| | | sb.append(" 本次使用时长 : ") ; |
| | | sb.append(thisDuration == null?"未知": thisDuration) ; |
| | | sb.append("\n") ; |
| | | return sb.toString() + super.toString() ; |
| | | } |
| | | |
| | | public String toStr(boolean showBase){ |
| | | StringBuffer sb = new StringBuffer() ; |
| | | if(showBase){ |
| | | sb.append(comName + " : \n") ; |
| | | sb.append("控制器类型 : ") ; |
| | | sb.append(CommonV202404.ctrlDevType(controllerType)) ; |
| | | sb.append("\n") ; |
| | | sb.append("项目编号 : ") ; |
| | | sb.append(projectNo == null?"未知":projectNo) ; |
| | | sb.append("\n") ; |
| | | } |
| | | sb.append("关泵/阀类型 : ") ; |
| | | sb.append(clType == null?"未知":(clType.byteValue() == 0x00 ? "刷卡":(clType.byteValue() == 0x01 ? "平台":(clType.byteValue() == 0x02 ? "APP":(clType.byteValue() == 0x03 ? "非法卡":(clType.byteValue() == 0x04 ? "水表异常":(clType.byteValue() == 0x05 ? "电表异常":(clType.byteValue() == 0x06 ? "剩余水量不足":(clType.byteValue() == 0x07 ? "剩余金额不足":(clType.byteValue() == 0x08 ? "无流量":(clType.byteValue() == 0x09 ? "掉电再上电":"未知"))))))))))) ; |
| | | sb.append("\n") ; |
| | | sb.append("关启泵/阀结果 : ") ; |
| | | sb.append(clResult == null?"未知":(clResult.byteValue() == 0x01 ? "成功":"失败")) ; |
| | | sb.append("\n") ; |
| | | sb.append("IC卡地址 : ") ; |
| | | sb.append(icCardAddr == null?"未知":icCardAddr) ; |
| | | sb.append("\n") ; |
| | | sb.append("IC卡编号 : ") ; |
| | | sb.append(icCardNo == null?"未知":icCardNo) ; |
| | | sb.append("\n") ; |
| | | sb.append("订单号 : ") ; |
| | | sb.append(orderNo == null?"未知":orderNo) ; |
| | | sb.append("\n") ; |
| | | sb.append("开始时间 : ") ; |
| | | sb.append(startDt == null?"未知":startDt) ; |
| | | sb.append("\n") ; |
| | | sb.append("结束时间 : ") ; |
| | | sb.append(endDt == null?"未知":endDt) ; |
| | | sb.append("\n") ; |
| | | sb.append("水表累计流量 : ") ; |
| | | sb.append(waterTotalAmount == null?"未知":waterTotalAmount) ; |
| | | sb.append("\n") ; |
| | | sb.append("电表累计电量 : ") ; |
| | | sb.append(eleTotalAmount == null?"未知":eleTotalAmount) ; |
| | | sb.append("\n") ; |
| | | sb.append("用户剩余金额 : ") ; |
| | | sb.append(moneyRemain == null?"未知":moneyRemain) ; |
| | | sb.append("\n") ; |
| | | sb.append("用户剩余水量 : ") ; |
| | | sb.append(waterRemain == null?"未知":waterRemain) ; |
| | | sb.append("\n") ; |
| | | sb.append("本次使用电量 : ") ; |
| | | sb.append(thisEle == null?"未知":thisEle) ; |
| | | sb.append("\n") ; |
| | | sb.append("本次使用水量 : ") ; |
| | | sb.append(thisWater == null?"未知":thisWater) ; |
| | | sb.append("\n") ; |
| | | sb.append("本次使用金额 : ") ; |
| | | sb.append(thisMoney == null?"未知":thisMoney) ; |
| | | sb.append("\n") ; |
| | | sb.append("本次使用时长 : ") ; |
| | | sb.append(thisDuration == null?"未知": thisDuration) ; |
| | | sb.append("\n") ; |
| | | return sb.toString() + super.toString() ; |
| | | } |
| | | |
| | | |
| | | public String comLog(){ |
| | | StringBuilder sb = new StringBuilder() ; |
| | | sb.append("远程关阀命令回复:\n"); |
| | | sb.append(clResult == null?"未知":(clResult.byteValue() == 0x01 ? "成功":"失败")); |
| | | sb.append("\n"); |
| | | |
| | | return sb.toString() ; |
| | | } |
| | | |
| | | @Override |
| | | public String comLog(String code) { |
| | | return null; |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据虚拟卡ID获取虚拟卡对象 |
| | | * @param vcId |
| | | * @return |
| | | * @param vcId 虚拟卡ID |
| | | * @return 虚拟卡对象 |
| | | */ |
| | | VoVirtualCard getVcById(@Param("vcId") Long vcId); |
| | | |
| | |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV1, dataCd83OpenVo, clearLastCloseValve); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | |
| | | * @LastEditTime 2024-06-20 13:48 |
| | | * @Description |
| | | */ |
| | | /** |
| | | * 处理控制器关阀上报 |
| | | */ |
| | | public class TkDealCloseValveReportV202404 extends TaskSurpport { |
| | | private static final Logger log = LogManager.getLogger(TkDealCloseValveReportV202404.class.getName()); |
| | | |
| | |
| | | |
| | | /** |
| | | * 执行节点任务:关阀上报 |
| | | * |
| | | * @param data 需要处理的数据 |
| | | */ |
| | | @Override |
| | |
| | | sv.saveRmOpenCloseValveLast(poLast); |
| | | }else{ |
| | | //数据库中存在该控制器的开关阀数据 |
| | | if(poLast.closeDt != null && poLast.clIcCardAddr != null && poLast.clIcCardNo != null){ |
| | | if(poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt)) |
| | | if(poLast.clOrderNo != null && poLast.clIcCardAddr != null && poLast.clIcCardNo != null){ |
| | | if(poLast.clOrderNo.equals(dataCd85Vo.orderNo) |
| | | && poLast.clIcCardAddr.equals(dataCd85Vo.icCardAddr) |
| | | && poLast.clIcCardNo.equals(dataCd85Vo.icCardNo)){ |
| | | //重复上报,原因是下行数据处理慢了,就重复上报了 |
| | |
| | | if(poLast.lastHistoryId != null){ |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; |
| | | if(poHistory != null){ |
| | | if(poHistory.openDt != null){ |
| | | //上面已经判断了poLast.openDt == null,所以此处一般会是poHistory.openDt != null |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.startDt))){ |
| | | if(poHistory.opOrderNo != null){ |
| | | if(poHistory.opOrderNo.equals(dataCd85Vo.orderNo)){ |
| | | //匹配成功 |
| | | //当前关阀是原记录中开阀的对应关阀 |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV202404, dataCd85Vo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else if(poHistory.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.startDt))){ |
| | | //匹配失败(对于after:等于或晚于都返回true) |
| | | //本地最新数据中的开阀时间晚于当前关阀上报中的开阀时间,说明是补报 |
| | | this.dealSupplyReport() ; |
| | | }else{ |
| | | //匹配失败 |
| | | //本地最新数据中的开阀时间早于当前关阀上报中的开阀时间,说明是新的一次关阀报,而且对应关阀报的上一次开阀报未收到 |
| | | //当前关阀不是原记录中开阀的对应关阀,说明是新的一次关阀报,而且对应关阀报的上一次开阀报未收到 |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, true); |
| | | } |
| | | }else{ |
| | |
| | | } |
| | | } |
| | | }else if(poLast.opType != null){ |
| | | //原记录存在关阀数据,也存在开阀数据,首先进行开关阀时间对比 |
| | | if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){ |
| | | //原记录存在关阀数据,也存在开阀数据,首先进行对比 |
| | | if(poLast.clOrderNo != null && poLast.clOrderNo.equals(dataCd85Vo.orderNo)){ |
| | | //重复上报了,不进行处理 |
| | | }else if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){ |
| | | //补报的许久之前的数据(对于after:等于或晚于都返回true) |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //是新的上报关阀数据 |
| | | //进行历史数据匹配 |
| | |
| | | if(poLast.lastHistoryId != null) { |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId); |
| | | if (poHistory != null) { |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.startDt))){ |
| | | //匹配上了 |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV202404, dataCd85Vo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | if(poHistory.clOrderNo.equals(dataCd85Vo.orderNo)){ |
| | | //重复上报了,不进行处理 |
| | | }else{ |
| | | //上个关阀报未上报 |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){ |
| | | //重复上报了,不进行处理 |
| | | }else if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){ |
| | | //补报的许久之前的数据(对于after:等于或晚于都返回true) |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //上个开阀报未上报 |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | } |
| | | } |
| | | }else{ |
| | | //这种情况不存在,但为安全也进行处理,也认为上个关阀报未上报 |
| | |
| | | poHistory.updateFrom(dV202404, dataCd85Vo, false); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | * @author ZhuBaoMin |
| | | * @date 2024-06-17 9:36 |
| | | * @LastEditTime 2024-06-17 9:36 |
| | | * @Description 控制器开阀上报(功能码84) |
| | | * @Description |
| | | * 处理控制器开阀上报 |
| | | */ |
| | | public class TkDealOpenValveReportV202404 extends TaskSurpport { |
| | | private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName()); |
| | |
| | | sv.saveRmOpenCloseValveLast(poLast); |
| | | }else{ |
| | | //数据库中存在该控制器的开关阀数据 |
| | | if(poLast.openDt != null && poLast.opIcCardAddr != null && poLast.opIcCardNo != null){ |
| | | if(poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt)) |
| | | if(poLast.opOrderNo != null && poLast.opIcCardAddr != null && poLast.opIcCardNo != null){ |
| | | if(poLast.opOrderNo.equals(dataCd84Vo.orderNo) |
| | | && poLast.opIcCardAddr.equals(dataCd84Vo.icCardAddr) |
| | | && poLast.opIcCardNo.equals(dataCd84Vo.icCardNo)){ |
| | | //重复上报,原因是下行数据处理慢了,就重复上报了 |
| | |
| | | } |
| | | if(poLast.opType != null){ |
| | | //原记录存在开阀数据,首先进行时间对比 |
| | | if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | if(poLast.opOrderNo != null && poLast.opOrderNo.equals(dataCd84Vo.orderNo)){ |
| | | //重复上报的开阀数据,不进行处理 |
| | | }else if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //补报的许久之前的开阀数据(对于after:等于或晚于都返回true) |
| | |
| | | } |
| | | }else if(poLast.clType != null){ |
| | | //原记录不存在开阀数据,但存在关阀数据,首先进行时间比对 |
| | | if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //当前上报是新的开阀数据,把最新(last)数据中的关阀内容清空 |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | //生成并保存新的开阀上报历史数据记录 |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dataV202404, dataCd84Vo, poLast); |
| | | }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //补报的许久之前的开阀报数据(对于after:等于或晚于都返回true) |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //当前上报的开阀数据与原来的关阀数据同一时间,这种情况应该不存在,但也处理 |
| | | if(poLast.clOrderNo != null && poLast.clOrderNo.equals(dataCd84Vo.orderNo)){ |
| | | //当前上报的开阀数据与原来的关阀数据匹配 |
| | | RmOpenCloseValveHistory poHistory = null ; |
| | | if(poLast.lastHistoryId != null){ |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; |
| | |
| | | if(poHistory != null){ |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | } |
| | | }else if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //当前上报是新的开阀数据,把最新(last)数据中的关阀内容清空 |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | //生成并保存新的开阀上报历史数据记录 |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dataV202404, dataCd84Vo, poLast); |
| | | }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //补报的许久之前的开阀报数据(对于after:等于或晚于都返回true) |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //订单号不同,时间相同 |
| | | //认为当前上报是新的开阀数据,把最新(last)数据中的关阀内容清空 |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | //生成并保存新的开阀上报历史数据记录 |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dataV202404, dataCd84Vo, poLast); |
| | | } |
| | | }else{ |
| | | //if(poLast.opType == null && po.clType == null) |
| | |
| | | package com.dy.rtuMw.server.rtuData.p206V202404; |
| | | |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.UpComResVo; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.util.DateTime; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | 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; |
| | | |
| | |
| | | if(protocolData != null){ |
| | | DataV202404 dV202404 = (DataV202404)protocolData ; |
| | | if(dV202404 != null) { |
| | | // if (dV1 != null && dV1.dataCdC0Vo != null) { |
| | | // Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; |
| | | // DbSv sv = (DbSv)objs[0] ; |
| | | // PrController controller = (PrController)objs[1] ; |
| | | // try{ |
| | | // this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1, dV1.dataCdC0Vo) ; |
| | | // this.saveHistory(sv, controller, d.getRtuAddr(),dV1, dV1.dataCdC0Vo) ; |
| | | // }catch (Exception e){ |
| | | // log.error("保存控制器自报数据时发生异常", e); |
| | | // } |
| | | // } |
| | | Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId); |
| | | DbSv sv = (DbSv) objs[0]; |
| | | //PrController controller = (PrController) objs[1]; |
| | | try{ |
| | | RmCommandHistory po = sv.getCommandLog(d.commandId) ; |
| | | if(po != null){ |
| | | po = this.updateCommandLogPo(po, d.code, dV202404, dV202404.subData) ; |
| | | sv.updateCommandLog(po); |
| | | }else{ |
| | | log.error("未得到命令日志(" + d.getCommandId() + ")"); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("保存控制器自报数据时发生异常", e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public RmCommandHistory updateCommandLogPo(RmCommandHistory po, String code, DataV202404 dV202404, Object obj) throws Exception{ |
| | | po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV202404.dt==null?DateTime.yyyy_MM_dd_HH_mm_ss():dV202404.dt)); |
| | | if(obj instanceof UpComResVo){ |
| | | UpComResVo vo = (UpComResVo)obj ; |
| | | po.setResult((byte)1); |
| | | po.setResultText(vo.comLog()!=null?vo.comLog():vo.comLog(code)); |
| | | log.info("----------------------------------\n" + (vo.comLog()!=null?vo.comLog():vo.comLog(code))); |
| | | } |
| | | return po ; |
| | | } |
| | | } |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.util.NumUtil; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | |
| | | res = super.doSend(sv, com) ; |
| | | if(res == null) { |
| | | //发送命令后 |
| | | res = super.after(dto.comCode); |
| | | res = super.after(dto.comCode, null); |
| | | } |
| | | }catch (Exception e){ |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null?"":e.getMessage())) ; |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.util.IDLongGenerator; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | |
| | | * 发送命令后 |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> after(String comCode) { |
| | | public BaseResponse<Object> after(String comCode, Callback callback) { |
| | | try{ |
| | | //等待通信中间件通知控制器执行命令上行数据(命令结果) |
| | | JSONObject resultData = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS); |
| | | return BaseResponseUtils.buildSuccess(this.createRtnMsg(comCode, resultData)); |
| | | return BaseResponseUtils.buildSuccess(this.dealComResult(comCode, resultData, callback)); |
| | | }catch (Exception e){ |
| | | return BaseResponseUtils.buildFail("等待通信中间件通知命令结果超时"); |
| | | } |
| | |
| | | /** |
| | | * 生成命令返回信息 |
| | | */ |
| | | protected abstract String createRtnMsg(String code, JSONObject resultData); |
| | | protected abstract String dealComResult(String code, JSONObject resultData, Callback callback); |
| | | } |
| | |
| | | package com.dy.pipIrrRemote.monitor.common; |
| | | |
| | | import com.alibaba.fastjson2.JSONArray; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.pipIrrGlobal.command.CommandSv; |
| | | import com.dy.pipIrrGlobal.daoPr.PrCommonIntakesMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrCommonIntakes; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | protected PrControllerMapper prControllerDao ; |
| | | @Autowired |
| | | protected RmCommandHistoryMapper rmCommandHistoryDao ; |
| | | @Autowired |
| | | private PrCommonIntakesMapper prCommonIntakesDao; |
| | | |
| | | public PrController getRtu(Long intakeId){ |
| | | return this.getRtu(prControllerDao, intakeId); |
| | |
| | | Long operator) { |
| | | return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, intakeId, rtuAddr, param, operator) ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 添加常用取水口或更新使用信息 |
| | | * @param operatorId |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public PrCommonIntakes addOrUpdateOftenUseIntake(Long operatorId, Long intakeId) { |
| | | PrCommonIntakes po = prCommonIntakesDao.selectByOperatorAndIntake(operatorId, intakeId); |
| | | if(po == null) { |
| | | po = new PrCommonIntakes(); |
| | | po.setOperatorId(operatorId); |
| | | po.setIntakeId(intakeId); |
| | | po.setLastUsedTime(new Date()); |
| | | po.setUsageCount(1); |
| | | prCommonIntakesDao.insert(po); |
| | | }else{ |
| | | po.setLastUsedTime(new Date()); |
| | | po.setUsageCount(po.getUsageCount() + 1); |
| | | prCommonIntakesDao.updateByPrimaryKeySelective(po); |
| | | } |
| | | return po ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据取水口ID获取该取水口未关阀参数,平台选择取水口关阀使用 |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public VoUnclosedParam selectUncloseParam(Long intakeId, String rtuAddr) { |
| | | JSONArray jsonArr = new JSONArray(); |
| | | JSONObject jsonObj = new JSONObject(); |
| | | jsonObj.put("rtuAddr", rtuAddr); |
| | | jsonObj.put("isOnLine", true); |
| | | jsonArr.add(jsonObj); |
| | | return rmCommandHistoryDao.getUncloseParam(jsonArr.toJSONString(), intakeId); |
| | | } |
| | | } |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.util.NumUtil; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | |
| | | //发送命令前-3:保存命令日志 |
| | | SeClientCard icPo = sv.selectClientIcCardById(Long.parseLong(dto.icCardId.trim())) ; |
| | | if(icPo == null){ |
| | | return BaseResponseUtils.buildError("服务端出错,未得到农户IC卡") ; |
| | | return BaseResponseUtils.buildErrorMsg("服务端出错,未得到农户IC卡") ; |
| | | } |
| | | CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) |
| | | .icCardAddr(icPo.getCardaddr())//IC卡地址(8位数字或字母) |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.http.MediaType; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.validation.BindingResult; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONArray codeData = resultData.getJSONArray("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd56Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5CVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd68Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd92; |
| | | |
| | | 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.p206V202404.upVos.DataCd92_A2Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import com.dy.pipIrrRemote.monitor.common.ComCtrl; |
| | | 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.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.validation.BindingResult; |
| | | 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; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 08:33 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Tag(name = "远程命令", description = "平台远程开阀") |
| | | @RestController("cd92Ctrl") |
| | | @RequestMapping(path = "p202404V201/cd92") |
| | | @RequiredArgsConstructor |
| | | @Scope("prototype") //因为有对象类属性,所以采用原型模式,每次请求新建一个实例对象 |
| | | public class CdCtrl extends ComCtrl { |
| | | |
| | | private static final String RtuSuccessMsg = "控制器接收并执行命令成功,无返回数据"; |
| | | |
| | | private static final String ComCode = "92" ; |
| | | |
| | | @Autowired |
| | | private CdSv sv ; |
| | | /** |
| | | * 向设备(控制器)发送命令 |
| | | * @param dto 前端发来的值对象 |
| | | * @param bindingResult 对dto验证的结果 |
| | | * @return 返回前端 |
| | | */ |
| | | @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @SsoAop() |
| | | public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) { |
| | | BaseResponse<Object> res ; |
| | | //发送命令前-1:验证 |
| | | res = super.pre1(sv, ComCode, dto, bindingResult); |
| | | if(res == null) { |
| | | //发送命令前-2:获得数据 |
| | | res = super.pre2(sv, ComCode, dto, bindingResult); |
| | | if (res == null) { |
| | | if(dto.vtCardId == null || "".equals(dto.vtCardId.trim())){ |
| | | Long vtId = sv.selectVcIdByIntakeId(dto.getIntakeId()) ; |
| | | if(vtId == null) { |
| | | return BaseResponseUtils.buildErrorMsg("请选择一张虚拟卡"); |
| | | }else{ |
| | | dto.vtCardId = vtId.toString() ; |
| | | } |
| | | } |
| | | VoVirtualCard vcPo = sv.selectClientVtCardById(Long.parseLong(dto.vtCardId.trim())) ; |
| | | if(vcPo == null){ |
| | | return BaseResponseUtils.buildErrorMsg("服务端出错,未得到农户虚拟卡") ; |
| | | } |
| | | if(vcPo.getInUse().booleanValue()){ |
| | | return BaseResponseUtils.buildErrorMsg("农户该虚拟卡已经被占用,不能再应用其开阀") ; |
| | | } |
| | | if(vcPo.getMoney() <= 0.0){ |
| | | return BaseResponseUtils.buildErrorMsg("农户该虚拟卡中剩余金额为0,不能再应用其开阀") ; |
| | | } |
| | | Double waterPrice = sv.selectWaterPrice() ; |
| | | if(waterPrice == null){ |
| | | return BaseResponseUtils.buildErrorMsg("服务端出错,未得到水价") ; |
| | | } |
| | | CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) |
| | | .icCardNo("" + vcPo.getVcNum())//用户卡序列号(17位数字)(6字节BCD,2字节HEX) |
| | | .waterRemain(0.0)//用户剩余水量, 两个小数点, 单位m3, 0~99999999.99 |
| | | .moneyRemain(vcPo.getMoney())//用户剩余水量, 两个小数点, 单位m3, 0~99999999.99 |
| | | .waterPrice(waterPrice)//水量单价 单位:元, 2个小数点 |
| | | .elePrice(0.0)//电量单价 单位:元, 2个小数点 |
| | | .orderNo(RandomStringUtils.randomNumeric(16))//订单号(16位数字) |
| | | .build(); |
| | | //发送命令前-3:保存命令日志 |
| | | res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); |
| | | if (res == null) { |
| | | //发送命令前-4:准备Feature |
| | | super.pre4(); |
| | | try { |
| | | //创建外部命令(发给控制器) |
| | | Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode); |
| | | com.rtuResultSendWebUrl = rtuResultSendWebUrl; |
| | | com.param = comParam; |
| | | //发送命令 |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode, new Callback() { |
| | | @Override |
| | | public void call(Object obj) { |
| | | Boolean success = (Boolean) obj; |
| | | if(success){ |
| | | // 添加常用取水口或更新使用信息 |
| | | sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ; |
| | | //开阀成功,虚拟卡记录上标记已被占用 |
| | | sv.setVcUsed(vcPo.getId(), dto.getIntakeId()); |
| | | } |
| | | } |
| | | @Override |
| | | public void call(Object... objs) { |
| | | } |
| | | @Override |
| | | public void exception(Exception e) { |
| | | } |
| | | }); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | | } finally { |
| | | //最终 |
| | | super.end(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return res ; |
| | | } |
| | | |
| | | @Override |
| | | protected String checkDto(DtoBase dto) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | | if(codeData == null){ |
| | | msg = RtuSuccessMsg ; |
| | | }else { |
| | | String json = codeData.toJSONString(); |
| | | DataCd92_A2Vo cvo = JSON.parseObject(json, DataCd92_A2Vo.class) ; |
| | | if(cvo != null){ |
| | | if(callback != null){ |
| | | if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)0){ |
| | | callback.call(true);//开阀成功 |
| | | }else{ |
| | | callback.call(false);//开阀失败 |
| | | } |
| | | } |
| | | msg = cvo.toStr(false) ; |
| | | }else{ |
| | | msg = RtuSuccessMsg ; |
| | | } |
| | | } |
| | | }else{ |
| | | msg = RtuSuccessMsg ; |
| | | } |
| | | return msg; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd92; |
| | | |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 08:33 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=true) |
| | | public class CdDto extends DtoBase { |
| | | public static final long serialVersionUID = 202505130833001L; |
| | | public String vtCardId ;//用户卡(虚拟卡)序列号(17位数字)(6字节BCD,2字节HEX) |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd92; |
| | | |
| | | import com.dy.pipIrrRemote.monitor.common.CdParameter; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 08:33 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @ToString(callSuper = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @SuperBuilder |
| | | public class CdParam extends CdParameter { |
| | | public String icCardNo ;//用户卡序列号(17位数字)(6字节BCD,2字节HEX) |
| | | public Double waterRemain ;//用户剩余水量, 两个小数点, 单位m3, 0~99999999.99 |
| | | public Double moneyRemain ;//用户剩余金额, 两个小数点, 单位元, 0~999999.99 |
| | | public Double waterPrice ;//水量单价 单位:元, 2个小数点 |
| | | public Double elePrice ;//电量单价 单位:元, 2个小数点 |
| | | public String orderNo ;//订单号(16位数字) |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd92; |
| | | |
| | | import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | | import com.dy.pipIrrRemote.monitor.common.ComSv; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 08:33 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Service("cd92Sv") |
| | | public class CdSv extends ComSv { |
| | | @Autowired |
| | | protected SeVirtualCardMapper seVirtualCardDao ; |
| | | @Autowired |
| | | protected PrWaterPriceMapper prWaterPriceDao ; |
| | | @Autowired |
| | | protected PrIntakeVcMapper prIntakeVcDao ; |
| | | |
| | | public VoVirtualCard selectClientVtCardById(Long id){ |
| | | return seVirtualCardDao.getVcById(id) ; |
| | | } |
| | | public Double selectWaterPrice(){ |
| | | return prWaterPriceDao.getPrice() ; |
| | | } |
| | | /** |
| | | * 根据取水口ID获取与之绑定虚拟卡ID |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public Long selectVcIdByIntakeId(Long intakeId) { |
| | | return prIntakeVcDao.getVcIdByIntakeId(intakeId); |
| | | } |
| | | /** |
| | | * 设置虚拟卡被占用 |
| | | */ |
| | | public void setVcUsed(Long id, Long intakeId){ |
| | | SeVirtualCard po = new SeVirtualCard() ; |
| | | po.setId(id); |
| | | po.setIntakeId(intakeId); |
| | | po.setInUse((byte)1); |
| | | po.setOpenTime(new Date()); |
| | | seVirtualCardDao.updateByPrimaryKeySelective(po); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd93; |
| | | |
| | | 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.p206V202404.upVos.DataCd93_A3Vo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import com.dy.pipIrrRemote.monitor.common.ComCtrl; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.validation.BindingResult; |
| | | 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; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 09:38 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Tag(name = "远程命令", description = "平台远程关阀") |
| | | @RestController("cd93Ctrl") |
| | | @RequestMapping(path = "p202404V201/cd93") |
| | | @RequiredArgsConstructor |
| | | @Scope("prototype") //因为有对象类属性,所以采用原型模式,每次请求新建一个实例对象 |
| | | public class CdCtrl extends ComCtrl { |
| | | |
| | | private static final String RtuSuccessMsg = "控制器接收并执行命令成功,无返回数据"; |
| | | |
| | | private static final String ComCode = "93" ; |
| | | |
| | | @Autowired |
| | | private CdSv sv ; |
| | | /** |
| | | * 向设备(控制器)发送命令 |
| | | * @param dto 前端发来的值对象 |
| | | * @param bindingResult 对dto验证的结果 |
| | | * @return 返回前端 |
| | | */ |
| | | @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @SsoAop() |
| | | public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) { |
| | | BaseResponse<Object> res ; |
| | | //发送命令前-1:验证 |
| | | res = super.pre1(sv, ComCode, dto, bindingResult); |
| | | if(res == null) { |
| | | //发送命令前-2:获得数据 |
| | | res = super.pre2(sv, ComCode, dto, bindingResult); |
| | | if (res == null) { |
| | | //获取开阀命令参数 |
| | | VoUnclosedParam opPa = sv.selectUncloseParam(dto.getIntakeId(), ctrlPo.getRtuAddr()); |
| | | if(opPa == null) { |
| | | return BaseResponseUtils.buildFail("该取水口上无您最近的开阀操作"); |
| | | } |
| | | Long vcId = sv.getVcIdByNum(opPa.getVcNum()) ; |
| | | if(vcId == null) { |
| | | return BaseResponseUtils.buildFail("服务端出错,未得到虚拟卡ID"); |
| | | } |
| | | //发送命令前-3:保存命令日志 |
| | | CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) |
| | | .icCardNo(opPa.getVcNum())//用户卡序列号(17位数字)(6字节BCD,2字节HEX) |
| | | .orderNo(opPa.getOrderNo())//订单号(16位数字) |
| | | .build(); |
| | | res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); |
| | | if (res == null) { |
| | | //发送命令前-4:准备Feature |
| | | super.pre4(); |
| | | try { |
| | | //创建外部命令(发给控制器) |
| | | Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode); |
| | | com.rtuResultSendWebUrl = rtuResultSendWebUrl; |
| | | com.param = comParam; |
| | | //发送命令 |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode, new Callback() { |
| | | @Override |
| | | public void call(Object obj) { |
| | | Boolean success = (Boolean) obj; |
| | | if(success){ |
| | | //关阀成功,解除虚拟卡被占用 |
| | | sv.setVcNoUsed(vcId); |
| | | } |
| | | } |
| | | @Override |
| | | public void call(Object... objs) { |
| | | } |
| | | @Override |
| | | public void exception(Exception e) { |
| | | } |
| | | }); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | | } finally { |
| | | //最终 |
| | | super.end(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return res ; |
| | | } |
| | | |
| | | @Override |
| | | protected String checkDto(DtoBase dto) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | | if(codeData == null){ |
| | | msg = RtuSuccessMsg ; |
| | | }else { |
| | | String json = codeData.toJSONString(); |
| | | DataCd93_A3Vo cvo = JSON.parseObject(json, DataCd93_A3Vo.class) ; |
| | | if(cvo != null){ |
| | | if(callback != null){ |
| | | if(cvo.clResult != null && cvo.clResult == 0){ |
| | | callback.call(true);//关阀成功 |
| | | }else{ |
| | | callback.call(false);//关阀失败 |
| | | } |
| | | } |
| | | msg = cvo.toStr(false) ; |
| | | }else{ |
| | | msg = RtuSuccessMsg ; |
| | | } |
| | | } |
| | | }else{ |
| | | msg = RtuSuccessMsg ; |
| | | } |
| | | return msg; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd93; |
| | | |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 09:38 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=true) |
| | | public class CdDto extends DtoBase { |
| | | public static final long serialVersionUID = 202505130938001L; |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd93; |
| | | |
| | | import com.dy.pipIrrRemote.monitor.common.CdParameter; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 09:38 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @ToString(callSuper = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @SuperBuilder |
| | | public class CdParam extends CdParameter { |
| | | public String icCardNo ;//用户卡序列号(17位数字)(6字节BCD,2字节HEX) |
| | | public String orderNo ;//订单号(16位数字) |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201.cd93; |
| | | |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; |
| | | import com.dy.pipIrrRemote.monitor.common.ComSv; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/13 09:38 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Service("cd93Sv") |
| | | public class CdSv extends ComSv { |
| | | |
| | | @Autowired |
| | | protected SeVirtualCardMapper seVirtualCardDao ; |
| | | |
| | | @Autowired |
| | | protected PrWaterPriceMapper prWaterPriceDao ; |
| | | |
| | | public VoVirtualCard selectClientVtCardById(Long id){ |
| | | return seVirtualCardDao.getVcById(id) ; |
| | | } |
| | | public Double selectWaterPrice(){ |
| | | return prWaterPriceDao.getPrice() ; |
| | | } |
| | | |
| | | /** |
| | | * 解除虚拟卡被占用 |
| | | */ |
| | | public void setVcNoUsed(Long id){ |
| | | SeVirtualCard po = new SeVirtualCard() ; |
| | | po.setId(id); |
| | | po.setIntakeId(null); |
| | | po.setInUse((byte)0); |
| | | po.setOpenTime(null); |
| | | seVirtualCardDao.updateByPrimaryKeySelective(po); |
| | | } |
| | | |
| | | /** |
| | | * 通过虚拟卡编号得到记录实体ID |
| | | * @param vcNum |
| | | * @return |
| | | */ |
| | | public Long getVcIdByNum(String vcNum){ |
| | | return seVirtualCardDao.getVcIdByNum(vcNum) ; |
| | | } |
| | | } |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //发送命令后 |
| | | res = super.after(ComCode); |
| | | res = super.after(ComCode, null); |
| | | } |
| | | } catch (Exception e) { |
| | | res = BaseResponseUtils.buildFail("服务端构造并向通信中间件发送请求时异常" + (e.getMessage() == null ? "" : e.getMessage())); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | protected String dealComResult(String code, JSONObject resultData, Callback callback){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |