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