gaoluyang
7 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/pendinginspect/MesQcPendingInspectServiceImpl.java
@@ -6,6 +6,10 @@
import cn.iocoder.yudao.module.mes.controller.admin.qc.pendinginspect.vo.MesQcPendingInspectRespVO;
import cn.iocoder.yudao.module.mes.dal.mysql.qc.pendinginspect.MesQcPendingInspectMapper;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnsales.MesWmReturnSalesLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnsales.MesWmReturnSalesLineMapper;
import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -22,6 +26,10 @@
    private MesQcPendingInspectMapper pendingInspectMapper;
    @Resource
    private MesProWorkOrderService workOrderService;
    @Resource
    private MesWmReturnSalesLineMapper returnSalesLineMapper;
    @Resource
    private MesWmBatchService batchService;
    @Override
    public PageResult<MesQcPendingInspectRespVO> getPendingInspectPage(MesQcPendingInspectPageReqVO pageReqVO) {
@@ -38,6 +46,24 @@
                if (order != null) row.setReelNo(order.getReelNo());
            });
        }
        var returnLineIds = page.getRecords().stream()
                .filter(row -> java.util.Objects.equals(row.getSourceDocType(), MesBizTypeConstants.WM_RETURN_SALES))
                .map(MesQcPendingInspectRespVO::getSourceLineId).filter(java.util.Objects::nonNull)
                .collect(java.util.stream.Collectors.toSet());
        if (!returnLineIds.isEmpty()) {
            var lines = returnSalesLineMapper.selectBatchIds(returnLineIds);
            var lineMap = lines.stream().collect(java.util.stream.Collectors.toMap(MesWmReturnSalesLineDO::getId, line -> line));
            var batchIds = lines.stream().map(MesWmReturnSalesLineDO::getBatchId)
                    .filter(java.util.Objects::nonNull).collect(java.util.stream.Collectors.toSet());
            var batches = batchIds.isEmpty() ? java.util.Map.<Long, cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO>of()
                    : batchService.getBatchMap(batchIds);
            page.getRecords().forEach(row -> {
                if (!java.util.Objects.equals(row.getSourceDocType(), MesBizTypeConstants.WM_RETURN_SALES)) return;
                var line = lineMap.get(row.getSourceLineId());
                var batch = line == null || line.getBatchId() == null ? null : batches.get(line.getBatchId());
                if (batch != null) row.setReelNo(batch.getReelNo());
            });
        }
        // 返回结果
        return new PageResult<>(page.getRecords(), page.getTotal());
    }