From 3e1da3471f84635cea96b1785c92e248482a5b81 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 11 十二月 2025 11:59:04 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 507 ++++++++++++++++++++++++--------------
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECPushUtil.java | 2
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 4
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SettlementExportVO.java | 4
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 7
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java | 4
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 20 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java | 3
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java | 9
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 187 ++++++++++++++
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java | 2
12 files changed, 550 insertions(+), 201 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
index 292c41d..ff674a6 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -241,6 +241,12 @@
@ApiModelProperty(value = "实时需求电流")
@TableField("need_elec")
private BigDecimal needElec;
+ @ApiModelProperty(value = "开始SOC")
+ @TableField("start_soc")
+ private BigDecimal startSoc;
+ @ApiModelProperty(value = "结束SOC")
+ @TableField("end_soc")
+ private BigDecimal endSoc;
@ApiModelProperty(value = "站点名称")
@TableField(exist = false)
private String siteName;
@@ -280,9 +286,6 @@
@ApiModelProperty(value = "充电时长")
@TableField(exist = false)
private String chargingTime;
- @ApiModelProperty(value = "充电后soc")
- @TableField(exist = false)
- private String endSoc;
@ApiModelProperty(value = "客户昵称")
@TableField(exist = false)
private String userName;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SettlementExportVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SettlementExportVO.java
index bcf7852..1f1954e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SettlementExportVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SettlementExportVO.java
@@ -61,10 +61,6 @@
@ApiModelProperty(value = "充电时长(分钟)")
private String chargingSecond;
- @ApiModelProperty(value = "充电前soc")
- private String startSoc;
- @ApiModelProperty(value = "充电后soc")
- private String endSoc;
@ApiModelProperty(value = "是否限制SOC")
private String isSoc;
@ApiModelProperty(value = "限制SOC方式")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index 918eaeb..5120ee2 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -581,8 +581,8 @@
min = uploadRealTimeMonitoringData.getSoc();
}
}
- settlementExportVO.setEndSoc(max+"");
- settlementExportVO.setStartSoc(min+"");
+ settlementExportVO.setEndSoc(new BigDecimal(max));
+ settlementExportVO.setStartSoc(new BigDecimal(min));
}
}
settlementExportVO.setIsSoc("否");
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index 27425b7..7789280 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -2055,7 +2055,7 @@
break;
}
supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent());
- supEquipChargeStatus.setSOC(new BigDecimal(chargingOrder.getEndSoc()));
+ supEquipChargeStatus.setSOC(chargingOrder.getEndSoc());
supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence());
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECPushUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECPushUtil.java
index 095b90d..677b3c6 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECPushUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECPushUtil.java
@@ -159,7 +159,7 @@
}
supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent());
- supEquipChargeStatus.setSOC(StringUtils.hasLength(chargingOrder.getEndSoc())?new BigDecimal(chargingOrder.getEndSoc()):new BigDecimal("1"));
+ supEquipChargeStatus.setSOC(chargingOrder.getEndSoc());
supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence());
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java
index ef03edc..846b86e 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java
@@ -2123,7 +2123,7 @@
break;
}
supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent());
- supEquipChargeStatus.setSOC(new BigDecimal(chargingOrder.getEndSoc()));
+ supEquipChargeStatus.setSOC(chargingOrder.getEndSoc());
supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence());
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
index 1022a54..02a365e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -111,9 +111,8 @@
@ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
@PutMapping("/export")
public void export(@RequestBody ChargingListQuery dto) {
- ChargingOrderTimeVO res = chargingOrderService.chargingList(dto);
List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>();
- List<ChargingOrderListVO> exportList = res.getExportList();
+ List<ChargingOrderListVO> exportList = chargingOrderService.export(dto);
int i = 1;
List<TChargingGun> data = chargingGunClient.getAllGun().getData();
List<Site> data9 = siteClient.getSiteAll().getData();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index 6c456d8..2549d63 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -82,6 +82,13 @@
List<Map<String, Object>> getYearData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds);
List<ChargingOrderListVO> chargingList(@Param("pageInfo")PageInfo<ChargingOrderListVO> pageInfo, @Param("req") ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2);
+
+ List<Map<String, Object>> chargingList1(@Param("pageInfo")PageInfo<ChargingOrderListVO> pageInfo, @Param("req") ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2);
+
+
+
+ List<Map<String, Object>> chargingListSum(@Param("req") ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2);
+
List<ChargingOrderListVO> chargingListNoPage( @Param("req")ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2);
List<Map<String, Object>> getByDate(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 38dafd3..ce49663 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -168,6 +168,10 @@
ChargingOrderTimeVO chargingList(ChargingListQuery dto);
+
+ List<ChargingOrderListVO> export(ChargingListQuery dto);
+
+
R payRefund(PayOrderRefundDto payOrderQueryDto);
ChargingOrderListInfoVO chargingInfo(String uid);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index a712368..dea831a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1845,103 +1845,200 @@
}
dto.setSiteIds(siteIds);
PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(), dto.getPageSize());
- List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
- List<Site> sites = siteClient.getSiteAll().getData();
- List<Long> collect1 = list.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
- if(collect1.isEmpty()){
- collect1.add(-1L);
- }
- List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list();
- for (ChargingOrderListVO chargingOrderListVO : list) {
+// List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
+// List<Site> sites = siteClient.getSiteAll().getData();
+// List<Long> collect1 = list.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
+// if(collect1.isEmpty()){
+// collect1.add(-1L);
+// }
+// List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list();
+// for (ChargingOrderListVO chargingOrderListVO : list) {
+// if (roleType == 2) {
+// List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData();
+// chargingOrderListVO.setAuthInfo(data.get(0));
+// chargingOrderListVO.setAuthCurve(data.get(1));
+// }
+// chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
+// BigDecimal bigDecimal = new BigDecimal("0.006");
+// if (chargingOrderListVO.getOrderAmount() != null) {
+// chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getRechargeAmount().multiply(bigDecimal));
+// }
+// chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
+// chargingOrderListVO.setUid(chargingOrderListVO.getId() + "");
+// List<Integer> integers = new ArrayList<>();
+// integers.add(chargingOrderListVO.getSiteId());
+// Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null);
+// if (site != null) {
+// chargingOrderListVO.setSiteName(site.getName());
+// }
+// if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) {
+// TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
+// TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
+// if (data2 != null && data1 != null) {
+// chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
+// }
+// }
+// if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) {
+// LocalDateTime startTime = chargingOrderListVO.getStartTime();
+// LocalDateTime endTime = chargingOrderListVO.getEndTime();
+// // 计算时间差 单位秒
+// long between = ChronoUnit.SECONDS.between(startTime, endTime);
+// chargingOrderListVO.setChargingSecond(between);
+// }
+// // 获取开始SOC 结束soc
+// if (chargingOrderListVO.getCode() != null) {
+// UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "asc");
+// UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "desc");
+// if(null != asc){
+// chargingOrderListVO.setStartSoc(asc.getSoc().toString());
+// }
+// if(null != desc){
+// chargingOrderListVO.setEndSoc(desc.getSoc().toString());
+// }
+// }
+//
+// if (chargingOrderListVO.getAppUserId() != null) {
+// TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
+// List<Long> carId = new ArrayList<>();
+// if (data3 != null) {
+// if (chargingOrderListVO.getAppUserCarId() != null) {
+// carId.add(chargingOrderListVO.getAppUserCarId());
+// if (!carId.isEmpty()) {
+// List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData();
+// if (data4 != null && !data4.isEmpty()) {
+// chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+// }
+// }
+// } else {
+// chargingOrderListVO.setLicensePlate(chargingOrderListVO.getPlateNum());
+// }
+// chargingOrderListVO.setPhone(data3.getPhone());
+// }
+// }
+// List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(s->s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList());
+// // 尖峰平谷充电量 度数
+// BigDecimal jian = new BigDecimal("0");
+// BigDecimal feng = new BigDecimal("0");
+// BigDecimal ping = new BigDecimal("0");
+// BigDecimal gu = new BigDecimal("0");
+// BigDecimal total = new BigDecimal("0");
+// for (TChargingOrderAccountingStrategy temp : list2) {
+// if (temp.getChargingCapacity() == null) {
+// temp.setChargingCapacity(BigDecimal.ZERO);
+// }
+// switch (temp.getType()) {
+// case 1:
+// jian = jian.add(temp.getChargingCapacity());
+// break;
+// case 2:
+// feng = feng.add(temp.getChargingCapacity());
+// break;
+// case 3:
+// ping = ping.add(temp.getChargingCapacity());
+// break;
+// case 4:
+// gu = gu.add(temp.getChargingCapacity());
+// break;
+// }
+// }
+// total = total.add(jian).add(feng).add(ping).add(gu);
+// if (total.compareTo(new BigDecimal("0")) != 0) {
+// chargingOrderListVO.setElectronicProportion(
+// jian.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(尖)/"
+// + feng.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(峰)/"
+// + ping.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(平)/"
+// + gu.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(谷)");
+// } else {
+// chargingOrderListVO.setElectronicProportion(
+// "0" + "%(尖)/" +
+// "0" + "%(峰)/" +
+// "0" + "%(平)/" +
+// "0" + "%(谷)");
+// }
+// if (chargingOrderListVO.getOrderSource().equals(2)) {
+// chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge() != null ?
+// chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)
+// : new BigDecimal("0"));
+// } else {
+// chargingOrderListVO.setSharingAmount(new BigDecimal("0"));
+// }
+// }
+
+ List<ChargingOrderListVO> list = new ArrayList<>();
+ List<Map<String, Object>> maps = this.baseMapper.chargingList1(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
+ for (Map<String, Object> map : maps) {
+ ChargingOrderListVO chargingOrderListVO = new ChargingOrderListVO();
if (roleType == 2) {
List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData();
chargingOrderListVO.setAuthInfo(data.get(0));
chargingOrderListVO.setAuthCurve(data.get(1));
}
+ chargingOrderListVO.setCode(map.get("code").toString());
+ chargingOrderListVO.setSiteName(map.get("siteName").toString());
+ chargingOrderListVO.setOrderType(map.get("orderType").toString());
+ chargingOrderListVO.setTerminalName(map.get("terminalName").toString());
+ chargingOrderListVO.setElectricity(null == map.get("electricity") ? BigDecimal.ZERO : new BigDecimal(map.get("electricity").toString()));
chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
+ Object periodElectricPrice = map.get("periodElectricPrice");
+ Object periodServicePrice = map.get("periodServicePrice");
+ if(null != periodServicePrice){
+ Integer orderSource = Integer.valueOf(map.get("orderSource").toString());
+ if(2 == orderSource){
+ BigDecimal bigDecimal = new BigDecimal(periodServicePrice.toString()).multiply(new BigDecimal(0.8)).setScale(2, RoundingMode.HALF_EVEN);
+ chargingOrderListVO.setPaymentAmount(new BigDecimal(periodElectricPrice.toString()).add(bigDecimal));
+ BigDecimal sharingAmount = new BigDecimal(periodServicePrice.toString()).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_EVEN);
+ chargingOrderListVO.setSharingAmount(sharingAmount);
+ }else{
+ chargingOrderListVO.setPaymentAmount(new BigDecimal(periodElectricPrice.toString()).add(new BigDecimal(periodServicePrice.toString())).setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrderListVO.setSharingAmount(BigDecimal.ZERO);
+ }
+ }else{
+ chargingOrderListVO.setPaymentAmount(BigDecimal.ZERO);
+ chargingOrderListVO.setSharingAmount(BigDecimal.ZERO);
+ }
+ chargingOrderListVO.setElectrovalence(null == map.get("electrovalence") ? BigDecimal.ZERO : new BigDecimal(map.get("electrovalence").toString()));
+ chargingOrderListVO.setServiceCharge(null == map.get("serviceCharge") ? BigDecimal.ZERO : new BigDecimal(map.get("serviceCharge").toString()));
BigDecimal bigDecimal = new BigDecimal("0.006");
- if (chargingOrderListVO.getOrderAmount() != null) {
- chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getRechargeAmount().multiply(bigDecimal));
+ if (!"0".equals(map.get("rechargePaymentType").toString())) {
+ chargingOrderListVO.setCommissionAmount(new BigDecimal(map.get("rechargeAmount").toString()).multiply(bigDecimal));
}
- chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
- chargingOrderListVO.setUid(chargingOrderListVO.getId() + "");
- List<Integer> integers = new ArrayList<>();
- integers.add(chargingOrderListVO.getSiteId());
- Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null);
- if (site != null) {
- chargingOrderListVO.setSiteName(site.getName());
+ if(null != map.get("tripartitePlatformName")){
+ chargingOrderListVO.setTripartitePlatformName(map.get("tripartitePlatformName").toString());
}
- if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) {
- TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
- TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
- if (data2 != null && data1 != null) {
- chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
- }
+ if(null != map.get("startTime")){
+ chargingOrderListVO.setStartTime(LocalDateTime.parse(map.get("startTime").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
- if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) {
- LocalDateTime startTime = chargingOrderListVO.getStartTime();
- LocalDateTime endTime = chargingOrderListVO.getEndTime();
- // 计算时间差 单位秒
- long between = ChronoUnit.SECONDS.between(startTime, endTime);
- chargingOrderListVO.setChargingSecond(between);
+ if(null != map.get("endTime")){
+ chargingOrderListVO.setEndTime(LocalDateTime.parse(map.get("endTime").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
- // 获取开始SOC 结束soc
- if (chargingOrderListVO.getCode() != null) {
- UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "asc");
- UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "desc");
- if(null != asc){
- chargingOrderListVO.setStartSoc(asc.getSoc().toString());
- }
- if(null != desc){
- chargingOrderListVO.setEndSoc(desc.getSoc().toString());
- }
+ if(null != map.get("chargingSecond")){
+ chargingOrderListVO.setChargingSecond(Long.valueOf(map.get("chargingSecond").toString()));
+ }else{
+ chargingOrderListVO.setChargingSecond(0L);
}
-
- if (chargingOrderListVO.getAppUserId() != null) {
- TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
- List<Long> carId = new ArrayList<>();
- if (data3 != null) {
- if (chargingOrderListVO.getAppUserCarId() != null) {
- carId.add(chargingOrderListVO.getAppUserCarId());
- if (!carId.isEmpty()) {
- List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData();
- if (data4 != null && !data4.isEmpty()) {
- chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
- }
- }
- } else {
- chargingOrderListVO.setLicensePlate(chargingOrderListVO.getPlateNum());
- }
- chargingOrderListVO.setPhone(data3.getPhone());
- }
+ if(null != map.get("startSoc")){
+ chargingOrderListVO.setEndSoc(map.get("startSoc").toString());
}
- List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(s->s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList());
- // 尖峰平谷充电量 度数
- BigDecimal jian = new BigDecimal("0");
- BigDecimal feng = new BigDecimal("0");
- BigDecimal ping = new BigDecimal("0");
- BigDecimal gu = new BigDecimal("0");
- BigDecimal total = new BigDecimal("0");
- for (TChargingOrderAccountingStrategy temp : list2) {
- if (temp.getChargingCapacity() == null) {
- temp.setChargingCapacity(BigDecimal.ZERO);
- }
- switch (temp.getType()) {
- case 1:
- jian = jian.add(temp.getChargingCapacity());
- break;
- case 2:
- feng = feng.add(temp.getChargingCapacity());
- break;
- case 3:
- ping = ping.add(temp.getChargingCapacity());
- break;
- case 4:
- gu = gu.add(temp.getChargingCapacity());
- break;
- }
+ if(null != map.get("endSoc")){
+ chargingOrderListVO.setEndSoc(map.get("endSoc").toString());
}
- total = total.add(jian).add(feng).add(ping).add(gu);
+ if(null != map.get("status")){
+ chargingOrderListVO.setStatus(Integer.valueOf(map.get("status").toString()));
+ }
+ if(null != map.get("endMode")){
+ chargingOrderListVO.setEndMode(Integer.valueOf(map.get("endMode").toString()));
+ }
+ if(null != map.get("phone")){
+ chargingOrderListVO.setPhone(map.get("phone").toString());
+ }
+ if(null != map.get("licensePlate")){
+ chargingOrderListVO.setLicensePlate(map.get("licensePlate").toString());
+ }
+ BigDecimal jian = null == map.get("jian") ? BigDecimal.ZERO : new BigDecimal(map.get("jian").toString());
+ BigDecimal feng = null == map.get("feng") ? BigDecimal.ZERO : new BigDecimal(map.get("feng").toString());
+ BigDecimal ping = null == map.get("ping") ? BigDecimal.ZERO : new BigDecimal(map.get("ping").toString());
+ BigDecimal gu = null == map.get("gu") ? BigDecimal.ZERO : new BigDecimal(map.get("gu").toString());
+ BigDecimal total = jian.add(feng).add(ping).add(gu);
if (total.compareTo(new BigDecimal("0")) != 0) {
chargingOrderListVO.setElectronicProportion(
jian.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(尖)/"
@@ -1955,44 +2052,10 @@
"0" + "%(平)/" +
"0" + "%(谷)");
}
- if (chargingOrderListVO.getOrderSource().equals(2)) {
- chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge() != null ?
- chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)
- : new BigDecimal("0"));
- } else {
- chargingOrderListVO.setSharingAmount(new BigDecimal("0"));
- }
+ list.add(chargingOrderListVO);
}
-
- // 不分页
- PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1, 999999999);
- List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1, dto, startTime1, startTime2, endTime1, endTime2);
- for (ChargingOrderListVO chargingOrderListVO : list1) {
- List<Integer> integers = new ArrayList<>();
- integers.add(chargingOrderListVO.getSiteId());
- Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null);
- if (site != null) {
- chargingOrderListVO.setSiteName(site.getName());
- }
- if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) {
- LocalDateTime startTime = chargingOrderListVO.getStartTime();
- LocalDateTime endTime = chargingOrderListVO.getEndTime();
- // 计算时间差 单位秒
- long between = ChronoUnit.SECONDS.between(startTime, endTime);
- chargingOrderListVO.setChargingSecond(between);
- }
- if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) {
- TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
- TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
- if (data2 != null && data1 != null) {
- chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
- }
- }
- }
- chargingOrderTimeVO.setExportList(list1);
- chargingOrderTimeVO.setOrderCount(list1.size());
// 计算充电总度数
BigDecimal electronic = new BigDecimal("0");
// 支付金额
@@ -2016,72 +2079,25 @@
BigDecimal feng = new BigDecimal("0");
BigDecimal ping = new BigDecimal("0");
BigDecimal gu = new BigDecimal("0");
- for (ChargingOrderListVO chargingOrderListVO : list1) {
- List<TChargingOrderAccountingStrategy> collect = chargingOrderAccountingStrategies.stream().filter(s -> s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList());
- BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal chargingCapacity = collect.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
- electronic = electronic.add(chargingCapacity);
- electrovalence = electrovalence.add(periodElectricPrice);
- if (chargingOrderListVO.getOrderSource().equals(2)) {
- serviceCharge = serviceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8")));
- paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice.multiply(new BigDecimal("0.8")));
- } else {
- serviceCharge = serviceCharge.add(periodServicePrice);
- paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice);
- }
- if (!chargingOrderListVO.getOrderSource().equals(2)) {
- for (TChargingOrderAccountingStrategy temp : collect) {
- switch (temp.getType()) {
- case 1:
- jian = jian.add(temp.getChargingCapacity());
- jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
- jianService = jianService.add(temp.getPeriodServicePrice());
- break;
- case 2:
- feng = feng.add(temp.getChargingCapacity());
- fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
- fengService = fengService.add(temp.getPeriodServicePrice());
- break;
- case 3:
- ping = ping.add(temp.getChargingCapacity());
- pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
- pingService = pingService.add(temp.getPeriodServicePrice());
- break;
- case 4:
- gu = gu.add(temp.getChargingCapacity());
- guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
- guService = guService.add(temp.getPeriodServicePrice());
- break;
- }
- }
- } else {
- for (TChargingOrderAccountingStrategy temp : collect) {
- BigDecimal multiply = temp.getPeriodServicePrice().multiply(new BigDecimal("0.8"));
- switch (temp.getType()) {
- case 1:
- jian = jian.add(temp.getChargingCapacity());
- jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
- jianService = jianService.add(multiply);
- break;
- case 2:
- feng = feng.add(temp.getChargingCapacity());
- fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
- fengService = fengService.add(multiply);
- break;
- case 3:
- ping = ping.add(temp.getChargingCapacity());
- pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
- pingService = pingService.add(multiply);
- break;
- case 4:
- gu = gu.add(temp.getChargingCapacity());
- guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
- guService = guService.add(multiply);
- break;
- }
- }
- }
+ List<Map<String, Object>> list1 = this.baseMapper.chargingListSum(dto, startTime1, startTime2, endTime1, endTime2);
+ chargingOrderTimeVO.setOrderCount(list1.size());
+ for (Map<String, Object> map : list1) {
+ electronic = electronic.add(new BigDecimal(null == map.get("electronic") ? "0" : map.get("electronic").toString()));
+ paymentAmount = paymentAmount.add(new BigDecimal(null == map.get("paymentAmount") ? "0" : map.get("paymentAmount").toString()));
+ electrovalence = electrovalence.add(new BigDecimal(null == map.get("electrovalence") ? "0" : map.get("electrovalence").toString()));
+ serviceCharge = serviceCharge.add(new BigDecimal(null == map.get("serviceCharge") ? "0" : map.get("serviceCharge").toString()));
+ jianElectronic = jianElectronic.add(new BigDecimal(null == map.get("jianElectronic") ? "0" : map.get("jianElectronic").toString()));
+ fengElectronic = fengElectronic.add(new BigDecimal(null == map.get("fengElectronic") ? "0" : map.get("fengElectronic").toString()));
+ pingElectronic = pingElectronic.add(new BigDecimal(null == map.get("pingElectronic") ? "0" : map.get("pingElectronic").toString()));
+ guElectronic = guElectronic.add(new BigDecimal(null == map.get("guElectronic") ? "0" : map.get("guElectronic").toString()));
+ jianService = jianService.add(new BigDecimal(null == map.get("jianService") ? "0" : map.get("jianService").toString()));
+ fengService = fengService.add(new BigDecimal(null == map.get("fengService") ? "0" : map.get("fengService").toString()));
+ pingService = pingService.add(new BigDecimal(null == map.get("pingService") ? "0" : map.get("pingService").toString()));
+ guService = guService.add(new BigDecimal(null == map.get("guService") ? "0" : map.get("guService").toString()));
+ jian = jian.add(new BigDecimal(null == map.get("jian") ? "0" : map.get("jian").toString()));
+ feng = feng.add(new BigDecimal(null == map.get("feng") ? "0" : map.get("feng").toString()));
+ ping = ping.add(new BigDecimal(null == map.get("ping") ? "0" : map.get("ping").toString()));
+ gu = gu.add(new BigDecimal(null == map.get("gu") ? "0" : map.get("gu").toString()));
}
chargingOrderTimeVO.setChargingCapacity(electronic.setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -2130,6 +2146,115 @@
pageInfo.setRecords(list);
chargingOrderTimeVO.setList(pageInfo);
return chargingOrderTimeVO;
+ }
+
+
+ @Override
+ public List<ChargingOrderListVO> export(ChargingListQuery dto) {
+ String startTime1 = null;
+ String startTime2 = null;
+ String endTime1 = null;
+ String endTime2 = null;
+
+ List<TChargingGun> allGun = chargingGunClient.getAllGun().getData();
+ List<TChargingPile> allPile = chargingGunClient.getAllPile().getData();
+
+ if (StringUtils.hasLength(dto.getStartTime())) {
+ String[] split = dto.getStartTime().split(" - ");
+ startTime1 = split[0];
+ startTime2 = split[1];
+ }
+ if (StringUtils.hasLength(dto.getPhone())) {
+ List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
+ if (data != null) {
+ if (!data.isEmpty()) {
+ dto.setUserIds(data);
+ }
+ } else {
+ dto.setUserIds(new ArrayList<Long>());
+ }
+ if (dto.getUserIds().isEmpty()) {
+ List<Long> carIds = dto.getUserIds();
+ carIds.add(-1L);
+ dto.setUserIds(carIds);
+ }
+ }
+ if (StringUtils.hasLength(dto.getLicensePlate())) {
+ List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
+ if (data != null) {
+ if (!data.isEmpty()) {
+ dto.setCarIds(data);
+ }
+ } else {
+ dto.setCarIds(new ArrayList<Long>());
+ }
+ if (dto.getCarIds().isEmpty()) {
+ List<Long> carIds = dto.getCarIds();
+ carIds.add(-1L);
+ dto.setCarIds(carIds);
+ }
+ }
+ Long userId = tokenService.getLoginUser().getUserid();
+ // 查询当前登陆人按钮权限
+ SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+ Integer roleType = sysUser.getRoleType();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteId() == null) {
+ if (userId != null) {
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ } else {
+ siteIds.add(dto.getSiteId());
+ }
+ if (siteIds.isEmpty()) {
+ siteIds.add(-1);
+ } else {
+ if (roleType == 2) {
+ List<Integer> integers = new ArrayList<>();
+ for (Integer siteId : siteIds) {
+ // 校验有没有这个站点的权限
+ List<Boolean> t1 = partnerClient.getChargingOrderMenu(sysUser.getObjectId(), siteId).getData();
+
+ Boolean b = t1.get(1);
+ if (b) {
+ integers.add(siteId);
+ }
+ }
+ siteIds = integers;
+ }
+ }
+ dto.setSiteIds(siteIds);
+ List<Site> sites = siteClient.getSiteAll().getData();
+ // 不分页
+ PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1, 999999999);
+ List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1, dto, startTime1, startTime2, endTime1, endTime2);
+ for (ChargingOrderListVO chargingOrderListVO : list1) {
+ List<Integer> integers = new ArrayList<>();
+ integers.add(chargingOrderListVO.getSiteId());
+ Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null);
+ if (site != null) {
+ chargingOrderListVO.setSiteName(site.getName());
+ }
+ if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) {
+ LocalDateTime startTime = chargingOrderListVO.getStartTime();
+ LocalDateTime endTime = chargingOrderListVO.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ chargingOrderListVO.setChargingSecond(between);
+ }
+ if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) {
+ TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
+ TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
+ if (data2 != null && data1 != null) {
+ chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
+ }
+ }
+ }
+ return list1;
}
@@ -2563,7 +2688,11 @@
List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- chargingOrder.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ if(dataList.isEmpty()){
+ chargingOrder.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
+ }else{
+ chargingOrder.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ }
chargingOrder.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
chargingOrder.setStatus(5);
chargingOrder.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN));
@@ -2639,6 +2768,14 @@
chargingOrder.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
chargingOrder.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
chargingOrder.setRefundStatus(1);
+ UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode(), "asc");
+ UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode(), "desc");
+ if(null != asc){
+ chargingOrder.setStartSoc(new BigDecimal(asc.getSoc()));
+ }
+ if(null != desc){
+ chargingOrder.setEndSoc(new BigDecimal(desc.getSoc()));
+ }
this.updateById(chargingOrder);
redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index e30e180..b8aa66e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -190,7 +190,11 @@
if(null == order.getStartTime()){
List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- order.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault())));
+ if(dataList.isEmpty()){
+ order.setStartTime(LocalDateTime.parse(one.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }else{
+ order.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault())));
+ }
}
if(null == order.getEndTime()){
order.setEndTime(LocalDateTime.parse(one.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
@@ -215,7 +219,11 @@
if(null == order.getStartTime()){
List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- order.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault())));
+ if(dataList.isEmpty()){
+ order.setStartTime(LocalDateTime.parse(one.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }else{
+ order.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault())));
+ }
}
if(null == order.getEndTime()){
order.setEndTime(LocalDateTime.parse(one.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
@@ -588,6 +596,14 @@
order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
order.setRefundStatus(1);
+ UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode(), "asc");
+ UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode(), "desc");
+ if(null != asc){
+ order.setStartSoc(new BigDecimal(asc.getSoc()));
+ }
+ if(null != desc){
+ order.setEndSoc(new BigDecimal(desc.getSoc()));
+ }
chargingOrderService.updateById(order);
order = chargingOrderService.getById(order.getId());
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 0e8f16d..81c0d09 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -1033,6 +1033,193 @@
and t1.start_time IS NOT NULL
order by t1.create_time desc
</select>
+
+
+ <select id="chargingList1" resultType="map">
+ select
+ aa.id,
+ aa.`code`,
+ aa.siteName,
+ aa.orderType,
+ aa.terminalName,
+ aa.electricity,
+ aa.rechargeAmount,
+ aa.rechargePaymentType,
+ aa.paymentAmount,
+ aa.electrovalence,
+ aa.serviceCharge,
+ aa.orderSource,
+ aa.tripartitePlatformName,
+ aa.startTime,
+ aa.endTime,
+ aa.chargingSecond,
+ aa.startSoc,
+ aa.endSoc,
+ aa.`status`,
+ aa.endMode,
+ aa.phone,
+ aa.licensePlate,
+ SUM(aa.period_electric_price) as periodElectricPrice,
+ SUM(aa.period_service_price) as periodServicePrice,
+ SUM(aa.jian) as jian,
+ SUM(aa.feng) as feng,
+ SUM(aa.ping) as ping,
+ SUM(aa.gu) as gu
+ from (
+ select
+ b.id,
+ b.`code`,
+ c.`name` as siteName,
+ b.order_type as orderType,
+ CONCAT(d.`name`, '-', e.`name`) as terminalName,
+ b.electricity,
+ b.recharge_amount as rechargeAmount,
+ b.recharge_payment_type as rechargePaymentType,
+ b.payment_amount as paymentAmount,
+ b.electrovalence,
+ b.service_charge as serviceCharge,
+ b.order_source as orderSource,
+ b.tripartite_platform_name as tripartitePlatformName,
+ DATE_FORMAT(b.start_time, '%Y-%m-%d %H:%i:%s') as startTime,
+ DATE_FORMAT(b.end_time, '%Y-%m-%d %H:%i:%s') as endTime,
+ (UNIX_TIMESTAMP(b.end_time) - UNIX_TIMESTAMP(b.start_time)) as chargingSecond,
+ b.start_soc as startSoc,
+ b.end_soc as endSoc,
+ b.`status`,
+ b.end_mode as endMode,
+ f.phone,
+ g.license_plate as licensePlate,
+ a.period_electric_price,
+ a.period_service_price,
+ CASE WHEN a.type = 1 THEN a.charging_capacity ELSE 0 END as jian,
+ CASE WHEN a.type = 2 THEN a.charging_capacity ELSE 0 END as feng,
+ CASE WHEN a.type = 3 THEN a.charging_capacity ELSE 0 END as ping,
+ CASE WHEN a.type = 4 THEN a.charging_capacity ELSE 0 END as gu
+ from `charging_pile_order`.t_charging_order_accounting_strategy a
+ left join `charging_pile_order`.t_charging_order b on (a.charging_order_id = b.id)
+ left join `charging_pile_service`.t_site c on (b.site_id = c.id)
+ left join `charging_pile_service`.t_charging_pile d on (b.charging_pile_id = d.id)
+ left join `charging_pile_service`.t_charging_gun e on (b.charging_gun_id = e.id)
+ left join `charging_pile_account`.t_app_user f on (b.app_user_id = f.id)
+ left join `charging_pile_account`.t_app_user_car g on (b.app_user_car_id = g.id)
+ where b.del_flag = 0 and b.recharge_payment_status = 2
+ <if test="null != req.code and req.code!=''">
+ and b.code LIKE CONCAT('%',#{req.code},'%')
+ </if>
+ <if test="null != req.carIds and req.carIds.size()>0">
+ and b.app_user_car_id in
+ <foreach collection="req.carIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="null != req.userIds and req.userIds.size()>0">
+ and b.app_user_id in
+ <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="null != req.siteIds and req.siteIds.size()>0">
+ and b.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="req.orderType != null ">
+ and b.order_type = #{req.orderType}
+ </if>
+ <if test="req.status != null ">
+ and b.status = #{req.status}
+ </if>
+ <if test="req.status != null ">
+ and b.status = #{req.status}
+ </if>
+ <if test="req.siteId != null ">
+ and b.site_id = #{req.siteId}
+ </if>
+ <if test="startTime1 != null and startTime1!=''">
+ and (b.create_time between #{startTime1} and #{startTime2})
+ </if>
+ <if test="endTime1 != null and endTime1!=''">
+ and (b.end_time between #{endTime1} and #{endTime2})
+ </if>
+ and b.start_time IS NOT NULL
+ ) as aa group by aa.id, aa.`code`, aa.siteName, aa.orderType, aa.terminalName, aa.electricity, aa.rechargeAmount, aa.paymentAmount, aa.electrovalence, aa.serviceCharge, aa.tripartitePlatformName,
+ aa.startTime, aa.endTime, aa.chargingSecond, aa.startSoc, aa.endSoc, aa.`status`, aa.endMode, aa.phone, aa.licensePlate, aa.orderSource, aa.rechargePaymentType order by aa.startTime desc
+ </select>
+
+
+
+
+ <select id="chargingListSum" resultType="map">
+ select
+ a.id,
+ sum(a.charging_capacity) as electronic,
+ sum(a.period_electric_price) as electrovalence,
+ sum(CASE WHEN a.order_source = 2 THEN a.period_service_price * 0.8 ELSE a.period_service_price END) as serviceCharge,
+ sum(a.period_electric_price + (CASE WHEN a.order_source = 2 THEN a.period_service_price * 0.8 ELSE a.period_service_price END)) as paymentAmount,
+ sum(CASE WHEN a.type = 1 THEN a.period_electric_price ELSE 0 END) as jianElectronic,
+ sum(CASE WHEN a.type = 2 THEN a.period_electric_price ELSE 0 END) as fengElectronic,
+ sum(CASE WHEN a.type = 3 THEN a.period_electric_price ELSE 0 END) as pingElectronic,
+ sum(CASE WHEN a.type = 4 THEN a.period_electric_price ELSE 0 END) as guElectronic,
+ sum(CASE WHEN a.order_source = 2 and a.type = 1 THEN a.period_service_price * 0.8 WHEN a.order_source != 2 and a.type = 1 THEN a.period_service_price ELSE 0 END) as jianService,
+ sum(CASE WHEN a.order_source = 2 and a.type = 2 THEN a.period_service_price * 0.8 WHEN a.order_source != 2 and a.type = 2 THEN a.period_service_price ELSE 0 END) as fengService,
+ sum(CASE WHEN a.order_source = 2 and a.type = 3 THEN a.period_service_price * 0.8 WHEN a.order_source != 2 and a.type = 3 THEN a.period_service_price ELSE 0 END) as pingService,
+ sum(CASE WHEN a.order_source = 2 and a.type = 4 THEN a.period_service_price * 0.8 WHEN a.order_source != 2 and a.type = 4 THEN a.period_service_price ELSE 0 END) as guService,
+ sum(CASE WHEN a.type = 1 THEN a.charging_capacity ELSE 0 END) as jian,
+ sum(CASE WHEN a.type = 2 THEN a.charging_capacity ELSE 0 END) as feng,
+ sum(CASE WHEN a.type = 3 THEN a.charging_capacity ELSE 0 END) as ping,
+ sum(CASE WHEN a.type = 4 THEN a.charging_capacity ELSE 0 END) as gu
+ from (
+ select co.id,coas.type, coas.charging_capacity, coas.period_electric_price, coas.period_service_price, co.order_source
+ from t_charging_order_accounting_strategy coas
+ left join t_charging_order co on (coas.charging_order_id = co.id)
+ where co.del_flag = 0 and co.recharge_payment_status = 2
+ <if test="null != req.code and req.code!=''">
+ and co.code LIKE CONCAT('%',#{req.code},'%')
+ </if>
+ <if test="null != req.carIds and req.carIds.size()>0">
+ and co.app_user_car_id in
+ <foreach collection="req.carIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="null != req.userIds and req.userIds.size()>0">
+ and co.app_user_id in
+ <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="null != req.siteIds and req.siteIds.size()>0">
+ and co.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="req.orderType != null ">
+ and co.order_type = #{req.orderType}
+ </if>
+ <if test="req.status != null ">
+ and co.status = #{req.status}
+ </if>
+ <if test="req.status != null ">
+ and co.status = #{req.status}
+ </if>
+ <if test="req.siteId != null ">
+ and co.site_id = #{req.siteId}
+ </if>
+ <if test="startTime1 != null and startTime1!=''">
+ and (co.create_time between #{startTime1} and #{startTime2})
+ </if>
+ <if test="endTime1 != null and endTime1!=''">
+ and (co.end_time between #{endTime1} and #{endTime2})
+ </if>
+ and co.start_time IS NOT NULL order by co.create_time desc
+ ) as a group by a.id
+ </select>
+
+
+
+
<select id="chargingListNoPage" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO">
select t1.* from t_charging_order t1
where 1=1
--
Gitblit v1.7.1