Jelajahi Sumber

产品管理

wangxiaoming 7 tahun lalu
induk
melakukan
bf2affd077

+ 139 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java

@@ -9,7 +9,9 @@ import com.iamberry.rst.service.pts.mapper.ProduceMapper;
 import com.iamberry.rst.util.ProduceNoUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 
 
@@ -65,18 +67,31 @@ public class ProduceServiceImpl implements ProduceService {
         return produceMapper.selectProcessList(produceProcess);
     }
 
+    //获取所有的节点操作
+    public List<ProcessNode> listProcessNode(ProcessNode processNode){
+        return produceMapper.listProcessNode(processNode);
+    }
+
     //添加产品
+    @Transactional
     public Integer saveProduce(Produce produce){
         produce.setProduceNo(ProduceNoUtil.getProduceNo());
         produce.setProduceStatus(1);
         int flag = produceMapper.saveProduce(produce);
         Integer produceId = produce.getProduceId(); // 获取产品主键
 
+        int sort = 0;   //专用排序字段
         for (int i=0; i<produce.getProcess().size();i++){
             produce.getProcess().get(i).setProduceId(produceId);    //产品id
             produce.getProcess().get(i).setProcessNo(ProduceNoUtil.getProcessNo(i));  //工序编号
             produce.getProcess().get(i).setProcessStatus(1);    //状态
-            produce.getProcess().get(i).setProcessSort(i);  //排序字段
+
+            if(produce.getProcess().get(i).getProcessType() == 2){      //修理工序的排序字段为99
+                produce.getProcess().get(i).setProcessSort(99);  //排序字段
+            }else{
+                produce.getProcess().get(i).setProcessSort(sort);  //排序字段
+                sort++;
+            }
 
             ProduceProcess produceProcess = produce.getProcess().get(i);
             this.saveProduceProcess(produceProcess);
@@ -99,11 +114,133 @@ public class ProduceServiceImpl implements ProduceService {
 
     //添加产品工序操作
     public Integer saveProcessNodeList(List<ProcessNode> processNodeList){
-        int flag = produceMapper.saveProcessNodeList(processNodeList);
+        int flag = 0;
+        if (processNodeList.size()>0)
+            flag = produceMapper.saveProcessNodeList(processNodeList);
+        return flag;
+    }
+
+    /**
+     * 修改产品
+     * @param produce
+     * @return
+     */
+    @Transactional
+    public Integer updateProduce(Produce produce,String delProcessIds,String delNodeIds){
+        //修改产品
+        int flag = produceMapper.updateProduce(produce);
+
+        //删除的工序
+        if (delProcessIds != null && !"".equals(delProcessIds)){
+            String delProcessId[] = delProcessIds.split(",");
+            this.delProcess(delProcessId);
+        }
+        //删除节点操作
+        if (delNodeIds != null && !"".equals(delNodeIds)){
+            String delNodeId[] = delNodeIds.split(",");
+            this.delNode(delNodeId);
+        }
+
+        Integer produceId = produce.getProduceId();
+
+        int sort = 0;   //专用排序字段
+
+        List<ProduceProcess> updateProcessList = new ArrayList<ProduceProcess>();
+        List<ProcessNode> updateNodeList = new ArrayList<ProcessNode>();
+        List<ProcessNode> addNodeList = new ArrayList<ProcessNode>();
+        for (int i=0; i<produce.getProcess().size();i++){
+
+            ProduceProcess produceProcess = produce.getProcess().get(i);
+            produceProcess.setProcessNo(ProduceNoUtil.getProcessNo(i));  //工序编号
+            if(produce.getProcess().get(i).getProcessType() == 2){      //修理工序的排序字段为99
+                produce.getProcess().get(i).setProcessSort(99);  //排序字段
+            }else{
+                produce.getProcess().get(i).setProcessSort(sort);  //排序字段
+                sort++;
+            }
+
+            // 新增的工序/操作的id值都为 0 ;
+            if(0 == produceProcess.getProcessId()){     //新增的节点
+                produce.getProcess().get(i).setProduceId(produceId);    //产品id
+                produce.getProcess().get(i).setProcessStatus(1);    //状态
+                this.saveProduceProcess(produceProcess);
+                Integer processId = produceProcess.getProcessId();  //获取工序主键
+                for(int j=0; j<produceProcess.getNodes().size();j++){
+                    produceProcess.getNodes().get(j).setProduceId(produceId);
+                    produceProcess.getNodes().get(j).setProcessId(processId);
+                    produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
+                    addNodeList.add(produceProcess.getNodes().get(j));
+                }
+            }else{      //修改节点
+                Integer processId = produceProcess.getProcessId();
+                updateProcessList.add(produceProcess);
+                for(int j=0; j<produceProcess.getNodes().size();j++){
+                    ProcessNode processNode = produceProcess.getNodes().get(j);
+                    if(0 == processNode.getNodeId()){       //新增节点操作1
+                        processNode.setProduceId(produceId);
+                        processNode.setProcessId(processId);
+                        processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
+                        addNodeList.add(processNode);
+                    }else{                              //修改节点操作1
+                        processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
+                        updateNodeList.add(processNode);
+                    }
+                }
+            }
+        }
+        this.saveProcessNodeList(addNodeList);      //添加节点操作
+        this.updateProcessNodeList(updateNodeList);     //修改节点操作
+        this.updateProcessList(updateProcessList);    //修改工序
         return flag;
     }
 
+    /**
+     * 删除工序
+     * @return
+     */
+    public Integer delProcess(String delProcess[]){
+        List<ProduceProcess> produceProcessesList = new ArrayList<ProduceProcess>();
+        for (String processId : delProcess){
+            ProduceProcess produceProcess = new ProduceProcess();
+            produceProcess.setProcessId(Integer.valueOf(processId));
+            produceProcess.setProcessStatus(0);
+            produceProcessesList.add(produceProcess);
+        }
+        Integer flag = this.updateProcessList(produceProcessesList);
+        return flag;
+    }
 
+    /**
+     * 删除节点操作
+     * @param delNodeId
+     * @return
+     */
+    public Integer delNode(String delNodeId[]){
+        Integer flag = produceMapper.delNode(delNodeId);
+        return flag;
+    }
+
+    /**
+     * 修改工序
+     * @return
+     */
+    public Integer updateProcessList(List<ProduceProcess> produceProcessesList){
+        Integer flag = 0;
+        if (produceProcessesList.size()>0)
+            flag = produceMapper.updateProcessList(produceProcessesList);
+        return flag;
+    }
+
+    /**
+     * 修改节点操作
+     * @return
+     */
+    public Integer updateProcessNodeList(List<ProcessNode> updateNodeList){
+        Integer flag = 0;
+        if (updateNodeList.size()>0)
+            flag = produceMapper.updateProcessNodeList(updateNodeList);
+        return flag;
+    }
 
 
     @Override