|
@@ -1,5 +1,6 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
@@ -21,6 +22,7 @@ import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
|
import com.rongwei.safecommon.utils.SaveConstans;
|
|
|
+import com.rongwei.wfserver.wfcommon.sys.service.impl.ProcessServiceImpl;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -81,6 +83,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
private HttpServletRequest httpServletRequest;
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquService apsProcessOperationProcessEquService;
|
|
|
+ @Autowired
|
|
|
+ private ProcessServiceImpl processService;
|
|
|
|
|
|
/**
|
|
|
* 更新工序的待加工批次号信息
|
|
@@ -364,8 +368,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
String processWay = apsProcessOperationDo.getProcessway();
|
|
|
// 单卷加工时长
|
|
|
BigDecimal onceprocessmin = apsProcessOperationDo.getOnceprocessmin();
|
|
|
- updateConflictVo.setOldPlanEnddate(planstartdate);
|
|
|
- updateConflictVo.setOldPlanStartdate(planenddate);
|
|
|
+ updateConflictVo.setOldPlanEnddate(planenddate);
|
|
|
+ updateConflictVo.setOldPlanStartdate(planstartdate);
|
|
|
updateConflictVo.setCurrentProcessWay(processWay);
|
|
|
updateConflictVo.setOldEquId(processEqus.getProcessdeviceid());
|
|
|
// 待开工的直接修改
|
|
@@ -553,7 +557,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo,
|
|
|
data.getOldPlanStartdate(), data.getOldPlanEnddate(), data.getOldEquId(), data.getCurrentProcessWay(), returnAboutIds));
|
|
|
// 判断是否存在设备不可用
|
|
|
- inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
|
|
|
+ ApsProcessOperationProcessEquDo newApsProcessEqu = this.getById(apsProcessOperationProcessEquDo.getId());
|
|
|
+ inspectionEquipmentIsAvailable(newApsProcessEqu,
|
|
|
apsProcessOperationProcessEquDo.getProcessdeviceid(),
|
|
|
apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
apsProcessOperationProcessEquDo.getPlanenddate());
|
|
@@ -1409,6 +1414,46 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
this.updateBatchById(afterTheUpdateConflictId);
|
|
|
}
|
|
|
|
|
|
+ //新增冲突
|
|
|
+ public void addConflict(List<ProcessVo> needAddConflictList, String conflictsDesc, String aboutId) {
|
|
|
+ if (needAddConflictList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<ApsProcessOperationProcessEquDo> needUpdateList = new LinkedList<>();
|
|
|
+ for (ProcessVo needRemove : needAddConflictList) {
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
|
|
|
+ apsProcessOperationProcessEquDo.setId(needRemove.getProcessEquId());
|
|
|
+ String newConflictsDesc = addNewConflictsDesc(needRemove.getConflictdes(), conflictsDesc);
|
|
|
+ apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+ apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) && StringUtils.isBlank(needRemove.getSoftconflictdes()) ?
|
|
|
+ LOCKMARK_N : LOCKMARK_Y);
|
|
|
+ apsProcessOperationProcessEquDo.setModifydate(new Date());
|
|
|
+ needUpdateList.add(apsProcessOperationProcessEquDo);
|
|
|
+ apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(), aboutId, EQ_TIME_CROSS, 1, null);
|
|
|
+ }
|
|
|
+ this.updateBatchById(needUpdateList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除冲突
|
|
|
+ public void removeConflict(List<ProcessVo> needRemoveConflictList, String conflictsDesc, String aboutId) {
|
|
|
+ if (needRemoveConflictList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<ApsProcessOperationProcessEquDo> needUpdateList = new LinkedList<>();
|
|
|
+ for (ProcessVo needRemove : needRemoveConflictList) {
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
|
|
|
+ apsProcessOperationProcessEquDo.setId(needRemove.getProcessEquId());
|
|
|
+ String newConflictsDesc = removeConflictsDesc(needRemove.getConflictdes(), conflictsDesc);
|
|
|
+ apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+ apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) && StringUtils.isBlank(needRemove.getSoftconflictdes()) ?
|
|
|
+ LOCKMARK_N : LOCKMARK_Y);
|
|
|
+ apsProcessOperationProcessEquDo.setModifydate(new Date());
|
|
|
+ needUpdateList.add(apsProcessOperationProcessEquDo);
|
|
|
+ apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(), aboutId, EQ_TIME_CROSS, 2, null);
|
|
|
+ }
|
|
|
+ this.updateBatchById(needUpdateList);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除旧冲突
|
|
|
*
|
|
@@ -1486,84 +1531,179 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
String oldEquId, String currentProcessWay, List<String> returnAboutIds) {
|
|
|
// 受影响的工序作业Id
|
|
|
List<String> affectedIdList = new ArrayList<>();
|
|
|
- // 获取更新之前的存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getTimeOverlapByEquId(oldEquId,
|
|
|
- apsProcessOperationProcessEquDo.getId(), oldPlanstartdate, oldPlanenddate, currentProcessWay);
|
|
|
+ //获取更新之前 所在设备 可能存在冲突的所有工序作业:前5天和后5天
|
|
|
+ Date olddate1 = DateUtil.offsetDay(oldPlanstartdate, -5);
|
|
|
+ Date olddate2 = DateUtil.offsetDay(oldPlanenddate, 5);
|
|
|
+ List<ProcessVo> oldList = this.baseMapper.selectMyProcessVo(oldEquId, olddate1, olddate2);
|
|
|
+ List<ProcessVo> needRemoveTimeOverLapList = checkNeedRemove(oldList,
|
|
|
+ oldPlanstartdate,
|
|
|
+ oldPlanenddate,
|
|
|
+ apsProcessOperationProcessEquDo.getId());
|
|
|
+ //把自己的冲突也删掉
|
|
|
+ ProcessVo processVo = new ProcessVo();
|
|
|
+ processVo.setProcessEquId(apsProcessOperationProcessEquDo.getId());
|
|
|
+ processVo.setProcessWay(currentProcessWay);
|
|
|
+ processVo.setConflictdes(apsProcessOperationProcessEquDo.getConflictdes());
|
|
|
+ processVo.setSoftconflictdes(apsProcessOperationProcessEquDo.getSoftconflictdes());
|
|
|
+ needRemoveTimeOverLapList.add(processVo);
|
|
|
+ List<String> needRemoveTimeOverLapIdList = needRemoveTimeOverLapList.stream().map(ProcessVo::getProcessEquId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //获取更新之后 所在设备 可能存在冲突的所有工序作业:前5天和后5天
|
|
|
+ DateTime newdate1 = DateUtil.offsetDay(apsProcessOperationProcessEquDo.getPlanstartdate(), -5);
|
|
|
+ DateTime newdate2 = DateUtil.offsetDay(apsProcessOperationProcessEquDo.getPlanenddate(), 5);
|
|
|
+ List<ProcessVo> newList = this.baseMapper.selectMyProcessVo(apsProcessOperationProcessEquDo.getProcessdeviceid(), newdate1, newdate2);
|
|
|
+ List<ProcessVo> needAddTimeOverLapList = checkNeedAdd(newList,
|
|
|
+ apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ apsProcessOperationProcessEquDo.getId());
|
|
|
+ if (!needAddTimeOverLapList.isEmpty()){
|
|
|
+ //把自己的冲突增加
|
|
|
+ ProcessVo processVo2 = new ProcessVo();
|
|
|
+ processVo2.setProcessEquId(apsProcessOperationProcessEquDo.getId());
|
|
|
+ processVo2.setProcessWay(currentProcessWay);
|
|
|
+ processVo2.setConflictdes(apsProcessOperationProcessEquDo.getConflictdes());
|
|
|
+ processVo2.setSoftconflictdes(apsProcessOperationProcessEquDo.getSoftconflictdes());
|
|
|
+ needAddTimeOverLapList.add(processVo2);
|
|
|
+ }
|
|
|
+ List<String> needAddTimeOverLapIdList = needAddTimeOverLapList.stream().map(ProcessVo::getProcessEquId).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ //如果需要新增的id包含删除的,去除删除中的id
|
|
|
+ needRemoveTimeOverLapIdList.removeAll(needAddTimeOverLapIdList);
|
|
|
+ needRemoveTimeOverLapList.removeAll(needAddTimeOverLapList);
|
|
|
+
|
|
|
+ affectedIdList.addAll(needRemoveTimeOverLapIdList);
|
|
|
+ affectedIdList.addAll(needAddTimeOverLapIdList);
|
|
|
+
|
|
|
+
|
|
|
+// // 获取更新之前的存在冲突的工序作业
|
|
|
+// List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getTimeOverlapByEquId(oldEquId,
|
|
|
+// apsProcessOperationProcessEquDo.getId(), oldPlanstartdate, oldPlanenddate, currentProcessWay);
|
|
|
log.info("参数旧的的设备id:{}", oldEquId);
|
|
|
log.info("参数工序作业明细主键:{}", apsProcessOperationProcessEquDo.getId());
|
|
|
log.info("参数旧的计划开工日期:{}", oldPlanstartdate);
|
|
|
log.info("参数旧的计划完工日期:{}", oldPlanenddate);
|
|
|
log.info("参数当前工序作业加工方式:{}", currentProcessWay);
|
|
|
- log.info("获取更新之前的存在冲突的工序作业结果:{}", beforeUpdatingConflictId);
|
|
|
- List<ApsProcessOperationProcessEquDo> aboutProcessEquList = new ArrayList<>();
|
|
|
- if (!returnAboutIds.isEmpty()) {
|
|
|
- aboutProcessEquList = (List<ApsProcessOperationProcessEquDo>) apsProcessOperationProcessEquService.listByIds(returnAboutIds);
|
|
|
- }
|
|
|
- if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
- affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS, currentProcessWay,
|
|
|
- apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
- apsProcessOperationProcessEquDo.getPlanenddate(), apsProcessOperationProcessEquDo.getId());
|
|
|
- if (!aboutProcessEquList.isEmpty()) {
|
|
|
- updateProcessEquAboutBeforeAddConflictsDesc(aboutProcessEquList, EQ_TIME_CROSS, currentProcessWay,
|
|
|
- apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
- apsProcessOperationProcessEquDo.getPlanenddate(), apsProcessOperationProcessEquDo.getId());
|
|
|
- }
|
|
|
- }
|
|
|
+ removeConflict(needRemoveTimeOverLapList, EQ_TIME_CROSS, apsProcessOperationProcessEquDo.getId());
|
|
|
+// log.info("获取更新之前的存在冲突的工序作业结果:{}", beforeUpdatingConflictId);
|
|
|
+// List<ApsProcessOperationProcessEquDo> aboutProcessEquList = new ArrayList<>();
|
|
|
+// if (!returnAboutIds.isEmpty()) {
|
|
|
+// aboutProcessEquList = (List<ApsProcessOperationProcessEquDo>) apsProcessOperationProcessEquService.listByIds(returnAboutIds);
|
|
|
+// }
|
|
|
+// if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
+// affectedIdList.addAll(beforeUpdatingConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
+// updateProcessEquBeforeAddConflictsDesc(beforeUpdatingConflictId, EQ_TIME_CROSS, currentProcessWay,
|
|
|
+// apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
+// apsProcessOperationProcessEquDo.getPlanenddate(), apsProcessOperationProcessEquDo.getId());
|
|
|
+// if (!aboutProcessEquList.isEmpty()) {
|
|
|
+// updateProcessEquAboutBeforeAddConflictsDesc(aboutProcessEquList, EQ_TIME_CROSS, currentProcessWay,
|
|
|
+// apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
+// apsProcessOperationProcessEquDo.getPlanenddate(), apsProcessOperationProcessEquDo.getId());
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
// 找到更新时间之后存在冲突的工序作业
|
|
|
- List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(
|
|
|
- apsProcessOperationProcessEquDo.getProcessdeviceid(), apsProcessOperationProcessEquDo.getId(),
|
|
|
- apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
- currentProcessWay);
|
|
|
+// List<ApsProcessOperationProcessEquDo> afterTheUpdateConflictId = this.baseMapper.getConflictId(
|
|
|
+// apsProcessOperationProcessEquDo.getProcessdeviceid(), apsProcessOperationProcessEquDo.getId(),
|
|
|
+// apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+// currentProcessWay);
|
|
|
log.info("参数新的的设备id:{}", apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
log.info("参数工序作业明细主键:{}", apsProcessOperationProcessEquDo.getId());
|
|
|
log.info("参数新的计划开工日期:{}", apsProcessOperationProcessEquDo.getPlanstartdate());
|
|
|
log.info("参数新的计划完工日期:{}", apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
log.info("参数当前工序作业加工方式:{}", currentProcessWay);
|
|
|
- log.info("找到更新时间之后存在冲突的工序作业结果:{}", afterTheUpdateConflictId);
|
|
|
- affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
- if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
- apsProcessOperationProcessEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
- // 更新当前工序作业增加新的冲突
|
|
|
- String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
- apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
- afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.joining(",")), EQ_TIME_CROSS, 1, null);
|
|
|
- updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS, apsProcessOperationProcessEquDo.getId());
|
|
|
- } else {
|
|
|
- // 去掉工序作业的冲突
|
|
|
- String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(), "", EQ_TIME_CROSS, 2, null);
|
|
|
- apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
- apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
|
|
|
- StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
|
|
|
- LOCKMARK_N : LOCKMARK_Y);
|
|
|
- this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .eq(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDo.getId())
|
|
|
- .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictsDesc)
|
|
|
- .set(ApsProcessOperationProcessEquDo::getHasconflict, apsProcessOperationProcessEquDo.getHasconflict())
|
|
|
- .set(BaseDo::getModifydate, new Date())
|
|
|
- );
|
|
|
- if (!aboutProcessEquList.isEmpty()) {
|
|
|
- aboutProcessEquList.forEach(e -> {
|
|
|
- if (StringUtils.isNotBlank(e.getConflictdes()) && e.getConflictdes().contains(EQ_TIME_CROSS)) {
|
|
|
- String afterConflictdes = removeConflictsDesc(e.getConflictdes(), EQ_TIME_CROSS);
|
|
|
- apsConflictLogService.recordLog(e.getId(), "", EQ_TIME_CROSS, 2, null);
|
|
|
- e.setConflictdes(afterConflictdes);
|
|
|
- e.setHasconflict(StringUtils.isBlank(e.getConflictdes()) &&
|
|
|
- StringUtils.isBlank(e.getSoftconflictdes()) ?
|
|
|
- LOCKMARK_N : LOCKMARK_Y);
|
|
|
- this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .eq(ApsProcessOperationProcessEquDo::getId, e.getId())
|
|
|
- .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictsDesc)
|
|
|
- .set(ApsProcessOperationProcessEquDo::getHasconflict, e.getHasconflict())
|
|
|
- .set(BaseDo::getModifydate, new Date()));
|
|
|
- }
|
|
|
- });
|
|
|
+ addConflict(needAddTimeOverLapList, EQ_TIME_CROSS, apsProcessOperationProcessEquDo.getId());
|
|
|
+// log.info("找到更新时间之后存在冲突的工序作业结果:{}", afterTheUpdateConflictId);
|
|
|
+// affectedIdList.addAll(afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList()));
|
|
|
+// if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
+// apsProcessOperationProcessEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
+// // 更新当前工序作业增加新的冲突
|
|
|
+// String newConflictsDesc = addNewConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
+// apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+// apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
+// afterTheUpdateConflictId.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.joining(",")), EQ_TIME_CROSS, 1, null);
|
|
|
+// updateProcessEquAfterAddConflictsDesc(afterTheUpdateConflictId, EQ_TIME_CROSS, apsProcessOperationProcessEquDo.getId());
|
|
|
+// } else {
|
|
|
+// // 去掉工序作业的冲突
|
|
|
+// String newConflictsDesc = removeConflictsDesc(apsProcessOperationProcessEquDo.getConflictdes(), EQ_TIME_CROSS);
|
|
|
+// apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(), "", EQ_TIME_CROSS, 2, null);
|
|
|
+// apsProcessOperationProcessEquDo.setConflictdes(newConflictsDesc);
|
|
|
+// apsProcessOperationProcessEquDo.setHasconflict(StringUtils.isBlank(apsProcessOperationProcessEquDo.getConflictdes()) &&
|
|
|
+// StringUtils.isBlank(apsProcessOperationProcessEquDo.getSoftconflictdes()) ?
|
|
|
+// LOCKMARK_N : LOCKMARK_Y);
|
|
|
+// this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+// .eq(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDo.getId())
|
|
|
+// .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictsDesc)
|
|
|
+// .set(ApsProcessOperationProcessEquDo::getHasconflict, apsProcessOperationProcessEquDo.getHasconflict())
|
|
|
+// .set(BaseDo::getModifydate, new Date())
|
|
|
+// );
|
|
|
+// if (!aboutProcessEquList.isEmpty()) {
|
|
|
+// aboutProcessEquList.forEach(e -> {
|
|
|
+// if (StringUtils.isNotBlank(e.getConflictdes()) && e.getConflictdes().contains(EQ_TIME_CROSS)) {
|
|
|
+// String afterConflictdes = removeConflictsDesc(e.getConflictdes(), EQ_TIME_CROSS);
|
|
|
+// apsConflictLogService.recordLog(e.getId(), "", EQ_TIME_CROSS, 2, null);
|
|
|
+// e.setConflictdes(afterConflictdes);
|
|
|
+// e.setHasconflict(StringUtils.isBlank(e.getConflictdes()) &&
|
|
|
+// StringUtils.isBlank(e.getSoftconflictdes()) ?
|
|
|
+// LOCKMARK_N : LOCKMARK_Y);
|
|
|
+// this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+// .eq(ApsProcessOperationProcessEquDo::getId, e.getId())
|
|
|
+// .set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictsDesc)
|
|
|
+// .set(ApsProcessOperationProcessEquDo::getHasconflict, e.getHasconflict())
|
|
|
+// .set(BaseDo::getModifydate, new Date()));
|
|
|
+// }
|
|
|
+// });
|
|
|
+// }
|
|
|
+// }
|
|
|
+ return affectedIdList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<ProcessVo> checkNeedAdd(List<ProcessVo> newList,
|
|
|
+ Date newPlanstartdate, Date newPlanenddate,
|
|
|
+ String processEquId) {
|
|
|
+ //判断当前是否存在冲突
|
|
|
+ List<ProcessVo> haveTimeOverLapList = newList.stream().filter(item -> haveTimeOverLap(item, processEquId, newPlanstartdate, newPlanenddate,false)).collect(Collectors.toList());
|
|
|
+ return haveTimeOverLapList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<ProcessVo> checkNeedRemove(List<ProcessVo> oldList,
|
|
|
+ Date oldPlanstartdate, Date oldPlanenddate,
|
|
|
+ String processEquId) {
|
|
|
+ List<ProcessVo> needRemoveTimeOverLapIdList = new LinkedList<>();
|
|
|
+ //移除前存在冲突的数据
|
|
|
+ List<ProcessVo> haveTimeOverLapList = oldList.stream().filter(item -> haveTimeOverLap(item, processEquId, oldPlanstartdate, oldPlanenddate,true)).collect(Collectors.toList());
|
|
|
+ if (!haveTimeOverLapList.isEmpty()) {
|
|
|
+ //判断是否还有时间冲突,如果没有时间冲突,去除时间冲突,还存在时间冲突,则不更改数据
|
|
|
+ for (ProcessVo processVo : haveTimeOverLapList) {
|
|
|
+ long count = oldList.stream().filter(item -> haveTimeOverLap(item, processVo.getProcessEquId(), processVo.getPlanStartTime(), processVo.getPlanEndTime(),true)).count();
|
|
|
+ if (count == 0) {
|
|
|
+ needRemoveTimeOverLapIdList.add(processVo);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- return affectedIdList;
|
|
|
+ return needRemoveTimeOverLapIdList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean haveTimeOverLap(ProcessVo item, String processEquId, Date oldPlanstartdate, Date oldPlanenddate,boolean isRemove) {
|
|
|
+ if (isRemove && item.getProcessEquId().equals(processEquId)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ Date planstartdate = item.getPlanStartTime();
|
|
|
+ Date planenddate = item.getPlanEndTime();
|
|
|
+ //是合并工序
|
|
|
+ if (item.getProcessWay().equals(PROCESS_WAY_MERGE)) {
|
|
|
+ //判断计划开工时间是否相同
|
|
|
+ if (planstartdate.compareTo(oldPlanstartdate) == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //不是合并工序判断时间是否冲突
|
|
|
+ if ((planstartdate.after(oldPlanstartdate) && planstartdate.before(oldPlanenddate))
|
|
|
+ || (planenddate.after(oldPlanstartdate) && planenddate.before(oldPlanenddate))) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public String strAppendListConvertStr(String oldValue, List<String> newValues) {
|