From 4f7c0732e30a20ce647c513eac247a60d726c780 Mon Sep 17 00:00:00 2001 From: liangzhou <594755172@qq.com> Date: Fri, 30 Aug 2024 16:53:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0=EF=BC=9A?= =?UTF-8?q?=201.=20=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=9A=84=E9=98=B2=E5=91=86=202.=20=E5=B7=A5=E5=8D=95=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wms/controller/ExcelController.java | 53 +++++++++++++++++++ .../com/wms/controller/TaskController.java | 5 +- .../java/com/wms/entity/app/vo/FileVo.java | 2 + .../com/wms/entity/table/UploadRecord.java | 6 +++ .../WorkServiceImplements.java | 2 - 5 files changed, 64 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/wms/controller/ExcelController.java b/src/main/java/com/wms/controller/ExcelController.java index 84e4eb6..9ec10c9 100644 --- a/src/main/java/com/wms/controller/ExcelController.java +++ b/src/main/java/com/wms/controller/ExcelController.java @@ -71,6 +71,8 @@ public class ExcelController { private final GoodsService goodsService;// 物料服务 private final WorkStationConfigService workStationConfigService;// 工站配置服务 + private final List uploadFileHashStringList = new ArrayList<>(); + /** * 查询上传记录 * @param uploadRecordQuery 查询参数 @@ -118,10 +120,18 @@ public class ExcelController { logger.info("导入库存,请求ip:{},文件详情:{}", getIpAddr(servletRequest), convertJsonString(fileVo)); ResponseEntity response = new ResponseEntity(); try { + // 判断是否重复导入 + if (uploadFileHashStringList.contains(fileVo.getHash())) { + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请勿导入相同文件。"); + return convertJsonString(response); + } + uploadFileHashStringList.add(fileVo.getHash()); // 导入excel EasyExcel.read(file.getInputStream(), StockExcelVo.class, new UploadStocksListener(stockService)).sheet().doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "库存")); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入库存成功。"); return convertJsonString(response); @@ -129,6 +139,7 @@ public class ExcelController { logger.error("导入库存异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入库存异常。"); return convertJsonString(response); @@ -148,6 +159,13 @@ public class ExcelController { logger.info("导入DBS,请求ip:{},文件详情:{}", getIpAddr(servletRequest), convertJsonString(fileVo)); ResponseEntity response = new ResponseEntity(); try { + // 判断是否重复导入 + if (uploadFileHashStringList.contains(fileVo.getHash())) { + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请勿导入相同文件。"); + return convertJsonString(response); + } + uploadFileHashStringList.add(fileVo.getHash()); // 先移除之前last表中的内容 kateDbsLastService.remove(new LambdaQueryWrapper<>()); // 将当前Dbs表的数据存进Last表 @@ -158,6 +176,7 @@ public class ExcelController { EasyExcel.read(file.getInputStream(), KateDbsExcelVo.class, new UploadDbsListener(kateDbsService, kateDbsLastService, fileVo.getUserName())).sheet().headRowNumber(8).doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "DBS")); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入DBS成功。"); return convertJsonString(response); @@ -165,6 +184,7 @@ public class ExcelController { logger.error("导入DBS异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入DBS异常。"); return convertJsonString(response); @@ -184,10 +204,24 @@ public class ExcelController { logger.info("导入工单,请求ip:{},文件详情:{}", getIpAddr(servletRequest), convertJsonString(fileVo)); ResponseEntity response = new ResponseEntity(); try { + // 判断是否重复导入 + if (uploadFileHashStringList.contains(fileVo.getHash())) { + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请勿导入相同文件。"); + return convertJsonString(response); + } + uploadFileHashStringList.add(fileVo.getHash()); + // 先移除之前last表中的内容 + kateOrdersLastService.remove(new LambdaQueryWrapper<>()); + // 将当前工单表的数据存进Last表 + kateOrdersLastService.saveBatch(BeanUtil.copyToList(kateOrdersService.list(), KateOrdersLast.class)); + // 移库工单表中的内容 + kateOrdersService.remove(new LambdaQueryWrapper<>()); // 导入excel EasyExcel.read(file.getInputStream(), KateOrdersExcelVo.class, new UploadKateOrdersListener(kateOrdersService, kateOrdersLastService, fileVo.getUserName())).sheet().doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "ORDERS")); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入工单成功。"); return convertJsonString(response); @@ -195,6 +229,7 @@ public class ExcelController { logger.error("导入工单异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入工单异常。"); return convertJsonString(response); @@ -214,10 +249,18 @@ public class ExcelController { logger.info("导入物料,请求ip:{},文件详情:{}", getIpAddr(servletRequest), convertJsonString(fileVo)); ResponseEntity response = new ResponseEntity(); try { + // 判断是否重复导入 + if (uploadFileHashStringList.contains(fileVo.getHash())) { + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请勿导入相同文件。"); + return convertJsonString(response); + } + uploadFileHashStringList.add(fileVo.getHash()); // 导入excel EasyExcel.read(file.getInputStream(), GoodsExcelVo.class, new UploadGoodsListener(goodsService, fileVo.getUserName())).sheet("基本信息").doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "GOODS")); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入物料成功。"); return convertJsonString(response); @@ -225,6 +268,7 @@ public class ExcelController { logger.error("导入物料异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入物料异常。"); return convertJsonString(response); @@ -244,10 +288,18 @@ public class ExcelController { logger.info("导入工站配置,请求ip:{},文件详情:{}", getIpAddr(servletRequest), convertJsonString(fileVo)); ResponseEntity response = new ResponseEntity(); try { + // 判断是否重复导入 + if (uploadFileHashStringList.contains(fileVo.getHash())) { + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请勿导入相同文件。"); + return convertJsonString(response); + } + uploadFileHashStringList.add(fileVo.getHash()); // 导入excel EasyExcel.read(file.getInputStream(), StationConfigExcelVo.class, new UploadStationConfigListener(workStationConfigService, fileVo.getUserName())).sheet("工站配置").doRead(); // 添加导入记录 uploadRecordService.save(UploadRecord.ofFileVo(fileVo, "STATION-CONFIG_")); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.OK.getCode()); response.setMessage("导入工站配置。"); return convertJsonString(response); @@ -255,6 +307,7 @@ public class ExcelController { logger.error("导入工站配置异常:{}", convertJsonString(e)); // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + uploadFileHashStringList.remove(fileVo.getHash()); response.setCode(ResponseCode.ERROR.getCode()); response.setMessage("导入工站配置异常。"); return convertJsonString(response); diff --git a/src/main/java/com/wms/controller/TaskController.java b/src/main/java/com/wms/controller/TaskController.java index c1045c5..f1b0bd8 100644 --- a/src/main/java/com/wms/controller/TaskController.java +++ b/src/main/java/com/wms/controller/TaskController.java @@ -804,11 +804,12 @@ public class TaskController { .set(Stand::getPickVehicle, boxArriveRequest.getVehicleNo()) .eq(Stand::getStandId, pickTask.getStandId())); // 重置当前站台非当前箱子的已完成拣选任务 - pickTaskService.update(new LambdaUpdateWrapper() - .set(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode()) + List otherPickTasks = pickTaskService.list(new LambdaQueryWrapper() .ne(PickTask::getVehicleId, boxArriveRequest.getVehicleNo()) .eq(PickTask::getStandId, boxArriveRequest.getLocation()) .eq(PickTask::getPickStatus, PickTaskStatusEnum.FINISH.getCode())); + otherPickTasks.forEach(otherPickTask -> otherPickTask.setPickStatus(PickTaskStatusEnum.NEW.getCode())); + pickTaskService.updateBatchById(otherPickTasks); response.setCode(ResponseCode.OK.getCode()); response.setMessage("上报成功"); diff --git a/src/main/java/com/wms/entity/app/vo/FileVo.java b/src/main/java/com/wms/entity/app/vo/FileVo.java index a2405f4..3feaa9a 100644 --- a/src/main/java/com/wms/entity/app/vo/FileVo.java +++ b/src/main/java/com/wms/entity/app/vo/FileVo.java @@ -16,6 +16,8 @@ public class FileVo { private String type; @JsonProperty("size") private String size; + @JsonProperty("hash") + private String hash; @JsonProperty("userName") private String userName; } diff --git a/src/main/java/com/wms/entity/table/UploadRecord.java b/src/main/java/com/wms/entity/table/UploadRecord.java index a55de51..1e58259 100644 --- a/src/main/java/com/wms/entity/table/UploadRecord.java +++ b/src/main/java/com/wms/entity/table/UploadRecord.java @@ -27,6 +27,11 @@ public class UploadRecord { */ @TableField("file_id") private String fileId; + /** + * 文件哈希值 + */ + @TableField("file_hash") + private String hash; /** * 文件名 */ @@ -63,6 +68,7 @@ public class UploadRecord { UploadRecord uploadRecord = new UploadRecord(); uploadRecord.setUploadId(generateId("UPLOAD_")); uploadRecord.setFileId(fileVo.getFileId()); + uploadRecord.setHash(fileVo.getHash()); uploadRecord.setFileType(fileVo.getType()); uploadRecord.setFileName(fileVo.getName()); uploadRecord.setUploadTime(LocalDateTime.now()); 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 b94a026..56d1b7d 100644 --- a/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java +++ b/src/main/java/com/wms/service/business/serviceImplements/WorkServiceImplements.java @@ -3,7 +3,6 @@ package com.wms.service.business.serviceImplements; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.wms.constants.enums.ConfigMapKeyEnum; -import com.wms.constants.enums.StockStatus; import com.wms.entity.app.dto.WorkCenterAndOrderDto; import com.wms.entity.table.*; import com.wms.service.*; @@ -38,7 +37,6 @@ public class WorkServiceImplements implements IWorkService { private final ETagLocationService eTagLocationService;// 电子标签服务 private final ELocationConfigService eLocationConfigService;// 电子标签配置服务 private final GoodsToStationService goodsToStationService;// 站台要料服务 - private final OutsideVehiclesService outsideVehiclesService;// 流转中的箱子服务 private final WorkSummaryService workSummaryService;// 工作总结服务 private final ELocationConfigLastService eLocationConfigLastService;// 上一次标签配置的服务 private final StockService stockService;// 库存服务