feat: 产线负载接口

This commit is contained in:
JR
2025-07-30 16:42:34 +08:00
parent d699efca54
commit b74c977c60
5 changed files with 97 additions and 1 deletions

View File

@@ -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<WmsProductionLineVo> queryPageList(WmsProductionLineBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProductionLine> lqw = buildQueryWrapper(bo);
Page<WmsProductionLineVo> 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<WmsProductionLineVo> queryList(WmsProductionLineBo bo) {
LambdaQueryWrapper<WmsProductionLine> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<WmsProductionLineVo> list = baseMapper.selectVoList(lqw);
// 填充负载信息
fillLoadInfo(list);
return list;
}
private LambdaQueryWrapper<WmsProductionLine> buildQueryWrapper(WmsProductionLineBo bo) {
@@ -110,4 +118,32 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 填充产线负载信息
*/
private void fillLoadInfo(List<WmsProductionLineVo> productionLineList) {
if (productionLineList == null || productionLineList.isEmpty()) {
return;
}
// 获取所有产线ID
List<Long> lineIds = productionLineList.stream()
.map(WmsProductionLineVo::getLineId)
.collect(java.util.stream.Collectors.toList());
// 批量查询负载信息
List<LineLoadInfo> loadInfoList = baseMapper.selectLineLoadInfo(lineIds);
Map<Long, LineLoadInfo> 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);
}
}
}
}