Browse Source

优化候选人

zhouhao 6 năm trước cách đây
mục cha
commit
31f10570d9

+ 1 - 0
hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/dimension/DefaultCandidateDimensionParser.java

@@ -46,6 +46,7 @@ public class DefaultCandidateDimensionParser implements CandidateDimensionParser
                                     .map(strategy -> strategy.parse(context, config))
                                     .filter(CollectionUtils::isNotEmpty)
                                     .flatMap(Collection::stream)
+                                    .filter(StringUtils::hasText)
                     ).collect(Collectors.toList());
 
             return (CandidateDimension) () -> list;

+ 6 - 1
hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/service/imp/BpmTaskServiceImpl.java

@@ -16,6 +16,8 @@ import org.activiti.engine.task.Task;
 import org.hswebframework.utils.StringUtils;
 import org.hswebframework.web.BusinessException;
 import org.hswebframework.web.NotFoundException;
+import org.hswebframework.web.authorization.Authentication;
+import org.hswebframework.web.authorization.User;
 import org.hswebframework.web.workflow.service.config.ProcessConfigurationService;
 import org.hswebframework.web.workflow.service.BpmActivityService;
 import org.hswebframework.web.workflow.service.BpmTaskService;
@@ -291,7 +293,10 @@ public class BpmTaskServiceImpl extends AbstractFlowableService implements BpmTa
                     .getCandidateInfo(task);
 
             for (CandidateInfo candidateInfo : candidateInfoList) {
-                taskService.addCandidateUser(task.getId(), candidateInfo.user().getUser().getId());
+                Authentication user = candidateInfo.user();
+                if (user != null) {
+                    taskService.addCandidateUser(task.getId(), user.getUser().getId());
+                }
             }
         } else {
             logger.warn("未能成功设置环节候选人,task:{}", task);

+ 4 - 4
hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/service/imp/ProcessConfigurationServiceImpl.java

@@ -92,12 +92,12 @@ public class ProcessConfigurationServiceImpl implements ProcessConfigurationServ
                                     Lazy.val(() -> new CandidateInfo() {
                                         @Override
                                         public Authentication user() {
-                                            return Lazy.val(() -> AuthenticationHolder.get(userId), Authentication.class);
+                                            return AuthenticationHolder.get(userId);
                                         }
 
                                         @Override
                                         public PersonnelAuthentication person() {
-                                            return Lazy.val(() -> PersonnelAuthenticationHolder.getByUserId(userId), PersonnelAuthentication.class);
+                                            return PersonnelAuthenticationHolder.getByUserId(userId);
                                         }
                                     }, CandidateInfo.class))
                             .collect(Collectors.toList());
@@ -156,12 +156,12 @@ public class ProcessConfigurationServiceImpl implements ProcessConfigurationServ
 
         @Override
         public void assertCanStartProcess(String userId, ProcessDefinition definition) {
-            throw new AccessDenyException("没有权限启动此流程:" + definition.getName() + "(" + definition.getId() + ")");
+           // throw new AccessDenyException("没有权限启动此流程:" + definition.getName() + "(" + definition.getId() + ")");
         }
 
         @Override
         public boolean canStartProcess(String userId, ProcessDefinition definition) {
-            return false;
+            return true;
         }
     }
 }

+ 0 - 1
hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/web/FlowableProcessController.java

@@ -192,7 +192,6 @@ public class FlowableProcessController {
         TaskQuery taskQuery = taskService.createTaskQuery();
 
         taskQuery.taskCandidateUser(authentication.getUser().getId());
-
         PagerResult<TaskInfo> result = QueryUtils.doQuery(taskQuery, query, TaskInfo::of);
 
         return ResponseMessage.ok(result);