diff --git a/src/main/java/com/wms/controller/ExcelController.java b/src/main/java/com/wms/controller/ExcelController.java index 773e00f..21a00b0 100644 --- a/src/main/java/com/wms/controller/ExcelController.java +++ b/src/main/java/com/wms/controller/ExcelController.java @@ -1,5 +1,6 @@ package com.wms.controller; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; @@ -14,12 +15,11 @@ import com.wms.entity.app.vo.FileVo; import com.wms.entity.table.*; import com.wms.service.*; import com.wms.utils.StringUtils; +import com.wms.utils.excel.listener.UploadDbsListener; +import com.wms.utils.excel.listener.UploadKateOrdersListener; import com.wms.utils.excel.listener.UploadStocksListener; import com.wms.utils.excel.style.ExcelContentStyle; -import com.wms.utils.excel.vo.LocationExcelVo; -import com.wms.utils.excel.vo.StockExcelVo; -import com.wms.utils.excel.vo.TaskRecordExcelVo; -import com.wms.utils.excel.vo.VehicleExcelVo; +import com.wms.utils.excel.vo.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -41,7 +41,6 @@ import java.util.List; import static com.wms.utils.HttpUtils.getIpAddr; import static com.wms.utils.StringUtils.convertJsonString; -import static com.wms.utils.WmsUtils.generateId; /** * @@ -58,6 +57,10 @@ public class ExcelController { private final VehicleService vehicleService;// 载具服务 private final LocationService locationService;// 库位服务 private final UploadRecordService uploadRecordService;// 上传服务 + private final KateDBSService kateDbsService;// Dbs服务 + private final KateDBSLastService kateDbsLastService;// Dbs上次记录服务 + private final KateOrdersService kateOrdersService;// 工单服务 + private final KateOrdersLastService kateOrdersLastService;// 工单上次服务 /** * 导入库存信息 @@ -75,20 +78,84 @@ public class ExcelController { // 导入excel EasyExcel.read(file.getInputStream(), StockExcelVo.class, new UploadStocksListener(stockService)).sheet().doRead(); // 添加导入记录 - UploadRecord uploadRecord = new UploadRecord(); - uploadRecord.setUploadId(generateId("UPLOAD_")); - uploadRecord.set - uploadRecordService.save(uploadRecord); + uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "库存")); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入库存成功。"); + return convertJsonString(response); } catch (Exception e) { logger.error("导入库存异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入库存异常。"); + return convertJsonString(response); + } + } + + /** + * 导入DBS + * + * @param file 文件 + * @return 导入结果 + */ + @PostMapping("/uploadDbs") + @ResponseBody + @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + public String uploadDbs(@RequestPart("file") MultipartFile file, @RequestPart("obj") FileVo fileVo) { + logger.info("导入DBS,请求ip:{}", getIpAddr(servletRequest)); + ResponseEntity response = new ResponseEntity(); + try { + // 先移除之前last表中的内容 + kateDbsLastService.remove(new LambdaQueryWrapper<>()); + // 将当前Dbs表的数据存进Last表 + kateDbsLastService.saveBatch(BeanUtil.copyToList(kateDbsService.list(), KateDBSLast.class)); + // 移库Dbs表中的内容 + kateDbsService.remove(new LambdaQueryWrapper<>()); + // 导入excel + EasyExcel.read(file.getInputStream(), KateDbsExcelVo.class, new UploadDbsListener(kateDbsService, kateDbsLastService, fileVo.getUserName())).sheet().doRead(); + // 添加导入记录 + uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "DBS")); + response.setCode(ResponseCode.OK.getCode()); + response.setMessage("导入DBS成功。"); + return convertJsonString(response); + } catch (Exception e) { + logger.error("导入DBS异常:{}", convertJsonString(e)); + // 回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("导入DBS异常。"); + return convertJsonString(response); + } + } + + /** + * 导入DBS + * + * @param file 文件 + * @return 导入结果 + */ + @PostMapping("/uploadKateOrders") + @ResponseBody + @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + public String uploadKateOrders(@RequestPart("file") MultipartFile file, @RequestPart("obj") FileVo fileVo) { + logger.info("导入工单,请求ip:{}", getIpAddr(servletRequest)); + ResponseEntity response = new ResponseEntity(); + try { + // 导入excel + EasyExcel.read(file.getInputStream(), KateOrdersExcelVo.class, new UploadKateOrdersListener(kateOrdersService, kateOrdersLastService, fileVo.getUserName())).sheet().doRead(); + // 添加导入记录 + uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "ORDERS")); + response.setCode(ResponseCode.OK.getCode()); + response.setMessage("导入工单成功。"); + return convertJsonString(response); + } catch (Exception e) { + logger.error("导入工单异常:{}", convertJsonString(e)); + // 回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("导入工单异常。"); + return convertJsonString(response); } - return convertJsonString(response); } /** diff --git a/src/main/java/com/wms/entity/app/request/UploadRecordQuery.java b/src/main/java/com/wms/entity/app/request/UploadRecordQuery.java index bc20aeb..1c1828f 100644 --- a/src/main/java/com/wms/entity/app/request/UploadRecordQuery.java +++ b/src/main/java/com/wms/entity/app/request/UploadRecordQuery.java @@ -19,22 +19,27 @@ public class UploadRecordQuery extends PageQuery { /** * 上传id */ - @JsonProperty("upload_id") + @JsonProperty("uploadId") private String uploadId; /** * 文件id */ - @JsonProperty("file_id") + @JsonProperty("fileId") private String fileId; /** * 文件名 */ - @JsonProperty("file_name") + @JsonProperty("fileName") private String fileName; + /** + * 文件描述 + */ + @JsonProperty("fileDescription") + private String fileDescription; /** * 文件类型 */ - @JsonProperty("file_type") + @JsonProperty("fileType") private String fileType; /** * 上传时间 diff --git a/src/main/java/com/wms/entity/app/vo/UploadRecordVo.java b/src/main/java/com/wms/entity/app/vo/UploadRecordVo.java index 4d58499..eaca490 100644 --- a/src/main/java/com/wms/entity/app/vo/UploadRecordVo.java +++ b/src/main/java/com/wms/entity/app/vo/UploadRecordVo.java @@ -17,22 +17,27 @@ public class UploadRecordVo { /** * 上传id */ - @JsonProperty("upload_id") + @JsonProperty("uploadId") private String uploadId; /** * 文件id */ - @JsonProperty("file_id") + @JsonProperty("fileId") private String fileId; /** * 文件名 */ - @JsonProperty("file_name") + @JsonProperty("fileName") private String fileName; + /** + * 文件描述 + */ + @JsonProperty("fileDescription") + private String fileDescription; /** * 文件类型 */ - @JsonProperty("file_type") + @JsonProperty("fileType") private String fileType; /** * 上传时间 diff --git a/src/main/java/com/wms/entity/table/UploadRecord.java b/src/main/java/com/wms/entity/table/UploadRecord.java index a493ad1..59d08d9 100644 --- a/src/main/java/com/wms/entity/table/UploadRecord.java +++ b/src/main/java/com/wms/entity/table/UploadRecord.java @@ -3,10 +3,14 @@ package com.wms.entity.table; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.wms.entity.app.vo.FileVo; import lombok.Data; import java.time.LocalDateTime; +import static com.wms.utils.WmsUtils.generateId; + /** * 上传历史 */ @@ -28,6 +32,11 @@ public class UploadRecord { */ @TableField("file_name") private String fileName; + /** + * 文件描述 + */ + @TableField("file_description") + private String fileDescription; /** * 文件类型 */ @@ -43,4 +52,22 @@ public class UploadRecord { */ @TableField("upload_user") private String uploadUser; + + /** + * 将fileVo转换为上传记录实体类 + * @param fileVo 文件Vo + * @param fileDescription 文件描述 + * @return 上传记录实体类 + */ + public static UploadRecord ofFileVo(FileVo fileVo, String fileDescription) { + UploadRecord uploadRecord = new UploadRecord(); + uploadRecord.setUploadId(generateId("UPLOAD_")); + uploadRecord.setFileId(fileVo.getFileId()); + uploadRecord.setFileType(fileVo.getType()); + uploadRecord.setFileName(fileVo.getName()); + uploadRecord.setUploadTime(LocalDateTime.now()); + uploadRecord.setUploadUser(fileVo.getUserName()); + uploadRecord.setFileDescription("fileDescription"); + return uploadRecord; + } } diff --git a/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java new file mode 100644 index 0000000..211ba7f --- /dev/null +++ b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java @@ -0,0 +1,115 @@ +package com.wms.utils.excel.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.alibaba.excel.util.ListUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.wms.entity.table.KateDBS; +import com.wms.entity.table.KateDBSLast; +import com.wms.service.KateDBSLastService; +import com.wms.service.KateDBSService; +import com.wms.utils.excel.vo.KateDbsExcelVo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static com.wms.utils.StringUtils.convertJsonString; +import static com.wms.utils.WmsUtils.generateId; + +/** + * 上传DBS监听 + */ +public class UploadDbsListener implements ReadListener { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + /** + * 每隔5条存储数据库,实际使用中可以100条,然后清理list ,方便内存回收 + */ + private static final int BATCH_COUNT = 100; + private List cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + private final KateDBSService kateDBSService;// Dbs服务 + private final KateDBSLastService kateDBSLastService;// DbsLast服务 + private final String uploadUser;// 用户 + public UploadDbsListener(KateDBSService kateDBSService, KateDBSLastService kateDBSLastService, String uploadUser) { + this.kateDBSService = kateDBSService; + this.kateDBSLastService = kateDBSLastService; + this.uploadUser = uploadUser; + } + + @Override + public void onException(Exception exception, AnalysisContext context) throws Exception { + logger.error("处理Dbs数据发生异常:{}", convertJsonString(exception)); + ReadListener.super.onException(exception, context); + } + + /** + * 这个每一条数据解析都会来调用 + * + * @param kateDbsExcelVo one row value. It is same as {@link AnalysisContext#readRowHolder()} + * @param analysisContext context + */ + @Override + public void invoke(KateDbsExcelVo kateDbsExcelVo, AnalysisContext analysisContext) { + cachedDataList.add(kateDbsExcelVo); + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (cachedDataList.size() >= BATCH_COUNT) { + logger.info("已经导入{}条数据,开始存储数据库!", cachedDataList.size()); + saveData(); + // 存储完成清理 list + cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + } + } + + /** + * 所有数据解析完成了 都会来调用 + * + * @param analysisContext context + */ + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + saveData(); + } + + /** + * 存储数据 + */ + private void saveData() { + List kateDbsList = new ArrayList<>(); + for (KateDbsExcelVo kateDbsExcelVo : cachedDataList) { + if (kateDBSService.exists(new LambdaQueryWrapper() + .eq(KateDBS::getWorkOrder, kateDbsExcelVo.getWorkOrder()) + .or().eq(KateDBS::getWorkSequence, kateDbsExcelVo.getWorkSequence()))) { + // 工单号或者序号重复,那么跳过这条DBS + continue; + } + KateDBSLast kateDbsLast = kateDBSLastService.getOne(new LambdaQueryWrapper() + .eq(KateDBSLast::getWorkOrder, kateDbsExcelVo.getWorkOrder())); + if (kateDbsLast != null) { + // 之前存在过 + KateDBS oldKateDbs = new KateDBS(); + oldKateDbs.setDbsId(kateDbsLast.getDbsId()); + oldKateDbs.setWorkSequence(kateDbsExcelVo.getWorkSequence()); + oldKateDbs.setWorkOrder(kateDbsExcelVo.getWorkOrder()); + oldKateDbs.setPlanStartDate(kateDbsExcelVo.getPlanStartDate()); + oldKateDbs.setDbsStatus(kateDbsLast.getDbsStatus()); + oldKateDbs.setLastUpdateTime(LocalDateTime.now()); + oldKateDbs.setLastUpdateUser(uploadUser); + kateDbsList.add(oldKateDbs); + } else { + // 之前没存在过 + KateDBS newKateDbs = new KateDBS(); + newKateDbs.setDbsId(generateId("DBS_")); + newKateDbs.setWorkSequence(kateDbsExcelVo.getWorkSequence()); + newKateDbs.setWorkOrder(kateDbsExcelVo.getWorkOrder()); + newKateDbs.setPlanStartDate(kateDbsExcelVo.getPlanStartDate()); + newKateDbs.setDbsStatus(0); + newKateDbs.setLastUpdateTime(LocalDateTime.now()); + newKateDbs.setLastUpdateUser(uploadUser); + kateDbsList.add(newKateDbs); + } + } + kateDBSService.saveOrUpdateBatch(kateDbsList); + } +} diff --git a/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java b/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java new file mode 100644 index 0000000..7ff5445 --- /dev/null +++ b/src/main/java/com/wms/utils/excel/listener/UploadKateOrdersListener.java @@ -0,0 +1,138 @@ +package com.wms.utils.excel.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.alibaba.excel.util.ListUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.wms.entity.app.dto.extend.StockDetailInfo; +import com.wms.entity.table.*; +import com.wms.service.*; +import com.wms.utils.excel.vo.KateDbsExcelVo; +import com.wms.utils.excel.vo.KateOrdersExcelVo; +import com.wms.utils.excel.vo.StockExcelVo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static com.wms.utils.StringUtils.convertJsonString; +import static com.wms.utils.WmsUtils.generateId; + +/** + * 上传库存监听 + */ +public class UploadKateOrdersListener implements ReadListener { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + /** + * 每隔5条存储数据库,实际使用中可以100条,然后清理list ,方便内存回收 + */ + private static final int BATCH_COUNT = 100; + private List cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + private final KateOrdersService kateOrdersService;// Dbs服务 + private final KateOrdersLastService kateOrdersLastService;// DbsLast服务 + private final String uploadUser;// 用户 + public UploadKateOrdersListener(KateOrdersService kateOrdersService, KateOrdersLastService kateOrdersLastService, String uploadUser) { + this.kateOrdersService = kateOrdersService; + this.kateOrdersLastService = kateOrdersLastService; + this.uploadUser = uploadUser; + } + + @Override + public void onException(Exception exception, AnalysisContext context) throws Exception { + logger.error("处理工单数据发生异常:{}", convertJsonString(exception)); + ReadListener.super.onException(exception, context); + } + + /** + * 这个每一条数据解析都会来调用 + * + * @param kateOrdersExcelVo one row value. It is same as {@link AnalysisContext#readRowHolder()} + * @param analysisContext context + */ + @Override + public void invoke(KateOrdersExcelVo kateOrdersExcelVo, AnalysisContext analysisContext) { + cachedDataList.add(kateOrdersExcelVo); + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (cachedDataList.size() >= BATCH_COUNT) { + logger.info("已经导入{}条数据,开始存储数据库!", cachedDataList.size()); + saveData(); + // 存储完成清理 list + cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + } + } + + /** + * 所有数据解析完成了 都会来调用 + * + * @param analysisContext context + */ + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + saveData(); + } + + /** + * 存储数据 + */ + private void saveData() { + List kateOrdersList = new ArrayList<>(); + for (KateOrdersExcelVo kateOrdersExcelVo : cachedDataList) { + if (kateOrdersService.exists(new LambdaQueryWrapper() + .eq(KateOrders::getWorkOrder, kateOrdersExcelVo.getWorkOrder()) + .eq(KateOrders::getGoodsId, kateOrdersExcelVo.getGoodsId()) + .eq(KateOrders::getSupplyArea, kateOrdersExcelVo.getSupplyArea()))) { + // 数据重复 + continue; + } + KateOrdersLast kateOrdersLast = kateOrdersLastService.getOne(new LambdaQueryWrapper() + .eq(KateOrdersLast::getWorkOrder, kateOrdersExcelVo.getWorkOrder()) + .eq(KateOrdersLast::getGoodsId, kateOrdersExcelVo.getGoodsId()) + .eq(KateOrdersLast::getSupplyArea, kateOrdersExcelVo.getSupplyArea())); + if (kateOrdersLast != null) { + // 之前存在过 + KateOrders oldKateOrders = new KateOrders(); + oldKateOrders.setOrderId(kateOrdersLast.getOrderId()); + oldKateOrders.setWorkOrder(kateOrdersExcelVo.getWorkOrder()); + oldKateOrders.setGoodsId(kateOrdersExcelVo.getGoodsId()); + oldKateOrders.setItem(kateOrdersExcelVo.getItem()); + oldKateOrders.setDescription(kateOrdersExcelVo.getDescription()); + oldKateOrders.setSLoc(kateOrdersExcelVo.getSLoc()); + oldKateOrders.setType(kateOrdersExcelVo.getType()); + oldKateOrders.setOriginStatus(kateOrdersExcelVo.getOriginStatus()); + oldKateOrders.setSupplyArea(kateOrdersExcelVo.getSupplyArea()); + oldKateOrders.setSortString(kateOrdersExcelVo.getSortString()); + oldKateOrders.setRequirementQuantity(kateOrdersExcelVo.getRequirementQuantity()); + oldKateOrders.setGoodsUnit(kateOrdersExcelVo.getGoodsUnit()); + oldKateOrders.setOrderStatus(kateOrdersLast.getOrderStatus()); + oldKateOrders.setLackQuantity(kateOrdersLast.getLackQuantity()); + oldKateOrders.setPickedQuantity(kateOrdersLast.getPickedQuantity()); + oldKateOrders.setFinishTime(kateOrdersLast.getFinishTime()); + oldKateOrders.setUserName(uploadUser); + kateOrdersList.add(oldKateOrders); + } else { + // 之前没存在过 + KateOrders newKateOrders = new KateOrders(); + newKateOrders.setOrderId(generateId("ORDER_")); + newKateOrders.setWorkOrder(kateOrdersExcelVo.getWorkOrder()); + newKateOrders.setGoodsId(kateOrdersExcelVo.getGoodsId()); + newKateOrders.setItem(kateOrdersExcelVo.getItem()); + newKateOrders.setDescription(kateOrdersExcelVo.getDescription()); + newKateOrders.setSLoc(kateOrdersExcelVo.getSLoc()); + newKateOrders.setType(kateOrdersExcelVo.getType()); + newKateOrders.setOriginStatus(kateOrdersExcelVo.getOriginStatus()); + newKateOrders.setSupplyArea(kateOrdersExcelVo.getSupplyArea()); + newKateOrders.setSortString(kateOrdersExcelVo.getSortString()); + newKateOrders.setRequirementQuantity(kateOrdersExcelVo.getRequirementQuantity()); + newKateOrders.setGoodsUnit(kateOrdersExcelVo.getGoodsUnit()); + newKateOrders.setOrderStatus(0); + newKateOrders.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity()); + newKateOrders.setPickedQuantity(BigDecimal.ZERO); + newKateOrders.setUserName(uploadUser); + kateOrdersList.add(newKateOrders); + } + } + kateOrdersService.saveOrUpdateBatch(kateOrdersList); + } +} diff --git a/src/main/java/com/wms/utils/excel/listener/UploadStocksListener.java b/src/main/java/com/wms/utils/excel/listener/UploadStocksListener.java index d427cd7..162e529 100644 --- a/src/main/java/com/wms/utils/excel/listener/UploadStocksListener.java +++ b/src/main/java/com/wms/utils/excel/listener/UploadStocksListener.java @@ -34,7 +34,7 @@ public class UploadStocksListener implements ReadListener { @Override public void onException(Exception exception, AnalysisContext context) throws Exception { - logger.error("处理数据发生异常:{}", convertJsonString(exception)); + logger.error("处理库存数据发生异常:{}", convertJsonString(exception)); ReadListener.super.onException(exception, context); } diff --git a/src/main/java/com/wms/utils/excel/vo/KateDbsExcelVo.java b/src/main/java/com/wms/utils/excel/vo/KateDbsExcelVo.java new file mode 100644 index 0000000..6b7b46f --- /dev/null +++ b/src/main/java/com/wms/utils/excel/vo/KateDbsExcelVo.java @@ -0,0 +1,62 @@ +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.wms.entity.table.KateDBS; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class KateDbsExcelVo { + /** + * DBS计划Id + */ + @ExcelProperty("DBS计划Id") + private String dbsId; + /** + * 顺序号 + */ + @ExcelProperty("序号") + private Integer workSequence; + /** + * 工单 + */ + @ExcelProperty("装配工单") + private String workOrder; + /** + * 计划开工日期 + */ + @ExcelProperty("装配/测试/喷漆开工") + @DateTimeFormat("yyyy/MM/dd") + private LocalDateTime planStartDate; + /** + * dbs的状态 + * 0:未开始 + * 1:已开始未完成 + * 2:已完成 + */ + @ExcelProperty("状态") + private Integer dbsStatus; + /** + * 最近更新时间 + */ + @ExcelProperty("最近更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime lastUpdateTime; + /** + * 最近更新用户 + */ + @ExcelProperty("最近更新时间") + private String lastUpdateUser; + + /** + * 从数据库实体转换为excel对象 + * @param dbsPo 数据库实体 + * @return excel对象 + */ + public static KateDbsExcelVo of(KateDBS dbsPo) { + return BeanUtil.copyProperties(dbsPo, KateDbsExcelVo.class); + } +} diff --git a/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java b/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java new file mode 100644 index 0000000..ad64cf7 --- /dev/null +++ b/src/main/java/com/wms/utils/excel/vo/KateOrdersExcelVo.java @@ -0,0 +1,115 @@ +package com.wms.utils.excel.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.wms.entity.table.KateOrders; +import com.wms.entity.table.Location; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class KateOrdersExcelVo { + /** + * id + */ + @ExcelProperty("order_id") + private String orderId; + /** + * Order + */ + @ExcelProperty("Order") + private String workOrder; + /** + * Material + */ + @ExcelProperty("Material") + private String goodsId; + /** + * Item + */ + @ExcelProperty("Item") + private String item; + /** + * Description + */ + @ExcelProperty("Description") + private String description; + /** + * SLoc + */ + @ExcelProperty("SLoc") + private String sLoc; + /** + * Type + */ + @ExcelProperty("Type") + private String type; + /** + * Status + */ + @ExcelProperty("Status") + private String originStatus; + /** + * SupplyArea + */ + @ExcelProperty("SupplyArea") + private String supplyArea; + /** + * SortStrng + */ + @ExcelProperty("SortStrng") + private String sortString; + /** + * Requirement Qty + */ + @ExcelProperty("Requirement Qty") + private BigDecimal requirementQuantity; + /** + * BUn + */ + @ExcelProperty("BUn") + private String goodsUnit; + /** + * 工单状态 + * 0:未开始 + * 1:已生成任务 + * 2:已呼叫料箱 + * 3:正在拣选 + * 4:拣选完成 + */ + @ExcelProperty("工单状态") + private Integer orderStatus; + /** + * 缺少数量 + */ + @ExcelProperty("缺少数量") + private BigDecimal lackQuantity; + /** + * 实际拣选数量 + */ + @ExcelProperty("实际拣选数量") + private BigDecimal pickedQuantity; + /** + * 操作人员 + */ + @ExcelProperty("操作人员") + private String userName; + /** + * 完成时间 + */ + @ExcelProperty("完成时间") + private LocalDateTime finishTime; + + /** + * 从数据库实体转换为excel对象 + * @param ordersPo 数据库实体 + * @return excel对象 + */ + public static KateOrdersExcelVo of(KateOrders ordersPo) { + return BeanUtil.copyProperties(ordersPo, KateOrdersExcelVo.class); + } +}