From f74db84df0e3797e0a2db1faa50adcb778a5150a Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 27 六月 2025 11:33:35 +0800
Subject: [PATCH] 1、完善水肥、墒情、气象相关Mapper代码; 2、解决表阀一体机远程关阀出现的订单号不一致专制不能关阀问题(王江海测试发现)。

---
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 49 insertions(+), 1 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 26de6cf..fa21331 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;
@@ -24,6 +25,8 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
 
 /**
  * @Author: liurunyu
@@ -87,13 +90,14 @@
                 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);
@@ -118,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
@@ -173,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