From 49afbb309657585aa82095bf3b7dfc14b1265ac6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 21 三月 2025 16:04:24 +0800
Subject: [PATCH] 首页消息
---
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java | 5 +
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 33 +++++++++++
flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java | 3 +
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 7 +-
flowable/src/main/resources/mapper/ProcessLogMapper.xml | 40 ++++++++++++-
business/src/main/java/com/ycl/controller/IndexController.java | 18 ++---
business/src/main/java/com/ycl/service/ProjectProcessService.java | 5 +
business/src/main/java/com/ycl/service/ProcessLogService.java | 2
business/src/main/java/com/ycl/controller/FlowLogController.java | 2
flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java | 10 +++
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java | 11 +++
11 files changed, 115 insertions(+), 21 deletions(-)
diff --git a/business/src/main/java/com/ycl/controller/FlowLogController.java b/business/src/main/java/com/ycl/controller/FlowLogController.java
index 7ea22a7..81dee74 100644
--- a/business/src/main/java/com/ycl/controller/FlowLogController.java
+++ b/business/src/main/java/com/ycl/controller/FlowLogController.java
@@ -40,6 +40,6 @@
// @PreAuthorize("@ss.hasPermi('flowLog:page')")
public Result projectProcessLogPage(ProcessLogQuery query) {
query.setDeleted(null);
- return processLogService.projectProcessLogPage(query);
+ return processLogService.projectProcessLogList(query);
}
}
diff --git a/business/src/main/java/com/ycl/controller/IndexController.java b/business/src/main/java/com/ycl/controller/IndexController.java
index 6cb53e6..63739ac 100644
--- a/business/src/main/java/com/ycl/controller/IndexController.java
+++ b/business/src/main/java/com/ycl/controller/IndexController.java
@@ -1,5 +1,6 @@
package com.ycl.controller;
+import com.ycl.common.base.Result;
import com.ycl.common.core.controller.BaseController;
import com.ycl.common.core.domain.R;
import com.ycl.common.core.page.TableDataInfo;
@@ -7,6 +8,8 @@
import com.ycl.domain.vo.*;
import com.ycl.service.AuditHistoryService;
import com.ycl.service.ProjectInfoService;
+import com.ycl.service.ProjectProcessService;
+import com.ycl.system.domain.base.AbsQuery;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -23,12 +26,9 @@
public class IndexController extends BaseController {
- @Autowired
- private ProjectInfoService projectInfoService;
-
-
- @Autowired
- private AuditHistoryService auditHistoryService;
+ private final ProjectInfoService projectInfoService;
+ private final AuditHistoryService auditHistoryService;
+ private final ProjectProcessService projectProcessService;
/**
* 椤圭洰鏁伴噺缁熻
@@ -74,10 +74,8 @@
* 娑堟伅鏉℃暟
*/
@GetMapping("/message-count")
- public R<IndexMsgCountVO> messageCount() {
- IndexMsgCountVO vo = new IndexMsgCountVO();
- vo.setAuditCount(0L);
- return R.ok(vo);
+ public Result messageCount(AbsQuery query) {
+ return projectProcessService.getProcessMsg(query);
}
/**
diff --git a/business/src/main/java/com/ycl/service/ProcessLogService.java b/business/src/main/java/com/ycl/service/ProcessLogService.java
index 9c7141e..60e7f10 100644
--- a/business/src/main/java/com/ycl/service/ProcessLogService.java
+++ b/business/src/main/java/com/ycl/service/ProcessLogService.java
@@ -111,5 +111,7 @@
* @param query
* @return
*/
+ Result projectProcessLogList(ProcessLogQuery query);
+
Result projectProcessLogPage(ProcessLogQuery query);
}
diff --git a/business/src/main/java/com/ycl/service/ProjectProcessService.java b/business/src/main/java/com/ycl/service/ProjectProcessService.java
index 1c29cf5..f56d3db 100644
--- a/business/src/main/java/com/ycl/service/ProjectProcessService.java
+++ b/business/src/main/java/com/ycl/service/ProjectProcessService.java
@@ -1,5 +1,6 @@
package com.ycl.service;
+import com.ycl.common.core.domain.R;
import com.ycl.domain.entity.ProjectProcess;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
@@ -7,6 +8,8 @@
import com.ycl.domain.query.ProjectProcessQuery;
import com.ycl.domain.query.TaskQuery;
import com.ycl.domain.vo.CustomerTaskVO;
+import com.ycl.domain.vo.IndexMsgCountVO;
+import com.ycl.system.domain.base.AbsQuery;
import java.util.List;
@@ -142,4 +145,6 @@
* @return
*/
Result taskTeamwork(TaskTeamWorkForm form);
+
+ Result getProcessMsg(AbsQuery query);
}
diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
index 47599e1..af1da78 100644
--- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -73,7 +73,6 @@
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.springframework.beans.BeanUtils;
import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -1478,7 +1477,7 @@
ProcessLogQuery query = new ProcessLogQuery();
query.setTaskId(node.getTaskId());
query.setProcessInsId(finalProcessInsId);
- Result result = processLogService.projectProcessLogPage(query);
+ Result result = processLogService.projectProcessLogList(query);
List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data");
DoFormDetailVO vo = new DoFormDetailVO();
BeanUtils.copyProperties(node, vo);
@@ -1557,7 +1556,7 @@
ProcessLogQuery query = new ProcessLogQuery();
query.setTaskId(node.getTaskId());
query.setProcessInsId(hisTask.getProcessInstanceId());
- Result result = processLogService.projectProcessLogPage(query);
+ Result result = processLogService.projectProcessLogList(query);
List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data");
DoFormDetailVO vo = new DoFormDetailVO();
BeanUtils.copyProperties(node, vo);
@@ -1628,7 +1627,7 @@
ProcessLogQuery query = new ProcessLogQuery();
query.setTaskId(node.getTaskId());
query.setProcessInsId(processInsId);
- Result result = processLogService.projectProcessLogPage(query);
+ Result result = processLogService.projectProcessLogList(query);
List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data");
DoFormDetailVO vo = new DoFormDetailVO();
BeanUtils.copyProperties(node, vo);
diff --git a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
index 306abc1..5b075c8 100644
--- a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -180,8 +180,8 @@
}
@Override
- public Result projectProcessLogPage(ProcessLogQuery query) {
- List<ProcessLogVO> list = baseMapper.projectProcessLogPage(query);
+ public Result projectProcessLogList(ProcessLogQuery query) {
+ List<ProcessLogVO> list = baseMapper.projectProcessLogList(query);
// json鍙嶅簭鍒楀寲
list.stream().forEach(log -> {
if (StringUtils.isNotBlank(log.getEventDataJson())) {
@@ -217,6 +217,13 @@
return Result.ok().data(list);
}
+ @Override
+ public Result projectProcessLogPage(ProcessLogQuery query) {
+ IPage<ProcessLogVO> page = PageUtil.getPage(query, ProcessLogVO.class);
+ baseMapper.projectProcessLogPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
/**
* 瑙f瀽娴佺▼鏃ュ織涓殑鏁版嵁-鍚嶇О
*
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 0c283e6..5579d72 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -18,6 +18,7 @@
import com.ycl.domain.entity.*;
import com.ycl.domain.form.*;
import com.ycl.domain.json.*;
+import com.ycl.domain.query.ProcessLogQuery;
import com.ycl.domain.vo.*;
import com.ycl.event.event.TaskLogEvent;
import com.ycl.mapper.ProjectEngineeringMapper;
@@ -28,6 +29,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.domain.query.ProjectProcessQuery;
import com.ycl.service.common.TaskCommonService;
+import com.ycl.system.domain.base.AbsQuery;
import com.ycl.system.service.ISysDeptService;
import com.ycl.system.service.ISysDictTypeService;
import com.ycl.system.service.ISysRoleService;
@@ -923,6 +925,37 @@
return Result.ok("鎿嶄綔鎴愬姛");
}
+ @Override
+ public Result getProcessMsg(AbsQuery q) {
+ // 鏌ヨ嚜宸辩殑鏃ュ織
+ ProcessLogQuery query = new ProcessLogQuery();
+ if (! SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ query.setUserId(SecurityUtils.getUserId());
+ }
+ query.setEventTypeList(Arrays.asList(ProcessLogEventTypeEnum.DELEGATE.getValue(),
+ ProcessLogEventTypeEnum.REJECT.getValue(),
+ ProcessLogEventTypeEnum.JUMP.getValue(),
+ ProcessLogEventTypeEnum.FINISHED.getValue(),
+ ProcessLogEventTypeEnum.WAIT.getValue()));
+ query.setCurrentPage(q.getCurrentPage());
+ query.setPageSize(q.getPageSize());
+ Result result = processLogService.projectProcessLogPage(query);
+ List<ProcessLogVO> logs = (List<ProcessLogVO>) result.get("data");
+
+ logs.stream().forEach(log -> {
+ if (ProcessLogEventTypeEnum.FINISHED.equals(log.getEventType())) {
+ log.setContent("鎮ㄥ畬鎴愪簡浠诲姟锛�" + log.getTaskName());
+ } else if (ProcessLogEventTypeEnum.REJECT.equals(log.getEventType())) {
+ log.setContent("鎮ㄩ┏鍥炰簡浠诲姟锛�" + log.getTaskName());
+ } else if (ProcessLogEventTypeEnum.WAIT.equals(log.getEventType())) {
+ log.setContent("鎮ㄥ缂轰簡浠诲姟锛�" + log.getTaskName());
+ } else if (ProcessLogEventTypeEnum.JUMP.equals(log.getEventType())) {
+ log.setContent("鎮ㄨ烦杩囦簡浠诲姟锛�" + log.getTaskName());
+ }
+ });
+ return Result.ok().data(logs).total((Long) result.get("total"));
+ }
+
/**
* 鏌ヨ寰呭姙浠诲姟
*
diff --git a/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java b/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java
index cc071bb..7a295a4 100644
--- a/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java
+++ b/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java
@@ -43,5 +43,15 @@
* 閫昏緫鍒犻櫎
*/
private Integer deleted = 0;
+
+ /**
+ * 鏌ヨ皝鐨�
+ */
+ private Long userId;
+
+ /**
+ * 鏌ュ摢绉嶇被鍨嬬殑鏃ュ織
+ */
+ private List<String> eventTypeList;
}
diff --git a/flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java b/flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java
index 8448514..a0b4b54 100644
--- a/flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java
+++ b/flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java
@@ -52,6 +52,9 @@
@ApiModelProperty("json杞崲鍚庣殑瀵硅薄")
private Object eventDataObj;
+ @ApiModelProperty("鍐呭")
+ private String content;
+
public static ProcessLogVO getVoByEntity(@NonNull ProcessLog entity, ProcessLogVO vo) {
if(vo == null) {
vo = new ProcessLogVO();
diff --git a/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java b/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
index 822cef5..74c1a29 100644
--- a/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
+++ b/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
@@ -37,7 +37,10 @@
* @param query
* @return
*/
- List<ProcessLogVO> projectProcessLogPage(@Param("query") ProcessLogQuery query);
+ List<ProcessLogVO> projectProcessLogList(@Param("query") ProcessLogQuery query);
+
+
+ IPage projectProcessLogPage(IPage page, @Param("query") ProcessLogQuery query);
List<String> getAllHangup();
diff --git a/flowable/src/main/resources/mapper/ProcessLogMapper.xml b/flowable/src/main/resources/mapper/ProcessLogMapper.xml
index c638af4..881e51d 100644
--- a/flowable/src/main/resources/mapper/ProcessLogMapper.xml
+++ b/flowable/src/main/resources/mapper/ProcessLogMapper.xml
@@ -55,8 +55,38 @@
TFL.deleted = 0
</select>
-
<select id="projectProcessLogPage" resultMap="BaseResultMap">
+ SELECT
+ TFL.task_id,
+ TFL.task_name,
+ TFL.event_type,
+ TFL.project_id,
+ TFL.process_ins_id,
+ TFL.user_id,
+ CONCAT(SU.nick_name, '(',COALESCE(SD.dept_name, '鏃犻儴闂�'), ')') as nick_name,
+ TFL.event_data_json,
+ TFL.gmt_create,
+ TFL.id
+ FROM
+ t_process_log TFL
+ LEFT JOIN sys_user SU ON SU.user_id = TFL.user_id
+ LEFT JOIN sys_dept SD ON SU.dept_id = SD.dept_id
+ <where>
+ <if test="query.deleted != null">AND TFL.deleted = #{query.deleted}</if>
+ <if test="query.userId != null">AND TFL.user_id = #{query.userId}</if>
+ <if test="query.processInsId != null and query.processInsId != ''">AND TFL.process_ins_id = #{query.processInsId}</if>
+ <if test="query.taskId != null and query.taskId != ''">AND TFL.task_id = #{query.taskId}</if>
+ <if test="query.projectId != null and query.projectId != ''">AND TFL.project_id = #{query.projectId}</if>
+ <if test="query.taskDefKey != null and query.taskDefKey != ''">AND TFL.task_def_key = #{query.taskDefKey}</if>
+ <if test="query.eventTypeList != null and query.eventTypeList.size > 0">
+ AND TFL.event_type IN <foreach collection="query.eventTypeList" open="(" separator="," close=")" item="eventType">#{eventType}</foreach>
+ </if>
+ </where>
+ ORDER BY
+ TFL.gmt_create DESC
+ </select>
+
+ <select id="projectProcessLogList" resultMap="BaseResultMap">
SELECT
TFL.task_id,
TFL.task_name,
@@ -73,11 +103,15 @@
LEFT JOIN sys_user SU ON SU.user_id = TFL.user_id
LEFT JOIN sys_dept SD ON SU.dept_id = SD.dept_id
<where>
- <if test="query.deleted != null">TFL.deleted = #{query.deleted}</if>
- AND TFL.process_ins_id = #{query.processInsId}
+ <if test="query.deleted != null">AND TFL.deleted = #{query.deleted}</if>
+ <if test="query.userId != null">AND TFL.user_id = #{query.userId}</if>
+ <if test="query.processInsId != null and query.processInsId != ''">AND TFL.process_ins_id = #{query.processInsId}</if>
<if test="query.taskId != null and query.taskId != ''">AND TFL.task_id = #{query.taskId}</if>
<if test="query.projectId != null and query.projectId != ''">AND TFL.project_id = #{query.projectId}</if>
<if test="query.taskDefKey != null and query.taskDefKey != ''">AND TFL.task_def_key = #{query.taskDefKey}</if>
+ <if test="query.eventTypeList != null and query.eventTypeList.size > 0">
+ AND TFL.event_type IN <foreach collection="query.eventTypeList" open="(" separator="," close=")" item="eventType">#{eventType}</foreach>
+ </if>
</where>
ORDER BY
TFL.gmt_create DESC
--
Gitblit v1.8.0