diff --git a/src/main/java/com/wms/controller/ExcelController.java b/src/main/java/com/wms/controller/ExcelController.java index 48c0a03..78d4478 100644 --- a/src/main/java/com/wms/controller/ExcelController.java +++ b/src/main/java/com/wms/controller/ExcelController.java @@ -26,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; @@ -71,6 +72,9 @@ public class ExcelController { private final List uploadFileHashStringList = new ArrayList<>(); + @Value("${reqmtsDate}") + private boolean reqmtsDate; + /** * 查询上传记录 * @@ -210,7 +214,7 @@ public class ExcelController { // 获取之前DBS表的内容 Map kateDbsMap = kateDbsService.list().stream().collect(Collectors.toMap(KateDBS::getWorkOrder, kateDBS -> kateDBS)); // 导入excel - EasyExcel.read(file.getInputStream(), KateDbsExcelVo.class, new UploadDbsListener(kateDbsService, kateDbsMap, fileVo.getUserName())).sheet().headRowNumber(8).doRead(); + EasyExcel.read(file.getInputStream(), KateDbsExcelVo.class, new UploadDbsListener(kateDbsService, kateDbsMap, fileVo.getUserName(),reqmtsDate)).sheet().headRowNumber(8).doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "DBS")); uploadFileHashStringList.remove(fileVo.getHash()); @@ -251,7 +255,7 @@ public class ExcelController { // 获取之前工单表的内容 Map kateOrdersMap = kateOrdersService.list().stream().collect(Collectors.toMap(kateOrders -> kateOrders.getWorkOrder() + kateOrders.getGoodsId() + kateOrders.getSupplyArea(), kateOrders -> kateOrders)); // 导入excel - EasyExcel.read(file.getInputStream(), KateOrdersExcelVo.class, new UploadKateOrdersListener(kateOrdersService, kateOrdersMap, fileVo.getUserName())).sheet().doRead(); + EasyExcel.read(file.getInputStream(), KateOrdersExcelVo.class, new UploadKateOrdersListener(kateOrdersService, kateOrdersMap, fileVo.getUserName(),reqmtsDate)).sheet().doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "ORDERS")); uploadFileHashStringList.remove(fileVo.getHash()); diff --git a/src/main/java/com/wms/controller/KateWorkQueryController.java b/src/main/java/com/wms/controller/KateWorkQueryController.java index 4902a6a..de482a6 100644 --- a/src/main/java/com/wms/controller/KateWorkQueryController.java +++ b/src/main/java/com/wms/controller/KateWorkQueryController.java @@ -276,6 +276,7 @@ public class KateWorkQueryController { .set(kateOrdersQuery.getLackQuantity() != null, KateOrders::getLackQuantity, kateOrdersQuery.getLackQuantity()) .set(kateOrdersQuery.getPickedQuantity() != null, KateOrders::getPickedQuantity, kateOrdersQuery.getPickedQuantity()) .set(kateOrdersQuery.getRequirementQuantity() != null, KateOrders::getRequirementQuantity, kateOrdersQuery.getRequirementQuantity()) + .set(kateOrdersQuery.getPlanStartDate() != null, KateOrders::getPlanStartDate, kateOrdersQuery.getPlanStartDate()) .set(kateOrdersQuery.getOrderStatus() == 4, KateOrders::getFinishTime, LocalDateTime.now()) .set(kateOrdersQuery.getOrderStatus() == 4, KateOrders::getUserName, kateOrdersQuery.getUserName()) .eq(KateOrders::getOrderId, kateOrdersQuery.getOrderId())); diff --git a/src/main/java/com/wms/entity/app/request/KateOrdersQuery.java b/src/main/java/com/wms/entity/app/request/KateOrdersQuery.java index 8470745..615d0a0 100644 --- a/src/main/java/com/wms/entity/app/request/KateOrdersQuery.java +++ b/src/main/java/com/wms/entity/app/request/KateOrdersQuery.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) @@ -104,4 +105,12 @@ public class KateOrdersQuery extends PageQuery { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime finishTime; + + /** + * 计划开工时间 + */ + @JsonProperty("planStartDate") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate planStartDate; } diff --git a/src/main/java/com/wms/entity/app/vo/KateOrdersVo.java b/src/main/java/com/wms/entity/app/vo/KateOrdersVo.java index 351183a..47268f0 100644 --- a/src/main/java/com/wms/entity/app/vo/KateOrdersVo.java +++ b/src/main/java/com/wms/entity/app/vo/KateOrdersVo.java @@ -1,5 +1,6 @@ package com.wms.entity.app.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @@ -105,4 +106,12 @@ public class KateOrdersVo { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime finishTime; + + /** + * 计划开工时间 + */ + @JsonProperty("planStartDate") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime planStartDate; } diff --git a/src/main/java/com/wms/entity/table/KateOrders.java b/src/main/java/com/wms/entity/table/KateOrders.java index f3f98dc..bb977fc 100644 --- a/src/main/java/com/wms/entity/table/KateOrders.java +++ b/src/main/java/com/wms/entity/table/KateOrders.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -104,4 +105,9 @@ public class KateOrders { */ @TableField("finish_time") private LocalDateTime finishTime; + /** + * 计划开工时间 + */ + @TableField("plan_start_date") + private LocalDate planStartDate; } diff --git a/src/main/java/com/wms/service/business/serviceImplements/WmsTaskServiceImplements.java b/src/main/java/com/wms/service/business/serviceImplements/WmsTaskServiceImplements.java index cc1d016..0d5f1f8 100644 --- a/src/main/java/com/wms/service/business/serviceImplements/WmsTaskServiceImplements.java +++ b/src/main/java/com/wms/service/business/serviceImplements/WmsTaskServiceImplements.java @@ -364,7 +364,8 @@ public class WmsTaskServiceImplements implements IWmsTaskService { } return needNum; } catch (Exception e) { - logger.error("呼叫物料时发生异常:{}", convertJsonString(e)); + e.printStackTrace(); + logger.error("呼叫物料时发生异常:{}", e.getMessage()); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return originNum; diff --git a/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java b/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java index f79ca70..284745c 100644 --- a/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java +++ b/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java @@ -14,6 +14,7 @@ import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -54,6 +55,11 @@ public class WorkServiceImplements implements IWorkService { private final List workCreatingStations = new ArrayList<>();// 当前正在创建任务的站台 private final VehicleService vehicleService;// 料箱服务 + + //获取配置文件的是否添加了需求时间 + @Value("${reqmtsDate}") + private boolean isAddReqmtsDate; + /** * 找到下一个工作日 * @@ -412,14 +418,20 @@ public class WorkServiceImplements implements IWorkService { Map ordersAndDBSMap = new HashMap<>(); for (KateOrders kateWorkOrder : kateWorkOrders) { if (!ordersAndDBSMap.containsKey(kateWorkOrder.getWorkOrder())) { + LocalDateTime localDateTime = null; // 从DBS表查询对应的工单以及开工时间 KateDBS kateDBS = allKateDBS.stream().filter(tempKateDBS -> tempKateDBS.getWorkOrder().equals(kateWorkOrder.getWorkOrder())).findFirst().orElse(null); if (kateDBS == null || StringUtils.isEmpty(kateDBS.getWorkOrder())) {// 不存在对应的工单计划 continue; } + if(!isAddReqmtsDate) { + localDateTime = kateDBS.getPlanStartDate(); + }else{ + localDateTime = kateWorkOrder.getPlanStartDate().atStartOfDay(); + } // 判断是否是当天开工 - int indexOfDbs = localWorkDateList.indexOf(kateDBS.getPlanStartDate().toLocalDate()); + int indexOfDbs = localWorkDateList.indexOf(localDateTime.toLocalDate()); if (indexOfDbs == -1) { // 工作日不包含此开工日期 continue; diff --git a/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java index b9318ff..6c7eab4 100644 --- a/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java +++ b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java @@ -32,10 +32,12 @@ public class UploadDbsListener implements ReadListener { private final Map oldKateDBSMap;// 旧的DBS数据 private final Map newKateDBSMap = new HashMap<>();// 新的DBS数据 private final int maxSequence; - public UploadDbsListener(KateDBSService kateDBSService, Map oldKateDBSMap, String uploadUser) { + private final boolean isAddReqmtDate; + public UploadDbsListener(KateDBSService kateDBSService, Map oldKateDBSMap, String uploadUser, boolean isAddReqmtDate) { this.kateDBSService = kateDBSService; this.oldKateDBSMap = oldKateDBSMap; this.uploadUser = uploadUser; + this.isAddReqmtDate = isAddReqmtDate; // 获取最大序列号 maxSequence = oldKateDBSMap.values().stream().mapToInt(KateDBS::getWorkSequence).max().orElse(0); } @@ -57,10 +59,15 @@ public class UploadDbsListener implements ReadListener { public void invoke(KateDbsExcelVo kateDbsExcelVo, AnalysisContext analysisContext) { if (kateDbsExcelVo.getWorkSequence() != null && StringUtils.isNotEmpty(kateDbsExcelVo.getWorkOrder()) - && StringUtils.isNotEmpty(kateDbsExcelVo.getMachineNo()) - && kateDbsExcelVo.getPlanStartDate() != null) { - // 符合条件的数据 - cachedDataList.add(kateDbsExcelVo); + && StringUtils.isNotEmpty(kateDbsExcelVo.getMachineNo())) { + if(!isAddReqmtDate){ + if(kateDbsExcelVo.getPlanStartDate() != null){ + cachedDataList.add(kateDbsExcelVo); + } + }else{ + cachedDataList.add(kateDbsExcelVo); + } + } // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (cachedDataList.size() >= BATCH_COUNT) { diff --git a/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java b/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java index 982e891..09899cc 100644 --- a/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java +++ b/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java @@ -35,11 +35,13 @@ public class UploadKateOrdersListener implements ReadListener private final String uploadUser;// 用户 private final Map oldKateOrdersMap;// 旧的工单数据 private final Map newKateOrdersMap = new HashMap<>();// 新的工单数据 + private final boolean isAddReqmtDate; - public UploadKateOrdersListener(KateOrdersService kateOrdersService, Map oldKateOrdersMap, String uploadUser) { + public UploadKateOrdersListener(KateOrdersService kateOrdersService, Map oldKateOrdersMap, String uploadUser, boolean isAddReqmtDate) { this.kateOrdersService = kateOrdersService; this.oldKateOrdersMap = oldKateOrdersMap; this.uploadUser = uploadUser; + this.isAddReqmtDate = isAddReqmtDate; } @Override @@ -65,8 +67,14 @@ public class UploadKateOrdersListener implements ReadListener && StringUtils.isNotEmpty(kateOrdersExcelVo.getSupplyArea()) && kateOrdersExcelVo.getRequirementQuantity() != null && kateOrdersExcelVo.getRequirementQuantity().compareTo(BigDecimal.ZERO) > 0) { - // 符合条件 - cachedDataList.add(kateOrdersExcelVo); + if(isAddReqmtDate){ + if(kateOrdersExcelVo.getPlanStartDate() != null){ + cachedDataList.add(kateOrdersExcelVo); + } + }else { + // 符合条件 + cachedDataList.add(kateOrdersExcelVo); + } } } // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM @@ -124,6 +132,10 @@ public class UploadKateOrdersListener implements ReadListener newKateOrders.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity()); newKateOrders.setPickedQuantity(BigDecimal.ZERO); newKateOrders.setUserName(uploadUser); + //计划开工时间,这个替换后面的dbs的计划开始时间 + if(isAddReqmtDate) { + newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate()); + } newKateOrdersMap.put(key, newKateOrders); } } diff --git a/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java b/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java index ad64cf7..f645a81 100644 --- a/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java +++ b/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java @@ -2,6 +2,7 @@ package com.wms.utils.excel.vo; import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.wms.entity.table.KateOrders; @@ -9,6 +10,7 @@ import com.wms.entity.table.Location; import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; @Data @@ -103,6 +105,12 @@ public class KateOrdersExcelVo { */ @ExcelProperty("完成时间") private LocalDateTime finishTime; + /** + * 计划开始时间 + */ + @ExcelProperty("ReqmtsDate") + @DateTimeFormat("yyyy/MM/dd") + private LocalDate planStartDate; /** * 从数据库实体转换为excel对象