diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerManageController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerManageController.java index 33c40fdcb..6b8f36a16 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerManageController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerManageController.java @@ -39,7 +39,7 @@ public class VeneerManageController { private VeneerManageService veneerManageService; /** - * 分页查询存在已分解贴皮板件的订单。 + * 分页查询存在可维护未排单贴皮的订单。 * * @param req 分页及筛选条件 * @return 订单分页列表 @@ -53,7 +53,7 @@ public class VeneerManageController { } /** - * 分页查询存在已分解贴皮板件的板材。 + * 分页查询存在可维护未排单贴皮的板材。 * * @param req 分页及筛选条件 * @return 板材分页列表 @@ -67,13 +67,13 @@ public class VeneerManageController { } /** - * 按订单查询已分解板件贴皮列表。 + * 按订单查询可维护的未排单板件贴皮列表。 * * @param req 查询条件,必须包含订单ID列表,可按房间和柜体筛选 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ @PostMapping("/order/plate/list") - @Operation(summary = "按订单获取已分解板件贴皮列表") + @Operation(summary = "按订单获取可维护的未排单板件贴皮列表") @PreAuthorize("@ss.hasPermission('unplannedOrders:query')") public CommonResult> getVeneerManageOrderPlateList( @Valid @RequestBody VeneerManagePlateListReqVO req) { @@ -81,13 +81,13 @@ public class VeneerManageController { } /** - * 按板材查询已分解板件贴皮列表。 + * 按板材查询可维护的未排单板件贴皮列表。 * * @param req 查询条件,必须包含板材商品编码列表 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ @PostMapping("/goods/plate/list") - @Operation(summary = "按板材获取已分解板件贴皮列表") + @Operation(summary = "按板材获取可维护的未排单板件贴皮列表") @PreAuthorize("@ss.hasPermission('unplannedOrders:query')") public CommonResult> getVeneerManageGoodsPlateList( @Valid @RequestBody VeneerManagePlateListReqVO req) { @@ -95,7 +95,7 @@ public class VeneerManageController { } /** - * 批量为已分解板件贴皮重新选择贴皮库数据。 + * 批量为未排单板件贴皮重新选择贴皮库数据。 * * @param req 板件贴皮记录ID及新贴皮库ID * @return 是否成功 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerManagePlateRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerManagePlateRespVO.java index 2fbc58270..8bc46955c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerManagePlateRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerManagePlateRespVO.java @@ -6,7 +6,7 @@ import lombok.Data; import java.math.BigDecimal; /** - * 已分解板件贴皮响应参数。 + * 可维护未排单板件贴皮响应参数。 */ @Data public class VeneerManagePlateRespVO { @@ -32,7 +32,7 @@ public class VeneerManagePlateRespVO { @Schema(description = "原板件厚(mm)") private BigDecimal thickness; - @Schema(description = "贴皮排单ID,0表示未排单") + @Schema(description = "贴皮排单ID,贴皮管理列表中固定为0") private Long planId; @Schema(description = "贴皮商品号") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerManageMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerManageMapper.java index abee853ed..7111d1033 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerManageMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerManageMapper.java @@ -23,7 +23,7 @@ import java.util.List; public interface VeneerManageMapper { /** - * 分页查询存在已分解贴皮板件的根订单 ID。 + * 分页查询存在可维护未排单贴皮的根订单 ID。 * * @param page 分页参数 * @param req 订单查询条件 @@ -45,7 +45,7 @@ public interface VeneerManageMapper { @Param("rootIds") List rootIds); /** - * 查询当前页根订单下存在已分解贴皮板件的子订单。 + * 查询当前页根订单下存在可维护未排单贴皮的子订单。 * * @param rootIds 根订单ID列表 * @param req 订单查询条件 @@ -58,7 +58,7 @@ public interface VeneerManageMapper { @Param("orderDateTime") LocalDateTime[] orderDateTime); /** - * 分页查询存在已分解贴皮板件的板材。 + * 分页查询存在可维护未排单贴皮的板材。 * * @param page 分页参数 * @param req 板材查询条件 @@ -105,18 +105,18 @@ public interface VeneerManageMapper { @Param("req") VeneerManageGoodsPageReqVO req); /** - * 按订单查询已分解板件贴皮列表。 + * 按订单查询可维护的未排单板件贴皮列表。 * * @param req 订单、房间及柜体查询条件 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ List selectOrderPlateList(@Param("req") VeneerManagePlateListReqVO req); /** - * 按板材商品编码查询已分解板件贴皮列表。 + * 按板材商品编码查询可维护的未排单板件贴皮列表。 * * @param goodsIds 板材商品编码列表 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ List selectGoodsPlateList(@Param("goodsIds") List goodsIds); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageService.java index 0f4193128..53183ef7f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageService.java @@ -20,7 +20,7 @@ import java.util.List; public interface VeneerManageService { /** - * 分页查询存在已分解贴皮板件的订单。 + * 分页查询存在可维护未排单贴皮的订单。 * * @param req 订单查询条件 * @return 订单分页结果 @@ -28,7 +28,7 @@ public interface VeneerManageService { PageResult getOrderPage(VeneerManageOrderPageReqVO req); /** - * 分页查询存在已分解贴皮板件的板材。 + * 分页查询存在可维护未排单贴皮的板材。 * * @param req 板材查询条件 * @return 板材分页结果 @@ -52,18 +52,18 @@ public interface VeneerManageService { PageResult getUnplannedGoodsPage(VeneerManageGoodsPageReqVO req); /** - * 按订单查询已分解板件贴皮列表。 + * 按订单查询可维护的未排单板件贴皮列表。 * * @param req 查询条件,必须包含订单ID列表,可按房间和柜体筛选 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ List getOrderPlateList(VeneerManagePlateListReqVO req); /** - * 按板材查询已分解板件贴皮列表。 + * 按板材查询可维护的未排单板件贴皮列表。 * * @param req 查询条件,必须包含板材商品编码列表 - * @return 已分解板件贴皮列表 + * @return 未排单板件贴皮列表 */ List getGoodsPlateList(VeneerManagePlateListReqVO req); @@ -76,7 +76,7 @@ public interface VeneerManageService { UnplannedVeneerPlateDataRespVO getUnplannedPlateData(UnplannedVeneerPlateDataReqVO req); /** - * 批量为已分解板件贴皮重新选择贴皮库数据。 + * 批量为未排单板件贴皮重新选择贴皮库数据。 * * @param req 板件贴皮记录ID及新贴皮库ID */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageServiceImpl.java index 8ca538a4b..7025abb05 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerManageServiceImpl.java @@ -296,7 +296,7 @@ public class VeneerManageServiceImpl implements VeneerManageService { } /** - * 批量重选贴皮,仅替换所选 A/B 面记录的贴皮库关联及贴皮属性快照。 + * 批量重选未排单贴皮,仅替换所选 A/B 面记录的贴皮库关联及贴皮属性快照。 * * @param req 批量重选贴皮参数 */ @@ -326,18 +326,20 @@ public class VeneerManageServiceImpl implements VeneerManageService { } for (List idBatch : CollUtil.split(ids, RESELECT_BATCH_SIZE)) { - // 查询本批有效记录,提前校验所选数据是否已删除或发生变化。 + // 仅查询未排单记录;已删除、已排单或状态发生变化时统一按并发冲突处理。 List records = orderPlateVeneerMapper.selectList( new LambdaQueryWrapper() .select(OrderPlateVeneerDO::getId) + .eq(OrderPlateVeneerDO::getPlanId, 0L) .in(OrderPlateVeneerDO::getId, idBatch)); if (records.size() != idBatch.size()) { throw new ServiceException(VENEER_RESELECT_RECORD_STATUS_CHANGED); } - // 生成贴皮编号及原板信息保持不变,只替换贴皮库关联和五个展示快照字段。 + // 更新时再次限制未排单状态,避免查询后被其他用户排单仍可重选贴皮。 int updated = orderPlateVeneerMapper.update( new LambdaUpdateWrapper() + .eq(OrderPlateVeneerDO::getPlanId, 0L) .in(OrderPlateVeneerDO::getId, idBatch) .set(OrderPlateVeneerDO::getSourceVeneerId, veneer.getId()) .set(OrderPlateVeneerDO::getSourceVeneerNo, veneer.getVeneerNo()) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerManageMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerManageMapper.xml index 972a6eba9..14fcff5aa 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerManageMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerManageMapper.xml @@ -56,7 +56,8 @@ SELECT o.root_id FROM orders o WHERE o.deleted = false - AND IFNULL(o.decomposed_veneer_plate_num, 0) > 0 + AND IFNULL(o.decomposed_veneer_plate_num, 0) + > IFNULL(o.planned_veneer_plate_num, 0) AND CAST(o.id AS CHAR) LIKE CONCAT('%', #{req.orderId}, '%') @@ -110,7 +111,8 @@ o.area AS area FROM orders o WHERE o.deleted = false - AND IFNULL(o.decomposed_veneer_plate_num, 0) > 0 + AND IFNULL(o.decomposed_veneer_plate_num, 0) + > IFNULL(o.planned_veneer_plate_num, 0) AND o.parent_id IN #{id} @@ -149,7 +151,8 @@ WHERE o.deleted = false AND o.status IN (1, 2, 3) AND og.deleted = false - AND IFNULL(og.decomposed_veneer_plate_num, 0) > 0 + AND IFNULL(og.decomposed_veneer_plate_num, 0) + > IFNULL(og.planned_veneer_plate_num, 0) AND og.goods_name LIKE CONCAT('%', #{req.goodsName}, '%') @@ -310,6 +313,7 @@ FROM order_plate_veneer opv WHERE opv.deleted = false + AND opv.plan_id = 0 AND opv.order_id IN #{orderId} @@ -346,6 +350,7 @@ JOIN order_goods og ON og.order_id = opv.order_id AND og.id = opv.order_goods_id WHERE opv.deleted = false + AND opv.plan_id = 0 AND og.deleted = false AND og.goods_id IN