|
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUnit;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao;
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao;
|
|
@@ -28,14 +29,14 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.LinkedList;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.ConflictDescription.CONFLICTING_PROCESSING_TIMES;
|
|
import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.*;
|
|
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;
|
|
import static com.rongwei.safecommon.utils.SaveConstans.MINUS_ONE;
|
|
import static com.rongwei.safecommon.utils.SaveConstans.MINUS_ONE;
|
|
import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
|
|
import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
|
|
|
|
|
|
@@ -370,6 +371,55 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
return R.ok(optionalEquipment);
|
|
return R.ok(optionalEquipment);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 工序作业明细更新 计划开始和计划结束时间
|
|
|
|
+ *
|
|
|
|
+ * @param changeStartTimeVo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public R changeStartTime(ChangeStartTimeVo changeStartTimeVo) {
|
|
|
|
+ String id = changeStartTimeVo.getId();
|
|
|
|
+ ApsProcessOperationProcessEquDo processEquDo = this.getById(id);
|
|
|
|
+ ApsProcessOperationDo operationDo = apsProcessOperationService.getById(processEquDo.getProcessid());
|
|
|
|
+ if (operationDo == null) {
|
|
|
|
+ log.error("无法通过ID:{}获取到坯料计划", processEquDo.getBlankid());
|
|
|
|
+ return R.error("无法获取到坯料计划信息");
|
|
|
|
+ }
|
|
|
|
+ if (Arrays.asList(COMPLETED, PROCESSING, TO_BE_STARTED).contains(operationDo.getProcessstatus())) {
|
|
|
|
+ log.error("该作业已发布,不能调整开工时间");
|
|
|
|
+ return R.error("该作业已发布,不能调整开工时间");
|
|
|
|
+ }
|
|
|
|
+ // 获取更新之前的存在冲突的工序作业
|
|
|
|
+ List<String> beforeUpdatingConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getQeuId(), changeStartTimeVo.getId(),
|
|
|
|
+ changeStartTimeVo.getPlanStartTime(), changeStartTimeVo.getPlanEndTime());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 找到更新时间之后存在冲突的工序作业
|
|
|
|
+ List<String> afterTheUpdateConflictId = this.baseMapper.getConflictId(changeStartTimeVo.getQeuId(), changeStartTimeVo.getId(),
|
|
|
|
+ changeStartTimeVo.getPlanStartTime(), changeStartTimeVo.getPlanEndTime());
|
|
|
|
+ if (!afterTheUpdateConflictId.isEmpty()) {
|
|
|
|
+ processEquDo.setHasconflict(LOCKMARK_Y);
|
|
|
|
+ processEquDo.setConflictdes(CONFLICTING_PROCESSING_TIMES);
|
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getId, afterTheUpdateConflictId)
|
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getHasconflict, LOCKMARK_Y)
|
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getConflictdes, CONFLICTING_PROCESSING_TIMES));
|
|
|
|
+ }
|
|
|
|
+ if (!beforeUpdatingConflictId.isEmpty()) {
|
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getId, beforeUpdatingConflictId)
|
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getHasconflict, LOCKMARK_N)
|
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getConflictdes, ""));
|
|
|
|
+ }
|
|
|
|
+ processEquDo.setPlanstartdate(changeStartTimeVo.getPlanStartTime());
|
|
|
|
+ processEquDo.setPlanenddate(changeStartTimeVo.getPlanEndTime());
|
|
|
|
+ processEquDo.setHasconflict(LOCKMARK_N);
|
|
|
|
+ processEquDo.setConflictdes("");
|
|
|
|
+ this.updateById(processEquDo);
|
|
|
|
+ return R.ok();
|
|
|
|
+ }
|
|
|
|
+
|
|
private void updateBlank(String processOperationId) {
|
|
private void updateBlank(String processOperationId) {
|
|
//查询此工序的所属订单ID
|
|
//查询此工序的所属订单ID
|
|
String orderId = this.baseMapper.selectOrderIdByProcessOperationId(processOperationId);
|
|
String orderId = this.baseMapper.selectOrderIdByProcessOperationId(processOperationId);
|