|
@@ -31,6 +31,7 @@ import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.rongwei.bscommon.sys.utils.ApsUtils.addNewConflictsDesc;
|
|
|
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.*;
|
|
@@ -44,13 +45,14 @@ import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
|
|
|
@Service
|
|
|
public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsProcessOperationProcessEquDao, ApsProcessOperationProcessEquDo>
|
|
|
implements ApsProcessOperationProcessEquService {
|
|
|
+ public static final String CHANGING_WIRES_ERROR_MSG = "订单%s-%s的作业%s已完工,不能换线";
|
|
|
private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
|
|
|
@Autowired
|
|
|
private ApsProcessOperationService apsProcessOperationService;
|
|
|
@Autowired
|
|
|
- private ApsBlankOrderService apsBlankOrderService;
|
|
|
+ private ApsBlankOrderServiceImpl apsBlankOrderService;
|
|
|
@Autowired
|
|
|
private ApsProductionOrderService apsProductionOrderService;
|
|
|
@Autowired
|
|
@@ -264,8 +266,6 @@ 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()) {
|
|
@@ -284,7 +284,6 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
log.error("本次换线操作存在无法获取作业明细的数据");
|
|
|
return R.error("本次换线操作存在无法获取作业明细的数据!请联系系统管理员");
|
|
|
}
|
|
|
-
|
|
|
// 校验是否存在已完工的工序作业
|
|
|
boolean hasCompletedWork = apsProcessOperationProcessEquDos.stream()
|
|
|
.anyMatch(info -> JOBSTATUS_TO_BE_END.equals(info.getWorkstatus()));
|
|
@@ -307,10 +306,27 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
ApsProcessOperationProcessEquDo processEqus = apsProcessOperationProcessEquDos.stream()
|
|
|
.filter(info -> changingWiresVo.getId().equals(info.getId()))
|
|
|
.findFirst().orElse(null);
|
|
|
+ if (processEqus == null) {
|
|
|
+ log.error("无法根据ID:{}找到对应的工序作业明细信息", changingWiresVo.getId());
|
|
|
+ throw new RuntimeException("无法获取到正确的工序作业明细信息");
|
|
|
+ }
|
|
|
+ // 加工中切设备不变 不更新作业
|
|
|
+ if (JOBSTATUS_TO_BE_STARTING.equals(processEqus.getWorkstatus()) &&
|
|
|
+ processEqus.getProcessdeviceid().equals(changingWiresVo.getEquId())) {
|
|
|
+ log.debug("该工序作业明细:{}加工中且设备未发生变化无需换线", processEqus.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 加工卷数 = 已报工卷数+已取消卷数时 不更新作业
|
|
|
+ if (processEqus.getPlanprocessrall() == processEqus.getStartingroll() + processEqus.getCancelroll()) {
|
|
|
+ log.debug("该工序作业明细:{}已全部报工无需换线", processEqus.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// 获取该工序作业最早的计划开始时间
|
|
|
Date planstartdate = processEqus.getPlanstartdate();
|
|
|
-
|
|
|
+ Date planenddate = processEqus.getPlanenddate();
|
|
|
+ ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processEqus.getProcessid());
|
|
|
+ String processWay = apsProcessOperationDo.getProcessway();
|
|
|
// 待开工的直接修改
|
|
|
if (JOBSTATUS_TO_BE_START.equals(processEqus.getWorkstatus())) {
|
|
|
// 待开工的工序作业明细 直接更换加工设备 和车间
|
|
@@ -324,6 +340,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEqus.setPlanenddate(new Date(processEqus.getPlanenddate().getTime() - timeInterval));
|
|
|
checkConflictVos.add(new CheckConflictVo(processEqus.getId(), processEqus.getProcessdeviceid(),
|
|
|
processEqus.getPlanstartdate(), processEqus.getPlanenddate()));
|
|
|
+ // 校验可用时间
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(processEqus, planstartdate, planenddate, processWay));
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(processEqus, processEqus.getProcessdeviceid(), processEqus.getPlanstartdate()
|
|
|
, processEqus.getPlanenddate());
|
|
@@ -361,6 +379,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(saveProcessEqu, saveProcessEqu.getProcessdeviceid(), saveProcessEqu.getPlanstartdate()
|
|
|
, saveProcessEqu.getPlanenddate());
|
|
|
+ // 校验时间重叠问题
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(saveProcessEqu, planstartdate, planenddate, processWay));
|
|
|
saveList.add(saveProcessEqu);
|
|
|
/************更新原数据的数量信息***********************/
|
|
|
// 更新计划完工时间
|
|
@@ -370,20 +390,36 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEqus.setPlanprocessrall(processEqus.getStartingroll());
|
|
|
// 更新未完工卷数
|
|
|
processEqus.setUnfinishroll(processEqus.getPlanprocessrall() - processEqus.getReportroll());
|
|
|
+ // 作业状态
|
|
|
processEqus.setWorkstatus(processEqus.getUnfinishroll() == 0 ? JOBSTATUS_TO_BE_END : JOBSTATUS_TO_BE_STARTING);
|
|
|
- processEqus.setClosestatus(processEqus.getUnfinishroll() > 0 ? SaveConstans.CloseStatus.UNFINISHED : SaveConstans.CloseStatus.COMPLETED);
|
|
|
+ /**
|
|
|
+ * 更新完工状态
|
|
|
+ * 如果作业明细的完工状态=未完工,并且作业明细的已开工卷数=0,则作业状态=待开工;
|
|
|
+ * 如果作业明细的完工状态=未完工,并且作业明细的已开工卷数>0,则作业状态=加工中;
|
|
|
+ * 如果作业明细的完工状态=已完工,则作业状态=已完工
|
|
|
+ */
|
|
|
+ if (JOBSTATUS_TO_BE_END.equals(processEqus.getWorkstatus())) {
|
|
|
+ processEqus.setClosestatus(JOBSTATUS_TO_BE_END);
|
|
|
+ } else {
|
|
|
+ processEqus.setClosestatus(processEqus.getStartingroll() > 0 ? JOBSTATUS_TO_BE_STARTING : JOBSTATUS_TO_BE_START);
|
|
|
+ }
|
|
|
+ // 校验可用时间
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(processEqus, planstartdate, planenddate, processWay));
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(processEqus, processEqus.getProcessdeviceid(), processEqus.getPlanstartdate()
|
|
|
, processEqus.getPlanenddate());
|
|
|
saveList.add(processEqus);
|
|
|
}
|
|
|
+ // 更新坯料交货期
|
|
|
+ apsBlankOrderService. updateBlankDeliveryDate(null,apsProcessOperationDo.getBlankid());
|
|
|
});
|
|
|
// 换线拆单后 需要校验 是否存在冲突 如果存在冲突 提示
|
|
|
if (!checkConflictVos.isEmpty()) {
|
|
|
List<String> promptInformation = this.baseMapper.checkConflict(checkConflictVos);
|
|
|
if (!promptInformation.isEmpty()) {
|
|
|
log.error("存在冲突的工序作业");
|
|
|
- return R.error(promptInformation.get(0));
|
|
|
+ return R.error("换线后存在冲突");
|
|
|
+ //return R.error(promptInformation.get(0));
|
|
|
}
|
|
|
}
|
|
|
if (emptyBackup.get()) {
|
|
@@ -391,7 +427,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 删除工序作业备份
|
|
|
ApsUtils.clearBackup(currentUser);
|
|
|
}
|
|
|
- this.saveOrUpdateBatch(saveList);
|
|
|
+ if(!saveList.isEmpty()){
|
|
|
+ this.saveOrUpdateBatch(saveList);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 重新获取甘特图数据并返回前段
|
|
|
return R.ok(ganttService.getListById(affectedIdList));
|
|
@@ -399,7 +438,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
|
|
|
/**
|
|
|
* 计算计划完工时间
|
|
|
- * = 计划开工时间+加工时长*已开工卷数/计划加工卷数
|
|
|
+ * = 计划开工时间+加工时长*(已开工卷数/计划加工卷数)
|
|
|
*
|
|
|
* @param planStartTime
|
|
|
* @param processingTime
|
|
@@ -462,39 +501,19 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
// 当前工序的加工方式
|
|
|
String processway = operationDo.getProcessway();
|
|
|
+ Date oldPlanStartdate = processEquDo.getPlanstartdate();
|
|
|
+ Date oldPlanEnddate = processEquDo.getPlanenddate();
|
|
|
|
|
|
- // 获取更新之前的存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getEquId(), changeStartTimeVo.getId(),
|
|
|
- processEquDo.getPlanstartdate(), processEquDo.getPlanenddate(), processway);
|
|
|
- affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- // 找到更新时间之后存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getEquId(), changeStartTimeVo.getId(),
|
|
|
- changeStartTimeVo.getPlanStartTime(), changeStartTimeVo.getPlanEndTime(), processway);
|
|
|
- affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
- updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS, processway);
|
|
|
- }
|
|
|
+ processEquDo.setPlanstartdate(changeStartTimeVo.getPlanStartTime());
|
|
|
+ processEquDo.setPlanenddate(changeStartTimeVo.getPlanEndTime());
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(processEquDo, oldPlanStartdate, oldPlanEnddate, processway));
|
|
|
|
|
|
- if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
- processEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
- // 更当前工序作业增加新的冲突
|
|
|
- String newConflictsDesc = addNewConflictsDesc(processEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- processEquDo.setConflictdes(newConflictsDesc);
|
|
|
- updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
|
|
|
- } else {
|
|
|
- String newConflictsDesc = removeConflictsDesc(processEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- processEquDo.setConflictdes(newConflictsDesc);
|
|
|
- processEquDo.setHasconflict(StringUtils.isBlank(processEquDo.getConflictdes()) &&
|
|
|
- StringUtils.isBlank(processEquDo.getSoftconflictdes()) ?
|
|
|
- LOCKMARK_N : LOCKMARK_Y);
|
|
|
- }
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(processEquDo, changeStartTimeVo.getEquId(), changeStartTimeVo.getPlanStartTime()
|
|
|
, changeStartTimeVo.getPlanEndTime());
|
|
|
-
|
|
|
- processEquDo.setPlanstartdate(changeStartTimeVo.getPlanStartTime());
|
|
|
- processEquDo.setPlanenddate(changeStartTimeVo.getPlanEndTime());
|
|
|
this.updateById(processEquDo);
|
|
|
+ // 更新坯料交货期
|
|
|
+ apsBlankOrderService. updateBlankDeliveryDate(null,operationDo.getBlankid());
|
|
|
});
|
|
|
// 返回受影响的数据
|
|
|
return R.ok(this.ganttService.getListById(affectedIdList));
|
|
@@ -559,41 +578,21 @@ 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()));
|
|
|
- // 获取更新之前的存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(
|
|
|
- oldEquId, id, oldPlanstartdate, oldPlanenddate,apsProcessOperationDo.getProcessway());
|
|
|
- affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- // 找到更新时间之后存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(
|
|
|
- apsProcessOperationProcessEquDo.getProcessdeviceid(), id,
|
|
|
- apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
- apsProcessOperationDo.getProcessway());
|
|
|
- affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
- updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS,apsProcessOperationDo.getProcessway());
|
|
|
- }
|
|
|
-
|
|
|
- if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
- apsProcessOperationProcessEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
- // 更当前工序作业增加新的冲突
|
|
|
- String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
- updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
|
|
|
- this.updateBatchById(afterTheUpdateConflictId);
|
|
|
- } else {
|
|
|
- // 更当前工序作业增加新的冲突
|
|
|
- String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
- apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
|
|
|
- StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
|
|
|
- LOCKMARK_N : LOCKMARK_Y);
|
|
|
- }
|
|
|
+ apsProcessOperationProcessEquDo.setPlanenddate(new Date(apsProcessOperationProcessEquDo.getPlanenddate().getTime() +
|
|
|
+ jobDetailsVo.getPlanStartTime().getTime() - oldPlanstartdate.getTime()));
|
|
|
+ // 增加受影响的工序作业信息
|
|
|
+ affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo, oldPlanstartdate,
|
|
|
+ oldPlanenddate, apsProcessOperationDo.getProcessway()));
|
|
|
}
|
|
|
+
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo, apsProcessOperationProcessEquDo.getProcessdeviceid()
|
|
|
, apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+
|
|
|
this.updateById(apsProcessOperationProcessEquDo);
|
|
|
+ // 更新坯料交货期
|
|
|
+ apsBlankOrderService. updateBlankDeliveryDate(null,apsProcessOperationDo.getBlankid());
|
|
|
+
|
|
|
return R.ok(this.ganttService.getListById(affectedIdList));
|
|
|
}
|
|
|
|
|
@@ -760,7 +759,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
* @param removeConflictsDesc 需要被删除的冲突描述
|
|
|
*/
|
|
|
public void updateProcessEquBeforeAddConflictsDesc(List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId,
|
|
|
- String removeConflictsDesc,String processway) {
|
|
|
+ String removeConflictsDesc, String processway) {
|
|
|
if (beforeUpdatingConflictId.isEmpty()) {
|
|
|
return;
|
|
|
}
|
|
@@ -800,24 +799,6 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
this.updateBatchById(afterTheUpdateConflictId);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 增加 新的冲突
|
|
|
- *
|
|
|
- * @param oldConflictDesc 工序作业的旧冲突
|
|
|
- * @param newConflictDesc 需要新增的冲突
|
|
|
- * @return
|
|
|
- */
|
|
|
- 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, ";");
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 删除旧冲突
|
|
|
*
|
|
@@ -858,6 +839,53 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEquDo.setConflictdes(newConflictdes);
|
|
|
processEquDo.setHasconflict(StringUtils.isBlank(newConflictdes) && StringUtils.isBlank(processEquDo.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验加工时间是否重叠
|
|
|
+ *
|
|
|
+ * @param apsProcessOperationProcessEquDo 当前工序作业
|
|
|
+ * @param oldPlanstartdate 原来的加工开始时间
|
|
|
+ * @param oldPlanenddate 原来的加工结束时间
|
|
|
+ * @param currentProcessWay 当前工序的加工方式
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<String> checkProcessingTimeConflict(ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo,
|
|
|
+ Date oldPlanstartdate, Date oldPlanenddate, String currentProcessWay) {
|
|
|
+ // 受影响的工序作业Id
|
|
|
+ List<String> affectedIdList = new ArrayList<>();
|
|
|
+ // 获取更新之前的存在冲突的工序作业
|
|
|
+ List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(
|
|
|
+ apsProcessOperationProcessEquDo.getProcessdeviceid(), apsProcessOperationProcessEquDo.getId(),
|
|
|
+ oldPlanstartdate, oldPlanenddate, currentProcessWay);
|
|
|
+
|
|
|
+ affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
+ // 找到更新时间之后存在冲突的工序作业
|
|
|
+ List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(
|
|
|
+ apsProcessOperationProcessEquDo.getProcessdeviceid(), apsProcessOperationProcessEquDo.getId(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ currentProcessWay);
|
|
|
+ affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
+ if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
+ updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS, currentProcessWay);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
+ apsProcessOperationProcessEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
+ // 更当前工序作业增加新的冲突
|
|
|
+ String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
+ apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+ updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS);
|
|
|
+ this.updateBatchById(afterTheUpdateConflictId);
|
|
|
+ } else {
|
|
|
+ // 更当前工序作业增加新的冲突
|
|
|
+ String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
+ apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+ apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
|
|
|
+ StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
|
|
|
+ LOCKMARK_N : LOCKMARK_Y);
|
|
|
+ }
|
|
|
+ return affectedIdList;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|