From 0496f6d9fa11ccc0acb8892d4739c7a9661ba081 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期五, 02 八月 2024 14:13:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 107 ++++++++++++++++++++++++----------------------------- 1 files changed, 48 insertions(+), 59 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 9a607ac..36624b9 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 @@ -19,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 @@ -41,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); } @@ -60,27 +66,7 @@ * 鎻愪氦鎶ュ伐 */ @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); + public void submitDamage(List<Damage> damageList) { Map<String, Map<String, Map<String, Map<String, List<Damage>>>>> resultMap = damageList.stream() .collect(Collectors.groupingBy( Damage::getProcessId, @@ -123,15 +109,23 @@ // 鑾峰彇 Damage 鍒楄〃 List<Damage> damageListForTeamsGroupsName = teamsGroupsNameEntry.getValue(); + //鎶ュ伐涓昏〃鏁版嵁 + ReportingWork reportingWork = new ReportingWork(); + reportingWork.setProcessId(processId); + reportingWork.setThisProcess(workingProcedure); + reportingWork.setDeviceName(deviceName); + reportingWork.setTeamsGroupsName(teamsGroupsName); - // 浣跨敤 stream 瀵� damageListForTeamsGroupsName 杩涜鍐嶆鍒嗙粍 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::getOrderNumber, + damage -> Optional.ofNullable(damage.getOrderNumber()).orElse(0), // 浣跨敤orElse璁剧疆榛樿鍊硷紝浠ュ鐞唍ull鍊� Collectors.groupingBy( - Damage::getTechnologyNumber, + damage -> Optional.ofNullable(damage.getTechnologyNumber()).orElse(0), // 鍚屾牱澶勭悊technologyNumber鍙兘涓簄ull鐨勬儏鍐� Collectors.groupingBy( - Damage::getBreakageType, + damage -> Optional.ofNullable(damage.getBreakageType()).orElse("Unknown"), // 澶勭悊breakageType鍙兘涓簄ull鐨勬儏鍐� Collectors.toList() ) ) @@ -158,23 +152,19 @@ 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; + 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; + if (damage.getType() == 1) { + completedQuantity += 1; + } else if (damage.getType() == 2) { + breakageQuantity += 1; } } } @@ -186,28 +176,27 @@ } - - } /** * 娣诲姞鎶ュ伐淇℃伅 */ @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