xiangpei
2025-03-21 49afbb309657585aa82095bf3b7dfc14b1265ac6
首页消息
11个文件已修改
136 ■■■■ 已修改文件
business/src/main/java/com/ycl/controller/FlowLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/IndexController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProcessLogService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectProcessService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/resources/mapper/ProcessLogMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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