|  |  | 
 |  |  | package com.dy.pipIrrWechat.command; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson2.JSONObject; | 
 |  |  | import com.dy.common.multiDataSource.DataSourceContext; | 
 |  |  | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; | 
 |  |  | import com.dy.common.mw.protocol.p206V1_0_0.downVos.*; | 
 |  |  | import com.dy.common.mw.protocol.p206V202404.CodeV202404; | 
 |  |  | 
 |  |  | 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.command.ComSupport; | 
 |  |  | import com.dy.pipIrrGlobal.command.dto.Param; | 
 |  |  | import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; | 
 |  |  | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; | 
 |  |  | import com.dy.pipIrrGlobal.voRm.VoIrrigaterProfile; | 
 |  |  | import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; | 
 |  |  | import com.dy.pipIrrGlobal.voSe.VoVirtualCard; | 
 |  |  | import com.dy.pipIrrWechat.command.dto.AutomaticClose; | 
 |  |  | import com.dy.pipIrrWechat.command.dto.Recharge; | 
 |  |  | import com.dy.pipIrrWechat.command.dto.ValveClose; | 
 |  |  | import com.dy.pipIrrWechat.command.dto.ValveOpen; | 
 |  |  | import com.dy.pipIrrWechat.command.dto.*; | 
 |  |  | import com.dy.pipIrrWechat.result.WechatResultCode; | 
 |  |  | import io.swagger.v3.oas.annotations.tags.Tag; | 
 |  |  | import jakarta.validation.Valid; | 
 |  |  | 
 |  |  | @Tag(name = "小程序阀控器控制", description = "小程序阀控器控制") | 
 |  |  | @RestController | 
 |  |  | @RequestMapping(path = "valve") | 
 |  |  | //@RequiredArgsConstructor | 
 |  |  | public class ValveCtrl extends ComSupport { | 
 |  |  |     private final CommandSv commandSv; | 
 |  |  |     private final SeVirtualCardMapper seVirtualCardMapper; | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 获取水价 | 
 |  |  |         Double waterPrice = commandSv.getPrice(); | 
 |  |  |         if(waterPrice == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 取水口ID换阀控器地址及通讯协议 | 
 |  |  |         JSONObject job_rtu = getRtu(intakeId, null); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         String rtuAddr = job_rtu.getString("rtuAddr"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         // 生成订单号 | 
 |  |  |         String orderNo = generateOrderNo(); | 
 |  |  |         if(orderNo == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_ORDER_NUMBER.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if (protocol.equals("p206V202404")) { | 
 |  |  | 
 |  |  |         } | 
 |  |  |         Long intakeId = job_rtu.getLong("intakeId"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if (protocol.equals("p206V202404")) { | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 获取水价 | 
 |  |  |         Double waterPrice = commandSv.getPrice(); | 
 |  |  |         if(waterPrice == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 取水口ID换阀控器地址及通讯协议 | 
 |  |  |         JSONObject job_rtu = getRtu(intakeId, null); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         String rtuAddr = job_rtu.getString("rtuAddr"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         // 生成订单号 | 
 |  |  |         String orderNo = generateOrderNo(); | 
 |  |  |         if(orderNo == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_ORDER_NUMBER.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if(protocol.equals("p206V202404")) { | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 获取水价 | 
 |  |  |         Double waterPrice = commandSv.getPrice(); | 
 |  |  |         if(waterPrice == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 取水口ID换阀控器地址及通讯协议 | 
 |  |  |         JSONObject job_rtu = getRtu(intakeId, null); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         String rtuAddr = job_rtu.getString("rtuAddr"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         // 生成订单号 | 
 |  |  |         String orderNo = generateOrderNo(); | 
 |  |  |         if(orderNo == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_ORDER_NUMBER.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if(protocol.equals("p206V202404")) { | 
 |  |  |             return BaseResponseUtils.buildSuccess(); | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 获取水价 | 
 |  |  |         Double waterPrice = commandSv.getPrice(); | 
 |  |  |         if(waterPrice == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 取水口ID换阀控器地址及通讯协议 | 
 |  |  |         JSONObject job_rtu = getRtu(intakeId, null); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         String rtuAddr = job_rtu.getString("rtuAddr"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         // 生成订单号 | 
 |  |  |         String orderNo = generateOrderNo(); | 
 |  |  |         if(orderNo == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_ORDER_NUMBER.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if(protocol.equals("p206V202404")) { | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 获取水价 | 
 |  |  |         Double waterPrice = commandSv.getPrice(); | 
 |  |  |         if(waterPrice == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 取水口ID换阀控器地址及通讯协议 | 
 |  |  |         JSONObject job_rtu = getRtu(intakeId, null); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         String rtuAddr = job_rtu.getString("rtuAddr"); | 
 |  |  |         String protocol = job_rtu.getString("protocol"); | 
 |  |  |         String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         //String orgTag = job_rtu.getString("orgTag"); | 
 |  |  |         //if(orgTag == null) { | 
 |  |  |         //    return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); | 
 |  |  |         //} | 
 |  |  |         //comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw); | 
 |  |  |         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); | 
 |  |  |  | 
 |  |  |         // 生成订单号 | 
 |  |  |         String orderNo = generateOrderNo(); | 
 |  |  |         if(orderNo == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_ORDER_NUMBER.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         String commandCode = null; | 
 |  |  |         if(protocol.equals("p206V202404")) { | 
 |  |  | 
 |  |  |             log.error("获取未关阀记录异常", e); | 
 |  |  |             return BaseResponseUtils.buildException(e.getMessage()); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 强制隐藏未关阀记录:为指定(阀控器地址、水卡编号、无关阀记录)开关阀最新记录添加关阀时间,使之不在未关阀记录中显示 | 
 |  |  |      * @param po | 
 |  |  |      * @param bindingResult | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping(path = "deleteUnclosed", consumes = MediaType.APPLICATION_JSON_VALUE) | 
 |  |  |     public BaseResponse<Boolean> deleteUnclosed(@RequestBody @Valid deleteUnclosedParam po, BindingResult bindingResult) { | 
 |  |  |         if(bindingResult != null && bindingResult.hasErrors()){ | 
 |  |  |             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         commandSv.addClostTime(po.getRtuAddr(), po.getVcNum()); | 
 |  |  |         return BaseResponseUtils.buildSuccess(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |             return BaseResponseUtils.buildFail("系统暂不支持该协议"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据配置类型获取配置值 | 
 |  |  |      * @param type | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @GetMapping(path = "/irrigate_profile") | 
 |  |  |     public BaseResponse<QueryResultVo<List<VoIrrigaterProfile>>> getIrrPro(Integer type){ | 
 |  |  |         try { | 
 |  |  |             return BaseResponseUtils.buildSuccess(commandSv.getIrrPro(type)); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return BaseResponseUtils.buildException(e.getMessage()) ; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | } |