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