| | |
| | | return resultVo; |
| | | } |
| | | |
| | | |
| | | //订单退款 |
| | | returnOrderMoney(chargeMachineDto, chargeMachinePortDto, "用户手工结束"); |
| | | |
| | |
| | | return; |
| | | } |
| | | |
| | | String chargeHours = chargeMachineOrderDtos.get(0).getChargeHours(); |
| | | double cHours = Double.parseDouble(chargeHours); |
| | | if (999 == cHours) { |
| | | cHours = 10; |
| | | } |
| | | |
| | | Date startTime = DateUtil.getDateFromStringA(chargeMachineOrderDtos.get(0).getStartTime()); |
| | | |
| | | double usedHours = Math.ceil((DateUtil.getCurrentDate().getTime() - startTime.getTime()) / (60 * 60 * 1000.00)); |
| | | |
| | | BigDecimal freeHours = new BigDecimal(cHours).subtract(new BigDecimal(usedHours)); |
| | | |
| | | double returnMoney = freeHours.multiply(new BigDecimal(Double.parseDouble(chargeMachineDto.getDurationPrice()))).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | |
| | | |
| | | ChargeMachineOrderPo chargeMachineOrderPo = new ChargeMachineOrderPo(); |
| | | chargeMachineOrderPo.setOrderId(chargeMachineOrderDtos.get(0).getOrderId()); |
| | | chargeMachineOrderPo.setRemark(remark); |
| | | chargeMachineOrderPo.setState(ChargeMachineOrderDto.STATE_FINISH); |
| | | BigDecimal amount = new BigDecimal(Double.parseDouble(chargeMachineOrderDtos.get(0).getAmount())).subtract(new BigDecimal(returnMoney)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | chargeMachineOrderPo.setAmount(amount.doubleValue() + ""); |
| | | chargeMachineOrderPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | chargeMachineOrderPo.setCommunityId(chargeMachineOrderDtos.get(0).getCommunityId()); |
| | | int flag = chargeMachineOrderV1InnerServiceSMOImpl.updateChargeMachineOrder(chargeMachineOrderPo); |
| | | if (flag < 1) { |
| | | throw new IllegalArgumentException("修改订单失败"); |
| | | } |
| | | String chargeHours = chargeMachineOrderDtos.get(0).getChargeHours(); |
| | | if ("999".equals(chargeHours)) { |
| | | chargeHours = "10"; |
| | | } |
| | | |
| | | double cHours = Double.parseDouble(chargeHours); |
| | | |
| | | Date startTime = DateUtil.getDateFromStringA(chargeMachineOrderDtos.get(0).getStartTime()); |
| | | |
| | | double usedHours = Math.ceil((DateUtil.getCurrentDate().getTime() - startTime.getTime()) / (60 * 60 * 1000)); |
| | | |
| | | BigDecimal freeHours = new BigDecimal(cHours).subtract(new BigDecimal(usedHours)); |
| | | |
| | | double returnMoney = freeHours.multiply(new BigDecimal(Double.parseDouble(chargeMachineDto.getDurationPrice()))).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | |
| | | AccountDto accountDto = new AccountDto(); |
| | | accountDto.setAcctId(chargeMachineOrderDtos.get(0).getAcctDetailId()); |
| | |
| | | accountDetailPo.setAmount(returnMoney + ""); |
| | | accountDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId)); |
| | | accountInnerServiceSMOImpl.prestoreAccount(accountDetailPo); |
| | | |
| | | //充电表中加入退款金额 |
| | | |
| | | ChargeMachineOrderAcctPo chargeMachineOrderAcctPo = new ChargeMachineOrderAcctPo(); |
| | | chargeMachineOrderAcctPo.setAcctDetailId(accountDetailPo.getDetailId()); |
| | | chargeMachineOrderAcctPo.setAmount((-1 * returnMoney) + ""); |
| | | |
| | | chargeMachineOrderAcctPo.setCmoaId(GenerateCodeFactory.getGeneratorId("11")); |
| | | chargeMachineOrderAcctPo.setOrderId(chargeMachineOrderDtos.get(0).getOrderId()); |
| | | chargeMachineOrderAcctPo.setAcctId(accountDtos.get(0).getAcctId()); |
| | | chargeMachineOrderAcctPo.setStartTime(chargeMachineOrderDtos.get(0).getStartTime()); |
| | | |
| | | chargeMachineOrderAcctPo.setEndTime(chargeMachineOrderDtos.get(0).getEndTime()); |
| | | chargeMachineOrderAcctPo.setRemark("账户退款-" + remark); |
| | | chargeMachineOrderAcctPo.setCommunityId(chargeMachineOrderDtos.get(0).getCommunityId()); |
| | | chargeMachineOrderAcctPo.setEnergy("0"); |
| | | |
| | | chargeMachineOrderAcctV1InnerServiceSMOImpl.saveChargeMachineOrderAcct(chargeMachineOrderAcctPo); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public ResultVo finishCharge(NotifyChargeOrderDto notifyChargeOrderDto) { |
| | | |
| | | // todo 生成 充电订单 |
| | | ChargeMachineOrderPo chargeMachineOrderPo = new ChargeMachineOrderPo(); |
| | | chargeMachineOrderPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | chargeMachineOrderPo.setState(ChargeMachineOrderDto.STATE_FINISH); |
| | | chargeMachineOrderPo.setOrderId(notifyChargeOrderDto.getOrderId()); |
| | | chargeMachineOrderV1InnerServiceSMOImpl.updateChargeMachineOrder(chargeMachineOrderPo); |
| | | // // todo 生成 充电订单 |
| | | // ChargeMachineOrderPo chargeMachineOrderPo = new ChargeMachineOrderPo(); |
| | | // chargeMachineOrderPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | // chargeMachineOrderPo.setState(ChargeMachineOrderDto.STATE_FINISH); |
| | | // chargeMachineOrderPo.setOrderId(notifyChargeOrderDto.getOrderId()); |
| | | // chargeMachineOrderV1InnerServiceSMOImpl.updateChargeMachineOrder(chargeMachineOrderPo); |
| | | |
| | | ChargeMachineDto chargeMachineDto = new ChargeMachineDto(); |
| | | chargeMachineDto.setMachineCode(notifyChargeOrderDto.getMachineCode()); |
| | | List<ChargeMachineDto> chargeMachineDtos = chargeMachineV1InnerServiceSMOImpl.queryChargeMachines(chargeMachineDto); |
| | | |
| | | Assert.listOnlyOne(chargeMachineDtos, "充电桩 不存在"); |
| | | //Assert.listOnlyOne(chargeMachineDtos, "充电桩 不存在"); |
| | | |
| | | if(chargeMachineDtos == null || chargeMachineDtos.size() < 1){ |
| | | return new ResultVo(ResultVo.CODE_OK, "成功"); |
| | | } |
| | | |
| | | // todo 插槽是否空闲 |
| | | |
| | |
| | | chargeMachinePortDto.setPortCode(notifyChargeOrderDto.getPortCode()); |
| | | chargeMachinePortDto.setState(ChargeMachinePortDto.STATE_WORKING); |
| | | List<ChargeMachinePortDto> chargeMachinePortDtos = chargeMachinePortV1InnerServiceSMOImpl.queryChargeMachinePorts(chargeMachinePortDto); |
| | | Assert.listOnlyOne(chargeMachinePortDtos, "插槽忙线"); |
| | | //Assert.listOnlyOne(chargeMachinePortDtos, "插槽空闲"); |
| | | if(chargeMachinePortDtos == null || chargeMachinePortDtos.size() < 1){ |
| | | return new ResultVo(ResultVo.CODE_OK, "成功"); |
| | | } |
| | | |
| | | ChargeMachinePortPo chargeMachinePortPo = new ChargeMachinePortPo(); |
| | | chargeMachinePortPo.setPortId(chargeMachinePortDtos.get(0).getPortId()); |
| | |
| | | "\"msg\" : \"success\"\n" + |
| | | "}", HttpStatus.OK); |
| | | } |
| | | |
| | | @Override |
| | | public void queryChargeMachineState(List<ChargeMachineDto> chargeMachineDtos) { |
| | | |
| | | for(ChargeMachineDto chargeMachineDto : chargeMachineDtos) { |
| | | try { |
| | | ChargeMachineFactoryDto chargeMachineFactoryDto = new ChargeMachineFactoryDto(); |
| | | chargeMachineFactoryDto.setFactoryId(chargeMachineDto.getImplBean()); |
| | | List<ChargeMachineFactoryDto> chargeMachineFactoryDtos = chargeMachineFactoryV1InnerServiceSMOImpl.queryChargeMachineFactorys(chargeMachineFactoryDto); |
| | | |
| | | Assert.listOnlyOne(chargeMachineFactoryDtos, "充电桩厂家不存在"); |
| | | |
| | | IChargeFactoryAdapt chargeFactoryAdapt = ApplicationContextFactory.getBean(chargeMachineFactoryDtos.get(0).getBeanImpl(), IChargeFactoryAdapt.class); |
| | | if (chargeFactoryAdapt == null) { |
| | | throw new CmdException("厂家接口未实现"); |
| | | } |
| | | chargeFactoryAdapt.queryChargeMachineState(chargeMachineDto); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | chargeMachineDto.setState(ChargeMachineDto.STATE_OFFLINE); |
| | | chargeMachineDto.setStateName("离线"); |
| | | } |
| | | } |
| | | } |
| | | } |