增加当前流程审核记录和当前流程图
parent
0dbf746912
commit
f09f66dcaf
|
@ -12,9 +12,9 @@ public class ActConstant {
|
|||
public static final String PROC_DEF_KEY="procDefKey";
|
||||
|
||||
/**
|
||||
* 第一个用户任务 即:发起申请任务
|
||||
* 发起审批节点
|
||||
*/
|
||||
public static final int TASK_INDEX_FIRST_USER_TASK= 1;
|
||||
public static final int TASK_INDEX_FIRST_USER_TASK= 2;
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,6 +2,7 @@ package cn.palmte.work.controller.backend;
|
|||
|
||||
import cn.palmte.work.bean.*;
|
||||
import cn.palmte.work.model.*;
|
||||
import cn.palmte.work.pojo.ActHisTask;
|
||||
import cn.palmte.work.service.ProjectBudgetService;
|
||||
import cn.palmte.work.service.ProjectEstimateService;
|
||||
import cn.palmte.work.service.ProjectFinalSevice;
|
||||
|
@ -14,6 +15,9 @@ import cn.palmte.work.utils.excel.ExportUtils;
|
|||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.activiti.engine.HistoryService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.history.HistoricProcessInstance;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -55,6 +59,10 @@ public class ProjectController extends BaseController {
|
|||
private ProjectInstanceRelationRepository projectInstanceRelationRepository;
|
||||
@Autowired
|
||||
private ProjectFinalSevice projectFinalSevice;
|
||||
@Autowired
|
||||
private HistoryService historyService;
|
||||
@Autowired
|
||||
private ActTaskDefService actTaskDefService;
|
||||
|
||||
/**
|
||||
* 项目列表
|
||||
|
@ -411,6 +419,20 @@ public class ProjectController extends BaseController {
|
|||
if (list != null && !list.isEmpty()) {
|
||||
model.put("list", list);
|
||||
}
|
||||
|
||||
List<ProjectInstanceRelation> relationList = projectInstanceRelationRepository.findByProjectIdOrderByCreateTimeDesc(projectId);
|
||||
if (relationList != null && !relationList.isEmpty()) {
|
||||
String procInsId = relationList.get(0).getProcessInsId();
|
||||
|
||||
List<ActHisTask> hisTaskList = actTaskDefService.hisTaskList(procInsId);
|
||||
model.put("taskList", hisTaskList);
|
||||
|
||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procInsId).singleResult();
|
||||
if (historicProcessInstance != null) {
|
||||
model.put("procDefName", historicProcessInstance.getProcessDefinitionName());
|
||||
}
|
||||
}
|
||||
|
||||
return "admin/project_task_record_list";
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ public class ActTaskDef {
|
|||
private String rollbackTaskKey;
|
||||
|
||||
/**
|
||||
* 节点位置 -1结束节点 0-开始节点 1-第一个用户任务
|
||||
* 任务节点位置 -1结束节点 0-未知或者其他节点 1-开始节点 2-发起审批节点
|
||||
*/
|
||||
@Column(name = "task_index")
|
||||
private int taskIndex;
|
||||
|
|
|
@ -63,4 +63,10 @@ public class ProjectTaskRecord {
|
|||
@Transient
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 任务节点位置 -1结束节点 0-未知或者其他节点 1-开始节点 2-发起审批节点
|
||||
*/
|
||||
@Column(name = "task_index")
|
||||
private int taskIndex;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import top.jfunc.common.db.QueryHelper;
|
||||
import top.jfunc.common.db.bean.Page;
|
||||
import top.jfunc.common.db.utils.Pagination;
|
||||
|
@ -72,6 +74,7 @@ public class ActProcInsService {
|
|||
* @param variables
|
||||
* @return
|
||||
*/
|
||||
@Transactional(propagation = Propagation.NOT_SUPPORTED)
|
||||
public String startProcessInstance(String procDefKey, String businessKey, Map<String, Object> variables) throws Exception {
|
||||
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionKey(procDefKey).active().orderByProcessDefinitionVersion().desc().list();
|
||||
if (list == null || list.isEmpty()) {
|
||||
|
@ -92,18 +95,18 @@ public class ActProcInsService {
|
|||
throw new Exception("procDefKey(" + procDefKey + ")启动异常");
|
||||
}
|
||||
|
||||
//设置发起人为办理人 然后完成任务 任务转入下一个审批节点
|
||||
task.setAssignee(adminId);
|
||||
String taskId = task.getId();
|
||||
String comment = "提交" + processDefinition.getName();
|
||||
Authentication.setAuthenticatedUserId(adminId);
|
||||
taskService.addComment(taskId, procInsId, comment);
|
||||
taskService.complete(taskId);
|
||||
|
||||
//设置发起人为办理人 然后完成任务 任务转入下一个审批节点
|
||||
task.setAssignee(adminId);
|
||||
taskService.complete(taskId);
|
||||
|
||||
if (actUtil.isProjectProcessIns(processInstance)) {
|
||||
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()),
|
||||
task, ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus(), comment);
|
||||
task, ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus(), ActConstant.TASK_INDEX_FIRST_USER_TASK, comment);
|
||||
}
|
||||
|
||||
return processInstance.getId();
|
||||
|
|
|
@ -30,7 +30,7 @@ public class ActTaskDefService {
|
|||
@Autowired
|
||||
private ProjectTaskRecordService projectTaskRecordService;
|
||||
@Autowired
|
||||
private RepositoryService repositoryService;
|
||||
private HistoryService historyService;
|
||||
@Autowired
|
||||
private TaskService taskService; //任务管理 与正在执行的任务管理相关的Service
|
||||
@Autowired
|
||||
|
@ -80,7 +80,8 @@ public class ActTaskDefService {
|
|||
|
||||
if (actUtil.isProjectProcessIns(processInstance)) {
|
||||
//保存审批记录
|
||||
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()), currentTask, type, message);
|
||||
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()),
|
||||
currentTask, type, actTaskDef.getTaskIndex(), message);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ public class ProjectTaskRecordService {
|
|||
* @param status
|
||||
* @param comment
|
||||
*/
|
||||
public void saveTaskRecord(int projectId, Task task, int status, String comment) {
|
||||
public void saveTaskRecord(int projectId, Task task, int status, int taskIndex, String comment) {
|
||||
task.getProcessDefinitionId();
|
||||
ProjectTaskRecord record = new ProjectTaskRecord();
|
||||
record.setProjectId(projectId);
|
||||
|
@ -48,6 +48,7 @@ public class ProjectTaskRecordService {
|
|||
record.setTaskStatus(status);
|
||||
record.setAssigneeId(InterfaceUtil.getAdminId() + "");
|
||||
record.setAssigneeName(InterfaceUtil.getAdmin().getRealName());
|
||||
record.setTaskIndex(taskIndex);
|
||||
record.setCreateTime(new Date());
|
||||
try {
|
||||
projectTaskRecordRepository.save(record);
|
||||
|
|
|
@ -11,8 +11,9 @@
|
|||
</div>
|
||||
<div class="am-tabs am-margin" data-am-tabs>
|
||||
<ul class="am-tabs-nav am-nav am-nav-tabs">
|
||||
<li class="am-active"><a href="#tab1">审核记录</a></li>
|
||||
<li><a href="#tab2">流程图</a></li>
|
||||
<li class="am-active"><a href="#tab1">项目整体审核记录</a></li>
|
||||
<li><a href="#tab2">当前流程审核记录</a></li>
|
||||
<li><a href="#tab3">当前流程图</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="am-tabs-bd">
|
||||
|
@ -47,6 +48,46 @@
|
|||
|
||||
<div class="am-tabs-bd">
|
||||
<div class="am-tab-panel am-fade am-in" id="tab2">
|
||||
<h1>${procDefName!}</h1>
|
||||
<div class="am-u-sm-12 am-scrollable-horizontal">
|
||||
<!-- padding:1px 2px 3px 4px;上、右、下,和左 -->
|
||||
<table class="am-table am-table-striped am-table-hover table-main">
|
||||
<thead>
|
||||
<tr class="am-text-nowrap">
|
||||
<th class="table-title">序号</th>
|
||||
<th class="table-title">任务节点</th>
|
||||
<th class="table-title">处理人</th>
|
||||
<th class="table-date">开始时间</th>
|
||||
<th class="table-date">结束时间</th>
|
||||
<th class="table-date">用时</th>
|
||||
<th class="table-set am-text-center">意见</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<#if (taskList)?exists>
|
||||
<#list taskList as list>
|
||||
<tr>
|
||||
<td>${list_index+1!}</td>
|
||||
<td>${list.taskName!}</td>
|
||||
<td>${list.assign!}</td>
|
||||
<td>${list.startTime?datetime}</td>
|
||||
<td><#if list.endTime??>
|
||||
${list.endTime?datetime}
|
||||
</#if></td>
|
||||
<td>${list.duration!}</td>
|
||||
<td>${list.comments!}</td>
|
||||
</tr>
|
||||
</#list>
|
||||
</#if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-tabs-bd">
|
||||
<div class="am-tab-panel am-fade am-in" id="tab3">
|
||||
<h1>${procDefName!}</h1>
|
||||
<img id="img" name="img" style="width: 950px" src="${base}/project/procInsPng/${projectId}">
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue