DLC 1 год назад
Родитель
Сommit
3eeb9b597c

+ 112 - 5
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsCraftRouteServiceImpl.java

@@ -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("复制工艺路线失败");
+        }
     }
 }
 

+ 2 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -325,7 +325,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
                             //本道工序思维导图
                             List<SysMindMappingDo> sysMindMappingDoList1 = sysMindMappingDoList.stream().filter(mind -> mind.getId().equals(apsCraftRouteStepDo1.getId())).collect(Collectors.toList());
-                            SysMindMappingDo sysMindMappingDo1 = BeanUtil.toBean(sysMindMappingDoList1.get(0), SysMindMappingDo.class);
+                            SysMindMappingDo sysMindMappingDo1 = sysMindMappingDoList1.get(0);
                             sysMindMappingDo1.setId(processId);
                             sysMindMappingDo1.setParentid(processVo.get(0).getProcessId());
                             sysMindMappingDo1.setBsid(blanckdata.getStr("ID"));
@@ -463,7 +463,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
                         //本道工序思维导图
                         List<SysMindMappingDo> sysMindMappingDoList1 = sysMindMappingDoList.stream().filter(mind -> mind.getId().equals(apsCraftRouteStepDo.getId())).collect(Collectors.toList());
-                        SysMindMappingDo sysMindMappingDo1 = BeanUtil.toBean(sysMindMappingDoList1.get(0), SysMindMappingDo.class);
+                        SysMindMappingDo sysMindMappingDo1 = sysMindMappingDoList1.get(0);
                         sysMindMappingDo1.setId(processId);
                         sysMindMappingDo1.setParentid(mindStrId);
                         sysMindMappingDo1.setBsid(blanckdata.getStr("ID"));