Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
dimengzhe 2 years ago
parent
commit
ce1051beb6
  1. 5
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java
  2. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.xml
  3. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java
  4. 3
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java
  5. 445
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  6. 1
      anrui-system-ui/src/components/flow/flowRecord.vue

5
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java

@ -5,9 +5,11 @@ import com.yxt.anrui.flowable.api.flow.FlowListVo;
import com.yxt.anrui.flowable.api.flow.FlowProcinst;
import com.yxt.anrui.flowable.api.flow.FlowSelectVo;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.flowable.engine.task.Comment;
import java.util.List;
import java.util.Map;
@ -30,4 +32,7 @@ public interface FlowableMapper extends BaseMapper<Flowable> {
List<FlowListVo> selectFlowList();
FlowSelectVo selectFlows(@Param("proDefId") String proDefId, @Param("proInsId") String proInsId);
FlowCommentDto selectComment(@Param("type") String type, @Param("taskId") String taskId, @Param("processInstanceId") String processInstanceId,@Param("id") String id);
}

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.xml

@ -32,6 +32,10 @@
FROM ACT_HI_PROCINST ahpi
where ahpi.PROC_DEF_ID_ = #{proDefId} and ahpi.PROC_INST_ID_ = #{proInsId}
</select>
<select id="selectComment" resultType="com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto">
select TYPE_ type,MESSAGE_ comment from act_hi_comment where TYPE_ = #{type} and TASK_ID_ = #{taskId} and PROC_INST_ID_ = #{processInstanceId} and ID_ = #{id}
order by TIME_ asc
</select>
<!--
<insert id="insetFlowableTask">
insert into `act_ru_task` (`REV`, `EXECUTION_ID`, `PROC_INST_ID`, `PROC_DEF_ID`,

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.flowable.biz.flow;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.flow.*;
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
@ -16,6 +17,7 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import org.flowable.engine.TaskService;
import org.flowable.engine.task.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -287,4 +289,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
}
return rb.success().setData(flowSelectVo);
}
public FlowCommentDto selectComment(String type, String taskId, String processInstanceId,String id) {
return baseMapper.selectComment(type,taskId,processInstanceId,id);
}
}

