diff --git a/ruoyi-ui/src/api/business/workflow/activiti/task.js b/ruoyi-ui/src/api/business/workflow/activiti/task.js
index 4a9976e8..ff540420 100644
--- a/ruoyi-ui/src/api/business/workflow/activiti/task.js
+++ b/ruoyi-ui/src/api/business/workflow/activiti/task.js
@@ -9,6 +9,15 @@ export function listTask(query) {
})
}
+// 查询历史task列表
+export function listHistoryTask(query) {
+ return request({
+ url: '/workflow/task/historyList',
+ method: 'get',
+ params: query
+ })
+}
+
// 查询表单
export function formDataShow(taskID) {
return request({
diff --git a/ruoyi-ui/src/api/business/workflow/workflow/leave.js b/ruoyi-ui/src/api/business/workflow/workflow/leave.js
index 05b3bf6f..673ba1b7 100644
--- a/ruoyi-ui/src/api/business/workflow/workflow/leave.js
+++ b/ruoyi-ui/src/api/business/workflow/workflow/leave.js
@@ -8,14 +8,6 @@ export function listLeave(query) {
params: query
})
}
-// 查询请假列表
-export function listLeaveAll(query) {
- return request({
- url: '/workflow/workflow/leave/listAll',
- method: 'get',
- params: query
- })
-}
// 查询请假详细
export function getLeave(id) {
diff --git a/ruoyi-ui/src/views/business/workflow/activiti/task/history.vue b/ruoyi-ui/src/views/business/workflow/activiti/task/history.vue
new file mode 100644
index 00000000..0bceb2a2
--- /dev/null
+++ b/ruoyi-ui/src/views/business/workflow/activiti/task/history.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/business/workflow/workflow/leave/leaveAll.vue b/ruoyi-ui/src/views/business/workflow/workflow/leave/leaveAll.vue
deleted file mode 100644
index 0d2e61ec..00000000
--- a/ruoyi-ui/src/views/business/workflow/workflow/leave/leaveAll.vue
+++ /dev/null
@@ -1,228 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.leaveStartTime, '{y}-{m}-{d}') }}
-
-
-
-
- {{ parseTime(scope.row.leaveEndTime, '{y}-{m}-{d}') }}
-
-
-
-
-
-
- 审批详情
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
index bfb59e0e..b1fafecc 100644
--- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
@@ -60,7 +60,8 @@ public class MailServer {
* @param mailBean 邮箱实体
*/
@MailLog
- @Retryable(maxAttempts = 2, value = MailException.class) //当抛出MailException异常时,该方法重试两次
+ //当抛出MailException异常时,该方法重试两次
+ @Retryable(maxAttempts = 2, value = MailException.class)
public Boolean sendMail(MailBean mailBean) {
if (redisService.hasKey(MAIL_STATUS)) {
diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolNotebookServiceImpl.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolNotebookServiceImpl.java
index e5f9ae9e..1deed8f2 100644
--- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolNotebookServiceImpl.java
+++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolNotebookServiceImpl.java
@@ -34,7 +34,7 @@ public class ZolNotebookServiceImpl extends ServiceImpl i
});
//排序规则
- wr.orderByAsc(ZolPhone::getSort).orderByDesc(ZolPhone::getId);
+ wr.orderByDesc(ZolPhone::getId);
return this.page(startPageMP,wr);
}
diff --git a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/controller/TaskController.java b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/controller/TaskController.java
index d4d72069..799dfb12 100644
--- a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/controller/TaskController.java
+++ b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/controller/TaskController.java
@@ -35,11 +35,22 @@ public class TaskController extends BaseController {
@RequiresPermissions("activiti:task:list")
public TableDataInfo getTasks() {
PageDomain pageDomain = TableSupport.buildPageRequest();
- Page hashMaps = actTaskService.selectProcessDefinitionList(pageDomain);
+ Page hashMaps = actTaskService.selectTaskList(pageDomain);
return getDataTable(hashMaps);
}
+ //获取我的历史任务
+ @GetMapping("historyList")
+ @RequiresPermissions("activiti:task:historyList")
+ public TableDataInfo getHistoryTasks() {
+ PageDomain pageDomain = TableSupport.buildPageRequest();
+ Page hashMaps = actTaskService.selectHistoryTaskList(pageDomain);
+ return getDataTable(hashMaps);
+ }
+
+
+
//渲染表单
@GetMapping(value = "/formDataShow/{taskID}")
@RequiresPermissions("activiti:task:query")
diff --git a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/domain/dto/ActTaskDTO.java b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/domain/dto/ActTaskDTO.java
index d8cfc7e7..0b92d5f0 100644
--- a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/domain/dto/ActTaskDTO.java
+++ b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/domain/dto/ActTaskDTO.java
@@ -1,8 +1,9 @@
package com.xjs.activiti.domain.dto;
-import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.activiti.api.task.model.Task;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.runtime.ProcessInstance;
import java.util.Date;
@@ -24,8 +25,10 @@ public class ActTaskDTO extends BaseEntity {
private String status;
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createdDate;
+
+ private Date endDate;
+
private String instanceName;
private String definitionKey;
private String businessKey;
@@ -49,6 +52,25 @@ public class ActTaskDTO extends BaseEntity {
this.businessKey = processInstance.getBusinessKey();
}
+ public ActTaskDTO(HistoricTaskInstance historicTaskInstance, HistoricProcessInstance processInstance) {
+ this.id = historicTaskInstance.getId();
+ this.processInstanceId = historicTaskInstance.getProcessInstanceId();
+ this.name = historicTaskInstance.getName();
+ this.createdDate = historicTaskInstance.getCreateTime();
+ this.endDate = historicTaskInstance.getEndTime();
+ this.instanceName = processInstance.getName();
+ this.definitionKey = processInstance.getProcessDefinitionKey();
+ this.businessKey = processInstance.getBusinessKey();
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
+ }
+
public String getProcessInstanceId() {
return processInstanceId;
}
diff --git a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/IActTaskService.java b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/IActTaskService.java
index ccd25580..826528cf 100644
--- a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/IActTaskService.java
+++ b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/IActTaskService.java
@@ -17,11 +17,11 @@ import java.util.List;
public interface IActTaskService {
/**
- * 查询流程定义列表
+ * 查询待办任务列表
* @param pageDomain 分页参数
* @return
*/
- Page selectProcessDefinitionList(PageDomain pageDomain);
+ Page selectTaskList(PageDomain pageDomain);
/**
* 根据任务id查询表格数据
@@ -40,4 +40,11 @@ public interface IActTaskService {
* @throws ParseException
*/
int formDataSave(String taskID, List awfs) throws ParseException;
+
+ /**
+ * 查询已办任务
+ * @param pageDomain -分页参数
+ * @return page
+ */
+ Page selectHistoryTaskList(PageDomain pageDomain);
}
diff --git a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/impl/ActTaskServiceImpl.java b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/impl/ActTaskServiceImpl.java
index 6c0f5de3..76db7f36 100644
--- a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/impl/ActTaskServiceImpl.java
+++ b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/activiti/service/impl/ActTaskServiceImpl.java
@@ -21,7 +21,10 @@ import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
+import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
+import org.activiti.engine.history.HistoricTaskInstanceQuery;
+import org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntityImpl;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.TaskQuery;
import org.activiti.runtime.api.model.impl.APITaskConverter;
@@ -64,7 +67,7 @@ public class ActTaskServiceImpl implements IActTaskService {
@Override
- public Page selectProcessDefinitionList(PageDomain pageDomain) {
+ public Page selectTaskList(PageDomain pageDomain) {
Page list = new Page();
//org.activiti.api.runtime.shared.query.Page pageTasks = taskRuntime
@@ -109,6 +112,15 @@ public class ActTaskServiceImpl implements IActTaskService {
org.activiti.engine.task.Task task = taskService.createTaskQuery().taskId(taskID).singleResult();
+ UserTask userTask;
+ if (task == null) {
+ HistoricTaskInstance historicTask = historyService.createHistoricTaskInstanceQuery().taskId(taskID).singleResult();
+ userTask = (UserTask) repositoryService.getBpmnModel(historicTask.getProcessDefinitionId()).getFlowElement(historicTask.getFormKey());
+
+ } else {
+ userTask = (UserTask) repositoryService.getBpmnModel(task.getProcessDefinitionId()).getFlowElement(task.getFormKey());
+ }
+
/* ------------------------------------------------------------------------------
FormProperty_0ueitp2--__!!类型--__!!名称--__!!是否参数--__!!默认值
例子:
@@ -121,7 +133,6 @@ public class ActTaskServiceImpl implements IActTaskService {
*/
//注意!!!!!!!!:表单Key必须要任务编号一模一样,因为参数需要任务key,但是无法获取,只能获取表单key“task.getFormKey()”当做任务key
- UserTask userTask = (UserTask) repositoryService.getBpmnModel(task.getProcessDefinitionId()).getFlowElement(task.getFormKey());
if (userTask == null) {
return null;
@@ -171,6 +182,46 @@ public class ActTaskServiceImpl implements IActTaskService {
return actWorkflowFormDataService.insertActWorkflowFormDatas(acwfds);
}
+ @Override
+ public Page selectHistoryTaskList(PageDomain pageDomain) {
+ Page list = new Page();
+
+ Pageable pageable = Pageable.of((pageDomain.getPageNum() - 1) * pageDomain.getPageSize(), pageDomain.getPageSize());
+ String username = SecurityUtils.getUsername();
+ List postCode = SecurityUtils.getLoginUser().getSysUser().getPostCode();
+ HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
+ .or()
+ .taskAssignee(username)
+ .taskOwner(username)
+ .taskCandidateUser(username, postCode)
+ .endOr();
+
+ List taskInstanceList = taskInstanceQuery.orderByHistoricTaskInstanceStartTime().desc().listPage(pageable.getStartIndex(), pageable.getMaxItems());
+
+ Set processInstanceIdIds = taskInstanceList.parallelStream().map(HistoricTaskInstance::getProcessInstanceId).collect(Collectors.toSet());
+ List processInstanceList = new ArrayList<>();
+ if (CollUtil.isNotEmpty(processInstanceIdIds)) {
+ processInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIdIds).list();
+ }
+
+ List finalProcessInstanceList = processInstanceList;
+ List actTaskDTOS = taskInstanceList.stream()
+ .map(t ->
+
+ new ActTaskDTO(t, finalProcessInstanceList.parallelStream()
+ .filter(pi ->
+ t.getProcessInstanceId().equals(pi.getId())).findAny().orElse(new HistoricProcessInstanceEntityImpl())
+ )
+ )
+ .collect(Collectors.toList());
+ list.addAll(actTaskDTOS);
+
+ long count = taskInstanceQuery.count();
+ list.setTotal(count);
+
+ return list;
+ }
+
/**
* task创建查询
@@ -188,7 +239,9 @@ public class ActTaskServiceImpl implements IActTaskService {
.taskCandidateOrAssigned(username, postCode)
.taskOwner(username)
.endOr();
- List tasks = taskConverter.from(taskQuery.listPage(pageable.getStartIndex(), pageable.getMaxItems()));
+
+ List list = taskQuery.listPage(pageable.getStartIndex(), pageable.getMaxItems());
+ List tasks = taskConverter.from(list);
return new PageImpl<>(tasks, Math.toIntExact(taskQuery.count()));
}
}
diff --git a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/workflow/leave/controller/WorkflowLeaveController.java b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/workflow/leave/controller/WorkflowLeaveController.java
index d052d36e..04ef9426 100644
--- a/xjs-business/xjs-business-workflow/src/main/java/com/xjs/workflow/leave/controller/WorkflowLeaveController.java
+++ b/xjs-business/xjs-business-workflow/src/main/java/com/xjs/workflow/leave/controller/WorkflowLeaveController.java
@@ -49,18 +49,6 @@ public class WorkflowLeaveController extends BaseController {
return getDataTable(list);
}
- /**
- * 查询请假列表
- */
- @GetMapping("/listAll")
- @RequiresPermissions("workflow:leave:list")
- @ApiOperation("查询请假列表")
- public TableDataInfo listAll(WorkflowLeave workflowLeave) {
- startPage();
- List list = workflowLeaveService.selectWorkflowLeaveList(workflowLeave);
- return getDataTable(list);
- }
-
/**
* 导出请假列表
*/