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