From 11c7a9b0270cbf529ebb5e434b5fe0593dd209f0 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 30 五月 2024 09:43:01 +0800
Subject: [PATCH] 2024-05-30 朱宝民 添加微信和手机App两个子模块

---
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java |  143 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 98 insertions(+), 45 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
index aa2d7c7..482486d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -1,16 +1,19 @@
 package com.dy.pipIrrRemote.valve;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
 import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo;
+import com.dy.common.util.IDLongGenerator;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
-import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
 import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
@@ -46,7 +49,7 @@
  */
 
 @Slf4j
-@Tag(name = "鍒嗘按鎴跨鐞�", description = "鍒嗘按鎴挎搷浣�")
+@Tag(name = "闃�闂ㄧ鐞�", description = "闃�闂ㄦ搷浣�")
 @RestController
 @RequestMapping(path="valve")
 @RequiredArgsConstructor
@@ -55,7 +58,7 @@
     private final CommandSv commandSv;
     private final SeVirtualCardMapper seVirtualCardMapper;
     private final PrWaterPriceMapper prWaterPriceMapper;
-    private final RmCommandHistoryMapper rmCommandHistoryMapper;
+    private final IDLongGenerator idLongGenerator;
 
     /**
      * 杩滅▼寮�闃�锛堝钩鍙般�丄PP锛�
@@ -76,7 +79,7 @@
         Long vcId = valve.getVcId();
         Integer userType = valve.getUserType();
         Long operator = valve.getOperator();
-        String comId = null;
+        Long comId = idLongGenerator.generate();
 
         // 鑾峰彇绯荤粺鍙傛暟
         if(!setuped) {
@@ -88,11 +91,13 @@
         // 鑾峰彇姘翠环
         Double waterPrice = prWaterPriceMapper.getPrice();
 
-        // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃
-        String rtuAddr = commandSv.getRtuAddrByIntakeId(intakeId);
-        if(rtuAddr == null || rtuAddr.length() == 0) {
-            return BaseResponseUtils.buildError(RemoteResultCode.RTU_ADDR_CANNOT_BE_NULL.getMessage());
+        // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+        PrController prController = commandSv.getControllerByIntakeId(intakeId);
+        if(prController == null) {
+            return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
         }
+        String rtuAddr = prController.getRtuAddr();
+        String protocol = prController.getProtocol();
 
         // 鐢熸垚璁㈠崟鍙�
         LocalDateTime dateTime = LocalDateTime.now();
@@ -106,7 +111,7 @@
         String orderNo = dtf.format(dateTime) + sb.toString();
 
         String commandCode = null;
-        if(protocolName.equals("p206V202404")) {
+        if(protocol.equals("p206V202404")) {
             // 鑾峰彇鍔熻兘鐮�
             if(userType == 1) {
                 // 骞冲彴寮�闃�
@@ -127,13 +132,40 @@
             param.elePrice = 0.0;
             param.orderNo = orderNo;
 
-            // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
-            RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
-            comId = commandSv.insert(rmCommandHistory);
+            // 鏋勯�犲懡浠�
+            Command com = command(comId, commandCode, rtuAddr, protocol, param);
 
-            // 鏋勯�犲苟鍙戦�佸懡浠�
-            Command com = command(comId, commandCode, rtuAddr, param);
-            sendCom2Mw(com);
+            // 鍙戦�佸懡浠�
+            JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+            if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+                // 璇锋眰鎴愬姛
+
+                // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+                RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
+                commandSv.insert(rmCommandHistory);
+
+                // 澶勭悊鍥炶皟
+                BaseResponse response_CallBack = dealWithCallBack(comId);
+                if(!response_CallBack.getCode().equals("0001")) {
+                    return BaseResponseUtils.buildError(RemoteResultCode.GET_RESULT_ERROR.getMessage());
+                }
+
+                // 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+                SeVirtualCard virtualCard = new SeVirtualCard();
+                virtualCard.setId(vcId);
+                virtualCard.setInUse((byte) 1);
+                virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+                virtualCard.setLastOperateTime(new Date());
+                seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+
+                // 鍥炶皟杩斿洖鐨勫唴瀹�
+                Data myData = (Data)response_CallBack.getContent();
+                return BaseResponseUtils.buildSuccess(myData) ;
+            } else {
+                // 璇锋眰澶辫触
+                JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param");
+                return BaseResponseUtils.buildFail(job_param.getString("message"));
+            }
         } else {
             // 鑾峰彇鍔熻兘鐮�
             if(userType == 1) {
@@ -148,30 +180,15 @@
             ComCd92_A2Vo param = new ComCd92_A2Vo();
 
             // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
-            RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
-            comId = commandSv.insert(rmCommandHistory);
+            //RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, protocol, param, operator);
+            //comId = commandSv.insert(rmCommandHistory);
 
             // 鏋勯�犲苟鍙戦�佸懡浠�
-            Command com = command(comId, commandCode, rtuAddr, param);
+            Command com = command(comId, commandCode, rtuAddr, protocol, param);
             sendCom2Mw(com);
+
+            return BaseResponseUtils.buildSuccess();
         }
-
-        // 澶勭悊鍥炶皟
-        BaseResponse response = dealWithCallBack(comId);
-        if(!response.getCode().equals("0001")) {
-            return BaseResponseUtils.buildError(RemoteResultCode.GET_RESULT_ERROR.getMessage());
-        }
-
-        // 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
-        SeVirtualCard virtualCard = new SeVirtualCard();
-        virtualCard.setId(vcId);
-        virtualCard.setInUse((byte) 1);
-        virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
-        virtualCard.setLastOperateTime(new Date());
-        seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
-
-        Data myData = (Data)response.getContent();
-        return BaseResponseUtils.buildSuccess(myData) ;
     }
 
     /**
@@ -194,15 +211,23 @@
         String orderNo = valve.getOrderNo();
         Integer userType = valve.getUserType();
         Long operator = valve.getOperator();
-        String comId = null;
+        Long comId = idLongGenerator.generate();
 
         // 鑾峰彇绯荤粺鍙傛暟
         if(!setuped) {
             setUp();
         }
 
+        // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
+        PrController prController = commandSv.getControllerByRtuAddr(rtuAddr);
+        if(prController == null) {
+            return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
+        }
+        Long intakeId = prController.getIntakeId();
+        String protocol = prController.getProtocol();
+
         String commandCode = null;
-        if(protocolName.equals("p206V202404")) {
+        if(protocol.equals("p206V202404")) {
             // 鑾峰彇鍔熻兘鐮�
             if (userType == 1) {
                 // 骞冲彴鍏抽榾
@@ -219,13 +244,41 @@
             param.icCardNo = vcNum;
             param.orderNo = orderNo;
 
-            // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
-            RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
-            comId = commandSv.insert(rmCommandHistory);
+            // 鏋勯�犲懡浠�
+            Command com = command(comId, commandCode, rtuAddr, protocol, param);
 
-            // 鏋勯�犲苟鍙戦�佸懡浠�
-            Command com = command(comId, commandCode, rtuAddr, param);
-            sendCom2Mw(com);
+            // 鍙戦�佸懡浠�
+            JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+            if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+                // 璇锋眰鎴愬姛
+
+                // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+                RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
+                commandSv.insert(rmCommandHistory);
+
+                // 澶勭悊鍥炶皟
+                BaseResponse response_CallBack = dealWithCallBack(comId);
+                if(!response_CallBack.getCode().equals("0001")) {
+                    return BaseResponseUtils.buildError(RemoteResultCode.GET_RESULT_ERROR.getMessage());
+                }
+
+                // 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+                Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+                SeVirtualCard virtualCard = new SeVirtualCard();
+                virtualCard.setId(vcId);
+                virtualCard.setInUse((byte) 1);
+                virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+                virtualCard.setLastOperateTime(new Date());
+                seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+
+                // 鍥炶皟杩斿洖鐨勫唴瀹�
+                Data myData = (Data)response_CallBack.getContent();
+                return BaseResponseUtils.buildSuccess(myData) ;
+            } else {
+                // 璇锋眰澶辫触
+                JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param");
+                return BaseResponseUtils.buildFail(job_param.getString("message"));
+            }
         } else {
             // 鑾峰彇鍔熻兘鐮�
             if (userType == 1) {
@@ -244,11 +297,11 @@
             param.orderNo = orderNo;
 
             // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
-            RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
+            RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
             comId = commandSv.insert(rmCommandHistory);
 
             // 鏋勯�犲苟鍙戦�佸懡浠�
-            Command com = command(comId, commandCode, rtuAddr, param);
+            Command com = command(comId, commandCode, rtuAddr, protocol, param);
             sendCom2Mw(com);
         }
 

--
Gitblit v1.8.0