| | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | * 提交报工 |
| | | */ |
| | | @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, |
| | |
| | | |
| | | // 获取 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处理可能为null的元素 |
| | | .filter(Optional::isPresent) // 过滤掉空的Optional |
| | | .map(Optional::get) // 获取非空的Damage对象 |
| | | .collect(Collectors.groupingBy( |
| | | Damage::getOrderNumber, |
| | | damage -> Optional.ofNullable(damage.getOrderNumber()).orElse(0), // 使用orElse设置默认值,以处理null值 |
| | | Collectors.groupingBy( |
| | | Damage::getTechnologyNumber, |
| | | damage -> Optional.ofNullable(damage.getTechnologyNumber()).orElse(0), // 同样处理technologyNumber可能为null的情况 |
| | | Collectors.groupingBy( |
| | | Damage::getBreakageType, |
| | | damage -> Optional.ofNullable(damage.getBreakageType()).orElse("Unknown"), // 处理breakageType可能为null的情况 |
| | | Collectors.toList() |
| | | ) |
| | | ) |
| | |
| | | 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; |