feat: 产线负载接口
This commit is contained in:
28
klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java
Normal file
28
klp-wms/src/main/java/com/klp/domain/vo/LineLoadInfo.java
Normal file
@@ -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;
|
||||||
|
}
|
||||||
@@ -64,5 +64,13 @@ public class WmsProductionLineVo {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的排产计划明细数量
|
||||||
|
*/
|
||||||
|
private Integer planDetailCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排产天数总和
|
||||||
|
*/
|
||||||
|
private Integer totalPlanDays;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,11 @@ package com.klp.mapper;
|
|||||||
|
|
||||||
import com.klp.domain.WmsProductionLine;
|
import com.klp.domain.WmsProductionLine;
|
||||||
import com.klp.domain.vo.WmsProductionLineVo;
|
import com.klp.domain.vo.WmsProductionLineVo;
|
||||||
|
import com.klp.domain.vo.LineLoadInfo;
|
||||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产线Mapper接口
|
* 产线Mapper接口
|
||||||
@@ -12,4 +16,8 @@ import com.klp.common.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface WmsProductionLineMapper extends BaseMapperPlus<WmsProductionLineMapper, WmsProductionLine, WmsProductionLineVo> {
|
public interface WmsProductionLineMapper extends BaseMapperPlus<WmsProductionLineMapper, WmsProductionLine, WmsProductionLineVo> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量查询产线负载信息
|
||||||
|
*/
|
||||||
|
List<LineLoadInfo> selectLineLoadInfo(@Param("lineIds") List<Long> lineIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.klp.domain.bo.WmsProductionLineBo;
|
import com.klp.domain.bo.WmsProductionLineBo;
|
||||||
import com.klp.domain.vo.WmsProductionLineVo;
|
import com.klp.domain.vo.WmsProductionLineVo;
|
||||||
|
import com.klp.domain.vo.LineLoadInfo;
|
||||||
import com.klp.domain.WmsProductionLine;
|
import com.klp.domain.WmsProductionLine;
|
||||||
import com.klp.mapper.WmsProductionLineMapper;
|
import com.klp.mapper.WmsProductionLineMapper;
|
||||||
import com.klp.service.IWmsProductionLineService;
|
import com.klp.service.IWmsProductionLineService;
|
||||||
@@ -46,6 +47,10 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService {
|
|||||||
public TableDataInfo<WmsProductionLineVo> queryPageList(WmsProductionLineBo bo, PageQuery pageQuery) {
|
public TableDataInfo<WmsProductionLineVo> queryPageList(WmsProductionLineBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<WmsProductionLine> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<WmsProductionLine> lqw = buildQueryWrapper(bo);
|
||||||
Page<WmsProductionLineVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<WmsProductionLineVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
|
||||||
|
// 填充负载信息
|
||||||
|
fillLoadInfo(result.getRecords());
|
||||||
|
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +60,10 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService {
|
|||||||
@Override
|
@Override
|
||||||
public List<WmsProductionLineVo> queryList(WmsProductionLineBo bo) {
|
public List<WmsProductionLineVo> queryList(WmsProductionLineBo bo) {
|
||||||
LambdaQueryWrapper<WmsProductionLine> lqw = buildQueryWrapper(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) {
|
private LambdaQueryWrapper<WmsProductionLine> buildQueryWrapper(WmsProductionLineBo bo) {
|
||||||
@@ -110,4 +118,32 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService {
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,5 +18,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="updateBy" column="update_by"/>
|
<result property="updateBy" column="update_by"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectLineLoadInfo" resultType="com.klp.domain.vo.LineLoadInfo">
|
||||||
|
SELECT
|
||||||
|
line_id AS lineId,
|
||||||
|
COUNT(*) AS planDetailCount,
|
||||||
|
SUM(DATEDIFF(end_date, start_date) + 1) AS totalPlanDays
|
||||||
|
FROM
|
||||||
|
wms_schedule_plan_detail
|
||||||
|
WHERE
|
||||||
|
line_id IN
|
||||||
|
<foreach collection="lineIds" item="lineId" open="(" separator="," close=")">
|
||||||
|
#{lineId}
|
||||||
|
</foreach>
|
||||||
|
AND del_flag = 0
|
||||||
|
GROUP BY
|
||||||
|
line_id
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user