package cn.iocoder.yudao.module.mes.service.qc.ledger; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.mes.controller.admin.qc.ledger.vo.MesQcInspectionLedgerPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.qc.ledger.vo.MesQcInspectionLedgerRespVO; import cn.iocoder.yudao.module.mes.controller.admin.qc.vo.MesQcQualityExportVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; import cn.iocoder.yudao.module.mes.dal.mysql.qc.ledger.MesQcInspectionLedgerMapper; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; /** * MES 检测结果台账 Service 实现类 * * @author 超级管理员 */ @Service @Validated public class MesQcInspectionLedgerServiceImpl implements MesQcInspectionLedgerService { @Resource private MesQcInspectionLedgerMapper ledgerMapper; @Resource private MesMdItemService itemService; @Resource private MesMdUnitMeasureService unitMeasureService; @Resource private AdminUserApi adminUserApi; @Override public PageResult getInspectionLedgerPage(MesQcInspectionLedgerPageReqVO pageReqVO) { // 分页查询(四类检验单 UNION ALL) IPage page = MyBatisUtils.buildPage(pageReqVO); ledgerMapper.selectInspectionLedgerPage(page, pageReqVO); List list = page.getRecords(); if (CollUtil.isEmpty(list)) { return PageResult.empty(page.getTotal()); } // 批量查询物料、计量单位、检测人员,并拼装判定依据 Map itemMap = itemService.getItemMap(convertSet(list, MesQcInspectionLedgerRespVO::getItemId)); Map unitMeasureMap = unitMeasureService.getUnitMeasureMap( convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); Map userMap = adminUserApi.getUserMap( convertSet(list, MesQcInspectionLedgerRespVO::getInspectorUserId)); for (MesQcInspectionLedgerRespVO vo : list) { findAndThen(itemMap, vo.getItemId(), item -> { vo.setItemCode(item.getCode()); vo.setItemName(item.getName()); vo.setItemSpecification(item.getSpecification()); findAndThen(unitMeasureMap, item.getUnitMeasureId(), unit -> vo.setUnitName(unit.getName())); }); findAndThen(userMap, vo.getInspectorUserId(), user -> vo.setInspectorName(user.getNickname())); vo.setJudgementBasis(MesQcQualityExportVO.buildRangeText( vo.getStandardValue(), vo.getMinThreshold(), vo.getMaxThreshold())); } return new PageResult<>(list, page.getTotal()); } }