diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 0e06aca7..0f99c2f7 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -605,6 +605,19 @@ public class WmsMaterialCoilController extends BaseController { return R.ok(mismatchedCoils); } + /** + * 查询材质异常的钢卷 + * 对比wms_material_coil.packing_status与wms_product.material或wms_raw_material.material + * 返回材质不匹配的钢卷列表,用于数据异常排查 + * + * @param pageQuery 分页参数 + * @return 材质异常的钢卷列表(分页) + */ + @GetMapping("/queryMaterialMismatchCoils") + public TableDataInfo queryMaterialMismatchCoils(PageQuery pageQuery) { + return iWmsMaterialCoilService.queryMaterialMismatchCoils(pageQuery); + } + } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 2d449d7a..2fa6272b 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -3,6 +3,7 @@ package com.klp.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo; import com.klp.domain.vo.WmsMaterialCoilVo; @@ -112,5 +113,10 @@ List selectDeliveryExportListByCoilIds(@Param(" * @return 每个仓库的钢卷数量 */ List> selectWarehouseIdCount(@Param("list") List warehouseIds); + + /** + * 分页查询材质异常的钢卷 + */ + IPage selectMaterialMismatchCoilsPage(IPage page); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index c09dfe4b..a0d68e46 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -275,5 +275,14 @@ public interface IWmsMaterialCoilService { * @return 不匹配的钢卷列表 */ List queryMismatchedItemCoils(); + + /** + * 查询材质异常的钢卷(packing_status与wms_product.material或wms_raw_material.material不匹配) + * 通过itemType确定关联的表,对比packing_status和关联表的material字段 + * + * @param pageQuery 分页参数 + * @return 材质异常的钢卷列表(分页) + */ + TableDataInfo queryMaterialMismatchCoils(PageQuery pageQuery); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 105708fd..fddae326 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -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 queryMaterialMismatchCoils(PageQuery pageQuery) { + IPage page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + IPage result = baseMapper.selectMaterialMismatchCoilsPage(page); + + List 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 voPage = new Page<>(result.getCurrent(), result.getSize(), result.getTotal()); + voPage.setRecords(voList); + return TableDataInfo.build(voPage); + } + } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 17feea6f..37aa503d 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -936,5 +936,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY warehouse_id + + +