浏览代码

依据岗位数据过滤

wy 2 年之前
父节点
当前提交
30a842bc37

+ 25 - 21
ibps-bpmn-root/modules/bpmn-biz/src/main/java/com/lc/ibps/bpmn/service/impl/BpmTaskActionServiceImpl.java

@@ -172,10 +172,13 @@ public class BpmTaskActionServiceImpl implements BpmTaskActionService{
 				StopWatchUtil.stopAndStartNewLocal(localId, step, "getByTaskId");
 				task=natTaskService.getByTaskId(bpmTask.getTaskId());//TODO 性能略低
 			}
-
-			//前置事件抛出
-			StopWatchUtil.stopAndStartNewLocal(localId, step, "publicDoNextEvent.prev");
-			AppUtil.publishEvent(getDoNextEvent(cmd, AopType.PREV));//TODO 性能很低
+			new Thread(() ->{
+				StopWatchUtil.stopAndStartNewLocal(localId, step, "publicDoNextEvent.prev");
+				AppUtil.publishEvent(getDoNextEvent(cmd, AopType.PREV));//TODO 性能很低
+			}).start();
+			//前置事件抛出 改异步
+			//StopWatchUtil.stopAndStartNewLocal(localId, step, "publicDoNextEvent.prev");
+			//AppUtil.publishEvent(getDoNextEvent(cmd, AopType.PREV));//TODO 性能很低
 
 			//构造会话数据
 			StopWatchUtil.stopAndStartNewLocal(localId, step, "buildTaskActionPluginSession");
@@ -188,8 +191,10 @@ public class BpmTaskActionServiceImpl implements BpmTaskActionService{
 			ITaskActionHandlerDefine def = (ITaskActionHandlerDefine)taskActionHandlerConfig.getTaskActionHandlerDef(taskCmd.getActionName());
 			//执行和返回
 			StopWatchUtil.stopAndStartNewLocal(localId, step, "execute");
-			boolean result = handler.execute(taskActionPluginSession,def);//TODO 性能很低
-
+			new Thread(() ->{
+				//boolean result =h handler.execute(taskActionPluginSession,def);
+				handler.execute(taskActionPluginSession,def);//TODO 性能很低
+			}).start();
 			//后置事件抛出
 			StopWatchUtil.stopAndStartNewLocal(localId, step, "publicDoNextEvent.post");
 			AppUtil.publishEvent(getDoNextEvent(cmd, AopType.POST));
@@ -198,22 +203,21 @@ public class BpmTaskActionServiceImpl implements BpmTaskActionService{
 			StopWatchUtil.stopAndStartNewLocal(localId, step, "clearTaskByInstId");
 			BpmnContextUtil.clearTaskByInstId(taskCmd.getInstId());
 
-			if(result) {
-				StopWatchUtil.stopAndStartNewLocal(localId, step, "updataTimes");
-				bpmCommonStatmentService.updateTimes(cmd.getApprovalOpinion(),cmd.getCurUser(),cmd.getActionName());
-				StopWatchUtil.stopAndStartNewLocal(localId, step, "getActionCmd.1");
-				ActionCmd finsActionCmd = BpmnContextUtil.getActionCmd(cmd.getInstId());
-				StopWatchUtil.stopAndStartNewLocal(localId, step, "getTransitVars.1");
-				Object rejectAfterExecutionId = finsActionCmd.getTransitVars("rejectAfterExecutionId");
-				if (rejectAfterExecutionId != null && StringUtil.isNotEmpty(rejectAfterExecutionId.toString())) {
-					// 调整Activiti的执行表数据
-					StopWatchUtil.stopAndStartNewLocal(localId, step, "multipleInstancesRejectAdjust");
-					BpmExecUtil.multipleInstancesRejectAdjust(rejectAfterExecutionId.toString());
-				}
-				return true;
+			//if(result) {
+			StopWatchUtil.stopAndStartNewLocal(localId, step, "updataTimes");
+			bpmCommonStatmentService.updateTimes(cmd.getApprovalOpinion(), cmd.getCurUser(), cmd.getActionName());
+			StopWatchUtil.stopAndStartNewLocal(localId, step, "getActionCmd.1");
+			ActionCmd finsActionCmd = BpmnContextUtil.getActionCmd(cmd.getInstId());
+			StopWatchUtil.stopAndStartNewLocal(localId, step, "getTransitVars.1");
+			Object rejectAfterExecutionId = finsActionCmd.getTransitVars("rejectAfterExecutionId");
+			if (rejectAfterExecutionId != null && StringUtil.isNotEmpty(rejectAfterExecutionId.toString())) {
+				// 调整Activiti的执行表数据
+				StopWatchUtil.stopAndStartNewLocal(localId, step, "multipleInstancesRejectAdjust");
+				BpmExecUtil.multipleInstancesRejectAdjust(rejectAfterExecutionId.toString());
 			}
-
-			throw new BaseException("任务办理失败");
+			return true;
+			//	}
+			//throw new BaseException("任务办理失败");
 		}
 		catch (Exception e) {
 			Throwable t = e.getCause();//org.activiti.engine.ActivitiException

+ 7 - 0
ibps-common-root/modules/org-biz/src/main/java/com/lc/ibps/org/party/repository/PartyEntityRepository.java

@@ -332,4 +332,11 @@ public interface PartyEntityRepository extends IRepository<String, PartyEntityPo
      * @return
      */
     public List<PartyEntityPo> findIdsByPath(List<String> ids, String partyType);
+
+	/**
+	 * 根据岗位id查询所有上下级
+	 * @param id
+	 * @return
+	 */
+	public  PartyEntityPo findPositionId(String id);
 }

+ 5 - 1
ibps-common-root/modules/org-biz/src/main/java/com/lc/ibps/org/party/repository/impl/PartyEntityRepositoryImpl.java

@@ -770,5 +770,9 @@ public class PartyEntityRepositoryImpl extends AbstractRepository<String, PartyE
         return findByKey("findByPath", "findIdsByPath", 
         		b().a("ids", ids).a("partyType", partyType).p());
     }
-    
+
+	@Override
+	public PartyEntityPo findPositionId(String id) {
+		return getByIdPartyType(id,"position");
+	}
 }

