From 928fa3682fcd0bcb59e3ca3da8770ecbb06cf315 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期五, 02 八月 2024 10:32:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 133 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 124 insertions(+), 9 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 118d12e..9a607ac 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 @@ -1,14 +1,14 @@ package com.mes.damage.service.impl; -import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.damage.entity.Damage; import com.mes.damage.mapper.DamageMapper; import com.mes.damage.service.DamageService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; +import com.mes.pp.entity.ReportingWork; import com.mes.work_assignment.entity.WorkAssignment; import com.mes.work_assignment.mapper.WorkAssignmentMapper; import org.springframework.beans.BeanUtils; @@ -18,6 +18,8 @@ import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -58,21 +60,134 @@ * 鎻愪氦鎶ュ伐 */ @Override - public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedure){ + public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedures){ LambdaUpdateWrapper<Damage> damageUpdateWrapper=new LambdaUpdateWrapper<>(); - damageUpdateWrapper.between(Damage::getDamageTime,startTime,endTime); + LambdaQueryWrapper<Damage> damageLambdaQueryWrapper=new LambdaQueryWrapper<>() +; damageUpdateWrapper.between(Damage::getDamageTime,startTime,endTime); + damageLambdaQueryWrapper.between(Damage::getDamageTime,startTime,endTime); if (type!=0){ damageUpdateWrapper.eq(Damage::getType,type); + damageLambdaQueryWrapper.eq(Damage::getType,type); } if (status!=0){ damageUpdateWrapper.eq(Damage::getStatus,status); + damageLambdaQueryWrapper.eq(Damage::getStatus,status); } - if(!"0".equals(workingProcedure)){ - damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedure); + if(!"0".equals(workingProcedures)){ + damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedures); + damageLambdaQueryWrapper.eq(Damage::getWorkingProcedure,workingProcedures); } - Damage damage=new Damage(); - damage.setStatus(2); - baseMapper.update(damage,damageUpdateWrapper); +// Damage damage=new Damage(); +// damage.setStatus(2); +// baseMapper.update(damage,damageUpdateWrapper); + List<Damage> damageList = baseMapper.selectList(damageLambdaQueryWrapper); + 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锛屾寜 workingProcedure 鍒嗙粍鐨勭粨鏋� + Map<String, Map<String, Map<String, List<Damage>>>> workingProcedureMap = processEntry.getValue(); + + // 閬嶅巻 workingProcedureMap + for (Map.Entry<String, Map<String, Map<String, List<Damage>>>> workingProcedureEntry : workingProcedureMap.entrySet()) { + String workingProcedure = workingProcedureEntry.getKey(); + System.out.println(" WorkingProcedure: " + workingProcedure); + + // 鑾峰彇绗笁灞傜殑 Map锛屾寜 deviceName 鍒嗙粍鐨勭粨鏋� + Map<String, Map<String, List<Damage>>> deviceNameMap = workingProcedureEntry.getValue(); + + // 閬嶅巻 deviceNameMap + for (Map.Entry<String, Map<String, List<Damage>>> deviceNameEntry : deviceNameMap.entrySet()) { + String deviceName = deviceNameEntry.getKey(); + System.out.println(" DeviceName: " + deviceName); + + // 鑾峰彇绗洓灞傜殑 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(); + + // 浣跨敤 stream 瀵� damageListForTeamsGroupsName 杩涜鍐嶆鍒嗙粍 + Map<Integer, Map<Integer, Map<String, List<Damage>>>> groupedByOrderTechBreakage = damageListForTeamsGroupsName.stream() + .collect(Collectors.groupingBy( + Damage::getOrderNumber, + Collectors.groupingBy( + Damage::getTechnologyNumber, + Collectors.groupingBy( + Damage::getBreakageType, + 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); + + ReportingWork reportingWork=new ReportingWork(); + reportingWork.setProcessId(processId); + reportingWork.setThisProcess(workingProcedure); + reportingWork.setDeviceName(deviceName); + reportingWork.setTeamsGroupsName(teamsGroupsName); + // 鑾峰彇 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