|
@@ -351,7 +351,7 @@ public class FlowTaskService {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public Page <ProcessVo> todoList(Page <ProcessVo> page, Flow flow) {
|
|
|
+ public Page <ProcessVo> todoList(Page <ProcessVo> page, Flow flow, String type) {
|
|
|
List <HashMap <String, String>> result = new ArrayList <HashMap <String, String>> ( );
|
|
|
String userId = userApi.getByToken ( TokenProvider.getCurrentToken ( ) ).getId ( );//ObjectUtils.toString(UserUtils.getUser().getId());
|
|
|
// =============== 已经签收或者等待签收的任务 ===============
|
|
@@ -390,28 +390,45 @@ public class FlowTaskService {
|
|
|
}
|
|
|
List records = Lists.newArrayList ( );
|
|
|
for (Task task : todoList) {
|
|
|
- Process process = SpringUtil.getBean ( RepositoryService.class ).getBpmnModel ( task.getProcessDefinitionId ( ) ).getMainProcess ( );
|
|
|
- ProcessVo processVo = new ProcessVo ( );
|
|
|
- TaskVo taskVo = new TaskVo ( task );
|
|
|
- taskVo.setProcessDefKey ( process.getId ( ) );
|
|
|
- processVo.setTask ( taskVo );
|
|
|
- processVo.setVars ( task.getProcessVariables ( ) );
|
|
|
- processVo.setProcessDefinitionName ( ProcessDefCache.get ( task.getProcessDefinitionId ( ) ).getName ( ) );
|
|
|
- processVo.setVersion ( ProcessDefCache.get ( task.getProcessDefinitionId ( ) ).getVersion ( ) );
|
|
|
- processVo.setStatus ( "todo" );
|
|
|
- records.add ( processVo );
|
|
|
+
|
|
|
+ String processDefinitionId = task.getProcessDefinitionId();
|
|
|
+ String processName = ProcessDefCache.get(processDefinitionId).getName();
|
|
|
+
|
|
|
+ // 如果类型为 "ydd" 并且流程名称满足条件,或者类型为空
|
|
|
+ if (("ydd".equals(type) && isRequiredProcess(processName)) || StringUtils.isBlank(type)) {
|
|
|
+ Process process = SpringUtil.getBean ( RepositoryService.class ).getBpmnModel ( task.getProcessDefinitionId ( ) ).getMainProcess ( );
|
|
|
+
|
|
|
+ ProcessVo processVo = new ProcessVo();
|
|
|
+ TaskVo taskVo = new TaskVo(task);
|
|
|
+
|
|
|
+ taskVo.setProcessDefKey ( process.getId ( ) );
|
|
|
+ processVo.setTask(taskVo);
|
|
|
+ processVo.setVars(task.getProcessVariables());
|
|
|
+ processVo.setProcessDefinitionName(processName);
|
|
|
+ processVo.setVersion(ProcessDefCache.get(processDefinitionId).getVersion());
|
|
|
+ processVo.setStatus("todo");
|
|
|
+
|
|
|
+ records.add(processVo);
|
|
|
+ }
|
|
|
}
|
|
|
page.setRecords ( records );
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ // 判断流程名称是否满足条件
|
|
|
+ private boolean isRequiredProcess(String processName) {
|
|
|
+ return processName.equals("物资管理-领用申请") ||
|
|
|
+ processName.equals("物资管理-采购申请") ||
|
|
|
+ processName.equals("嘉溢-请假申请");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取已办任务列表
|
|
|
*
|
|
|
* @param page
|
|
|
* @return
|
|
|
*/
|
|
|
- public Page <HisTaskVo> historicList(Page <HisTaskVo> page, Flow act) {
|
|
|
+ public Page <HisTaskVo> historicList(Page <HisTaskVo> page, Flow act, String type) {
|
|
|
String userId = userApi.getByToken ( TokenProvider.getCurrentToken ( ) ).getId ( );
|
|
|
|
|
|
HistoricTaskInstanceQuery histTaskQuery = historyService.createHistoricTaskInstanceQuery ( ).taskAssignee ( userId ).finished ( )
|
|
@@ -447,28 +464,31 @@ public class FlowTaskService {
|
|
|
|
|
|
List records = Lists.newArrayList ( );
|
|
|
for (HistoricTaskInstance histTask : histList) {
|
|
|
- HisTaskVo hisTaskVo = new HisTaskVo ( histTask );
|
|
|
- hisTaskVo.setProcessDefinitionName ( ProcessDefCache.get ( histTask.getProcessDefinitionId ( ) ).getName ( ) );
|
|
|
- hisTaskVo.setBack ( isBack ( histTask ) );
|
|
|
- List <Task> currentTaskList = taskService.createTaskQuery ( ).processInstanceId ( histTask.getProcessInstanceId ( ) ).list ( );
|
|
|
- if ( ((List) currentTaskList).size ( ) > 0 ) {
|
|
|
- TaskVo currentTaskVo = new TaskVo ( currentTaskList.get ( 0 ) );
|
|
|
- hisTaskVo.setCurrentTask ( currentTaskVo );
|
|
|
- }
|
|
|
|
|
|
+ String processDefinitionId = histTask.getProcessDefinitionId();
|
|
|
+ String processName = ProcessDefCache.get(processDefinitionId).getName();
|
|
|
+ if (("ydd".equals(type) && isRequiredProcess(processName)) || StringUtils.isBlank(type)){
|
|
|
+ HisTaskVo hisTaskVo = new HisTaskVo ( histTask );
|
|
|
+ hisTaskVo.setProcessDefinitionName ( ProcessDefCache.get ( histTask.getProcessDefinitionId ( ) ).getName ( ) );
|
|
|
+ hisTaskVo.setBack ( isBack ( histTask ) );
|
|
|
+ List <Task> currentTaskList = taskService.createTaskQuery ( ).processInstanceId ( histTask.getProcessInstanceId ( ) ).list ( );
|
|
|
+ if ( ((List) currentTaskList).size ( ) > 0 ) {
|
|
|
+ TaskVo currentTaskVo = new TaskVo ( currentTaskList.get ( 0 ) );
|
|
|
+ hisTaskVo.setCurrentTask ( currentTaskVo );
|
|
|
+ }
|
|
|
|
|
|
- // 获取意见评论内容
|
|
|
-
|
|
|
- List <TaskComment> commentList = this.getTaskComments ( histTask.getId ( ) );
|
|
|
- if ( commentList.size ( ) > 0 ) {
|
|
|
- TaskComment comment = commentList.get ( commentList.size ( ) - 1 );
|
|
|
- hisTaskVo.setComment ( comment.getMessage ( ) );
|
|
|
- hisTaskVo.setLevel ( comment.getLevel ( ) );
|
|
|
- hisTaskVo.setType ( comment.getType ( ) );
|
|
|
- hisTaskVo.setStatus ( comment.getStatus ( ) );
|
|
|
+ // 获取意见评论内容
|
|
|
+ List <TaskComment> commentList = this.getTaskComments ( histTask.getId ( ) );
|
|
|
+ if ( commentList.size ( ) > 0 ) {
|
|
|
+ TaskComment comment = commentList.get ( commentList.size ( ) - 1 );
|
|
|
+ hisTaskVo.setComment ( comment.getMessage ( ) );
|
|
|
+ hisTaskVo.setLevel ( comment.getLevel ( ) );
|
|
|
+ hisTaskVo.setType ( comment.getType ( ) );
|
|
|
+ hisTaskVo.setStatus ( comment.getStatus ( ) );
|
|
|
|
|
|
+ }
|
|
|
+ records.add ( hisTaskVo );
|
|
|
}
|
|
|
- records.add ( hisTaskVo );
|
|
|
}
|
|
|
page.setRecords ( records );
|
|
|
return page;
|
|
@@ -566,7 +586,7 @@ public class FlowTaskService {
|
|
|
* @param user
|
|
|
* @return
|
|
|
*/
|
|
|
- public Page <ProcessVo> getMyStartedProcIns(UserDTO user, Page <ProcessVo> page, Flow flow) throws Exception {
|
|
|
+ public Page <ProcessVo> getMyStartedProcIns(UserDTO user, Page <ProcessVo> page, Flow flow, String type) throws Exception {
|
|
|
HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery ( ).startedBy ( user.getId ( ) ).includeProcessVariables ( ).orderByProcessInstanceStartTime ( ).desc ( );
|
|
|
if ( flow.getBeginDate ( ) != null ) {
|
|
|
query.startedAfter ( flow.getBeginDate ( ) );
|
|
@@ -587,6 +607,27 @@ public class FlowTaskService {
|
|
|
int size = (int) (page.getSize ( ));
|
|
|
histList = query.involvedUser ( user.getId ( ) ).listPage ( start, size );
|
|
|
}
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(type)) {
|
|
|
+ if (type.equals("ydd")) {
|
|
|
+ // 创建一个包含需要保留的流程定义名称的集合
|
|
|
+ List<String> requiredNames = Arrays.asList("物资管理-领用申请", "物资管理-采购申请", "嘉溢-请假申请");
|
|
|
+ /**
|
|
|
+ * 移动端工作台数据处理
|
|
|
+ */
|
|
|
+ // 使用流操作筛选出符合条件的流程定义
|
|
|
+ //它首先创建了一个包含需要保留的流程定义名称的集合 requiredNames,
|
|
|
+ // 然后使用 stream() 方法将流程定义列表转换为流,
|
|
|
+ // 接着使用 filter 方法筛选出名称在 requiredNames 中的流程定义,
|
|
|
+ // 最后使用 collect 方法将结果收集到一个新的列表中
|
|
|
+ List<HistoricProcessInstance> newList = histList.stream()
|
|
|
+ .filter(processDefinition -> requiredNames.contains(processDefinition.getProcessDefinitionName()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ histList.clear();
|
|
|
+ histList.addAll(newList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List records = Lists.newArrayList ( );
|
|
|
for (HistoricProcessInstance historicProcessInstance : histList) {
|
|
|
ProcessVo processVo = flowProcessService.queryProcessState ( historicProcessInstance.getProcessDefinitionId ( ), historicProcessInstance.getId ( ) );
|