From b74c977c6020e564d0705a4222c36339a5e6103a Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 30 Jul 2025 16:42:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A7=E7=BA=BF=E8=B4=9F=E8=BD=BD?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/klp/domain/vo/LineLoadInfo.java | 28 ++++++++++++++ .../klp/domain/vo/WmsProductionLineVo.java | 8 ++++ .../klp/mapper/WmsProductionLineMapper.java | 8 ++++ .../impl/WmsProductionLineServiceImpl.java | 38 ++++++++++++++++++- .../mapper/klp/WmsProductionLineMapper.xml | 16 ++++++++ 5 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java diff --git a/klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java b/klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java new file mode 100644 index 00000000..c95d682f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java @@ -0,0 +1,28 @@ +package com.klp.domain.vo; + +import lombok.Data; + +/** + * 产线负载信息视图对象 + * + * @author klp + * @date 2025-07-24 + */ +@Data +public class LineLoadInfo { + + /** + * 产线ID + */ + private Long lineId; + + /** + * 关联的排产计划明细数量 + */ + private Integer planDetailCount; + + /** + * 排产天数总和 + */ + private Integer totalPlanDays; +} \ No newline at end of file diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductionLineVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductionLineVo.java index be2ab699..5011bd54 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductionLineVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductionLineVo.java @@ -64,5 +64,13 @@ public class WmsProductionLineVo { @ExcelProperty(value = "备注") private String remark; + /** + * 关联的排产计划明细数量 + */ + private Integer planDetailCount; + /** + * 排产天数总和 + */ + private Integer totalPlanDays; } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProductionLineMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProductionLineMapper.java index b0339a2b..52033f39 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsProductionLineMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsProductionLineMapper.java @@ -2,7 +2,11 @@ package com.klp.mapper; import com.klp.domain.WmsProductionLine; import com.klp.domain.vo.WmsProductionLineVo; +import com.klp.domain.vo.LineLoadInfo; import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 产线Mapper接口 @@ -12,4 +16,8 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface WmsProductionLineMapper extends BaseMapperPlus { + /** + * 批量查询产线负载信息 + */ + List selectLineLoadInfo(@Param("lineIds") List lineIds); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java index 974c0c1a..1c3b6697 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java @@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsProductionLineBo; import com.klp.domain.vo.WmsProductionLineVo; +import com.klp.domain.vo.LineLoadInfo; import com.klp.domain.WmsProductionLine; import com.klp.mapper.WmsProductionLineMapper; import com.klp.service.IWmsProductionLineService; @@ -46,6 +47,10 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService { public TableDataInfo queryPageList(WmsProductionLineBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 填充负载信息 + fillLoadInfo(result.getRecords()); + return TableDataInfo.build(result); } @@ -55,7 +60,10 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService { @Override public List queryList(WmsProductionLineBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + // 填充负载信息 + fillLoadInfo(list); + return list; } private LambdaQueryWrapper buildQueryWrapper(WmsProductionLineBo bo) { @@ -110,4 +118,32 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService { } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 填充产线负载信息 + */ + private void fillLoadInfo(List productionLineList) { + if (productionLineList == null || productionLineList.isEmpty()) { + return; + } + // 获取所有产线ID + List lineIds = productionLineList.stream() + .map(WmsProductionLineVo::getLineId) + .collect(java.util.stream.Collectors.toList()); + // 批量查询负载信息 + List loadInfoList = baseMapper.selectLineLoadInfo(lineIds); + Map loadInfoMap = loadInfoList.stream() + .collect(java.util.stream.Collectors.toMap(LineLoadInfo::getLineId, java.util.function.Function.identity())); + // 填充到VO + for (WmsProductionLineVo vo : productionLineList) { + LineLoadInfo loadInfo = loadInfoMap.get(vo.getLineId()); + if (loadInfo != null) { + vo.setPlanDetailCount(loadInfo.getPlanDetailCount()); + vo.setTotalPlanDays(loadInfo.getTotalPlanDays()); + } else { + vo.setPlanDetailCount(0); + vo.setTotalPlanDays(0); + } + } + } } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml index f0f1a235..5a3ccd8c 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml @@ -18,5 +18,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +