| | |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | Long intakeId = automaticClose.getIntakeId(); |
| | | Long vcId = automaticClose.getVcId(); |
| | | Date plannedOpenTime = automaticClose.getPlannedOpenTime(); |
| | | Integer minutes = automaticClose.getMinutes(); |
| | | Long operator = automaticClose.getOperator(); |
| | | Long comId = new IDLongGenerator().generate(); |
| | | |
| | | Integer year = Integer.parseInt(String.format("%tY", plannedOpenTime)); |
| | | Integer month = Integer.parseInt(String.format("%tm", plannedOpenTime)); |
| | | Integer day = Integer.parseInt(String.format("%td", plannedOpenTime)); |
| | | Integer hour = Integer.parseInt(String.format("%tH", plannedOpenTime)); |
| | | Integer minute = Integer.parseInt(String.format("%tM", plannedOpenTime)); |
| | | |
| | | /** |
| | | * 如果农户选择了虚拟卡,则使用该虚拟卡 |
| | | * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡 |
| | | * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡 |
| | | */ |
| | | if(vcId == null) { |
| | | vcId = commandSv.getVcIdByIntakeId(intakeId); |
| | | if(vcId == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | } |
| | | Map map_result = commandSv.planedOpenTimedClose(automaticClose, null,null); |
| | | if(map_result.get("success").equals(false)) { |
| | | return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(map_result.get("content")) ; |
| | | |
| | | // 虚拟卡ID换虚拟卡对象 |
| | | VoVirtualCard vc = commandSv.getVcById(vcId); |
| | | if(vc == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | } |
| | | String vcNum = vc.getVcNum().toString(); |
| | | Double moneyRemain = vc.getMoney(); |
| | | |
| | | // 获取水价 |
| | | Double waterPrice = commandSv.getPrice(); |
| | | if(waterPrice == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); |
| | | } |
| | | |
| | | // 取水口ID换阀控器地址及通讯协议 |
| | | JSONObject job_rtu = getRtu(intakeId, null); |
| | | if(job_rtu == null) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); |
| | | } |
| | | String rtuAddr = job_rtu.getString("rtuAddr"); |
| | | String protocol = job_rtu.getString("protocol"); |
| | | //String orgTag = job_rtu.getString("orgTag"); |
| | | //if(orgTag == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_SET_DATA_SOURCE.getMessage()); |
| | | //Long intakeId = automaticClose.getIntakeId(); |
| | | //Long vcId = automaticClose.getVcId(); |
| | | //Date plannedOpenTime = automaticClose.getPlannedOpenTime(); |
| | | //Integer minutes = automaticClose.getMinutes(); |
| | | //Long operator = automaticClose.getOperator(); |
| | | //Long openingId = automaticClose.getOpeningId(); |
| | | //Long comId = new IDLongGenerator().generate(); |
| | | // |
| | | //if(openingId != null) { |
| | | // IrIntakeOperate irIntakeOperate = new IrIntakeOperate(); |
| | | // irIntakeOperate.setOpeningId(openingId); |
| | | // irIntakeOperate.setCommandId(comId); |
| | | // System.out.println("------------------------------------------------comId: " + comId); |
| | | // irIntakeOperate.setIntakeId(intakeId); |
| | | // Long id = commandSv.addIntakeOperate(irIntakeOperate); |
| | | // if(id == null) { |
| | | // return BaseResponseUtils.buildErrorMsg("添加取水口操作记录失败"); |
| | | // } |
| | | //} |
| | | //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(ProtocolConstantV206V202404.protocolName)) { |
| | | return BaseResponseUtils.buildSuccess(); |
| | | } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) { |
| | | // 获取功能码 |
| | | commandCode = CodeV1.cd_A1; |
| | | |
| | | // 创建视图 |
| | | ComA1Vo param = new ComA1Vo(); |
| | | param.setIcCardNo(vcNum); |
| | | param.setMoneyRemain(moneyRemain); |
| | | param.setWaterPrice(waterPrice); |
| | | param.setMinutes(minutes); |
| | | param.setYear(year); |
| | | param.setMonth(month); |
| | | param.setDay(day); |
| | | param.setHour(hour); |
| | | param.setMinute(minute); |
| | | param.setOrderNo(orderNo); |
| | | |
| | | /** |
| | | * 构造命令、发送命令并处理请求结果及执行结果 |
| | | * 1 准备参数 |
| | | * 2 调用公共方法 |
| | | */ |
| | | Param myParam = new Param(); |
| | | myParam.setComId(comId); |
| | | myParam.setComType((byte)1); |
| | | myParam.setCommandCode(commandCode); |
| | | myParam.setCommandName(CodeV1.getCodeName(commandCode)); |
| | | myParam.setIntakeId(intakeId); |
| | | myParam.setRtuAddr(rtuAddr); |
| | | myParam.setProtocol(protocol); |
| | | myParam.setVcId(vcId); |
| | | myParam.setParam(param); |
| | | myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx); |
| | | myParam.setOperator(operator); |
| | | return dealWithCommandResult(myParam); |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | } |
| | | // |
| | | //Integer year = Integer.parseInt(String.format("%tY", plannedOpenTime)); |
| | | //Integer month = Integer.parseInt(String.format("%tm", plannedOpenTime)); |
| | | //Integer day = Integer.parseInt(String.format("%td", plannedOpenTime)); |
| | | //Integer hour = Integer.parseInt(String.format("%tH", plannedOpenTime)); |
| | | //Integer minute = Integer.parseInt(String.format("%tM", plannedOpenTime)); |
| | | // |
| | | ///** |
| | | // * 如果农户选择了虚拟卡,则使用该虚拟卡 |
| | | // * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡 |
| | | // * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡 |
| | | // */ |
| | | //if(vcId == null) { |
| | | // vcId = commandSv.getVcIdByIntakeId(intakeId); |
| | | // if(vcId == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | // } |
| | | //} |
| | | // |
| | | //// 虚拟卡ID换虚拟卡对象 |
| | | //VoVirtualCard vc = commandSv.getVcById(vcId); |
| | | //if(vc == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage()); |
| | | //} |
| | | //String vcNum = vc.getVcNum().toString(); |
| | | //Double moneyRemain = vc.getMoney(); |
| | | // |
| | | //// 获取水价 |
| | | //Double waterPrice = commandSv.getPrice(); |
| | | //if(waterPrice == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_WATER_PRICE.getMessage()); |
| | | //} |
| | | // |
| | | //// 取水口ID换阀控器地址及通讯协议 |
| | | //JSONObject job_rtu = getRtu(intakeId, null); |
| | | //if(job_rtu == null) { |
| | | // return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage()); |
| | | //} |
| | | //String rtuAddr = job_rtu.getString("rtuAddr"); |
| | | //String protocol = job_rtu.getString("protocol"); |
| | | // |
| | | //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(ProtocolConstantV206V202404.protocolName)) { |
| | | // return BaseResponseUtils.buildSuccess(); |
| | | //} else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) { |
| | | // // 获取功能码 |
| | | // commandCode = CodeV1.cd_A1; |
| | | // |
| | | // // 创建视图 |
| | | // ComA1Vo param = new ComA1Vo(); |
| | | // param.setIcCardNo(vcNum); |
| | | // param.setMoneyRemain(moneyRemain); |
| | | // param.setWaterPrice(waterPrice); |
| | | // param.setMinutes(minutes); |
| | | // param.setYear(year); |
| | | // param.setMonth(month); |
| | | // param.setDay(day); |
| | | // param.setHour(hour); |
| | | // param.setMinute(minute); |
| | | // param.setOrderNo(orderNo); |
| | | // |
| | | // /** |
| | | // * 构造命令、发送命令并处理请求结果及执行结果 |
| | | // * 1 准备参数 |
| | | // * 2 调用公共方法 |
| | | // */ |
| | | // Param myParam = new Param(); |
| | | // myParam.setComId(comId); |
| | | // myParam.setComType((byte)1); |
| | | // myParam.setCommandCode(commandCode); |
| | | // myParam.setCommandName(CodeV1.getCodeName(commandCode)); |
| | | // myParam.setIntakeId(intakeId); |
| | | // myParam.setRtuAddr(rtuAddr); |
| | | // myParam.setProtocol(protocol); |
| | | // myParam.setVcId(vcId); |
| | | // myParam.setParam(param); |
| | | // myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx); |
| | | // myParam.setOperator(operator); |
| | | // myParam.setOpeningId(openingId); |
| | | // return dealWithCommandResult(myParam); |
| | | //} else { |
| | | // return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议"); |
| | | //} |
| | | } |
| | | |
| | | /** |