|
@@ -579,6 +579,194 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ 选择历史工艺路线后续操作
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public R chooseHistoryRoute(Map<String, Object> params) {
|
|
|
|
+ String oldblankid = params.get("OLDBLANKID").toString();
|
|
|
|
+ String newblankid = params.get("NEWBLANKID").toString();
|
|
|
|
+ String craftrouteid = params.get("CRAFTROUTEID").toString();
|
|
|
|
+
|
|
|
|
+ //先清空之前的相关数据
|
|
|
|
+ Map<String, Object> blanckMap = new HashMap<>();
|
|
|
|
+ blanckMap.put("BLANKID", oldblankid);
|
|
|
|
+ clearCraftRoute(blanckMap);
|
|
|
|
+
|
|
|
|
+ //选择新的坯料计划的工序作业、可选设备、输出、思维导图
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.put("BLANKID", newblankid);
|
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
|
+ Collections.sort(apsProcessOperationDos, Comparator.comparingInt(ApsProcessOperationDo::getLevel));
|
|
|
|
+ Collections.sort(apsProcessOperationDos, Comparator.comparing(ApsProcessOperationDo::getCreatedate));
|
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos = apsProcessOperationOutMaterService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
|
+ List<ApsProcessOperationEquDo> apsProcessOperationEquDos = apsProcessOperationEquService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //要新建的实体集合
|
|
|
|
+ List<String> overProcessIds = new ArrayList<>();
|
|
|
|
+ List<PreviousProcessVo> newProcessIds = new ArrayList<>();//前道工序信息
|
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationDoList = new ArrayList<>();
|
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList = new ArrayList<>();
|
|
|
|
+ List<ApsProcessOperationEquDo> apsProcessOperationEquDoList = new ArrayList<>();
|
|
|
|
+ List<SysMindMappingDo> sysMindMappingDoList = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ Map<String, Object> mindMap = new HashMap<>();
|
|
|
|
+ mindMap.put("BSID", newblankid);
|
|
|
|
+ List<SysMindMappingDo> sysMindMappingDos = sysMindMappingService.listByMap(mindMap).stream().collect(Collectors.toList());
|
|
|
|
+ Collections.sort(sysMindMappingDos, Comparator.comparing(SysMindMappingDo::getTreecode, Comparator.nullsFirst(Comparator.naturalOrder())));
|
|
|
|
+ if (sysMindMappingDos.size() == 0) {
|
|
|
|
+ return R.error("工艺路线思维导图不存在");
|
|
|
|
+ }
|
|
|
|
+ SysMindMappingDo sysMindMappingDo = BeanUtil.toBean(sysMindMappingDos.get(0), SysMindMappingDo.class);
|
|
|
|
+ String mindStrId = SecurityUtil.getUUID();
|
|
|
|
+ sysMindMappingDo.setId(mindStrId);
|
|
|
|
+ sysMindMappingDo.setBsid(oldblankid);
|
|
|
|
+ sysMindMappingDo.setBstable("aps_process_operation");
|
|
|
|
+ sysMindMappingDoList.add(sysMindMappingDo);
|
|
|
|
+
|
|
|
|
+ for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationDos) {
|
|
|
|
+ if (overProcessIds.contains(apsProcessOperationDo.getId())) {
|
|
|
|
+ continue;
|
|
|
|
+ } else {
|
|
|
|
+ String processId;
|
|
|
|
+ ApsProcessOperationDo processOperationDo;
|
|
|
|
+ PreviousProcessVo previousProcessVo;
|
|
|
|
+ if (StringUtils.isNotBlank(apsProcessOperationDo.getPreviousprocessid())) {
|
|
|
|
+ //后面工序
|
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationDos1 = apsProcessOperationDos.stream().filter(acrs -> apsProcessOperationDo.getPreviousprocessid().equals(acrs.getPreviousprocessid())).collect(Collectors.toList());
|
|
|
|
+ Collections.sort(apsProcessOperationDos1, Comparator.comparing(ApsProcessOperationDo::getCreatedate));
|
|
|
|
+ for (ApsProcessOperationDo apsProcessOperationDo1 : apsProcessOperationDos1) {
|
|
|
|
+ previousProcessVo = new PreviousProcessVo();
|
|
|
|
+ processId = SecurityUtil.getUUID();
|
|
|
|
+ processOperationDo = BeanUtil.toBean(apsProcessOperationDo1, ApsProcessOperationDo.class);
|
|
|
|
+ processOperationDo.setId(processId);
|
|
|
|
+ processOperationDo.setBlankid(oldblankid);
|
|
|
|
+ processOperationDo.setNextprocessid(null);
|
|
|
|
+
|
|
|
|
+ //前道工序输出
|
|
|
|
+ List<PreviousProcessVo> processVo = newProcessIds.stream().filter(pro -> pro.getPreviousstepid().equals(apsProcessOperationDo1.getPreviousprocessid())).collect(Collectors.toList());
|
|
|
|
+ processOperationDo.setPreviousprocessid(processVo.get(0).getProcessId());
|
|
|
|
+
|
|
|
|
+ //更新前道工序的后道工序
|
|
|
|
+ ApsProcessOperationDo aDo = apsProcessOperationDoList.stream().filter(qtr -> processVo.get(0).getProcessId().equals(qtr.getId())).findAny().orElse(null);
|
|
|
|
+ if (StringUtils.isBlank(aDo.getNextprocessid())) {
|
|
|
|
+ aDo.setNextprocessid(processId);
|
|
|
|
+ } else {
|
|
|
|
+ aDo.setNextprocessid(aDo.getNextprocessid() + "," + processId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //本道工序信息
|
|
|
|
+ previousProcessVo.setProcessId(processId);
|
|
|
|
+ previousProcessVo.setPreviousstepid(apsProcessOperationDo1.getId());
|
|
|
|
+
|
|
|
|
+ //本道工序的输出
|
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos1 = apsProcessOperationOutMaterDos.stream().filter(omd -> apsProcessOperationDo1.getId().equals(omd.getMainid())).collect(Collectors.toList());
|
|
|
|
+ if (apsProcessOperationOutMaterDos1.size() == 0) {
|
|
|
|
+ return R.error("工艺步骤" + apsProcessOperationDo1.getProcessname() + "没输出");
|
|
|
|
+ }
|
|
|
|
+ for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDos1) {
|
|
|
|
+ ApsProcessOperationOutMaterDo processOperationOutMaterDo = BeanUtil.toBean(apsProcessOperationOutMaterDo, ApsProcessOperationOutMaterDo.class);
|
|
|
|
+ processOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ processOperationOutMaterDo.setMainid(processId);
|
|
|
|
+ processOperationOutMaterDo.setBlankid(oldblankid);
|
|
|
|
+ apsProcessOperationOutMaterDoList.add(processOperationOutMaterDo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //本道工序的可选设备
|
|
|
|
+ List<ApsProcessOperationEquDo> apsProcessOperationEquDos1 = apsProcessOperationEquDos.stream().filter(crse -> apsProcessOperationDo1.getId().equals(crse.getMainid())).collect(Collectors.toList());
|
|
|
|
+ for (ApsProcessOperationEquDo apsProcessOperationEquDo : apsProcessOperationEquDos1) {
|
|
|
|
+ ApsProcessOperationEquDo processOperationEquDo = BeanUtil.toBean(apsProcessOperationEquDo, ApsProcessOperationEquDo.class);
|
|
|
|
+ processOperationEquDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ processOperationEquDo.setMainid(processId);
|
|
|
|
+ processOperationEquDo.setBlankid(oldblankid);
|
|
|
|
+ apsProcessOperationEquDoList.add(processOperationEquDo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //本道工序思维导图
|
|
|
|
+ List<SysMindMappingDo> sysMindMappingDos1 = sysMindMappingDos.stream().filter(mind -> mind.getId().equals(apsProcessOperationDo1.getId())).collect(Collectors.toList());
|
|
|
|
+ SysMindMappingDo sysMindMappingDo1 = sysMindMappingDos1.get(0);
|
|
|
|
+ sysMindMappingDo1.setId(processId);
|
|
|
|
+ sysMindMappingDo1.setParentid(processVo.get(0).getProcessId());
|
|
|
|
+ sysMindMappingDo1.setBsid(oldblankid);
|
|
|
|
+ sysMindMappingDo1.setBstable("aps_process_operation");
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.putOpt("craftStepId", apsProcessOperationDo1.getId());
|
|
|
|
+ sysMindMappingDo1.setRoption(jsonObject.toString());//存工艺路线的工艺步骤ID
|
|
|
|
+ sysMindMappingDoList.add(sysMindMappingDo1);
|
|
|
|
+
|
|
|
|
+ newProcessIds.add(previousProcessVo);
|
|
|
|
+ apsProcessOperationDoList.add(processOperationDo);
|
|
|
|
+
|
|
|
|
+ overProcessIds.add(apsProcessOperationDo1.getId());
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ previousProcessVo = new PreviousProcessVo();
|
|
|
|
+ //首道工序
|
|
|
|
+ processId = SecurityUtil.getUUID();
|
|
|
|
+ processOperationDo = BeanUtil.toBean(apsProcessOperationDo, ApsProcessOperationDo.class);
|
|
|
|
+ processOperationDo.setId(processId);
|
|
|
|
+ processOperationDo.setBlankid(oldblankid);
|
|
|
|
+ processOperationDo.setNextprocessid(null);
|
|
|
|
+
|
|
|
|
+ //本道工序信息
|
|
|
|
+ previousProcessVo.setProcessId(processId);
|
|
|
|
+ previousProcessVo.setPreviousstepid(apsProcessOperationDo.getId());
|
|
|
|
+
|
|
|
|
+ //本道工序的输出
|
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos1 = apsProcessOperationOutMaterDos.stream().filter(omd -> apsProcessOperationDo.getId().equals(omd.getMainid())).collect(Collectors.toList());
|
|
|
|
+ if (apsProcessOperationOutMaterDos1.size() == 0) {
|
|
|
|
+ return R.error("工艺步骤" + apsProcessOperationDo.getProcessname() + "没输出");
|
|
|
|
+ }
|
|
|
|
+ for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDos1) {
|
|
|
|
+ ApsProcessOperationOutMaterDo processOperationOutMaterDo = BeanUtil.toBean(apsProcessOperationOutMaterDo, ApsProcessOperationOutMaterDo.class);
|
|
|
|
+ processOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ processOperationOutMaterDo.setMainid(processId);
|
|
|
|
+ processOperationOutMaterDo.setBlankid(oldblankid);
|
|
|
|
+ apsProcessOperationOutMaterDoList.add(processOperationOutMaterDo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //本道工序的可选设备
|
|
|
|
+ List<ApsProcessOperationEquDo> apsProcessOperationEquDos1 = apsProcessOperationEquDos.stream().filter(omd -> apsProcessOperationDo.getId().equals(omd.getMainid())).collect(Collectors.toList());
|
|
|
|
+ for (ApsProcessOperationEquDo apsProcessOperationEquDo : apsProcessOperationEquDos1) {
|
|
|
|
+ ApsProcessOperationEquDo processOperationEquDo = BeanUtil.toBean(apsProcessOperationEquDo, ApsProcessOperationEquDo.class);
|
|
|
|
+ processOperationEquDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ processOperationEquDo.setMainid(processId);
|
|
|
|
+ processOperationEquDo.setBlankid(oldblankid);
|
|
|
|
+ apsProcessOperationEquDoList.add(processOperationEquDo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //本道工序思维导图
|
|
|
|
+ List<SysMindMappingDo> sysMindMappingDos1 = sysMindMappingDos.stream().filter(mind -> mind.getId().equals(apsProcessOperationDo.getId())).collect(Collectors.toList());
|
|
|
|
+ SysMindMappingDo sysMindMappingDo1 = sysMindMappingDos1.get(0);
|
|
|
|
+ sysMindMappingDo1.setId(processId);
|
|
|
|
+ sysMindMappingDo1.setParentid(mindStrId);
|
|
|
|
+ sysMindMappingDo1.setBsid(oldblankid);
|
|
|
|
+ sysMindMappingDo1.setBstable("aps_process_operation");
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.putOpt("craftStepId", apsProcessOperationDo.getId());
|
|
|
|
+ sysMindMappingDo1.setRoption(jsonObject.toString());//存工艺路线的工艺步骤ID
|
|
|
|
+ sysMindMappingDoList.add(sysMindMappingDo1);
|
|
|
|
+
|
|
|
|
+ newProcessIds.add(previousProcessVo);
|
|
|
|
+ apsProcessOperationDoList.add(processOperationDo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ boolean bool1 = apsProcessOperationService.saveOrUpdateBatch(apsProcessOperationDoList);
|
|
|
|
+ boolean bool2 = apsProcessOperationOutMaterService.saveOrUpdateBatch(apsProcessOperationOutMaterDoList);
|
|
|
|
+ boolean bool3 = apsProcessOperationEquService.saveOrUpdateBatch(apsProcessOperationEquDoList);
|
|
|
|
+ boolean bool4 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDoList);
|
|
|
|
+ if (bool1 && bool2 && bool3 && bool4) {
|
|
|
|
+ //更新坯料计划的所选工艺路线
|
|
|
|
+ apsBlankOrderDao.upCraftrouteId(oldblankid, craftrouteid);
|
|
|
|
+ return R.ok();
|
|
|
|
+ } else {
|
|
|
|
+ return R.error();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/*
|
|
/*
|
|
清除工艺路线
|
|
清除工艺路线
|
|
*/
|
|
*/
|