|  |  | 
 |  |  |  | 
 |  |  |     private static final String ComCode = "92" ; | 
 |  |  |  | 
 |  |  |     private static final Double maxRemainMoney = 9999.9999D ;//协议支持的剩余金额最大值 | 
 |  |  |     public static final Double MaxRemainMoney = 9999.9999D ;//协议支持的剩余金额最大值 | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private CdSv sv ; | 
 |  |  | 
 |  |  |                 if(vcPo.getMoney() <= 0.0){ | 
 |  |  |                     return BaseResponseUtils.buildErrorMsg("农户该虚拟卡中剩余金额为0,不能再应用其开阀") ; | 
 |  |  |                 } | 
 |  |  |                 if(vcPo.getMoney() >= maxRemainMoney){ | 
 |  |  |                     return BaseResponseUtils.buildErrorMsg("农户该虚拟卡中剩余金额大于协议支持的最大值" + maxRemainMoney + ",不能再应用其开阀") ; | 
 |  |  |                 if(vcPo.getMoney() >= MaxRemainMoney){ | 
 |  |  |                     return BaseResponseUtils.buildErrorMsg("农户该虚拟卡中剩余金额大于协议支持的最大值" + MaxRemainMoney + ",不能再应用其开阀") ; | 
 |  |  |                 } | 
 |  |  |                 Double waterPrice = sv.selectWaterPrice() ; | 
 |  |  |                 if(waterPrice == null){ | 
 |  |  | 
 |  |  |                                         sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ; | 
 |  |  |                                         //开阀成功,虚拟卡记录上标记已被占用 | 
 |  |  |                                         sv.setVcUsed(vcPo.getId(), dto.getIntakeId()); | 
 |  |  |                                         //记录开阀命令,以备远程关阀 | 
 |  |  |                                         RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()); | 
 |  |  |                                         if(comOpen == null){ | 
 |  |  |                                             RmCommandOpen po = newRmCommandOpen(comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; | 
 |  |  |                                             sv.saveCommandOpen(po); | 
 |  |  |                                         }else{ | 
 |  |  |                                             setRmCommandOpen(comOpen, comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; | 
 |  |  |                                             sv.updateCommandOpen(comOpen); | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                     //记录开阀命令,以备远程关阀 | 
 |  |  |                                     RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()); | 
 |  |  |                                     if(comOpen == null){ | 
 |  |  |                                         RmCommandOpen po = newRmCommandOpen(comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; | 
 |  |  |                                         sv.saveCommandOpen(po); | 
 |  |  |                                     }else{ | 
 |  |  |                                         setRmCommandOpen(comOpen, comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; | 
 |  |  |                                         sv.updateCommandOpen(comOpen); | 
 |  |  |                                     } | 
 |  |  |  | 
 |  |  |                                 } | 
 |  |  |                                 @Override | 
 |  |  |                                 public void call(Object... objs) { | 
 |  |  | 
 |  |  |                 DataCd92_A2Vo cvo = JSON.parseObject(json, DataCd92_A2Vo.class) ; | 
 |  |  |                 if(cvo != null){ | 
 |  |  |                     if(callback != null){ | 
 |  |  |                         if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)0){ | 
 |  |  |                         if(cvo.opResult != null && cvo.opResult.byteValue() == (byte)1){ | 
 |  |  |                             callback.call(true);//开阀成功 | 
 |  |  |                         }else{ | 
 |  |  |                             callback.call(false);//开阀失败 |