From 2e914bc2c2fc2fae4803b4c3b6483e205e4eb8a5 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 11 六月 2024 10:20:58 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java | 608 +++++++++--
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/pom.xml | 8
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java | 37
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java | 123 -
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java | 207 +--
pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml | 3
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java | 15
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java | 3
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveOpen.java | 5
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java | 134 +
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveClose.java | 46
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/dto/Param.java | 32
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java | 6
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/DtoBase.java | 28
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedParam.java | 22
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java | 5
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeVcMapper.xml | 85 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeVc.java | 56 +
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java | 33
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentSv.java | 11
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java | 9
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 42
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/qo/OnLineIntakesQO.java | 33
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java | 8
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java | 10
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/enums/LastOperateENUM.java | 27
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java | 42
pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml | 3
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java | 489 +++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java | 14
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java | 12
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeVcMapper.java | 35
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java | 36
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/enums/LastOperateENUM.java | 27
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java | 126 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveClose.java | 4
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java | 293 +++++
pipIrr-platform/pipIrr-global/pom.xml | 26
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java | 113 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClientWechat.java | 26
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/result/CommandResultCode.java | 29
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml | 22
pipIrr-platform/pipIrr-web/pom.xml | 56
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 27
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java | 10
/dev/null | 48
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java | 14
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml | 9
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveOpen.java | 26
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java | 40
64 files changed, 2,648 insertions(+), 558 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
index 06f3763..3724072 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
@@ -62,7 +62,7 @@
(code.equals(cd_92) ? "閬ユ帶鍚姩闃�闂�" :
(code.equals(cd_93) ? "閬ユ帶鍏抽棴闃�闂�" :
(code.equals(cd_97) ? "APP杩滅▼寮�闃�" :
- (code.equals(cd_98) ? "PP杩滅▼鍏抽榾" :
+ (code.equals(cd_98) ? "APP杩滅▼鍏抽榾" :
(code.equals(cd_3C) ? "璁剧疆姘翠环" :
(code.equals(cd_6C) ? "鏌ヨ姘翠环" :
(code.equals(cd_3D) ? "璁剧疆榛戝悕鍗�" :
diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml
index ed3c376..67e9c0e 100644
--- a/pipIrr-platform/pipIrr-global/pom.xml
+++ b/pipIrr-platform/pipIrr-global/pom.xml
@@ -144,19 +144,19 @@
<build>
<plugins>
- <plugin>
- <!-- spring boot鎻愪緵鐨刴aven鎵撳寘鎻掍欢 -->
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
+<!-- <plugin>-->
+<!-- <!– spring boot鎻愪緵鐨刴aven鎵撳寘鎻掍欢 –>-->
+<!-- <groupId>org.springframework.boot</groupId>-->
+<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
+<!-- <configuration>-->
+<!-- <excludes>-->
+<!-- <exclude>-->
+<!-- <groupId>org.projectlombok</groupId>-->
+<!-- <artifactId>lombok</artifactId>-->
+<!-- </exclude>-->
+<!-- </excludes>-->
+<!-- </configuration>-->
+<!-- </plugin>-->
<plugin>
<!-- maven閲屾墽琛屾祴璇曠敤渚嬬殑鎻掍欢 -->
<groupId>org.apache.maven.plugins</groupId>
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
new file mode 100644
index 0000000..7673734
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -0,0 +1,293 @@
+package com.dy.pipIrrGlobal.command;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandType;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.command.dto.Param;
+import com.dy.pipIrrGlobal.command.result.CommandResultCode;
+import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
+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 jakarta.annotation.PostConstruct;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-30 15:45
+ * @LastEditTime 2024-05-30 15:45
+ * @Description 鍛戒护鏀拺绫�
+ */
+
+//@Component
+//@DependsOn({"baSettingsMapper", "prControllerMapper"})
+public class ComSupport {
+ protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
+
+ protected static String controllerType = null;
+ protected static Integer projectNo = null;
+ protected String commandTypeOuter = CommandType.outerCommand;
+
+ // 瀛樺偍瀹炰緥鍖栫殑 CompletableFuture<Data> 瀵硅薄
+ protected static Map<Long, Object> features = new HashMap<>();
+ protected static Boolean setuped = false;
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ @Autowired
+ private BaSettingsMapper baSettingsMapper;
+
+ @Autowired
+ private PrControllerMapper prControllerMapper;
+
+ //@Autowired
+ //private CommandSv commandSv;
+
+ @Autowired
+ private RmCommandHistoryMapper rmCommandHistoryMapper;
+
+ public static ComSupport comSupport;
+
+ /**
+ * 寮曞叆BaSettingsMapper
+ */
+ @PostConstruct
+ public void init() {
+ comSupport = this;
+ comSupport.baSettingsMapper = this.baSettingsMapper;
+ comSupport.prControllerMapper = this.prControllerMapper;
+ }
+
+ /**
+ * 鑾峰彇绯荤粺閰嶇疆鍙傛暟
+ */
+ public void setUp() {
+ controllerType = comSupport.baSettingsMapper.getItemValue("controllerType");
+ projectNo = Integer.parseInt(comSupport.baSettingsMapper.getItemValue("projectNo"));
+ setuped = true;
+ }
+
+ /**
+ * 鐢熸垚璁㈠崟鍙�
+ * @return
+ */
+ public String generateOrderNo() {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss");
+ LocalDateTime dateTime = LocalDateTime.now();
+ Random random = new Random();
+ String CHARACTERS = "0123456789";
+ StringBuilder sb = new StringBuilder(4);
+ for (int i = 0; i < 4; i++) {
+ int index = random.nextInt(CHARACTERS.length());
+ sb.append(CHARACTERS.charAt(index));
+ }
+ return dtf.format(dateTime) + sb.toString();
+ }
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鎴栭榾鎺у櫒鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄
+ * @param intakeId
+ * @return
+ */
+ public JSONObject getRtu(Long intakeId, String rtuAddr) {
+ PrController prController = prControllerMapper.getRtu(intakeId, rtuAddr);
+ if(prController == null) {
+ return null;
+ }
+ JSONObject job_rtu = new JSONObject();
+ job_rtu.put("rtuAddr", prController.getRtuAddr());
+ job_rtu.put("protocol", prController.getProtocol());
+ job_rtu.put("intakeId", prController.getIntakeId());
+
+ return job_rtu;
+ }
+
+ /**
+ * 鍒涘缓鍛戒护鏃ュ織瀵硅薄
+ * @param comId 涓婚敭
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr 闃�鎺у櫒鍦板潃
+ * @param protocol 閫氳鍗忚鍚嶇О
+ * @param param 鍙傛暟鏁版嵁
+ * @param operator 鎿嶄綔鍛�
+ * @return
+ */
+ protected RmCommandHistory getComHistory(Long comId, String commandCode, String commandName, Long intakeId, String rtuAddr, String protocol, Object param, Long operator ) {
+ RmCommandHistory rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setCommandCode(commandCode);
+ //rmCommandHistory.setCommandName(CodeV202404.getCodeName(commandCode));
+ rmCommandHistory.setCommandName(commandName);
+ rmCommandHistory.setIntakeId(intakeId);
+ rmCommandHistory.setRtuAddr(rtuAddr);
+ rmCommandHistory.setProtocol(protocol);
+ rmCommandHistory.setParam((JSONObject) JSON.toJSON(param));
+ rmCommandHistory.setSendTime(new Date());
+ rmCommandHistory.setOperator(operator);
+ return rmCommandHistory;
+ }
+
+ /**
+ * 鏋勯�犲懡浠ゅ璞�
+ * @param comId 鍛戒护ID
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr RTU鍦板潃
+ * @param param 鍙傛暟鏁版嵁
+ * @return 鏋勯�犲ソ鐨勫懡浠ゅ璞�
+ */
+ protected Command command(Long comId, String commandCode, String rtuAddr, String protocol, String rtuResultSendWebUrl, Object param){
+ Command com = new Command() ;
+ com.id = String.valueOf(comId);
+ com.code = commandCode ;
+ com.rtuAddr = rtuAddr ;
+
+ com.protocol = protocol;
+ com.type = commandTypeOuter;
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
+
+ com.param = param ;
+
+ return com ;
+ }
+
+ /**
+ * 澶勭悊鍥炶皟鍐呭
+ * @param comId
+ * @return
+ */
+ protected BaseResponse<Data> dealWithCallBack(Long comId) {
+ CompletableFuture<Data> featureObject = new CompletableFuture<>();
+ features.put(comId, featureObject);
+ try {
+ CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId);
+ System.out.println("receive result ID:" + comId);
+ Data resultData = feature.get(30, TimeUnit.SECONDS);
+ features.remove(comId);
+ Long commandId = Long.parseLong(resultData.getCommandId());
+ if(commandId.equals(comId)) {
+ return BaseResponseUtils.buildSuccess(resultData);
+ }else {
+ return BaseResponseUtils.buildSuccess();
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ return BaseResponseUtils.buildFail(CommandResultCode.GET_RESULT_ERROR.getMessage());
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ return BaseResponseUtils.buildFail(CommandResultCode.GET_RESULT_ERROR.getMessage());
+ } catch (TimeoutException e) {
+ return BaseResponseUtils.buildSuccess(CommandResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠�
+ * @return
+ */
+ protected BaseResponse sendCom2Mw(Command com){
+ String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
+ ResponseEntity<BaseResponse> response = null;
+ try {
+ // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response.getBody();
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋�
+ * @param po
+ * @return
+ */
+ protected BaseResponse dealWithCommandResult(Param po) {
+ Long comId = po.getComId();
+ String commandCode = po.getCommandCode();
+ Long intakeId = po.getIntakeId();
+ String rtuAddr = po.getRtuAddr();
+ String protocol = po.getProtocol();
+ Object param = po.getParam();
+ String rtuResultSendWebUrl = po.getRtuResultSendWebUrl();
+ Long operator = po.getOperator();
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ //commandSv.insert(rmCommandHistory);
+ rmCommandHistoryMapper.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟澶辫触
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ //commandSv.updateCommandResult(rmCommandHistory);
+ rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛锛岃繑鍥炲洖璋冨唴瀹�
+ */
+ 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"));
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/dto/Param.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/dto/Param.java
new file mode 100644
index 0000000..e1541f7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/dto/Param.java
@@ -0,0 +1,32 @@
+package com.dy.pipIrrGlobal.command.dto;
+
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-04 11:25
+ * @LastEditTime 2024-06-04 11:25
+ * @Description
+ */
+
+@Data
+public class Param {
+ public static final long serialVersionUID = 202406041126001L;
+
+ private Long comId;
+
+ private String commandCode;
+
+ private Long intakeId;
+
+ private String rtuAddr;
+
+ private String protocol;
+
+ private Object param;
+
+ private String rtuResultSendWebUrl;
+
+ private Long operator;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/result/CommandResultCode.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/result/CommandResultCode.java
new file mode 100644
index 0000000..6671501
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/result/CommandResultCode.java
@@ -0,0 +1,29 @@
+package com.dy.pipIrrGlobal.command.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 14:54
+ * @LastEditTime 2024-05-07 14:54
+ * @Description
+ */
+@Getter
+@AllArgsConstructor
+public enum CommandResultCode {
+ /**
+ * Valve
+ */
+ GET_RESULT_IN_ONE_MINUTE(10001,"1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉"),
+ GET_RESULT_ERROR(10002, "鑾峰彇缁撴灉寮傚父"),
+
+ /**
+ * RTU
+ */
+ RTU_NOT_EXIST(20001, "闃�鎺у櫒涓嶅瓨鍦�"),
+ RTU_ADDR_CANNOT_BE_NULL(20002, "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖");
+
+ private final Integer code;
+ private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
index 4b94e9e..7b1a76b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
@@ -88,16 +88,10 @@
Integer deleteIntakeId(@Param("controllerId") Long controllerId);
/**
- * 鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒瀵硅薄
+ * 鏍规嵁鍙栨按鍙D鎴栭榾鎺у櫒鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄
* @param intakeId
- * @return
- */
- PrController getControllerByIntakeId(Long intakeId);
-
- /**
- * 鏍规嵁RTU鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄
* @param rtuAddr
* @return
*/
- PrController getControllerByRtuAddr(String rtuAddr);
+ PrController getRtu(@Param("intakeId") Long intakeId, @Param("rtuAddr") String rtuAddr);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeVcMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeVcMapper.java
new file mode 100644
index 0000000..0182875
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeVcMapper.java
@@ -0,0 +1,35 @@
+package com.dy.pipIrrGlobal.daoPr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrIntakeVc;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-31 19:26
+ * @LastEditTime 2024-05-31 19:26
+ * @Description
+ */
+
+@Mapper
+public interface PrIntakeVcMapper extends BaseMapper<PrIntakeVc> {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(PrIntakeVc record);
+
+ int insertSelective(PrIntakeVc record);
+
+ PrIntakeVc selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(PrIntakeVc record);
+
+ int updateByPrimaryKey(PrIntakeVc record);
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D
+ * @param intakeId
+ * @return
+ */
+ Long getVcIdByIntakeId(@Param("intakeId") Long intakeId);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
index a38de92..48bc0a5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrGlobal.voRm.VoUnclosedParam;
import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -36,4 +37,11 @@
* @return
*/
List<VoUnclosedValve> getUnclosedValves(@Param("onLineMap") String onLineMap, @Param("operator") Long operator);
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @return
+ */
+ VoUnclosedParam getUncloseParam(Long intakeId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
index 3ca9a2f..7f24819 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.pipIrrGlobal.voSe.VoClient;
+import com.dy.pipIrrGlobal.voSe.VoClientWechat;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -105,4 +106,10 @@
*/
List<Map<String, Object>> getWaterTypes();
+ /**
+ * 鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤
+ * @param sessionId
+ * @return
+ */
+ VoClientWechat getSimpleClientInfo(@Param("sessionId") Long sessionId, @Param("openId") String openId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
index dce9429..ccd3b59 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
@@ -52,4 +52,10 @@
//Integer deleteByCardNum(@Param("cardNum") String cardNum);
Integer deleteByCardId(@Param("cardId") Long cardId);
+ /**
+ *鏍规嵁姘村崱id鑾峰彇鏈�杩戜竴鏉″厖鍊艰褰�
+ * @param cardId
+ * @return
+ */
+ SeRecharge selectByCardId(@Param("cardId") Long cardId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
index 0000ebb..a16b166 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
@@ -55,7 +55,6 @@
*/
@Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "鎺у埗鍣ㄥ湴鍧�涓嶈兘涓虹┖")
- @Length(message = "鎺у埗鍣ㄥ湴鍧�涓嶅ぇ浜巤max}瀛�",max = 11)
private String rtuAddr;
/**
@@ -63,7 +62,6 @@
*/
@Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
- @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25)
private String protocol;
/**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
index b133303..22a5e73 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
@@ -46,7 +46,6 @@
*/
@Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "鎺у埗鍣ㄥ湴鍧�涓嶈兘涓虹┖")
- @Length(message = "鎺у埗鍣ㄥ湴鍧�蹇呴』{max}浣�",min = 11, max = 11)
public String rtuAddr;
/**
@@ -54,7 +53,6 @@
*/
@Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
- @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25)
public String protocol;
/**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeVc.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeVc.java
new file mode 100644
index 0000000..071dbc2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeVc.java
@@ -0,0 +1,56 @@
+package com.dy.pipIrrGlobal.pojoPr;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-31 19:26
+ * @LastEditTime 2024-05-31 19:26
+ * @Description
+ */
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * 鍙栨按鍙h櫄鎷熷崱缁戝畾琛�
+ */
+
+@TableName(value="pr_intake_vc", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍙栨按鍙h櫄鎷熷崱缁戝畾瀹炰綋")
+public class PrIntakeVc implements BaseEntity {
+ public static final long serialVersionUID = 202405311931001L;
+
+ /**
+ * 涓婚敭
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ private Long id;
+
+ /**
+ * 鍙栨按鍙D
+ */
+ @Schema(description = "鍙栨按鍙D", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "鍙栨按鍙D涓嶈兘涓虹┖")
+ private Long intakeId;
+
+ /**
+ * 铏氭嫙鍗D
+ */
+ @Schema(description = "铏氭嫙鍗D", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "铏氭嫙鍗D涓嶈兘涓虹┖")
+ private Long vcId;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
index c99a127..22aac40 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
@@ -45,7 +45,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鎵�鍦ㄥ幙ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄥ幙涓嶈兘涓虹┖")
private Long countyid;
/**
@@ -53,7 +52,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鎵�鍦ㄩ晣ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄩ晣涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
private Long townid;
/**
@@ -61,7 +59,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
private Long villageid;
/**
@@ -69,7 +66,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
private Long blockid;
/**
@@ -77,7 +73,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鎵�鍦ㄥ垎姘存埧ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄥ垎姘存埧涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
private Long divideid;
/**
@@ -92,7 +87,6 @@
* 铏氭嫙鍗″彿;10浣嶏紝浠�1000000000寮�濮�
*/
@Schema(description = "铏氭嫙鍗″彿", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "铏氭嫙鍗″彿涓嶈兘涓虹┖")
private Long virtualid;
/**
@@ -100,7 +94,6 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED)
- //@NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
private String clientnum;
/**
@@ -108,14 +101,12 @@
*/
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@Schema(description = "鍖哄垝缂栫爜涓�", requiredMode = Schema.RequiredMode.REQUIRED)
- //@NotNull(message = "鍖哄垝缂栫爜涓蹭笉鑳戒负绌�")
private Long districtnum;
/**
* 鍖哄垝鍚嶇О涓�;鍘垮悕+闀囧悕+鏉戝悕锛岀敤浜庡綊灞炲湴
*/
@Schema(description = "鍖哄垝鍚嶇О涓�", requiredMode = Schema.RequiredMode.REQUIRED)
- //@NotBlank(message = "鍖哄垝鍚嶇О涓�")
private String districttitle;
/**
@@ -131,7 +122,7 @@
*/
@Schema(description = "鍐滄埛韬唤璇佸彿", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "鍐滄埛韬唤璇佸彿涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
- @Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
+ //@Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
private String idcard;
/**
@@ -150,14 +141,14 @@
* 琛楅亾鍙婇棬鐗屽彿
*/
@Schema(description = "琛楅亾+闂ㄧ墝鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 50)
+ @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", max = 50)
private String address;
/**
* 澶囨敞淇℃伅
*/
@Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+ @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", max = 200)
private String remarks;
/**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
index 0507bd1..70a0885 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
@@ -12,8 +12,9 @@
public enum Org {
- Ym("ym", "鍏冭皨"),
- Pj("pj", "鐗囪闀�") ;
+// Ym("ym", "鍏冭皨"),
+// Pj("pj", "鐗囪闀�"),
+ Jyg("ym", "鍢夊唱鍏�");
@EnumValue
public String tag ;
@@ -44,10 +45,13 @@
}
public static Org get(String tag){
- if(tag.equals(Ym.tag)){
- return Ym ;
- }else if(tag.equals(Pj.tag)){
- return Pj ;
+// if(tag.equals(Ym.tag) || tag.equals(Jyg.tag)){
+// return Ym ;
+// }else if(tag.equals(Pj.tag)){
+// return Pj ;
+// }
+ if( tag.equals(Jyg.tag)){
+ return Jyg ;
}
return null ;
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedParam.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedParam.java
new file mode 100644
index 0000000..422e9e2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedParam.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrGlobal.voRm;
+
+import com.dy.common.po.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-07 9:03
+ * @LastEditTime 2024-06-07 9:03
+ * @Description 鍏抽榾鎵�闇�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ */
+
+@Data
+public class VoUnclosedParam implements BaseEntity {
+ private static final long serialVersionUID = 202406070904001L;
+
+ private String rtuAddr;
+
+ private String orderNo;
+
+ private String vcNum;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClientWechat.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClientWechat.java
new file mode 100644
index 0000000..e30e534
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClientWechat.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.dy.common.po.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-03 11:40
+ * @LastEditTime 2024-06-03 11:40
+ * @Description 鍐滄埛瑙嗗浘瀵硅薄锛屽皬绋嬪簭浣跨敤
+ */
+
+@Data
+public class VoClientWechat implements BaseEntity {
+ private static final long serialVersionUID = 202406031142001L;
+
+ private String sessionId;
+
+ private String clientId;
+
+ private String clientName;
+
+ private String phone;
+
+ private String blockId;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
index 22cbe00..ee313a9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
@@ -5,7 +5,8 @@
#name: pj
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.91.73:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+# url: jdbc:mysql://192.168.91.73:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+ url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
username: root
password: dysql,;.abc!@#
druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 2c43ab8..87cffb8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,7 +5,8 @@
#name: ym
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.91.73:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+# url: jdbc:mysql://192.168.91.73:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+ url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
username: root
password: dysql,;.abc!@#
druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index 928d0a5..c0f940b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -168,10 +168,9 @@
SELECT
COUNT(*) AS recordCount
FROM pr_controller con
- INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
+ LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
INNER JOIN pr_intake inta ON con.intakeId = inta.id
<where>
- AND ic.operateType = 1
AND con.deleted = 0
<if test = "id != null and id > 0">
@@ -198,10 +197,9 @@
(SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
con.findDt AS findDt
FROM pr_controller con
- INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
+ LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
INNER JOIN pr_intake inta ON con.intakeId = inta.id
<where>
- AND ic.operateType = 1
AND con.deleted = 0
<if test = "id != null and id > 0">
@@ -252,13 +250,18 @@
SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL
</select>
- <!--鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒瀵硅薄-->
- <select id="getControllerByIntakeId" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
- SELECT * FROM pr_controller WHERE deleted = 0 AND intakeId = #{intakeId} LIMIT 0,1
- </select>
-
- <!--鏍规嵁RTU鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄-->
- <select id="getControllerByRtuAddr" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
- SELECT * FROM pr_controller WHERE deleted = 0 AND rtuAddr = #{rtuAddr} LIMIT 0,1
+ <!--鏍规嵁鍙栨按鍙D鎴栭榾鎺у櫒鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄-->
+ <select id="getRtu" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
+ SELECT * FROM pr_controller
+ <where>
+ AND deleted = 0
+ <if test = "intakeId != null">
+ AND intakeId = #{intakeId}
+ </if>
+ <if test = "rtuAddr != null">
+ AND rtuAddr = #{rtuAddr}
+ </if>
+ </where>
+ LIMIT 0,1
</select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 5560dca..1d5434d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -421,7 +421,7 @@
rtus.isOnLine
FROM pr_controller con
INNER JOIN pr_intake inta ON con.intakeId = inta.id
- INNER JOIN rm_command_history com ON con.rtuAddr = com.rtuAddr
+ INNER JOIN rm_command_history com ON con.rtuAddr = com.rtu_addr
INNER JOIN JSON_TABLE(
<!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
#{onLineMap},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeVcMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeVcMapper.xml
new file mode 100644
index 0000000..afe2297
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeVcMapper.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrIntakeVc">
+ <!--@mbg.generated-->
+ <!--@Table pr_intake_vc-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+ <result column="vc_id" jdbcType="BIGINT" property="vcId" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, intake_id, vc_id
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from pr_intake_vc
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from pr_intake_vc
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeVc">
+ <!--@mbg.generated-->
+ insert into pr_intake_vc (id, intake_id, vc_id
+ )
+ values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{vcId,jdbcType=BIGINT}
+ )
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeVc">
+ <!--@mbg.generated-->
+ insert into pr_intake_vc
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="intakeId != null">
+ intake_id,
+ </if>
+ <if test="vcId != null">
+ vc_id,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="intakeId != null">
+ #{intakeId,jdbcType=BIGINT},
+ </if>
+ <if test="vcId != null">
+ #{vcId,jdbcType=BIGINT},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeVc">
+ <!--@mbg.generated-->
+ update pr_intake_vc
+ <set>
+ <if test="intakeId != null">
+ intake_id = #{intakeId,jdbcType=BIGINT},
+ </if>
+ <if test="vcId != null">
+ vc_id = #{vcId,jdbcType=BIGINT},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeVc">
+ <!--@mbg.generated-->
+ update pr_intake_vc
+ set intake_id = #{intakeId,jdbcType=BIGINT},
+ vc_id = #{vcId,jdbcType=BIGINT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+
+ <!--鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D-->
+ <select id="getVcIdByIntakeId" resultType="java.lang.Long">
+ SELECT vc_id AS vcId FROM pr_intake_vc WHERE intake_id = #{intakeId} LIMIT 0,1
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index 68dc960..aee1cf2 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -203,8 +203,46 @@
isOnLine BOOLEAN PATH '$.isOnLine'
)
) rtus ON com.rtu_addr = rtus.rtuAddr
- WHERE (com.command_code = '92' OR com.command_code = 'A2') AND com.operator = #{operator}
- AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo')
+ <where>
+ AND (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97')
+ AND com.operator = #{operator}
+ AND NOT EXISTS (
+ SELECT *
+ FROM rm_command_history
+ WHERE (result IS NULL OR result = 1 )
+ AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
+ AND param ->>'$.orderNo' = com.param ->>'$.orderNo'
+ )
+ </where>
ORDER BY com.send_time DESC
</select>
+
+ <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
+ <select id="getUncloseParam" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam">
+ SELECT
+ com.rtu_addr AS rtuAddr,
+ com.param ->>'$.orderNo' AS orderNo,
+ com.param ->>'$.icCardNo' AS vcNum
+ FROM rm_command_history com
+ INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr
+ INNER JOIN pr_intake inta ON con.intakeId = inta.id
+ INNER JOIN JSON_TABLE(
+ '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',
+ '$[*]' COLUMNS(
+ rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+ isOnLine BOOLEAN PATH '$.isOnLine'
+ )
+ ) rtus ON com.rtu_addr = rtus.rtuAddr
+ WHERE (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97') AND con.intakeId = #{intakeId}
+ AND NOT EXISTS (
+ SELECT *
+ FROM rm_command_history
+ WHERE (result IS NULL OR result = 1 )
+ AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
+ AND param ->>'$.orderNo' = com.param ->>'$.orderNo'
+ )
+ ORDER BY com.send_time DESC
+ LIMIT 0,1
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index 7adaf21..674f25f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -436,4 +436,26 @@
SELECT id, typeName from se_water_type
</select>
+ <!--鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤-->
+ <select id="getSimpleClientInfo" resultType="com.dy.pipIrrGlobal.voSe.VoClientWechat">
+ SELECT
+ CAST(ope.id AS char) AS sessionId,
+ CAST(cli.id AS char) AS clientId,
+ cli.name AS clientName,
+ cli.phone,
+ CAST(cli.blockId AS char) AS blockId
+ FROM se_open_id ope
+ INNER JOIN se_client cli ON ope.client_id = cli.id
+ <where>
+ <if test = "sessionId != null">
+ AND ope.id = #{sessionId}
+ </if>
+
+ <if test = "openId != null">
+ AND ope.open_id = #{openId}
+ </if>
+ </where>
+ LIMIT 0,1
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
index e7edb52..42cb6b4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
@@ -264,4 +264,13 @@
</if>
</trim>
</select>
+
+ <select id="selectByCardId" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List" />
+ from se_recharge
+ where cardId = #{cardId,jdbcType=BIGINT}
+ ORDER BY operateDt DESC
+ limit 0,1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
index e29e335..ed500d9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
@@ -1,7 +1,5 @@
package com.dy.rtuMw.server.local.localProtocol;
-import com.dy.rtuMw.server.forTcp.TcpSessionCache;
-
import java.util.HashMap;
public class RtuOnLineDeal {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java
index cff7e63..d6745f0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java
@@ -1,9 +1,6 @@
package com.dy.pipIrrMwTestWeb.test;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.CommandType;
import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
-import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo;
import com.dy.common.webUtil.BaseResponse;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
index b5fb236..31be279 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
@@ -205,9 +205,9 @@
public BaseResponse<JSONArray> getNoBindingIntakes() {
try {
JSONArray array = controllerSv.getNoBindingIntakes();
- if (array.size() <= 0) {
- return BaseResponseUtils.buildFail(ProjectResultCode.NO_BINDING_INTAKE.getMessage());
- }
+// if (array.size() <= 0) {
+// return BaseResponseUtils.buildFail(ProjectResultCode.NO_BINDING_INTAKE.getMessage());
+// }
return BaseResponseUtils.buildSuccess(array);
} catch (Exception e) {
log.error("鏌ヨ鎺у埗鍣ㄥ紓甯�", e);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index 32ae257..90767c5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -165,4 +165,24 @@
}
return array;
}
+
+ /**
+ * 鏍规嵁鎺у埗鍣ㄧ紪鍙风墿鐞嗗垹闄ゆ帶鍒�
+ *2024-6-7
+ * @param controllerId
+ * @return
+ */
+ public Integer deleteControllerByIdTwo(Long controllerId) {
+ return prControllerMapper.deleteByPrimaryKey(controllerId);
+ }
+
+ /**
+ * 鏍规嵁涓婚敭鏌ヨ鎺у埗鍣ㄥ垪琛�
+ *2024-6-7
+ * @param controllerId
+ * @return
+ */
+ public PrController getByControllerId(Long controllerId) {
+ return prControllerMapper.selectByPrimaryKey(controllerId);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java
index 032631f..6d73906 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java
@@ -9,7 +9,9 @@
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoPr.PrIntake;
import com.dy.pipIrrGlobal.voPr.VoIntake;
+import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import com.dy.pipIrrProject.intake.qo.OnLineIntakesQO;
import com.dy.pipIrrProject.result.ProjectResultCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -276,4 +278,38 @@
String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
}
+
+ /**
+ * 鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄧ嚎锛�
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "all_intakes")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoOnLineIntake>>> getAllIntakes(OnLineIntakesQO qo) {
+ try {
+ QueryResultVo<List<VoOnLineIntake>> res = intakeSv.selectOnLineIntakes(qo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ鍙栨按鍙e紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
+
+ /**
+ * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛锛堝湪绾垮拰涓嶅湪绾匡級
+ * @param operator
+ * @return
+ */
+ @GetMapping(path = "used_intakes")
+ @SsoAop()
+ public BaseResponse<List<VoOnLineIntake>> getUsedIntakes(Long operator) {
+ try {
+ List<VoOnLineIntake> res = intakeSv.getUsedIntakes(operator);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ鍙栨按鍙e紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
index 7fd8e0b..6e3d971 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
@@ -1,19 +1,30 @@
package com.dy.pipIrrProject.intake;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrDivideMapper;
import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
import com.dy.pipIrrGlobal.pojoPr.PrIntake;
import com.dy.pipIrrGlobal.voPr.VoIntake;
+import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
+import com.dy.pipIrrProject.intake.qo.OnLineIntakesQO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
/**
* @author wuzeyu
@@ -27,8 +38,15 @@
public class IntakeSv {
@Autowired
private PrIntakeMapper prIntakeMapper;
+
@Autowired
private PrDivideMapper prDivideMapper;
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
+
/**
* 娣诲姞鍙栨按鍙�
@@ -179,4 +197,93 @@
public int getLevelByRegionId(long regionId) {
return prIntakeMapper.getLevelByRegionId(regionId);
}
+
+ /**
+ * 鑾峰彇鍙栨按鍙e垪琛�
+ * @return
+ */
+ public QueryResultVo<List<VoOnLineIntake>> selectOnLineIntakes(OnLineIntakesQO qo) {
+ Command com = new Command() ;
+ com.id = Command.defaultId;
+ com.code = "LCD0001";
+ com.type = "innerCommand";
+
+ JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+ if(response != null && response.getString("code").equals("0001")) {
+ JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
+ HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
+
+ JSONArray jsonArray = new JSONArray();
+ for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("rtuAddr", entry.getKey());
+ jsonObject.put("isOnLine", entry.getValue());
+ jsonArray.add(jsonObject);
+ }
+
+ qo.setOnLineMap(jsonArray.toJSONString());
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+ Long itemTotal = prIntakeMapper.getOnLineIntakesCount(params);
+
+ QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>() ;
+ rsVo.pageSize = qo.pageSize ;
+ rsVo.pageCurr = qo.pageCurr ;
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = prIntakeMapper.getOnLineIntakes(params);
+ return rsVo;
+ } else {
+ QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
+ return rsVo;
+ }
+ }
+
+ /**
+ * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
+ * @param operator
+ * @return
+ */
+ public List<VoOnLineIntake> getUsedIntakes(Long operator) {
+ Command com = new Command() ;
+ com.id = Command.defaultId;
+ com.code = "LCD0001";
+ com.type = "innerCommand";
+ JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+ if(response != null && response.getString("code").equals("0001")) {
+ JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
+ HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
+
+ JSONArray jsonArray = new JSONArray();
+ for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("rtuAddr", entry.getKey());
+ jsonObject.put("isOnLine", entry.getValue());
+ jsonArray.add(jsonObject);
+ }
+ return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator);
+ } else {
+ return new ArrayList<>();
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠�
+ * @return
+ */
+ protected BaseResponse sendCom2Mw(Command com){
+ String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
+ ResponseEntity<BaseResponse> response = null;
+ try {
+ // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response.getBody();
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java
new file mode 100644
index 0000000..aebcdd0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/qo/OnLineIntakesQO.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrProject.intake.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-27 20:32
+ * @LastEditTime 2024-05-27 20:32
+ * @Description
+ */
+
+@Data
+public class OnLineIntakesQO extends QueryConditionVo {
+ /**
+ * 涓棿浠惰繑鍥炵殑RTU鍦ㄧ嚎鎯呭喌瀵硅薄鏁扮粍
+ */
+ private String onLineMap;
+
+ /**
+ * 鍙栨按鍙g紪鍙�
+ */
+ private String intakeNum;
+
+ /**
+ * 鏄惁鍦ㄧ嚎
+ */
+ @Max(value = 1,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
+ @Min(value = 0,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
+ private Boolean isOnLine;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
index c49197c..570adb8 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
@@ -36,7 +36,7 @@
* 澶囨敞淇℃伅
*/
@Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200)
+ @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", max = 200)
private String remarks;
/**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
index 252376c..fe3ca1a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -113,17 +113,18 @@
if (rec_addController == 0) {
return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
}
+// if (remarks != null || remarks !=""){
+// // 淇敼缁戝畾璁板綍
+// PrIntakeController prIntakeController = new PrIntakeController();
+// prIntakeController.setRemarks(remarks);
+// prIntakeController.setIntakeid(intakeId);
+//
+// Integer rec = Optional.ofNullable(intakeControllerSv.updateBindRecord(prIntakeController)).orElse(0);
+// if (rec == 0) {
+// return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
+// }
+// }
-
- // 淇敼缁戝畾璁板綍
- PrIntakeController prIntakeController = new PrIntakeController();
- prIntakeController.setRemarks(remarks);
- prIntakeController.setIntakeid(intakeId);
-
- Integer rec = Optional.ofNullable(intakeControllerSv.updateBindRecord(prIntakeController)).orElse(0);
- if (rec == 0) {
- return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
- }
// 鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙峰垹闄ゆ祦娴帶鍒跺櫒璁板綍
intakeControllerSv.deleteTrampController(trampControllerId);
@@ -176,13 +177,23 @@
Date operateTime = new Date();
prIntakeController.setOperatedt(operateTime);
prIntakeController.setOperatetype((byte) 2);
+ prIntakeController.setRemarks("瑙g粦");
Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0);
if (rec == 0) {
return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
}
-
- // 鍒犻櫎鎺у埗鍣ㄥ閿�
- Integer rec_deleteIntakeId = Optional.ofNullable(controllerSv.deleteIntakeId(po.getControllerId())).orElse(0);
+ //娣诲姞鍒版祦娴帶鍒跺櫒
+ PrController ControllerList = controllerSv.getByControllerId(po.getControllerId());
+ PrControllerTramp prControllerTramp = new PrControllerTramp();
+ prControllerTramp.setRtuAddr(ControllerList.getRtuAddr());
+ prControllerTramp.setProtocol(ControllerList.getProtocol());
+ prControllerTramp.setFindDt(new Date());
+ Integer rec_addControllerTramp = Optional.ofNullable(intakeControllerSv.addTrampController(prControllerTramp)).orElse(0);
+ if (rec_addControllerTramp == 0) {
+ return BaseResponseUtils.buildFail(ProjectResultCode.ADD_TRAMP_CONTROLLER_FAIL.getMessage());
+ }
+ // 鍒犻櫎鎺у埗鍣�
+ Integer rec_deleteIntakeId = Optional.ofNullable(controllerSv.deleteControllerByIdTwo(po.getControllerId())).orElse(0);
if (rec_deleteIntakeId == 0) {
return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java
deleted file mode 100644
index 7a81f76..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package com.dy.pipIrrRemote.common;
-
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.CommandType;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.p206V202404.CodeV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
-import com.dy.common.webUtil.BaseResponse;
-import com.dy.common.webUtil.BaseResponseUtils;
-import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
-import com.dy.pipIrrRemote.result.RemoteResultCode;
-import jakarta.annotation.PostConstruct;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.util.UriComponentsBuilder;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-05-21 15:30
- * @LastEditTime 2024-05-21 15:30
- * @Description
- */
-
-@Component
-public class ComSupport {
- //@NotNull
- //private final CommandSv commandSv;
-
- protected static String mwUrlTest = "http://127.0.0.1:8070/rtuMw/com/test" ;
- protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
-
- //protected static String rtuAddr = "37142501020100215" ;
- protected static String rtuResultSendWebUrl = "http://127.0.0.1:8081/remote/comRes/receive" ;
-
- protected static String controllerType = "57" ;//鎺у埗鍣ㄧ被鍨�
- protected static Integer projectNo = 100 ;//椤圭洰缂栫爜
-
- //protected static String icCardAddr = "04BEA5BB" ;//IC鍗″湴鍧�
- //protected static String icCardNo = "37142501020500001" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
- //protected String protocolName = ProtocolConstantV206V202404.protocolName;
-
- protected String commandTypeOuter = CommandType.outerCommand;
-
- // 瀛樺偍瀹炰緥鍖栫殑 CompletableFuture<Data> 瀵硅薄
- protected static Map<Long, Object> features = new HashMap<>();
- protected static Boolean setuped = false;
-
- @Autowired
- private RestTemplate restTemplate;
-
- @Autowired
- private BaSettingsMapper baSettingsMapper;
- public static ComSupport comSupport;
-
- /**
- * 寮曞叆BaSettingsMapper
- */
- @PostConstruct
- public void init() {
- comSupport = this;
- comSupport.baSettingsMapper = this.baSettingsMapper;
- }
-
- /**
- * 鑾峰彇绯荤粺閰嶇疆鍙傛暟
- */
- public void setUp() {
- //protocolName = comSupport.baSettingsMapper.getItemValue("protocolName");
- controllerType = comSupport.baSettingsMapper.getItemValue("controllerType");
- projectNo = Integer.parseInt(comSupport.baSettingsMapper.getItemValue("projectNo"));
- setuped = true;
- }
-
- protected ComCdXyVo comCdXyVo(){
- ComCdXyVo comVo = new ComCdXyVo() ;
- comVo.controllerType = controllerType ;
- comVo.projectNo = projectNo ;
- return comVo ;
- }
-
- /**
- * 鍒涘缓鍛戒护鏃ュ織瀵硅薄
- * @param comId 涓婚敭
- * @param commandCode 鍔熻兘鐮�
- * @param rtuAddr 闃�鎺у櫒鍦板潃
- * @param protocol 閫氳鍗忚鍚嶇О
- * @param param 鍙傛暟鏁版嵁
- * @param operator 鎿嶄綔鍛�
- * @return
- */
- protected RmCommandHistory getComHistory(Long comId, String commandCode, Long intakeId, String rtuAddr, String protocol, Object param, Long operator ) {
- RmCommandHistory rmCommandHistory = new RmCommandHistory();
- rmCommandHistory.setId(comId);
- rmCommandHistory.setCommandCode(commandCode);
- rmCommandHistory.setCommandName(CodeV202404.getCodeName(commandCode));
- rmCommandHistory.setIntakeId(intakeId);
- rmCommandHistory.setRtuAddr(rtuAddr);
- rmCommandHistory.setProtocol(protocol);
- rmCommandHistory.setParam((JSONObject) JSON.toJSON(param));
- rmCommandHistory.setSendTime(new Date());
- rmCommandHistory.setOperator(operator);
- return rmCommandHistory;
- }
-
- /**
- * 鏋勯�犲懡浠ゅ璞�
- * @param comId 鍛戒护ID
- * @param commandCode 鍔熻兘鐮�
- * @param rtuAddr RTU鍦板潃
- * @param param 鍙傛暟鏁版嵁
- * @return 鏋勯�犲ソ鐨勫懡浠ゅ璞�
- */
- protected Command command(Long comId, String commandCode, String rtuAddr, String protocol, Object param){
- Command com = new Command() ;
- com.id = String.valueOf(comId);
- com.code = commandCode ;
- com.rtuAddr = rtuAddr ;
-
- com.protocol = protocol;
- com.type = commandTypeOuter;
- com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
-
- com.param = param ;
-
- return com ;
- }
-
- /**
- * 澶勭悊鍥炶皟鍐呭
- * @param comId
- * @return
- */
- protected BaseResponse<Data> dealWithCallBack(Long comId) {
- CompletableFuture<Data> featureObject = new CompletableFuture<>();
- features.put(comId, featureObject);
- try {
- CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId);
- System.out.println("receive result ID:" + comId);
- Data resultData = feature.get(10, TimeUnit.SECONDS);
- features.remove(comId);
- String commandId = resultData.getCommandId();
- if(commandId.equals(comId)) {
- return BaseResponseUtils.buildSuccess(resultData);
- }else {
- return BaseResponseUtils.buildSuccess();
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_ERROR.getMessage());
- } catch (ExecutionException e) {
- e.printStackTrace();
- return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_ERROR.getMessage());
- } catch (TimeoutException e) {
- return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
- }
- }
-
- /**
- * 杩炴帴閫氫俊涓棿浠舵祴璇�
- * @return
- */
- protected BaseResponse sendTest(){
- String url = UriComponentsBuilder.fromUriString(mwUrlTest)
- .build()
- .toUriString();
- HttpHeaders headers = new HttpHeaders();
- HttpEntity<?> httpEntity = new HttpEntity<>(headers);
- ResponseEntity<BaseResponse> response = null;
- try {
- // 閫氳繃Get鏂瑰紡璋冪敤鎺ュ彛
- response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return response.getBody();
- }
-
- /**
- * 鍙戦�佸懡浠�
- * @return
- */
- protected BaseResponse sendCom2Mw(Command com){
- String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
- .build()
- .toUriString();
- HttpHeaders headers = new HttpHeaders();
- HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
- ResponseEntity<BaseResponse> response = null;
- try {
- // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
- response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return response.getBody();
- }
-
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
index 1ef8c8d..32c9029 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
@@ -3,6 +3,7 @@
import com.dy.common.mw.protocol.Data;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.command.ComSupport;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
@@ -25,10 +26,11 @@
public class CommandResultCtrl extends ComSupport {
@PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
public BaseResponse<String> receive(@RequestBody Data data) {
- String comId = "0";
+ Long comId = 0L;
if(data.getCommandId() != null) {
- comId = data.getCommandId();
+ comId = Long.parseLong(data.getCommandId());
}
+
CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId);
if(feature != null) {
feature.complete(data);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
index c640895..58b3bf7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -5,18 +5,19 @@
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
+import com.dy.pipIrrGlobal.command.ComSupport;
import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
+import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper;
+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.voPr.VoOnLineIntake;
+import com.dy.pipIrrGlobal.voRm.VoUnclosedParam;
import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
-import com.dy.pipIrrRemote.common.qo.OnLineIntakesQO;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -36,26 +37,26 @@
@RequiredArgsConstructor
public class CommandSv extends ComSupport {
private final RmCommandHistoryMapper rmCommandHistoryMapper;
- private final PrControllerMapper prControllerMapper;
private final SeVirtualCardMapper seVirtualCardMapper;
private final PrIntakeMapper prIntakeMapper;
+ private final PrWaterPriceMapper prWaterPriceMapper;
+ private final PrIntakeVcMapper prIntakeVcMapper;
/**
- * 鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒瀵硅薄
- * @param intakeId
+ * 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
+ * @param vcId
* @return
*/
- public PrController getControllerByIntakeId(Long intakeId) {
- return prControllerMapper.getControllerByIntakeId(intakeId);
+ public VoVirtualCard getVcById(Long vcId) {
+ return seVirtualCardMapper.getVcById(vcId);
}
/**
- * 鏍规嵁RTU鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄
- * @param rtuAddr
+ * 鑾峰彇姘翠环
* @return
*/
- public PrController getControllerByRtuAddr(String rtuAddr) {
- return prControllerMapper.getControllerByRtuAddr(rtuAddr);
+ public Double getPrice() {
+ return prWaterPriceMapper.getPrice();
}
/**
@@ -75,75 +76,6 @@
*/
public Integer update(RmCommandHistory po) {
return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
- }
-
- /**
- * 鑾峰彇鍙栨按鍙e垪琛�
- * @return
- */
- public QueryResultVo<List<VoOnLineIntake>> selectOnLineIntakes(OnLineIntakesQO qo) {
- Command com = new Command() ;
- com.id = Command.defaultId;
- com.code = "LCD0001";
- com.type = "innerCommand";
-
- JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
-
- if(response != null && response.getString("code").equals("0001")) {
- JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
- HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
-
- JSONArray jsonArray = new JSONArray();
- for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("rtuAddr", entry.getKey());
- jsonObject.put("isOnLine", entry.getValue());
- jsonArray.add(jsonObject);
- }
-
- qo.setOnLineMap(jsonArray.toJSONString());
- Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
- Long itemTotal = prIntakeMapper.getOnLineIntakesCount(params);
-
- QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>() ;
- rsVo.pageSize = qo.pageSize ;
- rsVo.pageCurr = qo.pageCurr ;
- rsVo.calculateAndSet(itemTotal, params);
- rsVo.obj = prIntakeMapper.getOnLineIntakes(params);
- return rsVo;
- } else {
- QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
- return rsVo;
- }
- }
-
- /**
- * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
- * @param operator
- * @return
- */
- public List<VoOnLineIntake> getUsedIntakes(Long operator) {
- Command com = new Command() ;
- com.id = Command.defaultId;
- com.code = "LCD0001";
- com.type = "innerCommand";
- JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
-
- if(response != null && response.getString("code").equals("0001")) {
- JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
- HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
-
- JSONArray jsonArray = new JSONArray();
- for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("rtuAddr", entry.getKey());
- jsonObject.put("isOnLine", entry.getValue());
- jsonArray.add(jsonObject);
- }
- return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator);
- } else {
- return new ArrayList<>();
- }
}
/**
@@ -171,6 +103,7 @@
jsonArray.add(jsonObject);
}
+ System.out.println(jsonArray);
List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
if(res != null) {
return res;
@@ -183,4 +116,30 @@
}
}
+ /**
+ * 淇敼鍛戒护鏃ュ織璁板綍锛屽洖璋冩姤閿欐椂灏嗗懡浠よ褰曠殑鎵ц缁撴灉鏀逛负澶辫触
+ * @param po
+ * @return
+ */
+ public Integer updateCommandResult(RmCommandHistory po) {
+ return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
+ }
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D
+ * @param intakeId
+ * @return
+ */
+ public Long getVcIdByIntakeId(Long intakeId) {
+ return prIntakeVcMapper.getVcIdByIntakeId(intakeId);
+ }
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @return
+ */
+ public VoUnclosedParam getUncloseParam(Long intakeId) {
+ return rmCommandHistoryMapper.getUncloseParam(intakeId);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveClose.java
index 2693079..783c779 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveClose.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveClose.java
@@ -35,8 +35,8 @@
/**
* 鐢ㄦ埛绫诲瀷 1-骞冲彴锛�2-APP
*/
- @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
- private Integer userType;
+ //@NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ //private Integer userType;
/**
* 鎿嶄綔浜�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveOpen.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveOpen.java
index 2074ba3..cc4a505 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveOpen.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/ValveOpen.java
@@ -1,6 +1,5 @@
package com.dy.pipIrrRemote.common.dto;
-import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
@@ -22,6 +21,6 @@
/**
* 鐢ㄦ埛绫诲瀷 1-骞冲彴锛�2-APP
*/
- @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
- private Integer userType;
+ //@NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ //private Integer userType;
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/enums/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/enums/LastOperateENUM.java
new file mode 100644
index 0000000..df99112
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/enums/LastOperateENUM.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrRemote.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-03-06 9:21
+ * @LastEditTime 2024-03-06 9:21
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum LastOperateENUM {
+ OPEN_ACCOUNT((byte)1, "寮�鎴�"),
+ RECHARGE((byte)2, "鍏呭��"),
+ CONSUME((byte)3, "娑堣垂"),
+ APPLY_REFUND((byte)4, "鐢宠閫�娆�"),
+ AUDIT_REFUND((byte)5, "閫�娆惧鏍�"),
+ REFUND((byte)6, "閫�娆�"),
+ OPEN_VALVE((byte)7, "寮�闃�"),
+ CLOSE_VALVE((byte)8, "鍏抽榾");
+
+ private final Byte code;
+ private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java
index f79a834..9aab06e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java
@@ -17,12 +17,15 @@
*/
GET_RESULT_IN_ONE_MINUTE(10001,"1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉"),
GET_RESULT_ERROR(10002, "鑾峰彇缁撴灉寮傚父"),
+ PLEASE_SELECT_A_VC(10003, "璇烽�夋嫨涓�寮犺櫄鎷熷崱"),
+ IN_USE_VC_CANNOT_OPEN_VALVE(10004, "浣跨敤涓櫄鎷熷崱涓嶈兘鐢ㄦ潵寮�闃�"),
+ VALVE_CLOSED(10005, "璇ュ彇姘村彛宸插叧闃�"),
/**
* RTU
*/
- RTU_NOT_EXIST(20001, "闃�鎺у櫒涓嶅瓨鍦�"),
- RTU_ADDR_CANNOT_BE_NULL(20002, "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖");
+ RTU_NOT_EXIST(20001, "闃�鎺у櫒涓嶅瓨鍦�");
+ //RTU_ADDR_CANNOT_BE_NULL(20002, "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖");
private final Integer code;
private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
index 5ffa204..5afe421 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
@@ -5,21 +5,20 @@
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.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
import com.dy.common.mw.protocol.p206V202404.CodeV202404;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
import com.dy.common.util.IDLongGenerator;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
-import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.command.ComSupport;
+import com.dy.pipIrrGlobal.command.dto.Param;
import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
-import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
-import com.dy.pipIrrRemote.common.ComSupport;
import com.dy.pipIrrRemote.common.CommandSv;
import com.dy.pipIrrRemote.common.dto.Addr;
import com.dy.pipIrrRemote.common.dto.DtoBase;
-import com.dy.pipIrrRemote.common.qo.OnLineIntakesQO;
import com.dy.pipIrrRemote.result.RemoteResultCode;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -29,12 +28,7 @@
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
import java.util.Objects;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
/**
* @author ZhuBaoMin
@@ -52,58 +46,7 @@
protected static String controllerType = "57";
private final IDLongGenerator idLongGenerator;
-
- /**
- * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌锛堜粎娴嬭瘯鐢級
- * @return
- */
- @GetMapping(path = "get_online")
- @SsoAop()
- public BaseResponse<Boolean> get_online() {
- Command com = new Command() ;
- com.id = Command.defaultId;
- com.code = "LCD0001";
- com.type = "innerCommand";
-
- JSONObject response = (JSONObject)JSON.toJSON(sendCom2Mw(com));
- JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
-
- return BaseResponseUtils.buildSuccess(attachment) ;
- }
-
- /**
- * 鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄧ嚎锛�
- * @param qo
- * @return
- */
- @GetMapping(path = "get_online_intakes")
- @SsoAop()
- public BaseResponse<QueryResultVo<List<VoOnLineIntake>>> getOnLineIntakes(OnLineIntakesQO qo) {
- try {
- QueryResultVo<List<VoOnLineIntake>> res = commandSv.selectOnLineIntakes(qo);
- return BaseResponseUtils.buildSuccess(res);
- } catch (Exception e) {
- log.error("鏌ヨ鍙栨按鍙e紓甯�", e);
- return BaseResponseUtils.buildException(e.getMessage());
- }
- }
-
- /**
- * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
- * @param operator
- * @return
- */
- @GetMapping(path = "used_intakes")
- @SsoAop()
- public BaseResponse<List<VoOnLineIntake>> getUsedIntakes(Long operator) {
- try {
- List<VoOnLineIntake> res = commandSv.getUsedIntakes(operator);
- return BaseResponseUtils.buildSuccess(res);
- } catch (Exception e) {
- log.error("鏌ヨ鍙栨按鍙e紓甯�", e);
- return BaseResponseUtils.buildException(e.getMessage());
- }
- }
+ private String rtuResultSendWebUrl = "http://127.0.0.1:8081/remote/comRes/receive" ;
/**
* 璁剧疆璁惧缁堢鍦板潃
@@ -122,55 +65,101 @@
Long intakeId = addr.getIntakeId();
String newRtuAddr = addr.getNewRtuAddr();
Long operator = addr.getOperator();
- String commandCode = CodeV202404.cd_10;
Long comId = idLongGenerator.generate();
+ // 鑾峰彇绯荤粺鍙傛暟
+ if(!setuped) {
+ setUp();
+ }
+
// 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
- PrController prController = commandSv.getControllerByIntakeId(intakeId);
- if(prController == null) {
+ JSONObject job_rtu = getRtu(intakeId, null);
+ if(job_rtu == null) {
return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
}
- String rtuAddr = prController.getRtuAddr();
- String protocol = prController.getProtocol();
+ String rtuAddr = job_rtu.getString("rtuAddr");
+ String protocol = job_rtu.getString("protocol");
- // 鍒涘缓瑙嗗浘
- ComCd10Vo param = new ComCd10Vo() ;
- param.controllerType = controllerType;
- param.projectNo =projectNo;
- param.rtuNewAddr = newRtuAddr;
+ String commandCode = null;
+ if(protocol.equals("p206V202404")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV202404.cd_10;
- // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
- comId = commandSv.insert(rmCommandHistory);
- System.out.println(comId);
+ // 鍒涘缓瑙嗗浘
+ ComCd10Vo param = new ComCd10Vo() ;
+ param.controllerType = controllerType;
+ param.projectNo =projectNo;
+ param.rtuNewAddr = newRtuAddr;
- // 鏋勯�犲懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
- sendCom2Mw(com);
+ // 鍙戦�佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋�
+ Param po = new Param();
+ po.setComId(comId);
+ po.setCommandCode(commandCode);
+ po.setIntakeId(intakeId);
+ po.setRtuAddr(rtuAddr);
+ po.setProtocol(protocol);
+ po.setParam(param);
+ po.setRtuResultSendWebUrl(rtuResultSendWebUrl);
+ po.setOperator(operator);
+ return dealWithCommandResult(po);
+ } else if(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_10;
- CompletableFuture<Data> featureObject = new CompletableFuture<>();
- features.put(comId, featureObject);
- try {
- CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId);
- Data resultData = feature.get(30, TimeUnit.SECONDS);
- features.remove(comId);
- String commandId = resultData.getCommandId();
- if(commandId.equals(comId)) {
- //futureValue = new CompletableFuture<>();
- return BaseResponseUtils.buildSuccess((JSONObject)JSON.toJSON(resultData.subData));
+ // 鍒涘缓瑙嗗浘
+ Com97Vo param = new Com97Vo() ;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ //鍥炶皟澶辫触
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛锛岃繑鍥炲洖璋冨唴瀹�
+ */
+ 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"));
}
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- } catch (TimeoutException e) {
- return BaseResponseUtils.buildFail("1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉");
+ } else {
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
}
-
-
- //return BaseResponseUtils.buildSuccess(resultData.toJson());
-
- return BaseResponseUtils.buildSuccess() ;
}
/**
@@ -193,12 +182,14 @@
Long comId = idLongGenerator.generate();
// 鍙栨按鍙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();
+ //PrController prController = commandSv.getControllerByIntakeId(intakeId);
+ //if(prController == null) {
+ // return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
+ //}
+ //String rtuAddr = prController.getRtuAddr();
+ //String protocol = prController.getProtocol();
+ String rtuAddr = "";
+ String protocol = "";
// 鍒涘缓瑙嗗浘
ComCdXyVo param = new ComCdXyVo();
@@ -206,11 +197,11 @@
param.projectNo = projectNo;
// 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, "",intakeId, rtuAddr, protocol, param, operator);
comId = commandSv.insert(rmCommandHistory);
// 鏋勯�犲懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
+ Command com = command(comId, commandCode,"", rtuAddr, protocol, param);
return sendCom2Mw(com);
}
}
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 a71c8f8..7e7def7 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
@@ -5,26 +5,28 @@
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.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo;
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.command.ComSupport;
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.VoUnclosedParam;
import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
-import com.dy.pipIrrRemote.common.ComSupport;
import com.dy.pipIrrRemote.common.CommandSv;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
import com.dy.pipIrrRemote.common.dto.ValveClose;
import com.dy.pipIrrRemote.common.dto.ValveOpen;
+import com.dy.pipIrrRemote.common.enums.LastOperateENUM;
import com.dy.pipIrrRemote.result.RemoteResultCode;
-import com.dy.pipIrrRemote.utils.RestTemplateUtils;
-import com.dy.pipIrrSell.virtualCard.enums.LastOperateENUM;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -34,12 +36,10 @@
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
-import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Objects;
-import java.util.Random;
/**
* @author ZhuBaoMin
@@ -49,19 +49,18 @@
*/
@Slf4j
-@Tag(name = "闃�闂ㄧ鐞�", description = "闃�闂ㄦ搷浣�")
+@Tag(name = "骞冲彴闃�鎺у櫒鎺у埗", description = "骞冲彴闃�鎺у櫒鎺у埗")
@RestController
@RequestMapping(path="valve")
@RequiredArgsConstructor
public class ValveCtrl extends ComSupport {
- private final RestTemplateUtils restTemplateUtils;
private final CommandSv commandSv;
private final SeVirtualCardMapper seVirtualCardMapper;
- private final PrWaterPriceMapper prWaterPriceMapper;
private final IDLongGenerator idLongGenerator;
+ private String rtuResultSendWebUrl = "http://127.0.0.1:8081/remote/comRes/receive" ;
/**
- * 杩滅▼寮�闃�锛堝钩鍙般�丄PP锛�
+ * 骞冲彴杩滅▼寮�闃�
* @param valve
* @param bindingResult
* @return
@@ -77,9 +76,20 @@
Long intakeId = valve.getIntakeId();
Long vcId = valve.getVcId();
- Integer userType = valve.getUserType();
Long operator = valve.getOperator();
Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildFail(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
// 鑾峰彇绯荤粺鍙傛暟
if(!setuped) {
@@ -87,39 +97,32 @@
}
// 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
- VoVirtualCard vc = seVirtualCardMapper.getVcById(vcId);
+ VoVirtualCard vc = commandSv.getVcById(vcId);
+ if(vc == null) {
+ return BaseResponseUtils.buildFail(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ if(vc.getInUse() == 1) {
+ return BaseResponseUtils.buildFail(RemoteResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
+ }
+
// 鑾峰彇姘翠环
- Double waterPrice = prWaterPriceMapper.getPrice();
+ Double waterPrice = commandSv.getPrice();
// 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
- PrController prController = commandSv.getControllerByIntakeId(intakeId);
- if(prController == null) {
+ JSONObject job_rtu = getRtu(intakeId, null);
+ if(job_rtu == null) {
return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
}
- String rtuAddr = prController.getRtuAddr();
- String protocol = prController.getProtocol();
+ String rtuAddr = job_rtu.getString("rtuAddr");
+ String protocol = job_rtu.getString("protocol");
// 鐢熸垚璁㈠崟鍙�
- LocalDateTime dateTime = LocalDateTime.now();
- Random random = new Random();
- String CHARACTERS = "0123456789";
- StringBuilder sb = new StringBuilder(4);
- for (int i = 0; i < 4; i++) {
- int index = random.nextInt(CHARACTERS.length());
- sb.append(CHARACTERS.charAt(index));
- }
- String orderNo = dtf.format(dateTime) + sb.toString();
+ String orderNo = generateOrderNo();
String commandCode = null;
if(protocol.equals("p206V202404")) {
// 鑾峰彇鍔熻兘鐮�
- if(userType == 1) {
- // 骞冲彴寮�闃�
- commandCode = CodeV202404.cd_92;
- }else {
- // APP寮�闃�
- commandCode = CodeV202404.cd_A2;
- }
+ commandCode = CodeV202404.cd_92;
// 鍒涘缓瑙嗗浘
ComCd92_A2Vo param = new ComCd92_A2Vo();
@@ -133,25 +136,152 @@
param.orderNo = orderNo;
// 鏋勯�犲懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
// 鍙戦�佸懡浠�
JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
- //if(1 > 0) {
+ //if(1 > 0) {
// 璇锋眰鎴愬姛
// 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, 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());
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ //rmCommandHistory = new RmCommandHistory();
+ //rmCommandHistory.setId(comId);
+ //rmCommandHistory.setResult((byte)0);
+ //commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
}
- // 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ //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);
+
+ JSONObject job_response = new JSONObject();
+ job_response.put("rtuAddr", rtuAddr);
+ job_response.put("vcNum", vc.getVcNum());
+ job_response.put("orderNo", orderNo);
+ //job_response.put("operator", operator);
+ return BaseResponseUtils.buildSuccess(job_response);
+ } else {
+ // 璇锋眰澶辫触
+ JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param");
+ return BaseResponseUtils.buildFail(job_param.getString("message"));
+ }
+ } else if(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_92;
+
+ // 鍒涘缓瑙嗗浘
+ Com97Vo param = new Com97Vo() ;
+ param.icCardNo = vc.getVcNum();
+ param.moneyRemain = vc.getMoney();
+ param.waterPrice = waterPrice;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ //鍥炶皟寮傚父
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟瓒呮椂
+ if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) {
+ /**
+ * 鍥炶皟瓒呮椂锛屾殏鏃惰涓烘墽琛屽け璐�
+ * 鍛戒护缃负澶辫触
+ * 铏氭嫙鍗′緷鏃т繚鎸佷娇鐢ㄤ腑鐨勭姸鎬�
+ * 涓嶈繑鍥炲叧闃�鍙傛暟
+ */
+
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 1);
+ //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+ //virtualCard.setLastOperateTime(new Date());
+ //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+
+ //JSONObject job_response = new JSONObject();
+ //job_response.put("message", RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ //job_response.put("rtuAddr", rtuAddr);
+ //job_response.put("vcNum", vc.getVcNum());
+ //job_response.put("orderNo", orderNo);
+ //return BaseResponseUtils.buildSuccess(job_response);
+ return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
SeVirtualCard virtualCard = new SeVirtualCard();
virtualCard.setId(vcId);
virtualCard.setInUse((byte) 1);
@@ -160,40 +290,29 @@
seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
// 鍥炶皟杩斿洖鐨勫唴瀹�
- Data myData = (Data)response_CallBack.getContent();
- return BaseResponseUtils.buildSuccess(myData) ;
+ //Data myData = (Data)response_CallBack.getContent();
+ //return BaseResponseUtils.buildSuccess(myData) ;
+
+ JSONObject job_response = new JSONObject();
+ job_response.put("message", "ok");
+ job_response.put("rtuAddr", rtuAddr);
+ job_response.put("vcNum", vc.getVcNum());
+ job_response.put("orderNo", orderNo);
+ //job_response.put("operator", operator);
+ return BaseResponseUtils.buildSuccess(job_response);
+
} else {
// 璇锋眰澶辫触
JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param");
return BaseResponseUtils.buildFail(job_param.getString("message"));
}
} else {
- // 鑾峰彇鍔熻兘鐮�
- if(userType == 1) {
- // 骞冲彴寮�闃�
- commandCode = "92";
- }else {
- // APP寮�闃�
- commandCode = "97";
- }
-
- // 鍒涘缓瑙嗗浘
- ComCd92_A2Vo param = new ComCd92_A2Vo();
-
- // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- //RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, protocol, param, operator);
- //comId = commandSv.insert(rmCommandHistory);
-
- // 鏋勯�犲苟鍙戦�佸懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
- sendCom2Mw(com);
-
- return BaseResponseUtils.buildSuccess();
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
}
}
/**
- * 杩滅▼鍏抽榾锛堝钩鍙般�丄PP锛�
+ * 骞冲彴杩滅▼鍏抽榾_鍙傛暟妯″紡
* @param valve
* @param bindingResult
* @return
@@ -210,7 +329,6 @@
String rtuAddr = valve.getRtuAddr();
String vcNum = valve.getVcNum();
String orderNo = valve.getOrderNo();
- Integer userType = valve.getUserType();
Long operator = valve.getOperator();
Long comId = idLongGenerator.generate();
@@ -220,23 +338,17 @@
}
// 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
- PrController prController = commandSv.getControllerByRtuAddr(rtuAddr);
- if(prController == null) {
+ JSONObject job_rtu = getRtu(null, rtuAddr);
+ if(job_rtu == null) {
return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
}
- Long intakeId = prController.getIntakeId();
- String protocol = prController.getProtocol();
+ Long intakeId = job_rtu.getLong("intakeId");
+ String protocol = job_rtu.getString("protocol");
String commandCode = null;
if(protocol.equals("p206V202404")) {
// 鑾峰彇鍔熻兘鐮�
- if (userType == 1) {
- // 骞冲彴鍏抽榾
- commandCode = CodeV202404.cd_93;
- } else {
- // APP鍏抽榾
- commandCode = CodeV202404.cd_A3;
- }
+ commandCode = CodeV202404.cd_93;
// 鍒涘缓瑙嗗浘
ComCd93_A3Vo param = new ComCd93_A3Vo();
@@ -246,7 +358,7 @@
param.orderNo = orderNo;
// 鏋勯�犲懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
// 鍙戦�佸懡浠�
JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
@@ -254,20 +366,131 @@
// 璇锋眰鎴愬姛
// 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, 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());
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ //rmCommandHistory = new RmCommandHistory();
+ //rmCommandHistory.setId(comId);
+ //rmCommandHistory.setResult((byte)0);
+ //commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildError(WechatResultCode.GET_RESULT_ERROR.getMessage());
}
- // 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //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(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_93;
+
+ // 鍒涘缓瑙嗗浘
+ Com98Vo param = new Com98Vo() ;
+ param.icCardNo = vcNum;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟寮傚父
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟瓒呮椂
+ if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) {
+ /**
+ * 鍥炶皟瓒呮椂锛屾殏鏃惰涓烘墽琛屽け璐�
+ * 鍛戒护缃负澶辫触
+ * 铏氭嫙鍗′緷鏃т繚鎸佷娇鐢ㄤ腑鐨勭姸鎬�
+ */
+
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+ //virtualCard.setLastOperateTime(new Date());
+ //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+ return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
SeVirtualCard virtualCard = new SeVirtualCard();
virtualCard.setId(vcId);
- virtualCard.setInUse((byte) 1);
+ virtualCard.setInUse((byte) 0);
virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
virtualCard.setLastOperateTime(new Date());
seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
@@ -281,14 +504,54 @@
return BaseResponseUtils.buildFail(job_param.getString("message"));
}
} else {
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
+ }
+ }
+
+ /**
+ * 骞冲彴杩滅▼鍏抽榾_鍙栨按鍙fā寮�
+ * @param dtoBase
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "close_intake", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> closeByIntake(@RequestBody @Valid DtoBase dtoBase, BindingResult bindingResult) {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss");
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ Long intakeId = dtoBase.getIntakeId();
+ Long operator = dtoBase.getOperator();
+
+ VoUnclosedParam voUnclosedParam = commandSv.getUncloseParam(intakeId);
+ if(voUnclosedParam == null) {
+ return BaseResponseUtils.buildSuccess(RemoteResultCode.VALVE_CLOSED.getMessage());
+ }
+ String rtuAddr = voUnclosedParam.getRtuAddr();
+ String vcNum = voUnclosedParam.getVcNum();
+ String orderNo = voUnclosedParam.getOrderNo();
+ Long comId = idLongGenerator.generate();
+
+ // 鑾峰彇绯荤粺鍙傛暟
+ if(!setuped) {
+ setUp();
+ }
+
+ // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
+ JSONObject job_rtu = getRtu(null, rtuAddr);
+ if(job_rtu == null) {
+ return BaseResponseUtils.buildError(RemoteResultCode.RTU_NOT_EXIST.getMessage());
+ }
+ //Long intakeId = job_rtu.getLong("intakeId");
+ String protocol = job_rtu.getString("protocol");
+
+ String commandCode = null;
+ if(protocol.equals("p206V202404")) {
// 鑾峰彇鍔熻兘鐮�
- if (userType == 1) {
- // 骞冲彴鍏抽榾
- commandCode = "93";
- } else {
- // APP鍏抽榾
- commandCode = "98";
- }
+ commandCode = CodeV202404.cd_93;
// 鍒涘缓瑙嗗浘
ComCd93_A3Vo param = new ComCd93_A3Vo();
@@ -297,32 +560,155 @@
param.icCardNo = vcNum;
param.orderNo = orderNo;
- // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
- RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, intakeId, rtuAddr, protocol, param, operator);
- comId = commandSv.insert(rmCommandHistory);
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
- // 鏋勯�犲苟鍙戦�佸懡浠�
- Command com = command(comId, commandCode, rtuAddr, protocol, param);
- sendCom2Mw(com);
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟澶辫触
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ //rmCommandHistory = new RmCommandHistory();
+ //rmCommandHistory.setId(comId);
+ //rmCommandHistory.setResult((byte)0);
+ //commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildError(WechatResultCode.GET_RESULT_ERROR.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //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(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_93;
+
+ // 鍒涘缓瑙嗗浘
+ Com98Vo param = new Com98Vo() ;
+ param.icCardNo = vcNum;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟寮傚父
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟瓒呮椂
+ if(response_CallBack.getContent().toString().equals(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) {
+ /**
+ * 鍥炶皟瓒呮椂锛屾殏鏃惰涓烘墽琛屽け璐�
+ * 鍛戒护缃负澶辫触
+ * 铏氭嫙鍗′緷鏃т繚鎸佷娇鐢ㄤ腑鐨勭姸鎬�
+ */
+
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.updateCommandResult(rmCommandHistory);
+
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+ //virtualCard.setLastOperateTime(new Date());
+ //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+ return BaseResponseUtils.buildFail(RemoteResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ SeVirtualCard virtualCard = new SeVirtualCard();
+ virtualCard.setId(vcId);
+ virtualCard.setInUse((byte) 0);
+ 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 {
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
}
-
- // 澶勭悊鍥炶皟
- BaseResponse response = dealWithCallBack(comId);
- if(!response.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) 0);
- virtualCard.setLastOperate(LastOperateENUM.CLOSE_VALVE.getCode());
- virtualCard.setLastOperateTime(new Date());
- seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
-
- Data myData = (Data)response.getContent();
- return BaseResponseUtils.buildSuccess(myData) ;
}
/**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java
deleted file mode 100644
index 0f4f645..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.dy.pipIrrRemote.valve.dto;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import org.hibernate.validator.constraints.Range;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-05-07 15:05
- * @LastEditTime 2024-05-07 15:05
- * @Description 杩滅▼寮�闃�銆佽繙绋嬪叧闃�浼犲叆瀵硅薄
- */
-
-@Data
-@Schema(name = "寮�鍏抽榾浼犲叆瀵硅薄")
-public class DTOValve {
- public static final long serialVersionUID = 202405071506001L;
-
- /**
- * 鍙栨按鍙D
- */
- @Schema(description = "鍙栨按鍙D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @NotNull(message = "鍙栨按鍙d笉鑳戒负绌�")
- private Long intakeId;
-
- /**
- * 铏氭嫙鍗D
- */
- @Schema(description = "铏氭嫙鍗D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @NotNull(message = "铏氭嫙鍗′笉鑳戒负绌�")
- private Long vcId;
-
- /**
- * 鎿嶄綔绫诲瀷锛�1-寮�闃�锛�2-鍏抽榾
- */
- @Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
- @Range(min = 1, max = 2)
- private Integer operateType;
-
- /**
- * 鎿嶄綔浜�
- */
- @Schema(description = "鎿嶄綔浜�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
- private Long operator;
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
index ab6a5cc..7c4e317 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
@@ -27,7 +27,7 @@
})
}
)
-@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa"})
+@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoPr"})
public class PipIrrSellApplication {
public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
index 66a999b..68b7405 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
@@ -15,6 +15,7 @@
import com.dy.pipIrrSell.clientCard.LastOperateENUM;
import com.dy.pipIrrSell.recharge.DtoRecharge;
import com.dy.pipIrrSell.recharge.RechargeCtrl;
+import com.dy.pipIrrSell.recharge.RechargeSv;
import com.dy.pipIrrSell.result.SellResultCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
@@ -48,6 +49,8 @@
private final ActiveCardSv activeCardSv;
private final ClientCardSv clientCardSv;
private final RechargeCtrl rechargeCtrl;
+ private final RechargeSv rechargeSv;
+
//@Value("${projectCode.ym}")
//private Integer projectCode;
@@ -223,6 +226,12 @@
}
Map map = new HashMap();
+ if(amount != null && amount > 0) {
+ Long rechargeId = rechargeSv.selectIdByCardId(cardId);
+ map.put("orderNumber",rechargeId+"");//杩斿洖鍏呭�糏D
+ }else {
+ map.put("orderNumber",rec+"");//杩斿洖寮�鍗D
+ }
//map.put("projectCode", projectCode);
map.put("projectCode", Constant.projectCode_ym);
map.put("cardNum", cardNum);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
index af54665..7d16dba 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -13,6 +13,7 @@
import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify;
import com.dy.pipIrrGlobal.pojoSe.SeOpenId;
import com.dy.pipIrrGlobal.voSe.VoClient;
+import com.dy.pipIrrGlobal.voSe.VoClientWechat;
import com.dy.pipIrrSell.client.dto.CodeVerifyDTO;
import com.dy.pipIrrSell.result.SellResultCode;
import com.dy.pipIrrSell.sms.AliyunSmsSv;
@@ -353,6 +354,55 @@
}
/**
+ * 鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�
+ * @param villageId
+ * @return
+ */
+ @Operation(summary = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�", description = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = Boolean.class))}
+ )
+ })
+ @GetMapping(path = "district")
+ @SsoAop()
+ public BaseResponse<Boolean> getDistrictNum(@RequestParam("villageId") @NotNull(message = "鏉戠紪鍙蜂笉鑳戒负绌�") Long villageId){
+ /**
+ * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
+ */
+ Map map_districts = Optional.ofNullable(clientSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
+ if(map_districts.size() <= 0) {
+ return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+ }
+
+ String provinceNum = map_districts.get("provinceNum").toString();
+ String cityNum = map_districts.get("cityNum").toString();
+ String countyNum = map_districts.get("countyNum").toString();
+ String townNum = map_districts.get("townNum").toString();
+ String villageNum = map_districts.get("villageNum").toString();
+
+ // 鐢熸垚12浣�5绾ц鏀垮尯鍒掔紪鐮佷覆鍙婂悕绉颁覆
+ Long districtNum = Long.parseLong(provinceNum + cityNum + countyNum + townNum + villageNum);
+ //鑾峰彇椤圭洰缂栫爜
+ String projectNo = clientSv.getItemValue("projectNo");
+ //杞负int
+ Integer projectNo1 = Integer.valueOf(projectNo);
+ //杞负16杩涘埗
+// String projectNo2 = Integer.toHexString(projectNo1);
+// log.info(projectNo2);
+ String projectNo3 = String.format("%02x", projectNo1);
+ log.info(projectNo3);
+
+ Map map = new HashMap();
+ map.put("districtNum", districtNum);
+ map.put("projectNo",projectNo3);
+ return BaseResponseUtils.buildSuccess(map);
+ }
+
+ /**
* 鍙戦�侀獙璇佺爜
* @param phoneNumber
* @return
@@ -479,51 +529,53 @@
}
/**
- * 鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�
- * @param villageId
+ * 鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤
+ * @param sessionId
* @return
*/
- @Operation(summary = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�", description = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�")
- @ApiResponses(value = {
- @ApiResponse(
- responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
- description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
- content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
- schema = @Schema(implementation = Boolean.class))}
- )
- })
- @GetMapping(path = "district")
+ @GetMapping(path = "/simple_info")
@SsoAop()
- public BaseResponse<Boolean> getDistrictNum(@RequestParam("villageId") @NotNull(message = "鏉戠紪鍙蜂笉鑳戒负绌�") Long villageId){
- /**
- * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
- */
- Map map_districts = Optional.ofNullable(clientSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
- if(map_districts.size() <= 0) {
- return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+ public BaseResponse<VoClientWechat> getSimpleClientInfo(@RequestParam Long sessionId){
+ try {
+ VoClientWechat res = clientSv.getSimpleClientInfo(sessionId, null);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ鍐滄埛寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鐧诲綍鍑瘉鐧诲綍
+ * @param code 涓存椂鐧诲綍鍑瘉
+ * @return
+ */
+ @GetMapping(path = "/code_login")
+ @SsoAop()
+ public BaseResponse<VoClientWechat> codeLogin(@RequestParam String code) throws IOException {
+
+ // 鐧诲綍鍑瘉鏍¢獙
+ Map<String, Object> queryParams = new HashMap<>();
+ queryParams.put("appid", appid);
+ queryParams.put("secret", secret);
+ queryParams.put("js_code", code);
+ queryParams.put("grant_type", grantType);
+ Map<String, String> headerParams = new HashMap<>();
+ JSONObject job = restTemplateUtil.get(loginUrl, queryParams, headerParams);
+
+ String openId = job.getString("openid");
+ if(openId == null) {
+ return BaseResponseUtils.buildFail(SellResultCode.LOGIN_FAIL.getMessage());
}
- String provinceNum = map_districts.get("provinceNum").toString();
- String cityNum = map_districts.get("cityNum").toString();
- String countyNum = map_districts.get("countyNum").toString();
- String townNum = map_districts.get("townNum").toString();
- String villageNum = map_districts.get("villageNum").toString();
-
- // 鐢熸垚12浣�5绾ц鏀垮尯鍒掔紪鐮佷覆鍙婂悕绉颁覆
- Long districtNum = Long.parseLong(provinceNum + cityNum + countyNum + townNum + villageNum);
- //鑾峰彇椤圭洰缂栫爜
- String projectNo = clientSv.getItemValue("projectNo");
- //杞负int
- Integer projectNo1 = Integer.valueOf(projectNo);
- //杞负16杩涘埗
-// String projectNo2 = Integer.toHexString(projectNo1);
-// log.info(projectNo2);
- String projectNo3 = String.format("%02x", projectNo1);
- log.info(projectNo3);
-
- Map map = new HashMap();
- map.put("districtNum", districtNum);
- map.put("projectNo",projectNo3);
- return BaseResponseUtils.buildSuccess(map);
+ try {
+ VoClientWechat res = clientSv.getSimpleClientInfo(null, openId);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ鍐滄埛寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
}
+
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
index 77e891b..a816627 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
@@ -10,6 +10,7 @@
import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify;
import com.dy.pipIrrGlobal.pojoSe.SeOpenId;
import com.dy.pipIrrGlobal.voSe.VoClient;
+import com.dy.pipIrrGlobal.voSe.VoClientWechat;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -78,7 +79,7 @@
* @return
*/
public Integer addClient(SeClient po) {
- return seClientMapper.insert(po);
+ return seClientMapper.insertSelective(po);
}
/**
@@ -184,4 +185,13 @@
public String getItemValue(String itemName) {
return baSettingsMapper.getItemValue(itemName);
}
+
+ /**
+ * 鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤
+ * @param sessionId
+ * @return
+ */
+ public VoClientWechat getSimpleClientInfo(Long sessionId, String openId) {
+ return seClientMapper.getSimpleClientInfo(sessionId, openId);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java
index fc3ce80..1cca228 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java
@@ -31,21 +31,21 @@
* 鏉慖D
*/
@Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
+ //@NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
private Long villageId;
/**
* 鐗囧尯ID
*/
@Schema(description = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�")
+ //@NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�")
private Long blockId;
/**
* 鍒嗘按鎴縄D
*/
@Schema(description = "鎵�鍦ㄥ垎姘存埧ID", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "鎵�鍦ㄥ垎姘存埧涓嶈兘涓虹┖")
+ //@NotNull(message = "鎵�鍦ㄥ垎姘存埧涓嶈兘涓虹┖")
private Long divideId;
/**
@@ -68,8 +68,8 @@
* 韬唤璇佸彿
*/
@Schema(description = "鍐滄埛韬唤璇佸彿", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotBlank(message = "鍐滄埛韬唤璇佸彿涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
- @Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
+ //@NotBlank(message = "鍐滄埛韬唤璇佸彿涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+ //@Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
private String idCard;
/**
@@ -88,14 +88,14 @@
* 琛楅亾鍙婇棬鐗屽彿
*/
@Schema(description = "琛楅亾+闂ㄧ墝鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 50)
+ @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", max = 50)
private String address;
/**
* 澶囨敞淇℃伅
*/
@Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+ @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", max = 200)
private String remarks;
/**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
index ce11f65..f3138c9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
@@ -8,6 +8,7 @@
import com.dy.pipIrrGlobal.voSe.VoRecharge;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
+import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -97,4 +98,13 @@
return po.getId();
}
+ /**
+ * 鏍规嵁姘村崱id鑾峰彇鏈�杩戜竴鏉″厖鍊艰褰昳d
+ * @param cardId
+ * @return
+ */
+ public Long selectIdByCardId(Long cardId){
+ SeRecharge seRecharge = seRechargeMapper.selectByCardId(cardId);
+ return seRecharge.getId();
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
index 48e66b5..f991269 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
@@ -135,7 +135,12 @@
NO_SECURITY_CODE_FOR_PHONE(20002, "璇ユ墜鏈哄彿鏈彂閫侀獙璇佺爜"),
SECURITY_CODE_ERROR(20003, "楠岃瘉鐮侀敊璇�"),
VALIDATION_TIMEOUT(20004, "楠岃瘉瓒呮椂"),
- PHONE_NUMBER_IS_ERROR(20004, "鎵嬫満鍙烽敊璇紝闈炴敞鍐屽啘鎴�");
+ PHONE_NUMBER_IS_ERROR(20004, "鎵嬫満鍙烽敊璇紝闈炴敞鍐屽啘鎴�"),
+
+ /**
+ * 灏忕▼搴�
+ */
+ LOGIN_FAIL(20004, "鐧诲綍澶辫触");
private final Integer code;
private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
index 4aad549..48e0a35 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
@@ -5,10 +5,7 @@
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.ResultCodeMsg;
-import com.dy.pipIrrGlobal.pojoSe.SeVcRefund;
-import com.dy.pipIrrGlobal.pojoSe.SeVcRefundItem;
-import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
-import com.dy.pipIrrGlobal.pojoSe.SeWebchatLogonState;
+import com.dy.pipIrrGlobal.pojoSe.*;
import com.dy.pipIrrGlobal.voSe.VoClient;
import com.dy.pipIrrSell.client.ClientSv;
import com.dy.pipIrrSell.result.SellResultCode;
@@ -123,22 +120,6 @@
String openid = job.getString("openid");
String sessionKey = job.getString("session_key");
- // 妫�楠岀櫥褰曟��
- //JSONObject checkSessionKey = payHelper.checkSessionKey(appid, secret, openid, sessionKey);
- //if(checkSessionKey != null) {
- // Integer errcode = checkSessionKey.getInteger("errcode");
- // String errmsg = checkSessionKey.getString("errmsg");
- //}
-
- // 閲嶇疆鐧诲綍鎬�
- //JSONObject resetUserSessionKey = payHelper.resetUserSessionKey(appid, secret, openid, sessionKey);
- //if(resetUserSessionKey != null) {
- // Integer errcode = checkSessionKey.getInteger("errcode");
- // String errmsg = checkSessionKey.getString("errmsg");
- // String openid_New = checkSessionKey.getString("openid");
- // String sessionKey_New = checkSessionKey.getString("session_key");
- //}
-
// 娣诲姞鐧诲綍鎬佽褰�
SeWebchatLogonState po = new SeWebchatLogonState();
po.setOpenId(openid);
@@ -204,7 +185,7 @@
* JSAPI涓嬪崟
* @param order 涓嬪崟璇锋眰瀵硅薄锛屽寘鍚渶瑕佷紶鍏ョ殑鍙傛暟
* @param bindingResult
- * @return
+ * @return 棰勬敮浠樹氦鏄撲細璇濇爣璇嗭紙鏈夋晥鏈�2灏忔椂锛�
*/
@Operation(summary = "JSAPI涓嬪崟", description = "JSAPI涓嬪崟")
@ApiResponses(value = {
@@ -223,12 +204,15 @@
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
// 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佸啘鎴稩D銆佽櫄鎷熷崱ID銆佸厖鍊奸噾棰�
- String sessionId = order.getSessionId();
+ Long sessionId = order.getSessionId();
Long virtualId = order.getVirtualId();
Integer rechargeAmount = order.getRechargeAmount();
String prepayId = "";
- SeWebchatLogonState po = paymentSv.selectOne(Long.parseLong(sessionId));
+ //SeWebchatLogonState po = paymentSv.selectOne(Long.parseLong(sessionId));
+ //String openid = po.getOpenId();
+
+ SeOpenId po = paymentSv.selectOne(sessionId);
String openid = po.getOpenId();
SeVirtualCard seVirtualCard = virtualCardSv.selectVirtuCardById(virtualId);
@@ -286,13 +270,11 @@
headers.put("Content-Type", "application/json");
// 鏆傛椂娉ㄩ噴鎺夛紝璁よ瘉閫氳繃鍚庡啀鏀惧紑
- //JSONObject job_result = restTemplateUtil.post(PayInfo.orderUrl, body, headers);
- //if(job_result != null) {
- // System.out.println(job_result.toString());
- // prepayId = job_result.getString("prepay_id");
- //}
-
- return BaseResponseUtils.buildSuccess(prepayId) ;
+ JSONObject job_result = restTemplateUtil.post(PayInfo.orderUrl, body, headers);
+ if(job_result == null) {
+ return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_ADD_FAIL.getMessage());
+ }
+ return BaseResponseUtils.buildSuccess(job_result) ;
}
/**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentSv.java
index de4d16d..6a3075d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentSv.java
@@ -1,7 +1,9 @@
package com.dy.pipIrrSell.wechatpay;
+import com.dy.pipIrrGlobal.daoSe.SeOpenIdMapper;
import com.dy.pipIrrGlobal.daoSe.SeVcRechargeMapper;
import com.dy.pipIrrGlobal.daoSe.SeWebchatLogonStateMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeOpenId;
import com.dy.pipIrrGlobal.pojoSe.SeVcRecharge;
import com.dy.pipIrrGlobal.pojoSe.SeWebchatLogonState;
import lombok.extern.slf4j.Slf4j;
@@ -24,6 +26,9 @@
@Autowired
private SeVcRechargeMapper seVcRechargeMapper;
+ @Autowired
+ private SeOpenIdMapper seOpenIdMapper;
+
/**
* 娣诲姞鐧诲綍鎬佺姸鎬佽褰�
* @param po
@@ -39,10 +44,14 @@
* @param id
* @return
*/
- SeWebchatLogonState selectOne(Long id) {
+ SeWebchatLogonState selectOne2(Long id) {
return seWebchatLogonStateMapper.selectByPrimaryKey(id);
}
+ SeOpenId selectOne(Long sessionId) {
+ return seOpenIdMapper.selectByPrimaryKey(sessionId);
+ }
+
/**
* 娣诲姞铏氭嫙鍗″厖鍊艰褰�
* @param po
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
index 407f244..66f726d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
@@ -1,7 +1,6 @@
package com.dy.pipIrrSell.wechatpay.dto;
import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@@ -21,8 +20,8 @@
* 鐧诲綍鎬両D锛岀敤鏉ヨ幏鍙杘penID
*/
@Schema(description = "鐧诲綍鎬両D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
- @NotBlank(message = "鐧诲綍鎬両D涓嶈兘涓虹┖")
- private String sessionId;
+ @NotNull(message = "鐧诲綍鎬両D涓嶈兘涓虹┖")
+ private Long sessionId;
/**
* 铏氭嫙鍗$紪鍙凤紝澶栭敭锛岀敤鏉ヨ幏鍙栬櫄鎷熷崱浣欓
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/pom.xml b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/pom.xml
index ce653f1..21a290a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/pom.xml
@@ -2,6 +2,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>com.dy</groupId>
+ <artifactId>pipIrr-web-sell</artifactId>
+ <version>1.0.0</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
<parent>
<artifactId>pipIrr-web</artifactId>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java
new file mode 100644
index 0000000..e5e2113
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java
@@ -0,0 +1,40 @@
+package com.dy.pipIrrWechat.command;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.command.ComSupport;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+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 java.util.concurrent.CompletableFuture;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-30 16:07
+ * @LastEditTime 2024-05-30 16:07
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="comRes")
+public class CommandResultCtrl extends ComSupport {
+ @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public BaseResponse<String> receive(@RequestBody Data data) {
+ Long comId = 0L;
+ if(data.getCommandId() != null) {
+ comId = Long.parseLong(data.getCommandId());
+ }
+
+ CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId);
+ if(feature != null) {
+ feature.complete(data);
+ }
+ return BaseResponseUtils.buildSuccess("ok");
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
new file mode 100644
index 0000000..beb671d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -0,0 +1,126 @@
+package com.dy.pipIrrWechat.command;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.command.ComSupport;
+import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
+import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper;
+import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
+import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-30 16:13
+ * @LastEditTime 2024-05-30 16:13
+ * @Description
+ */
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class CommandSv extends ComSupport {
+ private final RmCommandHistoryMapper rmCommandHistoryMapper;
+ private final SeVirtualCardMapper seVirtualCardMapper;
+ private final PrIntakeMapper prIntakeMapper;
+ private final PrWaterPriceMapper prWaterPriceMapper;
+ private final PrIntakeVcMapper prIntakeVcMapper;
+
+ /**
+ * 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
+ * @param vcId
+ * @return
+ */
+ public VoVirtualCard getVcById(Long vcId) {
+ return seVirtualCardMapper.getVcById(vcId);
+ }
+
+ /**
+ * 鑾峰彇姘翠环
+ * @return
+ */
+ public Double getPrice() {
+ return prWaterPriceMapper.getPrice();
+ }
+
+ /**
+ * 娣诲姞鍛戒护鏃ュ織
+ * @param po 鍛戒护鏃ュ織瀵硅薄
+ * @return 瀛楃涓茬被鍨嬬殑涓婚敭
+ */
+ public Long insert(RmCommandHistory po) {
+ rmCommandHistoryMapper.insert(po);
+ return po.getId();
+ }
+
+ /**
+ * 淇敼鍛戒护鏃ュ織淇℃伅
+ * @param po 鍛戒护鏃ュ織瀵硅薄
+ * @return 褰卞搷璁板綍鏁伴噺
+ */
+ public Integer update(RmCommandHistory po) {
+ return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
+ }
+
+ /**
+ * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級
+ * @param operator
+ * @return
+ */
+ public List<VoUnclosedValve> getUnclosedValves(Long operator) {
+ Command com = new Command() ;
+ com.id = Command.defaultId;
+ com.code = "LCD0001";
+ com.type = "innerCommand";
+
+ JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+ if(response != null && response.getString("code").equals("0001")) {
+ JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
+ HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
+
+ JSONArray jsonArray = new JSONArray();
+ for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("rtuAddr", entry.getKey());
+ jsonObject.put("isOnLine", entry.getValue());
+ jsonArray.add(jsonObject);
+ }
+
+ System.out.println(jsonArray);
+ List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
+ if(res != null) {
+ return res;
+ } else {
+ return new ArrayList<>();
+ }
+ } else {
+ QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
+ return new ArrayList<>();
+ }
+ }
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D
+ * @param intakeId
+ * @return
+ */
+ public Long getVcIdByIntakeId(Long intakeId) {
+ return prIntakeVcMapper.getVcIdByIntakeId(intakeId);
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
new file mode 100644
index 0000000..c923176
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -0,0 +1,489 @@
+package com.dy.pipIrrWechat.command;
+
+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.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo;
+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.command.ComSupport;
+import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
+import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
+import com.dy.pipIrrWechat.command.dto.ValveClose;
+import com.dy.pipIrrWechat.command.dto.ValveOpen;
+import com.dy.pipIrrWechat.command.enums.LastOperateENUM;
+import com.dy.pipIrrWechat.result.WechatResultCode;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-30 16:11
+ * @LastEditTime 2024-05-30 16:11
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "灏忕▼搴忛榾鎺у櫒鎺у埗", description = "灏忕▼搴忛榾鎺у櫒鎺у埗")
+@RestController
+@RequestMapping(path="valve")
+@RequiredArgsConstructor
+public class ValveCtrl extends ComSupport {
+ private final CommandSv commandSv;
+ private final SeVirtualCardMapper seVirtualCardMapper;
+ private final IDLongGenerator idLongGenerator;
+ private String rtuResultSendWebUrl = "http://127.0.0.1:8087/wx/comRes/receive" ;
+
+ /**
+ * 灏忕▼搴忚繙绋嬪紑闃�
+ * @param valve
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "open_wx", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> open(@RequestBody @Valid ValveOpen valve, BindingResult bindingResult) {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss");
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ Long intakeId = valve.getIntakeId();
+ Long vcId = valve.getVcId();
+ Long operator = valve.getOperator();
+ Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildFail(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
+
+ // 鑾峰彇绯荤粺鍙傛暟
+ if(!setuped) {
+ setUp();
+ }
+
+ // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
+ VoVirtualCard vc = commandSv.getVcById(vcId);
+ if(vc == null) {
+ return BaseResponseUtils.buildFail(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ if(vc.getInUse() == 1) {
+ return BaseResponseUtils.buildFail(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
+ }
+
+ // 鑾峰彇姘翠环
+ Double waterPrice = commandSv.getPrice();
+
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+ JSONObject job_rtu = getRtu(intakeId, null);
+ if(job_rtu == null) {
+ return BaseResponseUtils.buildError(WechatResultCode.RTU_NOT_EXIST.getMessage());
+ }
+ String rtuAddr = job_rtu.getString("rtuAddr");
+ String protocol = job_rtu.getString("protocol");
+
+ // 鐢熸垚璁㈠崟鍙�
+ String orderNo = generateOrderNo();
+
+ String commandCode = null;
+ if(protocol.equals("p206V202404")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV202404.cd_A2;
+
+ // 鍒涘缓瑙嗗浘
+ ComCd92_A2Vo param = new ComCd92_A2Vo();
+ param.controllerType = controllerType;
+ param.projectNo = projectNo;
+ param.icCardNo = vc.getVcNum();
+ param.waterRemain = 0.0;
+ param.moneyRemain = vc.getMoney();
+ param.waterPrice = waterPrice;
+ param.elePrice = 0.0;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟澶辫触
+ if(!response_CallBack.getCode().equals("0001")) {
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ //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(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_97;
+
+ // 鍒涘缓瑙嗗浘
+ Com97Vo param = new Com97Vo() ;
+ param.icCardNo = vc.getVcNum();
+ param.moneyRemain = vc.getMoney();
+ param.waterPrice = waterPrice;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ //鍥炶皟寮傚父
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.update(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟瓒呮椂
+ if(response_CallBack.getContent().toString().equals(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) {
+ /**
+ * 鍥炶皟瓒呮椂锛屾殏鏃惰涓烘墽琛屽け璐�
+ * 鍛戒护缃负澶辫触
+ * 铏氭嫙鍗′緷鏃т繚鎸佷娇鐢ㄤ腑鐨勭姸鎬�
+ */
+
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.update(rmCommandHistory);
+
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 1);
+ //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+ //virtualCard.setLastOperateTime(new Date());
+ //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+ return BaseResponseUtils.buildFail(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ 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 {
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
+ }
+ }
+
+ /**
+ * 灏忕▼搴忚繙绋嬪叧闃�
+ * @param valve
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "close_wx", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> close(@RequestBody @Valid ValveClose valve, BindingResult bindingResult) {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmss");
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ String rtuAddr = valve.getRtuAddr();
+ String vcNum = valve.getVcNum();
+ String orderNo = valve.getOrderNo();
+ Long operator = valve.getOperator();
+ Long comId = idLongGenerator.generate();
+
+ // 鑾峰彇绯荤粺鍙傛暟
+ if(!setuped) {
+ setUp();
+ }
+
+ // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
+ JSONObject job_rtu = getRtu(null, rtuAddr);
+ if(job_rtu == null) {
+ return BaseResponseUtils.buildError(WechatResultCode.RTU_NOT_EXIST.getMessage());
+ }
+ Long intakeId = job_rtu.getLong("intakeId");
+ String protocol = job_rtu.getString("protocol");
+
+ String commandCode = null;
+ if(protocol.equals("p206V202404")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV202404.cd_A3;
+
+ // 鍒涘缓瑙嗗浘
+ ComCd93_A3Vo param = new ComCd93_A3Vo();
+ param.controllerType = controllerType;
+ param.projectNo = projectNo;
+ param.icCardNo = vcNum;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV202404.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟澶辫触
+ if(!response_CallBack.getCode().equals("0001")) {
+ return BaseResponseUtils.buildFail(response_CallBack.getMsg());
+ //return BaseResponseUtils.buildError(WechatResultCode.GET_RESULT_ERROR.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //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(protocol.equals("p206V1_0_1")) {
+ // 鑾峰彇鍔熻兘鐮�
+ commandCode = CodeV1_0_1.cd_98;
+
+ // 鍒涘缓瑙嗗浘
+ Com98Vo param = new Com98Vo() ;
+ param.icCardNo = vcNum;
+ param.orderNo = orderNo;
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, protocol, rtuResultSendWebUrl, param);
+
+ // 鍙戦�佸懡浠�
+ JSONObject response_SendCom= (JSONObject) JSON.toJSON(sendCom2Mw(com));
+ if(response_SendCom != null && response_SendCom.getString("code").equals("0001")) {
+ //if(1 > 0) {
+ // 璇锋眰鎴愬姛
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ String commandName = CodeV1_0_1.getCodeName(commandCode);
+ RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
+ commandSv.insert(rmCommandHistory);
+
+ // 澶勭悊鍥炶皟
+ BaseResponse response_CallBack = dealWithCallBack(comId);
+
+ // 鍥炶皟寮傚父
+ if(!response_CallBack.getCode().equals("0001")) {
+ // 鍛戒护鏃ュ織鎵ц缁撴灉鏀逛负澶辫触
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.update(rmCommandHistory);
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ // 鍥炶皟瓒呮椂
+ if(response_CallBack.getContent().toString().equals(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage())) {
+ /**
+ * 鍥炶皟瓒呮椂锛屾殏鏃惰涓烘墽琛屽け璐�
+ * 鍛戒护缃负澶辫触
+ * 铏氭嫙鍗′緷鏃т繚鎸佷娇鐢ㄤ腑鐨勭姸鎬�
+ */
+
+ rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setId(comId);
+ rmCommandHistory.setResult((byte)0);
+ commandSv.update(rmCommandHistory);
+
+ //Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ //SeVirtualCard virtualCard = new SeVirtualCard();
+ //virtualCard.setId(vcId);
+ //virtualCard.setInUse((byte) 0);
+ //virtualCard.setLastOperate(LastOperateENUM.OPEN_VALVE.getCode());
+ //virtualCard.setLastOperateTime(new Date());
+ //seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard);
+ return BaseResponseUtils.buildFail(WechatResultCode.GET_RESULT_IN_ONE_MINUTE.getMessage());
+ }
+
+ // 鍥炶皟鎴愬姛锛屽啀鍒ゆ柇鎵ц鏄惁鎴愬姛
+ JSONObject job_content = (JSONObject)JSON.toJSON(response_CallBack.getContent());
+ System.out.println(job_content);
+ JSONObject job_subData = (JSONObject) job_content.getJSONObject("subData").getJSONObject("subData");
+ System.out.println(job_subData);
+ Boolean dealResult = job_subData.getBoolean("success");
+ if(!dealResult) {
+ return BaseResponseUtils.buildFail(response_CallBack.getContent().toString());
+ }
+
+ /**
+ * 鎵ц鎴愬姛
+ * 鏇存敼铏氭嫙鍗$姸鎬侊細鏄惁浣跨敤涓�佹渶鍚庢搷浣溿�佹渶鍚庢搷浣滄椂闂�
+ */
+ Long vcId = seVirtualCardMapper.getVcIdByNum(vcNum);
+ SeVirtualCard virtualCard = new SeVirtualCard();
+ virtualCard.setId(vcId);
+ virtualCard.setInUse((byte) 0);
+ 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 {
+ return BaseResponseUtils.buildFail("绯荤粺鏆備笉鏀寔璇ュ崗璁�");
+ }
+ }
+
+ /**
+ * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍
+ * @param operator
+ * @return
+ */
+ @GetMapping(path = "/get")
+ @SsoAop()
+ public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator){
+ try {
+ List<VoUnclosedValve> res = commandSv.getUnclosedValves(operator);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鑾峰彇鏈叧闃�璁板綍寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/DtoBase.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/DtoBase.java
new file mode 100644
index 0000000..5bf46e0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/DtoBase.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrWechat.command.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 16:54
+ * @LastEditTime 2024-05-22 16:54
+ * @Description 璁剧疆鍛戒护鍩虹被
+ */
+
+@Data
+public class DtoBase {
+ public static final long serialVersionUID = 202405221655001L;
+
+ /**
+ * 鍙栨按鍙D
+ */
+ @NotNull(message = "鍙栨按鍙d笉鑳戒负绌�")
+ private Long intakeId;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveClose.java
new file mode 100644
index 0000000..6a6ef28
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveClose.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrWechat.command.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-24 17:25
+ * @LastEditTime 2024-05-24 17:25
+ * @Description 璁剧疆鍛戒护瀛愮被-杩滅▼鍏抽榾浼犺緭瀵硅薄
+ */
+
+@Data
+public class ValveClose {
+ public static final long serialVersionUID = 202405241727001L;
+
+ /**
+ * 闃�鎺у櫒鍦板潃
+ */
+ @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
+ private String rtuAddr;
+ /**
+ * 铏氭嫙鍗$紪鍙�
+ */
+ @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
+ private String vcNum;
+
+ /**
+ * 寮�闃�鏃剁敓鎴愮殑璁㈠崟鍙�
+ */
+ @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�")
+ private String orderNo;
+
+ /**
+ * 鐢ㄦ埛绫诲瀷 1-骞冲彴锛�2-APP
+ */
+ //@NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ //private Integer userType;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveOpen.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveOpen.java
new file mode 100644
index 0000000..481b8a8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/ValveOpen.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrWechat.command.dto;
+
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-23 15:30
+ * @LastEditTime 2024-05-23 15:30
+ * @Description 璁剧疆鍛戒护瀛愮被-杩滅▼寮�闃�浼犺緭瀵硅薄
+ */
+
+@Data
+public class ValveOpen extends DtoBase{
+ public static final long serialVersionUID = 202405231531001L;
+
+ /**
+ * 铏氭嫙鍗D
+ */
+ private Long vcId;
+
+ /**
+ * 鐢ㄦ埛绫诲瀷 1-骞冲彴锛�2-APP
+ */
+ //@NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ //private Integer userType;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/enums/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/enums/LastOperateENUM.java
new file mode 100644
index 0000000..92acaac
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/enums/LastOperateENUM.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrWechat.command.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-03-06 9:21
+ * @LastEditTime 2024-03-06 9:21
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum LastOperateENUM {
+ OPEN_ACCOUNT((byte)1, "寮�鎴�"),
+ RECHARGE((byte)2, "鍏呭��"),
+ CONSUME((byte)3, "娑堣垂"),
+ APPLY_REFUND((byte)4, "鐢宠閫�娆�"),
+ AUDIT_REFUND((byte)5, "閫�娆惧鏍�"),
+ REFUND((byte)6, "閫�娆�"),
+ OPEN_VALVE((byte)7, "寮�闃�"),
+ CLOSE_VALVE((byte)8, "鍏抽榾");
+
+ private final Byte code;
+ private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/qo/OnLineIntakesQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/qo/OnLineIntakesQO.java
new file mode 100644
index 0000000..6cb009b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/qo/OnLineIntakesQO.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrWechat.command.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-27 20:32
+ * @LastEditTime 2024-05-27 20:32
+ * @Description
+ */
+
+@Data
+public class OnLineIntakesQO extends QueryConditionVo {
+ /**
+ * 涓棿浠惰繑鍥炵殑RTU鍦ㄧ嚎鎯呭喌瀵硅薄鏁扮粍
+ */
+ private String onLineMap;
+
+ /**
+ * 鍙栨按鍙g紪鍙�
+ */
+ private String intakeNum;
+
+ /**
+ * 鏄惁鍦ㄧ嚎
+ */
+ @Max(value = 1,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
+ @Min(value = 0,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
+ private Boolean isOnLine;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
index ffcbee6..7c23a12 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
@@ -14,7 +14,19 @@
@AllArgsConstructor
public enum WechatResultCode {
- XXX(10001,"XXX");
+ /**
+ * Valve
+ */
+ GET_RESULT_IN_ONE_MINUTE(10001,"1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉"),
+ GET_RESULT_ERROR(10002, "鑾峰彇缁撴灉寮傚父"),
+ PLEASE_SELECT_A_VC(10002, "璇烽�夋嫨涓�寮犺櫄鎷熷崱"),
+ IN_USE_VC_CANNOT_OPEN_VALVE(10002, "浣跨敤涓櫄鎷熷崱涓嶈兘鐢ㄦ潵寮�闃�"),
+
+ /**
+ * RTU
+ */
+ RTU_NOT_EXIST(20001, "闃�鎺у櫒涓嶅瓨鍦�");
+ //RTU_ADDR_CANNOT_BE_NULL(20002, "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖");
private final Integer code;
private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml
index b846451..2d260be 100644
--- a/pipIrr-platform/pipIrr-web/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pom.xml
@@ -180,34 +180,34 @@
<artifactId>dubbo</artifactId>
<version>3.2.7</version>
<exclusions>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.alibaba.spring</groupId>
- <artifactId>spring-context-support</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.alibaba.fastjson2</groupId>
- <artifactId>fastjson2</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.alibaba</groupId>
- <artifactId>hessian-lite</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.javassist</groupId>
- <artifactId>javassist</artifactId>
- </exclusion>
+<!-- <exclusion>-->
+<!-- <groupId>io.netty</groupId>-->
+<!-- <artifactId>netty-all</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>org.yaml</groupId>-->
+<!-- <artifactId>snakeyaml</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>org.springframework</groupId>-->
+<!-- <artifactId>spring-context</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>com.alibaba.spring</groupId>-->
+<!-- <artifactId>spring-context-support</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>com.alibaba.fastjson2</groupId>-->
+<!-- <artifactId>fastjson2</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>com.alibaba</groupId>-->
+<!-- <artifactId>hessian-lite</artifactId>-->
+<!-- </exclusion>-->
+<!-- <exclusion>-->
+<!-- <groupId>org.javassist</groupId>-->
+<!-- <artifactId>javassist</artifactId>-->
+<!-- </exclusion>-->
</exclusions>
</dependency>
--
Gitblit v1.8.0