From 48d3f1b77adea0609bb2453c7b4a660f2222871f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 25 八月 2025 08:54:50 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java |  139 +++++++++++++++++++++++++--------------------
 1 files changed, 77 insertions(+), 62 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java
index 0560b15..0a93f7b 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java
@@ -17,6 +17,7 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.dto.GetImportOrderDTO;
 import com.ruoyi.order.mapper.ChargeOrderMapper;
 import com.ruoyi.order.mapper.OrderMapper;
@@ -51,11 +52,14 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -135,121 +139,130 @@
 
 
                 // 开始时间
-                Cell beginTimeCell = row.getCell(6);
+                Cell beginTimeCell = row.getCell(4);
                 if (beginTimeCell == null) {
                     throw new ServiceException("第" + (i + 1) + "行开始时间为空", 500);
                 }
 
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 LocalDateTime beginTime;
-                if (beginTimeCell.getCellType() == CellType.NUMERIC || DateUtil.isCellDateFormatted(beginTimeCell)) {
-                    // 处理数值型日期(包括Excel内置日期格式)
-                    beginTime = beginTimeCell.getDateCellValue().toInstant()
-                            .atZone(ZoneId.systemDefault())
-                            .toLocalDateTime();
-                } else {
-                    // 处理文本型日期(如 "2025/4/3 23:25:38")
-                    String dateStr = beginTimeCell.getStringCellValue().trim();
-                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d H:mm:ss");
-                    beginTime = LocalDateTime.parse(dateStr, formatter);
+                try {
+                    Date startDate = format.parse(beginTimeCell.getStringCellValue());
+                    beginTime = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                } catch (ParseException e) {
+                    throw new RuntimeException(e);
                 }
 
+//                LocalDateTime beginTime;
+//                if (beginTimeCell.getCellType() == CellType.NUMERIC || DateUtil.isCellDateFormatted(beginTimeCell)) {
+//                    // 处理数值型日期(包括Excel内置日期格式)
+//                    beginTime = beginTimeCell.getDateCellValue().toInstant()
+//                            .atZone(ZoneId.systemDefault())
+//                            .toLocalDateTime();
+//                } else {
+//                    // 处理文本型日期(如 "2025/4/3 23:25:38")
+//                    String dateStr = beginTimeCell.getStringCellValue().trim();
+//                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d H:mm:ss");
+//                    beginTime = LocalDateTime.parse(dateStr, formatter);
+//                }
+
                 // 结束时间
-                Cell endTimeCell = row.getCell(7);
+                Cell endTimeCell = row.getCell(5);
                 if (endTimeCell == null) {
                     throw new ServiceException("第" + (i + 1) + "行开始时间为空", 500);
                 }
 
                 LocalDateTime endTime;
-                if (endTimeCell.getCellType() == CellType.NUMERIC || DateUtil.isCellDateFormatted(endTimeCell)) {
-                    // 处理数值型日期(包括Excel内置日期格式)
-                    endTime = endTimeCell.getDateCellValue().toInstant()
-                            .atZone(ZoneId.systemDefault())
-                            .toLocalDateTime();
-                } else {
-                    // 处理文本型日期(如 "2025/4/3 23:25:38")
-                    String dateStr = beginTimeCell.getStringCellValue().trim();
-                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d H:mm:ss");
-                    endTime = LocalDateTime.parse(dateStr, formatter);
+                try {
+                    Date startDate = format.parse(endTimeCell.getStringCellValue());
+                    endTime = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                } catch (ParseException e) {
+                    throw new RuntimeException(e);
                 }
-
 
                 // 充电时长
-                if (row.getCell(8 )== null){
+                if (row.getCell(6 )== null){
                     throw new ServiceException("第" + i + "行充电时长为空", 500);
                 }
-                row.getCell(8).setCellType(CellType.STRING);
-                String chargingDuration = row.getCell(8).getStringCellValue();
+                row.getCell(6).setCellType(CellType.STRING);
+                String chargingDuration = row.getCell(6).getStringCellValue();
 
 
                 // 充电电量
-                if (row.getCell(9 )== null){
+                if (row.getCell(7 )== null){
                     throw new ServiceException("第" + i + "行充电电量为空", 500);
                 }
-                row.getCell(9).setCellType(CellType.STRING);
-                String chargingCapacity = row.getCell(9).getStringCellValue();
+                row.getCell(7).setCellType(CellType.STRING);
+                String chargingCapacity = row.getCell(7).getStringCellValue();
 
                 // 电站运营商
-                if (row.getCell(15 )== null){
+                if (row.getCell(8 )== null){
                     throw new ServiceException("第" + i + "行电站运营商为空", 500);
                 }
-                row.getCell(15).setCellType(CellType.STRING);
-                String powerStationOperator = row.getCell(15).getStringCellValue();
+                row.getCell(8).setCellType(CellType.STRING);
+                String powerStationOperator = row.getCell(8).getStringCellValue();
 
                 // 城市名称
-                if (row.getCell(16 )== null){
+                if (row.getCell(9 )== null){
                     throw new ServiceException("第" + i + "行城市名称为空", 500);
                 }
-                row.getCell(16).setCellType(CellType.STRING);
-                String city = row.getCell(16).getStringCellValue();
+                row.getCell(9).setCellType(CellType.STRING);
+                String city = row.getCell(9).getStringCellValue();
 
                 // 充电场站
-                if (row.getCell(17 )== null){
+                if (row.getCell(10 )== null){
                     throw new ServiceException("第" + i + "行充电场站为空", 500);
                 }
-                row.getCell(17).setCellType(CellType.STRING);
-                String chargingStation = row.getCell(17).getStringCellValue();
+                row.getCell(10).setCellType(CellType.STRING);
+                String chargingStation = row.getCell(10).getStringCellValue();
 
                 // 电站id
-                if (row.getCell(18 )== null){
+                if (row.getCell(11 )== null){
                     throw new ServiceException("第" + i + "行电站id为空", 500);
                 }
-                row.getCell(18).setCellType(CellType.STRING);
-                String powerStationId = row.getCell(18).getStringCellValue();
+                row.getCell(11).setCellType(CellType.STRING);
+                String powerStationId = row.getCell(11).getStringCellValue();
 
                 // 终端编码
-                if (row.getCell(20 )== null){
-                    throw new ServiceException("第" + i + "行电站id为空", 500);
+                if (row.getCell(12 )== null){
+                    throw new ServiceException("第" + i + "行终端编码为空", 500);
                 }
-                row.getCell(20).setCellType(CellType.STRING);
-                String terminalCode = row.getCell(20).getStringCellValue();
+                row.getCell(12).setCellType(CellType.STRING);
+                String terminalCode = row.getCell(12).getStringCellValue();
 
                 // 车牌号
-                if (row.getCell(26 )== null){
+                if (row.getCell(13 )== null){
                     throw new ServiceException("第" + i + "行车牌号为空", 500);
                 }
-                row.getCell(26).setCellType(CellType.STRING);
-                String plateNumber = row.getCell(26).getStringCellValue();
+                row.getCell(13).setCellType(CellType.STRING);
+                String plateNumber = row.getCell(13).getStringCellValue();
 
                 // 电站价电费金额
-                if (row.getCell(73 )== null){
+                if (row.getCell(14 )== null){
                     throw new ServiceException("第" + i + "行电站价电费金额为空", 500);
                 }
-                row.getCell(73).setCellType(CellType.STRING);
-                String electricityAmount = row.getCell(73).getStringCellValue();
+                row.getCell(14).setCellType(CellType.STRING);
+                String electricityAmount = row.getCell(14).getStringCellValue();
 
                 // 电站价服务费金额
-                if (row.getCell(74 )== null){
+                if (row.getCell(15 )== null){
                     throw new ServiceException("第" + i + "行电站价服务费金额为空", 500);
                 }
-                row.getCell(74).setCellType(CellType.STRING);
-                String serviceAmount = row.getCell(74).getStringCellValue();
+                row.getCell(15).setCellType(CellType.STRING);
+                String serviceAmount = row.getCell(15).getStringCellValue();
 
                 // 电站价总金额
-                if (row.getCell(75 )== null){
-                    throw new ServiceException("第" + i + "行电站价服务费金额为空", 500);
+                if (row.getCell(16 )== null){
+                    throw new ServiceException("第" + i + "行电站价总金额为空", 500);
                 }
-                row.getCell(75).setCellType(CellType.STRING);
-                String totalAmount = row.getCell(75).getStringCellValue();
+                row.getCell(16).setCellType(CellType.STRING);
+                String totalAmount = row.getCell(16).getStringCellValue();
+                // 绿电分
+                if (row.getCell(17 )== null){
+                    throw new ServiceException("第" + i + "行绿电分为空", 500);
+                }
+                row.getCell(17).setCellType(CellType.STRING);
+                String point = row.getCell(17).getStringCellValue();
 
 
                 //检查订单号是否重复
@@ -288,6 +301,7 @@
                 chargeOrder.setElectricityAmount(new BigDecimal(electricityAmount));
                 chargeOrder.setServiceAmount(new BigDecimal(serviceAmount));
                 chargeOrder.setTotalAmount(new BigDecimal(totalAmount));
+                chargeOrder.setPoint(Integer.valueOf(point));
 
                 R r = importData(chargeOrder);
                 if (R.isError(r)) {
@@ -300,7 +314,7 @@
             throw new ServiceException(e.getMessage());
         }
         if(!result.isEmpty()){
-            return R.ok(result);
+            return R.fail(result);
         }
         return R.ok();
     }
@@ -371,6 +385,9 @@
                 sysUserClient.updateSysUser(sysUser);
             }
         }
+        //保存到数据库
+        chargeOrder.setPoint(point);
+        chargeOrderService.save(chargeOrder);
         //添加用户积分流水
         //转入用户
         UserPoint userPoint = new UserPoint();
@@ -385,9 +402,7 @@
         if (r.isError(r)) {
             return R.fail("导入订单-保存用户积分流水失败");
         }
-        //保存到数据库
-        chargeOrder.setPoint(point);
-        chargeOrderService.save(chargeOrder);
+
 
         return R.ok();
     }

--
Gitblit v1.7.1