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