feat(wms): 新增材质异常钢卷查询功能

- 在IWmsMaterialCoilService中添加queryMaterialMismatchCoils方法定义
- 在WmsMaterialCoilController中新增查询材质异常钢卷的API接口
- 在WmsMaterialCoilMapper中添加selectMaterialMismatchCoilsPage分页查询方法
- 在WmsMaterialCoilMapper.xml中实现材质异常钢卷的SQL查询逻辑
- 在WmsMaterialCoilServiceImpl中实现材质异常钢卷查询的具体业务逻辑
- 通过关联查询优化性能,避免N+1问题并支持分页返回结果
This commit is contained in:
2026-04-20 14:29:33 +08:00
parent be59e4cc79
commit 2dbf4a042e
5 changed files with 68 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.klp.common.core.domain.entity.SysUser;
import com.klp.common.core.page.TableDataInfo;
@@ -5163,5 +5164,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
return voList;
}
/**
* 查询材质异常的钢卷packing_status与wms_product.material或wms_raw_material.material不匹配
* 通过SQL关联查询优化性能避免N+1问题
*/
@Override
public TableDataInfo<WmsMaterialCoilVo> queryMaterialMismatchCoils(PageQuery pageQuery) {
IPage<WmsMaterialCoil> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
IPage<WmsMaterialCoil> result = baseMapper.selectMaterialMismatchCoilsPage(page);
List<WmsMaterialCoilVo> voList = new ArrayList<>();
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
voList = result.getRecords().stream()
.map(coil -> BeanUtil.toBean(coil, WmsMaterialCoilVo.class))
.collect(Collectors.toList());
fillRelatedObjectsBatch(voList);
}
IPage<WmsMaterialCoilVo> voPage = new Page<>(result.getCurrent(), result.getSize(), result.getTotal());
voPage.setRecords(voList);
return TableDataInfo.build(voPage);
}
}