|
@@ -74,6 +74,7 @@ public class ApsCraftRouteServiceImpl extends ServiceImpl<ApsCraftRouteDao, ApsC
|
|
|
newCraftRouteDo.setId(newRouteId);
|
|
|
newCraftRouteDo.setRoutename(newCraftRouteDo.getRoutename() + "-" + now.format(dateTimeFormatter));
|
|
|
newCraftRouteDo.setRoutenum(sysSerialNumberService.getCodeByTemplate(sysSerialVo));
|
|
|
+ newCraftRouteDo.setRoption("复制");
|
|
|
|
|
|
//工艺路线对应的步骤信息
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
@@ -114,27 +115,133 @@ public class ApsCraftRouteServiceImpl extends ServiceImpl<ApsCraftRouteDao, ApsC
|
|
|
continue;
|
|
|
} else {
|
|
|
String stepId;
|
|
|
- ApsCraftRouteStepDo craftRouteStepDo = apsCraftRouteStepDo;
|
|
|
+ ApsCraftRouteStepDo craftRouteStepDo;
|
|
|
PreviousProcessVo previousProcessVo;
|
|
|
if (StringUtils.isNotBlank(apsCraftRouteStepDo.getPreviousstepid())) {
|
|
|
//后面步骤
|
|
|
+ List<ApsCraftRouteStepDo> apsCraftRouteStepDoList1 = apsCraftRouteStepDoList.stream().filter(acrs -> apsCraftRouteStepDo.getPreviousstepid().equals(acrs.getPreviousstepid())).collect(Collectors.toList());
|
|
|
+ Collections.sort(apsCraftRouteStepDoList1, Comparator.comparing(ApsCraftRouteStepDo::getCreatedate));
|
|
|
+ for (ApsCraftRouteStepDo apsCraftRouteStepDo1 : apsCraftRouteStepDoList1) {
|
|
|
+ previousProcessVo = new PreviousProcessVo();
|
|
|
+ stepId = SecurityUtil.getUUID();
|
|
|
+ craftRouteStepDo = BeanUtil.toBean(apsCraftRouteStepDo1, ApsCraftRouteStepDo.class);
|
|
|
+
|
|
|
+ craftRouteStepDo.setId(stepId);
|
|
|
+ craftRouteStepDo.setCraftrouteid(newRouteId);
|
|
|
+ //前道步骤
|
|
|
+ List<PreviousProcessVo> processVo = newProcessIds.stream().filter(pro -> pro.getPreviousstepid().equals(apsCraftRouteStepDo1.getPreviousstepid())).collect(Collectors.toList());
|
|
|
+ //更新前道步骤的后道步骤
|
|
|
+ ApsCraftRouteStepDo aDo = apsCraftRouteStepDos.stream().filter(qtr -> processVo.get(0).getProcessId().equals(qtr.getId())).findAny().orElse(null);
|
|
|
+ aDo.setNextstepid(aDo.getNextstepid().replace(apsCraftRouteStepDo1.getId(), stepId));
|
|
|
+
|
|
|
+ craftRouteStepDo.setPreviousstepid(processVo.get(0).getProcessId());
|
|
|
+ craftRouteStepDo.setPreviousstepname(processVo.get(0).getProcessName());
|
|
|
+
|
|
|
+ //本道步骤信息
|
|
|
+ previousProcessVo.setProcessId(stepId);//新步骤ID
|
|
|
+ previousProcessVo.setProcessName(apsCraftRouteStepDo1.getProcessname());
|
|
|
+ previousProcessVo.setPreviousstepid(apsCraftRouteStepDo1.getId());//原步骤ID
|
|
|
+
|
|
|
+ //本道步骤的输出
|
|
|
+ List<ApsCraftRouteOutMaterRequestDo> craftRouteOutMaterRequestDos = apsCraftRouteOutMaterRequestDoList.stream().filter(omd -> apsCraftRouteStepDo1.getId().equals(omd.getCraftstepid())).collect(Collectors.toList());
|
|
|
+ if (craftRouteOutMaterRequestDos.size() == 0) {
|
|
|
+ return R.error("工艺步骤" + craftRouteStepDo.getProcessname() + "没输出");
|
|
|
+ }
|
|
|
+ for (ApsCraftRouteOutMaterRequestDo craftRouteOutMaterRequestDo : craftRouteOutMaterRequestDos) {
|
|
|
+ craftRouteOutMaterRequestDo.setId(SecurityUtil.getUUID());
|
|
|
+ craftRouteOutMaterRequestDo.setCraftrouteid(newRouteId);
|
|
|
+ craftRouteOutMaterRequestDo.setCraftstepid(stepId);
|
|
|
+
|
|
|
+ apsCraftRouteOutMaterRequestDos.add(craftRouteOutMaterRequestDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //本道步骤的可选设备
|
|
|
+ List<ApsCraftRouteStepEquDo> craftRouteStepEquDoList = apsCraftRouteStepEquDoList.stream().filter(crse -> apsCraftRouteStepDo1.getId().equals(crse.getCraftstepid())).collect(Collectors.toList());
|
|
|
+ for (ApsCraftRouteStepEquDo craftRouteStepEquDo : craftRouteStepEquDoList) {
|
|
|
+ craftRouteStepEquDo.setId(SecurityUtil.getUUID());
|
|
|
+ craftRouteStepEquDo.setCraftrouteid(newRouteId);
|
|
|
+ craftRouteStepEquDo.setCraftstepid(stepId);
|
|
|
+
|
|
|
+ apsCraftRouteStepEquDos.add(craftRouteStepEquDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //本道步骤思维导图
|
|
|
+ List<SysMindMappingDo> sysMindMappingDoList1 = sysMindMappingDoList.stream().filter(mind -> mind.getId().equals(apsCraftRouteStepDo1.getId())).collect(Collectors.toList());
|
|
|
+ SysMindMappingDo sysMindMappingDo1 = sysMindMappingDoList1.get(0);
|
|
|
+ sysMindMappingDo1.setId(stepId);
|
|
|
+ sysMindMappingDo1.setParentid(processVo.get(0).getProcessId());
|
|
|
+ sysMindMappingDo1.setBsid(newRouteId);
|
|
|
+ sysMindMappingDo1.setRoption(craftRouteStepDo.toString());//存新的步骤信息
|
|
|
+
|
|
|
+ sysMindMappingDos.add(sysMindMappingDo1);
|
|
|
+ newProcessIds.add(previousProcessVo);
|
|
|
+ apsCraftRouteStepDos.add(craftRouteStepDo);
|
|
|
+
|
|
|
+ overRouteStepIds.add(apsCraftRouteStepDo1.getId());
|
|
|
+ }
|
|
|
} else {
|
|
|
//首道步骤
|
|
|
previousProcessVo = new PreviousProcessVo();
|
|
|
stepId = SecurityUtil.getUUID();
|
|
|
- craftRouteStepDo.setId(stepId);
|
|
|
- craftRouteStepDo.setCraftrouteid(newRouteId);
|
|
|
+ craftRouteStepDo = BeanUtil.toBean(apsCraftRouteStepDo, ApsCraftRouteStepDo.class);
|
|
|
|
|
|
//本道步骤信息
|
|
|
previousProcessVo.setProcessId(stepId);//新步骤ID
|
|
|
+ previousProcessVo.setProcessName(apsCraftRouteStepDo.getProcessname());
|
|
|
previousProcessVo.setPreviousstepid(apsCraftRouteStepDo.getId());//原步骤ID
|
|
|
+
|
|
|
+ //本道步骤输出
|
|
|
+ List<ApsCraftRouteOutMaterRequestDo> craftRouteOutMaterRequestDos = apsCraftRouteOutMaterRequestDoList.stream().filter(omd -> apsCraftRouteStepDo.getId().equals(omd.getCraftstepid())).collect(Collectors.toList());
|
|
|
+ if (craftRouteOutMaterRequestDos.size() == 0) {
|
|
|
+ return R.error("工艺步骤" + apsCraftRouteStepDo.getProcessname() + "没输出");
|
|
|
+ }
|
|
|
+ for (ApsCraftRouteOutMaterRequestDo craftRouteOutMaterRequestDo : craftRouteOutMaterRequestDos) {
|
|
|
+ craftRouteOutMaterRequestDo.setId(SecurityUtil.getUUID());
|
|
|
+ craftRouteOutMaterRequestDo.setCraftrouteid(newRouteId);
|
|
|
+ craftRouteOutMaterRequestDo.setCraftstepid(stepId);
|
|
|
+
|
|
|
+ apsCraftRouteOutMaterRequestDos.add(craftRouteOutMaterRequestDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //本道步骤的可选设备
|
|
|
+ List<ApsCraftRouteStepEquDo> craftRouteStepEquDoList = apsCraftRouteStepEquDoList.stream().filter(crse -> apsCraftRouteStepDo.getId().equals(crse.getCraftstepid())).collect(Collectors.toList());
|
|
|
+ for (ApsCraftRouteStepEquDo craftRouteStepEquDo : craftRouteStepEquDoList) {
|
|
|
+ craftRouteStepEquDo.setId(SecurityUtil.getUUID());
|
|
|
+ craftRouteStepEquDo.setCraftrouteid(newRouteId);
|
|
|
+ craftRouteStepEquDo.setCraftstepid(stepId);
|
|
|
+
|
|
|
+ apsCraftRouteStepEquDos.add(craftRouteStepEquDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //本道步骤思维导图
|
|
|
+ List<SysMindMappingDo> sysMindMappingDoList1 = sysMindMappingDoList.stream().filter(mind -> mind.getId().equals(apsCraftRouteStepDo.getId())).collect(Collectors.toList());
|
|
|
+ SysMindMappingDo sysMindMappingDo1 = sysMindMappingDoList1.get(0);
|
|
|
+ sysMindMappingDo1.setId(stepId);
|
|
|
+ sysMindMappingDo1.setParentid(mindStrId);
|
|
|
+ sysMindMappingDo1.setBsid(newRouteId);
|
|
|
+ sysMindMappingDo1.setRoption(craftRouteStepDo.toString());//存新的步骤信息
|
|
|
+
|
|
|
+ craftRouteStepDo.setId(stepId);
|
|
|
+ craftRouteStepDo.setCraftrouteid(newRouteId);
|
|
|
+
|
|
|
+ sysMindMappingDos.add(sysMindMappingDo1);
|
|
|
+ newProcessIds.add(previousProcessVo);
|
|
|
+ apsCraftRouteStepDos.add(craftRouteStepDo);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// boolean bool1=apsCraftRouteService.save(newCraftRouteDo);
|
|
|
+ boolean bool1 = apsCraftRouteService.save(newCraftRouteDo);
|
|
|
+ boolean bool2 = apsCraftRouteStepService.saveOrUpdateBatch(apsCraftRouteStepDos);
|
|
|
+ boolean bool3 = apsCraftRouteOutMaterRequestService.saveOrUpdateBatch(apsCraftRouteOutMaterRequestDos);
|
|
|
+ boolean bool4 = apsCraftRouteStepEquService.saveOrUpdateBatch(apsCraftRouteStepEquDos);
|
|
|
+ boolean bool5 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDos);
|
|
|
|
|
|
- return R.ok(newRouteId);
|
|
|
+ if (bool1 && bool2 && bool3 && bool4 && bool5) {
|
|
|
+ return R.ok(newRouteId);
|
|
|
+ } else {
|
|
|
+ return R.error("复制工艺路线失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|