|
@@ -8,8 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
-import com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao;
|
|
|
-import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquBackupDao;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
|
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
|
import com.rongwei.bscommon.sys.utils.ApsUtils;
|
|
@@ -33,8 +31,8 @@ import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescription.EQ_TIME_CROSS;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescription.EQUIPMENT_RUN_TIME;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescription.EQ_TIME_CROSS;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.*;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
|
|
@@ -59,6 +57,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
private ApsProductDetailService apsProductDetailService;
|
|
|
@Autowired
|
|
|
private ApsEquipmentCalendarServiceImpl apsEquipmentCalendarService;
|
|
|
+ @Autowired
|
|
|
+ private GanttService ganttService;
|
|
|
|
|
|
/**
|
|
|
* 更新工序的待加工批次号信息
|
|
@@ -67,7 +67,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
* @param batchNumn
|
|
|
*/
|
|
|
public void updateBachmaterialprocessByIds(List<String> ids, String batchNumn) {
|
|
|
- if(StringUtils.isNotBlank(batchNumn)){
|
|
|
+ if (StringUtils.isNotBlank(batchNumn)) {
|
|
|
apsProcessOperationProcessEquDao.updateBachmaterialprocessByIds(ids, batchNumn);
|
|
|
}
|
|
|
}
|
|
@@ -221,12 +221,15 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
log.error("换线作业的工序作业不为空");
|
|
|
return R.error("工序作业不能为空");
|
|
|
}
|
|
|
+
|
|
|
// 工序作业明细ID
|
|
|
List<String> detailIds = changingWiresVos.stream().map(ChangingWiresVo::getId).collect(Collectors.toList());
|
|
|
if (detailIds.isEmpty()) {
|
|
|
log.error("需要换线的工序作业id为空");
|
|
|
return R.error("需要换线的工序作业id为空");
|
|
|
}
|
|
|
+ // 换线作业受影响的工序作业ID
|
|
|
+ List<String> affectedIdList = new ArrayList<>(detailIds);
|
|
|
// 获取工序作业明细
|
|
|
List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = this.baseMapper.selectBatchIds(detailIds);
|
|
|
if (apsProcessOperationProcessEquDos.isEmpty()) {
|
|
@@ -253,7 +256,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 获取该工序作业最早的计划开始时间
|
|
|
Date planstartdate = processEqus.getPlanstartdate();
|
|
|
// 获取开工时间间隔=所选作业明细最早计划开工时间-所选加工开始时间
|
|
|
- long timeInterval = planstartdate.getTime()- changingWiresVo.getProcessingTime().getTime();
|
|
|
+ long timeInterval = planstartdate.getTime() - changingWiresVo.getProcessingTime().getTime();
|
|
|
|
|
|
// 待开工的直接修改
|
|
|
if (JOBSTATUS_TO_BE_START.equals(processEqus.getWorkstatus())) {
|
|
@@ -263,14 +266,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEqus.setProcessdeviceid(changingWiresVo.getEquId());
|
|
|
processEqus.setProcessdevice(changingWiresVo.getEquName());
|
|
|
// 计计划开工时间=计划开工时间-开工时间间隔
|
|
|
- processEqus.setPlanstartdate(new Date(planstartdate.getTime()-timeInterval));
|
|
|
+ processEqus.setPlanstartdate(new Date(planstartdate.getTime() - timeInterval));
|
|
|
// 计划完工时间=计划完工时间-开工时间间隔
|
|
|
- processEqus.setPlanenddate(new Date(processEqus.getPlanenddate().getTime()-timeInterval));
|
|
|
+ processEqus.setPlanenddate(new Date(processEqus.getPlanenddate().getTime() - timeInterval));
|
|
|
checkConflictVos.add(new CheckConflictVo(processEqus.getId(), processEqus.getProcessdeviceid(),
|
|
|
processEqus.getPlanstartdate(), processEqus.getPlanenddate()));
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(processEqus,processEqus.getProcessdeviceid(),processEqus.getPlanstartdate()
|
|
|
- ,processEqus.getPlanenddate());
|
|
|
+ inspectionEquipmentIsAvailable(processEqus, processEqus.getProcessdeviceid(), processEqus.getPlanstartdate()
|
|
|
+ , processEqus.getPlanenddate());
|
|
|
saveList.add(processEqus);
|
|
|
}
|
|
|
//加工中的状态 将未加工的改变为重新生成
|
|
@@ -280,9 +283,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
BeanUtils.copyProperties(processEqus, saveProcessEqu);
|
|
|
|
|
|
// 获取加工时长
|
|
|
- long processingTime = DateUtil.between(processEqus.getPlanenddate(), processEqus.getPlanstartdate(), DateUnit.SECOND,false);
|
|
|
+ long processingTime = DateUtil.between(processEqus.getPlanenddate(), processEqus.getPlanstartdate(), DateUnit.SECOND, false);
|
|
|
/************更新换线后工序作业的信息********************/
|
|
|
saveProcessEqu.setId(SecurityUtil.getUUID());
|
|
|
+ affectedIdList.add(saveProcessEqu.getId());
|
|
|
saveProcessEqu.setProcessworkshopid(changingWiresVo.getWorkshopId());
|
|
|
saveProcessEqu.setProcessworkshop(changingWiresVo.getWorkshopName());
|
|
|
saveProcessEqu.setProcessdeviceid(changingWiresVo.getEquId());
|
|
@@ -299,11 +303,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
saveProcessEqu.setUnfinishroll(saveProcessEqu.getPlanprocessrall());
|
|
|
saveProcessEqu.setWorkstatus(JOBSTATUS_TO_BE_START);
|
|
|
saveProcessEqu.setClosestatus(SaveConstans.CloseStatus.UNFINISHED);
|
|
|
- checkConflictVos.add(new CheckConflictVo(processEqus.getId(),saveProcessEqu.getProcessdeviceid(),
|
|
|
+ checkConflictVos.add(new CheckConflictVo(processEqus.getId(), saveProcessEqu.getProcessdeviceid(),
|
|
|
saveProcessEqu.getPlanstartdate(), saveProcessEqu.getPlanenddate()));
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(saveProcessEqu,saveProcessEqu.getProcessdeviceid(),saveProcessEqu.getPlanstartdate()
|
|
|
- ,saveProcessEqu.getPlanenddate());
|
|
|
+ inspectionEquipmentIsAvailable(saveProcessEqu, saveProcessEqu.getProcessdeviceid(), saveProcessEqu.getPlanstartdate()
|
|
|
+ , saveProcessEqu.getPlanenddate());
|
|
|
saveList.add(saveProcessEqu);
|
|
|
/************更新原数据的数量信息***********************/
|
|
|
// 更新计划完工时间
|
|
@@ -316,15 +320,15 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEqus.setWorkstatus(processEqus.getUnfinishroll() == 0 ? JOBSTATUS_TO_BE_END : JOBSTATUS_TO_BE_STARTING);
|
|
|
processEqus.setClosestatus(processEqus.getUnfinishroll() > 0 ? SaveConstans.CloseStatus.UNFINISHED : SaveConstans.CloseStatus.COMPLETED);
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(processEqus,processEqus.getProcessdeviceid(),processEqus.getPlanstartdate()
|
|
|
- ,processEqus.getPlanenddate());
|
|
|
+ inspectionEquipmentIsAvailable(processEqus, processEqus.getProcessdeviceid(), processEqus.getPlanstartdate()
|
|
|
+ , processEqus.getPlanenddate());
|
|
|
saveList.add(processEqus);
|
|
|
}
|
|
|
});
|
|
|
// 换线拆单后 需要校验 是否存在冲突 如果存在冲突 提示
|
|
|
if (!checkConflictVos.isEmpty()) {
|
|
|
List<String> promptInformation = this.baseMapper.checkConflict(checkConflictVos);
|
|
|
- if(!promptInformation.isEmpty()){
|
|
|
+ if (!promptInformation.isEmpty()) {
|
|
|
log.error("存在冲突的工序作业");
|
|
|
return R.error(promptInformation.get(0));
|
|
|
}
|
|
@@ -335,7 +339,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
ApsUtils.clearBackup(currentUser);
|
|
|
}
|
|
|
this.saveOrUpdateBatch(saveList);
|
|
|
- return R.ok();
|
|
|
+
|
|
|
+ // 重新获取甘特图数据并返回前段
|
|
|
+ return R.ok(ganttService.getListById(affectedIdList));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -385,8 +391,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R changeStartTime(List<ChangeStartTimeVo> changeStartTimeVos) {
|
|
|
+ /// 设计到修改的工序作业ID
|
|
|
+ List<String> affectedIdList = new ArrayList<>();
|
|
|
changeStartTimeVos.forEach(changeStartTimeVo -> {
|
|
|
String id = changeStartTimeVo.getId();
|
|
|
+ affectedIdList.add(id);
|
|
|
ApsProcessOperationProcessEquDo processEquDo = this.getById(id);
|
|
|
ApsProcessOperationDo operationDo = apsProcessOperationService.getById(processEquDo.getProcessid());
|
|
|
if (operationDo == null) {
|
|
@@ -400,13 +409,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 获取更新之前的存在冲突的工序作业
|
|
|
List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getEquId(), changeStartTimeVo.getId(),
|
|
|
processEquDo.getPlanstartdate(), processEquDo.getPlanenddate());
|
|
|
-
|
|
|
+ affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
// 找到更新时间之后存在冲突的工序作业
|
|
|
List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getEquId(), changeStartTimeVo.getId(),
|
|
|
changeStartTimeVo.getPlanStartTime(), changeStartTimeVo.getPlanEndTime());
|
|
|
-
|
|
|
+ affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
- updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId,EQ_TIME_CROSS);
|
|
|
+ updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS);
|
|
|
}
|
|
|
|
|
|
if (!afterTheUpdateConflictId.isEmpty()) {
|
|
@@ -414,8 +423,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 更当前工序作业增加新的冲突
|
|
|
String newConflictsDesc = addNewConflictsDesc(processEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
processEquDo.setConflictdes(newConflictsDesc);
|
|
|
- updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId,EQ_TIME_CROSS);
|
|
|
- }else{
|
|
|
+ updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
|
|
|
+ } else {
|
|
|
String newConflictsDesc = removeConflictsDesc(processEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
processEquDo.setConflictdes(newConflictsDesc);
|
|
|
processEquDo.setHasconflict(StringUtils.isBlank(processEquDo.getConflictdes()) &&
|
|
@@ -423,14 +432,15 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
LOCKMARK_N : LOCKMARK_Y);
|
|
|
}
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(processEquDo,changeStartTimeVo.getEquId(),changeStartTimeVo.getPlanStartTime()
|
|
|
- ,changeStartTimeVo.getPlanEndTime());
|
|
|
+ inspectionEquipmentIsAvailable(processEquDo, changeStartTimeVo.getEquId(), changeStartTimeVo.getPlanStartTime()
|
|
|
+ , changeStartTimeVo.getPlanEndTime());
|
|
|
|
|
|
processEquDo.setPlanstartdate(changeStartTimeVo.getPlanStartTime());
|
|
|
processEquDo.setPlanenddate(changeStartTimeVo.getPlanEndTime());
|
|
|
this.updateById(processEquDo);
|
|
|
});
|
|
|
- return R.ok();
|
|
|
+ // 返回受影响的数据
|
|
|
+ return R.ok(this.ganttService.getListById(affectedIdList));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -443,7 +453,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R updateDetails(JobDetailsVo jobDetailsVo) {
|
|
|
+ List<String> affectedIdList = new ArrayList<>();
|
|
|
String id = jobDetailsVo.getId();
|
|
|
+ affectedIdList.add(id);
|
|
|
if (StringUtils.isBlank(id)) {
|
|
|
log.error("工序作业ID 必传");
|
|
|
return R.error("参数异常");
|
|
@@ -467,7 +479,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
log.error("根据ID:{} 获取工序作业失败", apsProcessOperationProcessEquDo.getProcessid());
|
|
|
}
|
|
|
if (!TO_BE_PUBLISHED.equals(apsProcessOperationDo.getProcessstatus())) {
|
|
|
- log.error("工序作业状态:{}异常",apsProcessOperationDo.getProcessstatus());
|
|
|
+ log.error("工序作业状态:{}异常", apsProcessOperationDo.getProcessstatus());
|
|
|
return R.error("只有待发布的工序作业才可以修改");
|
|
|
}
|
|
|
// 更新开工时间 jobDetailsVo
|
|
@@ -489,17 +501,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
long timeInterval = DateUtil.between(planStartTime, oldPlanstartdate, DateUnit.SECOND, false);
|
|
|
apsProcessOperationProcessEquDo.setPlanstartdate(planStartTime);
|
|
|
// 自动计算计划完工时间=原完工时间+新计划开工时间-原计划开工时间
|
|
|
- apsProcessOperationProcessEquDo.setPlanenddate(new Date(apsProcessOperationProcessEquDo.getPlanenddate().getTime()+jobDetailsVo.getPlanStartTime().getTime()-oldPlanstartdate.getTime()));
|
|
|
+ apsProcessOperationProcessEquDo.setPlanenddate(new Date(apsProcessOperationProcessEquDo.getPlanenddate().getTime() + jobDetailsVo.getPlanStartTime().getTime() - oldPlanstartdate.getTime()));
|
|
|
// 获取更新之前的存在冲突的工序作业
|
|
|
List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(
|
|
|
oldEquId, id, oldPlanstartdate, oldPlanenddate);
|
|
|
+ affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
// 找到更新时间之后存在冲突的工序作业
|
|
|
List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(
|
|
|
apsProcessOperationProcessEquDo.getProcessdeviceid(), id,
|
|
|
apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
-
|
|
|
+ affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
- updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId,EQ_TIME_CROSS);
|
|
|
+ updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS);
|
|
|
}
|
|
|
|
|
|
if (!afterTheUpdateConflictId.isEmpty()) {
|
|
@@ -507,9 +520,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 更当前工序作业增加新的冲突
|
|
|
String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
- updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId,EQ_TIME_CROSS);
|
|
|
+ updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
|
|
|
this.updateBatchById(afterTheUpdateConflictId);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 更当前工序作业增加新的冲突
|
|
|
String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
@@ -519,10 +532,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
}
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,apsProcessOperationProcessEquDo.getProcessdeviceid()
|
|
|
- ,apsProcessOperationProcessEquDo.getPlanstartdate(),apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+ inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo, apsProcessOperationProcessEquDo.getProcessdeviceid()
|
|
|
+ , apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
this.updateById(apsProcessOperationProcessEquDo);
|
|
|
- return R.ok();
|
|
|
+ return R.ok(this.ganttService.getListById(affectedIdList));
|
|
|
}
|
|
|
|
|
|
public void updateBlank(String processOperationId) {
|
|
@@ -586,7 +599,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
//根据最小生产状态和最大生产状态,判断当前最新的生产状态,等待更新
|
|
|
String maxProductionStatus = item.getMaxProductionStatus();
|
|
|
String minProductionStatus = item.getMinProductionStatus();
|
|
|
- if(ObjectUtil.isEmpty(maxProductionStatus) || ObjectUtil.isEmpty(minProductionStatus)){
|
|
|
+ if (ObjectUtil.isEmpty(maxProductionStatus) || ObjectUtil.isEmpty(minProductionStatus)) {
|
|
|
return;
|
|
|
}
|
|
|
/*
|
|
@@ -683,18 +696,19 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
|
|
|
/**
|
|
|
* 更新设备或者时间之后 更新冲突描述
|
|
|
+ *
|
|
|
* @param beforeUpdatingConflictId 当前作业更新设备或者时间之后与该作业存在冲突的工序作业信息
|
|
|
- * @param removeConflictsDesc 需要被删除的冲突描述
|
|
|
+ * @param removeConflictsDesc 需要被删除的冲突描述
|
|
|
*/
|
|
|
public void updateProcessEquBeforeAddConflictsDesc(List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId,
|
|
|
- String removeConflictsDesc) {
|
|
|
+ String removeConflictsDesc) {
|
|
|
if (beforeUpdatingConflictId.isEmpty()) {
|
|
|
return;
|
|
|
}
|
|
|
- beforeUpdatingConflictId.forEach(info->{
|
|
|
+ beforeUpdatingConflictId.forEach(info -> {
|
|
|
// 判断是否和其他工序作业明细存在从头
|
|
|
List<ApsProcessOperationProcessEquDo> conflictId = this.baseMapper.getConflictId(info.getProcessdeviceid(), info.getId(), info.getPlanstartdate(), info.getPlanenddate());
|
|
|
- if(!conflictId.isEmpty()){
|
|
|
+ if (!conflictId.isEmpty()) {
|
|
|
info.setConflictdes(removeConflictsDesc(info.getConflictdes(), removeConflictsDesc));
|
|
|
info.setHasconflict(StringUtils.isBlank(info.getConflictdes()) &&
|
|
|
StringUtils.isBlank(info.getSoftconflictdes()) ?
|
|
@@ -708,8 +722,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
|
|
|
/**
|
|
|
* 更新设备或者时间之后 更新冲突描述
|
|
|
+ *
|
|
|
* @param afterTheUpdateConflictId 当前作业更新设备或者时间之后与该作业存在冲突的工序作业信息
|
|
|
- * @param conflictsDesc 冲突描述
|
|
|
+ * @param conflictsDesc 冲突描述
|
|
|
*/
|
|
|
public void updateProcessEquAfterAddConflictsDesc(List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId,
|
|
|
String conflictsDesc) {
|
|
@@ -726,30 +741,32 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 增加 新的冲突
|
|
|
+ * 增加 新的冲突
|
|
|
+ *
|
|
|
* @param oldConflictDesc 工序作业的旧冲突
|
|
|
* @param newConflictDesc 需要新增的冲突
|
|
|
* @return
|
|
|
*/
|
|
|
- public String addNewConflictsDesc(String oldConflictDesc, String newConflictDesc){
|
|
|
- if(StringUtils.isBlank(oldConflictDesc)){
|
|
|
+ public String addNewConflictsDesc(String oldConflictDesc, String newConflictDesc) {
|
|
|
+ if (StringUtils.isBlank(oldConflictDesc)) {
|
|
|
return newConflictDesc;
|
|
|
}
|
|
|
List<String> conflictdeList = new ArrayList<>(Arrays.asList(oldConflictDesc.split(";")));
|
|
|
if (!conflictdeList.contains(newConflictDesc)) {
|
|
|
conflictdeList.add(newConflictDesc);
|
|
|
}
|
|
|
- return CollUtil.join(conflictdeList, ";");
|
|
|
+ return CollUtil.join(conflictdeList, ";");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除旧冲突
|
|
|
- * @param oldConflictDesc 工序作业的旧冲突
|
|
|
+ *
|
|
|
+ * @param oldConflictDesc 工序作业的旧冲突
|
|
|
* @param removeConflictDesc 需要删除的冲突
|
|
|
* @return
|
|
|
*/
|
|
|
- public String removeConflictsDesc(String oldConflictDesc, String removeConflictDesc){
|
|
|
- if(StringUtils.isBlank(oldConflictDesc)){
|
|
|
+ public String removeConflictsDesc(String oldConflictDesc, String removeConflictDesc) {
|
|
|
+ if (StringUtils.isBlank(oldConflictDesc)) {
|
|
|
return oldConflictDesc;
|
|
|
}
|
|
|
List<String> conflictdeList = new ArrayList<>(Arrays.asList(oldConflictDesc.split(";")));
|
|
@@ -764,22 +781,22 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
*/
|
|
|
- public void inspectionEquipmentIsAvailable(ApsProcessOperationProcessEquDo processEquDo,String equId, Date startDate, Date endDate) {
|
|
|
+ public void inspectionEquipmentIsAvailable(ApsProcessOperationProcessEquDo processEquDo, String equId, Date startDate, Date endDate) {
|
|
|
// 查询当前设备当前时间段是否存在不可用设备
|
|
|
List<ApsEquipmentCalendarDo> list = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
.eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
- .and(wapper-> wapper.apply("{0} BETWEEN sdstarttime AND sdendtime",startDate)
|
|
|
- .or()
|
|
|
- .apply("{0} BETWEEN sdstarttime AND sdendtime",endDate))
|
|
|
- );
|
|
|
+ .and(wapper -> wapper.apply("{0} BETWEEN sdstarttime AND sdendtime", startDate)
|
|
|
+ .or()
|
|
|
+ .apply("{0} BETWEEN sdstarttime AND sdendtime", endDate))
|
|
|
+ );
|
|
|
String newConflictdes;
|
|
|
- if(list.isEmpty()){
|
|
|
- newConflictdes=removeConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
- }else{
|
|
|
- newConflictdes= addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+ if (list.isEmpty()) {
|
|
|
+ newConflictdes = removeConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+ } else {
|
|
|
+ newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
}
|
|
|
processEquDo.setConflictdes(newConflictdes);
|
|
|
- processEquDo.setHasconflict(StringUtils.isBlank(newConflictdes) && StringUtils.isBlank(processEquDo.getSoftconflictdes()) ?LOCKMARK_N:LOCKMARK_Y);
|
|
|
+ processEquDo.setHasconflict(StringUtils.isBlank(newConflictdes) && StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y);
|
|
|
}
|
|
|
}
|
|
|
|