From 18fc70a0c4f2bd6c69ccfd58c1b01edc03d87e73 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期二, 23 七月 2024 15:45:45 +0800 Subject: [PATCH] 2024-07-23 朱宝民 PC端及小程序自动关阀(定时、定量),项目信息移入配置文件 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml | 4 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java | 39 +++ pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java | 194 ++++++++++++++++-- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java | 181 ++++++++++++++++- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java | 44 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java | 28 -- pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java | 2 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java | 43 ++++ pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 10 pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java | 25 +- 15 files changed, 487 insertions(+), 99 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java index af014d5..e9c3c09 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java @@ -10,7 +10,7 @@ @Data public class Com99Vo { public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�) - public Integer moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) + public Double moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3) public Integer minutes ;//鐢ㄦ按鏃堕暱锛�0~9999鍒嗛挓锛� public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java index 9f78660..ee1645f 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java @@ -10,7 +10,7 @@ @Data public class ComA0Vo { public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�) - public Integer moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) + public Double moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3) public Integer waterAmount ;//棰勭敤姘撮噺锛�0~9999 m3锛� public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java index 95daca2..8413b02 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java @@ -19,6 +19,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -48,13 +49,20 @@ //@Value("${mw.comSendUrl}") protected String comSendUrl; - protected static String controllerType = null; - protected static Integer projectNo = null; + //protected static String controllerType = null; + //protected static Integer projectNo = null; + + @Value("${project.projectNo}") + protected Integer projectNo; + + @Value("${project.controllerType}") + protected String controllerType; + protected String commandTypeOuter = CommandType.outerCommand; // 瀛樺偍瀹炰緥鍖栫殑 CompletableFuture<Data> 瀵硅薄 protected static Map<Long, Object> features = new HashMap<>(); - protected static Boolean setuped = false; + //protected static Boolean setuped = false; @Autowired private RestTemplate restTemplate; @@ -89,11 +97,11 @@ /** * 鑾峰彇绯荤粺閰嶇疆鍙傛暟 */ - public void setUp() { - controllerType = comSupport.baSettingsMapper.getItemValue("controllerType"); - projectNo = Integer.parseInt(comSupport.baSettingsMapper.getItemValue("projectNo")); - setuped = true; - } + //public void setUp() { + // controllerType = comSupport.baSettingsMapper.getItemValue("controllerType"); + // projectNo = Integer.parseInt(comSupport.baSettingsMapper.getItemValue("projectNo")); + // setuped = true; + //} /** * 鐢熸垚璁㈠崟鍙� @@ -322,6 +330,21 @@ seVirtualCardMapper.updateByPrimaryKeySelective(virtualCard); } + // 濡傛灉鏄紑鍙戝懡浠わ紙92-骞冲彴寮�闃�锛�91-灏忕▼搴忓紑闃�锛夛紝杩斿洖缁撴灉涓坊鍔犻榾鎺у櫒鍦板潃銆佽櫄鎷熷崱缂栧彿銆佽鍗曞彿 + if(commandCode.equals("92") || commandCode.equals("97")) { + JSONObject job_response = (JSONObject) JSON.toJSON(response_CallBack); + JSONObject job_param = (JSONObject) JSON.toJSON(param); + + JSONObject job_data = job_response.getJSONObject("content").getJSONObject("data"); + job_data.remove("success"); + job_data.put("intakeId", intakeId); + job_data.put("rtuAddr", rtuAddr); + job_data.put("vcNum", job_param.getString("icCardNo")); + job_data.put("orderNo", job_param.getString("orderNo")); + + response_CallBack = JSON.parseObject(job_response.toJSONString(), BaseResponse.class); + } + // 鍥炶皟杩斿洖鐨勫唴瀹癸紝鍥炶皟缁撴灉鍐欏叆鍛戒护鏃ュ織琛ㄧ殑浠诲姟鐢变腑闂翠欢瀹屾垚 return response_CallBack; diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml index 30f81cf..41ba0b1 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml @@ -5,9 +5,9 @@ #name: pj type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://192.168.40.166:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.40.166:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull - url: jdbc:mysql://8.140.179.55:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://8.140.179.55:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml index 1bbe4e2..89a4fbc 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml @@ -5,9 +5,9 @@ #name: sp type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull - url: jdbc:mysql://8.140.179.55:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://8.140.179.55:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml index 1177808..3b1c640 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml @@ -5,9 +5,9 @@ #name: ym type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull - url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml index edea437..7cabb1f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml @@ -72,7 +72,7 @@ pipIrr: global: - dev: true #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse + dev: false #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse dsName: ym #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О mw: webPort: 8070 @@ -130,6 +130,14 @@ # ym: 100 # pj: 101 +#椤圭洰閰嶇疆 +project: + #椤圭洰缂栫爜 + projectNo: 10 + #鎺у埗鍣ㄧ被鍨� + controllerType: 57 + + #閫氳鍗忚 #protocol: DYJS_2023,DYJS_2024 mw: diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml index 9373985..34bb341 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml @@ -3,9 +3,9 @@ datasource: #閰嶇疆鏁版嵁婧� type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull - url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java index e98153a..21d02e1 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java @@ -27,7 +27,7 @@ @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE) public void receive(@RequestBody Data data) { JSONObject job_data = (JSONObject) JSON.toJSON(data); - //System.out.println(job_data.toJSONString()); + String job_dataS = job_data.toJSONString(); JSONObject job_subData = job_data.getJSONObject("subData").getJSONObject("subData"); JSONObject job_response = new JSONObject(); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java new file mode 100644 index 0000000..1597b7f --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java @@ -0,0 +1,44 @@ +package com.dy.pipIrrRemote.common.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 10:36 + * @LastEditTime 2024-07-23 10:36 + * @Description 鑷姩鍏抽榾锛堝畾鏃跺叧闃�銆佸畾閲忓叧闃�锛変紶杈撳璞� + */ + +@Data +public class AutomaticClose extends DtoBase { + public static final long serialVersionUID = 202407231039001L; + + /** + * 闃�鎺у櫒鍦板潃 + */ + @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖") + private String rtuAddr; + + /** + * 铏氭嫙鍗$紪鍙� + */ + @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�") + private String vcNum; + + /** + * 璁㈠崟鍙� + */ + @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�") + private String orderNo; + + /** + * 鐢ㄦ按鏃堕暱锛屾嫢鏈夊畾鏃跺叧闃� + */ + private Integer minutes; + + /** + * 棰勭敤姘撮噺锛屾嫢鏈夊畾閲忓叧闃� + */ + private Integer waterAmount; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java index 5768ebf..e4b0ec0 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java @@ -32,9 +32,6 @@ import java.util.Objects; -//import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo; -//import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComXyVo; - /** * @author ZhuBaoMin * @date 2024-05-21 14:31 @@ -93,11 +90,6 @@ Long intakeId = po.getIntakeId(); Long operator = po.getOperator(); Long comId = idLongGenerator.generate(); - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); @@ -179,11 +171,6 @@ Long operator = po.getOperator(); Long comId = idLongGenerator.generate(); - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } - // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); if(job_rtu == null) { @@ -243,11 +230,6 @@ Long intakeId = po.getIntakeId(); Long operator = po.getOperator(); Long comId = idLongGenerator.generate(); - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); @@ -310,11 +292,6 @@ Long operator = po.getOperator(); Long comId = idLongGenerator.generate(); - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } - // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); if(job_rtu == null) { @@ -374,11 +351,6 @@ Long intakeId = po.getIntakeId(); Long operator = po.getOperator(); Long comId = idLongGenerator.generate(); - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java index 06f622c..c0d871e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java @@ -5,8 +5,13 @@ import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo; import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo; +import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com99Vo; +import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComA0Vo; import com.dy.common.mw.protocol.p206V202404.CodeV202404; -import com.dy.common.mw.protocol.p206V202404.downVos.*; +import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo; +import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo; +import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo; +import com.dy.common.mw.protocol.p206V202404.downVos.ComCd9CVo; import com.dy.common.util.IDLongGenerator; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; @@ -104,11 +109,6 @@ if(vcId == null) { return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage()); } - } - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); } // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 @@ -239,11 +239,6 @@ String orderNo = voUnclosedParam.getOrderNo(); Long comId = idLongGenerator.generate(); - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } - // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 JSONObject job_rtu = getRtu(null, rtuAddr); if(job_rtu == null) { @@ -317,6 +312,168 @@ } /** + * 瀹氭椂鍏抽榾 + * @param automaticClose + * @param bindingResult + * @return + */ + @PostMapping(path = "timed_close", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> timedClose(@RequestBody @Valid AutomaticClose automaticClose, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Long intakeId = automaticClose.getIntakeId(); + String rtuAddr = automaticClose.getRtuAddr(); + String vcNum = automaticClose.getVcNum(); + String orderNo = automaticClose.getOrderNo(); + Integer minutes = automaticClose.getMinutes(); + Long operator = automaticClose.getOperator(); + + Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); + Long comId = idLongGenerator.generate(); + + // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 + VoVirtualCard vc = commandSv.getVcById(vcId); + if (vc == null) { + return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage()); + } + Double moneyRemain = vc.getMoney(); + + // 鑾峰彇姘翠环 + Double waterPrice = commandSv.getPrice(); + + // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 + JSONObject job_rtu = getRtu(null, rtuAddr); + if(job_rtu == null) { + return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage()); + } + String protocol = job_rtu.getString("protocol"); + String orgTag = job_rtu.getString("orgTag"); + comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); + + String commandCode = null; + if(protocol.equals("p206V202404")) { + return BaseResponseUtils.buildSuccess(); + } else if(protocol.equals("p206V1_0_1")) { + // 鑾峰彇鍔熻兘鐮� + commandCode = CodeV1_0_1.cd_99; + + // 鍒涘缓瑙嗗浘 + Com99Vo param = new Com99Vo(); + param.setIcCardNo(vcNum); + param.setMoneyRemain(moneyRemain); + param.setWaterPrice(waterPrice); + param.setMinutes(minutes); + param.setOrderNo(orderNo); + + /** + * 鏋勯�犲懡浠ゃ�佸彂閫佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋� + * 1 鍑嗗鍙傛暟 + * 2 璋冪敤鍏叡鏂规硶 + */ + Param myParam = new Param(); + myParam.setComId(comId); + myParam.setComType((byte)2); + myParam.setCommandCode(commandCode); + myParam.setCommandName(CodeV202404.getCodeName(commandCode)); + myParam.setIntakeId(intakeId); + myParam.setRtuAddr(rtuAddr); + myParam.setProtocol(protocol); + myParam.setVcId(vcId); + myParam.setParam(param); + myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm); + myParam.setOperator(operator); + return dealWithCommandResult(myParam); + } else { + return BaseResponseUtils.buildErrorMsg("绯荤粺鏆備笉鏀寔璇ュ崗璁�"); + } + } + + /** + * 瀹氶噺鍏抽榾 + * @param automaticClose + * @param bindingResult + * @return + */ + @PostMapping(path = "quantify_close", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> quantifyClose(@RequestBody @Valid AutomaticClose automaticClose, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Long intakeId = automaticClose.getIntakeId(); + String rtuAddr = automaticClose.getRtuAddr(); + String vcNum = automaticClose.getVcNum(); + String orderNo = automaticClose.getOrderNo(); + Integer waterAmount = automaticClose.getWaterAmount(); + Long operator = automaticClose.getOperator(); + + Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); + Long comId = idLongGenerator.generate(); + + // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 + VoVirtualCard vc = commandSv.getVcById(vcId); + if (vc == null) { + return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage()); + } + Double moneyRemain = vc.getMoney(); + + // 鑾峰彇姘翠环 + Double waterPrice = commandSv.getPrice(); + + // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 + JSONObject job_rtu = getRtu(null, rtuAddr); + if(job_rtu == null) { + return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage()); + } + String protocol = job_rtu.getString("protocol"); + String orgTag = job_rtu.getString("orgTag"); + comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); + + String commandCode = null; + if(protocol.equals("p206V202404")) { + return BaseResponseUtils.buildSuccess(); + } else if(protocol.equals("p206V1_0_1")) { + // 鑾峰彇鍔熻兘鐮� + commandCode = CodeV1_0_1.cd_A0; + + // 鍒涘缓瑙嗗浘 + ComA0Vo param = new ComA0Vo(); + param.setIcCardNo(vcNum); + param.setMoneyRemain(moneyRemain); + param.setWaterPrice(waterPrice); + param.setWaterAmount(waterAmount); + param.setOrderNo(orderNo); + + /** + * 鏋勯�犲懡浠ゃ�佸彂閫佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋� + * 1 鍑嗗鍙傛暟 + * 2 璋冪敤鍏叡鏂规硶 + */ + Param myParam = new Param(); + myParam.setComId(comId); + myParam.setComType((byte)2); + myParam.setCommandCode(commandCode); + myParam.setCommandName(CodeV202404.getCodeName(commandCode)); + myParam.setIntakeId(intakeId); + myParam.setRtuAddr(rtuAddr); + myParam.setProtocol(protocol); + myParam.setVcId(vcId); + myParam.setParam(param); + myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm); + myParam.setOperator(operator); + return dealWithCommandResult(myParam); + } else { + return BaseResponseUtils.buildErrorMsg("绯荤粺鏆備笉鏀寔璇ュ崗璁�"); + } + } + + /** * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍 * @param operator * @return @@ -354,11 +511,6 @@ Long operator = po.getOperator(); String flowNo = RandomStringUtils.randomNumeric(12); // 鐢熸垚12浣嶉殢鏈烘暟 Long comId = idLongGenerator.generate(); - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); @@ -433,11 +585,6 @@ Long operator = card.getOperator(); Long comId = idLongGenerator.generate(); - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } - // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); if(job_rtu == null) { @@ -498,11 +645,6 @@ // Boolean valid = usability.getValid(); // Long operator = usability.getOperator(); // Long comId = idLongGenerator.generate(); - // - // // 鑾峰彇绯荤粺鍙傛暟 - // if(!setuped) { - // setUp(); - // } // // // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 // JSONObject job_rtu = getRtu(intakeId, null); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java index e5e2113..493625f 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandResultCtrl.java @@ -1,8 +1,8 @@ package com.dy.pipIrrWechat.command; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.dy.common.mw.protocol.Data; -import com.dy.common.webUtil.BaseResponse; -import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.command.ComSupport; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; @@ -25,16 +25,21 @@ @RequestMapping(path="comRes") public class CommandResultCtrl extends ComSupport { @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE) - public BaseResponse<String> receive(@RequestBody Data data) { - Long comId = 0L; - if(data.getCommandId() != null) { - comId = Long.parseLong(data.getCommandId()); - } + public void receive(@RequestBody Data data) { + JSONObject job_data = (JSONObject) JSON.toJSON(data); + String job_dataS = job_data.toJSONString(); + JSONObject job_subData = job_data.getJSONObject("subData").getJSONObject("subData"); - CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId); + JSONObject job_response = new JSONObject(); + job_response.put("data", job_subData); + job_response.put("commandCode", job_data.getString("code")); + job_response.put("commandId", job_data.getString("commandId")); + + CompletableFuture<JSONObject> feature = (CompletableFuture<JSONObject>) features.get(job_data.getLong("commandId")); if(feature != null) { - feature.complete(data); + feature.complete(job_response); + }else{ + feature.complete(new JSONObject()); } - return BaseResponseUtils.buildSuccess("ok"); } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java index b3058bf..4dbfadf 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java @@ -1,9 +1,12 @@ package com.dy.pipIrrWechat.command; import com.alibaba.fastjson2.JSONObject; +import com.dy.common.aop.SsoAop; import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo; import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo; +import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com99Vo; +import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComA0Vo; import com.dy.common.mw.protocol.p206V202404.CodeV202404; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo; @@ -17,6 +20,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; +import com.dy.pipIrrWechat.command.dto.AutomaticClose; import com.dy.pipIrrWechat.command.dto.Recharge; import com.dy.pipIrrWechat.command.dto.ValveClose; import com.dy.pipIrrWechat.command.dto.ValveOpen; @@ -116,11 +120,6 @@ if (vcId == null) { return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); } - } - - // 鑾峰彇绯荤粺鍙傛暟 - if (!setuped) { - setUp(); } // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 @@ -240,11 +239,6 @@ Long operator = valve.getOperator(); Long comId = idLongGenerator.generate(); - // 鑾峰彇绯荤粺鍙傛暟 - if (!setuped) { - setUp(); - } - // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 JSONObject job_rtu = getRtu(null, rtuAddr); if (job_rtu == null) { @@ -318,6 +312,168 @@ } /** + * 瀹氭椂鍏抽榾 + * @param automaticClose + * @param bindingResult + * @return + */ + @PostMapping(path = "timed_close", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> timedClose(@RequestBody @Valid AutomaticClose automaticClose, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Long intakeId = automaticClose.getIntakeId(); + String rtuAddr = automaticClose.getRtuAddr(); + String vcNum = automaticClose.getVcNum(); + String orderNo = automaticClose.getOrderNo(); + Integer minutes = automaticClose.getMinutes(); + Long operator = automaticClose.getOperator(); + + Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); + Long comId = idLongGenerator.generate(); + + // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 + VoVirtualCard vc = commandSv.getVcById(vcId); + if (vc == null) { + return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); + } + Double moneyRemain = vc.getMoney(); + + // 鑾峰彇姘翠环 + Double waterPrice = commandSv.getPrice(); + + // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 + JSONObject job_rtu = getRtu(null, rtuAddr); + if(job_rtu == null) { + return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); + } + String protocol = job_rtu.getString("protocol"); + String orgTag = job_rtu.getString("orgTag"); + comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); + + String commandCode = null; + if(protocol.equals("p206V202404")) { + return BaseResponseUtils.buildSuccess(); + } else if(protocol.equals("p206V1_0_1")) { + // 鑾峰彇鍔熻兘鐮� + commandCode = CodeV1_0_1.cd_99; + + // 鍒涘缓瑙嗗浘 + Com99Vo param = new Com99Vo(); + param.setIcCardNo(vcNum); + param.setMoneyRemain(moneyRemain); + param.setWaterPrice(waterPrice); + param.setMinutes(minutes); + param.setOrderNo(orderNo); + + /** + * 鏋勯�犲懡浠ゃ�佸彂閫佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋� + * 1 鍑嗗鍙傛暟 + * 2 璋冪敤鍏叡鏂规硶 + */ + Param myParam = new Param(); + myParam.setComId(comId); + myParam.setComType((byte)2); + myParam.setCommandCode(commandCode); + myParam.setCommandName(CodeV202404.getCodeName(commandCode)); + myParam.setIntakeId(intakeId); + myParam.setRtuAddr(rtuAddr); + myParam.setProtocol(protocol); + myParam.setVcId(vcId); + myParam.setParam(param); + myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx); + myParam.setOperator(operator); + return dealWithCommandResult(myParam); + } else { + return BaseResponseUtils.buildErrorMsg("绯荤粺鏆備笉鏀寔璇ュ崗璁�"); + } + } + + /** + * 瀹氶噺鍏抽榾 + * @param automaticClose + * @param bindingResult + * @return + */ + @PostMapping(path = "quantify_close", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> quantifyClose(@RequestBody @Valid AutomaticClose automaticClose, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Long intakeId = automaticClose.getIntakeId(); + String rtuAddr = automaticClose.getRtuAddr(); + String vcNum = automaticClose.getVcNum(); + String orderNo = automaticClose.getOrderNo(); + Integer waterAmount = automaticClose.getWaterAmount(); + Long operator = automaticClose.getOperator(); + + Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L); + Long comId = idLongGenerator.generate(); + + // 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 + VoVirtualCard vc = commandSv.getVcById(vcId); + if (vc == null) { + return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); + } + Double moneyRemain = vc.getMoney(); + + // 鑾峰彇姘翠环 + Double waterPrice = commandSv.getPrice(); + + // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚 + JSONObject job_rtu = getRtu(null, rtuAddr); + if(job_rtu == null) { + return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); + } + String protocol = job_rtu.getString("protocol"); + String orgTag = job_rtu.getString("orgTag"); + comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); + + String commandCode = null; + if(protocol.equals("p206V202404")) { + return BaseResponseUtils.buildSuccess(); + } else if(protocol.equals("p206V1_0_1")) { + // 鑾峰彇鍔熻兘鐮� + commandCode = CodeV1_0_1.cd_A0; + + // 鍒涘缓瑙嗗浘 + ComA0Vo param = new ComA0Vo(); + param.setIcCardNo(vcNum); + param.setMoneyRemain(moneyRemain); + param.setWaterPrice(waterPrice); + param.setWaterAmount(waterAmount); + param.setOrderNo(orderNo); + + /** + * 鏋勯�犲懡浠ゃ�佸彂閫佸懡浠ゅ苟澶勭悊璇锋眰缁撴灉鍙婃墽琛岀粨鏋� + * 1 鍑嗗鍙傛暟 + * 2 璋冪敤鍏叡鏂规硶 + */ + Param myParam = new Param(); + myParam.setComId(comId); + myParam.setComType((byte)2); + myParam.setCommandCode(commandCode); + myParam.setCommandName(CodeV202404.getCodeName(commandCode)); + myParam.setIntakeId(intakeId); + myParam.setRtuAddr(rtuAddr); + myParam.setProtocol(protocol); + myParam.setVcId(vcId); + myParam.setParam(param); + myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx); + myParam.setOperator(operator); + return dealWithCommandResult(myParam); + } else { + return BaseResponseUtils.buildErrorMsg("绯荤粺鏆備笉鏀寔璇ュ崗璁�"); + } + } + + /** * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍 * * @param operator @@ -354,11 +510,6 @@ Long operator = po.getOperator(); String flowNo = RandomStringUtils.randomNumeric(12); // 鐢熸垚12浣嶉殢鏈烘暟 Long comId = idLongGenerator.generate(); - - // 鑾峰彇绯荤粺鍙傛暟 - if(!setuped) { - setUp(); - } // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚 JSONObject job_rtu = getRtu(intakeId, null); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java new file mode 100644 index 0000000..5989744 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java @@ -0,0 +1,43 @@ +package com.dy.pipIrrWechat.command.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 10:55 + * @LastEditTime 2024-07-23 10:55 + * @Description + */ +@Data +public class AutomaticClose extends DtoBase { + public static final long serialVersionUID = 202407231056001L; + + /** + * 闃�鎺у櫒鍦板潃 + */ + @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖") + private String rtuAddr; + + /** + * 铏氭嫙鍗$紪鍙� + */ + @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�") + private String vcNum; + + /** + * 璁㈠崟鍙� + */ + @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�") + private String orderNo; + + /** + * 鐢ㄦ按鏃堕暱锛屾嫢鏈夊畾鏃跺叧闃� + */ + private Integer minutes; + + /** + * 棰勭敤姘撮噺锛屾嫢鏈夊畾閲忓叧闃� + */ + private Integer waterAmount; +} -- Gitblit v1.8.0