| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.arrivalnotice.vo.MesWmArrivalNoticeRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.arrivalnotice.vo.MesWmArrivalNoticeSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeLineDO; |
| | | import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeLineService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi; |
| | |
| | | |
| | | @Resource |
| | | private MesWmArrivalNoticeService arrivalNoticeService; |
| | | @Resource |
| | | private MesWmArrivalNoticeLineService arrivalNoticeLineService; |
| | | @Resource |
| | | private SrmSupplierApi srmSupplierApi; |
| | | @Resource |
| | |
| | | Map<Long, ErpPurchaseOrderRespDTO> purchaseOrderMap = purchaseOrderApi.getPurchaseOrderList(purchaseOrderIds) |
| | | .getCheckedData().stream() |
| | | .collect(java.util.stream.Collectors.toMap(ErpPurchaseOrderRespDTO::getId, v -> v, (a, b) -> a)); |
| | | // 3. 构建结果 |
| | | // 3. 获得质检进度:需检行 / 已生成检验单行 / 已完成检验行 |
| | | Map<Long, List<MesWmArrivalNoticeLineDO>> lineMap = arrivalNoticeLineService |
| | | .getArrivalNoticeLineListByNoticeIds(convertSet(list, MesWmArrivalNoticeDO::getId)) |
| | | .stream().collect(java.util.stream.Collectors.groupingBy(MesWmArrivalNoticeLineDO::getNoticeId)); |
| | | // 4. 构建结果 |
| | | return BeanUtils.toBean(list, MesWmArrivalNoticeRespVO.class, vo -> { |
| | | MapUtils.findAndThen(supplierMap, vo.getVendorId(), supplier -> |
| | | vo.setVendorName(supplier.getName())); |
| | |
| | | vo.setContractNo(purchaseOrder.getContractNo()); |
| | | } |
| | | }); |
| | | List<MesWmArrivalNoticeLineDO> lines = lineMap.getOrDefault(vo.getId(), Collections.emptyList()); |
| | | List<MesWmArrivalNoticeLineDO> needCheckLines = lines.stream() |
| | | .filter(line -> Boolean.TRUE.equals(line.getIqcCheckFlag())).toList(); |
| | | vo.setIqcNeedCount(needCheckLines.size()); |
| | | vo.setIqcCreatedCount((int) needCheckLines.stream() |
| | | .filter(line -> line.getIqcId() != null).count()); |
| | | vo.setIqcInspectedCount((int) needCheckLines.stream() |
| | | .filter(line -> line.getIqcCheckResult() != null).count()); |
| | | }); |
| | | } |
| | | |