|
@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
|
|
@@ -486,7 +487,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
/// 设计到修改的工序作业ID
|
|
|
ApsUtils.checkScheduling(null);
|
|
|
List<String> affectedIdList = new ArrayList<>();
|
|
|
- changeStartTimeVos.forEach(changeStartTimeVo -> {
|
|
|
+ List<UpdateConflictVo> updateConflictVos= new ArrayList<>();
|
|
|
+ Set <String> blankIdSet = new HashSet<>();
|
|
|
+ UpdateConflictVo vo;
|
|
|
+ for (ChangeStartTimeVo changeStartTimeVo : changeStartTimeVos) {
|
|
|
+ vo = new UpdateConflictVo();
|
|
|
String id = changeStartTimeVo.getId();
|
|
|
affectedIdList.add(id);
|
|
|
ApsProcessOperationProcessEquDo processEquDo = this.getById(id);
|
|
@@ -499,21 +504,35 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
log.error("该作业已发布,不能调整开工时间");
|
|
|
throw new RuntimeException("该作业已发布,不能调整开工时间");
|
|
|
}
|
|
|
+ blankIdSet.add(operationDo.getBlankid());
|
|
|
// 当前工序的加工方式
|
|
|
- String processway = operationDo.getProcessway();
|
|
|
- Date oldPlanStartdate = processEquDo.getPlanstartdate();
|
|
|
- Date oldPlanEnddate = processEquDo.getPlanenddate();
|
|
|
-
|
|
|
processEquDo.setPlanstartdate(changeStartTimeVo.getPlanStartTime());
|
|
|
processEquDo.setPlanenddate(changeStartTimeVo.getPlanEndTime());
|
|
|
- affectedIdList.addAll(checkProcessingTimeConflict(processEquDo, oldPlanStartdate, oldPlanEnddate, processway));
|
|
|
-
|
|
|
+ vo.setApsProcessOperationProcessEquDo(processEquDo);
|
|
|
+ vo.setOldEquId(changeStartTimeVo.getEquId());
|
|
|
+ vo.setOldPlanEnddate(processEquDo.getPlanstartdate());
|
|
|
+ vo.setCurrentProcessWay( operationDo.getProcessway());
|
|
|
+ vo.setOldPlanStartdate(processEquDo.getPlanenddate());
|
|
|
+ updateConflictVos.add(vo);
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getId,id)
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getPlanstartdate,changeStartTimeVo.getPlanStartTime())
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getPlanenddate,changeStartTimeVo.getPlanEndTime())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ updateConflictVos.forEach(data->{
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = data.getApsProcessOperationProcessEquDo();
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo,
|
|
|
+ data.getOldPlanStartdate(), data.getOldPlanEnddate(), data.getCurrentProcessWay()));
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(processEquDo, changeStartTimeVo.getEquId(), changeStartTimeVo.getPlanStartTime()
|
|
|
- , changeStartTimeVo.getPlanEndTime());
|
|
|
- this.updateById(processEquDo);
|
|
|
+ inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
|
|
|
+ apsProcessOperationProcessEquDo.getProcessdeviceid(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+ });
|
|
|
+ blankIdSet.forEach(blankId->{
|
|
|
// 更新坯料交货期
|
|
|
- apsBlankOrderService. updateBlankDeliveryDate(null,operationDo.getBlankid());
|
|
|
+ apsBlankOrderService.updateBlankDeliveryDate(null, blankId);
|
|
|
});
|
|
|
// 返回受影响的数据
|
|
|
return R.ok(this.ganttService.getListById(affectedIdList));
|
|
@@ -810,9 +829,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
if (StringUtils.isBlank(oldConflictDesc)) {
|
|
|
return oldConflictDesc;
|
|
|
}
|
|
|
- List<String> conflictdeList = new ArrayList<>(Arrays.asList(oldConflictDesc.split(";")));
|
|
|
+ List<String> conflictdeList = new ArrayList<>(Arrays.asList(oldConflictDesc.split(",")));
|
|
|
conflictdeList.remove(removeConflictDesc);
|
|
|
- return CollUtil.join(conflictdeList, ";");
|
|
|
+ return conflictdeList.stream().distinct().collect(Collectors.joining( ","));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -836,8 +855,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
} else {
|
|
|
newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
}
|
|
|
- processEquDo.setConflictdes(newConflictdes);
|
|
|
- processEquDo.setHasconflict(StringUtils.isBlank(newConflictdes) && StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y);
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getId,processEquDo.getId())
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getConflictdes,newConflictdes)
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getHasconflict,StringUtils.isBlank(newConflictdes) &&
|
|
|
+ StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y)
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -883,7 +906,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
|
|
|
StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
|
|
|
LOCKMARK_N : LOCKMARK_Y);
|
|
|
- this.updateById(apsProcessOperationProcessEquDo);
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getId,apsProcessOperationProcessEquDo.getId())
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getConflictdes,newConflictsDesc)
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getHasconflict,apsProcessOperationProcessEquDo.getHasconflict())
|
|
|
+ );
|
|
|
}
|
|
|
return affectedIdList;
|
|
|
}
|