| | |
| | | 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.dataobject.md.workstation.MesMdWorkstationDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicatorresult.MesQcIndicatorResultDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicatorresult.MesQcIndicatorResultDetailDO; |
| | |
| | | import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants; |
| | | 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.mes.service.md.workstation.MesMdWorkstationService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.indicator.MesQcIndicatorService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcIndicatorResultService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.ipqc.MesQcIpqcService; |
| | |
| | | |
| | | @Resource |
| | | private MesQcIpqcService ipqcService; |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private MesMdWorkstationService workstationService; |
| | | @Resource |
| | | private MesProProcessService processService; |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | |
| | | if (CollUtil.isEmpty(list)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | // 批量查询工单 |
| | | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| | | convertSet(list, MesQcIpqcDO::getWorkOrderId)); |
| | | // 批量查询工位 |
| | | Map<Long, MesMdWorkstationDO> workstationMap = workstationService.getWorkstationMap( |
| | | convertSet(list, MesQcIpqcDO::getWorkstationId)); |
| | | // 批量查询工序 |
| | | Map<Long, MesProProcessDO> processMap = processService.getProcessMap( |
| | | convertSet(list, MesQcIpqcDO::getProcessId)); |
| | | // 批量查询物料 |
| | | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap( |
| | | convertSet(list, MesQcIpqcDO::getItemId)); |
| | | // 批量查询计量单位( |
| | | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| | | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| | | // 批量查询检测人员 |
| | | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( |
| | | convertSet(list, MesQcIpqcDO::getInspectorUserId)); |
| | | // 批量查询检测/复核/审核人员 |
| | | Set<Long> qcUserIds = new HashSet<>(); |
| | | qcUserIds.addAll(convertSet(list, MesQcIpqcDO::getInspectorUserId)); |
| | | qcUserIds.addAll(convertSet(list, MesQcIpqcDO::getAuditUserId)); |
| | | qcUserIds.addAll(convertSet(list, MesQcIpqcDO::getApproveUserId)); |
| | | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(qcUserIds); |
| | | // 批量查询检验项指标 |
| | | Map<Long, String> indicatorSummaryMap = buildIndicatorSummaryMap(list); |
| | | // 拼装 VO |
| | | return BeanUtils.toBean(list, MesQcIpqcRespVO.class, vo -> { |
| | | findAndThen(workOrderMap, vo.getWorkOrderId(), workOrder -> vo |
| | | .setWorkOrderCode(workOrder.getCode()).setWorkOrderName(workOrder.getName())); |
| | | findAndThen(workstationMap, vo.getWorkstationId(), |
| | | ws -> vo.setWorkstationName(ws.getName())); |
| | | findAndThen(processMap, vo.getProcessId(), |
| | | process -> vo.setProcessName(process.getName())); |
| | | findAndThen(itemMap, vo.getItemId(), item -> { |
| | | vo.setItemCode(item.getCode()).setItemName(item.getName()).setItemSpecification(item.getSpecification()); |
| | | findAndThen(unitMeasureMap, item.getUnitMeasureId(), |
| | |
| | | }); |
| | | findAndThen(userMap, vo.getInspectorUserId(), |
| | | user -> vo.setInspectorNickname(user.getNickname())); |
| | | findAndThen(userMap, vo.getAuditUserId(), |
| | | user -> vo.setAuditNickname(user.getNickname())); |
| | | findAndThen(userMap, vo.getApproveUserId(), |
| | | user -> vo.setApproveNickname(user.getNickname())); |
| | | vo.setIndicatorResultSummary(indicatorSummaryMap.getOrDefault(vo.getId(), "")); |
| | | }); |
| | | } |
| | |
| | | vo.setDocName(ipqc.getName()); |
| | | MesMdItemDO item = itemMap.get(ipqc.getItemId()); |
| | | vo.setItemName(item != null ? item.getName() : ""); |
| | | // IPQC 无批次号字段,暂用来源单据编号(一般为生产工单号)作为批号 |
| | | vo.setBatchNo(ipqc.getSourceDocCode()); |
| | | vo.setBatchNo(ipqc.getBatchCode()); |
| | | vo.setInspectDate(MesQcQualityExportVO.formatDateTime(ipqc.getInspectDate())); |
| | | List<String> indicatorNames = new ArrayList<>(); |
| | | List<String> judgementSegments = new ArrayList<>(); |