From 915221c09726c4105ecadd58aed1ea1cc860d504 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期五, 07 六月 2024 14:06:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java | 608 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 497 insertions(+), 111 deletions(-) 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) ; } /** -- Gitblit v1.8.0