Merge remote-tracking branch 'gitee/0.8.X' into 0.8.X

This commit is contained in:
2026-01-10 11:59:11 +08:00

View File

@@ -137,19 +137,40 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService {
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
// 检查是否有关联的收货计划明细actionType为401的操作记录 // 检查是否有关联的收货计划明细actionType为401的操作记录
for (Long planId : ids) { for (Long planId : ids) {
// 查询与该计划关联的待操作记录数量 // 查询与该计划关联的待操作记录
long count = coilPendingActionMapper.selectCount( List<WmsCoilPendingAction> pendingActions = coilPendingActionMapper.selectList(
Wrappers.<WmsCoilPendingAction>lambdaQuery() Wrappers.<WmsCoilPendingAction>lambdaQuery()
.eq(WmsCoilPendingAction::getActionType, 401) .eq(WmsCoilPendingAction::getActionType, 401)
.eq(WmsCoilPendingAction::getWarehouseId, planId) .eq(WmsCoilPendingAction::getWarehouseId, planId)
.eq(WmsCoilPendingAction::getDelFlag, 0) .eq(WmsCoilPendingAction::getDelFlag, 0)
); );
if (count > 0) { // 如果有待操作记录,检查这些记录关联的钢卷是否至少有一个还存在
throw new ServiceException("计划下存在明细,无法删除"); if (!pendingActions.isEmpty()) {
boolean hasValidCoil = false;
for (WmsCoilPendingAction pendingAction : pendingActions) {
// 检查关联的钢卷是否还存在(未被删除)
WmsMaterialCoil coil = coilMapper.selectOne(
Wrappers.<WmsMaterialCoil>lambdaQuery()
.eq(WmsMaterialCoil::getCoilId, pendingAction.getCoilId())
.eq(WmsMaterialCoil::getDelFlag, 0)
);
// 如果存在任意一个未被删除的钢卷,标记为不允许删除
if (coil != null) {
hasValidCoil = true;
break; // 只要有一个存在就无需继续检查
}
}
// 只要有一个关联的钢卷还存在,就不允许删除计划
if (hasValidCoil) {
throw new ServiceException("计划下存在有效明细,无法删除");
}
} }
} }
} }