| | |
| | | return features.get(key); |
| | | } |
| | | |
| | | public static boolean contain(Long key) { |
| | | return features.containsKey(key); |
| | | } |
| | | |
| | | public static void remove(Long key){ |
| | | features.remove(key) ; |
| | | } |
| | |
| | | po.setParam((JSONObject) JSON.toJSON(param)); |
| | | po.setSendTime(new Date()); |
| | | po.setOperator(operator); |
| | | rmCommandHistoryDao.insertSelective(po) ; |
| | | int count = rmCommandHistoryDao.insertSelective(po) ; |
| | | if(count == 0){ |
| | | po = null ; |
| | | } |
| | | return po; |
| | | } |
| | | |
| | |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
æå |
| | | //å½åå
³éæ¯åè®°å½ä¸å¼éç对åºå
³é |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1, dataCd83CloseVo, false) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV1, dataCd83CloseVo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else if(poHistory.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
失败(对äºafter:çäºææäºé½è¿åtrue) |
| | |
| | | if (poHistory != null) { |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
ä¸äº |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1, dataCd83CloseVo, false) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV1, dataCd83CloseVo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else{ |
| | | //ä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83CloseVo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83CloseVo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83CloseVo, poLast, null); |
| | | } |
| | | } |
| | | }else{ |
| | | //if(po.opType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83CloseVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå
³é䏿¥å岿°æ®è®°å½ï¼æ²¡æå¯¹åºçå¼åæ°æ® |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83CloseVo, poLast, null); |
| | | } |
| | |
| | | */ |
| | | private void updateCloseValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV1 dV1, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV1, dataCd83CloseVo, clearLastOpenValue); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dV1, dataCd83CloseVo, false); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //å½åå¼é䏿¥æ¯æ°ç䏿¬¡å¼éï¼ä¸ç®¡åè®°å½æ¯å¦åå¨å
³éæ°æ®ï¼ä¸å¾æ¸
空å
³éæ°æ® |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83OpenVo, poLast); |
| | | } |
| | |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ï¼ä½åå¨å
³éæ°æ®ï¼é¦å
è¿è¡æ¶é´æ¯å¯¹ |
| | | if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ |
| | | //å½å䏿¥æ¯æ°çå¼éæ°æ®ï¼æææ°(last)æ°æ®ä¸çå
³éå
容æ¸
空 |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83OpenVo, poLast); |
| | | }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ |
| | |
| | | if(poLast.lastHistoryId != null){ |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; |
| | | } |
| | | this.updateOpenValve(clientVo, controller, poLast, poHistory, dV1, dataCd83OpenVo, false) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, poHistory, dV1, dataCd83OpenVo, false) ; |
| | | if(poHistory != null){ |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | } |
| | |
| | | }else{ |
| | | //if(poLast.opType == null && po.clType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤ç |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV1, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83OpenVo, poLast); |
| | | } |
| | |
| | | */ |
| | | private void updateOpenValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV1 dV1, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV1, dataCd83OpenVo, clearLastCloseValve); |
| | | |
| | | if(poHistory != null){ |
| | | poLast.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dV1, dataCd83OpenVo, false); |
| | | } |
| | | } |
| | |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
æå |
| | | //å½åå
³éæ¯åè®°å½ä¸å¼éç对åºå
³é |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV2, dataCd83CloseVo, false) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV2, dataCd83CloseVo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else if(poHistory.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
失败(对äºafter:çäºææäºé½è¿åtrue) |
| | |
| | | if (poHistory != null) { |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){ |
| | | //å¹é
ä¸äº |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV2, dataCd83CloseVo, false) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV2, dataCd83CloseVo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else{ |
| | | //ä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83CloseVo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83CloseVo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83CloseVo, poLast, null); |
| | | } |
| | | } |
| | | }else{ |
| | | //if(po.opType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83CloseVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå
³é䏿¥å岿°æ®è®°å½ï¼æ²¡æå¯¹åºçå¼åæ°æ® |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83CloseVo, poLast, null); |
| | | } |
| | |
| | | */ |
| | | private void updateCloseValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV2 dV2, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV2, dataCd83CloseVo, clearLastOpenValue); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dV2, dataCd83CloseVo, false); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //å½åå¼é䏿¥æ¯æ°ç䏿¬¡å¼éï¼ä¸ç®¡åè®°å½æ¯å¦åå¨å
³éæ°æ®ï¼ä¸å¾æ¸
空å
³éæ°æ® |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83OpenVo, poLast); |
| | | } |
| | |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ï¼ä½åå¨å
³éæ°æ®ï¼é¦å
è¿è¡æ¶é´æ¯å¯¹ |
| | | if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ |
| | | //å½å䏿¥æ¯æ°çå¼éæ°æ®ï¼æææ°(last)æ°æ®ä¸çå
³éå
容æ¸
空 |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83OpenVo, poLast); |
| | | }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ |
| | |
| | | if(poLast.lastHistoryId != null){ |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; |
| | | } |
| | | this.updateOpenValve(clientVo, controller, poLast, poHistory, dV2, dataCd83OpenVo, false) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, poHistory, dV2, dataCd83OpenVo, false) ; |
| | | if(poHistory != null){ |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | } |
| | |
| | | }else{ |
| | | //if(poLast.opType == null && po.clType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤ç |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dV2, dataCd83OpenVo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV2, dataCd83OpenVo, poLast); |
| | | } |
| | |
| | | */ |
| | | private void updateOpenValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV2 dV2, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV2, dataCd83OpenVo, clearLastCloseValve); |
| | | |
| | | if(poHistory != null){ |
| | | poLast.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dV2, dataCd83OpenVo, false); |
| | | } |
| | | } |
| | |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.startDt))){ |
| | | //å¹é
æå |
| | | //å½åå
³éæ¯åè®°å½ä¸å¼éç对åºå
³é |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV202404, dataCd85Vo, false) ; |
| | | 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) |
| | |
| | | if (poHistory != null) { |
| | | if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.startDt))){ |
| | | //å¹é
ä¸äº |
| | | this.updateCloseValve(clientVo, controller, poLast, poHistory, dV202404, dataCd85Vo, false) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV202404, dataCd85Vo, false) ; |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | }else{ |
| | | //ä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | } |
| | | }else{ |
| | | //è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | } |
| | | } |
| | | }else{ |
| | | //if(po.opType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤çï¼ä¹è®¤ä¸ºä¸ä¸ªå
³éæ¥æªä¸æ¥ |
| | | this.updateCloseValve(clientVo, controller, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ; |
| | | //çæå¹¶ä¿åæ°çå
³é䏿¥å岿°æ®è®°å½ï¼æ²¡æå¯¹åºçå¼åæ°æ® |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null); |
| | | } |
| | |
| | | */ |
| | | private void updateCloseValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV202404 dV202404, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dV202404, dataCd85Vo, clearLastOpenValue); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dV202404, dataCd85Vo, false); |
| | | } |
| | | } |
| | |
| | | this.dealSupplyReport() ; |
| | | }else { |
| | | //å½åå¼é䏿¥æ¯æ°ç䏿¬¡å¼éï¼ä¸ç®¡åè®°å½æ¯å¦åå¨å
³éæ°æ®ï¼ä¸å¾æ¸
空å
³éæ°æ® |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dataV202404, dataCd84Vo, poLast); |
| | | } |
| | |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ï¼ä½åå¨å
³éæ°æ®ï¼é¦å
è¿è¡æ¶é´æ¯å¯¹ |
| | | if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.openDt))){ |
| | | //å½å䏿¥æ¯æ°çå¼éæ°æ®ï¼æææ°(last)æ°æ®ä¸çå
³éå
容æ¸
空 |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | 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))){ |
| | |
| | | if(poLast.lastHistoryId != null){ |
| | | poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; |
| | | } |
| | | this.updateOpenValve(clientVo, controller, poLast, poHistory, dataV202404, dataCd84Vo, false) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, poHistory, dataV202404, dataCd84Vo, false) ; |
| | | if(poHistory != null){ |
| | | sv.updateRmOpenCloseValveHistory(poHistory); |
| | | } |
| | |
| | | }else{ |
| | | //if(poLast.opType == null && po.clType == null) |
| | | //åè®°å½ä¸åå¨å¼éæ°æ®ä¹ä¸åå¨å
³éæ°æ®ï¼è¿ç§æ
åµä¸åå¨ï¼ä½ä¸ºå®å
¨ä¹è¿è¡å¤ç |
| | | this.updateOpenValve(clientVo, controller, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | this.updateOpenValve(clientVo, controller, rtuAddr, poLast, null, dataV202404, dataCd84Vo, true) ; |
| | | //çæå¹¶ä¿åæ°çå¼é䏿¥å岿°æ®è®°å½ |
| | | this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dataV202404, dataCd84Vo, poLast); |
| | | } |
| | |
| | | */ |
| | | private void updateOpenValve(SeClient clientVo, |
| | | PrController controller, |
| | | String rtuAddr, |
| | | RmOpenCloseValveLast poLast, |
| | | RmOpenCloseValveHistory poHistory, |
| | | DataV202404 dataV202404, |
| | |
| | | poLast.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poLast.rtuAddr = rtuAddr; |
| | | poLast.updateFrom(dataV202404, dataCd84Vo, clearLastCloseValve); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.clientId = clientVo==null?null:clientVo.getId() ; |
| | | poHistory.clientName = clientVo==null?null:clientVo.getName() ; |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | poHistory.rtuAddr = rtuAddr; |
| | | poHistory.updateFrom(dataV202404, dataCd84Vo, false); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.util.IDLongGenerator; |
| | | import com.dy.common.util.NumUtil; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.ComResultWait; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | 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.beans.factory.annotation.Value; |
| | | import org.springframework.core.env.Environment; |
| | | 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; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.util.Objects; |
| | | import java.util.concurrent.CompletableFuture; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | @RestController |
| | | @RequestMapping(path = "comTrans") |
| | | @RequiredArgsConstructor |
| | | public class ComTransCtrl { |
| | | @Scope("prototype") //å 为æå¯¹è±¡ç±»å±æ§ï¼æä»¥éç¨å忍¡å¼ï¼æ¯æ¬¡è¯·æ±æ°å»ºä¸ä¸ªå®ä¾å¯¹è±¡ |
| | | public class ComTransCtrl extends ComCtrl { |
| | | |
| | | private static final String RtuSuccessMsg = "æ§å¶å¨æ¥æ¶å¹¶æ§è¡å½ä»¤æå"; |
| | | |
| | | @Autowired |
| | | private Environment env ; |
| | | |
| | | @Autowired |
| | | private RestTemplate restTemplate ; |
| | | |
| | | @Value("${mw.waitMwRtnResultTimeout}") |
| | | private int waitMwRtnResultTimeout ; |
| | | |
| | | @Value("${mw.rtuCallbackUrl_rm}") |
| | | private String rtuResultSendWebUrl; |
| | | |
| | | @Autowired |
| | | private ComTransSv comSv; |
| | | private ComTransSv sv ; |
| | | |
| | | /** |
| | | * å设å¤ï¼æ§å¶å¨ï¼åééä¼ å½ä»¤ |
| | |
| | | @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @SsoAop() |
| | | public BaseResponse<Object> send(@RequestBody @Valid ComTransDto dto, BindingResult bindingResult) { |
| | | if (bindingResult != null && bindingResult.hasErrors()) { |
| | | return BaseResponseUtils.buildError(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | String msg = this.checkDto(dto) ; |
| | | if(msg != null){ |
| | | return BaseResponseUtils.buildError(msg) ; |
| | | } |
| | | //å¾å°æ§å¶å¨å¯¹è±¡ |
| | | PrController ctrlPo = comSv.getRtu(dto.getIntakeId()); |
| | | if (ctrlPo == null) { |
| | | return BaseResponseUtils.buildError("仿°æ®åºä¸æªå¾å°æ§å¶å¨æ°æ®") ; |
| | | } |
| | | //æ£æ¥åè®® |
| | | msg = comSv.checkProtocol(ctrlPo) ; |
| | | if(msg != null) { |
| | | return BaseResponseUtils.buildError(msg) ; |
| | | } |
| | | //å¾å°åè½ç 对åºçå½ä»¤åç§° |
| | | String comName = comSv.getCommandName(dto.comCode, ctrlPo) ; |
| | | if(comName == null) { |
| | | return BaseResponseUtils.buildError("æªå¾å°åè½ç 对åºå½ä»¤åç§°") ; |
| | | } |
| | | Long comId = new IDLongGenerator().generate(); |
| | | String comData = dto.comData.toUpperCase() ; |
| | | //çæå¹¶ä¿åå½ä»¤æ¥å¿ |
| | | comSv.saveComHistoryPo(comId, ctrlPo.getProtocol(), dto.comCode, "éä¼ ï¼" + comName + "ï¼", |
| | | dto.getIntakeId(), ctrlPo.getRtuAddr(), new ComTransParam(dto.comCode, comData), dto.getOperator()); |
| | | try{ |
| | | CompletableFuture<JSONObject> feature = new CompletableFuture<>(); |
| | | ComResultWait.put(comId, feature); |
| | | //å建å¤é¨éä¼ å½ä»¤ï¼åç»æ§å¶å¨ï¼ |
| | | Command com = comSv.createOuterTransparentCommand("" + comId, dto.comCode); |
| | | com.rtuAddr = ctrlPo.getRtuAddr() ; |
| | | com.attachment = comData ; |
| | | com.rtuResultSendWebUrl = rtuResultSendWebUrl; |
| | | //å¾å°éä¿¡ä¸é´ä»¶åéå½ä»¤çweb URL |
| | | String rqUrl = comSv.get2MwRequestUrl(this.env, comSv.ContextComSend) ; |
| | | //åéä¿¡ä¸é´ä»¶åéwebè¯·æ± |
| | | BaseResponse res = comSv.sendPostRequest2Mw(restTemplate, rqUrl, com) ; |
| | | //å¤çéä¿¡ä¸é´ä»¶å¯¹web请æ±çååº |
| | | msg = comSv.dealMwDealResponse(res) ; |
| | | if(msg != null) { |
| | | return BaseResponseUtils.buildError(msg) ; |
| | | }else{ |
| | | try{ |
| | | //çå¾
éä¿¡ä¸é´ä»¶éç¥æ§å¶å¨æ§è¡å½ä»¤ä¸è¡æ°æ®ï¼å½ä»¤ç»æï¼ |
| | | JSONObject resultData = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS); |
| | | return BaseResponseUtils.buildSuccess(this.createRtnMsg(dto.comCode, resultData)); |
| | | }catch (Exception e){ |
| | | return BaseResponseUtils.buildFail("çå¾
éä¿¡ä¸é´ä»¶éç¥å½ä»¤ç»æè¶
æ¶"); |
| | | BaseResponse<Object> res ; |
| | | //åéå½ä»¤å-1ï¼éªè¯ |
| | | res = super.pre1(sv, dto.comCode, dto, bindingResult); |
| | | if(res == null) { |
| | | //åéå½ä»¤å-2ï¼è·å¾æ°æ® |
| | | res = super.pre2(sv, dto.comCode, dto, bindingResult); |
| | | if(res == null) { |
| | | //åéå½ä»¤å-3ï¼ä¿åå½ä»¤æ¥å¿ |
| | | this.comName = "éä¼ ï¼" + comName + "ï¼" ; |
| | | String comData = dto.comData.toUpperCase() ; |
| | | ComTransParam comParam = ComTransParam.builder().commandCode(dto.comCode).data(comData).build(); |
| | | res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), dto.comCode, comParam); |
| | | if(res == null) { |
| | | //åéå½ä»¤å-4ï¼åå¤Feature |
| | | super.pre4(); |
| | | try{ |
| | | //å建å¤é¨éä¼ å½ä»¤ï¼åç»æ§å¶å¨ï¼ |
| | | Command com = sv.createOuterTransparentCommand("" + comId, dto.comCode); |
| | | com.rtuAddr = ctrlPo.getRtuAddr() ; |
| | | com.attachment = comData ; |
| | | com.rtuResultSendWebUrl = rtuResultSendWebUrl; |
| | | //åéå½ä»¤ |
| | | res = super.doSend(sv, com) ; |
| | | if(res == null) { |
| | | //åéå½ä»¤å |
| | | res = super.after(dto.comCode); |
| | | } |
| | | }catch (Exception e){ |
| | | res = BaseResponseUtils.buildFail("æå¡ç«¯æé å¹¶åéä¿¡ä¸é´ä»¶åéè¯·æ±æ¶å¼å¸¸" + (e.getMessage() == null?"":e.getMessage())) ; |
| | | }finally { |
| | | //æç» |
| | | super.end() ; |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | return BaseResponseUtils.buildFail("æå¡ç«¯æé å¹¶åéä¿¡ä¸é´ä»¶åéè¯·æ±æ¶å¼å¸¸" + (e.getMessage() == null?"":e.getMessage())) ; |
| | | }finally { |
| | | try { |
| | | //æåæ¸
é¤CompletableFutureç¼å |
| | | ComResultWait.remove(comId); |
| | | }catch (Exception ee){} |
| | | } |
| | | return res ; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | private String checkDto(ComTransDto dto){ |
| | | if(!NumUtil.isHex(dto.comCode)){ |
| | | @Override |
| | | protected String checkDto(DtoBase dto){ |
| | | ComTransDto myDto = (ComTransDto)dto; |
| | | if(!NumUtil.isHex(myDto.comCode)){ |
| | | return "å½ä»¤åè½ç 䏿¯åå
è¿å¶æ°"; |
| | | } |
| | | if(!NumUtil.isHex(dto.comData)){ |
| | | if(!NumUtil.isHex(myDto.comData)){ |
| | | return "å½ä»¤æ°æ®ä¸æ¯åå
è¿å¶æ°"; |
| | | } |
| | | if(dto.comData.length() % 2 != 0){ |
| | | if(myDto.comData.length() % 2 != 0){ |
| | | return "å½ä»¤æ°æ®ä¸å®å¤ï¼é¿åº¦ä¸æ¯å¶æ°ï¼"; |
| | | } |
| | | if(!dto.comData.contains(dto.comCode)){ |
| | | if(!myDto.comData.contains(myDto.comCode)){ |
| | | return "å½ä»¤æ°æ®ä¸ä¸å
å«åè½ç "; |
| | | } |
| | | return null ; |
| | | } |
| | | |
| | | private String createRtnMsg(String code, JSONObject resultData){ |
| | | @Override |
| | | protected String createRtnMsg(String code, JSONObject resultData){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | |
| | | import jakarta.validation.constraints.NotEmpty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=true) |
| | | @ToString(callSuper = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | public class ComTransDto extends DtoBase { |
| | | public static final long serialVersionUID = 202505061021001L; |
| | | |
| | |
| | | package com.dy.pipIrrRemote.monitor; |
| | | |
| | | import com.dy.pipIrrRemote.monitor.common.CdParam; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @AllArgsConstructor |
| | | public class ComTransParam { |
| | | public String commandCode; |
| | | @ToString(callSuper = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @SuperBuilder |
| | | public class ComTransParam extends CdParam { |
| | | public String data ; |
| | | } |
| | | } |
| | |
| | | package com.dy.pipIrrRemote.monitor; |
| | | |
| | | import com.dy.pipIrrGlobal.command.CommandSv; |
| | | import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | 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 org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class ComTransSv extends CommandSv { |
| | | |
| | | @Autowired |
| | | private PrControllerMapper prControllerDao ; |
| | | @Autowired |
| | | private RmCommandHistoryMapper rmCommandHistoryDao ; |
| | | |
| | | public PrController getRtu(Long intakeId){ |
| | | return this.getRtu(prControllerDao, intakeId); |
| | | } |
| | | /** |
| | | * å建å½ä»¤æ¥å¿å¯¹è±¡ |
| | | * |
| | | * @param comId ä¸»é® |
| | | * @param commandCode åè½ç |
| | | * @param rtuAddr éæ§å¨å°å |
| | | * @param protocol é讯åè®®åç§° |
| | | * @param param åæ°æ°æ® |
| | | * @param operator æä½å |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public RmCommandHistory saveComHistoryPo(Long comId, |
| | | String protocol, |
| | | String commandCode, |
| | | String commandName, |
| | | Long intakeId, |
| | | String rtuAddr, |
| | | Object param, |
| | | Long operator) { |
| | | return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, intakeId, rtuAddr, param, operator) ; |
| | | } |
| | | public class ComTransSv extends ComSv { |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.common; |
| | | |
| | | import lombok.*; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 16:11 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @SuperBuilder |
| | | public class CdParam { |
| | | //å½ä»¤åè½ç |
| | | public String commandCode; |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.common; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.util.IDLongGenerator; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.command.ComResultWait; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import com.dy.pipIrrRemote.monitor.p202404V201.Cd50Param; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.core.env.Environment; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.util.Objects; |
| | | import java.util.concurrent.CompletableFuture; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 14:53 |
| | | * @Description |
| | | */ |
| | | public abstract class ComCtrl { |
| | | |
| | | @Autowired |
| | | protected Environment env ; |
| | | |
| | | @Autowired |
| | | protected RestTemplate restTemplate ; |
| | | |
| | | @Value("${mw.waitMwRtnResultTimeout}") |
| | | protected int waitMwRtnResultTimeout ; |
| | | |
| | | @Value("${mw.rtuCallbackUrl_rm}") |
| | | protected String rtuResultSendWebUrl; |
| | | |
| | | //æ§å¶å¨å¯¹è±¡ |
| | | protected PrController ctrlPo ; |
| | | //弿¥çå¾
å¨ |
| | | protected CompletableFuture<JSONObject> feature; |
| | | //å½ä»¤åç§° |
| | | protected String comName ; |
| | | //å½ä»¤æ¥å¿id |
| | | protected Long comId ; |
| | | |
| | | /** |
| | | * åéå½ä»¤å-1ï¼éªè¯ |
| | | * @param comSv |
| | | * @param comCode |
| | | * @param dto |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> pre1(ComSv comSv, String comCode, DtoBase dto, BindingResult bindingResult) { |
| | | if (bindingResult != null && bindingResult.hasErrors()) { |
| | | return BaseResponseUtils.buildError(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | String msg = this.checkDto(dto) ; |
| | | if(msg != null){ |
| | | return BaseResponseUtils.buildError("æå¡ç«¯åºéï¼" + msg) ; |
| | | } |
| | | return null ; |
| | | } |
| | | |
| | | /** |
| | | * åéå½ä»¤å-2ï¼è·å¾æ°æ® |
| | | * @param comSv |
| | | * @param comCode |
| | | * @param dto |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> pre2(ComSv comSv, String comCode, DtoBase dto, BindingResult bindingResult) { |
| | | //å¾å°æ§å¶å¨å¯¹è±¡ |
| | | ctrlPo = comSv.getRtu(dto.getIntakeId()); |
| | | if (ctrlPo == null) { |
| | | return BaseResponseUtils.buildError("æå¡ç«¯åºéï¼ä»æ°æ®åºä¸æªå¾å°æ§å¶å¨æ°æ®") ; |
| | | } |
| | | //æ£æ¥åè®® |
| | | String msg = comSv.checkProtocol(ctrlPo) ; |
| | | if(msg != null) { |
| | | return BaseResponseUtils.buildError("æå¡ç«¯åºéï¼" + msg) ; |
| | | } |
| | | //å¾å°åè½ç 对åºçå½ä»¤åç§° |
| | | comName = comSv.getCommandName(comCode, ctrlPo) ; |
| | | if(comName == null) { |
| | | return BaseResponseUtils.buildError("æå¡ç«¯åºéï¼æªå¾å°åè½ç 对åºå½ä»¤åç§°") ; |
| | | } |
| | | return null ; |
| | | } |
| | | /** |
| | | * åéå½ä»¤å-3ï¼ä¿åå½ä»¤æ¥å¿ |
| | | * @param comSv sv对象 |
| | | * @param intakeId åæ°´å£ID |
| | | * @param operator å½åç¨ç»å½ç¨æ·id(æä½äºº) |
| | | * @param comCode åè½ç |
| | | * @param param å½ä»¤åæ° |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> pre3(ComSv comSv, Long intakeId, Long operator, String comCode, CdParam param) { |
| | | comId = new IDLongGenerator().generate(); |
| | | //çæå¹¶ä¿åå½ä»¤æ¥å¿ |
| | | RmCommandHistory po = comSv.saveComHistoryPo(comId, |
| | | ctrlPo.getProtocol(), |
| | | comCode, comName, |
| | | intakeId, |
| | | ctrlPo.getRtuAddr(), |
| | | param, |
| | | operator); |
| | | if(po == null){ |
| | | return BaseResponseUtils.buildError("æå¡ç«¯åºéï¼æªè½çæå¹¶ä¿åå½ä»¤æ¥å¿") ; |
| | | } |
| | | return null ; |
| | | } |
| | | /** |
| | | * åéå½ä»¤å-4ï¼åå¤Feature |
| | | * @return |
| | | */ |
| | | public void pre4() { |
| | | feature = new CompletableFuture<>(); |
| | | ComResultWait.put(comId, feature); |
| | | } |
| | | |
| | | /** |
| | | * åéå½ä»¤ |
| | | * @param comSv |
| | | * @param com |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> doSend(ComSv comSv, Command com){ |
| | | //å¾å°éä¿¡ä¸é´ä»¶åéå½ä»¤çweb URL |
| | | String rqUrl = comSv.get2MwRequestUrl(env, comSv.ContextComSend) ; |
| | | //åéä¿¡ä¸é´ä»¶åéwebè¯·æ± |
| | | BaseResponse res = comSv.sendPostRequest2Mw(restTemplate, rqUrl, com) ; |
| | | //å¤çéä¿¡ä¸é´ä»¶å¯¹web请æ±çååº |
| | | String msg = comSv.dealMwDealResponse(res) ; |
| | | if(msg != null) { |
| | | return BaseResponseUtils.buildError(msg) ; |
| | | }else{ |
| | | return null ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * åéå½ä»¤å |
| | | * @return |
| | | */ |
| | | public BaseResponse<Object> after(String comCode) { |
| | | try{ |
| | | //çå¾
éä¿¡ä¸é´ä»¶éç¥æ§å¶å¨æ§è¡å½ä»¤ä¸è¡æ°æ®ï¼å½ä»¤ç»æï¼ |
| | | JSONObject resultData = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS); |
| | | return BaseResponseUtils.buildSuccess(this.createRtnMsg(comCode, resultData)); |
| | | }catch (Exception e){ |
| | | return BaseResponseUtils.buildFail("çå¾
éä¿¡ä¸é´ä»¶éç¥å½ä»¤ç»æè¶
æ¶"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * åéå½ä»¤æå |
| | | * @return |
| | | */ |
| | | public void end(){ |
| | | try { |
| | | //æåæ¸
é¤CompletableFutureç¼å |
| | | if(ComResultWait.contain(comId)){ |
| | | ComResultWait.remove(comId); |
| | | } |
| | | }catch (Exception ee){} |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | protected abstract String checkDto(DtoBase dto) ; |
| | | |
| | | |
| | | /** |
| | | * çæå½ä»¤è¿åä¿¡æ¯ |
| | | */ |
| | | protected abstract String createRtnMsg(String code, JSONObject resultData); |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.common; |
| | | |
| | | import com.dy.pipIrrGlobal.command.CommandSv; |
| | | import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 14:45 |
| | | * @Description |
| | | */ |
| | | public class ComSv extends CommandSv { |
| | | |
| | | @Autowired |
| | | protected PrControllerMapper prControllerDao ; |
| | | @Autowired |
| | | protected RmCommandHistoryMapper rmCommandHistoryDao ; |
| | | |
| | | public PrController getRtu(Long intakeId){ |
| | | return this.getRtu(prControllerDao, intakeId); |
| | | } |
| | | /** |
| | | * å建å½ä»¤æ¥å¿å¯¹è±¡ |
| | | * |
| | | * @param comId ä¸»é® |
| | | * @param commandCode åè½ç |
| | | * @param rtuAddr éæ§å¨å°å |
| | | * @param protocol é讯åè®®åç§° |
| | | * @param param åæ°æ°æ® |
| | | * @param operator æä½å |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public RmCommandHistory saveComHistoryPo(Long comId, |
| | | String protocol, |
| | | String commandCode, |
| | | String commandName, |
| | | Long intakeId, |
| | | String rtuAddr, |
| | | Object param, |
| | | Long operator) { |
| | | return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, intakeId, rtuAddr, param, operator) ; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | 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/9 14:41 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Tag(name = "è¿ç¨éä¼ å½ä»¤", description = "è¿ç¨éä¼ å½ä»¤") |
| | | @RestController |
| | | @RequestMapping(path = "p202404V201") |
| | | @RequiredArgsConstructor |
| | | @Scope("prototype") //å 为æå¯¹è±¡ç±»å±æ§ï¼æä»¥éç¨å忍¡å¼ï¼æ¯æ¬¡è¯·æ±æ°å»ºä¸ä¸ªå®ä¾å¯¹è±¡ |
| | | public class Cd50Ctrl extends ComCtrl { |
| | | |
| | | private static final String RtuSuccessMsg = "æ§å¶å¨æ¥æ¶å¹¶æ§è¡å½ä»¤æå"; |
| | | |
| | | private static final String ComCode = "50" ; |
| | | |
| | | @Autowired |
| | | private Cd50Sv sv ; |
| | | /** |
| | | * å设å¤ï¼æ§å¶å¨ï¼åééä¼ å½ä»¤ |
| | | * @param dto åç«¯åæ¥çå¼å¯¹è±¡ |
| | | * @param bindingResult 对dtoéªè¯çç»æ |
| | | * @return è¿åå端 |
| | | */ |
| | | @PostMapping(path = "cd50", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @SsoAop() |
| | | public BaseResponse<Object> send(@RequestBody @Valid Cd50Dto 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) { |
| | | //åéå½ä»¤å-3ï¼ä¿åå½ä»¤æ¥å¿ |
| | | Cd50Param comParam = Cd50Param.builder().commandCode(ComCode).build(); |
| | | res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); |
| | | if (res == null) { |
| | | //åéå½ä»¤å-4ï¼åå¤Feature |
| | | super.pre4(); |
| | | try { |
| | | //å建å¤é¨å½ä»¤ï¼åç»æ§å¶å¨ï¼ |
| | | Command com = sv.createOuterCommand("" + comId, ComCode); |
| | | com.rtuAddr = ctrlPo.getRtuAddr(); |
| | | com.rtuResultSendWebUrl = rtuResultSendWebUrl; |
| | | //åéå½ä»¤ |
| | | res = super.doSend(sv, com); |
| | | if (res == null) { |
| | | //åéå½ä»¤å |
| | | res = super.after(ComCode); |
| | | } |
| | | } 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 createRtnMsg(String code, JSONObject resultData){ |
| | | String msg; |
| | | if(resultData != null){ |
| | | JSONObject codeData = resultData.getJSONObject("data") ; |
| | | if(codeData == null){ |
| | | return RtuSuccessMsg ; |
| | | }else { |
| | | Integer minute = codeData.getInteger("minute"); |
| | | return "æ¥è¯¢æåï¼èªæ¥å¨æï¼" + minute + "åé"; |
| | | } |
| | | }else{ |
| | | msg = RtuSuccessMsg ; |
| | | } |
| | | return msg; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201; |
| | | |
| | | import com.dy.pipIrrRemote.common.dto.DtoBase; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 14:42 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=true) |
| | | public class Cd50Dto extends DtoBase { |
| | | public static final long serialVersionUID = 202505091450001L; |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201; |
| | | |
| | | import com.dy.pipIrrRemote.monitor.common.CdParam; |
| | | import lombok.*; |
| | | import lombok.experimental.SuperBuilder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 14:43 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @ToString(callSuper = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @SuperBuilder |
| | | public class Cd50Param extends CdParam { |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrRemote.monitor.p202404V201; |
| | | |
| | | import com.dy.pipIrrRemote.monitor.common.ComSv; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/5/9 14:42 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class Cd50Sv extends ComSv { |
| | | } |
| | |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeClientMapper; |
| | | import com.dy.pipIrrGlobal.voSt.*; |
| | | import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO; |