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.FlowProcinst;
import com.yxt.anrui.flowable.api.flow.FlowSelectVo; import com.yxt.anrui.flowable.api.flow.FlowSelectVo;
import com.yxt.anrui.flowable.api.flow.Flowable; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.flowable.engine.task.Comment;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -30,4 +32,7 @@ public interface FlowableMapper extends BaseMapper<Flowable> {
List<FlowListVo> selectFlowList(); List<FlowListVo> selectFlowList();
FlowSelectVo selectFlows(@Param("proDefId") String proDefId, @Param("proInsId") String proInsId); 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 FROM ACT_HI_PROCINST ahpi
where ahpi.PROC_DEF_ID_ = #{proDefId} and ahpi.PROC_INST_ID_ = #{proInsId} where ahpi.PROC_DEF_ID_ = #{proDefId} and ahpi.PROC_INST_ID_ = #{proInsId}
</select> </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 id="insetFlowableTask">
insert into `act_ru_task` (`REV`, `EXECUTION_ID`, `PROC_INST_ID`, `PROC_DEF_ID`, 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 cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.flow.*; 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.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum; 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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import org.flowable.engine.TaskService; import org.flowable.engine.TaskService;
import org.flowable.engine.task.Comment;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -287,4 +289,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
} }
return rb.success().setData(flowSelectVo); 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.bpmn.model.Process;
import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.*; import org.flowable.engine.*;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricActivityInstance;
@ -479,7 +480,9 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
} }
if (DelegationState.PENDING.equals(task.getDelegationState())) { if (DelegationState.PENDING.equals(task.getDelegationState())) {
adminContains = false;
//加签 //加签
Authentication.setAuthenticatedUserId(userSid);
taskService.addComment(taskId, instanceId, taskService.addComment(taskId, instanceId,
FlowComment.DELEGATE.getType(), comment); FlowComment.DELEGATE.getType(), comment);
taskService.resolveTask(taskId, formVariables); 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; private SysOrganizationFeign sysOrganizationFeign;
@Resource @Resource
private FlowableService flowableService; private FlowableService flowableService;
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv){
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String orgSidPath=bv.getOrgSidPath(); String orgSidPath = bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息 //根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) getProcessCirculationNodesByMap(bv).getData(); 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("流程设计问题"); return rb.setMsg("流程设计问题");
} }
//取第二个环节的配置角色 //取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups"); Object o = list.get(1).get("candidateGroups");
if(o==null){ if (o == null) {
return rb.setMsg("流程设计问题"); return rb.setMsg("流程设计问题");
} }
return getNextUserSids(rb, orgSidPath, o); return getNextUserSids(rb, orgSidPath, o);
} }
public ResultBean<UserAndOrgPath> getNextUserSids(ResultBean rb, String orgSidPath, Object 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)); JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString(); String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息 //根据组织架构、角色两个参数取相关符合条件的用户信息
@ -146,7 +148,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
userQuery.setRoleSid(roleSid); userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSidPath); userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){ if (sysUserVos == null || sysUserVos.size() < 1) {
return rb.fail().setMsg("环节没有用户"); return rb.fail().setMsg("环节没有用户");
} }
StringBuilder nextNodeUserSids = new StringBuilder(); StringBuilder nextNodeUserSids = new StringBuilder();
@ -158,7 +160,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
//符合条件的用户的sid,拼接的字符串 //符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString(); String nextNodeUserSids_ = nextNodeUserSids.toString();
String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString(); String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString();
if(StringUtils.isBlank(nextNodeUserSids_)) if (StringUtils.isBlank(nextNodeUserSids_))
return rb.fail().setMsg("环节没有用户"); return rb.fail().setMsg("环节没有用户");
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1); nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1); nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1);
@ -166,10 +168,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
mapParam.setOrgPath(nextNodeOrgPathSids_); mapParam.setOrgPath(nextNodeOrgPathSids_);
return rb.success().setData(mapParam); return rb.success().setData(mapParam);
} }
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) { public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
log.info("bv"); log.info("bv");
String modelId = null; String modelId = null;
if (bv.getModelId()!= null) { if (bv.getModelId() != null) {
modelId = bv.getModelId(); modelId = bv.getModelId();
} }
String procId = null; String procId = null;
@ -179,7 +182,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/* if(bv.getFormVariables()==null){ /* if(bv.getFormVariables()==null){
return ResultBean.fireFail().setMsg("业务参数集合 不能为空!"); return ResultBean.fireFail().setMsg("业务参数集合 不能为空!");
}*/ }*/
if(bv.getFormVariables()==null) if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>()); bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables()); List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList()); 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 * @return
*/ */
public ResultBean<FlowRecordVo> businessFlowRecord(String procInsId) { public ResultBean<FlowRecordVo> businessFlowRecord(String procInsId) {
ResultBean<FlowRecordVo> rb=ResultBean.fireFail(); ResultBean<FlowRecordVo> rb = ResultBean.fireFail();
FlowRecordVo flowRecordVo = new FlowRecordVo(); FlowRecordVo flowRecordVo = new FlowRecordVo();
if (StringUtils.isNotBlank(procInsId)) { if (StringUtils.isNotBlank(procInsId)) {
List<HistoricActivityInstance> list = historyService List<HistoricActivityInstance> list = historyService
@ -308,7 +311,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// .orderByHistoricActivityInstanceStartTime() // .orderByHistoricActivityInstanceStartTime()
// .desc().list(); // .desc().list();
.list(); .list();
Map<String,String> processInstance=processService.getProcessInstanceById(procInsId); Map<String, String> processInstance = processService.getProcessInstanceById(procInsId);
List<FlowTask> hisFlowList = new ArrayList<>(); List<FlowTask> hisFlowList = new ArrayList<>();
for (HistoricActivityInstance histIns : list) { for (HistoricActivityInstance histIns : list) {
if (StringUtils.isNotBlank(histIns.getTaskId())) { if (StringUtils.isNotBlank(histIns.getTaskId())) {
@ -324,7 +327,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Date startTime = histIns.getStartTime(); Date startTime = histIns.getStartTime();
flowTask.setCreateTime(startTime); flowTask.setCreateTime(startTime);
Date endTime = histIns.getEndTime(); Date endTime = histIns.getEndTime();
if(endTime!=null){ if (endTime != null) {
flowTask.setFinishTime(endTime); flowTask.setFinishTime(endTime);
} }
//processInstance.get("END_TIME_") timestap类型不能转string //processInstance.get("END_TIME_") timestap类型不能转string
@ -333,13 +336,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (StringUtils.isNotBlank(histIns.getAssignee())) { if (StringUtils.isNotBlank(histIns.getAssignee())) {
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getAssignee());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee())); ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getAssignee());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData(); List<SysUserVo> data1 = sysUserVoResultBean.getData();
List<TaskUserInfo> taskUserInfos=new ArrayList<>(); List<TaskUserInfo> taskUserInfos = new ArrayList<>();
for( SysUserVo data:data1){ for (SysUserVo data : data1) {
TaskUserInfo taskUserInfo=new TaskUserInfo(); TaskUserInfo taskUserInfo = new TaskUserInfo();
taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeName(data.getName());
taskUserInfo.setAssigneeSid(data.getSid()); taskUserInfo.setAssigneeSid(data.getSid());
if(!StringUtils.isBlank(data.getHeadImage())){ if (!StringUtils.isBlank(data.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage()); taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
} }
taskUserInfos.add(taskUserInfo); 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())); flowTask.setDuration(histIns.getDurationInMillis() == null || histIns.getDurationInMillis() == 0 ? null : FlowableUtils.getDate(histIns.getDurationInMillis()));
// 获取意见评论内容 // 获取意见评论内容
List<Comment> commentList = taskService.getProcessInstanceComments(histIns.getProcessInstanceId()); List<Comment> commentList = taskService.getProcessInstanceComments(histIns.getProcessInstanceId());
commentList.sort(Comparator.comparing(Comment::getTime));
commentList.forEach(comment -> { commentList.forEach(comment -> {
if (histIns.getTaskId().equals(comment.getTaskId())) { if (histIns.getTaskId().equals(comment.getTaskId())) {
String type = comment.getType(); 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); flowTask.setComment(build);
} }
}
}); });
hisFlowList.add(flowTask); hisFlowList.add(flowTask);
} }
} }
flowRecordVo.setFlowList(hisFlowList); flowRecordVo.setFlowList(hisFlowList);
} }
log.info("flowRecordVo:{}",JSONObject.toJSONString(flowRecordVo)); log.info("flowRecordVo:{}", JSONObject.toJSONString(flowRecordVo));
return rb.success().setData(flowRecordVo); return rb.success().setData(flowRecordVo);
} }
@ -469,7 +500,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param pageSize 每页条数 * @param pageSize 每页条数
* @return * @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) { Integer pageSize) {
Page<FlowTaskDto> page = new Page<>(); 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(); startUserSidParams = btq.getValue();
} }
} }
if("proDefName".equals(btq.getField())){ if ("proDefName".equals(btq.getField())) {
names = btq.getValue(); names = btq.getValue();
} }
} }
TaskQuery or = taskQuery.active() TaskQuery or = taskQuery.active()
.includeProcessVariables() .includeProcessVariables()
.includeTaskLocalVariables(); .includeTaskLocalVariables();
if(StringUtils.isNotBlank(orgPath)){ if (StringUtils.isNotBlank(orgPath)) {
// or.taskVariableValueLike("orgPath", "%" + orgPath + "%"); // or.taskVariableValueLike("orgPath", "%" + orgPath + "%");
} }
if(StringUtils.isNotBlank(names)){ if (StringUtils.isNotBlank(names)) {
or.or(); or.or();
or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%"); or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%");
or.endOr(); or.endOr();
} }
if(StringUtils.isNotBlank(startUserSidParams)){ if (StringUtils.isNotBlank(startUserSidParams)) {
or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%"); or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%");
} }
//.taskCandidateGroupIn(roleSidList) //.taskCandidateGroupIn(roleSidList)
@ -528,7 +559,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd")); // taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
} }
if (paramMap.get("endDate") != null && StringUtils.isNotBlank(paramMap.get("endDate").toString())) { 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); LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant())); taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()));
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd")); // taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -568,26 +600,26 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.singleResult(); .singleResult();
flowTask.setProcessCreateTime(historicProcessInstance.getStartTime()); flowTask.setProcessCreateTime(historicProcessInstance.getStartTime());
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId()); ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId());
if(sysUserVoResultBean.getData()!=null){ if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid()); flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName()); flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createrOrgPath",""); String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createrOrgPath", "");
String ogrName=""; String ogrName = "";
if(StringUtils.isNotBlank(createOrgPath)){ if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/")); List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1)); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){ if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){ if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName=sysOrganizationVoResultBeanP.getData().getName(); ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
} }
}else{ } else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
} }
} }
}else{ } else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
} }
} }
@ -595,7 +627,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName()); flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName());
flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid()); flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid());
flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName()); flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName());
if(processVariables.containsKey("orderNames")){ if (processVariables.containsKey("orderNames")) {
flowTask.setProcDefName(processVariables.get("orderNames").toString()); flowTask.setProcDefName(processVariables.get("orderNames").toString());
} }
flowList.add(flowTask); flowList.add(flowTask);
@ -611,11 +643,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param userSid * @param userSid
* @return * @return
*/ */
public ResultBean<Integer> getTodoNum(String userSid,String orgPath) { public ResultBean<Integer> getTodoNum(String userSid, String orgPath) {
TaskQuery taskQuery = taskService.createTaskQuery() TaskQuery taskQuery = taskService.createTaskQuery()
.taskAssigneeLike("%" + userSid + "%"); .taskAssigneeLike("%" + userSid + "%");
if(StringUtils.isNotBlank(orgPath)){ if (StringUtils.isNotBlank(orgPath)) {
/*taskQuery /*taskQuery
.taskVariableValueLike("orgPath", "%"+orgPath+"%");*/ .taskVariableValueLike("orgPath", "%"+orgPath+"%");*/
} }
@ -744,13 +776,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setAssigneeSid(histTask.get("ASSIGNEE_") == null ? "" : histTask.get("ASSIGNEE_").toString()); flowTask.setAssigneeSid(histTask.get("ASSIGNEE_") == null ? "" : histTask.get("ASSIGNEE_").toString());
if (histTask.get("ASSIGNEE_") != null && StringUtils.isNotBlank(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()); ResultBean<List<SysUserVo>> assignee_ = sysUserFeign.fetchBySids(histTask.get("ASSIGNEE_").toString());
StringBuilder userName=new StringBuilder(); StringBuilder userName = new StringBuilder();
List<SysUserVo> data1 = assignee_.getData(); List<SysUserVo> data1 = assignee_.getData();
for( SysUserVo data:data1){ for (SysUserVo data : data1) {
userName.append(data.getName()).append(","); userName.append(data.getName()).append(",");
} }
String userName_str=""; String userName_str = "";
userName_str=userName.substring(0,userName.length()-1); userName_str = userName.substring(0, userName.length() - 1);
flowTask.setAssigneeName(userName_str); flowTask.setAssigneeName(userName_str);
} }
flowTask.setHasRevokeButton(userSid.equals(flowTask.getAssigneeSid()) ? true : false); 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()); ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(histTask.get("START_USER_ID_").toString());
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid()); flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName()); flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
if(sysUserVoResultBean.getData()!=null){ if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid()); flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName()); 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.setEndTime(new Date(end_time_t_l));
} }
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables()); flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createrOrgPath",""); String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createrOrgPath", "");
String ogrName=""; String ogrName = "";
if(StringUtils.isNotBlank(createOrgPath)){ if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/")); List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1)); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){ if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){ if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName=sysOrganizationVoResultBeanP.getData().getName(); ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
} }
}else{ } else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
} }
} }
}else{ } else {
ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid()); ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid());
if(pathSidByUserSid.getData()!=null){ if (pathSidByUserSid.getData() != null) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData());
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
ogrName=sysOrganizationVoResultBean.getData().getName(); ogrName = sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(ogrName + "-" + sysUserVoResultBean.getData().getOrganizationName());
}else{ } else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
} }
} }
} }
if(flowTask.getProcessVariables().containsKey("orderNames")){ if (flowTask.getProcessVariables().containsKey("orderNames")) {
flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString()); flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString());
} }
hisTaskList.add(flowTask); hisTaskList.add(flowTask);
@ -821,6 +853,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>(); ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>();
return rb.success().setData(page); 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()); flowTask.setAssigneeSid(histTask.get("ASSIGNEE_") == null ? "" : histTask.get("ASSIGNEE_").toString());
if (histTask.get("ASSIGNEE_") != null && StringUtils.isNotBlank(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()); ResultBean<List<SysUserVo>> assignee_ = sysUserFeign.fetchBySids(histTask.get("ASSIGNEE_").toString());
StringBuilder userName=new StringBuilder(); StringBuilder userName = new StringBuilder();
List<SysUserVo> data1 = assignee_.getData(); List<SysUserVo> data1 = assignee_.getData();
for( SysUserVo data:data1){ for (SysUserVo data : data1) {
userName.append(data.getName()).append(","); userName.append(data.getName()).append(",");
} }
String userName_str=""; String userName_str = "";
userName_str=userName.substring(0,userName.length()-1); userName_str = userName.substring(0, userName.length() - 1);
flowTask.setAssigneeName(userName_str); flowTask.setAssigneeName(userName_str);
} }
@ -914,39 +947,39 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables()); flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
ResultBean<List<SysProUrlVo>> listResultBean = sysProUrlService.selectUrlByKey(flowTask.getProcDefId(), flowTask.getTaskDefKey(), "2", "2"); 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)); flowTask.setSysProUrlVo(listResultBean.getData().get(0));
} }
//发起人部门 //发起人部门
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createOrgPath",""); String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createOrgPath", "");
String ogrName=""; String ogrName = "";
if(StringUtils.isNotBlank(createOrgPath)){ if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/")); List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1)); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){ if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){ if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName=sysOrganizationVoResultBeanP.getData().getName(); ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
} }
}else{ } else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
} }
} }
}else{ } else {
ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid()); ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid());
if(pathSidByUserSid.getData()!=null){ if (pathSidByUserSid.getData() != null) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData());
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
ogrName=sysOrganizationVoResultBean.getData().getName(); ogrName = sysOrganizationVoResultBean.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(ogrName + "-" + sysUserVoResultBean.getData().getOrganizationName());
}else{ } else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
} }
} }
} }
if(flowTask.getProcessVariables().containsKey("orderNames")){ if (flowTask.getProcessVariables().containsKey("orderNames")) {
flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString()); flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString());
} }
hisTaskList.add(flowTask); hisTaskList.add(flowTask);
@ -994,7 +1027,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<FlowTask> rb = ResultBean.fireFail(); ResultBean<FlowTask> rb = ResultBean.fireFail();
if(dto.getFormVariables()==null) if (dto.getFormVariables() == null)
dto.setFormVariables(new HashMap<String, Object>()); dto.setFormVariables(new HashMap<String, Object>());
Map<String, Object> formVariables = dto.getFormVariables(); Map<String, Object> formVariables = dto.getFormVariables();
String taskId = (String) formVariables.get("taskId"); String taskId = (String) formVariables.get("taskId");
@ -1197,14 +1230,15 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param flowTaskVo * @param flowTaskVo
*/ */
public ResultBean<List<LatestTaskVo>> taskReject(FlowTaskVo flowTaskVo) { public ResultBean<List<LatestTaskVo>> taskReject(FlowTaskVo flowTaskVo) {
return taskReject_(flowTaskVo,false); return taskReject_(flowTaskVo, false);
} }
/** /**
* 驳回任务 * 驳回任务
* *
* @param flowTaskVo * @param flowTaskVo
*/ */
public ResultBean<List<LatestTaskVo>> taskReject_(FlowTaskVo flowTaskVo,boolean b) { public ResultBean<List<LatestTaskVo>> taskReject_(FlowTaskVo flowTaskVo, boolean b) {
// 当前任务 task // 当前任务 task
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult(); Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
if (task.isSuspended()) { if (task.isSuspended()) {
@ -1243,7 +1277,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 2); HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 2);
Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId()); Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId());
//Object o = actHiVarinstForOrgPath.get(BusinessVariables.ORGPATH); //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); List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
// 此时历史任务实例为倒序,获取最后走的节点 // 此时历史任务实例为倒序,获取最后走的节点
@ -1325,41 +1359,41 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.moveActivityIdsToSingleActivityId(currentIds, targetIds.get(0)).changeState(); .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> map2 = flowTaskMapper.getTaskByDefKey(task.getProcessInstanceId(), targetIds.get(0));
Map<String, Object> map = flowTaskMapper.getHistTaskByID(task.getProcessInstanceId(), targetIds.get(0)); Map<String, Object> map = flowTaskMapper.getHistTaskByID(task.getProcessInstanceId(), targetIds.get(0));
String assignee_ =item.getAssignee(); String assignee_ = item.getAssignee();
if(map.get("ASSIGNEE_")!=null){ if (map.get("ASSIGNEE_") != null) {
assignee_ = map.get("ASSIGNEE_").toString(); assignee_ = map.get("ASSIGNEE_").toString();
} }
if(map2==null){ if (map2 == null) {
continue; continue;
} }
String id_ = map2.get("id_").toString(); String id_ = map2.get("id_").toString();
ResultBean<List<LatestTaskVo>> listResultBean_2=null; ResultBean<List<LatestTaskVo>> listResultBean_2 = null;
if(flowTaskVo.getUserSid().equals(assignee_)){ if (flowTaskVo.getUserSid().equals(assignee_)) {
flowTaskVo.setTaskId(id_); flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_); flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId()); flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true); listResultBean_2 = taskReject_(flowTaskVo, true);
}else{ } else {
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(assignee_)){ if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(assignee_)) {
flowTaskVo.setUserId(flowTaskVo.getUserSid()); flowTaskVo.setUserId(flowTaskVo.getUserSid());
flowTaskVo.setTaskId(id_); flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_); flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId()); flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true); listResultBean_2 = taskReject_(flowTaskVo, true);
}else{ } else {
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(flowTaskVo.getUserSid()) && assignee_.equals(flowTaskVo.getUserId())){ if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(flowTaskVo.getUserSid()) && assignee_.equals(flowTaskVo.getUserId())) {
flowTaskVo.setTaskId(id_); flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_); flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId()); flowTaskVo.setTargetKey(item.getId());
flowTaskVo.setUserId(flowTaskVo.getUserSid()); flowTaskVo.setUserId(flowTaskVo.getUserSid());
listResultBean_2= taskReject_(flowTaskVo, true); listResultBean_2 = taskReject_(flowTaskVo, true);
}else{ } else {
taskService.setAssignee(id_, assignee_); 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 latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee()); latestTaskVo.setASSIGNEE_(item.getAssignee());
latestTaskVo.setId_(listResultBean_2!=null&&listResultBean_2.getData().size()!=0?listResultBean_2.getData().get(0).getId_():id_); 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.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.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.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.setOrgPath(listResultBean_2 != null && listResultBean_2.getData().size() != 0 ? listResultBean_2.getData().get(0).getOrgPath() : orgPath);
latestTaskList.add(latestTaskVo); latestTaskList.add(latestTaskVo);
} }
@ -1449,17 +1483,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private String getTaskId(String currentActivityId, String processInstanceId, String processDefinitionId) { private String getTaskId(String currentActivityId, String processInstanceId, String processDefinitionId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(currentActivityId); FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(currentActivityId);
List<SequenceFlow> list=flowNode.getIncomingFlows(); List<SequenceFlow> list = flowNode.getIncomingFlows();
if(list.size()==0){ if (list.size() == 0) {
return ""; return "";
} }
List<HistoricActivityInstance> list1=new ArrayList<>(); List<HistoricActivityInstance> list1 = new ArrayList<>();
for( SequenceFlow sequenceFlow:list){ for (SequenceFlow sequenceFlow : list) {
String sourceRef = sequenceFlow.getSourceRef(); String sourceRef = sequenceFlow.getSourceRef();
list1= historyService.createHistoricActivityInstanceQuery().activityId(sourceRef) list1 = historyService.createHistoricActivityInstanceQuery().activityId(sourceRef)
.processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().desc().list(); .processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().desc().list();
if(list1.size()>0){ if (list1.size() > 0) {
break; break;
} }
} }
@ -1472,7 +1506,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
} }
return historicActivityInstance.getTaskId(); 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(); HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(flowTaskVo.getTaskId()).singleResult();
Execution execution = runtimeService.createExecutionQuery().executionId(historicTaskInstance.getExecutionId()).singleResult(); Execution execution = runtimeService.createExecutionQuery().executionId(historicTaskInstance.getExecutionId()).singleResult();
DelegateExecution delegateExecution = (DelegateExecution) execution; DelegateExecution delegateExecution = (DelegateExecution) execution;
@ -1493,10 +1528,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String userSid = flowTaskVo.getUserSid(); String userSid = flowTaskVo.getUserSid();
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId()); ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId());
List<FlowTask> flowList = flowRecordVoResultBean.getData().getFlowList(); List<FlowTask> flowList = flowRecordVoResultBean.getData().getFlowList();
String ybrsid=""; String ybrsid = "";
int ii=0; int ii = 0;
FlowTask flowTask_1 = flowList.get(j+1); FlowTask flowTask_1 = flowList.get(j + 1);
List<TaskUserInfo> taskUserInfos_1 = flowTask_1.getTaskUserInfos(); List<TaskUserInfo> taskUserInfos_1 = flowTask_1.getTaskUserInfos();
TaskUserInfo taskUserInfo_1 = taskUserInfos_1.get(0); TaskUserInfo taskUserInfo_1 = taskUserInfos_1.get(0);
@ -1506,21 +1541,21 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String assigneeSid1 = taskUserInfo_1.getAssigneeSid(); String assigneeSid1 = taskUserInfo_1.getAssigneeSid();
String assigneeSid0 = taskUserInfo_0.getAssigneeSid(); String assigneeSid0 = taskUserInfo_0.getAssigneeSid();
if(!assigneeSid1.equals(assigneeSid0)){ if (!assigneeSid1.equals(assigneeSid0)) {
ybrsid=assignee; ybrsid = assignee;
}else{ } else {
FlowTask flowTask1 = flowList.get(1); 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); FlowTask flowTask = flowList.get(i);
List<TaskUserInfo> taskUserInfos = flowTask.getTaskUserInfos(); List<TaskUserInfo> taskUserInfos = flowTask.getTaskUserInfos();
TaskUserInfo taskUserInfo = taskUserInfos.get(0); TaskUserInfo taskUserInfo = taskUserInfos.get(0);
if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){ if (assigneeSid0.equals(taskUserInfo.getAssigneeSid())) {
if(!FlowComment.RECALL.getType().equals( flowTask1.getComment().getType())){ if (!FlowComment.RECALL.getType().equals(flowTask1.getComment().getType())) {
ii++; ii++;
} }
continue; continue;
}else{ } else {
ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid(); ybrsid = flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid();
break; break;
} }
} }
@ -1530,29 +1565,30 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("您不是上一环节处理人,不能进行撤回操作!").setData(new ArrayList<>()); return new ResultBean<List<LatestTaskVo>>().fail().setMsg("您不是上一环节处理人,不能进行撤回操作!").setData(new ArrayList<>());
} else { } else {
ResultBean<List<LatestTaskVo>> listResultBean = null; ResultBean<List<LatestTaskVo>> listResultBean = null;
for(int i=0;i<=ii;i++){ //ii==2的问题 for (int i = 0; i <= ii; i++) { //ii==2的问题
listResultBean = revokeProcess_(historicTaskInstance.getProcessInstanceId(),userSid); listResultBean = revokeProcess_(historicTaskInstance.getProcessInstanceId(), userSid);
} }
return listResultBean; return listResultBean;
} }
} }
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo) { public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo) {
return revokeProcess(flowTaskVo,0); return revokeProcess(flowTaskVo, 0);
} }
public HistoricTaskInstance returnInstance(HistoricTaskInstance historicTaskInstance1){ public HistoricTaskInstance returnInstance(HistoricTaskInstance historicTaskInstance1) {
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(historicTaskInstance1.getAssignee())){ if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(historicTaskInstance1.getAssignee())) {
String taskId = getTaskId(historicTaskInstance1.getTaskDefinitionKey(), historicTaskInstance1.getProcessInstanceId(), historicTaskInstance1.getProcessDefinitionId()); String taskId = getTaskId(historicTaskInstance1.getTaskDefinitionKey(), historicTaskInstance1.getProcessInstanceId(), historicTaskInstance1.getProcessDefinitionId());
historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult(); historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
return returnInstance(historicTaskInstance1); return returnInstance(historicTaskInstance1);
}else{ } else {
return historicTaskInstance1; return historicTaskInstance1;
} }
} }
// @Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId, private ResultBean<List<LatestTaskVo>> revokeProcess_(String processInstanceId,
String assignee ) { String assignee) {
// 流程回退到上一个节点,审批人继续审批 // 流程回退到上一个节点,审批人继续审批
// 获取流程定义信息 // 获取流程定义信息
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult(); Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
@ -1598,7 +1634,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.orderByHistoricTaskInstanceStartTime().asc().list(); .orderByHistoricTaskInstanceStartTime().asc().list();
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 1); HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 1);
Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId()); 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); List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
@ -1654,7 +1690,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
})); }));
// 设置撤回意见 // 设置撤回意见
currentTaskIds.forEach(item -> { currentTaskIds.forEach(item -> {
taskService.addComment(item, processInstanceId,FlowComment.RECALL.getType(), "撤回办理"); taskService.addComment(item, processInstanceId, FlowComment.RECALL.getType(), "撤回办理");
// 设置实际办理人 // 设置实际办理人
taskService.setAssignee(item, assignee); taskService.setAssignee(item, assignee);
}); });
@ -1686,7 +1722,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
latestTaskVo.setOrgPath(orgPath); latestTaskVo.setOrgPath(orgPath);
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(processInstanceId, item.getId()); 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); taskService.setAssignee(task_map.get("id_").toString(), assignee);
latestTaskVo.setId_(task_map.get("id_").toString()); latestTaskVo.setId_(task_map.get("id_").toString());
latestTaskList.add(latestTaskVo); latestTaskList.add(latestTaskVo);
@ -1855,8 +1891,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
int size = Integer.valueOf(businessTaskQuery.getSize() + ""); int size = Integer.valueOf(businessTaskQuery.getSize() + "");
int current = Integer.valueOf(businessTaskQuery.getCurrent() + ""); int current = Integer.valueOf(businessTaskQuery.getCurrent() + "");
List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields(); List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields();
String companySid=""; String companySid = "";
ResultBean<Page<FlowTaskDto>> resultBean = businessTodoList(userSid,companySid, fields, current, size); ResultBean<Page<FlowTaskDto>> resultBean = businessTodoList(userSid, companySid, fields, current, size);
return resultBean; return resultBean;
} }
@ -1866,6 +1902,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List<BusinessTaskParam> fields = taskQueryPagerQuery.getParams().getFields(); List<BusinessTaskParam> fields = taskQueryPagerQuery.getParams().getFields();
return businessFinishedList(userSid, fields, current, size); return businessFinishedList(userSid, fields, current, size);
} }
public ResultBean<Page<FlowTaskDto>> businessDoneListNewForApp(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { public ResultBean<Page<FlowTaskDto>> businessDoneListNewForApp(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) {
int size = Integer.valueOf(taskQueryPagerQuery.getSize() + ""); int size = Integer.valueOf(taskQueryPagerQuery.getSize() + "");
int current = Integer.valueOf(taskQueryPagerQuery.getCurrent() + ""); int current = Integer.valueOf(taskQueryPagerQuery.getCurrent() + "");
@ -1885,7 +1922,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean readXml(String deployId) { public ResultBean readXml(String deployId) {
ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult(); ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult();
if(definition==null){ if (definition == null) {
definition = repositoryService.createProcessDefinitionQuery().processDefinitionId(deployId).singleResult(); definition = repositoryService.createProcessDefinitionQuery().processDefinitionId(deployId).singleResult();
} }
InputStream inputStream = repositoryService.getResourceAsStream(definition.getDeploymentId(), definition.getResourceName()); InputStream inputStream = repositoryService.getResourceAsStream(definition.getDeploymentId(), definition.getResourceName());
@ -1901,83 +1938,85 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean getNextNodesForSubmit(BusinessVariables bv) { public ResultBean getNextNodesForSubmit(BusinessVariables bv) {
String modelId = null; String modelId = null;
if (bv.getModelId()!= null) { if (bv.getModelId() != null) {
modelId = bv.getModelId(); modelId = bv.getModelId();
} }
String procId = null; String procId = null;
if (bv.getModelId() != null) { if (bv.getModelId() != null) {
procId = bv.getModelId(); procId = bv.getModelId();
} }
if(bv.getFormVariables()==null) if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>()); bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables()); List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>(); ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>();
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
boolean endTask=true; boolean endTask = true;
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (int i=0;i<flowElements.size();i++) { for (int i = 0; i < flowElements.size(); i++) {
FlowElement f =flowElements.get(i); FlowElement f = flowElements.get(i);
if(i+1<flowElements.size()&&bv.getTaskDefKey().equals(f.getId())){ if (i + 1 < flowElements.size() && bv.getTaskDefKey().equals(f.getId())) {
f =flowElements.get(i+1); f = flowElements.get(i + 1);
map.put("name", f.getName()); map.put("name", f.getName());
map.put("id", f.getId()); map.put("id", f.getId());
String s = JSON.toJSONString(f); String s = JSON.toJSONString(f);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
Object candidateGroups = jsonObject.get("candidateGroups"); Object candidateGroups = jsonObject.get("candidateGroups");
map.put("candidateGroups", candidateGroups); map.put("candidateGroups", candidateGroups);
endTask=false; endTask = false;
map.put("endTask", endTask);} map.put("endTask", endTask);
} }
if(endTask){ }
if (endTask) {
map.put("name", "结束"); map.put("name", "结束");
map.put("id","endAction"); map.put("id", "endAction");
map.put("endTask", true); map.put("endTask", true);
map.put("candidateGroups", ""); map.put("candidateGroups", "");
} }
list.add(map); list.add(map);
return rb.setData(list); return rb.setData(list);
} }
public ResultBean getPreviousNodesForReject(BusinessVariables bv) { public ResultBean getPreviousNodesForReject(BusinessVariables bv) {
String modelId = null; String modelId = null;
if (bv.getModelId()!= null) { if (bv.getModelId() != null) {
modelId = bv.getModelId(); modelId = bv.getModelId();
} }
String procId = null; String procId = null;
if (bv.getModelId() != null) { if (bv.getModelId() != null) {
procId = bv.getModelId(); procId = bv.getModelId();
} }
if(bv.getFormVariables()==null) if (bv.getFormVariables() == null)
bv.setFormVariables(new HashMap<String, Object>()); bv.setFormVariables(new HashMap<String, Object>());
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables()); List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>(); ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>();
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
boolean startTask=true; boolean startTask = true;
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (int i=0;i<flowElements.size();i++) { for (int i = 0; i < flowElements.size(); i++) {
FlowElement f =flowElements.get(i); FlowElement f = flowElements.get(i);
if(i>0&&bv.getTaskDefKey().equals(f.getId())){ if (i > 0 && bv.getTaskDefKey().equals(f.getId())) {
f =flowElements.get(i-1); f = flowElements.get(i - 1);
map.put("name", f.getName()); map.put("name", f.getName());
map.put("id", f.getId()); map.put("id", f.getId());
String s = JSON.toJSONString(f); String s = JSON.toJSONString(f);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
Object candidateGroups = jsonObject.get("candidateGroups"); Object candidateGroups = jsonObject.get("candidateGroups");
map.put("candidateGroups", candidateGroups); map.put("candidateGroups", candidateGroups);
startTask=false; startTask = false;
map.put("startTask",startTask); map.put("startTask", startTask);
} }
} }
if(startTask){ if (startTask) {
map.put("name", ""); map.put("name", "");
map.put("id",""); map.put("id", "");
map.put("candidateGroups", ""); map.put("candidateGroups", "");
map.put("startTask",true); map.put("startTask", true);
} }
list.add(map); list.add(map);
return rb.setData(list); 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<>(); Page<FlowTaskDto> page = new Page<>();
TaskQuery taskQuery = taskService.createTaskQuery(); TaskQuery taskQuery = taskService.createTaskQuery();
String names = ""; 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(); startUserSidParams = btq.getValue();
} }
} }
if("proDefName".equals(btq.getField())){ if ("proDefName".equals(btq.getField())) {
names = btq.getValue(); names = btq.getValue();
} }
} }
TaskQuery or = taskQuery.active() TaskQuery or = taskQuery.active()
.includeProcessVariables() .includeProcessVariables();
; if (StringUtils.isNotBlank(orgPath)) {
if(StringUtils.isNotBlank(orgPath)){
/* or.taskVariableValueLike("orgPath", "%" + orgPath + "%");*/ /* or.taskVariableValueLike("orgPath", "%" + orgPath + "%");*/
} }
if(StringUtils.isNotBlank(names)){ if (StringUtils.isNotBlank(names)) {
or.or(); or.or();
or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%"); or.taskVariableValueLike("orderNames", "%" + names + "%").processDefinitionNameLike("%" + paramMap.get("proDefName") + "%");
or.endOr(); or.endOr();
} }
if(StringUtils.isNotBlank(startUserSidParams)){ if (StringUtils.isNotBlank(startUserSidParams)) {
or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%"); or.processVariableValueLike("INITIATOR", "%" + startUserSidParams + "%");
} }
or.taskAssigneeLike("%" + userSid + "%") 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")); // taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
} }
if (paramMap.get("endDate") != null && StringUtils.isNotBlank(paramMap.get("endDate").toString())) { 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); LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant())); taskQuery.taskCreatedBefore(Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()));
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd")); // taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -2067,32 +2106,32 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
.singleResult(); .singleResult();
flowTask.setProcessCreateTime(historicProcessInstance.getStartTime()); flowTask.setProcessCreateTime(historicProcessInstance.getStartTime());
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId()); ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId());
if(sysUserVoResultBean.getData() != null) { if (sysUserVoResultBean.getData() != null) {
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid()); flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName()); flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
// flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName()); // flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(),"createOrgPath",""); String createOrgPath = ConstantUtils.getString(flowTask.getProcessVariables(), "createOrgPath", "");
String ogrName=""; String ogrName = "";
if(StringUtils.isNotBlank(createOrgPath)){ if (StringUtils.isNotBlank(createOrgPath)) {
List<String> stringList = Arrays.asList(createOrgPath.split("/")); List<String> stringList = Arrays.asList(createOrgPath.split("/"));
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size()-1)); ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(stringList.get(stringList.size() - 1));
if(sysOrganizationVoResultBean.getData() != null){ if (sysOrganizationVoResultBean.getData() != null) {
if(StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())){ if (StringUtils.isNotBlank(sysOrganizationVoResultBean.getData().getPsid())) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid()); ResultBean<SysOrganizationVo> sysOrganizationVoResultBeanP = sysOrganizationFeign.fetchBySid(sysOrganizationVoResultBean.getData().getPsid());
if(sysOrganizationVoResultBeanP.getData() != null){ if (sysOrganizationVoResultBeanP.getData() != null) {
ogrName=sysOrganizationVoResultBeanP.getData().getName(); ogrName = sysOrganizationVoResultBeanP.getData().getName();
flowTask.setStartDeptName(ogrName+"-"+sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(ogrName + "-" + sysOrganizationVoResultBean.getData().getName());
} }
}else{ } else {
flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName()); flowTask.setStartDeptName(sysOrganizationVoResultBean.getData().getName());
} }
} }
}else{ } else {
flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName()); flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
} }
} }
ResultBean<SysUserVo> sysUserVoResultBean2 = sysUserFeign.fetchBySid(userSid); ResultBean<SysUserVo> sysUserVoResultBean2 = sysUserFeign.fetchBySid(userSid);
if(sysUserVoResultBean2.getData() != null) { if (sysUserVoResultBean2.getData() != null) {
flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName()); flowTask.setAssigneeName(sysUserVoResultBean2.getData().getName());
flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid()); flowTask.setAssigneeSid(sysUserVoResultBean2.getData().getSid());
flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName()); flowTask.setDeptName(sysUserVoResultBean2.getData().getOrganizationName());
@ -2100,10 +2139,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String procDefId = flowTask.getProcDefId(); String procDefId = flowTask.getProcDefId();
String taskDefKey = flowTask.getTaskDefKey(); String taskDefKey = flowTask.getTaskDefKey();
ResultBean<List<SysProUrlVo>> listResultBean = sysProUrlService.selectUrlByKey(procDefId, taskDefKey, "1", "2"); 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)); flowTask.setSysProUrlVo(listResultBean.getData().get(0));
} }
if(processVariables.containsKey("orderNames")){ if (processVariables.containsKey("orderNames")) {
flowTask.setProcDefName(processVariables.get("orderNames").toString()); flowTask.setProcDefName(processVariables.get("orderNames").toString());
} }
flowList.add(flowTask); flowList.add(flowTask);
@ -2113,23 +2152,23 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return rb.success().setData(page); return rb.success().setData(page);
} }
public ResultBean<List<Map<String,Object>>> yuyanTest(FlowableQuery flowableQuery) { public ResultBean<List<Map<String, Object>>> yuyanTest(FlowableQuery flowableQuery) {
ResultBean<List<Map<String,Object>>> rb = ResultBean.fireFail(); ResultBean<List<Map<String, Object>>> rb = ResultBean.fireFail();
List<Map<String,Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
String modelId = flowableQuery.getModelId(); String modelId = flowableQuery.getModelId();
Map<String,Object> map = flowableQuery.getMap(); Map<String, Object> map = flowableQuery.getMap();
boolean taskKeyTrue = false; 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()); List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
for (int i = 0; i < collect.size(); i++) { 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); FlowElement item = collect.get(i);
if(StringUtils.isBlank(flowableQuery.getTaskDefKey())){ if (StringUtils.isBlank(flowableQuery.getTaskDefKey())) {
log.info("flowElement:{}", item); log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName()); log.info("nodeName:{}", item.getName());
itemMap.put("nodeName",item.getName()); itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId()); log.info("nodeId:{}", item.getId());
itemMap.put("nodeId",item.getId()); itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item); String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject); log.info("item:{}", jsonObject);
@ -2143,17 +2182,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
} }
log.info("candidateGroups:{}", candidateGroups_arr); log.info("candidateGroups:{}", candidateGroups_arr);
list.add(itemMap); list.add(itemMap);
}else{ } else {
if(flowableQuery.getTaskDefKey().equals(item.getId())){ if (flowableQuery.getTaskDefKey().equals(item.getId())) {
taskKeyTrue = true; taskKeyTrue = true;
continue; continue;
} }
if(taskKeyTrue){ if (taskKeyTrue) {
log.info("flowElement:{}", item); log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName()); log.info("nodeName:{}", item.getName());
itemMap.put("nodeName",item.getName()); itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId()); log.info("nodeId:{}", item.getId());
itemMap.put("nodeId",item.getId()); itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item); String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject); log.info("item:{}", jsonObject);
@ -2181,7 +2220,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean assignTask(DelegateQuery delegateQuery) { public ResultBean assignTask(DelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
taskService.setAssignee(delegateQuery.getTaskId(),delegateQuery.getAssignee()); taskService.setAssignee(delegateQuery.getTaskId(), delegateQuery.getAssignee());
return rb.success(); 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="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="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="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 === '7'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '6'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '6'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
</p> </p>

Loading…
Cancel
Save