gaoluyang
10 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/pendinginspect/MesQcPendingInspectServiceImpl.java
@@ -5,6 +5,11 @@
import cn.iocoder.yudao.module.mes.controller.admin.qc.pendinginspect.vo.MesQcPendingInspectPageReqVO;
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;
@@ -19,6 +24,12 @@
    @Resource
    private MesQcPendingInspectMapper pendingInspectMapper;
    @Resource
    private MesProWorkOrderService workOrderService;
    @Resource
    private MesWmReturnSalesLineMapper returnSalesLineMapper;
    @Resource
    private MesWmBatchService batchService;
    @Override
    public PageResult<MesQcPendingInspectRespVO> getPendingInspectPage(MesQcPendingInspectPageReqVO pageReqVO) {
@@ -26,6 +37,33 @@
        IPage<MesQcPendingInspectRespVO> page = MyBatisUtils.buildPage(pageReqVO);
        pendingInspectMapper.selectQcPendingPage(page,
                pageReqVO.getSourceDocCode(), pageReqVO.getQcType(), pageReqVO.getItemId());
        var orderIds = page.getRecords().stream().map(MesQcPendingInspectRespVO::getWorkOrderId)
                .filter(java.util.Objects::nonNull).collect(java.util.stream.Collectors.toSet());
        if (!orderIds.isEmpty()) {
            var orders = workOrderService.getWorkOrderMap(orderIds);
            page.getRecords().forEach(row -> {
                var order = row.getWorkOrderId() == null ? null : orders.get(row.getWorkOrderId());
                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());
    }