Explorar el Código

撤销申请前判断是否处理过

fulonglong hace 2 años
padre
commit
1d7d2c1745

+ 9 - 3
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcinstServiceImpl.java

@@ -1,6 +1,7 @@
 package com.jpsoft.shinestar.modules.workflow.service.impl;
 
 import java.util.*;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
 
 import com.jpsoft.shinestar.config.WxConfig;
@@ -263,13 +264,18 @@ public class ProcinstServiceImpl implements ProcinstService {
 		if (procinst == null){
 			throw new Exception("参数错误");
 		}
-		ProcinstActivity procinstActivity = procinstActivityService.findProcinstIdAndStatus(procinst.getId(),"1");
 
-		if (!"0".equals(procinstActivity.getStatus())){
-			throw new Exception("已处理不可撤销");
+		List<ProcinstActivity> list = procinstActivityService.findByProcinstId(procinst.getId());
+
+		//过滤出已处理的记录
+		List<ProcinstActivity> temp = list.stream().filter(p -> !"0".equals(p.getAction())).collect(Collectors.toList());
+
+		if (temp.size()>0){
+			throw new Exception("已存在处理过的记录,不可撤销");
 		}
 
 
+		ProcinstActivity procinstActivity = procinstActivityService.findProcinstIdAndStatus(procinst.getId(),"1");
 		if (procinstActivity != null){
 			procinstActivity.setStatus("0");
 			procinstActivityService.update(procinstActivity);