From bd3b6b339a96888eb67b517402c7e1e32dd50e63 Mon Sep 17 00:00:00 2001 From: liang <594755172@qq.com> Date: Mon, 24 Mar 2025 21:08:36 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=88=9D=E6=AD=A5=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E5=B9=B2=E6=B6=89=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82=202.=20=E9=85=8D=E6=96=99=E5=90=8E?= =?UTF-8?q?=E5=9B=BE=E7=BA=B8=E6=9B=B4=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceImpl/ImportExcelEasyPoi.java | 40 ++++++++++++++----- .../KateWorkControllerServiceImpl.java | 38 +++++++++++------- .../TaskControllerServiceImpl.java | 17 +++++--- .../serviceImpl/OutsExecutorServiceImpl.java | 32 +++++++++++++-- .../src/main/resources/application.yml | 12 +++--- 5 files changed, 99 insertions(+), 40 deletions(-) diff --git a/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/ImportExcelEasyPoi.java b/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/ImportExcelEasyPoi.java index 5727cd1..739f27d 100644 --- a/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/ImportExcelEasyPoi.java +++ b/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/ImportExcelEasyPoi.java @@ -204,12 +204,10 @@ public class ImportExcelEasyPoi extends BaseImportExcelEasyPoi implements IImpor tAppProductService.remove(new LambdaQueryWrapper().in(TAppProduct::getProductId, productMap.keySet())); // 保存新数据 tAppProductService.saveBatch(productList); - // 处理旧图纸 - Map> imageMap = imageList.stream().collect(Collectors.groupingBy(TAppImage::getProductId)); - // 移除旧图纸 - tAppImageService.remove(new LambdaQueryWrapper().in(TAppImage::getProductId, imageMap.keySet())); + // 合并图纸id + updateImageIds(thisProductId, imageList); // 保存新图纸 - tAppImageService.saveBatch(imageList); + tAppImageService.saveOrUpdateBatch(imageList); // 保存导入file记录 saveFileVo(fileVo); return BaseWmsApiResponse.success("导入配料单成功。"); @@ -285,12 +283,10 @@ public class ImportExcelEasyPoi extends BaseImportExcelEasyPoi implements IImpor tAppSingleProductService.remove(new LambdaQueryWrapper().in(TAppSingleProduct::getProductId, productMap.keySet())); // 保存新数据 tAppSingleProductService.saveBatch(productList); - // 处理旧图纸 - Map> imageMap = imageList.stream().collect(Collectors.groupingBy(TAppImage::getProductId)); - // 移除旧图纸 - tAppImageService.remove(new LambdaQueryWrapper().in(TAppImage::getProductId, imageMap.keySet())); + // 合并图纸id + updateImageIds(thisProductId, imageList); // 保存新图纸 - tAppImageService.saveBatch(imageList); + tAppImageService.saveOrUpdateBatch(imageList); // 保存导入file记录 saveFileVo(fileVo); return BaseWmsApiResponse.success("导入服务件配料单成功。"); @@ -301,6 +297,30 @@ public class ImportExcelEasyPoi extends BaseImportExcelEasyPoi implements IImpor } } + /** + * 更新图纸id + * @param productId 成品号 + * @param imageList 新的图纸列表 + */ + private void updateImageIds(String productId, List imageList) { + if (StringUtils.isEmpty(productId) || imageList == null || imageList.isEmpty()) { + return; + } + // 获取到数据库中当前成品的图纸列表 + List oldImageList = tAppImageService.list(new LambdaQueryWrapper().eq(TAppImage::getProductId, productId)); + if (oldImageList.isEmpty()) { + return; + } + // 根据料盒号map一下 + Map oldImageMap = oldImageList.stream().collect(Collectors.toMap(TAppImage::getBoxNo, image -> image)); + for (TAppImage image : imageList) { + if (oldImageMap.containsKey(image.getBoxNo())) { + // 使用原来的图纸id + image.setImageId(oldImageMap.get(image.getBoxNo()).getImageId()); + } + } + } + /** * 导入总成与单片对应关系 * diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java index 41246c6..466a22f 100644 --- a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java +++ b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java @@ -394,8 +394,14 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService } // 当前站台到达的拣选任务 TAppPickTask thisPickTask = pickTaskList.getFirst(); + if (confirmWorkRequest.getStockConfirm() == null || confirmWorkRequest.getOrderConfirm() == null) { + return BaseWmsApiResponse.error("确认信息不全。"); + } // 更新工作信息 - updateWorkInfo(confirmWorkRequest); + String updateWorkResult = updateWorkInfo(confirmWorkRequest); + if (StringUtils.isNotEmpty(updateWorkResult)) { + return BaseWmsApiResponse.error("更新工作信息失败:" + updateWorkResult + ",请重试。"); + } // 更新库存信息 stockDataService.updateStockInfo(confirmWorkRequest.getStockConfirm(), confirmWorkRequest.getStandId(), confirmWorkRequest.getUserName(), "配料拣选"); // 查询库存获得当前载具中存储的库存列表 @@ -1246,35 +1252,36 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService * * @param confirmWorkRequest 工作确认信息 */ - private void updateWorkInfo(ConfirmWorkRequest confirmWorkRequest) { + private String updateWorkInfo(ConfirmWorkRequest confirmWorkRequest) { // 判断请求是否为空 if (confirmWorkRequest == null) { - return; + return "确认请求为空"; } OrderConfirmEntity orderConfirm = confirmWorkRequest.getOrderConfirm(); if (orderConfirm == null || StringUtils.isEmpty(orderConfirm.getWorkIndex()) || orderConfirm.getRealPickQty() == null) { - return; + return "工作确认请求信息不全"; } // 查询对应的工作信息 List targetWorks = appWorkService.list(new LambdaQueryWrapper() .eq(StringUtils.isNotEmpty(orderConfirm.getWorkIndex()), TAppWork::getWorkIndex, orderConfirm.getWorkIndex()) ); if (targetWorks == null || targetWorks.isEmpty()) { - return; + return "未查到对应工作信息"; } TAppWork work = targetWorks.getFirst(); - if (work != null && orderConfirm.getRealPickQty() >= 0) { - work.setFinishNum(work.getFinishNum() + orderConfirm.getRealPickQty()); - if (work.getFinishNum() >= work.getNeedNum()) { - work.setWorkStatus(2); - work.setLackStatus(0); - work.setFinishTime(LocalDateTime.now()); - } - work.setWorkUser(confirmWorkRequest.getUserName()); - // 更新 - appWorkService.updateById(work); + if (orderConfirm.getRealPickQty() < 0) { + return "实际拣选数量不能为负整数"; } + work.setFinishNum(work.getFinishNum() + orderConfirm.getRealPickQty()); + if (work.getFinishNum() >= work.getNeedNum()) { + work.setWorkStatus(2); + work.setLackStatus(0); + work.setFinishTime(LocalDateTime.now()); + } + work.setWorkUser(confirmWorkRequest.getUserName()); + // 更新 + appWorkService.updateById(work); // 清除当前站台的正在工作信息 appStandWorkService.update(new LambdaUpdateWrapper() .set(TAppStandWork::getWorkIndex, "") @@ -1291,6 +1298,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService // 清除拣选计划 appPickPlanService.remove(new LambdaQueryWrapper() .eq(TAppPickPlan::getWorkIndex, confirmWorkRequest.getOrderConfirm().getWorkIndex())); + return ""; } /** diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java index fe76740..2e38d37 100644 --- a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java +++ b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java @@ -681,8 +681,14 @@ public class TaskControllerServiceImpl implements ITaskControllerService { } // 当前站台到达的拣选任务 TAppPickTask thisPickTask = pickTaskList.getFirst(); + if (confirmTaskRequest.getTaskConfirm() == null || confirmTaskRequest.getStockConfirm() == null) { + return BaseWmsApiResponse.error("确认信息不全。"); + } // 更新工作信息 - updateTaskInfo(confirmTaskRequest); + String updateTaskResult = updateTaskInfo(confirmTaskRequest); + if (StringUtils.isNotEmpty(updateTaskResult)) { + return BaseWmsApiResponse.error("更新任务信息失败:" + updateTaskResult + ",请重试。"); + } // 更新库存信息 stockDataService.updateStockInfo(confirmTaskRequest.getStockConfirm(), confirmTaskRequest.getStandId(), confirmTaskRequest.getUserName(), "出库拣选"); // 查询库存获得当前载具中存储的库存列表 @@ -719,19 +725,19 @@ public class TaskControllerServiceImpl implements ITaskControllerService { * 更新出库单信息 * @param confirmTaskRequest 确认信息 */ - private void updateTaskInfo(ConfirmTaskRequest confirmTaskRequest) { + private String updateTaskInfo(ConfirmTaskRequest confirmTaskRequest) { if (confirmTaskRequest == null) { - return; + return "请求参数为空"; } TaskConfirmEntity taskConfirm = confirmTaskRequest.getTaskConfirm(); if (taskConfirm == null || StringUtils.isEmpty(taskConfirm.getTaskId())) { - return; + return "请求参数不全"; } // 查询对应的任务 TAppOuts outs = appOutsService.getOne(new LambdaQueryWrapper() .eq(TAppOuts::getTaskId, taskConfirm.getTaskId())); if (outs == null || taskConfirm.getRealPickQty() == null) { - return; + return "未查到对应的任务或者实际拣选数量未填写"; } outs.setPickNum(outs.getPickNum() + taskConfirm.getRealPickQty()); outs.setUserName(confirmTaskRequest.getUserName()); @@ -760,5 +766,6 @@ public class TaskControllerServiceImpl implements ITaskControllerService { // 清除拣选计划 appPickPlanService.remove(new LambdaQueryWrapper() .eq(TAppPickPlan::getWorkIndex, confirmTaskRequest.getTaskConfirm().getTaskId())); + return ""; } } diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/OutsExecutorServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/OutsExecutorServiceImpl.java index 4044386..0dfa022 100644 --- a/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/OutsExecutorServiceImpl.java +++ b/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/OutsExecutorServiceImpl.java @@ -92,8 +92,14 @@ public class OutsExecutorServiceImpl implements IOutsExecutorService { solveEmerge(equipVehicleMap, appOuts, allStocks, pickTasks, newOutWmsTasks, newPickTasks, thisTimeOutVehicleIds, newPickPlans); } } - // 保存出库单 - appOutsService.updateBatchById(appOutsList); + // 保存出库单---只更新分配数量 + List onlyDistributeNumOuts = appOutsList.stream().map(outs -> { + TAppOuts outCopy = new TAppOuts(); + outCopy.setTaskId(outs.getTaskId()); + outCopy.setDistributeNum(outs.getDistributeNum()); + return outCopy; + }).toList(); + appOutsService.updateBatchById(onlyDistributeNumOuts); // 保存出库任务 if (!newOutWmsTasks.isEmpty()) { appTaskService.saveBatch(newOutWmsTasks); @@ -646,7 +652,14 @@ public class OutsExecutorServiceImpl implements IOutsExecutorService { } } // 更新工作状态 - appWorkService.updateBatchById(works); + List onlyDistributeNumWorks = works.stream().map(work -> { + TAppWork workCopy = new TAppWork(); + workCopy.setWorkIndex(work.getWorkIndex()); + workCopy.setDistributeNum(work.getDistributeNum()); + workCopy.setWorkStatus(work.getWorkStatus()); + return workCopy; + }).toList(); + appWorkService.updateBatchById(onlyDistributeNumWorks); } // 保存出库任务 if (!newOutWmsTasks.isEmpty()) { @@ -785,7 +798,18 @@ public class OutsExecutorServiceImpl implements IOutsExecutorService { .eq(TAppDbs::getWorkOrder, workOrder)); } else { // 更新工作 - appWorkService.updateBatchById(works); + List updateWorks = works.stream().map(work -> { + TAppWork updateWork = new TAppWork(); + updateWork.setWorkIndex(work.getWorkIndex()); + updateWork.setWorkStatus(work.getWorkStatus()); + updateWork.setLackStatus(work.getLackStatus()); + updateWork.setDistributeNum(work.getDistributeNum()); + if (work.getFinishTime() != null) { + updateWork.setFinishTime(work.getFinishTime()); + } + return updateWork; + }).toList(); + appWorkService.updateBatchById(updateWorks); } } } catch (Exception e) { diff --git a/dev_wms_serve/src/main/resources/application.yml b/dev_wms_serve/src/main/resources/application.yml index 3523c4a..cab094d 100644 --- a/dev_wms_serve/src/main/resources/application.yml +++ b/dev_wms_serve/src/main/resources/application.yml @@ -9,13 +9,13 @@ spring: # username: developer # password: developer # 本地 - url: jdbc:mysql://localhost:3306/wms_kate_wuxi?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true - username: root - password: liangzhou +# url: jdbc:mysql://localhost:3306/wms_kate_wuxi_test?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true +# username: root +# password: liangzhou # 卡特服务器 -# url: jdbc:mysql://10.90.83.37:3306/wms_kate_wuxi?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true -# username: developer -# password: baokai + url: jdbc:mysql://10.90.83.37:3306/wms_kate_wuxi?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true + username: developer + password: baokai profiles: active: online