From 1dd1f1138492e6abeb21d76f564c8d53b1079b11 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 14 Aug 2026 17:28:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=BD=E5=8A=A0=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E5=90=8E=E9=87=8D=E6=96=B0=E6=89=93=E5=BC=80=E5=B7=B2=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/dailyplan/DailyPlanMapper.java | 6 ++++++ .../dailyplan/DailyPlanServiceImpl.java | 18 ++++++++++++++---- .../mapper/dailyplan/DailyPlanMapper.xml | 15 +++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanMapper.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanMapper.java index 4fe6dfe1..0b8c7307 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanMapper.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanMapper.java @@ -97,6 +97,12 @@ public interface DailyPlanMapper extends BaseMapperX { /** 原子确认数量并开始未开始订单。 */ int startOrderWithVersion(@Param("plan") DailyPlanDO plan); + /** 原子追加需求数量,并重新打开已经完成的备货、套管作业。 */ + int appendQuantityWithVersion(@Param("dailyPlanId") Long dailyPlanId, + @Param("appendQty") Integer appendQty, + @Param("version") Integer version, + @Param("updater") String updater); + /** * 乐观锁恢复已取消的订单状态,并清空前一订单状态。 */ diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/dailyplan/DailyPlanServiceImpl.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/dailyplan/DailyPlanServiceImpl.java index 35023626..fe8c3375 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/dailyplan/DailyPlanServiceImpl.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/dailyplan/DailyPlanServiceImpl.java @@ -400,11 +400,21 @@ public class DailyPlanServiceImpl implements DailyPlanService { public void appendQuantity(DailyPlanAppendReqVO reqVO) { DailyPlanDO current = validateVersion(reqVO.getId(), reqVO.getVersion()); validateOrderStatus(current, DailyPlanOrderStatusEnum.IN_PROGRESS, "追加数量"); - DailyPlanDO update = newUpdate(current); - update.setAppendQty(safeAddQuantity(current.getAppendQty(), reqVO.getAppendQty())); - checkAffected(dailyPlanMapper.updateStateWithVersion(update)); + Integer appendQty = safeAddQuantity(current.getAppendQty(), reqVO.getAppendQty()); + checkAffected(dailyPlanMapper.appendQuantityWithVersion(current.getDailyPlanId(), reqVO.getAppendQty(), + current.getVersion(), String.valueOf(getLoginUserId()))); insertLog(current.getDailyPlanId(), TARGET_QUANTITY, TYPE_APPEND, String.valueOf(current.getAppendQty()), - String.valueOf(update.getAppendQty()), reqVO.getAppendQty(), null); + String.valueOf(appendQty), reqVO.getAppendQty(), null); + if (DailyPlanWorkStatusEnum.COMPLETED.getCode().equals(current.getStockingStatus())) { + insertLog(current.getDailyPlanId(), TARGET_STOCKING, TYPE_RESTORE, + String.valueOf(current.getStockingStatus()), + String.valueOf(DailyPlanWorkStatusEnum.IN_PROGRESS.getCode()), null, "追加数量,重新开始备货"); + } + if (DailyPlanWorkStatusEnum.COMPLETED.getCode().equals(current.getSleevingStatus())) { + insertLog(current.getDailyPlanId(), TARGET_SLEEVING, TYPE_RESTORE, + String.valueOf(current.getSleevingStatus()), + String.valueOf(DailyPlanWorkStatusEnum.IN_PROGRESS.getCode()), null, "追加数量,重新开始套管"); + } } /** 开始备货。 */ diff --git a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml index 29a97f6d..a7ebc8a7 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml +++ b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml @@ -264,6 +264,21 @@ AND deleted = b'0' + + UPDATE lms_daily_plan + SET stocking_complete_time = CASE WHEN stocking_status = 2 THEN NULL ELSE stocking_complete_time END, + sleeving_complete_time = CASE WHEN sleeving_status = 2 THEN NULL ELSE sleeving_complete_time END, + stocking_status = CASE WHEN stocking_status = 2 THEN 1 ELSE stocking_status END, + sleeving_status = CASE WHEN sleeving_status = 2 THEN 1 ELSE sleeving_status END, + append_qty = append_qty + #{appendQty}, + updater = #{updater}, + version = version + 1 + WHERE daily_plan_id = #{dailyPlanId} + AND version = #{version} + AND order_status = 1 + AND deleted = b'0' + + UPDATE lms_daily_plan SET sort_seq = #{sortSeq}, updater = #{updater}, version = version + 1