|
@@ -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
|