Merge branch 'dev' into dev-ty1.2

# Conflicts:
#	mhd_wms/src/main/resources/bootstrap.yml
This commit is contained in:
王奎兴
2026-08-22 13:59:22 +08:00
41 changed files with 471 additions and 134 deletions
@@ -296,6 +296,31 @@ public class ReserveStockOutOrderApi extends BaseController {
}
}
/**
* 仅解析Excel文件内容并返回,不执行入库
* 同时根据货物名称查询WMS对应物料库存,可用数量大于件数的返回库存id,匹配不到库存id返回空
*/
@ApiOperation("解析导入Excel(仅解析不入库)")
@PostMapping("/parseExcel")
public ResponseEntity<Map<String, Object>> parseExcel(@RequestParam("file") MultipartFile file) {
List<ReservedInventoryOut> dataList = null;
try {
dataList = ExcelParseUtil.parseExcel(file);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 根据货物名称查询WMS库存并填充库存id,匹配不到库存id返回空
stockOutOrderApplicationService.fillMaterialInventoryId(dataList);
Map<String, Object> successResponse = new HashMap<>();
successResponse.put("code", 200);
successResponse.put("message", "Excel解析成功");
successResponse.put("dataCount", dataList.size());
successResponse.put("details", dataList);
return ResponseEntity.ok(successResponse);
}
/**
* 生成出库预约单号
*/
@@ -260,6 +260,52 @@ public class ReserveStockInOrderApi extends BaseController {
}
}
/**
* 仅解析Excel文件内容并返回,不执行入库
* 同时根据货物名称匹配WMS物料并返回物料id,匹配不到返回空
*/
@ApiOperation("解析导入Excel(仅解析不入库)")
@PostMapping("/parseExcel")
public ResponseEntity<Map<String, Object>> parseExcel(@RequestParam("file") MultipartFile file) {
try {
List<ReservedInventory> dataList = ExcelParseUtil.parseExcel(file);
// 根据货物名称匹配WMS物料并填充物料id,匹配不到返回空
stockInOrderApplicationService.fillMaterialBaseInfoId(dataList);
Map<String, Object> successResponse = new HashMap<>();
successResponse.put("code", 200);
successResponse.put("message", "Excel解析成功");
successResponse.put("dataCount", dataList.size());
successResponse.put("details", dataList);
return ResponseEntity.ok(successResponse);
} catch (ValidationException e) {
// 数据验证失败响应
Map<String, Object> errorResponse = new HashMap<>();
errorResponse.put("code", 400);
errorResponse.put("message", "数据验证失败");
errorResponse.put("errorDetails", e.getMessage());
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorResponse);
} catch (IOException e) {
// 文件处理失败响应
Map<String, Object> errorResponse = new HashMap<>();
errorResponse.put("code", 500);
errorResponse.put("message", "文件处理失败");
errorResponse.put("errorDetails", e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse);
} catch (Exception e) {
// 其他未知错误响应
Map<String, Object> errorResponse = new HashMap<>();
errorResponse.put("code", 500);
errorResponse.put("message", e.getMessage());
errorResponse.put("errorDetails", e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse);
}
}
/**
* 老系统入库预约单数据导入(主表+明细两个Excel文件批量导入,按名称匹配基础数据)
*/