Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

fangpy 1 yıl önce
ebeveyn
işleme
5d3b450353

+ 4 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsCraftRouteService.java

@@ -2,10 +2,14 @@ package com.rongwei.bscommon.sys.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwei.bsentity.domain.ApsCraftRouteDo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
 
 /**
  *
  */
 public interface ApsCraftRouteService extends IService<ApsCraftRouteDo> {
 
+    R copyCraftRoute(Map<String, Object> params);
 }

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

@@ -1,12 +1,33 @@
 package com.rongwei.bscommon.sys.service.impl;
 
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.ApsCraftRouteDao;
+import com.rongwei.bscommon.sys.service.ApsCraftRouteOutMaterRequestService;
 import com.rongwei.bscommon.sys.service.ApsCraftRouteService;
+import com.rongwei.bscommon.sys.service.ApsCraftRouteStepEquService;
+import com.rongwei.bscommon.sys.service.ApsCraftRouteStepService;
 import com.rongwei.bsentity.domain.ApsCraftRouteDo;
+import com.rongwei.bsentity.domain.ApsCraftRouteOutMaterRequestDo;
+import com.rongwei.bsentity.domain.ApsCraftRouteStepDo;
+import com.rongwei.bsentity.domain.ApsCraftRouteStepEquDo;
+import com.rongwei.bsentity.vo.PreviousProcessVo;
+import com.rongwei.commonservice.serial.service.impl.SysSerialNumberServiceImpl;
+import com.rongwei.commonservice.service.SysMindMappingService;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.rwcommonentity.commonservers.domain.SysMindMappingDo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  *
  */
