From 20c96ad57de3e88287520288bf5a9098874bb63e Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 14 八月 2025 16:58:15 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java | 124 +++++++++++++++++++++------------------- 1 files changed, 65 insertions(+), 59 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 166a46f..e028f8b 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 @@ -51,11 +51,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,127 +138,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(19 )== null){ + if (row.getCell(12 )== null){ throw new ServiceException("第" + i + "行终端编码为空", 500); } - row.getCell(19).setCellType(CellType.STRING); - String terminalCode = row.getCell(19).getStringCellValue(); + row.getCell(12).setCellType(CellType.STRING); + String terminalCode = row.getCell(12).getStringCellValue(); // 车牌号 - if (row.getCell(20 )== null){ + if (row.getCell(13 )== null){ throw new ServiceException("第" + i + "行车牌号为空", 500); } - row.getCell(20).setCellType(CellType.STRING); - String plateNumber = row.getCell(26).getStringCellValue(); + row.getCell(13).setCellType(CellType.STRING); + String plateNumber = row.getCell(13).getStringCellValue(); // 电站价电费金额 - if (row.getCell(21 )== null){ + if (row.getCell(14 )== null){ throw new ServiceException("第" + i + "行电站价电费金额为空", 500); } - row.getCell(21).setCellType(CellType.STRING); - String electricityAmount = row.getCell(21).getStringCellValue(); + row.getCell(14).setCellType(CellType.STRING); + String electricityAmount = row.getCell(14).getStringCellValue(); // 电站价服务费金额 - if (row.getCell(22 )== null){ + if (row.getCell(15 )== null){ throw new ServiceException("第" + i + "行电站价服务费金额为空", 500); } - row.getCell(22).setCellType(CellType.STRING); - String serviceAmount = row.getCell(22).getStringCellValue(); + row.getCell(15).setCellType(CellType.STRING); + String serviceAmount = row.getCell(15).getStringCellValue(); // 电站价总金额 - if (row.getCell(23 )== null){ + if (row.getCell(16 )== null){ throw new ServiceException("第" + i + "行电站价总金额为空", 500); } - row.getCell(23).setCellType(CellType.STRING); - String totalAmount = row.getCell(23).getStringCellValue(); + row.getCell(16).setCellType(CellType.STRING); + String totalAmount = row.getCell(16).getStringCellValue(); // 绿电分 - if (row.getCell(24 )== null){ + if (row.getCell(17 )== null){ throw new ServiceException("第" + i + "行绿电分为空", 500); } - row.getCell(24).setCellType(CellType.STRING); - String point = row.getCell(24).getStringCellValue(); + row.getCell(17).setCellType(CellType.STRING); + String point = row.getCell(17).getStringCellValue(); //检查订单号是否重复 -- Gitblit v1.7.1