From 4728c1f514ba6f8af19cd03810f1367aedf1df0c Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 15 五月 2025 13:48:57 +0800
Subject: [PATCH] 功能码9A、21、22、23、26、86、87、93、A2、A3远程命令接口定义与后端编码实现
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java | 55 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdParam.java | 19
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java | 171 +++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdParam.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java | 151 +++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdDto.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdParam.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdDto.java | 24
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdParam.java | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdParam.java | 21
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd22/CdCtrl.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdCtrl.java | 142 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdParam.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdCtrl.java | 127 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdParam.java | 22
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdParam.java | 23
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdCtrl.java | 128 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java | 47 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdDto.java | 18
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdDto.java | 18
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdCtrl.java | 129 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdCtrl.java | 142 ++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java | 24
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java | 24
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdDto.java | 24
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdDto.java | 18
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdDto.java | 17
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdDto.java | 17
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdCtrl.java | 116 ++++
36 files changed, 1,673 insertions(+), 8 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
index 96d3b14..167d6b6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
@@ -45,4 +45,28 @@
return sb.toString() ;
}
+ public String toStr(boolean showBase){
+ StringBuffer sb = new StringBuffer() ;
+ if(showBase){
+ sb.append(comName + " : \n") ;
+ sb.append("鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(CommonV202404.ctrlDevType(controllerType)) ;
+ sb.append("\n") ;
+ sb.append("椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ }
+ sb.append("IP閫氶亾鍙� : ") ;
+ sb.append(channel == null?"鏈煡":channel) ;
+ sb.append("\n") ;
+ sb.append("ip : ") ;
+ sb.append(ip == null?"鏈煡":ip) ;
+ sb.append("\n") ;
+ sb.append("绔彛鍙� : ") ;
+ sb.append(port == null?"鏈煡":port) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
index 9ffcd7c..88f5c6d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
@@ -45,4 +45,28 @@
return sb.toString() ;
}
+ public String toStr(boolean showBase){
+ StringBuffer sb = new StringBuffer() ;
+ if(showBase){
+ sb.append(comName + " : \n") ;
+ sb.append("鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(CommonV202404.ctrlDevType(controllerType)) ;
+ sb.append("\n") ;
+ sb.append("椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ }
+ sb.append("IP閫氶亾鍙� : ") ;
+ sb.append(channel == null?"鏈煡":channel) ;
+ sb.append("\n") ;
+ sb.append("鍩熷悕 : ") ;
+ sb.append(domain == null?"鏈煡":domain) ;
+ sb.append("\n") ;
+ sb.append("绔彛鍙� : ") ;
+ sb.append(port == null?"鏈煡":port) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdCtrl.java
new file mode 100644
index 0000000..0d98e98
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdCtrl.java
@@ -0,0 +1,142 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd21;
+
+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.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.Callback;
+import com.dy.common.util.IPUtils;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:42
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "璁剧疆璁惧缁堢IP鍦板潃绔彛")
+@RestController("cd21Ctrl")
+@RequestMapping(path = "p202404V201/cd21")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "21" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .channel(dto.channel)//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2)
+ .ip(dto.ip)//IP锛堜緥濡� 125.235.35.89锛�
+ .port(dto.port)//绔彛鍙凤紙0~65536锛�
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ if(dto != null){
+ CdDto myo = (CdDto) dto ;
+ if(myo.channel == null){
+ return "IP閫氶亾鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.ip == null){
+ return "IP涓嶈兘涓虹┖";
+ }
+ if(myo.port == null){
+ return "绔彛鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.channel != 1 && myo.channel != 2){
+ return "璇锋纭~鍐橧P閫氶亾鍙�(1銆�2)";
+ }
+ if(!IPUtils.ipValid(myo.ip)){
+ return "璇锋纭~鍐橧P";
+ }
+ if(myo.port > 65535 || myo.port < 0){
+ return "璇锋纭~鍐欑鍙e彿锛�0~65536锛�";
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCdXyVo cvo = JSON.parseObject(json, DataCdXyVo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdDto.java
new file mode 100644
index 0000000..cf0da7a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdDto.java
@@ -0,0 +1,24 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd21;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:42
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505151042001L;
+ @NotNull(message = "IP閫氶亾鍙蜂笉鑳戒负绌�")
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ @NotNull(message = "IP涓嶈兘涓虹┖")
+ public String ip ;//IP锛堜緥濡� 125.235.35.89锛�
+ @NotNull(message = "绔彛鍙蜂笉鑳戒负绌�")
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdParam.java
new file mode 100644
index 0000000..22544ef
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdParam.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd21;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:42
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ public String ip ;//IP锛堜緥濡� 125.235.35.89锛�
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+ }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdSv.java
new file mode 100644
index 0000000..c044c1b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd21/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd21;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:42
+ * @Description
+ */
+@Slf4j
+@Service("cd21Sv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd22/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd22/CdCtrl.java
index e1a544e..40e1294 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd22/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd22/CdCtrl.java
@@ -36,7 +36,7 @@
@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
public class CdCtrl extends ComCtrl {
- private static final String RtuSuccessMsg = "璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�";
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
private static final String ComCode = "22" ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdCtrl.java
new file mode 100644
index 0000000..884b863
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdCtrl.java
@@ -0,0 +1,142 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd23;
+
+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.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.Callback;
+import com.dy.common.util.IPUtils;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:45
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "璁剧疆璁惧缁堢鍩熷悕绔彛")
+@RestController("cd23Ctrl")
+@RequestMapping(path = "p202404V201/cd23")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "23" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .channel(dto.channel)//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2)
+ .domain(dto.domain.trim())//鍩熷悕锛堜緥濡� www.baidu.com锛�
+ .port(dto.port)//绔彛鍙凤紙0~65536锛�
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ if(dto != null){
+ CdDto myo = (CdDto) dto ;
+ if(myo.channel == null){
+ return "IP閫氶亾鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.domain == null){
+ return "鍩熷悕涓嶈兘涓虹┖";
+ }
+ if(myo.port == null){
+ return "绔彛鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.channel != 1 && myo.channel != 2){
+ return "璇锋纭~鍐橧P閫氶亾鍙�(1銆�2)";
+ }
+ if(myo.domain.trim().equals("")){
+ return "璇锋纭~鍐欏煙鍚�";
+ }
+ if(myo.port > 65535 || myo.port < 0){
+ return "璇锋纭~鍐欑鍙e彿锛�0~65536锛�";
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCdXyVo cvo = JSON.parseObject(json, DataCdXyVo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdDto.java
new file mode 100644
index 0000000..9735c92
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdDto.java
@@ -0,0 +1,24 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd23;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:45
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505151045001L;
+ @NotNull(message = "IP閫氶亾鍙蜂笉鑳戒负绌�")
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ @NotNull(message = "鍩熷悕涓嶈兘涓虹┖")
+ public String domain;//鍩熷悕锛堜緥濡� www.baidu.com锛�
+ @NotNull(message = "绔彛鍙蜂笉鑳戒负绌�")
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdParam.java
new file mode 100644
index 0000000..6a355b5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdParam.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd23;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:45
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ public String domain;//鍩熷悕锛堜緥濡� www.baidu.com锛�
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+ }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdSv.java
new file mode 100644
index 0000000..f5dd91f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd23/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd23;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:45
+ * @Description
+ */
+@Slf4j
+@Service("cd23Sv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdCtrl.java
new file mode 100644
index 0000000..ace10dd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdCtrl.java
@@ -0,0 +1,127 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd26;
+
+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.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:33
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "璁剧疆璁惧缁堢骞寸敤姘撮噺")
+@RestController("cd26Ctrl")
+@RequestMapping(path = "p202404V201/cd26")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "26" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .maxAmountYear(dto.amountYear)//璁惧缁堢骞寸敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ if(dto != null){
+ CdDto myo = (CdDto) dto ;
+ if(myo.amountYear == null){
+ return "璁惧缁堢骞寸敤姘撮噺涓嶈兘涓虹┖";
+ }
+ if(myo.amountYear > 99999999 || myo.amountYear <= 0){
+ return "璇锋纭~鍐欒澶囩粓绔勾鐢ㄦ按閲忥紙m3锛�(0~99999999)";
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCdXyVo cvo = JSON.parseObject(json, DataCdXyVo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdDto.java
new file mode 100644
index 0000000..13aa534
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdDto.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd26;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:33
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505121133001L;
+ @NotNull(message = "璁惧缁堢骞寸敤姘撮噺涓嶈兘涓虹┖")
+ public Integer amountYear;//璁惧缁堢骞寸敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdParam.java
new file mode 100644
index 0000000..dcb76e4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdParam.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd26;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:33
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public Integer maxAmountYear ;//璁惧缁堢骞寸敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdSv.java
new file mode 100644
index 0000000..0df8335
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd26/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd26;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:33
+ * @Description
+ */
+@Slf4j
+@Service("cd26Sv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdCtrl.java
new file mode 100644
index 0000000..ff57d76
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdCtrl.java
@@ -0,0 +1,129 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd86;
+
+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.p206V202404.upVos.DataCd86Vo;
+import com.dy.common.util.Callback;
+import com.dy.common.util.IPUtils;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import com.dy.pipIrrRemote.monitor.p202404V201.cd21.CdParam;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "鏌ヨ璁惧缁堢IP鍦板潃绔彛")
+@RestController("cd86Ctrl")
+@RequestMapping(path = "p202404V201/cd86")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "86" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .channel(dto.channel)//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2)
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ if(dto != null){
+ CdDto myo = (CdDto) dto ;
+ if(myo.channel == null){
+ return "IP閫氶亾鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.channel != 1 && myo.channel != 2){
+ return "璇锋纭~鍐橧P閫氶亾鍙�(1銆�2)";
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCd86Vo cvo = JSON.parseObject(json, DataCd86Vo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdDto.java
new file mode 100644
index 0000000..5a55147
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdDto.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd86;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505151135001L;
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdParam.java
new file mode 100644
index 0000000..22ff712
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdParam.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd86;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdSv.java
new file mode 100644
index 0000000..f64cc65
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd86/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd86;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Slf4j
+@Service("cd86Sv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdCtrl.java
new file mode 100644
index 0000000..4ee7c7b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdCtrl.java
@@ -0,0 +1,128 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd87;
+
+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.p206V202404.upVos.DataCd87Vo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import com.dy.pipIrrRemote.monitor.p202404V201.cd21.CdParam;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "鏌ヨ璁惧缁堢鍩熷悕绔彛")
+@RestController("cd87Ctrl")
+@RequestMapping(path = "p202404V201/cd87")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "87" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .channel(dto.channel)//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2)
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ if(dto != null){
+ CdDto myo = (CdDto) dto ;
+ if(myo.channel == null){
+ return "IP閫氶亾鍙蜂笉鑳戒负绌�";
+ }
+ if(myo.channel != 1 && myo.channel != 2){
+ return "璇锋纭~鍐橧P閫氶亾鍙�(1銆�2)";
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCd87Vo cvo = JSON.parseObject(json, DataCd87Vo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdDto.java
new file mode 100644
index 0000000..721d378
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdDto.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd87;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505151135001L;
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdParam.java
new file mode 100644
index 0000000..5096bdb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdParam.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd87;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdSv.java
new file mode 100644
index 0000000..e8a2924
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd87/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd87;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 11:32
+ * @Description
+ */
+@Slf4j
+@Service("cd87Sv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java
index c59ab53..fa1a23a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java
@@ -24,13 +24,6 @@
@Autowired
protected PrWaterPriceMapper prWaterPriceDao ;
- public VoVirtualCard selectClientVtCardById(Long id){
- return seVirtualCardDao.getVcById(id) ;
- }
- public Double selectWaterPrice(){
- return prWaterPriceDao.getPrice() ;
- }
-
/**
* 瑙i櫎铏氭嫙鍗¤鍗犵敤
*/
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdCtrl.java
new file mode 100644
index 0000000..a6e4f07
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdCtrl.java
@@ -0,0 +1,116 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd9A;
+
+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.p206V202404.upVos.DataCd9AVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/12 11:40
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "鏌ヨ璁惧骞寸敤姘撮噺")
+@RestController("cd9ACtrl")
+@RequestMapping(path = "p202404V201/cd9A")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "9A" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType).build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCd9AVo cvo = JSON.parseObject(json, DataCd9AVo.class) ;
+ if(cvo != null){
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdDto.java
new file mode 100644
index 0000000..9dcb8fb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdDto.java
@@ -0,0 +1,17 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd9A;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:19
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505121140001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdParam.java
new file mode 100644
index 0000000..71753b4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdParam.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd9A;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:19
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdSv.java
new file mode 100644
index 0000000..bb8ad3f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd9A/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cd9A;
+
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 10:19
+ * @Description
+ */
+@Slf4j
+@Service("cd9ASv")
+public class CdSv extends ComSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java
new file mode 100644
index 0000000..ae4c99e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java
@@ -0,0 +1,171 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA2;
+
+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.p206V202404.upVos.DataCd92_A2Vo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:21
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "App杩滅▼寮�闃�")
+@RestController("cdA2Ctrl")
+@RequestMapping(path = "p202404V201/cdA2")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "A2" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ if(dto.vtCardId == null || "".equals(dto.vtCardId.trim())){
+ Long vtId = sv.selectVcIdByIntakeId(dto.getIntakeId()) ;
+ if(vtId == null) {
+ return BaseResponseUtils.buildErrorMsg("璇烽�夋嫨涓�寮犺櫄鎷熷崱");
+ }else{
+ dto.vtCardId = vtId.toString() ;
+ }
+ }
+ VoVirtualCard vcPo = sv.selectClientVtCardById(Long.parseLong(dto.vtCardId.trim())) ;
+ if(vcPo == null){
+ return BaseResponseUtils.buildErrorMsg("鏈嶅姟绔嚭閿欙紝鏈緱鍒板啘鎴疯櫄鎷熷崱") ;
+ }
+ if(vcPo.getInUse().booleanValue()){
+ return BaseResponseUtils.buildErrorMsg("鍐滄埛璇ヨ櫄鎷熷崱宸茬粡琚崰鐢紝涓嶈兘鍐嶅簲鐢ㄥ叾寮�闃�") ;
+ }
+ if(vcPo.getMoney() <= 0.0){
+ return BaseResponseUtils.buildErrorMsg("鍐滄埛璇ヨ櫄鎷熷崱涓墿浣欓噾棰濅负0锛屼笉鑳藉啀搴旂敤鍏跺紑闃�") ;
+ }
+ Double waterPrice = sv.selectWaterPrice() ;
+ if(waterPrice == null){
+ return BaseResponseUtils.buildErrorMsg("鏈嶅姟绔嚭閿欙紝鏈緱鍒版按浠�") ;
+ }
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .icCardNo("" + vcPo.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ .waterRemain(0.0)//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99
+ .moneyRemain(vcPo.getMoney())//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99
+ .waterPrice(waterPrice)//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ .elePrice(0.0)//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ .orderNo(RandomStringUtils.randomNumeric(16))//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ .build();
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, new Callback() {
+ @Override
+ public void call(Object obj) {
+ Boolean success = (Boolean) obj;
+ if(success){
+ // 娣诲姞甯哥敤鍙栨按鍙f垨鏇存柊浣跨敤淇℃伅
+ sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ;
+ //寮�闃�鎴愬姛锛岃櫄鎷熷崱璁板綍涓婃爣璁板凡琚崰鐢�
+ sv.setVcUsed(vcPo.getId(), dto.getIntakeId());
+ }
+ }
+ @Override
+ public void call(Object... objs) {
+ }
+ @Override
+ public void exception(Exception e) {
+ }
+ });
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCd92_A2Vo cvo = JSON.parseObject(json, DataCd92_A2Vo.class) ;
+ if(cvo != null){
+ if(callback != null){
+ if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)0){
+ callback.call(true);//寮�闃�鎴愬姛
+ }else{
+ callback.call(false);//寮�闃�澶辫触
+ }
+ }
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdDto.java
new file mode 100644
index 0000000..5c5c34e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdDto.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA2;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:21
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505150921001L;
+ public String vtCardId ;//鐢ㄦ埛鍗�(铏氭嫙鍗�)搴忓垪鍙凤紙17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdParam.java
new file mode 100644
index 0000000..7ab7964
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdParam.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA2;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:21
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99
+ public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦, 涓や釜灏忔暟鐐�, 鍗曚綅鍏�, 0~999999.99
+ public Double waterPrice ;//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ public Double elePrice ;//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java
new file mode 100644
index 0000000..0a1fad3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java
@@ -0,0 +1,55 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA2;
+
+import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper;
+import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
+import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:21
+ * @Description
+ */
+@Slf4j
+@Service("cdA2Sv")
+public class CdSv extends ComSv {
+ @Autowired
+ protected SeVirtualCardMapper seVirtualCardDao ;
+ @Autowired
+ protected PrWaterPriceMapper prWaterPriceDao ;
+ @Autowired
+ protected PrIntakeVcMapper prIntakeVcDao ;
+
+ public VoVirtualCard selectClientVtCardById(Long id){
+ return seVirtualCardDao.getVcById(id) ;
+ }
+ public Double selectWaterPrice(){
+ return prWaterPriceDao.getPrice() ;
+ }
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D
+ * @param intakeId
+ * @return
+ */
+ public Long selectVcIdByIntakeId(Long intakeId) {
+ return prIntakeVcDao.getVcIdByIntakeId(intakeId);
+ }
+ /**
+ * 璁剧疆铏氭嫙鍗¤鍗犵敤
+ */
+ public void setVcUsed(Long id, Long intakeId){
+ SeVirtualCard po = new SeVirtualCard() ;
+ po.setId(id);
+ po.setIntakeId(intakeId);
+ po.setInUse((byte)1);
+ po.setOpenTime(new Date());
+ seVirtualCardDao.updateByPrimaryKeySelective(po);
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java
new file mode 100644
index 0000000..b4837bf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java
@@ -0,0 +1,151 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA3;
+
+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.p206V202404.upVos.DataCd93_A3Vo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.voRm.VoUnclosedParam;
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.monitor.common.ComCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:23
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "App杩滅▼鍏抽榾")
+@RestController("cdA3Ctrl")
+@RequestMapping(path = "p202404V201/cdA3")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends ComCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String ComCode = "A3" ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙鎺у埗鍣級鍙戦�佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鑾峰彇寮�闃�鍛戒护鍙傛暟
+ VoUnclosedParam opPa = sv.selectUncloseParam(dto.getIntakeId(), ctrlPo.getRtuAddr());
+ if(opPa == null) {
+ return BaseResponseUtils.buildFail("璇ュ彇姘村彛涓婃棤鎮ㄦ渶杩戠殑寮�闃�鎿嶄綔");
+ }
+ Long vcId = sv.getVcIdByNum(opPa.getVcNum()) ;
+ if(vcId == null) {
+ return BaseResponseUtils.buildFail("鏈嶅姟绔嚭閿欙紝鏈緱鍒拌櫄鎷熷崱ID");
+ }
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType)
+ .icCardNo(opPa.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ .orderNo(opPa.getOrderNo())//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ .build();
+ res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.getRtuAddr(), "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, new Callback() {
+ @Override
+ public void call(Object obj) {
+ Boolean success = (Boolean) obj;
+ if(success){
+ //鍏抽榾鎴愬姛锛岃В闄よ櫄鎷熷崱琚崰鐢�
+ sv.setVcNoUsed(vcId);
+ }
+ }
+ @Override
+ public void call(Object... objs) {
+ }
+ @Override
+ public void exception(Exception e) {
+ }
+ });
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(DtoBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ DataCd93_A3Vo cvo = JSON.parseObject(json, DataCd93_A3Vo.class) ;
+ if(cvo != null){
+ if(callback != null){
+ if(cvo.clResult != null && cvo.clResult == 0){
+ callback.call(true);//鍏抽榾鎴愬姛
+ }else{
+ callback.call(false);//鍏抽榾澶辫触
+ }
+ }
+ msg = cvo.toStr(false) ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdDto.java
new file mode 100644
index 0000000..50230cc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdDto.java
@@ -0,0 +1,17 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA3;
+
+import com.dy.pipIrrRemote.common.dto.DtoBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:23
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends DtoBase {
+ public static final long serialVersionUID = 202505150923001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdParam.java
new file mode 100644
index 0000000..537eaba
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdParam.java
@@ -0,0 +1,21 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA3;
+
+import com.dy.pipIrrRemote.monitor.common.CdParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:23
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends CdParameter {
+ public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java
new file mode 100644
index 0000000..7c37b0d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java
@@ -0,0 +1,47 @@
+package com.dy.pipIrrRemote.monitor.p202404V201.cdA3;
+
+import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
+import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
+import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
+import com.dy.pipIrrRemote.monitor.common.ComSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/15 09:23
+ * @Description
+ */
+@Slf4j
+@Service("cdA3Sv")
+public class CdSv extends ComSv {
+
+ @Autowired
+ protected SeVirtualCardMapper seVirtualCardDao ;
+
+ @Autowired
+ protected PrWaterPriceMapper prWaterPriceDao ;
+
+ /**
+ * 瑙i櫎铏氭嫙鍗¤鍗犵敤
+ */
+ public void setVcNoUsed(Long id){
+ SeVirtualCard po = new SeVirtualCard() ;
+ po.setId(id);
+ po.setIntakeId(null);
+ po.setInUse((byte)0);
+ po.setOpenTime(null);
+ seVirtualCardDao.updateByPrimaryKeySelective(po);
+ }
+
+ /**
+ * 閫氳繃铏氭嫙鍗$紪鍙峰緱鍒拌褰曞疄浣揑D
+ * @param vcNum
+ * @return
+ */
+ public Long getVcIdByNum(String vcNum){
+ return seVirtualCardDao.getVcIdByNum(vcNum) ;
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0