From 66c6d6d7c8df5e6cf0aa53c7de99cd6e07a9d4e4 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 11 Dec 2025 09:21:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E5=88=A0=E9=99=A4=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E8=AE=A1=E5=88=92=E6=97=B6=E5=A2=9E=E5=8A=A0=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加对关联收货计划明细的检查逻辑 - 当存在actionType为401的操作记录时阻止删除 - 抛出ServiceException提示用户无法删除的原因 - 使用WmsCoilPendingActionMapper查询待操作记录数量 - 校验条件包括warehouseId匹配且delFlag为0 - 循环检查所有待删除的计划ID --- .../impl/WmsDeliveryPlanServiceImpl.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java index a00ae317..a958b75a 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java @@ -8,20 +8,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.exception.ServiceException; import com.klp.common.utils.StringUtils; -import com.klp.domain.WmsMaterialCoil; -import com.klp.domain.WmsDeliveryWaybill; -import com.klp.domain.WmsDeliveryWaybillDetail; +import com.klp.domain.*; import com.klp.domain.vo.*; -import com.klp.mapper.WmsMaterialCoilMapper; -import com.klp.mapper.WmsDeliveryWaybillMapper; -import com.klp.mapper.WmsDeliveryWaybillDetailMapper; +import com.klp.mapper.*; import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsDeliveryPlanBo; -import com.klp.domain.WmsDeliveryPlan; -import com.klp.mapper.WmsDeliveryPlanMapper; import com.klp.service.IWmsDeliveryPlanService; import java.util.*; @@ -47,6 +42,8 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { private final WmsDeliveryWaybillDetailMapper waybillDetailMapper; + private final WmsCoilPendingActionMapper coilPendingActionMapper; + /** * 查询发货计划 */ @@ -141,7 +138,20 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + // 检查是否有关联的收货计划明细(actionType为401的操作记录) + for (Long planId : ids) { + // 查询与该计划关联的待操作记录数量 + long count = coilPendingActionMapper.selectCount( + Wrappers.lambdaQuery() + .eq(WmsCoilPendingAction::getActionType, 401) + .eq(WmsCoilPendingAction::getWarehouseId, planId) + .eq(WmsCoilPendingAction::getDelFlag, 0) + ); + + if (count > 0) { + throw new ServiceException("发货计划下存在收货计划明细,无法删除"); + } + } } return baseMapper.deleteBatchIds(ids) > 0; }