| | |
| | | @ResponseBody |
| | | @PostMapping(value = "/watch/chargingOrder") |
| | | @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"}) |
| | | public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) { |
| | | public R watchChargingOrder(@RequestBody MongoChargingOrderQuery query) { |
| | | Set<Integer> ids = null; |
| | | //校验合作商权限 |
| | | SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); |
| | |
| | | ids = new HashSet<>(data); |
| | | } |
| | | } |
| | | mongoChargingOrderQuery.setSiteIds(ids); |
| | | mongoChargingOrderQuery.setPageSize(10); |
| | | R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery); |
| | | UploadRealTimeMonitoringPageData data1 = all.getData(); |
| | | |
| | | List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); |
| | | Map<String,ChargingOrderVO> map = new HashMap<>(); |
| | | |
| | | for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1.getRecords()) { |
| | | if (roleType==2){ |
| | | List<Boolean> data = partnerClient.watchChargingOrder(sysUser.getObjectId(), uploadRealTimeMonitoringData.getSiteId()).getData(); |
| | | uploadRealTimeMonitoringData.setAuthInfo(data.get(0)); |
| | | uploadRealTimeMonitoringData.setAuthDelete(data.get(1)); |
| | | } |
| | | ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); |
| | | ChargingOrderQuery dto = new ChargingOrderQuery(); |
| | | dto.setCode(uploadRealTimeMonitoringData.getTransaction_serial_number()); |
| | | |
| | | if (map.get(uploadRealTimeMonitoringData.getTransaction_serial_number())==null) { |
| | | TCharingOrderVO vo = chargingOrderService.chargingOrder(dto); |
| | | map.put(uploadRealTimeMonitoringData.getTransaction_serial_number(),vo.getList().getRecords().get(0)); |
| | | if (!vo.getList().getRecords().isEmpty()) { |
| | | ChargingOrderVO chargingOrderVO = vo.getList().getRecords().get(0); |
| | | if (chargingOrderVO != null) { |
| | | BeanUtils.copyProperties(chargingOrderVO, dataDto); |
| | | } |
| | | |
| | | BeanUtils.copyProperties(uploadRealTimeMonitoringData, dataDto); |
| | | if (chargingOrderVO != null && chargingOrderVO.getOrderSource()==2){ |
| | | dataDto.setPeriod_service_price(uploadRealTimeMonitoringData.getPeriod_service_price().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_DOWN))); |
| | | } |
| | | dataDto.setStartTime(uploadRealTimeMonitoringData.getStartTime()); |
| | | dataDto.setEndTime(uploadRealTimeMonitoringData.getEndTime() == null ? null : uploadRealTimeMonitoringData.getEndTime()); |
| | | dataDto.setStatus(uploadRealTimeMonitoringData.getStatus()); |
| | | dtos.add(dataDto); |
| | | } |
| | | }else { |
| | | ChargingOrderVO vo = map.get(uploadRealTimeMonitoringData.getTransaction_serial_number()); |
| | | BeanUtils.copyProperties(vo, dataDto); |
| | | BeanUtils.copyProperties(uploadRealTimeMonitoringData, dataDto); |
| | | dataDto.setStartTime(uploadRealTimeMonitoringData.getStartTime()); |
| | | dataDto.setEndTime(uploadRealTimeMonitoringData.getEndTime() == null ? null : uploadRealTimeMonitoringData.getEndTime()); |
| | | dataDto.setStatus(uploadRealTimeMonitoringData.getStatus()); |
| | | dtos.add(dataDto); |
| | | } |
| | | |
| | | LambdaQueryWrapper<TChargingOrder> queryWrapper = new LambdaQueryWrapper<TChargingOrder>().like(StringUtils.isNotEmpty(query.getCode()), TChargingOrder::getCode, query.getCode()) |
| | | .eq(null != query.getOrderType(), TChargingOrder::getOrderType, query.getOrderType()) |
| | | .eq(null != query.getSiteId(), TChargingOrder::getSiteId, query.getSiteId()) |
| | | .eq(null != query.getPileId(), TChargingOrder::getChargingPileId, query.getPileId()) |
| | | .eq(null != query.getGunId(), TChargingOrder::getChargingGunId, query.getGunId()) |
| | | .eq(null != query.getStatus(), TChargingOrder::getStatus, query.getStatus()) |
| | | .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getRechargePaymentStatus, 2) |
| | | .in(null != ids && ids.size() > 0, TChargingOrder::getSiteId, ids); |
| | | if(StringUtils.isNotEmpty(query.getCreateTime())){ |
| | | String[] split = query.getCreateTime().split(" - "); |
| | | queryWrapper.between(TChargingOrder::getStartTime, split[0], split[1]); |
| | | } |
| | | for (int i = 0; i < dtos.size(); i++) { |
| | | dtos.get(i).setIndex(i); |
| | | if(StringUtils.isNotEmpty(query.getLastTime())){ |
| | | String[] split = query.getLastTime().split(" - "); |
| | | queryWrapper.between(TChargingOrder::getEndTime, split[0], split[1]); |
| | | } |
| | | |
| | | PageChargingOrderAndUploadRealTimeMonitoringDataDto page = new PageChargingOrderAndUploadRealTimeMonitoringDataDto(); |
| | | page.setTotal(data1.getCount()); |
| | | page.setRecords(dtos); |
| | | |
| | | return R.ok(page); |
| | | PageInfo<TChargingOrder> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize()); |
| | | PageInfo<TChargingOrder> orderPageInfo = chargingOrderService.page(pageInfo, queryWrapper.orderByDesc(TChargingOrder::getCreateTime)); |
| | | List<Site> siteList = siteClient.getSiteAll().getData(); |
| | | |
| | | for (TChargingOrder record : orderPageInfo.getRecords()) { |
| | | record.setIdStr(record.getId().toString()); |
| | | Site site = siteList.stream().filter(s->s.getId().equals(record.getSiteId())).findFirst().get(); |
| | | record.setSiteName(site.getName()); |
| | | TChargingPile chargingPile = chargingPileClient.getChargingPileById(record.getChargingPileId()).getData(); |
| | | record.setTerminalName(chargingPile.getName()); |
| | | TChargingGun chargingGun = chargingGunClient.getChargingGunById(record.getChargingGunId()).getData(); |
| | | record.setTerminalCode(chargingGun.getName()); |
| | | |
| | | if(null != record.getStartTime() && null != record.getEndTime()){ |
| | | long time = record.getEndTime().toEpochSecond(ZoneOffset.UTC) - record.getStartTime().toEpochSecond(ZoneOffset.UTC); |
| | | record.setChargingTime(time + ""); |
| | | } |
| | | long count = chargingOrderAccountingStrategyService.count(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, record.getId())); |
| | | record.setTimeFrame(count); |
| | | } |
| | | return R.ok(orderPageInfo); |
| | | } |
| | | |
| | | |