diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index edfdb9553..d7a44d097 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -303,7 +303,7 @@ public interface IOrderBasicInfoService { /** * 生成订单日报 */ - void generateDailyOrderReports(String stationId, String tradeDate); + // void generateDailyOrderReports(String stationId, String tradeDate); /** * 获取运营商订单列表 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index dc5d203ed..5c33fc254 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2563,120 +2563,120 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @param stationId 站点id * @param tradeDate 交易日期 */ - @Override - public void generateDailyOrderReports(String stationId, String tradeDate) { - // logger.info("线程名===={}", Thread.currentThread().getName()); - if (StringUtils.isBlank(stationId)) { - return; - } - if (StringUtils.isBlank(tradeDate)) { - // 日期为空默认昨天 - tradeDate = LocalDate.now().plusDays(-1).toString(); - } - PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId); - // 查询站点前一天结算完成的订单 - QueryOrderDTO dto = new QueryOrderDTO(); - dto.setStationId(stationId); - LocalDate parse = LocalDate.parse(tradeDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); - String startTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MIN)); - String endTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MAX)); - dto.setStartSettleTime(startTime); - dto.setEndSettleTime(endTime); - // 查询结算完成的订单 - List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto); - // if (CollectionUtils.isEmpty(orderListVOS)) { - // logger.info("站点:{}, 在{}-{}没有查询到订单数据", stationInfo.getStationName(), startTime, endTime); - // return; - // } - List collect = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); - logger.info("站点:{}, 在{}-{}查询到订单数据{}条,订单编号:{}", stationInfo.getStationName(), startTime, endTime, orderListVOS.size(), collect); - // 统计出日报信息 - BigDecimal useElectricity = BigDecimal.ZERO; - int chargeNum = 0; - long chargeTime = 0L; - BigDecimal totalElectricityAmount = BigDecimal.ZERO; - BigDecimal totalServiceAmount = BigDecimal.ZERO; - BigDecimal totalOrderAmount = BigDecimal.ZERO; - BigDecimal totalVirtualAmount = BigDecimal.ZERO; - BigDecimal totalSettleAmount = BigDecimal.ZERO; - List orderCodeList = Lists.newArrayList(); - for (OrderListVO vo : orderListVOS) { - // 统计结算金额大于0的 - BigDecimal settleAmount = StringUtils.isBlank(vo.getSettleAmount()) - ? BigDecimal.ZERO - : new BigDecimal(vo.getSettleAmount()); - if (settleAmount.compareTo(BigDecimal.ZERO) <= 0) { - // 只统计用电量大于0的 - continue; - } - - // 订单消费金额 - String orderAmount = vo.getOrderAmount(); - - // 用电度数 - BigDecimal chargingDegree = StringUtils.isBlank(vo.getChargingDegree()) - ? BigDecimal.ZERO - : new BigDecimal(vo.getChargingDegree()); - - // 充电度数累计 - useElectricity = useElectricity.add(chargingDegree); - - // 充电次数 - chargeNum += 1; - orderCodeList.add(vo.getOrderCode()); - - // 充电时间累计 - if (StringUtils.isNotBlank(vo.getChargeStartTime()) && StringUtils.isNotBlank(vo.getChargeEndTime())) { - long l = DateUtils.intervalTime(vo.getChargeStartTime(), vo.getChargeEndTime()); - chargeTime += l; - } - - // 电费金额 - BigDecimal e = vo.getTotalElectricityAmount() != null ? vo.getTotalElectricityAmount() : BigDecimal.ZERO; - totalElectricityAmount = totalElectricityAmount.add(e); - - // 服务费金额 - BigDecimal serviceAmount = vo.getTotalServiceAmount() != null ? vo.getTotalServiceAmount() : BigDecimal.ZERO; - totalServiceAmount = totalServiceAmount.add(serviceAmount); - - // 订单金额 - totalOrderAmount = totalOrderAmount.add(new BigDecimal(orderAmount)); - - // 虚拟金额 - String virtualAmount = StringUtils.isNotBlank(vo.getVirtualAmount()) ? vo.getVirtualAmount() : Constants.ZERO; - totalVirtualAmount = totalVirtualAmount.add(new BigDecimal(virtualAmount)); - - // 结算金额 - totalSettleAmount = totalSettleAmount.add(settleAmount); - } - - // 计算报表 - SettleOrderReport settleOrderReport = new SettleOrderReport(); - String settleCode = "SETTLE_" + IdUtils.getOrderCode(); - settleOrderReport.setSettleCode(settleCode); - settleOrderReport.setMerchantId(stationInfo.getMerchantId()); - settleOrderReport.setStationId(stationId); - settleOrderReport.setUseElectricity(useElectricity); - settleOrderReport.setChargeNum(chargeNum + ""); - settleOrderReport.setChargeTime(chargeTime + ""); - settleOrderReport.setElectricityAmount(totalElectricityAmount); - settleOrderReport.setServiceAmount(totalServiceAmount); - settleOrderReport.setTotalAmount(totalOrderAmount); - settleOrderReport.setVirtualAmount(totalVirtualAmount); - settleOrderReport.setTradeDate(tradeDate); - settleOrderReport.setOrderCodes(Joiner.on(",").join(orderCodeList)); - // 计算手续费 = 结算金额 * 0.55% - SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(totalSettleAmount); - settleOrderReport.setTradeFee(splitSettleAmountVO.getFeeAmount()); - settleOrderReport.setTradeAmount(splitSettleAmountVO.getTradeAmount()); - // 根据站点id和交易日期查询 - SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, tradeDate); - if (selectResult != null) { - settleOrderReport.setId(selectResult.getId()); - } - // 订单日报 新增或更新 - settleOrderReportService.insertOrUpdate(settleOrderReport); - } + // @Override + // public void generateDailyOrderReports(String stationId, String tradeDate) { + // // logger.info("线程名===={}", Thread.currentThread().getName()); + // if (StringUtils.isBlank(stationId)) { + // return; + // } + // if (StringUtils.isBlank(tradeDate)) { + // // 日期为空默认昨天 + // tradeDate = LocalDate.now().plusDays(-1).toString(); + // } + // PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId); + // // 查询站点前一天结算完成的订单 + // QueryOrderDTO dto = new QueryOrderDTO(); + // dto.setStationId(stationId); + // LocalDate parse = LocalDate.parse(tradeDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + // String startTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MIN)); + // String endTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MAX)); + // dto.setStartSettleTime(startTime); + // dto.setEndSettleTime(endTime); + // // 查询结算完成的订单 + // List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto); + // // if (CollectionUtils.isEmpty(orderListVOS)) { + // // logger.info("站点:{}, 在{}-{}没有查询到订单数据", stationInfo.getStationName(), startTime, endTime); + // // return; + // // } + // List collect = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); + // logger.info("站点:{}, 在{}-{}查询到订单数据{}条,订单编号:{}", stationInfo.getStationName(), startTime, endTime, orderListVOS.size(), collect); + // // 统计出日报信息 + // BigDecimal useElectricity = BigDecimal.ZERO; + // int chargeNum = 0; + // long chargeTime = 0L; + // BigDecimal totalElectricityAmount = BigDecimal.ZERO; + // BigDecimal totalServiceAmount = BigDecimal.ZERO; + // BigDecimal totalOrderAmount = BigDecimal.ZERO; + // BigDecimal totalVirtualAmount = BigDecimal.ZERO; + // BigDecimal totalSettleAmount = BigDecimal.ZERO; + // List orderCodeList = Lists.newArrayList(); + // for (OrderListVO vo : orderListVOS) { + // // 统计结算金额大于0的 + // BigDecimal settleAmount = StringUtils.isBlank(vo.getSettleAmount()) + // ? BigDecimal.ZERO + // : new BigDecimal(vo.getSettleAmount()); + // if (settleAmount.compareTo(BigDecimal.ZERO) <= 0) { + // // 只统计用电量大于0的 + // continue; + // } + // + // // 订单消费金额 + // String orderAmount = vo.getOrderAmount(); + // + // // 用电度数 + // BigDecimal chargingDegree = StringUtils.isBlank(vo.getChargingDegree()) + // ? BigDecimal.ZERO + // : new BigDecimal(vo.getChargingDegree()); + // + // // 充电度数累计 + // useElectricity = useElectricity.add(chargingDegree); + // + // // 充电次数 + // chargeNum += 1; + // orderCodeList.add(vo.getOrderCode()); + // + // // 充电时间累计 + // if (StringUtils.isNotBlank(vo.getChargeStartTime()) && StringUtils.isNotBlank(vo.getChargeEndTime())) { + // long l = DateUtils.intervalTime(vo.getChargeStartTime(), vo.getChargeEndTime()); + // chargeTime += l; + // } + // + // // 电费金额 + // BigDecimal e = vo.getTotalElectricityAmount() != null ? vo.getTotalElectricityAmount() : BigDecimal.ZERO; + // totalElectricityAmount = totalElectricityAmount.add(e); + // + // // 服务费金额 + // BigDecimal serviceAmount = vo.getTotalServiceAmount() != null ? vo.getTotalServiceAmount() : BigDecimal.ZERO; + // totalServiceAmount = totalServiceAmount.add(serviceAmount); + // + // // 订单金额 + // totalOrderAmount = totalOrderAmount.add(new BigDecimal(orderAmount)); + // + // // 虚拟金额 + // String virtualAmount = StringUtils.isNotBlank(vo.getVirtualAmount()) ? vo.getVirtualAmount() : Constants.ZERO; + // totalVirtualAmount = totalVirtualAmount.add(new BigDecimal(virtualAmount)); + // + // // 结算金额 + // totalSettleAmount = totalSettleAmount.add(settleAmount); + // } + // + // // 计算报表 + // SettleOrderReport settleOrderReport = new SettleOrderReport(); + // String settleCode = "SETTLE_" + IdUtils.getOrderCode(); + // settleOrderReport.setSettleCode(settleCode); + // settleOrderReport.setMerchantId(stationInfo.getMerchantId()); + // settleOrderReport.setStationId(stationId); + // settleOrderReport.setUseElectricity(useElectricity); + // settleOrderReport.setChargeNum(chargeNum + ""); + // settleOrderReport.setChargeTime(chargeTime + ""); + // settleOrderReport.setElectricityAmount(totalElectricityAmount); + // settleOrderReport.setServiceAmount(totalServiceAmount); + // settleOrderReport.setTotalAmount(totalOrderAmount); + // settleOrderReport.setVirtualAmount(totalVirtualAmount); + // settleOrderReport.setTradeDate(tradeDate); + // settleOrderReport.setOrderCodes(Joiner.on(",").join(orderCodeList)); + // // 计算手续费 = 结算金额 * 0.55% + // SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(totalSettleAmount); + // settleOrderReport.setTradeFee(splitSettleAmountVO.getFeeAmount()); + // settleOrderReport.setTradeAmount(splitSettleAmountVO.getTradeAmount()); + // // 根据站点id和交易日期查询 + // SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, tradeDate); + // if (selectResult != null) { + // settleOrderReport.setId(selectResult.getId()); + // } + // // 订单日报 新增或更新 + // settleOrderReportService.insertOrUpdate(settleOrderReport); + // } /** * 通过结算金额,计算客户到账金额和手续费