终检过程检 排序

This commit is contained in:
Ledo 2025-01-15 12:17:34 +08:00
parent 08953ad7cb
commit 7cefab756a
2 changed files with 32 additions and 13 deletions

View File

@ -164,8 +164,10 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
.groupBy(TaskDispatchDetailDO::getId) .groupBy(TaskDispatchDetailDO::getId)
.disableSubLogicDel(); .disableSubLogicDel();
if (reqVO.getProcedureStatusList().size()==1 && reqVO.getProcedureStatusList().get(0)==2){ if (reqVO.getProcedureStatusList().size()==1 && reqVO.getProcedureStatusList().get(0)==2){
//完工降序
query.orderByDesc(TaskDispatchDO::getCode); query.orderByDesc(TaskDispatchDO::getCode);
}else { }else {
//未完工升序
query.orderByAsc(TaskDispatchDO::getCode); query.orderByAsc(TaskDispatchDO::getCode);
} }
if (CollUtil.isNotEmpty(postIds)) { if (CollUtil.isNotEmpty(postIds)) {

View File

@ -345,7 +345,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList(); List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList();
List<TaskDispatchDetailDO> afterList = new ArrayList<>(); List<TaskDispatchDetailDO> afterList = new ArrayList<>();
if (CollUtil.isNotEmpty(list)){ if (CollUtil.isNotEmpty(list)){
Map<Long, List<TaskDispatchDetailDO>> collect = list.stream().collect(Collectors.groupingBy(TaskDispatchDetailDO::getId)); Map<String, List<TaskDispatchDetailDO>> collect = list.stream().collect(Collectors.groupingBy(TaskDispatchDetailDO::getDispatchCode));
collect.forEach((code,list2)->{ collect.forEach((code,list2)->{
list2.sort(Comparator.comparing(TaskDispatchDetailDO::getSort, Comparator.nullsLast(Integer::compareTo))); list2.sort(Comparator.comparing(TaskDispatchDetailDO::getSort, Comparator.nullsLast(Integer::compareTo)));
afterList.addAll(list2); afterList.addAll(list2);
@ -470,30 +470,47 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
case FINISH: case FINISH:
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode());
// TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); // TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId());
List<Long> idsProduction = new ArrayList<>();
List<Long> idsAssemble = new ArrayList<>();
List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.selectList(TaskDispatchDO::getPlanId, taskDispatchDO.getPlanId()); List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.selectList(TaskDispatchDO::getPlanId, taskDispatchDO.getPlanId());
if(CollUtil.isNotEmpty(taskDispatchDOS)){ if(CollUtil.isNotEmpty(taskDispatchDOS)){
List<Long> ids = taskDispatchDOS.stream() idsAssemble = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("ASSEMBLE"))
.map(TaskDispatchDO::getId) .map(TaskDispatchDO::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
List<TaskDispatchDetailDO> taskDispatchDetailList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper<TaskDispatchDetailDO>() idsProduction = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("PRODUCTION"))
.in(TaskDispatchDetailDO::getDispatchId, ids)); .map(TaskDispatchDO::getId)
boolean isOver = true; .collect(Collectors.toList());
for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailList) { List<TaskDispatchDetailDO> taskDispatchDetailAssembleList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper<TaskDispatchDetailDO>()
.in(TaskDispatchDetailDO::getDispatchId, idsAssemble));
List<TaskDispatchDetailDO> taskDispatchDetailProductionList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper<TaskDispatchDetailDO>()
.in(TaskDispatchDetailDO::getDispatchId, idsProduction));
boolean isProductionOver = true;
boolean isAssembleOver = true;
for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailAssembleList) {
if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){ if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){
if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){
isOver = false; isAssembleOver = false;
break; break;
} }
} }
} }
if (isOver){ for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailProductionList) {
if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){
if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){
isProductionOver = false;
break;
}
}
}
if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isProductionOver){
pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId());
}else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isAssembleOver){
zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId());
}
if (isProductionOver&&isAssembleOver){
planDO.setStatus(3); planDO.setStatus(3);
planMapper.updateById(planDO); planMapper.updateById(planDO);
if(taskDispatchDO.getDispatchType().equals("ASSEMBLE")){
zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId());
} else if (taskDispatchDO.getDispatchType().equals("PRODUCTION")) {
pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId());
}
} }
} }
taskDispatchDetailMapper.updateById(taskDispatchDetailDO); taskDispatchDetailMapper.updateById(taskDispatchDetailDO);