终检过程检 排序

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)
.disableSubLogicDel();
if (reqVO.getProcedureStatusList().size()==1 && reqVO.getProcedureStatusList().get(0)==2){
//完工降序
query.orderByDesc(TaskDispatchDO::getCode);
}else {
//未完工升序
query.orderByAsc(TaskDispatchDO::getCode);
}
if (CollUtil.isNotEmpty(postIds)) {

View File

@ -345,7 +345,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList();
List<TaskDispatchDetailDO> afterList = new ArrayList<>();
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)->{
list2.sort(Comparator.comparing(TaskDispatchDetailDO::getSort, Comparator.nullsLast(Integer::compareTo)));
afterList.addAll(list2);
@ -470,30 +470,47 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
case FINISH:
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode());
// 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());
if(CollUtil.isNotEmpty(taskDispatchDOS)){
List<Long> ids = taskDispatchDOS.stream()
idsAssemble = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("ASSEMBLE"))
.map(TaskDispatchDO::getId)
.collect(Collectors.toList());
List<TaskDispatchDetailDO> taskDispatchDetailList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper<TaskDispatchDetailDO>()
.in(TaskDispatchDetailDO::getDispatchId, ids));
boolean isOver = true;
for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailList) {
idsProduction = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("PRODUCTION"))
.map(TaskDispatchDO::getId)
.collect(Collectors.toList());
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.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){
isOver = false;
isAssembleOver = false;
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);
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);