3
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -40,6 +40,7 @@ import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.*;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.history.HistoricActivityInstance;
@ -479,7 +480,9 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
}
if (DelegationState.PENDING.equals(task.getDelegationState())) {
adminContains = false;
//加签
Authentication.setAuthenticatedUserId(userSid);
taskService.addComment(taskId, instanceId,
FlowComment.DELEGATE.getType(), comment);
taskService.resolveTask(taskId, formVariables);

445
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -122,23 +122,25 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private FlowableService flowableService;
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv){
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String orgSidPath=bv.getOrgSidPath();
String orgSidPath = bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) getProcessCirculationNodesByMap(bv).getData();
if(list==null||list.size()<2){
if (list == null || list.size() < 2) {
return rb.setMsg("流程设计问题");
}
//取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups");
if(o==null){
if (o == null) {
return rb.setMsg("流程设计问题");
}
return getNextUserSids(rb, orgSidPath, o);
}
public ResultBean<UserAndOrgPath> getNextUserSids(ResultBean rb, String orgSidPath, Object o) {
UserAndOrgPath mapParam=new UserAndOrgPath();
UserAndOrgPath mapParam = new UserAndOrgPath();
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息
@ -146,7 +148,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
if (sysUserVos == null || sysUserVos.size() < 1) {
return rb.fail().setMsg("环节没有用户");
}
StringBuilder nextNodeUserSids = new StringBuilder();
@ -158,7 +160,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
//符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString();
String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString();
if(StringUtils.isBlank(nextNodeUserSids_))
if (StringUtils.isBlank(nextNodeUserSids_))
return rb.fail().setMsg("环节没有用户");
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1);
@ -166,10 +168,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
mapParam.setOrgPath(nextNodeOrgPathSids_);
return rb.success().setData(mapParam);
}
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
log.info("bv");
String modelId = null;
if (bv.getModelId()!= null) {
if (bv.getModelId() != null) {
modelId = bv.getModelId();
}
String procId = null;
@ -179,7 +182,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/* if(bv.getFormVariables()==null){
return ResultBean.fireFail().setMsg("业务参数集合 不能为空!");
}*/
if(bv.getFormVariables()==null)
if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
@ -299,7 +302,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @return
*/
public ResultBean<FlowRecordVo> businessFlowRecord(String procInsId) {
ResultBean<FlowRecordVo> rb=ResultBean.fireFail();
ResultBean<FlowRecordVo> rb = ResultBean.fireFail();
FlowRecordVo flowRecordVo = new FlowRecordVo();
if (StringUtils.isNotBlank(procInsId)) {
List<HistoricActivityInstance> list = historyService
@ -308,7 +311,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// .orderByHistoricActivityInstanceStartTime()
// .desc().list();
.list();
Map<String,String> processInstance=processService.getProcessInstanceById(procInsId);
Map<String, String> processInstance = processService.getProcessInstanceById(procInsId);
List<FlowTask> hisFlowList = new ArrayList<>();
for (HistoricActivityInstance histIns : list) {
if (StringUtils.isNotBlank(histIns.getTaskId())) {
@ -324,7 +327,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Date startTime = histIns.getStartTime();
flowTask.setCreateTime(startTime);
Date endTime = histIns.getEndTime();
if(endTime!=null){
if (endTime != null) {
flowTask.setFinishTime(endTime);
}
//processInstance.get("END_TIME_") timestap类型不能转string
@ -333,13 +336,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (StringUtils.isNotBlank(histIns.getAssignee())) {
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getAssignee());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData();
List<TaskUserInfo> taskUserInfos=new ArrayList<>();
for( SysUserVo data:data1){
TaskUserInfo taskUserInfo=new TaskUserInfo();
List<TaskUserInfo> taskUserInfos = new ArrayList<>();
for (SysUserVo data : data1) {
TaskUserInfo taskUserInfo = new TaskUserInfo();
taskUserInfo.setAssigneeName(data.getName());
taskUserInfo.setAssigneeSid(data.getSid());
if(!StringUtils.isBlank(data.getHeadImage())){
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage());
if (!StringUtils.isBlank(data.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
}
taskUserInfos.add(taskUserInfo);
}
@ -368,19 +371,47 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setDuration(histIns.getDurationInMillis() == null || histIns.getDurationInMillis() == 0 ? null : FlowableUtils.getDate(histIns.getDurationInMillis()));
// 获取意见评论内容
List<Comment> commentList = taskService.getProcessInstanceComments(histIns.getProcessInstanceId());
commentList.sort(Comparator.comparing(Comment::getTime));
commentList.forEach(comment -> {
if (histIns.getTaskId().equals(comment.getTaskId())) {
String type = comment.getType();
FlowCommentDto build = FlowCommentDto.builder().type(type).comment(comment.getFullMessage()).build();
// FlowCommentDto build = FlowCommentDto.builder().type(type).comment(comment.getFullMessage()).build();
FlowCommentDto build = flowableService.selectComment(type, histIns.getTaskId(), histIns.getProcessInstanceId(), comment.getId());
if ("4".equals(type)) {//加签委派
FlowTask flowTask1 = new FlowTask();
String userSid = comment.getUserId();
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(userSid);
String name = "";
String headImg = "";
if (sysUserVoResultBean.getData() != null) {
name = sysUserVoResultBean.getData().getName();
headImg = sysUserVoResultBean.getData().getHeadImage();
}
flowTask1.setTaskName("加签审批意见");
List<TaskUserInfo> ll = new ArrayList<>();
TaskUserInfo taskUserInfo = new TaskUserInfo();
taskUserInfo.setAssigneeName(name);
taskUserInfo.setAssigneeSid(userSid);
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + headImg);
ll.add(taskUserInfo);
build.setComment(build.getComment());
flowTask1.setFinishTime(comment.getTime());
flowTask1.setCreateTime(comment.getTime());
flowTask1.setTaskUserInfos(ll);
flowTask1.setComment(build);
hisFlowList.add(flowTask1);
} else {
flowTask.setComment(build);
}
}
});
hisFlowList.add(flowTask);
}
}
flowRecordVo.setFlowList(hisFlowList);
}
log.info("flowRecordVo:{}",JSONObject.toJSONString(flowRecordVo));
log.info("flowRecordVo:{}", JSONObject.toJSONString(flowRecordVo));
return rb.success().setData(flowRecordVo);
}
@ -469,7 +500,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param pageSize 每页条数
* @return
*/
public ResultBean<Page<FlowTaskDto>> businessTodoList(String userSid,String orgPath, List<BusinessTaskParam> params, Integer pageNum,
public ResultBean<Page<FlowTaskDto>> businessTodoList(String userSid, String orgPath, List<BusinessTaskParam> params, Integer pageNum,
Integer pageSize) {
Page<FlowTaskDto> page = new Page<>();
@ -495,26 +526,26 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
//发起人姓名查询
if("startUserSid".equals(btq.getField())){
if ("startUserSid".equals(btq.getField())) {
startUserSidParams = btq.getValue();
}
}
if("proDefName".equals(btq.getField())){
if ("proDefName".equals(btq.getField())) {
names = btq.getValue();
}
}
TaskQuery or = taskQuery.active()
.includeProcessVariables()
.includeTaskLocalVariables();
if(StringUtils.isNotBlank(orgPath)){
if (StringUtils.isNotBlank(orgPath)) {
// or.taskVariableValueLike("orgPath", "%" + orgPath + "%");
}
if(StringUtils.isNotBlank(names)){
if (StringUtils.isNotBlank(names)) {
or.or();
or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%");
or.endOr();
}
if(StringUtils.isNotBlank(startUserSidParams)){
if (StringUtils.isNotBlank(startUserSidParams)) {
or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%");
}
//.taskCandidateGroupIn(roleSidList)
@ -528,7 +559,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
}
if (paramMap.get("endDate") != null && StringUtils.isNotBlank(paramMap.get("endDate").toString())) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd").getTime()), ZoneId.systemDefault());;
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd").getTime()), ZoneId.systemDefault());
;
LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()));
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -568,26 +600,26 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.singleResult();
flowTask.setProcessCreateTime(historicProcessInstance.getStartTime());
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId());
if(sysUserVoResultBean.getData()!=null){
if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createrOrgPath","");
String ogrName="";
if(StringUtils.isNotBlank(createOrgPath)){
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createrOrgPath", "");
String ogrName = "";
if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1));
if(sysOrganizationVoResultBean.getData() != null){
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if (sysOrganizationVoResultBean.getData() != null) {
if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){
ogrName=sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName());
if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
}
}else{
} else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
}
}
}else{
} else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
}
}
@ -595,7 +627,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName());
flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid());
flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName());
if(processVariables.containsKey("orderNames")){
if (processVariables.containsKey("orderNames")) {
flowTask.setProcDefName(processVariables.get("orderNames").toString());
}
flowList.add(flowTask);
@ -611,11 +643,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param userSid
* @return
*/
public ResultBean<Integer> getTodoNum(String userSid,String orgPath) {
public ResultBean<Integer> getTodoNum(String userSid, String orgPath) {
TaskQuery taskQuery = taskService.createTaskQuery()
.taskAssigneeLike("%" + userSid + "%");
if(StringUtils.isNotBlank(orgPath)){
if (StringUtils.isNotBlank(orgPath)) {
/*taskQuery
.taskVariableValueLike("orgPath", "%"+orgPath+"%");*/
}
@ -744,13 +776,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setAssigneeSid(histTask.get("ASSIGNEE_") == null ? "" : histTask.get("ASSIGNEE_").toString());
if (histTask.get("ASSIGNEE_") != null && StringUtils.isNotBlank(histTask.get("ASSIGNEE_").toString())) {
ResultBean<List<SysUserVo>> assignee_ = sysUserFeign.fetchBySids(histTask.get("ASSIGNEE_").toString());
StringBuilder userName=new StringBuilder();
StringBuilder userName = new StringBuilder();
List<SysUserVo> data1 = assignee_.getData();
for( SysUserVo data:data1){
for (SysUserVo data : data1) {
userName.append(data.getName()).append(",");
}
String userName_str="";
userName_str=userName.substring(0,userName.length()-1);
String userName_str = "";
userName_str = userName.substring(0, userName.length() - 1);
flowTask.setAssigneeName(userName_str);
}
flowTask.setHasRevokeButton(userSid.equals(flowTask.getAssigneeSid()) ? true : false);
@ -765,7 +797,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(histTask.get("START_USER_ID_").toString());
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
if(sysUserVoResultBean.getData()!=null){
if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
}
@ -782,36 +814,36 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setEndTime(new Date(end_time_t_l));
}
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createrOrgPath","");
String ogrName="";
if(StringUtils.isNotBlank(createOrgPath)){
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createrOrgPath", "");
String ogrName = "";
if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1));
if(sysOrganizationVoResultBean.getData() != null){
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if (sysOrganizationVoResultBean.getData() != null) {
if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){
ogrName=sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName());
if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
}
}else{
} else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
}
}
}else{
} else {
ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid());
if(pathSidByUserSid.getData()!=null){
if (pathSidByUserSid.getData() != null) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData());
if(sysOrganizationVoResultBean.getData() != null){
ogrName=sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysUserVoResultBean.getData().getOrganizationName());
}else{
if (sysOrganizationVoResultBean.getData() != null) {
ogrName = sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysUserVoResultBean.getData().getOrganizationName());
} else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
}
}
}
if(flowTask.getProcessVariables().containsKey("orderNames")){
if (flowTask.getProcessVariables().containsKey("orderNames")) {
flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString());
}
hisTaskList.add(flowTask);
@ -821,6 +853,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>();
return rb.success().setData(page);
}
/**
* 已办任务列表
*
@ -876,13 +909,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setAssigneeSid(histTask.get("ASSIGNEE_") == null ? "" : histTask.get("ASSIGNEE_").toString());
if (histTask.get("ASSIGNEE_") != null && StringUtils.isNotBlank(histTask.get("ASSIGNEE_").toString())) {
ResultBean<List<SysUserVo>> assignee_ = sysUserFeign.fetchBySids(histTask.get("ASSIGNEE_").toString());
StringBuilder userName=new StringBuilder();
StringBuilder userName = new StringBuilder();
List<SysUserVo> data1 = assignee_.getData();
for( SysUserVo data:data1){
for (SysUserVo data : data1) {
userName.append(data.getName()).append(",");
}
String userName_str="";
userName_str=userName.substring(0,userName.length()-1);
String userName_str = "";
userName_str = userName.substring(0, userName.length() - 1);
flowTask.setAssigneeName(userName_str);
}
@ -914,39 +947,39 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
ResultBean<List<SysProUrlVo>> listResultBean = sysProUrlService.selectUrlByKey(flowTask.getProcDefId(), flowTask.getTaskDefKey(), "2", "2");
if(listResultBean.getData()!=null&&listResultBean.getData().size()>0){
if (listResultBean.getData() != null && listResultBean.getData().size() > 0) {
flowTask.setSysProUrlVo(listResultBean.getData().get(0));
}
//发起人部门
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createOrgPath","");
String ogrName="";
if(StringUtils.isNotBlank(createOrgPath)){
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createOrgPath", "");
String ogrName = "";
if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1));
if(sysOrganizationVoResultBean.getData() != null){
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if (sysOrganizationVoResultBean.getData() != null) {
if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){
ogrName=sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName());
if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
}
}else{
} else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
}
}
}else{
} else {
ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid());
if(pathSidByUserSid.getData()!=null){
if (pathSidByUserSid.getData() != null) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData());
if(sysOrganizationVoResultBean.getData() != null){
ogrName=sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysUserVoResultBean.getData().getOrganizationName());
}else{
if (sysOrganizationVoResultBean.getData() != null) {
ogrName = sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysUserVoResultBean.getData().getOrganizationName());
} else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
}
}
}
if(flowTask.getProcessVariables().containsKey("orderNames")){
if (flowTask.getProcessVariables().containsKey("orderNames")) {
flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString());
}
hisTaskList.add(flowTask);
@ -994,7 +1027,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<FlowTask> rb = ResultBean.fireFail();
if(dto.getFormVariables()==null)
if (dto.getFormVariables() == null)
dto.setFormVariables(new HashMap<String, Object>());
Map<String, Object> formVariables = dto.getFormVariables();
String taskId = (String) formVariables.get("taskId");
@ -1197,14 +1230,15 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param flowTaskVo
*/
public ResultBean<List<LatestTaskVo>> taskReject(FlowTaskVo flowTaskVo) {
return taskReject_(flowTaskVo,false);
return taskReject_(flowTaskVo, false);
}
/**
* 驳回任务
*
* @param flowTaskVo
*/
public ResultBean<List<LatestTaskVo>> taskReject_(FlowTaskVo flowTaskVo,boolean b) {
public ResultBean<List<LatestTaskVo>> taskReject_(FlowTaskVo flowTaskVo, boolean b) {
// 当前任务 task
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
if (task.isSuspended()) {
@ -1243,7 +1277,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 2);
Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId());
//Object o = actHiVarinstForOrgPath.get(BusinessVariables.ORGPATH);
String orgPath = MapUtil.getStr(actHiVarinstForOrgPath,"TEXT_");
String orgPath = MapUtil.getStr(actHiVarinstForOrgPath, "TEXT_");
// 数据清洗,将回滚导致的脏数据清洗掉
List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
// 此时历史任务实例为倒序,获取最后走的节点
@ -1325,41 +1359,41 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.moveActivityIdsToSingleActivityId(currentIds, targetIds.get(0)).changeState();
}
// 最近环节
for(UserTask item:parentUserTaskList){
for (UserTask item : parentUserTaskList) {
Map<String, Object> map2 = flowTaskMapper.getTaskByDefKey(task.getProcessInstanceId(), targetIds.get(0));
Map<String, Object> map = flowTaskMapper.getHistTaskByID(task.getProcessInstanceId(), targetIds.get(0));
String assignee_ =item.getAssignee();
if(map.get("ASSIGNEE_")!=null){
String assignee_ = item.getAssignee();
if (map.get("ASSIGNEE_") != null) {
assignee_ = map.get("ASSIGNEE_").toString();
}
if(map2==null){
if (map2 == null) {
continue;
}
String id_ = map2.get("id_").toString();
ResultBean<List<LatestTaskVo>> listResultBean_2=null;
if(flowTaskVo.getUserSid().equals(assignee_)){
ResultBean<List<LatestTaskVo>> listResultBean_2 = null;
if (flowTaskVo.getUserSid().equals(assignee_)) {
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true);
}else{
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(assignee_)){
listResultBean_2 = taskReject_(flowTaskVo, true);
} else {
if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(assignee_)) {
flowTaskVo.setUserId(flowTaskVo.getUserSid());
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true);
}else{
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(flowTaskVo.getUserSid()) && assignee_.equals(flowTaskVo.getUserId())){
listResultBean_2 = taskReject_(flowTaskVo, true);
} else {
if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(flowTaskVo.getUserSid()) && assignee_.equals(flowTaskVo.getUserId())) {
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
flowTaskVo.setUserId(flowTaskVo.getUserSid());
listResultBean_2= taskReject_(flowTaskVo, true);
listResultBean_2 = taskReject_(flowTaskVo, true);
}else{
} else {
taskService.setAssignee(id_, assignee_);
taskService.setVariablesLocal(id_,flowTaskVo.getValues());
taskService.setVariablesLocal(id_, flowTaskVo.getValues());
}
}
@ -1367,11 +1401,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
LatestTaskVo latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee());
latestTaskVo.setId_(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getId_():id_);
latestTaskVo.setName_(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getName_():item.getName());
latestTaskVo.setTask_def_key_(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getTask_def_key_():item.getId());
latestTaskVo.setIncomingSourceRef(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getIncomingSourceRef():item.getIncomingFlows().get(0).getSourceRef());
latestTaskVo.setOrgPath(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getOrgPath():orgPath);
latestTaskVo.setId_(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getId_() : id_);
latestTaskVo.setName_(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getName_() : item.getName());
latestTaskVo.setTask_def_key_(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getTask_def_key_() : item.getId());
latestTaskVo.setIncomingSourceRef(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getIncomingSourceRef() : item.getIncomingFlows().get(0).getSourceRef());
latestTaskVo.setOrgPath(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getOrgPath() : orgPath);
latestTaskList.add(latestTaskVo);
}
@ -1449,17 +1483,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private String getTaskId(String currentActivityId, String processInstanceId, String processDefinitionId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(currentActivityId);
List<SequenceFlow> list=flowNode.getIncomingFlows();
if(list.size()==0){
List<SequenceFlow> list = flowNode.getIncomingFlows();
if (list.size() == 0) {
return "";
}
List<HistoricActivityInstance> list1=new ArrayList<>();
for( SequenceFlow sequenceFlow:list){
List<HistoricActivityInstance> list1 = new ArrayList<>();
for (SequenceFlow sequenceFlow : list) {
String sourceRef = sequenceFlow.getSourceRef();
list1= historyService.createHistoricActivityInstanceQuery().activityId(sourceRef)
list1 = historyService.createHistoricActivityInstanceQuery().activityId(sourceRef)
.processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().desc().list();
if(list1.size()>0){
if (list1.size() > 0) {
break;
}
}
@ -1472,7 +1506,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return historicActivityInstance.getTaskId();
}
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo,int j) {
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo, int j) {
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(flowTaskVo.getTaskId()).singleResult();
Execution execution = runtimeService.createExecutionQuery().executionId(historicTaskInstance.getExecutionId()).singleResult();
DelegateExecution delegateExecution = (DelegateExecution) execution;
@ -1493,10 +1528,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String userSid = flowTaskVo.getUserSid();
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId());
List<FlowTask> flowList = flowRecordVoResultBean.getData().getFlowList();
String ybrsid="";
int ii=0;
String ybrsid = "";
int ii = 0;
FlowTask flowTask_1 = flowList.get(j+1);
FlowTask flowTask_1 = flowList.get(j + 1);
List<TaskUserInfo> taskUserInfos_1 = flowTask_1.getTaskUserInfos();
TaskUserInfo taskUserInfo_1 = taskUserInfos_1.get(0);
@ -1506,21 +1541,21 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String assigneeSid1 = taskUserInfo_1.getAssigneeSid();
String assigneeSid0 = taskUserInfo_0.getAssigneeSid();
if(!assigneeSid1.equals(assigneeSid0)){
ybrsid=assignee;
}else{
if (!assigneeSid1.equals(assigneeSid0)) {
ybrsid = assignee;
} else {
FlowTask flowTask1 = flowList.get(1);
for(int i=1;i<flowList.size();i++){
for (int i = 1; i < flowList.size(); i++) {
FlowTask flowTask = flowList.get(i);
List<TaskUserInfo> taskUserInfos = flowTask.getTaskUserInfos();
TaskUserInfo taskUserInfo = taskUserInfos.get(0);
if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){
if(!FlowComment.RECALL.getType().equals( flowTask1.getComment().getType())){
if (assigneeSid0.equals(taskUserInfo.getAssigneeSid())) {
if (!FlowComment.RECALL.getType().equals(flowTask1.getComment().getType())) {
ii++;
}
continue;
}else{
ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid();
} else {
ybrsid = flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid();
break;
}
}
@ -1530,29 +1565,30 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("您不是上一环节处理人,不能进行撤回操作!").setData(new ArrayList<>());
} else {
ResultBean<List<LatestTaskVo>> listResultBean = null;
for(int i=0;i<=ii;i++){ //ii==2的问题
listResultBean = revokeProcess_(historicTaskInstance.getProcessInstanceId(),userSid);
for (int i = 0; i <= ii; i++) { //ii==2的问题
listResultBean = revokeProcess_(historicTaskInstance.getProcessInstanceId(), userSid);
}
return listResultBean;
}
}
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo) {
return revokeProcess(flowTaskVo,0);
return revokeProcess(flowTaskVo, 0);
}
public HistoricTaskInstance returnInstance(HistoricTaskInstance historicTaskInstance1){
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(historicTaskInstance1.getAssignee())){
public HistoricTaskInstance returnInstance(HistoricTaskInstance historicTaskInstance1) {
if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(historicTaskInstance1.getAssignee())) {
String taskId = getTaskId(historicTaskInstance1.getTaskDefinitionKey(), historicTaskInstance1.getProcessInstanceId(), historicTaskInstance1.getProcessDefinitionId());
historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
return returnInstance(historicTaskInstance1);
}else{
} else {
return historicTaskInstance1;
}
}
// @Transactional(rollbackFor = Exception.class)
private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId,
String assignee ) {
private ResultBean<List<LatestTaskVo>> revokeProcess_(String processInstanceId,
String assignee) {
// 流程回退到上一个节点,审批人继续审批
// 获取流程定义信息
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
@ -1598,7 +1634,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.orderByHistoricTaskInstanceStartTime().asc().list();
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 1);
Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId());
String orgPath = MapUtil.getStr(actHiVarinstForOrgPath,"TEXT_");
String orgPath = MapUtil.getStr(actHiVarinstForOrgPath, "TEXT_");
// 数据清洗,将回滚导致的脏数据清洗掉
List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
@ -1654,7 +1690,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}));
// 设置撤回意见
currentTaskIds.forEach(item -> {
taskService.addComment(item, processInstanceId,FlowComment.RECALL.getType(), "撤回办理");
taskService.addComment(item, processInstanceId, FlowComment.RECALL.getType(), "撤回办理");
// 设置实际办理人
taskService.setAssignee(item, assignee);
});
@ -1686,7 +1722,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
latestTaskVo.setOrgPath(orgPath);
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(processInstanceId, item.getId());
if(task_map!=null){
if (task_map != null) {
taskService.setAssignee(task_map.get("id_").toString(), assignee);
latestTaskVo.setId_(task_map.get("id_").toString());
latestTaskList.add(latestTaskVo);
@ -1855,8 +1891,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
int size = Integer.valueOf(businessTaskQuery.getSize() + "");
int current = Integer.valueOf(businessTaskQuery.getCurrent() + "");
List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields();
String companySid="";
ResultBean<Page<FlowTaskDto>> resultBean = businessTodoList(userSid,companySid, fields, current, size);
String companySid = "";
ResultBean<Page<FlowTaskDto>> resultBean = businessTodoList(userSid, companySid, fields, current, size);
return resultBean;
}
@ -1866,6 +1902,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List<BusinessTaskParam> fields = taskQueryPagerQuery.getParams().getFields();
return businessFinishedList(userSid, fields, current, size);
}
public ResultBean<Page<FlowTaskDto>> businessDoneListNewForApp(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) {
int size = Integer.valueOf(taskQueryPagerQuery.getSize() + "");
int current = Integer.valueOf(taskQueryPagerQuery.getCurrent() + "");
@ -1885,7 +1922,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean readXml(String deployId) {
ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult();
if(definition==null){
if (definition == null) {
definition = repositoryService.createProcessDefinitionQuery().processDefinitionId(deployId).singleResult();
}
InputStream inputStream = repositoryService.getResourceAsStream(definition.getDeploymentId(), definition.getResourceName());
@ -1901,83 +1938,85 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean getNextNodesForSubmit(BusinessVariables bv) {
String modelId = null;
if (bv.getModelId()!= null) {
if (bv.getModelId() != null) {
modelId = bv.getModelId();
}
String procId = null;
if (bv.getModelId() != null) {
procId = bv.getModelId();
}
if(bv.getFormVariables()==null)
if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>();
List<Map<String, Object>> list = new ArrayList<>();
boolean endTask=true;
boolean endTask = true;
Map<String, Object> map = new HashMap<>();
for (int i=0;i<flowElements.size();i++) {
FlowElement f =flowElements.get(i);
if(i+1<flowElements.size()&&bv.getTaskDefKey().equals(f.getId())){
f =flowElements.get(i+1);
for (int i = 0; i < flowElements.size(); i++) {
FlowElement f = flowElements.get(i);
if (i + 1 < flowElements.size() && bv.getTaskDefKey().equals(f.getId())) {
f = flowElements.get(i + 1);
map.put("name", f.getName());
map.put("id", f.getId());
String s = JSON.toJSONString(f);
JSONObject jsonObject = JSONObject.parseObject(s);
Object candidateGroups = jsonObject.get("candidateGroups");
map.put("candidateGroups", candidateGroups);
endTask=false;
map.put("endTask", endTask);}
endTask = false;
map.put("endTask", endTask);
}
if(endTask){
}
if (endTask) {
map.put("name", "结束");
map.put("id","endAction");
map.put("id", "endAction");
map.put("endTask", true);
map.put("candidateGroups", "");
}
list.add(map);
return rb.setData(list);
}
public ResultBean getPreviousNodesForReject(BusinessVariables bv) {
String modelId = null;
if (bv.getModelId()!= null) {
if (bv.getModelId() != null) {
modelId = bv.getModelId();
}
String procId = null;
if (bv.getModelId() != null) {
procId = bv.getModelId();
}
if(bv.getFormVariables()==null)
if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>();
List<Map<String, Object>> list = new ArrayList<>();
boolean startTask=true;
boolean startTask = true;
Map<String, Object> map = new HashMap<>();
for (int i=0;i<flowElements.size();i++) {
FlowElement f =flowElements.get(i);
if(i>0&&bv.getTaskDefKey().equals(f.getId())){
f =flowElements.get(i-1);
for (int i = 0; i < flowElements.size(); i++) {
FlowElement f = flowElements.get(i);
if (i > 0 && bv.getTaskDefKey().equals(f.getId())) {
f = flowElements.get(i - 1);
map.put("name", f.getName());
map.put("id", f.getId());
String s = JSON.toJSONString(f);
JSONObject jsonObject = JSONObject.parseObject(s);
Object candidateGroups = jsonObject.get("candidateGroups");
map.put("candidateGroups", candidateGroups);
startTask=false;
map.put("startTask",startTask);
startTask = false;
map.put("startTask", startTask);
}
}
if(startTask){
if (startTask) {
map.put("name", "");
map.put("id","");
map.put("id", "");
map.put("candidateGroups", "");
map.put("startTask",true);
map.put("startTask", true);
}
list.add(map);
return rb.setData(list);
}
public ResultBean<Page<FlowTaskDto>> businessTodoListForApp(String userSid,String orgPath, List<BusinessTaskParam> params, int pageNum, int pageSize) {
public ResultBean<Page<FlowTaskDto>> businessTodoListForApp(String userSid, String orgPath, List<BusinessTaskParam> params, int pageNum, int pageSize) {
Page<FlowTaskDto> page = new Page<>();
TaskQuery taskQuery = taskService.createTaskQuery();
String names = "";
@ -2000,26 +2039,25 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
//发起人姓名查询
if("startUserSid".equals(btq.getField())){
if ("startUserSid".equals(btq.getField())) {
startUserSidParams = btq.getValue();
}
}
if("proDefName".equals(btq.getField())){
if ("proDefName".equals(btq.getField())) {
names = btq.getValue();
}
}
TaskQuery or = taskQuery.active()
.includeProcessVariables()
;
if(StringUtils.isNotBlank(orgPath)){
.includeProcessVariables();
if (StringUtils.isNotBlank(orgPath)) {
/* or.taskVariableValueLike("orgPath", "%" + orgPath + "%");*/
}
if(StringUtils.isNotBlank(names)){
if (StringUtils.isNotBlank(names)) {
or.or();
or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%");
or.endOr();
}
if(StringUtils.isNotBlank(startUserSidParams)){
if (StringUtils.isNotBlank(startUserSidParams)) {
or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%");
}
or.taskAssigneeLike("%" + userSid + "%")
@ -2032,7 +2070,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
}
if (paramMap.get("endDate") != null && StringUtils.isNotBlank(paramMap.get("endDate").toString())) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd").getTime()), ZoneId.systemDefault());;
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd").getTime()), ZoneId.systemDefault());
;
LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()));
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -2067,32 +2106,32 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.singleResult();
flowTask.setProcessCreateTime(historicProcessInstance.getStartTime());
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId());
if(sysUserVoResultBean.getData() != null) {
if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
// flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createOrgPath","");
String ogrName="";
if(StringUtils.isNotBlank(createOrgPath)){
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createOrgPath", "");
String ogrName = "";
if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1));
if(sysOrganizationVoResultBean.getData() != null){
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if (sysOrganizationVoResultBean.getData() != null) {
if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){
ogrName=sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName());
if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
}
}else{
} else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
}
}
}else{
} else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
}
}
ResultBean<SysUserVo> sysUserVoResultBean2 = sysUserFeign.fetchBySid(userSid);
if(sysUserVoResultBean2.getData() != null) {
if (sysUserVoResultBean2.getData() != null) {
flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName());
flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid());
flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName());
@ -2100,10 +2139,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String procDefId = flowTask.getProcDefId();
String taskDefKey = flowTask.getTaskDefKey();
ResultBean<List<SysProUrlVo>> listResultBean = sysProUrlService.selectUrlByKey(procDefId, taskDefKey, "1", "2");
if(listResultBean.getData()!=null&&listResultBean.getData().size()>0){
if (listResultBean.getData() != null && listResultBean.getData().size() > 0) {
flowTask.setSysProUrlVo(listResultBean.getData().get(0));
}
if(processVariables.containsKey("orderNames")){
if (processVariables.containsKey("orderNames")) {
flowTask.setProcDefName(processVariables.get("orderNames").toString());
}
flowList.add(flowTask);
@ -2113,23 +2152,23 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return rb.success().setData(page);
}
public ResultBean<List<Map<String,Object>>> yuyanTest(FlowableQuery flowableQuery) {
ResultBean<List<Map<String,Object>>> rb = ResultBean.fireFail();
List<Map<String,Object>> list = new ArrayList<>();
public ResultBean<List<Map<String, Object>>> yuyanTest(FlowableQuery flowableQuery) {
ResultBean<List<Map<String, Object>>> rb = ResultBean.fireFail();
List<Map<String, Object>> list = new ArrayList<>();
String modelId = flowableQuery.getModelId();
Map<String,Object> map = flowableQuery.getMap();
Map<String, Object> map = flowableQuery.getMap();
boolean taskKeyTrue = false;
List<FlowElement> flowElements = processService.calApprovePath("", modelId,map);
List<FlowElement> flowElements = processService.calApprovePath("", modelId, map);
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
for (int i = 0; i < collect.size(); i++) {
Map<String,Object> itemMap = new HashMap<>();
Map<String, Object> itemMap = new HashMap<>();
FlowElement item = collect.get(i);
if(StringUtils.isBlank(flowableQuery.getTaskDefKey())){
if (StringUtils.isBlank(flowableQuery.getTaskDefKey())) {
log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName());
itemMap.put("nodeName",item.getName());
itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId());
itemMap.put("nodeId",item.getId());
itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject);
@ -2143,17 +2182,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
log.info("candidateGroups:{}", candidateGroups_arr);
list.add(itemMap);
}else{
if(flowableQuery.getTaskDefKey().equals(item.getId())){
} else {
if (flowableQuery.getTaskDefKey().equals(item.getId())) {
taskKeyTrue = true;
continue;
}
if(taskKeyTrue){
if (taskKeyTrue) {
log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName());
itemMap.put("nodeName",item.getName());
itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId());
itemMap.put("nodeId",item.getId());
itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject);
@ -2181,7 +2220,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean assignTask(DelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
taskService.setAssignee(delegateQuery.getTaskId(),delegateQuery.getAssignee());
taskService.setAssignee(delegateQuery.getTaskId(), delegateQuery.getAssignee());
return rb.success();
}
}

1
anrui-system-ui/src/components/flow/flowRecord.vue

@ -35,6 +35,7 @@
<el-tag type="success" v-if="item.flowableRecordVo.comment.type === '1'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="warning" v-if="item.flowableRecordVo.comment.type === '2'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '3'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="success" v-if="item.flowableRecordVo.comment.type === '4'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '7'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '6'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
</p>

Loading…
Cancel
Save