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); } } 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); } /** business/src/main/java/com/ycl/service/ProcessLogService.java
@@ -111,5 +111,7 @@ * @param query * @return */ Result projectProcessLogList(ProcessLogQuery query); Result projectProcessLogPage(ProcessLogQuery query); } 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); } 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); 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()); } /** * 解析流程日志中的数据-名称 * 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")); } /** * 查询待办任务 * 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; } 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(); 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(); 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