xiangpei
2025-02-12 973caddffafba85e75a84c09d77e3ea53c27903f
flowable模块中的流程日志移动到business模块,新增流程推进日志接口
5个文件已修改
3 文件已重命名
117 ■■■■ 已修改文件
business/src/main/java/com/ycl/controller/FlowLogController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProcessLogService.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/resources/mapper/ProcessLogMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/FlowLogController.java
File was renamed from flowable/src/main/java/com/ycl/controller/FlowLogController.java
@@ -35,4 +35,10 @@
        return processLogService.page(query);
    }
    @GetMapping("/project-process/log")
    @ApiOperation(value = "流程推进日志", notes = "流程推进日志")
//    @PreAuthorize("@ss.hasPermi('flowLog:page')")
    public Result projectProcessLogPage(ProcessLogQuery query) {
        return processLogService.projectProcessLogPage(query);
    }
}
business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java
@@ -1,11 +1,9 @@
package com.ycl.event.listener;
import com.alibaba.fastjson2.JSON;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.common.utils.SecurityUtils;
import com.ycl.domain.entity.ProcessLog;
import com.ycl.event.event.TaskLogEvent;
import com.ycl.service.ProcessLogService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
business/src/main/java/com/ycl/service/ProcessLogService.java
File was renamed from flowable/src/main/java/com/ycl/service/ProcessLogService.java
@@ -1,10 +1,11 @@
package com.ycl.service;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.domain.entity.ProcessLog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.domain.entity.ProcessLog;
import com.ycl.domain.query.ProcessLogQuery;
import java.util.List;
/**
@@ -67,4 +68,12 @@
     * @return
     */
    Boolean taskDelegation(String processInstanceId, String taskId);
    /**
     * 流程推进日志
     *
     * @param query
     * @return
     */
    Result projectProcessLogPage(ProcessLogQuery query);
}
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
File was renamed from flowable/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -1,19 +1,25 @@
package com.ycl.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.base.Result;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.domain.entity.ProcessLog;
import com.ycl.domain.json.DelegateData;
import com.ycl.domain.json.JumpData;
import com.ycl.domain.json.RejectData;
import com.ycl.domain.json.SuperviseData;
import com.ycl.domain.query.ProcessLogQuery;
import com.ycl.domain.vo.ProcessLogVO;
import com.ycl.framework.utils.PageUtil;
import com.ycl.mapper.ProcessLogMapper;
import com.ycl.service.ProcessLogService;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.domain.vo.ProcessLogVO;
import com.ycl.domain.query.ProcessLogQuery;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import com.ycl.framework.utils.PageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.List;
@@ -118,4 +124,25 @@
                .list();
        return CollectionUtils.isNotEmpty(list);
    }
    @Override
    public Result projectProcessLogPage(ProcessLogQuery query) {
        List<ProcessLogVO> list = baseMapper.projectProcessLogPage(query);
        // json反序列化
        list.stream().forEach(log -> {
            if (StringUtils.isNotBlank(log.getEventDataJson())) {
                if (ProcessLogEventTypeEnum.DELEGATE.equals(log.getEventType())) {
                    log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), DelegateData.class));
                } else if (ProcessLogEventTypeEnum.JUMP.equals(log.getEventType())) {
                    log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), JumpData.class));
                } else if (ProcessLogEventTypeEnum.REJECT.equals(log.getEventType())) {
                    log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), RejectData.class));
                } else if (ProcessLogEventTypeEnum.SUPERVISE.equals(log.getEventType())) {
                    log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), SuperviseData.class));
                }
            }
        });
        return Result.ok().data(list);
    }
}
flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java
@@ -18,5 +18,16 @@
@Data
@ApiModel(value = "FlowLog查询参数", description = "流程日志查询参数")
public class ProcessLogQuery extends AbsQuery {
    /**
     * 项目id
     */
    private Long projectId;
    /**
     * 流程实例id
     */
    private String processInsId;
}
flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java
@@ -1,5 +1,6 @@
package com.ycl.domain.vo;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.system.domain.base.AbsVo;
import com.ycl.domain.entity.ProcessLog;
import org.springframework.lang.NonNull;
@@ -24,7 +25,7 @@
    /** 事件日志类型 */
    @ApiModelProperty("事件日志类型")
    private String eventType;
    private ProcessLogEventTypeEnum eventType;
    /** 项目id */
    @ApiModelProperty("项目id")
@@ -38,10 +39,16 @@
    @ApiModelProperty("产生日志的人/或其它")
    private Long userId;
    @ApiModelProperty("用户名")
    private String nickName;
    /** 事件数据,根据不同的事件可存储对应的扩展数据。如转办事件可存储转办前后的处理人信息 */
    @ApiModelProperty("事件数据,根据不同的事件可存储对应的扩展数据。如转办事件可存储转办前后的处理人信息")
    private String eventDataJson;
    @ApiModelProperty("json转换后的对象")
    private Object eventDataObj;
    public static ProcessLogVO getVoByEntity(@NonNull ProcessLog entity, ProcessLogVO vo) {
        if(vo == null) {
            vo = new ProcessLogVO();
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
@@ -8,6 +8,8 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 流程日志 Mapper 接口
 *
@@ -29,4 +31,11 @@
    */
    IPage getPage(IPage page, @Param("query") ProcessLogQuery query);
    /**
     * 获取流程推进日志
     *
     * @param query
     * @return
     */
    List<ProcessLogVO> projectProcessLogPage(@Param("query") ProcessLogQuery query);
}
flowable/src/main/resources/mapper/ProcessLogMapper.xml
@@ -5,10 +5,12 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProcessLogVO">
        <result column="task_id" property="taskId" />
        <result column="event_type" property="eventType" />
        <result column="event_type" property="eventType" typeHandler="com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler"/>
        <result column="project_id" property="projectId" />
        <result column="flow_ins_id" property="flowInsId" />
        <result column="user_id" property="userId" />
        <result column="nick_name" property="nickName" />
        <result column="gmt_create" property="gmtCreate" />
        <result column="event_data_json" property="eventDataJson" />
    </resultMap>
@@ -42,6 +44,7 @@
            TFL.flow_ins_id,
            TFL.user_id,
            TFL.event_data_json,
            TFL.gmt_create,
            TFL.id
        FROM
            t_process_log TFL
@@ -49,4 +52,25 @@
            TFL.deleted = 0
    </select>
    <select id="projectProcessLogPage" resultMap="BaseResultMap">
        SELECT
            TFL.task_id,
            TFL.event_type,
            TFL.project_id,
            TFL.flow_ins_id,
            TFL.user_id,
            SU.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
        WHERE
            TFL.deleted = 0 AND TFL.project_id = #{query.projectId} AND TFL.process_ins_id = #{query.processInsId}
        ORDER BY
            TFL.gmt_create DESC
    </select>
</mapper>