@@ -14,6 +35,214 @@ import org.springframework.stereotype.Service;
 public class ApsCraftRouteServiceImpl extends ServiceImpl<ApsCraftRouteDao, ApsCraftRouteDo>
         implements ApsCraftRouteService {
 
+    @Autowired
+    private ApsCraftRouteService apsCraftRouteService;
+
+    @Autowired
+    private ApsCraftRouteStepService apsCraftRouteStepService;
+
+    @Autowired
+    private ApsCraftRouteOutMaterRequestService apsCraftRouteOutMaterRequestService;
+
+    @Autowired
+    private ApsCraftRouteStepEquService apsCraftRouteStepEquService;
+
+    @Autowired
+    SysMindMappingService sysMindMappingService;
+
+    @Autowired
+    private SysSerialNumberServiceImpl sysSerialNumberService;
+
+    /*
+    复制工艺路线
+     */
+    @Override
+    public R copyCraftRoute(Map<String, Object> params) {
+        String craftrouteid = params.get("CRAFTROUTEID").toString();
+        String newRouteId = SecurityUtil.getUUID();
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+        LocalDateTime now = LocalDateTime.now();
+        //流水号
+        SysSerialVo sysSerialVo = new SysSerialVo();
+        sysSerialVo.setRuleTemplateStr("GL@{date:yyyyMMdd}@{serialNumber:#0000}");
+        sysSerialVo.setModulecode("aps_craft_route_ROUTENUM");
+        sysSerialVo.setResetrule("date:yyyyMMdd");
+        sysSerialVo.setIfautomaticreset("y");
+
+        //原工艺路线-->新工艺路线
+        ApsCraftRouteDo newCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
+        newCraftRouteDo.setId(newRouteId);
+        newCraftRouteDo.setRoutename(newCraftRouteDo.getRoutename() + "-" + now.format(dateTimeFormatter));
+        newCraftRouteDo.setRoutenum(sysSerialNumberService.getCodeByTemplate(sysSerialVo));
+        newCraftRouteDo.setRoption("复制");
+
+        //工艺路线对应的步骤信息
+        Map<String, Object> map = new HashMap<>();
+        map.put("CRAFTROUTEID", craftrouteid);
+        List<ApsCraftRouteStepDo> apsCraftRouteStepDoList = apsCraftRouteStepService.listByMap(map).stream().collect(Collectors.toList());
+        Collections.sort(apsCraftRouteStepDoList, Comparator.comparingInt(ApsCraftRouteStepDo::getLevel));
+        Collections.sort(apsCraftRouteStepDoList, Comparator.comparing(ApsCraftRouteStepDo::getCreatedate));
+
+        //工艺路线对应的输出
+        List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDoList = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
+
+        //工艺路线对应的可选设备
+        List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDoList = apsCraftRouteStepEquService.listByMap(map).stream().collect(Collectors.toList());
+
+        //工艺路线对应的思维导图
+        List<SysMindMappingDo> sysMindMappingDos = new ArrayList<>();
+        Map<String, Object> mindMap = new HashMap<>();
+        mindMap.put("BSID", craftrouteid);
+        List<SysMindMappingDo> sysMindMappingDoList = sysMindMappingService.listByMap(mindMap).stream().collect(Collectors.toList());
+        Collections.sort(sysMindMappingDoList, Comparator.comparing(SysMindMappingDo::getTreecode, Comparator.nullsFirst(Comparator.naturalOrder())));
+        Collections.sort(sysMindMappingDoList, Comparator.comparing(SysMindMappingDo::getCreatedate));
+        if (sysMindMappingDoList.size() == 0) {
+            return R.error("工艺路线图不存在");
+        }
+        SysMindMappingDo sysMindMappingDo = BeanUtil.toBean(sysMindMappingDoList.get(0), SysMindMappingDo.class);
+        String mindStrId = SecurityUtil.getUUID();
+        sysMindMappingDo.setId(mindStrId);
+        sysMindMappingDo.setBsid(newRouteId);
+        sysMindMappingDos.add(sysMindMappingDo);
+
+        List<String> overRouteStepIds = new ArrayList<>();
+        List<PreviousProcessVo> newProcessIds = new ArrayList<>();//前道步骤信息
+        List<ApsCraftRouteStepDo> apsCraftRouteStepDos = new ArrayList<>();//新的步骤
+        List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDos = new ArrayList<>();//新的输出
+        List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = new ArrayList<>();//新的可选设备
+        for (ApsCraftRouteStepDo apsCraftRouteStepDo : apsCraftRouteStepDoList) {
+            if (overRouteStepIds.contains(apsCraftRouteStepDo.getId())) {
+                continue;
+            } else {
+                String stepId;
+                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 = 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 bool2 = apsCraftRouteStepService.saveOrUpdateBatch(apsCraftRouteStepDos);
+        boolean bool3 = apsCraftRouteOutMaterRequestService.saveOrUpdateBatch(apsCraftRouteOutMaterRequestDos);
+        boolean bool4 = apsCraftRouteStepEquService.saveOrUpdateBatch(apsCraftRouteStepEquDos);
+        boolean bool5 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDos);
+
+        if (bool1 && bool2 && bool3 && bool4 && bool5) {
+            return R.ok(newRouteId);
+        } else {
+            return R.error("复制工艺路线失败");
+        }
+    }
 }
 
 

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

@@ -137,6 +137,12 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             Collections.sort(apsCraftRouteStepDoList, Comparator.comparingInt(ApsCraftRouteStepDo::getLevel));
             Collections.sort(apsCraftRouteStepDoList, Comparator.comparing(ApsCraftRouteStepDo::getCreatedate));
 
+            //工艺路线对应的输出
+            List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDoList = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
+
+            //工艺路线对应的可选设备
+            List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDoList = apsCraftRouteStepEquService.listByMap(map).stream().collect(Collectors.toList());
+
             //工艺路线对应的思维导图
             List<SysMindMappingDo> sysMindMappingDos = new ArrayList<>();
             Map<String, Object> mindMap = new HashMap<>();
@@ -226,8 +232,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             previousProcessVo.setPlanprocessrall(apsProcessOperationDo.getPlanprocessrall());
 
                             //本道工序的输出
-                            map.put("CRAFTSTEPID", apsCraftRouteStepDo1.getId());
-                            List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDo = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
+                            List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDo = apsCraftRouteOutMaterRequestDoList.stream().filter(omd -> apsCraftRouteStepDo1.getId().equals(omd.getCraftstepid())).collect(Collectors.toList());
                             if (apsCraftRouteOutMaterRequestDo.size() == 0) {
                                 return R.error("工艺步骤" + apsCraftRouteStepDo1.getProcessname() + "没输出");
                             }
@@ -292,7 +297,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
 
                             //本道工序的可选设备
-                            List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = apsCraftRouteStepEquService.listByMap(map).stream().collect(Collectors.toList());
+                            List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = apsCraftRouteStepEquDoList.stream().filter(crse -> apsCraftRouteStepDo1.getId().equals(crse.getCraftstepid())).collect(Collectors.toList());
                             List<String> equIdList = new ArrayList<>();//设备
                             List<String> equGroupIdList = new ArrayList<>();//资源组
                             for (ApsCraftRouteStepEquDo apsCraftRouteStepEquDo : apsCraftRouteStepEquDos) {
@@ -320,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"));
@@ -365,8 +370,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         previousProcessVo.setPlanprocessrall(blanckdata.getInt("ROLLNUM"));
 
                         //本道工序的输出
-                        map.put("CRAFTSTEPID", apsCraftRouteStepDo.getId());
-                        List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDo = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
+                        List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDo = apsCraftRouteOutMaterRequestDoList.stream().filter(omd -> apsCraftRouteStepDo.getId().equals(omd.getCraftstepid())).collect(Collectors.toList());
                         if (apsCraftRouteOutMaterRequestDo.size() == 0) {
                             return R.error("工艺步骤" + apsCraftRouteStepDo.getProcessname() + "没输出");
                         }
@@ -431,7 +435,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         previousProcessVo.setApsProcessOperationOutMaterDo(apsProcessOperationOutMaterDo);
 
                         //本道工序的可选设备
-                        List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = apsCraftRouteStepEquService.listByMap(map).stream().collect(Collectors.toList());
+                        List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = apsCraftRouteStepEquDoList.stream().filter(crse -> apsCraftRouteStepDo.getId().equals(crse.getCraftstepid())).collect(Collectors.toList());
                         List<String> equIdList = new ArrayList<>();//设备
                         List<String> equGroupIdList = new ArrayList<>();//资源组
                         for (ApsCraftRouteStepEquDo apsCraftRouteStepEquDo : apsCraftRouteStepEquDos) {
@@ -459,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"));
@@ -587,13 +591,17 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         List<ApsProcessOperationOutMaterDo> operationOutMaterDos = new ArrayList<>();//递归的数据源
         try {
 //            List<ApsProcessOperationDo> processOperationDos = apsProcessOperationDao.getProcessOperation(apsProcessOperationOutMaterDoList.get(0).getBlankid());
+            //该坯料计划所有的工序及输出
+            Map<String, Object> map = new HashMap<>();
+            map.put("BLANKID", apsProcessOperationOutMaterDoList.get(0).getBlankid());
+            List<ApsProcessOperationDo> processOperationDoList = apsProcessOperationService.listByMap(map).stream().collect(Collectors.toList());
+            List<ApsProcessOperationOutMaterDo> processOperationOutMaterDoList = apsProcessOperationOutMaterService.listByMap(map).stream().collect(Collectors.toList());
+
             List<ApsProcessOperationDo> apsProcessOperationDoList = new ArrayList<>();
             List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoNewList = new ArrayList<>();
             for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDoList) {
                 //这个输出的所有下道工序
-                Map<String, Object> map = new HashMap<>();
-                map.put("PLANINPUTID", apsProcessOperationOutMaterDo.getId());
-                List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationService.listByMap(map).stream().collect(Collectors.toList());
+                List<ApsProcessOperationDo> apsProcessOperationDos = processOperationDoList.stream().filter(apo -> apsProcessOperationOutMaterDo.getId().equals(apo.getPlaninputid())).collect(Collectors.toList());
                 for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationDos) {
                     //更新输入
                     apsProcessOperationDo.setProducttypeid(apsProcessOperationOutMaterDo.getProducttypeid());
@@ -617,9 +625,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     apsProcessOperationDo.setPlaninput(meterInput + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), ""));
 
                     //输出
-                    Map<String, Object> outmap = new HashMap<>();
-                    outmap.put("MAINID", apsProcessOperationDo.getId());
-                    List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList1 = apsProcessOperationOutMaterService.listByMap(outmap).stream().collect(Collectors.toList());
+                    List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList1 = processOperationOutMaterDoList.stream().filter(apoom -> apsProcessOperationDo.getId().equals(apoom.getMainid())).collect(Collectors.toList());
                     List<String> planoutputList = new ArrayList<>();
                     for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo1 : apsProcessOperationOutMaterDoList1) {
                         if (StringUtils.isBlank(apsProcessOperationOutMaterDo1.getProducttypeid())) {

+ 18 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsRouteController.java

@@ -1,6 +1,7 @@
 package com.rongwei.bsserver.controller;
 
 
+import com.rongwei.bscommon.sys.service.ApsCraftRouteService;
 import com.rongwei.bscommon.sys.service.ApsCraftStepService;
 import com.rongwei.bsentity.vo.UpdateApsRouteAboutVo;
 import com.rongwei.rwcommon.base.R;
@@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author xh
@@ -24,6 +26,9 @@ public class ApsRouteController {
     @Autowired
     private ApsCraftStepService apsCraftStepService;
 
+    @Autowired
+    private ApsCraftRouteService apsCraftRouteService;
+
     @PostMapping("/update/about/data")
     public R update(@RequestBody List<UpdateApsRouteAboutVo> updateApsRouteAboutVos,
                     @RequestParam(name = "routeId",required = true)String routeId) {
@@ -31,5 +36,18 @@ public class ApsRouteController {
         return R.ok();
     }
 
+    /*
+    复制工艺路线
+     */
+    @PostMapping("/copyCraftRoute")
+    public R copyCraftRoute(@RequestBody Map<String, Object> params) {
+        try {
+            log.info("复制工艺路线;参数为:{}", params);
+            return apsCraftRouteService.copyCraftRoute(params);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("复制工艺路线失败");
+        }
+    }
 }