代码更新:

1. 增加文件上传的防呆
2. 工单上传逻辑修正
This commit is contained in:
梁州 2024-08-30 16:53:31 +08:00
parent 0cc57c91b8
commit 4f7c0732e3
5 changed files with 64 additions and 4 deletions

View File

@ -71,6 +71,8 @@ public class ExcelController {
private final GoodsService goodsService;// 物料服务
private final WorkStationConfigService workStationConfigService;// 工站配置服务
private final List<String> 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);

View File

@ -804,11 +804,12 @@ public class TaskController {
.set(Stand::getPickVehicle, boxArriveRequest.getVehicleNo())
.eq(Stand::getStandId, pickTask.getStandId()));
// 重置当前站台非当前箱子的已完成拣选任务
pickTaskService.update(new LambdaUpdateWrapper<PickTask>()
.set(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode())
List<PickTask> otherPickTasks = pickTaskService.list(new LambdaQueryWrapper<PickTask>()
.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("上报成功");

View File

@ -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;
}

View File

@ -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());

View File

@ -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;// 库存服务