From d730e2a289b38356e28a04b35a0cb2e7b4c6c282 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 03 七月 2025 10:27:56 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java
index 4d3ff38..bcb00a2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java
@@ -8,6 +8,7 @@
 import com.dy.common.util.Callback;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
 import com.dy.pipIrrRemote.common.dto.DtoBase;
 import com.dy.pipIrrRemote.monitor.common.ComCtrl;
@@ -25,6 +26,8 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Date;
+
 /**
  * @Author: liurunyu
  * @Date: 2025/5/13 08:33
@@ -41,6 +44,8 @@
     private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
 
     private static final String ComCode = "92" ;
+
+    public static final Double MaxRemainMoney = 9999.9999D ;//鍗忚鏀寔鐨勫墿浣欓噾棰濇渶澶у��
 
     @Autowired
     private CdSv sv ;
@@ -78,17 +83,21 @@
                 if(vcPo.getMoney() <= 0.0){
                     return BaseResponseUtils.buildErrorMsg("鍐滄埛璇ヨ櫄鎷熷崱涓墿浣欓噾棰濅负0锛屼笉鑳藉啀搴旂敤鍏跺紑闃�") ;
                 }
+                if(vcPo.getMoney() >= MaxRemainMoney){
+                    return BaseResponseUtils.buildErrorMsg("鍐滄埛璇ヨ櫄鎷熷崱涓墿浣欓噾棰濆ぇ浜庡崗璁敮鎸佺殑鏈�澶у��" + MaxRemainMoney + "锛屼笉鑳藉啀搴旂敤鍏跺紑闃�") ;
+                }
                 Double waterPrice = sv.selectWaterPrice() ;
                 if(waterPrice == null){
                     return BaseResponseUtils.buildErrorMsg("鏈嶅姟绔嚭閿欙紝鏈緱鍒版按浠�") ;
                 }
+                String orderNo = RandomStringUtils.randomNumeric(16) ;
                 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浣嶆暟瀛楋級
+                        .orderNo(orderNo)//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
                         .build();
                 //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
                 res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
@@ -113,6 +122,15 @@
                                         sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ;
                                         //寮�闃�鎴愬姛锛岃櫄鎷熷崱璁板綍涓婃爣璁板凡琚崰鐢�
                                         sv.setVcUsed(vcPo.getId(), dto.getIntakeId());
+                                        //璁板綍寮�闃�鍛戒护锛屼互澶囪繙绋嬪叧闃�
+                                        RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId());
+                                        if(comOpen == null){
+                                            RmCommandOpen po = newRmCommandOpen(comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ;
+                                            sv.saveCommandOpen(po);
+                                        }else{
+                                            setRmCommandOpen(comOpen, comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ;
+                                            sv.updateCommandOpen(comOpen);
+                                        }
                                     }
                                 }
                                 @Override
@@ -152,7 +170,7 @@
                 DataCd92_A2Vo cvo = JSON.parseObject(json, DataCd92_A2Vo.class) ;
                 if(cvo != null){
                     if(callback != null){
-                        if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)0){
+                        if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)1){
                             callback.call(true);//寮�闃�鎴愬姛
                         }else{
                             callback.call(false);//寮�闃�澶辫触
@@ -168,4 +186,39 @@
         }
         return msg;
     }
+
+    private RmCommandOpen newRmCommandOpen(Long comId,
+                                           String protocol,
+                                           String comCode,
+                                           String comName,
+                                           Long intakeId,
+                                           String rtuAddr,
+                                           Long vcNum,
+                                           String orderNo,
+                                           Long operator){
+        RmCommandOpen po = new RmCommandOpen() ;
+        this.setRmCommandOpen(po, comId, protocol, comCode, comName, intakeId, rtuAddr, vcNum, orderNo, operator);
+        return po ;
+    }
+    private void setRmCommandOpen(RmCommandOpen po,
+                                  Long comId,
+                                  String protocol,
+                                  String comCode,
+                                  String comName,
+                                  Long intakeId,
+                                  String rtuAddr,
+                                  Long vcNum,
+                                  String orderNo,
+                                  Long operator){
+        po.comId = comId ;
+        po.protocol = protocol ;
+        po.commandCode = comCode ;
+        po.commandName = comName ;
+        po.intakeId = intakeId ;
+        po.rtuAddr = rtuAddr ;
+        po.vcNum = vcNum ;
+        po.orderNo = orderNo ;
+        po.operator = operator ;
+        po.sendTime = new Date() ;
+    }
 }

--
Gitblit v1.8.0