|
@@ -98,6 +98,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
private ApsScheduleConfigService apsScheduleConfigService;
|
|
|
@Autowired
|
|
|
private PlatformTransactionManager transactionManager;
|
|
|
+ @Autowired
|
|
|
+ private ApsRollerTypeService apsRollerTypeService;
|
|
|
|
|
|
// /**
|
|
|
// * 更新工序的待加工批次号信息
|
|
@@ -344,9 +346,22 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
throw new CustomException("存在已完工的工序作业无法换线");
|
|
|
}
|
|
|
apsProcessOperationProcessEquDos.sort(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate));
|
|
|
+ String rollerid1 = apsProcessOperationProcessEquDos.get(0).getRollerid();
|
|
|
+ String rollerId2 = changingWiresVos.get(0).getRollerId();
|
|
|
+ String rollerType = "";
|
|
|
+ if (StringUtils.isBlank(rollerid1)) {
|
|
|
+ rollerid1 = "";
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(rollerId2)) {
|
|
|
+ rollerId2 = "";
|
|
|
+ } else {
|
|
|
+ ApsRollerTypeDo rollerTypeDo = apsRollerTypeService.getById(rollerId2);
|
|
|
+ rollerType = rollerTypeDo.getRollertype();
|
|
|
+ }
|
|
|
if (apsProcessOperationProcessEquDos.get(0).getProcessdeviceid().equals(changingWiresVos.get(0).getEquId())
|
|
|
- && apsProcessOperationProcessEquDos.get(0).getPlanstartdate().equals(changingWiresVos.get(0).getProcessingTime())) {
|
|
|
- throw new CustomException("请修改计划开工时间或加工设备");
|
|
|
+ && apsProcessOperationProcessEquDos.get(0).getPlanstartdate().equals(changingWiresVos.get(0).getProcessingTime())
|
|
|
+ && rollerid1.equals(rollerId2)) {
|
|
|
+ throw new CustomException("请修改计划开工时间或加工设备或辊");
|
|
|
}
|
|
|
|
|
|
//对于换线作业的数据进行排序
|
|
@@ -453,6 +468,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
needEqu.setProcessworkshop(changingWiresVo.getWorkshopName());
|
|
|
needEqu.setProcessdeviceid(changingWiresVo.getEquId());
|
|
|
needEqu.setProcessdevice(changingWiresVo.getEquName());
|
|
|
+ //可选设备
|
|
|
+ String canchoosedeviceid = apsProcessOperationDo.getCanchoosedeviceid();
|
|
|
+ LinkedList<String> canChooseDeviceIdList = new LinkedList<>(Arrays.asList(canchoosedeviceid.split(",")));
|
|
|
+ ApsProcessOperationEquDo needInsert = new ApsProcessOperationEquDo();
|
|
|
+ if (!canChooseDeviceIdList.contains(changingWiresVo.getEquId())) {
|
|
|
+ needInsert.setId(SecurityUtil.getUUID());
|
|
|
+ needInsert.setTenantid(CXCommonUtils.getCurrentUserFactoryId(nowWorkUser));
|
|
|
+ needInsert.setBlankid(apsProcessOperationDo.getBlankid());
|
|
|
+ needInsert.setMainid(apsProcessOperationDo.getId());
|
|
|
+ needInsert.setResourcetype("设备");
|
|
|
+ needInsert.setResourceid(changingWiresVo.getEquId());
|
|
|
+ }
|
|
|
if (ObjectUtil.isNotEmpty(changingWiresVo.getIsZhaji()) && ObjectUtil.isNotEmpty(changingWiresVo.getOldDeviceId())) {
|
|
|
//如果是轧机工序类别,并且(加工设备换了,或者加工设备没换并且辊类型不为空),则辊类型=所选辊类型
|
|
|
if (changingWiresVo.getIsZhaji()) {
|
|
@@ -460,10 +487,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
if (changingWiresVo.getOldDeviceId().equals(changingWiresVo.getEquId())) {
|
|
|
if (ObjectUtil.isNotEmpty(changingWiresVo.getRollerId())) {
|
|
|
needEqu.setRollerid(changingWiresVo.getRollerId());
|
|
|
+ needInsert.setRollerid(changingWiresVo.getRollerId());
|
|
|
+ needInsert.setRollertype(rollerType);
|
|
|
}
|
|
|
} else {
|
|
|
if (ObjectUtil.isNotEmpty(changingWiresVo.getRollerId())) {
|
|
|
needEqu.setRollerid(changingWiresVo.getRollerId());
|
|
|
+ needInsert.setRollerid(changingWiresVo.getRollerId());
|
|
|
+ needInsert.setRollertype(rollerType);
|
|
|
} else {
|
|
|
throw new CustomException("换设备后轧机工序必须选择辊类型");
|
|
|
}
|
|
@@ -478,6 +509,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
checkConflictVos.add(new CheckConflictVo(processEqus.getId(), processEqus.getProcessdeviceid(),
|
|
|
processEqus.getPlanstartdate(), processEqus.getPlanenddate()));
|
|
|
saveList.add(needEqu);
|
|
|
+ if (StringUtils.isNotBlank(needInsert.getId())) {
|
|
|
+ apsProcessOperationEquService.save(needInsert);
|
|
|
+ ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
|
|
|
+ needUpdateProcess.setId(apsProcessOperationDo.getId());
|
|
|
+ canChooseDeviceIdList.add(changingWiresVo.getEquId());
|
|
|
+ needUpdateProcess.setCanchoosedeviceid(String.join(",", canChooseDeviceIdList));
|
|
|
+ String chooseEqu = apsProcessOperationDo.getChooseequ();
|
|
|
+ LinkedList<String> chooseEquList = new LinkedList<>(Arrays.asList(chooseEqu.split(",")));
|
|
|
+ chooseEquList.add(changingWiresVo.getEquName());
|
|
|
+ needUpdateProcess.setChooseequ(String.join(",", chooseEquList));
|
|
|
+ apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
+ }
|
|
|
}
|
|
|
updateConflictVo.setApsProcessOperationProcessEquDo(needEqu);
|
|
|
updateConflictVoList.add(updateConflictVo);
|
|
@@ -824,20 +867,20 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
//查询工序作业详情
|
|
|
ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processid);
|
|
|
//查询工艺步骤指定的可选设备
|
|
|
- List<String> processOperationEquList = Arrays.asList(apsProcessOperationDo.getCanchoosedeviceid().split(","));
|
|
|
+// List<String> processOperationEquList = Arrays.asList(apsProcessOperationDo.getCanchoosedeviceid().split(","));
|
|
|
// List<ApsProcessOperationEquDo> processOperationEquDos = apsProcessOperationEquService.list(new LambdaQueryWrapper<ApsProcessOperationEquDo>().eq(ApsProcessOperationEquDo::getMainid, processid));
|
|
|
- long count = processOperationEquList.stream().filter(item -> item.equals(apsProcessOperationProcessEquDo.getProcessdeviceid())).count();
|
|
|
+// long count = processOperationEquList.stream().filter(item -> item.equals(apsProcessOperationProcessEquDo.getProcessdeviceid())).count();
|
|
|
String newConflictdes = apsProcessOperationProcessEquDo.getConflictdes();
|
|
|
- if (count <= 0) {
|
|
|
- //如果加工设备不是工艺步骤指定的可选设备,记录冲突:加工设备不是工艺要求的可选设备
|
|
|
- apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
- apsProcessOperationProcessEquDo.getProcessdeviceid(), NO_NEED_EQU, 1, null);
|
|
|
- newConflictdes = addNewConflictsDesc(newConflictdes, NO_NEED_EQU);
|
|
|
- } else {
|
|
|
- apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
- apsProcessOperationProcessEquDo.getProcessdeviceid(), NO_NEED_EQU, 2, null);
|
|
|
- newConflictdes = removeConflictsDesc(newConflictdes, NO_NEED_EQU);
|
|
|
- }
|
|
|
+// if (count <= 0) {
|
|
|
+// //如果加工设备不是工艺步骤指定的可选设备,记录冲突:加工设备不是工艺要求的可选设备
|
|
|
+// apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
+// apsProcessOperationProcessEquDo.getProcessdeviceid(), NO_NEED_EQU, 1, null);
|
|
|
+// newConflictdes = addNewConflictsDesc(newConflictdes, NO_NEED_EQU);
|
|
|
+// } else {
|
|
|
+// apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
|
|
|
+// apsProcessOperationProcessEquDo.getProcessdeviceid(), NO_NEED_EQU, 2, null);
|
|
|
+// newConflictdes = removeConflictsDesc(newConflictdes, NO_NEED_EQU);
|
|
|
+// }
|
|
|
// //查询工序作业详情
|
|
|
// ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
|
|
|
|
|
@@ -1352,6 +1395,22 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
return R.ok(ganttService.getListById(aboutIds));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新工序作业明细
|
|
|
+ *
|
|
|
+ * @param jobDetailsVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public List<String> updateDetails2(JobDetailsVo jobDetailsVo) {
|
|
|
+ ChangingWiresVo changingWiresVo = BeanUtil.toBean(jobDetailsVo, ChangingWiresVo.class);
|
|
|
+ changingWiresVo.setProcessingTime(jobDetailsVo.getPlanStartTime());
|
|
|
+ List<ChangingWiresVo> changingWiresVos = new LinkedList<>();
|
|
|
+ changingWiresVos.add(changingWiresVo);
|
|
|
+ return changingWires(changingWiresVos);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 工序作业明细拆分
|
|
|
*
|
|
@@ -1545,6 +1604,26 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
needUpdate.setProcessworkshop(data.getWorkshopName());
|
|
|
needUpdate.setPlanstartdate(data.getPlanStartTime());
|
|
|
needUpdate.setPlanenddate(DateUtil.offsetSecond(equDo.getPlanenddate(), (int) DateUtil.between(equDo.getPlanstartdate(), data.getPlanStartTime(), DateUnit.SECOND, false)));
|
|
|
+ List<String> canChooseDeviceIdList = new LinkedList<>(Arrays.asList(currentProcessOperationDo.getCanchoosedeviceid().split(",")));
|
|
|
+ if (!canChooseDeviceIdList.contains(data.getEquId())) {
|
|
|
+ ApsProcessOperationEquDo needInsert = new ApsProcessOperationEquDo();
|
|
|
+ needInsert.setId(SecurityUtil.getUUID());
|
|
|
+ needInsert.setTenantid(CXCommonUtils.getCurrentUserFactoryId(nowWorkUser));
|
|
|
+ needInsert.setBlankid(currentProcessOperationDo.getBlankid());
|
|
|
+ needInsert.setMainid(currentProcessOperationDo.getId());
|
|
|
+ needInsert.setResourcetype("设备");
|
|
|
+ needInsert.setResourceid(data.getEquId());
|
|
|
+ apsProcessOperationEquService.save(needInsert);
|
|
|
+ ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
|
|
|
+ needUpdateProcess.setId(currentProcessOperationDo.getId());
|
|
|
+ canChooseDeviceIdList.add(data.getEquId());
|
|
|
+ needUpdateProcess.setCanchoosedeviceid(String.join(",", canChooseDeviceIdList));
|
|
|
+ String chooseEqu = currentProcessOperationDo.getChooseequ();
|
|
|
+ LinkedList<String> chooseEquList = new LinkedList<>(Arrays.asList(chooseEqu.split(",")));
|
|
|
+ chooseEquList.add(data.getEquName());
|
|
|
+ needUpdateProcess.setChooseequ(String.join(",", chooseEquList));
|
|
|
+ apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
+ }
|
|
|
apsProcessOperationProcessEquService.updateById(needUpdate);
|
|
|
}
|
|
|
|
|
@@ -2369,11 +2448,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
public R scheduling(ChangingScheduleVo req) {
|
|
|
// ApsUtils.checkScheduling(null);
|
|
|
|
|
|
+ SysUserVo currentUser = CXCommonUtils.getCurrentUser();
|
|
|
Date processingTime = req.getProcessingTime();
|
|
|
if (processingTime.before(DateUtil.date())) {
|
|
|
return R.error("开始时间必须大于当前时间");
|
|
|
}
|
|
|
|
|
|
+ String rollerType = "";
|
|
|
+ if (req.getRollerId() != null) {
|
|
|
+ ApsRollerTypeDo rollerTypeDo = apsRollerTypeService.getById(req.getRollerId());
|
|
|
+ rollerType = rollerTypeDo.getRollertype();
|
|
|
+ }
|
|
|
+
|
|
|
//作业明细集合
|
|
|
List<String> processEquIdList = req.getProcessEquIdList();
|
|
|
List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquService.listByIds(processEquIdList).stream().collect(Collectors.toList());
|
|
@@ -2396,6 +2482,21 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
needUpdate.setId(apsProcessOperationProcessEquDo.getId());
|
|
|
needUpdate.setProcessdeviceid(req.getEquId());
|
|
|
needUpdate.setProcessdevice(req.getEquName());
|
|
|
+ //作业详情
|
|
|
+ ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
|
|
|
+ //可选设备
|
|
|
+ String canchoosedeviceid = apsProcessOperationDo.getCanchoosedeviceid();
|
|
|
+ LinkedList<String> canChooseDeviceIdList = new LinkedList<>(Arrays.asList(canchoosedeviceid.split(",")));
|
|
|
+ ApsProcessOperationEquDo needInsert = new ApsProcessOperationEquDo();
|
|
|
+ if (!canChooseDeviceIdList.contains(req.getEquId())) {
|
|
|
+ needInsert.setId(SecurityUtil.getUUID());
|
|
|
+ needInsert.setTenantid(CXCommonUtils.getCurrentUserFactoryId(currentUser));
|
|
|
+ needInsert.setBlankid(apsProcessOperationDo.getBlankid());
|
|
|
+ needInsert.setMainid(apsProcessOperationDo.getId());
|
|
|
+ needInsert.setResourcetype("设备");
|
|
|
+ needInsert.setResourceid(req.getEquId());
|
|
|
+ }
|
|
|
+
|
|
|
if (ObjectUtil.isNotEmpty(req.getIsZhaji()) && ObjectUtil.isNotEmpty(req.getOldDeviceId())) {
|
|
|
//如果是轧机工序类别,并且(加工设备换了,或者加工设备没换并且辊类型不为空),则辊类型=所选辊类型
|
|
|
if (req.getIsZhaji()) {
|
|
@@ -2403,10 +2504,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
if (req.getOldDeviceId().equals(req.getEquId())) {
|
|
|
if (ObjectUtil.isNotEmpty(req.getRollerId())) {
|
|
|
needUpdate.setRollerid(req.getRollerId());
|
|
|
+ needInsert.setRollerid(req.getRollerId());
|
|
|
+ needInsert.setRollertype(rollerType);
|
|
|
}
|
|
|
} else {
|
|
|
if (ObjectUtil.isNotEmpty(req.getRollerId())) {
|
|
|
needUpdate.setRollerid(req.getRollerId());
|
|
|
+ needInsert.setRollerid(req.getRollerId());
|
|
|
+ needInsert.setRollertype(rollerType);
|
|
|
} else {
|
|
|
throw new CustomException("换设备后轧机工序必须选择辊类型");
|
|
|
}
|
|
@@ -2421,6 +2526,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
nextStartDate = needUpdate.getPlanenddate();
|
|
|
// needUpdateList.add(needUpdate);
|
|
|
apsProcessOperationProcessEquService.updateById(needUpdate);
|
|
|
+ if (StringUtils.isNotBlank(needInsert.getId())) {
|
|
|
+ apsProcessOperationEquService.save(needInsert);
|
|
|
+ ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
|
|
|
+ needUpdateProcess.setId(apsProcessOperationDo.getId());
|
|
|
+ canChooseDeviceIdList.add(req.getEquId());
|
|
|
+ needUpdateProcess.setCanchoosedeviceid(String.join(",", canChooseDeviceIdList));
|
|
|
+ String chooseEqu = apsProcessOperationDo.getChooseequ();
|
|
|
+ LinkedList<String> chooseEquList = new LinkedList<>(Arrays.asList(chooseEqu.split(",")));
|
|
|
+ chooseEquList.add(req.getEquName());
|
|
|
+ needUpdateProcess.setChooseequ(String.join(",", chooseEquList));
|
|
|
+ apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
+ }
|
|
|
apsProcessOperationProcessEquDo.setProcessdeviceid(needUpdate.getProcessdeviceid());
|
|
|
apsProcessOperationProcessEquDo.setProcessdevice(needUpdate.getProcessdevice());
|
|
|
apsProcessOperationProcessEquDo.setRollerid(needUpdate.getRollerid());
|