+ 1 - 2
ibps-component-root/modules/comp-querybuilder/src/main/java/com/lc/ibps/components/querybuilder/model/result/SqlQueryResult.java

@@ -105,9 +105,8 @@ public class SqlQueryResult extends AbstractResult {
         			}
         			value = str.toString();
         		}
-				if(sql.indexOf("FIND_IN_SET")==0){
 
-				}else {
+				if(index!=-1){
 					sql.replace(index, index + 1, value);
 				}
             }

+ 13 - 5
ibps-component-root/modules/comp-querybuilder/src/main/java/com/lc/ibps/components/querybuilder/support/parser/sql/FindInSetRuleParser.java

@@ -16,11 +16,19 @@ public class FindInSetRuleParser extends AbstractSqlRuleParser {
     public Operation parse(IRule rule, JsonRuleParser parser) {
         StringBuffer operate = new StringBuffer();
         List listUser = (List) rule.getValue();
-        for (int i=0;i<listUser.size(); i++) {
-            if(i==listUser.size()-1){
-                operate.append(" FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+")");
-            }else{
-                operate.append("FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+") or ");
+        if(listUser.size()==1){
+            operate.append("("+rule.getField() + " like '%" + listUser.get(1) +"%')");
+        }else{
+            for (int i=0;i<listUser.size(); i++) {
+                if(i==listUser.size()-1){
+                    // operate.append(" FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+")");
+                    operate.append(rule.getField() + " like '%" + listUser.get(i) +"%')");
+                }else if(i==0){
+                    operate.append("("+rule.getField() + " like '%" + listUser.get(i) +"%' or ");
+                    // operate.append("FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+") or ");
+                }else{
+                    operate.append(rule.getField() + " like '%" + listUser.get(i) +"%' or ");
+                }
             }
         }
         return new Operation(operate, rule.getValue());

+ 23 - 0
ibps-excessive-root/modules/platform-excessive/src/main/java/com/lc/ibps/platform/script/script/CommonScript.java

@@ -10,6 +10,7 @@ import java.util.UUID;
 
 import javax.annotation.Resource;
 
+import com.lc.ibps.org.vo.PartyEntityAttrVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -857,6 +858,28 @@ public class CommonScript extends BaseScript {
 		return result;
 	}
 
+	/**
+	 * 脚本获取用户的岗位ID 只能用于in 或者 not in 在。。之内和 不在。。之内
+	 * cscript.findPositionId(true/false)
+	 *
+	 * @param isMain
+	 *                   是否主岗位,true:是/false:所有岗位
+	 * @return List<String>
+	 */
+	public List<String> findPositionId() {
+		List<String> result = new ArrayList<String>();
+		List<String> ids = findCurrentUserPositionIds(false);
+		List<PartyEntity> list = PartyUtil.findPositionId(ids);
+		if (BeanUtils.isEmpty(list)) {
+			result.add("0"); // 标识不存在数据
+			return result;
+		}
+		for (PartyEntity partyEntity : list) {
+			result.add(partyEntity.getId());
+		}
+		return result;
+	}
+
 	/**
 	 * 脚本判断当前用户是否部门负责人 cscript.isOrgManager()
 	 * 

+ 17 - 1
ibps-excessive-root/modules/platform-excessive/src/main/java/com/lc/ibps/platform/script/utils/PartyUtil.java

@@ -1,7 +1,9 @@
 package com.lc.ibps.platform.script.utils;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import com.lc.ibps.api.base.model.PartyEntity;
 import com.lc.ibps.base.core.exception.BaseException;
 import com.lc.ibps.base.core.util.AppUtil;
 import com.lc.ibps.cloud.entity.APIResult;
@@ -14,6 +16,7 @@ import com.lc.ibps.org.party.persistence.entity.DefaultPartyRolePo;
 import com.lc.ibps.org.party.persistence.entity.PartyEmployeePo;
 import com.lc.ibps.org.party.persistence.entity.PartyEntityPo;
 import com.lc.ibps.org.party.persistence.entity.PartyPositionPo;
+import com.lc.ibps.org.vo.PartyEntityAttrVo;
 
 /**
  * 参与者请求帮助类
@@ -50,7 +53,20 @@ public class PartyUtil {
 			throw new BaseException(result.getCause());
 		}
 	}
-	
+
+
+	public static  List<PartyEntity> findPositionId(List<String> ids){
+		ArrayList<PartyEntity> list = new ArrayList<>();
+		for(int i=0;i<ids.size();i++){
+			PartyEntityPo entityPo = partyEntityService.findPositionId(ids.get(i));
+			list.add(entityPo);
+		}
+		return list;
+	}
+
+
+
+
 	/**
 	 * 
 	 * 获取用户的所有岗位

+ 6 - 1
ibps-provider-base-root/modules/provider-platform-api/src/main/java/com/lc/ibps/org/api/IPartyEntityService.java

@@ -67,7 +67,12 @@ public interface IPartyEntityService {
 	@RequestMapping(value = "/save", method = RequestMethod.POST)
 	public APIResult<Void> save(
 			@RequestBody(required = true) @Valid PartyEntityPo partyEntityPo) ;
-	
+
+	@RequestMapping(value = "/findPositionId", method = RequestMethod.POST)
+	public PartyEntityPo findPositionId(
+			@RequestBody(required = true)@Valid String id);
+
+
 	/**
 	 * 
 	 * 保存参与者扩展属性

+ 16 - 16
ibps-provider-root/modules/provider-bpmn/src/main/java/com/lc/ibps/bpmn/provider/BpmTaskProvider.java

@@ -2598,34 +2598,34 @@ public class BpmTaskProvider extends GenericProvider implements IBpmTaskService,
 	public APIResult<Void> agree(
 			@ApiParam(name = "agreeVo", value = "同意动作参数对象", required = true)
 			@RequestBody(required = true) BpmActionAgreeVo agreeVo) {
-//		try {w
+		try {
 //			//devncq 20220807
 //			//Thread.currentThread().sleep(3000);
-//			String str = RedisUtil.redisTemplateString.opsForValue().get("BpmTaskProvider:getFormData:"+agreeVo.getTaskId());w
-//			if(StringUtil.isNotEmpty(str)){w
+			String str = RedisUtil.redisTemplateString.opsForValue().get("BpmTaskProvider:getFormData:"+agreeVo.getTaskId());
+			if(StringUtil.isNotEmpty(str)){
 //
-//				com.alibaba.fastjson.JSONObject dataObj1 = com.alibaba.fastjson.JSON.parseObject(str);w
+				com.alibaba.fastjson.JSONObject dataObj1 = com.alibaba.fastjson.JSON.parseObject(str);
 //				//com.alibaba.fastjson.JSONObject dataObj2 = (com.alibaba.fastjson.JSONObject)dataObj1.clone();
 //				//String boDataStr = (String)dataObj1.get("boData");
 //				//Map<String, Object> boData =  com.alibaba.fastjson.JSON.parseObject(boDataStr);
-//				String dataStr =agreeVo.getData();w
+				String dataStr =agreeVo.getData();
 //				//Map<String, Object> data =  com.alibaba.fastjson.JSON.parseObject(dataStr);
 ////				logger.error("AbstractTaskListener dataStr:"+dataStr);
 //				//boData.putAll(data);
 //				//boDataStr =  com.alibaba.fastjson.JSON.toJSONString(boData);
-//				dataObj1.put("boData",dataStr);w
-//				String redisDataStr =  com.alibaba.fastjson.JSON.toJSONString(dataObj1);w
+				dataObj1.put("boData",dataStr);
+				String redisDataStr =  com.alibaba.fastjson.JSON.toJSONString(dataObj1);
 ////				logger.error("AbstractTaskListener redisDataStr:"+redisDataStr);
-//				if(StringUtil.isNotEmpty(redisDataStr)){w
-//					RedisUtil.redisTemplateString.opsForValue().set("BpmTaskProvider:getFormData:"+agreeVo.getTaskId(),redisDataStr,30, TimeUnit.DAYS);w
-//				}w
-//			}w
+				if(StringUtil.isNotEmpty(redisDataStr)){
+					RedisUtil.redisTemplateString.opsForValue().set("BpmTaskProvider:getFormData:"+agreeVo.getTaskId(),redisDataStr,30, TimeUnit.DAYS);
+				}
+			}
 //			//refreshFormData(saveVo.getTaskId(), null);
-//		} catch (Exception e) {w
-//			logger.error("AbstractTaskListener异常:",e);w
-//		} finally {w
-//w
-//		} w
+		} catch (Exception e) {
+			logger.error("AbstractTaskListener异常:",e);
+		} finally {
+
+		}
 		APIResult<Void> result = new APIResult<>();
 		IHandlerValidator<UniqueHandlerValidation> validator = null;
 		String localId = UniqueIdUtil.getId();

+ 10 - 1
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/org/provider/PartyEntityProvider.java

@@ -483,7 +483,16 @@ public class PartyEntityProvider extends GenericProvider implements IPartyEntity
 		return result;
 	}
 
-	@ApiOperation(value = "保存参与者扩展属性", notes = "保存参与者扩展属性", 
+	@Signature
+	@Override
+	public PartyEntityPo findPositionId(
+			@ApiParam(name = "partyEntityPo", value = "参与者对象", required = true)
+			@RequestBody(required = true)String id) {
+		PartyEntityPo po = partyEntityRepository.findPositionId(id);
+		return po;
+	}
+
+	@ApiOperation(value = "保存参与者扩展属性", notes = "保存参与者扩展属性",
 			extensions = {
 					@Extension(properties = {
 							@ExtensionProperty(name = "submitCtrl", value = StringPool.Y)