From 13396d9d413c38786f40e02569b034fd4061d0d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 29 十一月 2024 14:55:02 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java | 46 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java | 11
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 30 ++
pipIrr-platform/pipIrr-global/src/main/resources/application-global(test测试系统).yml | 14
pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 8
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java | 51 ++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java | 110 +++----
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java | 19
pipIrr-platform/pipIrr-global/src/main/resources/application-global(sp沙盘系统).yml | 14
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java | 4
/dev/null | 386 ---------------------------
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java | 12
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java | 6
pipIrr-platform/pipIrr-global/src/main/resources/application-global(ym元谋系统).yml | 14
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 20 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java | 8
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 14
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java | 15
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java | 2
20 files changed, 236 insertions(+), 550 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
index 2d81abd..87f3331 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
@@ -65,7 +65,7 @@
case STATE_FAILONE:
return "涓�鍖呮";
case STATE_FAIL:
- return "鍗囩骇涓";
+ return "澶氬寘姝�";
case STATE_FAILOFFLINE:
return "绂荤嚎澶辫触";
default:
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
similarity index 60%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
index ac71d4c..86fc954 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
@@ -19,33 +19,71 @@
* @Date: 2024/10/23 11:45
* @Description
*/
-public abstract class ToRtuMwCom {
+public abstract class Web2RtuMw {
/**
* pro_mw锛氬睘鎬�
* tag浠庢帶鍒跺櫒涓幏鍙�
* key_mw锛歶rl鐨刱ey
*/
private static final String pro_mw = "mw";
- private static final String key_mw = "comSendUrl";
- private static final String keyUg_mw = "ugTaskSendUrl";
+ private static final String pro_url = "url";
+ protected static final String ContextComSend = "/rtuMw/com/send";
+ protected static final String ContextRtuLogFile = "/rtuMw/com/rtuLogFile";
+ protected static final String ContextRtuLogText = "/rtuMw/com/rtuLogText";
+
+ protected static final String ContextUgTaskSend = "/rtuMw/com/upgradeRtu";
+ protected static final String ContextUgForceOver = "/rtuMw/com/ugForceOver";
/**
* 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
* @param env
* @return
*/
- protected String getToMwUrl(Environment env) {
- return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+ protected String get2MwUrl(Environment env) {
+ return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + pro_url);
+ }
+ /**
+ * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佸己鍒跺仠姝㈠崌绾х殑鍛戒护URL
+ * @param env
+ * @return
+ */
+ protected String get2MwRequestUrl(Environment env, String context) {
+ return get2MwUrl(env) + context;
}
+
/**
- * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
- * @param env
+ * 鍚戦�氫俊涓棿浠跺彂閫乺tu杩滅▼鍗囩骇浠诲姟
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+ * @param param 璇锋眰鍙傛暟
* @return
*/
- protected String getToMwUgUrl(Environment env) {
- return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + keyUg_mw);
+ protected BaseResponse sendRequest2Mw(RestTemplate restTemplate, String toMwUrl, Object param) {
+ String url = UriComponentsBuilder.fromUriString(toMwUrl)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ HttpEntity<?> httpEntity ;
+ if(param != null){
+ httpEntity = new HttpEntity<>(param, headers);
+ }else{
+ httpEntity = new HttpEntity<>(headers);
+ }
+ ResponseEntity<BaseResponse> response = null;
+ try {
+ // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+ }
+ if(response == null){
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+ }else{
+ return response.getBody();
+ }
}
/**
@@ -74,58 +112,4 @@
return com ;
}
- /**
- * 鍙戦�佸懡浠�
- *
- * @return
- */
- protected BaseResponse sendCom2Mw(RestTemplate restTemplate, String comSendUrl, Command com) {
- String url = UriComponentsBuilder.fromUriString(comSendUrl)
- .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 BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
- }
- if(response == null){
- return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
- }else{
- return response.getBody();
- }
- }
-
-
- /**
- * 鍚戦�氫俊涓棿浠跺彂閫乺tu杩滅▼鍗囩骇浠诲姟
- * @param restTemplate
- * @param comSendUrl
- * @param vo
- * @return
- */
- protected BaseResponse sendUpgradeTask2Mw(RestTemplate restTemplate, String comSendUrl, UpgradeTaskVo vo) {
- String url = UriComponentsBuilder.fromUriString(comSendUrl)
- .build()
- .toUriString();
- HttpHeaders headers = new HttpHeaders();
- HttpEntity<UpgradeTaskVo> httpEntity = new HttpEntity<>(vo, headers);
- ResponseEntity<BaseResponse> response = null;
- try {
- // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
- response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
- } catch (Exception e) {
- e.printStackTrace();
- return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
- }
- if(response == null){
- return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
- }else{
- return response.getBody();
- }
- }
}
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
index a369ae8..0ca5332 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
#閫氳涓棿浠剁浉鍏抽厤缃�
#protocol: DYJS_2023,DYJS_2024
mw:
- #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+ #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
ym:
+ url: "http://127.0.0.1:8070"
comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
sp:
+ url: "http://127.0.0.1:8073"
comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
test:
+ url: "http://127.0.0.1:8072"
comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
#鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
#rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
index 7b529cc..a74a259 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
#閫氳涓棿浠剁浉鍏抽厤缃�
#protocol: DYJS_2023,DYJS_2024
mw:
- #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+ #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
ym:
+ url: "http://127.0.0.1:8070"
comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
sp:
+ url: "http://127.0.0.1:8073"
comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
test:
+ url: "http://127.0.0.1:8072"
comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
#鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
#rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
index 5e8b483..e7a60d0 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
#閫氳涓棿浠剁浉鍏抽厤缃�
#protocol: DYJS_2023,DYJS_2024
mw:
- #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+ #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
ym:
+ url: "http://127.0.0.1:8070"
comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
sp:
+ url: "http://127.0.0.1:8073"
comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
test:
+ url: "http://127.0.0.1:8072"
comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
#鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
#rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml"
deleted file mode 100644
index ab8092d..0000000
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml"
+++ /dev/null
@@ -1,386 +0,0 @@
-spring:
- servlet:
- multipart:
- # 鍓嶇涓婁紶鏂囦欢锛岄檺鍒跺崟涓枃浠剁殑澶у皬鍜岄檺鍒舵墍鏈夋枃浠剁殑澶у皬
- max-file-size: 500MB
- max-request-size: 5000MB
-logging:
- charset:
- console: UTF-8
- config:
- classpath: log4j2.yml
-#绂佺敤鐧芥爣閿欒椤甸潰
-server:
- error:
- whitelabel:
- enabled: false
- #servlet閰嶇疆
- servlet:
- encoding:
- #鍙栨秷榛樿鐨勫瓧绗﹂泦缂栫爜
- enabled: true
- #璁剧疆寮哄埗浣跨敤鎸囧畾瀛楃缂栫爜闆�
- force: true
- #浣跨敤鐨勫瓧绗︾紪鐮�
- charset: utf-8
-# actuator閰嶇疆锛屽厛include浜嗗叏閮紝鐒跺悗鍐峞xclude鎸囧畾鐨別ndpoint
-management:
- endpoints:
- web:
- exposure:
- include: '*'
- #exclude: beans
- .shutdown:
- enabled: true #鏄惁寮�鍚�/actuator/shutdown
-
-# SpringDoc-OpenApi 閰嶇疆
-springdoc:
- swagger-ui:
- #搴旂敤actuator鏃讹紝璁块棶: http://[IP]:[port]/actuator/swagger-ui/index.html 渚嬪http://127.0.0.1:9080/actuator/swagger-ui/index.html
- #鏈敤actuator鏃讹紝璁块棶: http://[IP]:[port]/[context]/swagger-ui/index.html 渚嬪http://127.0.0.1:8080/[瀛愮郴缁熶笂涓嬫枃锛坆ase锛塢/swagger-ui/index.html
- path: /swagger-ui
- operationsSorter: method # HTTP 鏂规硶鎺掑簭
- tagsSorter: alpha # API 鎺掑簭
- api-docs:
- path: /v3/apiDocs
- groups:
- enabled: true
- show-actuator: true #鍦╝ctuator閰嶇疆鐨勭鍙e強涓婁笅鏂囦腑璁块棶 SpringDoc-OpenApi
- use-management-port: true #搴旂敤actuator閰嶇疆鐨勭鍙o紝浣嗕笂闈㈢殑swagger-ui:path鍙細閲囩敤榛樿鍊約wagger-ui
- packages-to-scan: com.dy
- #paths-to-match: /sys/**, /demo/**, /**
- paths-to-match: /**
- web:
- title: 澶х鑺傛按绠$亴鐩戞帶绯荤粺API
- description: 澶х鑺傛按绠$亴鐩戞帶绯荤粺鏈嶅姟绔� Restfull API
- version: v1.0.0
- license-name: 澶х鑺傛按鐮旂┒闄�
-
-#MybatisPlus 閰嶇疆鏃ュ織鏄剧ず鎵цSQL
-mybatis-plus:
- #鍖归厤sql璇彞鐨勬槧灏勬枃浠剁殑浣嶇疆锛宑lasspath浠h〃鍦╮esources涓�
- mapper-locations: classpath:mapper/*.xml
- #浠ヤ笅涓や釜閰嶇疆鍙互鐪佺暐锛屽湪mapper鏄犲皠鏂囦欢涓厤缃�淍Mapper鈥濅篃鏄彲浠ョ殑銆�
- #浣跨敤type-aliases-package涓寚瀹歟ntity鎵弿鍖呰矾寰勶紝璁﹎ybatis鑷姩鎵弿鑷畾涔夌殑entity
- #type-aliases-package: com.dy.pipIrrGlobal.daoBa
- configuration:
- #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #鏃惰�岃緭鍑烘棩蹇楋紝鏃惰�屼笉杈撳嚭鏃ュ織
- log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl
- #寮�鍚┘宄皍Name鑷姩鏄犲皠鍒皍_name
- #2023-10-24缁忓疄楠岋紝涓嬮潰閰嶇疆true鎴杅alse锛岄兘鑳戒粠u_name鏄犲皠鍒皍Name
- #map-underscore-to-camel-case: true
- lazyLoadingEnabled: true # 寮�鍚欢鏃跺姞杞藉紑鍏�
- aggressiveLazyLoading: false # 灏嗙Н鏋佸姞杞芥敼涓烘秷鏋佸姞杞斤紙鍗虫寜闇�鍔犺浇锛夛紝榛樿鍊兼槸false
- lazy-load-trigger-methods: "" # 闃绘尅涓嶇浉骞茬殑鎿嶄綔瑙﹀彂锛屽疄鐜版噿鍔犺浇
- cache-enabled: true #鎵撳紑鍏ㄥ眬缂撳瓨寮�鍏筹紙浜岀骇鐜锛夛紝榛樿鍊兼槸true
- default-enum-type-handler: com.dy.common.mybatis.envm.EnumCodeTypeHandler
-
-pipIrr:
- global:
- dev: true #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
- dsName: ym #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
- nginx:
- webPort: 54321
- mw:
- webPort: 8070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
- actutorPort: 9070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
- idSuffix: 0
- sso:
- cacheMaximumSize: 10000 #鐧诲綍鐢ㄦ埛缂撳瓨鍙紦瀛樼敤鎴风殑鏈�澶у��
- cacheDuration: 720 #缂撳瓨鐧诲綍鐢ㄦ埛鍙戝憜鏈�澶ф椂闀匡紙鍒嗛挓锛�
- checkUrl: http://127.0.0.1:8079/sso/sso/ssoCheck
- webPort: 8079
- actutorPort: 9079
- idSuffix: 1
- base:
- webPort: 8080
- actutorPort: 9080
- idSuffix: 2
- remote:
- webPort: 8081
- actutorPort: 9081
- idSuffix: 3
- statistics:
- webPort: 8082
- actutorPort: 9082
- idSuffix: 4
- gis:
- webPort: 8083
- actutorPort: 9083
- idSuffix: 5
- demo:
- webPort: 8000
- actutorPort: 9000
- idSuffix: 99
- sell:
- webPort: 8084
- actutorPort: 9084
- idSuffix: 6
- project:
- webPort: 8085
- actutorPort: 9085
- idSuffix: 7
- irrigate:
- webPort: 8086
- actutorPort: 9086
- idSuffix: 8
- wechat:
- webPort: 8087
- actutorPort: 9087
- idSuffix: 9
- app:
- webPort: 8088
- actutorPort: 9088
- idSuffix: 10
- operation:
- webPort: 8089
- actutorPort: 9089
- idSuffix: 11
-
-
- file:
- idSuffix: 99
- file1:
- webPort: 8180
- actutorPort: 9180
- file2:
- webPort: 8180
- actutorPort: 9180
- file3:
- webPort: 8180
- actutorPort: 9180
- file4:
- webPort: 8180
- actutorPort: 9180
- file5:
- webPort: 8180
- actutorPort: 9180
- file6:
- webPort: 8180
- actutorPort: 9180
- file7:
- webPort: 8180
- actutorPort: 9180
- file8:
- webPort: 8180
- actutorPort: 9180
- file9:
- webPort: 8180
- actutorPort: 9180
- file10:
- webPort: 8180
- actutorPort: 9180
- file11:
- webPort: 8180
- actutorPort: 9180
- file12:
- webPort: 8180
- actutorPort: 9180
-
-
-#web鍒嗗竷寮忔枃浠剁郴缁�
-dy:
- photoZipWidth: 400 #缂╃暐鍥惧昂瀵�
- webFile:
- fmUrl: http://127.0.0.1:${pipIrr.file1.webPort}/file # fm鐨剋eb涓婁笅鏂� URL
- supportedFileTypes: docx,xlsx,doc,xls,pdf #鏀寔鐨勬枃妗o紙闈炲獟浣撴枃浠讹紝濡傜収鐗囥�佸綍闊炽�佸綍鍍忥級鏂囦欢绫诲瀷
- sv1:
- id: dyFile1
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile1
- hashStart: 0
- hashEnd: 5461
- restUrl: http://127.0.0.1:${pipIrr.file1.webPort}/file #file鏄笂涓嬫枃,ip涓哄眬鍩熺綉ip鎴栨湰鍦癐P
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/ #nginx鏈嶅姟璺緞,瀹夎閮ㄧ讲鏃禝P鏀规垚澶栫綉IP鎴栧煙鍚�
- webDownloadPath: http://127.0.0.1:${pipIrr.file1.webPort}/file/download/down?id= #瀹夎閮ㄧ讲鏃禝P鏀规垚澶栫綉IP鎴栧煙鍚�
- sv2:
- id: dyFile2
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile2
- hashStart: 5462
- hashEnd: 10923
- restUrl: http://127.0.0.1:${pipIrr.file2.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file2.webPort}/file/download/down?id=
- sv3:
- id: dyFile3
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile3
- hashStart: 10924
- hashEnd: 16385
- restUrl: http://127.0.0.1:${pipIrr.file3.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file3.webPort}/file/download/down?id=
- sv4:
- id: dyFile4
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile4
- hashStart: 16386
- hashEnd: 21847
- restUrl: http://127.0.0.1:${pipIrr.file4.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file4.webPort}/file/download/down?id=
- sv5:
- id: dyFile5
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile5
- hashStart: 21848
- hashEnd: 27309
- restUrl: http://127.0.0.1:${pipIrr.file5.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file5.webPort}/file/download/down?id=
- sv6:
- id: dyFile6
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile6
- hashStart: 27310
- hashEnd: 32767
- restUrl: http://127.0.0.1:${pipIrr.file6.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file6.webPort}/file/download/down?id=
- sv7:
- id: dyFile7
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile7
- hashStart: 32768
- hashEnd: 38229
- restUrl: http://127.0.0.1:${pipIrr.file7.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file7.webPort}/file/download/down?id=
- sv8:
- id: dyFile8
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile8
- hashStart: 38230
- hashEnd: 43691
- restUrl: http://127.0.0.1:${pipIrr.file8.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file8.webPort}/file/download/down?id=
- sv9:
- id: dyFile9
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile9
- hashStart: 43692
- hashEnd: 49153
- restUrl: http://127.0.0.1:${pipIrr.file9.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file9.webPort}/file/download/down?id=
- sv10:
- id: dyFile10
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile10
- hashStart: 49154
- hashEnd: 54615
- restUrl: http://127.0.0.1:${pipIrr.file10.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file10.webPort}/file/download/down?id=
- sv11:
- id: dyFile11
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile11
- hashStart: 54616
- hashEnd: 60077
- restUrl: http://127.0.0.1:${pipIrr.file11.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file11.webPort}/file/download/down?id=
- sv12:
- id: dyFile12
- absolutePath: E:/java/nginx-1.24.0/html/webfiles/
- relativePath: webFile12
- hashStart: 60078
- hashEnd: 65535
- restUrl: http://127.0.0.1:${pipIrr.file12.webPort}/file
- webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
- webDownloadPath: http://127.0.0.1:${pipIrr.file12.webPort}/file/download/down?id=
-
-
-#椤圭洰缂栧彿
-#projectCode:
-# ym: 100
-# sp: 101
-
-#椤圭洰閰嶇疆
-project:
- #椤圭洰缂栫爜
- projectNo: 10
- #鎺у埗鍣ㄧ被鍨�
- controllerType: 57
- #榛樿琛屾斂鍖哄垝缂栫爜锛堝ぉ娲�-澶╂触甯�-姝︽竻鍖�-浜花宸ヤ笟鍥�-澶х鑺傛按锛�
- divisionCode: 120114403100
-
-
-#閫氳涓棿浠剁浉鍏抽厤缃�
-#protocol: DYJS_2023,DYJS_2024
-mw:
- #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
- ym:
- comSendUrl: "http://192.168.40.166:8070/rtuMw/com/send"
- rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
- sp:
- comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
- rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
- test:
- comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
- rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
- #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
- rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
- #寰俊灏忕▼搴忓洖璋冨湴鍧�
- rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
-
-#涓嶈繘琛寀serToken杩囨护鐨刄RL锛孈ConfigurationProperties瑕佹眰tokennofilter涓墍鏈夊瓧姣嶉兘灏忓啓
-tokennofilter:
- urls:
- - /sso/sso
- - /remote/comRes/receive
- - /wx/comRes/receive
- - /app/captcha/get
- - /file/file #web鍒嗗竷寮忔枃浠剁郴缁�
- - /file/fm #web鍒嗗竷寮忔枃浠剁郴缁�
-
-#鑷姩缁熻閰嶇疆锛岃嚜鍔ㄧ粺璁″畾鏃朵换鍔′細姣忓ぉ瀹氭椂杩涜
-auto-statistics:
- startHour: 0 #寮�濮嬪皬鏃� 0
- startMinute: 5 #寮�濮嬪垎閽� 5
-
-#閽夐拤娑堟伅鎺ㄩ��
-dingtalk:
- ym:
- enable: true #鏄惁鍚敤
- robot:
- url: https://oapi.dingtalk.com/robot/send
- access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
- secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
- at-all: true
- mobile: 18602657034
- sp:
- enable: true #鏄惁鍚敤
- robot:
- url: https://oapi.dingtalk.com/robot/send
- access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
- secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
- at-all: true
- mobile: 18602657034
- test:
- enable: true #鏄惁鍚敤
- robot:
- url: https://oapi.dingtalk.com/robot/send
- access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
- secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
- at-all: true
- mobile: 18602657034
-
-#闃�鎺у櫒鍙傛暟
-rtu:
- batteryVolt: 17
- signalIntensity:
- weak: 10
- ordinary: 20
-# strong: 20
-
-#铏氭嫙鍗¢厤缃弬鏁�
-vc:
- #铏氭嫙鍗℃渶浣庝綑棰濇姤璀﹀��
- alarmValue: 10
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index fc2033d..c037eec 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -310,22 +310,16 @@
#閫氳涓棿浠剁浉鍏抽厤缃�
#protocol: DYJS_2023,DYJS_2024
mw:
- #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+ #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
ym:
+ url: "http://127.0.0.1:8070"
comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
sp:
+ url: "http://127.0.0.1:8073"
comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
test:
+ url: "http://127.0.0.1:8072"
comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
- ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
- rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
- rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
#鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
#rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
index b177eb6..cf15a1f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -337,10 +337,10 @@
SELECT
COUNT(*) AS recordCount
FROM se_card_operate ope
- INNER JOIN se_client cli ON ope.client_id = cli.id
- INNER JOIN se_client_card card ON card.id = ope.card_id
- LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id
- INNER JOIN ba_user us ON ope.operator = us.id
+ LEFT JOIN se_client cli ON ope.client_id = cli.id
+ LEFT JOIN se_client_card card ON card.id = ope.card_id
+ LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id
+ LEFT JOIN ba_user us ON ope.operator = us.id
<where>
AND ope.operate_type IN(1,2,3,5,10)
AND ope.operate_valid = 2
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
index cf4d386..dc3f161 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -88,12 +88,19 @@
* 鍥犱负寮哄埗缁撴潫鍗囩骇浠诲姟锛屽涓�涓湭鍗囩骇瀹屾垚鐨凴TU灏变細鍗℃锛�
* 鎵�浠ュ綋寮哄埗缁撴潫鍗囩骇浠诲姟锛屼唬鐮侀�昏緫骞舵病鏈夊己鍒剁粨鏋淩TU鍗囩骇杩囩▼锛屽鏋滃崌绾ц繃绋嬩篃寮哄埗鍋滄锛岄偅涔圧TU鐪熶細鍗℃
*/
- public void forceOverUpgradeTask() {
+ public String forceOverUpgradeTask() {
if(this.task != null){
- this.stop();
- this.task.forceOver();
+ this.task.countRunningRtuCount();
+ if(this.task.curUgRunningRtuTotal > 0){
+ return "褰撳墠瀛樺湪鍗囩骇涓殑璁惧锛屼笉鑳界粨鏉熷崌绾т换鍔�" ;
+ }else{
+ this.stop();
+ this.task.forceOver();
+ return null ;
+ }
+ }else{
+ return "褰撳墠娌℃湁鍗囩骇浠诲姟" ;
}
- this.task = null ;
}
/**
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
index 4378bb4..b4707e6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -52,7 +52,7 @@
///////////////////////////////////////////////////
//浠ヤ笅鍐呴儴鎺у埗鐢�
@JSONField(serialize = false)
- private int curUgRunningRtuTotal = 0 ;//褰撳墠姝e湪鍗囩骇鐨凴TU涓暟
+ protected int curUgRunningRtuTotal = 0 ;//褰撳墠姝e湪鍗囩骇鐨凴TU涓暟
public UpgradeTask() {
this.curUgRunningRtuTotal = 0 ;
@@ -176,7 +176,6 @@
}
}
}
-
/**
* 寮哄埗缁撴潫鍗囩骇浠诲姟
*/
@@ -190,6 +189,7 @@
}
}
+
/**
* 褰撳墠鍗囩骇鐘舵��
* @return
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
index d2b8947..c1f02d0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
@@ -56,7 +56,7 @@
@Override
public void stop(UnitCallbackInterface callback) throws Exception {
- overUpgradeTask() ;
+ forceOverUpgradeTask() ;
}
@@ -73,12 +73,15 @@
}
/**
- * 鍋滄褰撳墠鍗囩骇浠诲姟
+ * 缁撴潫褰撳墠鍗囩骇浠诲姟
* @throws Exception
+ * @return null锛氱粨鏉熶换鍔℃垚鍔燂紝鍚﹀垯杩斿洖澶辫触鍘熷洜
*/
- public void overUpgradeTask() throws Exception {
+ public String forceOverUpgradeTask() throws Exception {
if(manager != null ){
- manager.forceOverUpgradeTask() ;
+ return manager.forceOverUpgradeTask() ;
+ }else{
+ return "閫氫俊涓棿浠跺唴閮ㄩ敊璇�" ;
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index 46ad9d1..675f636 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -1,6 +1,7 @@
package com.dy.rtuMw.web.com;
import com.dy.common.softUpgrade.state.UpgradeTaskVo;
+import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.rtuMw.resource.ResourceUnit;
import com.dy.rtuMw.server.ServerProperties;
import com.dy.rtuMw.server.forTcp.TcpSessionCache;
@@ -161,6 +162,25 @@
}
/**
+ * 鎺ユ敹web绯荤粺鍙戞潵寮哄埗缁撴潫鍗囩骇浠诲姟
+ * @return
+ */
+ @PostMapping(path = "ugForceOver", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public BaseResponse<String> ugForceOver() {
+ log.info("鏀跺埌鍋滄RTU鍗囩骇浠诲姟鍛戒护") ;
+ try{
+ String mes = UpgradeUnit.getInstance().forceOverUpgradeTask();
+ if(mes == null){
+ mes = "鍋滄鍗囩骇浠诲姟鎴愬姛" ;
+ }
+ return BaseResponseUtils.buildResult(ResultCodeMsg.RsCode.SUCCESS_CODE, mes, mes);
+ }catch (Exception e){
+ log.error("鍋滄RTU鍗囩骇浠诲姟鏃跺彂鐢熷紓甯�", e);
+ return BaseResponseUtils.buildError("鍋滄RTU鍗囩骇浠诲姟鏃跺彂鐢熷紓甯�" + (e.getMessage() == null?"":("锛�" + e.getMessage())));
+ }
+ }
+
+ /**
* 鎺ユ敹web绯荤粺鍙戞潵鐨勫懡浠�
* @param com
* @return
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
index cf03982..3876932 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
@@ -53,7 +53,7 @@
if(ServerProperties.argMultiDie){
if(count9602 > 10){
int random = CreateRandom.create_between(10, 100) ;
- if(random > 98){
+ if(random > 90){
UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦
}else{
UpCd9602.upData() ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
index aa1a917..8115374 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
@@ -9,7 +9,6 @@
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoUg.UgRtuTask;
import com.dy.pipIrrGlobal.voUg.VoUgResult;
-import com.dy.pipIrrGlobal.voUg.VoUgRtuResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -83,7 +82,8 @@
* @param response
*/
@RequestMapping(value = "/exportAll", method = RequestMethod.GET)
- public void exportUgFail(HttpServletResponse response, QueryUgResultVo vo) throws Exception {
+ @SsoAop()
+ public void exportAll(HttpServletResponse response, QueryUgResultVo vo) throws Exception {
if(vo.state != null && vo.state == 1){
//鏌ヨ鍗囩骇鎴愬姛鐨�
vo.fail = null ;
@@ -95,7 +95,7 @@
setExcelRespProp(response, "鍗囩骇缁撴灉鍒楄〃");
List<VoUgResult> rsList = this.sv.selectAll(vo);
EasyExcel.write(response.getOutputStream())
- .head(VoUgRtuResult.class)
+ .head(VoUgResult.class)
.excelType(ExcelTypeEnum.XLSX)
.sheet("鍗囩骇缁撴灉鍒楄〃")
.doWrite(rsList);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
index a85672a..a4f1e1f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
@@ -9,7 +9,7 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
import com.dy.pipIrrGlobal.rtuMw.CodeLocal;
-import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
@@ -29,7 +29,7 @@
*/
@Slf4j
@Service
-public class MonitorSv extends ToRtuMwCom {
+public class MonitorSv extends Web2RtuMw {
@Autowired
private PrIntakeMapper prIntakeMapper;
@@ -76,8 +76,8 @@
//鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
Command com = this.createInnerCommand(CodeLocal.onLinePart);
com.setParam(rtuAddrs) ;
- String comSendUrl = this.getToMwUrl(this.env) ;
- BaseResponse res = sendCom2Mw(restTemplate, comSendUrl, com) ;
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ;
+ BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, com) ;
if(res != null){
if(res.isSuccess()){
Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
@@ -114,8 +114,8 @@
private QueryResultVo<List<VoOnLineIntake>> selectIntakesOnOrOffLine(QueryVo vo) {
//鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
Command com = this.createInnerCommand(CodeLocal.onLineAll);
- String comSendUrl = this.getToMwUrl(this.env) ;
- BaseResponse res = sendCom2Mw(restTemplate, comSendUrl, com) ;
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ;
+ BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, com) ;
if(res != null){
if(res.isSuccess()){
Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
index 18ffe64..84a72ae 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
@@ -1,9 +1,9 @@
package com.dy.pipIrrRemote.rtu;
import com.dy.common.aop.SsoAop;
-import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@@ -32,11 +32,7 @@
@Slf4j
@RestController
@RequestMapping(path="rtuLog")
-public class RtuLogCtrl {
-
- private static final String pro_mw = "mw";
- private static final String key_mw_file = "rtuLogFileUrl";
- private static final String key_mw_text = "rtuLogTextUrl";
+public class RtuLogCtrl extends Web2RtuMw {
private Environment env ;
private RestTemplate restTemplate;
@@ -55,10 +51,10 @@
@GetMapping(path = "file")
@SsoAop()
public BaseResponse<List<String>> rtuLogFile(String rtuAddr, HttpServletRequest req, HttpServletResponse rep){
- String mwUrlRtuLogFile = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_file);
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextRtuLogFile) ;
ServletOutputStream out = null ;
try{
- byte[] bs = this.requestMw4File(rtuAddr, mwUrlRtuLogFile) ;
+ byte[] bs = this.requestMw4File(rtuAddr, rqUrl) ;
if(bs != null && bs.length > 0){
String fileReName = rtuAddr + ".log" ;
//URLEncoder.encode鍙互闃叉涓枃涔辩爜
@@ -91,8 +87,9 @@
@GetMapping(path="text")
@SsoAop()
public BaseResponse<List<String>> rtuLogText(String rtuAddr){
- String mwUrlRtuLogText = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_text);
- BaseResponse<List<String>> text = this.requestMw4Text(rtuAddr, mwUrlRtuLogText);
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextRtuLogText) ;
+ //String mwUrlRtuLogText = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_text);
+ BaseResponse<List<String>> text = this.requestMw4Text(rtuAddr, rqUrl);
if (text != null){
if (text.getContent().get(0).contains("鎺у埗鍣�")){
return BaseResponseUtils.buildErrorMsg(""+text.getContent().get(0)+"") ;
@@ -101,7 +98,6 @@
}else {
return BaseResponseUtils.buildErrorMsg("鑾峰彇鏃ュ織鏂囦欢涓簄ull") ;
}
-// return this.requestMw4Text(rtuAddr, mwUrlRtuLogText) ;
}
@@ -141,5 +137,4 @@
return (response==null?null:response.getBody());
}
-
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
index d5929d6..63053ca 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
@@ -3,7 +3,6 @@
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.dy.common.aop.SsoAop;
-import com.dy.common.softUpgrade.state.UpgradeRtu;
import com.dy.common.softUpgrade.state.UpgradeTaskVo;
import com.dy.common.springUtil.SpringContextUtil;
import com.dy.common.webUtil.BaseResponse;
@@ -12,8 +11,7 @@
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram;
import com.dy.pipIrrGlobal.pojoUg.UgRtuTask;
-import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom;
-import com.dy.pipIrrGlobal.voPr.VoDivide;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
import com.dy.pipIrrGlobal.voUg.VoUgRtuResult;
import com.dy.pipIrrGlobal.voUg.VoWatch;
import io.swagger.v3.oas.annotations.Operation;
@@ -35,7 +33,6 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
-import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
@@ -48,7 +45,7 @@
@Tag(name = "rtu杩滅▼鍗囩骇浠诲姟", description = "rtu杩滅▼鍗囩骇浠诲姟鐩稿叧鎿嶄綔")
@RestController
@RequestMapping(path = "rtuUpgrade")
-public class RtuUpgradeCtrl extends ToRtuMwCom {
+public class RtuUpgradeCtrl extends Web2RtuMw {
@Autowired
private RtuUpgradeSv sv ;
@@ -108,8 +105,8 @@
vo.rtuAddrList = taskRtuAddrs ;
vo.callbackWebUrl = ugCallbackUrl_rm ;
- String ugSendUrl = this.getToMwUgUrl(this.env) ;
- BaseResponse res = sendUpgradeTask2Mw(restTemplate, ugSendUrl, vo) ;
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextUgTaskSend) ;
+ BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, vo) ;
if(res != null){
if(res.isSuccess()){
this.sv.setUpgradeTaskExecuted(id);
@@ -127,6 +124,41 @@
return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
}
}
+ /**
+ * 涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Operation(summary = "涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟", description = "涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖鎿嶄綔鎴愬姛涓庡惁鏁版嵁锛圔aseResponse.content:Boolean锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = String.class))}
+ )
+ })
+ @GetMapping(path = "/forceOver")
+ @SsoAop()
+ public BaseResponse<String> forceOver() {
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextUgForceOver) ;
+ BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, null) ;
+ if(res != null){
+ if(res.isSuccess()){
+ return BaseResponseUtils.buildSuccess(true) ;
+ }else{
+ String msg = res.getContent()==null?null:(String)res.getContent() ;
+ if(msg == null){
+ msg = res.getMsg() ;
+ }
+ log.error("閫氫俊涓棿浠舵墽琛屼笅鍙戝己鍒剁粨鏉熷綋鍓峳tu杩滅▼鍗囩骇浠诲姟澶辫触锛�" + msg) ;
+ return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠舵墽琛屽己鍒剁粨鏉熷綋鍓峳tu杩滅▼鍗囩骇浠诲姟澶辫触锛�" + msg) ;
+ }
+ }else{
+ log.error("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
+ return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
+ }
+ }
+
private void valueFromPo(UpgradeTaskVo vo, UgRtuTask tpo, UgRtuProgram ppo){
vo.id = "" + tpo.id ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
index eb37c52..9a8f18f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
@@ -49,15 +49,8 @@
@Hidden //涓嶅叕寮�鎺ュ彛锛屽叾鍙湁閫氫俊涓棿浠惰皟鐢�
@PostMapping(path = "/receive")
public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo info, HttpServletRequest req, HttpServletResponse rep){
+ /*
log.info("鎺ユ敹鍒扮殑RTU杩滅▼鍗囩骇鐘舵�佹暟鎹负锛歿}", info.toString("532328000214"));
- //杩涜鎺掑簭
- //Comparator<UpgradeRtu> comparator = Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder());
- //info.ugRtuStateList = info.ugRtuStateList.stream().sorted(comparator).collect(Collectors.toList());
-
- //閫氫俊涓棿浠朵紶杩囨潵鐨勬満鏋則ag锛屼互鐢ㄤ簬鏌ユ壘鏁版嵁婧�
- String token = req.getHeader(Constant.UserTokenKeyInHeader);
- DataSourceContext.set(token);
-
if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
if(info.ugRtuStateList.size() < 10){
for (UpgradeRtu rtuVo : info.ugRtuStateList) {
@@ -65,6 +58,16 @@
}
}
}
+ */
+
+ //杩涜鎺掑簭
+ Comparator<UpgradeRtu> comparator = Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder());
+ info.ugRtuStateList = info.ugRtuStateList.stream().sorted(comparator).collect(Collectors.toList());
+
+ //閫氫俊涓棿浠朵紶杩囨潵鐨勬満鏋則ag锛屼互鐢ㄤ簬鏌ユ壘鏁版嵁婧�
+ String token = req.getHeader(Constant.UserTokenKeyInHeader);
+ DataSourceContext.set(token);
+
if(cache == null){
cache = info;
//姝ゆ椂涓嶅仛浠诲姟鎿嶄綔锛屽彧淇濋殰cache涓嶄负绌猴紝 绛夊緟涓嬫鍙戞潵鏁版嵁
@@ -80,12 +83,11 @@
//姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull
this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList);
}
- if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
- //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull
- info.ugRtuStateList.stream().sorted(Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder())).collect(Collectors.toList());
- }
//cache璧嬪�煎繀椤绘斁鍦ㄤ笂闈㈠鐞嗙殑鍚庨潰锛屽惁鍒欎笂闈㈢殑姣旇緝涓嶆垚鍔�
cache = info;
+ if(info.ugOverallState != null && info.ugOverallState.allOver){
+ this.saveTaskOver(info.ugTaskId) ;
+ }
}
return null;
}
@@ -110,15 +112,30 @@
private void save2Db(String taskId, List<UpgradeRtu> newList, List<UpgradeRtu> oldList){
List<UpgradeRtu> newOverList = newList.stream().filter(vo -> vo.isOver).collect(Collectors.toList()) ;
List<UpgradeRtu> oldNoOverList = newList.stream().filter(vo -> !vo.isOver).collect(Collectors.toList()) ;
+ boolean oldExist = false ;
for(UpgradeRtu nvo : newOverList){
- if(nvo != null) {
- if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){
- //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
- this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo);
- }
+ oldExist = false ;
+ if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){
+ oldExist = true ;
+ }
+ if(!oldExist){
+ //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
+ this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo);
}
}
}
+
+ /**
+ * 淇濆瓨鍗囩骇浠诲姟宸茬粡鎵ц瀹屾垚
+ * @param taskId
+ */
+ private void saveTaskOver(String taskId){
+ this.sv.updateTaskOver(taskId) ;
+ }
+
+
+
+
/////////////////////////////////////////////////////
//
// 浠ヤ笅妯℃嫙鏁版嵁
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
index 11787ec..018f0dc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
@@ -90,6 +90,14 @@
}
+ /**
+ * 璁剧疆鍗囩骇浠诲姟宸茬粡瀹屾垚
+ * @param taskId
+ */
+ public void updateTaskOver(String taskId){
+ tdao.overById(Long.valueOf(taskId)) ;
+ }
+
/////////////////////////////////////////////////////
//
// 浠ヤ笅婕旂ず鍗囩骇鍔熻兘鐢ㄥ埌
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
index 7b50431..31e7ab8 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -412,6 +412,36 @@
if (list.size() == 0) {
return new HashMap();
}
+//鍏冭皨涓�鏈熼檰甯镐附闇�姹傛妸璧犻�侀噾棰濅笌鍏呭�奸噾棰濆垎寮�鏄剧ず
+ for (int i = list.size()-1; i >= 0 ; i--) {
+ Optional.ofNullable(list.get(i).getGift()).orElse(0d);
+ if (!list.get(i).getGift().equals(0d)){
+ Double gift1 = list.get(i).getGift();
+ String districtTitle = list.get(i).getDistrictTitle();
+ String clientNum = list.get(i).getClientNum();
+ String clientName = list.get(i).getClientName();
+ String phone = list.get(i).getPhone();
+ Date tradeTime = list.get(i).getTradeTime();
+
+ list.get(i).setGift(0d);
+
+ VoTradeDetails voTradeDetail = new VoTradeDetails();
+ voTradeDetail.setDistrictTitle(districtTitle);
+ voTradeDetail.setClientNum(clientNum);
+ voTradeDetail.setClientName(clientName);
+ voTradeDetail.setPhone(phone);
+ voTradeDetail.setOperateType("璧犻��");
+ voTradeDetail.setTradeTime(tradeTime);
+ voTradeDetail.setWaterCost(0d);
+ voTradeDetail.setCardCost(0d);
+ voTradeDetail.setGift(gift1);
+
+ list.add(voTradeDetail);
+ itemTotal = itemTotal + 1;
+ }
+ }
+ rsVo.obj = list;
+ rsVo.calculateAndSet(itemTotal, params);
// 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬昏喘姘撮噾棰濄�佽喘鍗¢噾棰�
Double totalWaterCost = 0.0;
--
Gitblit v1.8.0