From 3c6f62168f51a655d3f88d6994122f21432ed352 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期六, 03 八月 2024 08:31:33 +0800 Subject: [PATCH] 添加计算目标格子日志 --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 109 ++++-------------------------------------------------- 1 files changed, 9 insertions(+), 100 deletions(-) diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java index 36624b9..aae4a9a 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java @@ -67,111 +67,20 @@ */ @Override public void submitDamage(List<Damage> damageList) { - Map<String, Map<String, Map<String, Map<String, List<Damage>>>>> resultMap = damageList.stream() - .collect(Collectors.groupingBy( - Damage::getProcessId, - Collectors.groupingBy( - Damage::getWorkingProcedure, - Collectors.groupingBy( - Damage::getDeviceName, - Collectors.groupingBy(Damage::getTeamsGroupsName) - ) - ) - )); - // 閬嶅巻 resultMap - for (Map.Entry<String, Map<String, Map<String, Map<String, List<Damage>>>>> processEntry : resultMap.entrySet()) { - String processId = processEntry.getKey(); - System.out.println("ProcessId: " + processId); + Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); - // 鑾峰彇绗簩灞傜殑 Map锛屾寜 workingProcedure 鍒嗙粍鐨勭粨鏋� - Map<String, Map<String, Map<String, List<Damage>>>> workingProcedureMap = processEntry.getValue(); + for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) { + String key = entry.getKey(); + List<Damage> damages = entry.getValue(); - // 閬嶅巻 workingProcedureMap - for (Map.Entry<String, Map<String, Map<String, List<Damage>>>> workingProcedureEntry : workingProcedureMap.entrySet()) { - String workingProcedure = workingProcedureEntry.getKey(); - System.out.println(" WorkingProcedure: " + workingProcedure); + System.out.println("Key: " + key); - // 鑾峰彇绗笁灞傜殑 Map锛屾寜 deviceName 鍒嗙粍鐨勭粨鏋� - Map<String, Map<String, List<Damage>>> deviceNameMap = workingProcedureEntry.getValue(); + Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); - // 閬嶅巻 deviceNameMap - for (Map.Entry<String, Map<String, List<Damage>>> deviceNameEntry : deviceNameMap.entrySet()) { - String deviceName = deviceNameEntry.getKey(); - System.out.println(" DeviceName: " + deviceName); + for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) { - // 鑾峰彇绗洓灞傜殑 Map锛屾寜 teamsGroupsName 鍒嗙粍鐨勭粨鏋� - Map<String, List<Damage>> teamsGroupsNameMap = deviceNameEntry.getValue(); - - // 閬嶅巻 teamsGroupsNameMap - for (Map.Entry<String, List<Damage>> teamsGroupsNameEntry : teamsGroupsNameMap.entrySet()) { - String teamsGroupsName = teamsGroupsNameEntry.getKey(); - System.out.println(" TeamsGroupsName: " + teamsGroupsName); - - // 鑾峰彇 Damage 鍒楄〃 - List<Damage> damageListForTeamsGroupsName = teamsGroupsNameEntry.getValue(); - //鎶ュ伐涓昏〃鏁版嵁 - ReportingWork reportingWork = new ReportingWork(); - reportingWork.setProcessId(processId); - reportingWork.setThisProcess(workingProcedure); - reportingWork.setDeviceName(deviceName); - reportingWork.setTeamsGroupsName(teamsGroupsName); - - Map<Integer, Map<Integer, Map<String, List<Damage>>>> groupedByOrderTechBreakage = damageListForTeamsGroupsName.stream() - .map(damage -> Optional.ofNullable(damage)) // 浣跨敤Optional澶勭悊鍙兘涓簄ull鐨勫厓绱� - .filter(Optional::isPresent) // 杩囨护鎺夌┖鐨凮ptional - .map(Optional::get) // 鑾峰彇闈炵┖鐨凞amage瀵硅薄 - .collect(Collectors.groupingBy( - damage -> Optional.ofNullable(damage.getOrderNumber()).orElse(0), // 浣跨敤orElse璁剧疆榛樿鍊硷紝浠ュ鐞唍ull鍊� - Collectors.groupingBy( - damage -> Optional.ofNullable(damage.getTechnologyNumber()).orElse(0), // 鍚屾牱澶勭悊technologyNumber鍙兘涓簄ull鐨勬儏鍐� - Collectors.groupingBy( - damage -> Optional.ofNullable(damage.getBreakageType()).orElse("Unknown"), // 澶勭悊breakageType鍙兘涓簄ull鐨勬儏鍐� - Collectors.toList() - ) - ) - )); - - // 閬嶅巻 groupedByOrderTechBreakage - for (Map.Entry<Integer, Map<Integer, Map<String, List<Damage>>>> orderEntry : groupedByOrderTechBreakage.entrySet()) { - Integer orderNumber = orderEntry.getKey(); - System.out.println(" OrderNumber: " + orderNumber); - - // 鑾峰彇绗簩灞傜殑 Map锛屾寜 technologyNumber 鍒嗙粍鐨勭粨鏋� - Map<Integer, Map<String, List<Damage>>> technologyNumberMap = orderEntry.getValue(); - - // 閬嶅巻 technologyNumberMap - for (Map.Entry<Integer, Map<String, List<Damage>>> technologyEntry : technologyNumberMap.entrySet()) { - Integer technologyNumber = technologyEntry.getKey(); - System.out.println(" TechnologyNumber: " + technologyNumber); - - // 鑾峰彇绗笁灞傜殑 Map锛屾寜 breakageType 鍒嗙粍鐨勭粨鏋� - Map<String, List<Damage>> breakageTypeMap = technologyEntry.getValue(); - - // 閬嶅巻 breakageTypeMap - for (Map.Entry<String, List<Damage>> breakageTypeEntry : breakageTypeMap.entrySet()) { - String breakageType = breakageTypeEntry.getKey(); - System.out.println(" BreakageType: " + breakageType); - - - // 鑾峰彇 Damage 鍒楄〃 - List<Damage> damageListForBreakageType = breakageTypeEntry.getValue(); - int completedQuantity = 0; - int breakageQuantity = 0; - // 閬嶅巻 Damage 鍒楄〃 - for (Damage damage : damageListForBreakageType) { - // 鎵撳嵃鎴栧鐞嗘瘡涓� Damage 瀵硅薄 - System.out.println(" Damage: " + damage.toString()); - if (damage.getType() == 1) { - completedQuantity += 1; - } else if (damage.getType() == 2) { - breakageQuantity += 1; - } - } - } - } - } - } - } } } -- Gitblit v1.8.0