From 019fb9a1461e2a85e4eb4ec6331a2dc823d51098 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 8 Apr 2026 12:00:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=A0=86=E6=89=93=E5=8C=85=E6=9D=BF?= =?UTF-8?q?=E4=BB=B6=E6=A0=87=E8=AE=B0=E7=94=B1plateId=E6=94=B9=E4=B8=BApl?= =?UTF-8?q?ateNo=E7=9F=AD=E7=BC=96=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pack/heapsplit/HeapSplitSaveReqVO.java | 8 +- .../admin/manage/pack/vo/OrderPackReqVO.java | 8 +- .../dal/mysql/orderItem/OrderItemMapper.java | 17 +++- .../heapsplit/HeapSplitServiceImpl.java | 24 ++--- .../service/manage/pack/PackServiceImpl.java | 20 +++-- .../executor/service/plate/PlateService.java | 9 ++ .../service/plate/PlateServiceImpl.java | 9 ++ .../mapper/orderItem/OrderItemMapper.xml | 90 ++++++++++++------- .../mapper/orderParts/OrderPartsMapper.xml | 5 +- 9 files changed, 121 insertions(+), 69 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/heapsplit/HeapSplitSaveReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/heapsplit/HeapSplitSaveReqVO.java index 19b7a08c6..56a607969 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/heapsplit/HeapSplitSaveReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/heapsplit/HeapSplitSaveReqVO.java @@ -19,11 +19,11 @@ import java.util.List; @Schema(description = "管理后台 - 分堆打包 - 保存分堆 Request VO") @Data public class HeapSplitSaveReqVO { - @Schema(description = "板件id列表") - private List plateIds = new ArrayList<>(); + @Schema(description = "新增板号列表") + private List plateNos = new ArrayList<>(); - @Schema(description = "删除的板件id列表") - private List delPlateIds = new ArrayList<>(); + @Schema(description = "删除的板号列表") + private List delPlateNos = new ArrayList<>(); @Schema(description = "配件id列表") private List parts = new ArrayList<>(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/vo/OrderPackReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/vo/OrderPackReqVO.java index a8fdd9326..f7631223b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/vo/OrderPackReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/pack/vo/OrderPackReqVO.java @@ -25,11 +25,11 @@ public class OrderPackReqVO { @Schema(description = "备注") private String remark; - @Schema(description = "新增的板件ID", requiredMode = Schema.RequiredMode.REQUIRED) - private List addPlateIdList = new ArrayList<>(); + @Schema(description = "新增的板号列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List addPlateNoList = new ArrayList<>(); - @Schema(description = "移除的板件ID", requiredMode = Schema.RequiredMode.REQUIRED) - private List deletePlateIdList = new ArrayList<>(); + @Schema(description = "移除的板号列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List deletePlateNoList = new ArrayList<>(); @Schema(description = "打包方式:0柜名、1房名、2订单") @InEnum(OrderPackageMethodEnum.class) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java index 44f5e918b..0590c42f7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java @@ -142,11 +142,11 @@ public interface OrderItemMapper extends BaseMapperX { /** * 更新板件item的包裹id * - * @param plateIdList + * @param plateNos * @param packageNo * @param orderIds */ - void updatePlatesItemPackageId(@Param("plateIdList") List plateIdList, @Param("packageNo") String packageNo, @Param("orderIds") List orderIds); + void updatePlatesItemPackageId(@Param("plateNos") List plateNos, @Param("packageNo") String packageNo, @Param("orderIds") List orderIds); /** * 更新配件item的包裹id @@ -161,11 +161,11 @@ public interface OrderItemMapper extends BaseMapperX { /** * 更新板件item解包package_id = 0 * - * @param deletePlateIdList + * @param plateNos * @param packageNo * @param orderIds */ - void updatePlatesItemUnPackageId(@Param("deletePlateIdList") List deletePlateIdList, @Param("packageNo") String packageNo, @Param("orderIds") List orderIds); + void updatePlatesItemUnPackageId(@Param("plateNos") List plateNos, @Param("packageNo") String packageNo, @Param("orderIds") List orderIds); /** * 更新配件item解包package_id = 0 @@ -176,6 +176,15 @@ public interface OrderItemMapper extends BaseMapperX { */ void updatePartsItemUnPackageId(@Param("deletePartsList") List deletePartsList, @Param("packageNo") String packageNo, @Param("orderIds") List orderIds); + /** + * 更新板件item的分堆状态 + * + * @param plateNos + * @param orderIds + * @param heapSplit true:没分堆改分堆、false:分堆改没分堆 + */ + void updatePlatesItemHeapSplitStatus(@Param("plateNos") List plateNos, @Param("orderIds") List orderIds, @Param("heapSplit") boolean heapSplit); + void insertPartsId(@Param("packId") Long packId, @Param("addPartsIdList") List addPartsIdList,@Param("orderId") Long orderId,@Param("organId") Long organId); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java index 9b0781850..52b8f7a28 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java @@ -54,28 +54,20 @@ public class HeapSplitServiceImpl implements HeapSplitService { Integer packMethod = reqVO.getPackMethod(); List orderIds = reqVO.getOrderIds(); // 更新板件分堆状态 - List plateIds = reqVO.getPlateIds(); - if (CollUtil.isNotEmpty(plateIds)) { - List> platePartitions = CollUtil.split(plateIds, 1000); + List plateNos = reqVO.getPlateNos(); + if (CollUtil.isNotEmpty(plateNos)) { + List> platePartitions = CollUtil.split(plateNos, 1000); for (List batch : platePartitions) { - orderItemMapper.update(new LambdaUpdateWrapper() - .in(OrderItemDO::getOrderId, orderIds) - .in(OrderItemDO::getPlateId, batch) - .eq(OrderItemDO::getHeapSplitStatus, HeapSplitStatusEnum.NO.getStatus()) - .set(OrderItemDO::getHeapSplitStatus, HeapSplitStatusEnum.YES.getStatus())); + orderItemMapper.updatePlatesItemHeapSplitStatus(batch, orderIds, true); } } // 删除板件分堆状态 - List delPlateIds = reqVO.getDelPlateIds(); - if (CollUtil.isNotEmpty(delPlateIds)) { - List> delPlatePartitions = CollUtil.split(delPlateIds, 1000); + List delPlateNos = reqVO.getDelPlateNos(); + if (CollUtil.isNotEmpty(delPlateNos)) { + List> delPlatePartitions = CollUtil.split(delPlateNos, 1000); for (List batch : delPlatePartitions) { - orderItemMapper.update(new LambdaUpdateWrapper() - .in(OrderItemDO::getOrderId, orderIds) - .in(OrderItemDO::getPlateId, batch) - .eq(OrderItemDO::getHeapSplitStatus, HeapSplitStatusEnum.YES.getStatus()) - .set(OrderItemDO::getHeapSplitStatus, HeapSplitStatusEnum.NO.getStatus())); + orderItemMapper.updatePlatesItemHeapSplitStatus(batch, orderIds, false); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java index 825933278..aed0eadb8 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java @@ -3,6 +3,7 @@ package com.cf.imes.module.executor.service.manage.pack; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -268,8 +269,8 @@ public class PackServiceImpl implements PackService { String packNo = packageVO.getPackNo(); List orderIds = packageVO.getOrderIds(); - List addPlateIdList = packageVO.getAddPlateIdList(); - List deletePlateIdList = packageVO.getDeletePlateIdList(); + List addPlateNos = packageVO.getAddPlateNoList(); + List deletePlateNos = packageVO.getDeletePlateNoList(); List addPartsList = packageVO.getAddPartsList(); List delPartsList = packageVO.getDelPartsList(); Integer packMethod = packageVO.getPackMethod(); @@ -290,7 +291,7 @@ public class PackServiceImpl implements PackService { } orderPackageMapper.insertBatch(orderPackageDOS); // 板件明细新增包裹 ID - List> split = CollUtil.split(addPlateIdList, 1000); + List> split = CollUtil.split(addPlateNos, 1000); if (CollUtil.isNotEmpty(split)) { for (List batch : split) { orderItemMapper.updatePlatesItemPackageId(batch, packageNo, orderIds); @@ -313,14 +314,14 @@ public class PackServiceImpl implements PackService { return typeConversion(orderPackageDOS.get(0), orderIds); } - if (CollUtil.isEmpty(addPlateIdList) && CollUtil.isEmpty(addPartsList) - && CollUtil.isEmpty(deletePlateIdList) && CollUtil.isEmpty(delPartsList)) { + if (CollUtil.isEmpty(addPlateNos) && CollUtil.isEmpty(addPartsList) + && CollUtil.isEmpty(deletePlateNos) && CollUtil.isEmpty(delPartsList)) { throw new ServiceException(PART_PACK_DATA_ERROR); } String existPackageNo = existPackageDO.getPackageNo(); // 板件明细新增包裹 ID - List> split = CollUtil.split(addPlateIdList, 1000); + List> split = CollUtil.split(addPlateNos, 1000); if (CollUtil.isNotEmpty(split)) { for (List batch : split) { orderItemMapper.updatePlatesItemPackageId(batch, existPackageNo, orderIds); @@ -328,7 +329,7 @@ public class PackServiceImpl implements PackService { } // 板件明细移除包裹 ID - List> split3 = CollUtil.split(deletePlateIdList, 1000); + List> split3 = CollUtil.split(deletePlateNos, 1000); if (CollUtil.isNotEmpty(split3)) { for (List batch : split3) { orderItemMapper.updatePlatesItemUnPackageId(batch, existPackageNo, orderIds); @@ -999,6 +1000,7 @@ public class PackServiceImpl implements PackService { @Override public List getComponentCorrelation(PackScanComponentCorrelationReqVO reqVO) { + // 进来是板用的是板编号,配件用的是配件id Long id = reqVO.getId(); Integer itemType = reqVO.getItemType(); Integer type = reqVO.getType(); @@ -1009,10 +1011,10 @@ public class PackServiceImpl implements PackService { OrderItemDO itemDO; if (com.cf.imes.module.executor.enums.OrderItemTypeEnum.PLATE_ITEM.getStatus().equals(itemType)) { // 板件 - PlateDO plate = plateService.getPlate(id); + PlateDO plate = plateService.getPlateByNo(id, ArrayUtil.toArray(orderIds, Long.class)); AssertUtils.notEmpty(plate, PLATE_NOT_EXISTS); // 查询关联部件id - itemDO = orderItemService.getPlateItemCompId(id); + itemDO = orderItemService.getPlateItemCompId(plate.getId()); } else { // 配件 OrderPartsDO part = orderPartsService.getPart(id); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java index 2d58764fc..63ff252c7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java @@ -28,6 +28,15 @@ public interface PlateService { */ PlateDO getPlate(Long plateId); + /** + * 根据短编号查询板件 + * + * @param plateNo + * @param orderIds + * @return + */ + PlateDO getPlateByNo(Long plateNo, Long... orderIds); + /** * 创建订单板件 * diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java index 4dfb7a184..9d9aa2008 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java @@ -20,6 +20,7 @@ import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.Assert.AssertUtils; import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; import com.cf.imes.framework.mybatis.core.query.QueryWrapperX; import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO; @@ -142,6 +143,14 @@ public class PlateServiceImpl implements PlateService { return plateMapper.selectById(plateId); } + @Override + public PlateDO getPlateByNo(Long plateNo, Long... orderIds) { + return plateMapper.selectOne(new LambdaQueryWrapperX() + .eq(PlateDO::getPlateNo, plateNo) + .inIfPresent(PlateDO::getOrderId, orderIds) + ); + } + @Override public Long createPlate(PlateSaveReqVO createReqVO) { // 插入 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index 59dae31d0..526532a82 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml @@ -389,20 +389,21 @@ - - update order_item - set package_id = #{packageNo} - where order_id IN + + UPDATE order_item oi + JOIN order_plate op ON oi.order_id = op.order_id AND oi.plate_id = op.id + SET package_id = #{packageNo} + where oi.order_id IN #{orderId} - and plate_id in - - #{id} + AND op.plate_no IN + + #{plateNo} - + update order_item oi set package_id = #{packageNo} where order_id IN @@ -416,23 +417,22 @@ - - - - update order_item oi - set package_id = 0 - where order_id IN + + UPDATE order_item oi + JOIN order_plate op ON oi.order_id = op.order_id AND oi.plate_id = op.id + SET package_id = 0 + where oi.order_id IN #{orderId} - and package_id = #{packageNo} - and plate_id in - - #{id} + AND op.plate_no IN + + #{plateNo} + AND oi.package_id = #{packageNo} - + update order_item oi set package_id = 0 where order_id IN @@ -447,6 +447,40 @@ + + UPDATE order_item oi + JOIN order_plate op ON oi.order_id = op.order_id AND oi.plate_id = op.id + + + + oi.heap_split_status = ${@com.cf.imes.module.executor.enums.heapsplit.HeapSplitStatusEnum@YES.status} + + + + + oi.heap_split_status = ${@com.cf.imes.module.executor.enums.heapsplit.HeapSplitStatusEnum@NO.status} + + + + where oi.order_id IN + + #{orderId} + + AND op.plate_no IN + + #{plateNo} + + AND + + + oi.heap_split_status = ${@com.cf.imes.module.executor.enums.heapsplit.HeapSplitStatusEnum@NO.status} + + + oi.heap_split_status = ${@com.cf.imes.module.executor.enums.heapsplit.HeapSplitStatusEnum@YES.status} + + + + @@ -662,9 +696,13 @@