hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -43,13 +43,9 @@ @ApiOperation("报工") @PostMapping("/submitDamage") public Result submitDamage(@RequestBody Map map) { String startTime=map.get("startTime").toString(); String endTime=map.get("endTime").toString(); int type =Integer.parseInt(map.get("type").toString()); int status =Integer.parseInt(map.get("status").toString()); String workingProcedure =map.get("workingProcedure").toString(); damageService.submitDamage(startTime,endTime,type,status,workingProcedure); public Result submitDamage(@RequestBody List<Damage> damageList) { damageService.submitDamage(damageList); damageService.updateBatchById(damageList); return Result.build(200,"报工成功",1); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -19,7 +19,7 @@ List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure); void submitDamage(String startTime, String endTime, int type, int status, String workingProcedure); void submitDamage(List<Damage> damageList); void insertDamage(Damage damage); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -21,6 +21,7 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** @@ -55,6 +56,11 @@ 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,27 +68,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, @@ -125,15 +111,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处理可能为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() ) ) @@ -160,11 +154,7 @@ 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; hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * <p> @@ -28,7 +29,9 @@ private WorkAssignmentService workAssignmentService; @ApiOperation("值班数据查询") @PostMapping("/selectWorkAssignment") public Result selectWorkAssignment(int line,String workingProcedure) { public Result selectWorkAssignment(@RequestBody Map map) { String line=map.get("line").toString(); String workingProcedure=map.get("workingProcedure").toString(); return Result.build(200,"查询成功",workAssignmentService.selectWorkAssignment(line,workingProcedure)); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/WorkAssignmentService.java
@@ -3,6 +3,8 @@ import com.mes.work_assignment.entity.WorkAssignment; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * 服务类 @@ -13,5 +15,5 @@ */ public interface WorkAssignmentService extends IService<WorkAssignment> { WorkAssignment selectWorkAssignment(int line, String workingProcedure); List<WorkAssignment> selectWorkAssignment(String line, String workingProcedure); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/impl/WorkAssignmentServiceImpl.java
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * <p> * 服务实现类 @@ -25,11 +27,11 @@ * @return */ @Override public WorkAssignment selectWorkAssignment(int line, String workingProcedure){ public List<WorkAssignment> selectWorkAssignment(String line, String workingProcedure){ LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper=new LambdaQueryWrapper<>(); workAssignmentSelectWrapper .eq(WorkAssignment::getLine,line) .eq(WorkAssignment::getWorkProcesses,workingProcedure); return baseMapper.selectOne(workAssignmentSelectWrapper); return baseMapper.selectList(workAssignmentSelectWrapper); } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -109,4 +109,25 @@ } } @Scheduled(fixedDelay = 1000) public void temperingIsRun(){ JSONObject jsonObject = new JSONObject(); //进片任务数据 List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectFeedTask(); jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask); //出片任务数据 List<BigStorageCageDetails> bigStorageCageDetailsOutTask=bigStorageCageDetailsService.selectOutTask(); jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); } else { log.info("Home is closed"); } } } } }