From ad7cbfd8fd19fcce4345a4907c1f059a34c2869b Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 11 十二月 2025 15:49:15 +0800
Subject: [PATCH] 工作台
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 46 insertions(+), 5 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 4ac381a..a20d918 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -8,7 +8,6 @@
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.common.constant.ProcessConstants;
import com.ycl.common.constant.ProcessOverTimeConstants;
-import com.ycl.common.core.domain.AjaxResult;
import com.ycl.common.core.domain.entity.SysDept;
import com.ycl.common.core.domain.entity.SysDictData;
import com.ycl.common.core.domain.entity.SysRole;
@@ -96,7 +95,7 @@
private final ProcessLogService processLogService;
private final ISysDictTypeService dictTypeService;
private final ProcessConfigInfoService processConfigInfoService;
-
+ private final AuditHistoryService auditHistoryService;
/**
* 鍒嗛〉鏌ヨ
*
@@ -199,6 +198,7 @@
public Result startProcess(ProjectProcessForm form) {
Long unitId = null;
if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ //鑾峰緱椤圭洰淇℃伅
ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
.eq(ProjectInfo::getId, form.getProjectId())
.one();
@@ -207,6 +207,7 @@
}
unitId = project.getProjectOwnerUnit();
} else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ //鑾峰緱宸ョ▼淇℃伅
ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
.eq(ProjectEngineering::getId, form.getProjectId())
.one();
@@ -219,7 +220,9 @@
if (Objects.isNull(dept)) {
throw new RuntimeException("涓氫富鍗曚綅涓嶅瓨鍦�");
}
+ //鍚姩娴佺▼
String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
+ //鎻掑叆椤圭洰娴佺▼淇℃伅琛�
ProjectProcess entity = new ProjectProcess();
entity.setProjectId(form.getProjectId());
entity.setProcessDefId(form.getProcessDefId());
@@ -242,7 +245,7 @@
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId)
- .latestVersion().singleResult();
+ .latestVersion().singleResult();// 鏌ヨ鏈�鏂扮増鏈殑娴佺▼瀹氫箟 娴佺▼瀹氫箟瀵硅薄
if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) {
throw new RuntimeException("璇ユ祦绋嬪凡琚寕璧�,璇峰厛婵�娲绘祦绋�");
}
@@ -254,6 +257,7 @@
// 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉
variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy);
variables.put("a", 1);
+ //灏嗗弬鏁版斁鍏lowable娴佺▼寮曟搸骞跺惎鍔ㄦ祦绋�
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables);
return processInstance.getId();
}
@@ -736,6 +740,7 @@
if (Objects.isNull(task)) {
throw new RuntimeException("鏈湪杩愯浠诲姟涓壘鍒拌浠诲姟锛屾棤娉曟墽琛岃浆鍔炴搷浣�");
}
+ //閫氳繃IdentityLink锛堣韩浠介摼鎺ワ級鑾峰彇浠诲姟鐨勫師澶勭悊浜� / 缁勶紝鍒嗕袱绉嶆儏鍐垫竻鐞嗭細
List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId());
// 杞姙涔嬪墠鐨勫鐞嗕汉
List<String> beforeHandlerIds = new ArrayList<>(2);
@@ -810,9 +815,44 @@
// 鍙戝竷杞姙浜嬩欢
publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.DELEGATE, jsonData));
+
+ AuditHistoryForm auditHistoryForm =
+ buildForm(task.getId(),
+ task.getTaskDefinitionKey(),
+ null,
+ SecurityUtils.getDeptId() + "",
+ AuditTypeEnum.Submit.name(),
+ form.getProjectId(),
+ "t_project_info",
+ task.getName()
+ );
+ auditHistoryService.add(auditHistoryForm);
return Result.ok("杞姙鎴愬姛");
}
+ public AuditHistoryForm buildForm(
+ String taskId,
+ String taskDefinitionKey,
+ String viewer,
+ String commitDept,
+ String auditType,
+ String businessKey,
+ String businessTable,
+ String content) {
+ AuditHistoryForm auditHistoryForm = new AuditHistoryForm();
+ auditHistoryForm.setTaskId(taskId);
+ auditHistoryForm.setTaskDefinitionKey(taskDefinitionKey);
+ auditHistoryForm.setViewer(viewer);
+ auditHistoryForm.setCommitDept(commitDept);
+ auditHistoryForm.setAuditType(auditType);
+ auditHistoryForm.setBusinessKey(businessKey);
+ auditHistoryForm.setBusinessTable(businessTable);
+ auditHistoryForm.setContent(content);
+ // 5. 鐗规畩瀛楁榛樿鍊硷細isRead 榛樿涓� 锛堟湭璇伙級
+ auditHistoryForm.setIsRead(AuditHistoryEnum.UN_READ.name());
+
+ return auditHistoryForm;
+ }
@Override
@Transactional(rollbackFor = Exception.class)
public Result taskJump(TaskJumpForm form) {
@@ -1057,7 +1097,7 @@
* @param result
*/
public void getTodoTaskList(String projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) {
-
+ //TODO 鐪嬬湅濡備綍鑾峰緱浜哄憳淇℃伅鐨�
TaskQuery taskQuery = taskService.createTaskQuery()
.active()
.processInstanceId(processInsId)
@@ -1720,7 +1760,8 @@
* @param hisTaskList
* @return
*/
- private List<HistoricTaskInstance> distinctHisTask(List<HistoricTaskInstance> hisTaskList) {
+ @Override
+ public List<HistoricTaskInstance> distinctHisTask(List<HistoricTaskInstance> hisTaskList) {
Map<String, HistoricTaskInstance> uniqueTasks = new HashMap<>();
for (HistoricTaskInstance task : hisTaskList) {
String taskDefinitionKey = task.getTaskDefinitionKey();
--
Gitblit v1.8.0