导入workOrder新增一列需求时间待定
This commit is contained in:
parent
c54ee29613
commit
62aece5bbd
|
|
@ -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<String> uploadFileHashStringList = new ArrayList<>();
|
||||
|
||||
@Value("${reqmtsDate}")
|
||||
private boolean reqmtsDate;
|
||||
|
||||
/**
|
||||
* 查询上传记录
|
||||
*
|
||||
|
|
@ -210,7 +214,7 @@ public class ExcelController {
|
|||
// 获取之前DBS表的内容
|
||||
Map<String, KateDBS> 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<String, KateOrders> 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());
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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<String> workCreatingStations = new ArrayList<>();// 当前正在创建任务的站台
|
||||
private final VehicleService vehicleService;// 料箱服务
|
||||
|
||||
|
||||
//获取配置文件的是否添加了需求时间
|
||||
@Value("${reqmtsDate}")
|
||||
private boolean isAddReqmtsDate;
|
||||
|
||||
/**
|
||||
* 找到下一个工作日
|
||||
*
|
||||
|
|
@ -412,14 +418,20 @@ public class WorkServiceImplements implements IWorkService {
|
|||
Map<String, KateDBS> 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;
|
||||
|
|
|
|||
|
|
@ -32,10 +32,12 @@ public class UploadDbsListener implements ReadListener<KateDbsExcelVo> {
|
|||
private final Map<String, KateDBS> oldKateDBSMap;// 旧的DBS数据
|
||||
private final Map<String, KateDBS> newKateDBSMap = new HashMap<>();// 新的DBS数据
|
||||
private final int maxSequence;
|
||||
public UploadDbsListener(KateDBSService kateDBSService, Map<String, KateDBS> oldKateDBSMap, String uploadUser) {
|
||||
private final boolean isAddReqmtDate;
|
||||
public UploadDbsListener(KateDBSService kateDBSService, Map<String, KateDBS> 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<KateDbsExcelVo> {
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -35,11 +35,13 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
|
|||
private final String uploadUser;// 用户
|
||||
private final Map<String, KateOrders> oldKateOrdersMap;// 旧的工单数据
|
||||
private final Map<String, KateOrders> newKateOrdersMap = new HashMap<>();// 新的工单数据
|
||||
private final boolean isAddReqmtDate;
|
||||
|
||||
public UploadKateOrdersListener(KateOrdersService kateOrdersService, Map<String, KateOrders> oldKateOrdersMap, String uploadUser) {
|
||||
public UploadKateOrdersListener(KateOrdersService kateOrdersService, Map<String, KateOrders> 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<KateOrdersExcelVo>
|
|||
&& 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<KateOrdersExcelVo>
|
|||
newKateOrders.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity());
|
||||
newKateOrders.setPickedQuantity(BigDecimal.ZERO);
|
||||
newKateOrders.setUserName(uploadUser);
|
||||
//计划开工时间,这个替换后面的dbs的计划开始时间
|
||||
if(isAddReqmtDate) {
|
||||
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
|
||||
}
|
||||
newKateOrdersMap.put(key, newKateOrders);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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对象
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user