diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java index aac14cf4..1fee41c4 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java @@ -25,11 +25,7 @@ import com.klp.service.IWmsMaterialCoilService; import com.klp.service.IWmsWarehouseService; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Collection; -import java.util.Objects; -import java.util.ArrayList; +import java.util.*; import java.util.stream.Collectors; @@ -70,7 +66,27 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); List records = result.getRecords(); - if (records != null && !records.isEmpty()) { + String collect = records.stream() + .map(WmsTransferOrderItemVo::getCoilId) + .filter(Objects::nonNull) + .distinct() + .map(String::valueOf) + .collect(Collectors.joining(","));// 收集结果 + if (!collect.isEmpty()) { + WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo(); + coilBo.setCoilIds(collect); + List coilList = coilService.queryList(coilBo); + Map coilMap = coilList.stream() + .collect(Collectors.toMap(WmsMaterialCoilVo::getCoilId, v -> v, (oldVal, newVal) -> oldVal)); + for (WmsTransferOrderItemVo vo : records) { + WmsMaterialCoilVo coilVo = coilMap.get(vo.getCoilId()); + if (coilVo != null) { + vo.setCoil(coilVo); + } + } + } + + if (!records.isEmpty()) { for (WmsTransferOrderItemVo vo : records) { fillDetailInfo(vo); } @@ -315,6 +331,20 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer throw new IllegalArgumentException("transferId和coilIds不能为空"); } + // 检查同一调拨单下是否已存在相同的coilId + LambdaQueryWrapper existWrapper = new LambdaQueryWrapper<>(); + existWrapper.eq(WmsTransferOrderItem::getTransferId, transferId) + .in(WmsTransferOrderItem::getCoilId, coilIds); + List existItems = baseMapper.selectList(existWrapper); + if (!existItems.isEmpty()) { + List existCoilIds = existItems.stream() + .map(WmsTransferOrderItem::getCoilId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + List wmsMaterialCoils = coilMapper.selectBatchIds(existCoilIds); + throw new IllegalArgumentException("当前钢卷号" + wmsMaterialCoils.stream().map(WmsMaterialCoil::getCurrentCoilNo).collect(Collectors.joining(",")) + " 已在该调拨单中存在"); + } + List coils = coilMapper.selectBatchIds(coilIds); if (coils.isEmpty()) { throw new IllegalArgumentException("钢卷不存在");