| | |
| | | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| | | Map<Long, CrmCustomerRespDTO> customerMap = customerApi.getCustomerMap( |
| | | convertSet(list, MesProTaskDO::getClientId)); |
| | | // 工序的 checkFlag:批量查询后构建 routeId -> processId -> checkFlag 的双层 Map |
| | | // 工序的 checkFlag + backflushFlag:批量查询后构建 routeId -> processId -> flag 的双层 Map |
| | | Set<Long> routeIds = convertSet(list, MesProTaskDO::getRouteId); |
| | | Map<Long, Map<Long, Boolean>> routeProcessCheckFlagMap = new HashMap<>(); |
| | | Map<Long, Map<Long, Boolean>> routeProcessBackflushFlagMap = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty(routeIds)) { |
| | | List<MesProRouteProcessDO> allRouteProcesses = routeProcessService.getRouteProcessListByRouteIds(routeIds); |
| | | for (MesProRouteProcessDO rp : allRouteProcesses) { |
| | | routeProcessCheckFlagMap |
| | | .computeIfAbsent(rp.getRouteId(), k -> new HashMap<>()) |
| | | .put(rp.getProcessId(), Boolean.TRUE.equals(rp.getCheckFlag())); |
| | | routeProcessBackflushFlagMap |
| | | .computeIfAbsent(rp.getRouteId(), k -> new HashMap<>()) |
| | | .put(rp.getProcessId(), Boolean.TRUE.equals(rp.getBackflushFlag())); |
| | | } |
| | | } |
| | | // 报工在途量:按任务聚合 feedbackQuantity(草稿/审批中/待检验 = 在途;已完成 = 已审批) |
| | |
| | | vo.setClientName(customer.getName())); |
| | | findAndThen(routeProcessCheckFlagMap, task.getRouteId(), processCheckMap -> |
| | | findAndThen(processCheckMap, task.getProcessId(), vo::setCheckFlag)); |
| | | findAndThen(routeProcessBackflushFlagMap, task.getRouteId(), processBackflushMap -> |
| | | findAndThen(processBackflushMap, task.getProcessId(), vo::setBackflushFlag)); |
| | | return vo; |
| | | }); |
| | | } |