From 00c4dfc5ac687c93e0b7abafc33abb693b38edd6 Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期一, 05 八月 2024 09:14:33 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 182 +++++++++----------------------------------- 1 files changed, 39 insertions(+), 143 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 1e52a35..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 @@ -1,15 +1,13 @@ 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.BasicDataProduce; import com.mes.pp.entity.ReportingWork; import com.mes.work_assignment.entity.WorkAssignment; import com.mes.work_assignment.mapper.WorkAssignmentMapper; @@ -21,11 +19,12 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** * <p> - * 鏈嶅姟瀹炵幇绫� + * 鏈嶅姟瀹炵幇绫� * </p> * * @author wu @@ -43,17 +42,22 @@ * 鏌ヨ鎶ュ伐淇℃伅 */ @Override - public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure){ - LambdaQueryWrapper<Damage> damageSelectWrapper =new LambdaQueryWrapper<>(); - damageSelectWrapper.between(Damage::getDamageTime,startTime,endTime); - if (type!=0){ - damageSelectWrapper.eq(Damage::getType,type); + public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) { + LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>(); + damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime); + if (type != 0) { + damageSelectWrapper.eq(Damage::getType, type); } - if (status!=0){ - damageSelectWrapper.eq(Damage::getStatus,status); + if (status != 0) { + damageSelectWrapper.eq(Damage::getStatus, status); } - if(!"0".equals(workingProcedure)){ - damageSelectWrapper.eq(Damage::getWorkingProcedure,workingProcedure); + if (!"0".equals(workingProcedure)) { + damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure); + } + List<Damage> damageList = baseMapper.selectList(damageSelectWrapper); + + for (Damage damage : damageList) { + damage.setStatus(2); } return baseMapper.selectList(damageSelectWrapper); } @@ -62,132 +66,23 @@ * 鎻愪氦鎶ュ伐 */ @Override - public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedures){ - LambdaUpdateWrapper<Damage> damageUpdateWrapper=new LambdaUpdateWrapper<>(); - 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(workingProcedures)){ - damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedures); - damageLambdaQueryWrapper.eq(Damage::getWorkingProcedure,workingProcedures); - } -// 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); + public void submitDamage(List<Damage> damageList) { + 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(); - - // 浣跨敤 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; - } - } - } - } - } - } - } } } - - } @@ -196,20 +91,21 @@ * 娣诲姞鎶ュ伐淇℃伅 */ @Override - public void insertDamage(Damage damage){ - LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper=new LambdaQueryWrapper<>(); - glassInfoSelectWrapper.eq(GlassInfo::getGlassId,damage.getGlassId()); - GlassInfo glassInfo=glassInfoMapper.selectOne(glassInfoSelectWrapper); + public void insertDamage(Damage damage) { + LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>(); + glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId()); + GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper); BeanUtils.copyProperties(glassInfo, damage); - LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper=new LambdaQueryWrapper<>(); + LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>(); workAssignmentSelectWrapper - .eq(WorkAssignment::getLine,damage.getLine()) - .eq(WorkAssignment::getWorkProcesses,damage.getWorkingProcedure()); - WorkAssignment workAssignment=workAssignmentMapper.selectOne(workAssignmentSelectWrapper); - - damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName()); - damage.setDeviceName(workAssignment.getDeviceName()); + .eq(WorkAssignment::getLine, damage.getLine()) + .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure()); + WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper); + if (workAssignment != null) { + damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName()); + damage.setDeviceName(workAssignment.getDeviceName()); + } damage.setProcessId(glassInfo.getFlowCardId()); damage.setOrderNumber(glassInfo.getGlassType()); damage.setTechnologyNumber(glassInfo.getLayer()); -- Gitblit v1.8.0