Compare commits

..

No commits in common. 'f6a18396472bf30e45898e9b01933abe59ede9c8' and 'd5ff40103c2c83e67beabc0b2b8a63a26506e295' have entirely different histories.

@ -155,13 +155,7 @@ public interface IFlowTaskService {
* @param processInstanceId * @param processInstanceId
*/ */
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid); public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid);
/**
*
* @param userTask
* @param startUserId
* @return
*/
public List<String> getAssignee(UserTask userTask,String startUserId);
/** /**
* *
* *

@ -94,9 +94,8 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics(); MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
// 会签节点 // 会签节点
if (Objects.nonNull(multiInstance)) { if (Objects.nonNull(multiInstance)) {
List<String> loginnames = flowTaskService.getAssignee(userTask,userName); if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
if(null != loginnames && !loginnames.isEmpty()){ variables.put("persons",userTask.getCandidateUsers());
variables.put("persons",loginnames);
} }
} }
} }
@ -180,9 +179,8 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics(); MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
// 会签节点 // 会签节点
if (Objects.nonNull(multiInstance)) { if (Objects.nonNull(multiInstance)) {
List<String> loginnames = flowTaskService.getAssignee(userTask,userName); if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
if(null != loginnames && !loginnames.isEmpty()){ variables.put("persons",userTask.getCandidateUsers());
variables.put("persons",loginnames);
} }
} }
} }

@ -31,7 +31,6 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.dataobject.Category;
import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc; import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc;
import cn.jyjz.xiaoyao.oa.from.dataobject.Userdistionary;
import cn.jyjz.xiaoyao.oa.from.service.*; import cn.jyjz.xiaoyao.oa.from.service.*;
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
@ -117,8 +116,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
@Resource @Resource
private IOcrMsgService ocrMsgService; private IOcrMsgService ocrMsgService;
@Resource
private UserdistionaryService userdistionaryService;
@Override @Override
public void myTodoTaskList(PageUtils vo, HttpServletRequest request) { public void myTodoTaskList(PageUtils vo, HttpServletRequest request) {
@ -566,9 +564,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics(); MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
// 会签节点 // 会签节点
if (Objects.nonNull(multiInstance)) { if (Objects.nonNull(multiInstance)) {
List<String> loginnames = this.getAssignee(userTask,model.getCreateuser()); if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
if(null != loginnames && !loginnames.isEmpty()){ variables.put("persons",userTask.getCandidateUsers());
variables.put("persons",loginnames);
} }
} }
} }
@ -779,48 +776,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
return activeActivityIds; return activeActivityIds;
} }
/**
*
* @param userTask
* @param loginname
* @return
*/
public List<String> getAssignee(UserTask userTask,String loginname){
if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
//获取候选用户集合
List<String> loginnames = userTask.getCandidateUsers();
//顺序设置审批用户
return loginnames;
}else {
//得到候选组
List<String> candidateGroups = userTask.getCandidateGroups();
if(null != candidateGroups && !candidateGroups.isEmpty()){
List<User> listusers = new ArrayList<>();
for(String groupid:candidateGroups){
//排除不在同一个公司的人员
List<Userdistionary> userdistionaryList = userdistionaryService.selectListByCandidateid(groupid,loginname);
List<Long> listuserid = userdistionaryList.stream().map(Userdistionary::getUserid).collect(Collectors.toList());
if(null!= listuserid && !listuserid.isEmpty()){
listusers.addAll(this.userService.selectUserById(listuserid));
}
}
if(null != listusers && !listusers.isEmpty()){
List<String> loginnames = listusers.stream().map(User::getLoginname).collect(Collectors.toList());
return loginnames;
}
}
}
return null;
}
/** /**
* *
* *
@ -836,83 +792,40 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//记录审批人信息 //记录审批人信息
StringBuffer assignee = new StringBuffer(); StringBuffer assignee = new StringBuffer();
int taskIndex = 0;
for (Task task : taskList) { for (Task task : taskList) {
//传节点定义key获取当前节点 //传节点定义key获取当前节点
FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey()); FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey());
if (flowElement instanceof UserTask && StringUtils.isBlank(task.getAssignee())) { if (flowElement instanceof UserTask && StringUtils.isBlank(task.getAssignee())) {
UserTask userTask = (UserTask) flowElement; UserTask userTask = (UserTask) flowElement;
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics(); //如果审批不存在,需要在候选组中查询
// 会签节点 if (StringUtils.isBlank(userTask.getAssignee())) {
if (Objects.nonNull(multiInstance)) { //得到候选人
if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){ List<String> candidateUsers = userTask.getCandidateUsers();
//获取候选用户集合 if (null != candidateUsers && !candidateUsers.isEmpty()) {
List<String> loginnames = userTask.getCandidateUsers(); Random rand = new Random();
//顺序设置审批用户 taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size())));
taskService.setAssignee(task.getId(), loginnames.get(taskIndex));
}else {
//得到候选组
List<String> candidateGroups = userTask.getCandidateGroups();
if(null != candidateGroups && !candidateGroups.isEmpty()){
flowTaskCompleteVO = new FlowTaskCompleteVO();
flowTaskCompleteVO.setTaskId(task.getId());
List<User> listusers = new ArrayList<>();
for(String groupid:candidateGroups){
//获取发起人员信息
HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
//发起人员登录账号
String startUserId = hi.getStartUserId();
//排除不在同一个公司的人员
List<Userdistionary> userdistionaryList = userdistionaryService.selectListByCandidateid(groupid,startUserId);
List<Long> listuserid = userdistionaryList.stream().map(Userdistionary::getUserid).collect(Collectors.toList());
listusers.addAll(this.userService.selectUserById(listuserid));
}
if(null != listusers && !listusers.isEmpty()){
List<String> loginnames = listusers.stream().map(User::getLoginname).collect(Collectors.toList());
//顺序设置审批用户
taskService.setAssignee(task.getId(), loginnames.get(taskIndex));
}
}
} }
taskIndex++;
}else{ //得到候选组
//如果审批不存在,需要在候选组中查询 List<String> candidateGroups = userTask.getCandidateGroups();
if (StringUtils.isBlank(userTask.getAssignee())) { if (null != candidateGroups && !candidateGroups.isEmpty()) {
//得到候选人 String loginuser = null;
List<String> candidateUsers = userTask.getCandidateUsers(); for (String groupid : candidateGroups) {
if (null != candidateUsers && !candidateUsers.isEmpty()) { //获取发起人员信息
Random rand = new Random(); HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery()
taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size()))); .processInstanceId(processInstanceId)
} .singleResult();
//发起人员登录账号
//得到候选组 String startUserId = hi.getStartUserId();
List<String> candidateGroups = userTask.getCandidateGroups(); //通过候选组主键,查询审批人员信息,并自动拾取
if (null != candidateGroups && !candidateGroups.isEmpty()) { loginuser = candidateuserService.getClaimUser(startUserId, groupid, deptid);
String loginuser = null; if (StringUtils.isNotBlank(loginuser)) {
for (String groupid : candidateGroups) { taskService.claim(task.getId(), loginuser);
//获取发起人员信息
HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
//发起人员登录账号
String startUserId = hi.getStartUserId();
//通过候选组主键,查询审批人员信息,并自动拾取
loginuser = candidateuserService.getClaimUser(startUserId, groupid, deptid);
if (StringUtils.isNotBlank(loginuser)) {
taskService.claim(task.getId(), loginuser);
}
} }
} }
} }
} }

Loading…
Cancel
Save