From 358972c04fcdb07a2892149cf59e0e8bd2cb13d9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 14 Aug 2026 14:07:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84=E6=97=A5=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=8C=81=E4=B9=85=E5=B1=82=E7=8A=B6=E6=80=81=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/dailyplan/DailyPlanMapper.java | 23 +++++++- .../DailyPlanOperationLogMapper.java | 2 +- .../mapper/dailyplan/DailyPlanMapper.xml | 56 +++++++++++++++---- .../dailyplan/DailyPlanOperationLogMapper.xml | 4 +- 4 files changed, 71 insertions(+), 14 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 60bf2019..960d5c54 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 @@ -67,7 +67,7 @@ public interface DailyPlanMapper extends BaseMapperX { List selectSleevingCandidates(); /** - * 新增日计划。 + * 新增初始状态的日计划,数量、状态和版本由 SQL 固定为零。 */ int insertDailyPlan(@Param("plan") DailyPlanDO plan); @@ -83,6 +83,27 @@ public interface DailyPlanMapper extends BaseMapperX { */ int updateStateWithVersion(@Param("plan") DailyPlanDO plan); + /** + * 乐观锁恢复已取消的订单状态,并清空前一订单状态。 + */ + int restoreOrderWithVersion(@Param("dailyPlanId") Long dailyPlanId, + @Param("version") Integer version, + @Param("updater") String updater); + + /** + * 乐观锁恢复已取消的备货状态,并清空前一备货状态。 + */ + int restoreStockingWithVersion(@Param("dailyPlanId") Long dailyPlanId, + @Param("version") Integer version, + @Param("updater") String updater); + + /** + * 乐观锁恢复已取消的套管状态,并清空前一套管状态。 + */ + int restoreSleevingWithVersion(@Param("dailyPlanId") Long dailyPlanId, + @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/dal/mysql/dailyplan/DailyPlanOperationLogMapper.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanOperationLogMapper.java index 1116332e..c0f4e41f 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanOperationLogMapper.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/dailyplan/DailyPlanOperationLogMapper.java @@ -14,7 +14,7 @@ import java.util.List; public interface DailyPlanOperationLogMapper extends BaseMapperX { /** - * 新增操作日志;自定义新增不会生成主键,调用方必须预先设置 operationLogId。 + * 新增操作日志;自定义新增不会生成主键,调用方必须预先设置 operationLogId,操作时间使用数据库当前时间。 */ int insertOperationLog(@Param("operationLog") DailyPlanOperationLogDO operationLog); 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 e3d41047..a2808bd8 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 @@ -107,19 +107,12 @@ plan_date, material_id, material_code, material_name, material_spec, plan_qty, append_qty, stocked_qty, sleeved_qty, packing_info, sort_seq, weight, order_status, stocking_status, sleeving_status, - previous_order_status, previous_stocking_status, previous_sleeving_status, - order_start_time, order_end_time, stocking_start_time, stocking_complete_time, - sleeving_start_time, sleeving_complete_time, version, - creator, updater) + version, creator, updater) VALUES (#{plan.dailyPlanId}, #{plan.planCode}, #{plan.sourceType}, #{plan.erpOrderCode}, #{plan.manualOrderCode}, #{plan.planDate}, #{plan.materialId}, #{plan.materialCode}, #{plan.materialName}, #{plan.materialSpec}, - #{plan.planQty}, #{plan.appendQty}, #{plan.stockedQty}, #{plan.sleevedQty}, #{plan.packingInfo}, - #{plan.sortSeq}, #{plan.weight}, #{plan.orderStatus}, #{plan.stockingStatus}, #{plan.sleevingStatus}, - #{plan.previousOrderStatus}, #{plan.previousStockingStatus}, #{plan.previousSleevingStatus}, - #{plan.orderStartTime}, #{plan.orderEndTime}, #{plan.stockingStartTime}, #{plan.stockingCompleteTime}, - #{plan.sleevingStartTime}, #{plan.sleevingCompleteTime}, #{plan.version}, - #{plan.creator}, #{plan.updater}) + #{plan.planQty}, 0, 0, 0, #{plan.packingInfo}, #{plan.sortSeq}, #{plan.weight}, + 0, 0, 0, 0, #{plan.creator}, #{plan.updater}) @@ -143,6 +136,47 @@ AND order_status = 0 + + UPDATE lms_daily_plan + SET order_status = previous_order_status, + previous_order_status = NULL, + updater = #{updater}, + version = version + 1 + WHERE daily_plan_id = #{dailyPlanId} + AND version = #{version} + AND deleted = b'0' + AND order_status = 3 + AND previous_order_status IS NOT NULL + + + + UPDATE lms_daily_plan + SET stocking_status = previous_stocking_status, + previous_stocking_status = NULL, + updater = #{updater}, + version = version + 1 + WHERE daily_plan_id = #{dailyPlanId} + AND version = #{version} + AND deleted = b'0' + AND order_status = 1 + AND stocking_status = 3 + AND previous_stocking_status IS NOT NULL + + + + UPDATE lms_daily_plan + SET sleeving_status = previous_sleeving_status, + previous_sleeving_status = NULL, + updater = #{updater}, + version = version + 1 + WHERE daily_plan_id = #{dailyPlanId} + AND version = #{version} + AND deleted = b'0' + AND order_status = 1 + AND sleeving_status = 3 + AND previous_sleeving_status IS NOT NULL + + UPDATE lms_daily_plan @@ -195,6 +229,7 @@ AND deleted = b'0' AND order_status = 1 AND stocking_status = 1 + AND #{incrementQty} > 0 AND stocked_qty + #{incrementQty} <= plan_qty + append_qty @@ -214,6 +249,7 @@ AND deleted = b'0' AND order_status = 1 AND sleeving_status = 1 + AND #{incrementQty} > 0 AND sleeved_qty + #{incrementQty} <= plan_qty + append_qty diff --git a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanOperationLogMapper.xml b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanOperationLogMapper.xml index e0fdcf16..1480dd70 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanOperationLogMapper.xml +++ b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanOperationLogMapper.xml @@ -12,13 +12,13 @@ INSERT INTO lms_daily_plan_operation_log (operation_log_id, daily_plan_id, operation_target, operation_type, before_value, after_value, change_qty, operation_reason, - operator, operation_time) + operator) VALUES (#{operationLog.operationLogId}, #{operationLog.dailyPlanId}, #{operationLog.operationTarget}, #{operationLog.operationType}, #{operationLog.beforeValue}, #{operationLog.afterValue}, #{operationLog.changeQty}, #{operationLog.operationReason}, - #{operationLog.operator}, #{operationLog.operationTime}) + #{operationLog.operator})