xiangpei
2025-01-20 1045f256c2d9477b177dec61246bc0d174133f97
Query适配数据权限、项目查询增加数据权限
16个文件已修改
92 ■■■■■ 已修改文件
business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/PlanMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectProcessMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/PlanMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInfoMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectProcessMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/controller/FlowTaskController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/service/IFlowTaskService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/framework/aspectj/DataScopeAspect.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/system/domain/base/AbsQuery.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java
@@ -25,6 +25,9 @@
    @ApiModelProperty("流程定义id")
    private String processDefId;
    @ApiModelProperty("发布id")
    private String deployId;
    @ApiModelProperty("流程名称")
    private String flowableProcessName;
business/src/main/java/com/ycl/mapper/PlanMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.common.annotation.DataScope;
import com.ycl.domain.entity.Plan;
import com.ycl.domain.query.PlanQuery;
import com.ycl.domain.vo.PlanVO;
@@ -27,6 +28,7 @@
    /**
    *  分页
    */
    IPage getPage(IPage page, @Param("query") PlanQuery query);
    @DataScope(deptAlias = "d")
    IPage getPage(@Param("query") PlanQuery query, IPage page);
}
business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.common.annotation.DataScope;
import com.ycl.common.core.domain.BaseEntity;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.domain.excel.ProjectExcelTemplate;
import com.ycl.domain.query.ProjectInfoQuery;
@@ -31,9 +33,11 @@
    /**
    *  分页
    */
    IPage getPage(IPage page, @Param("query") ProjectInfoQuery query);
    @DataScope(deptAlias = "d")
    IPage getPage(@Param("query") ProjectInfoQuery query, IPage page);
    List<ProjectVO> homeCount();
    @DataScope(deptAlias = "d")
    List<ProjectVO> homeCount(BaseEntity params);
    List<ProjectVO> selectProjectDetailByIds(@Param("dataIdList") List<Long> dataIdList);
business/src/main/java/com/ycl/mapper/ProjectProcessMapper.java
@@ -1,5 +1,6 @@
package com.ycl.mapper;
import com.ycl.common.annotation.DataScope;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.domain.entity.ProjectProcess;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -30,7 +31,8 @@
    /**
    *  分页
    */
    IPage getPage(IPage page, @Param("query") ProjectProcessQuery query);
    @DataScope(deptAlias = "d")
    IPage getPage(@Param("query") ProjectProcessQuery query, IPage page);
    /**
     * 通过流程实例id获取项目id、名称
business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java
@@ -105,7 +105,7 @@
    @Override
    public Result page(PlanQuery query) {
        IPage<ProjectPlanResponseVO> page = PageUtil.getPage(query, ProjectPlanResponseVO.class);
        baseMapper.getPage(page, query);
        baseMapper.getPage(query, page);
        // 对分页后的属性进行处理
        List<ProjectPlanResponseVO> records = page.getRecords();
        for (ProjectPlanResponseVO record : records) {
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -13,9 +13,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.annotation.DataScope;
import com.ycl.common.base.Result;
import com.ycl.common.config.SysConfig;
import com.ycl.common.constant.Constants;
import com.ycl.common.core.domain.BaseEntity;
import com.ycl.common.enums.business.FileTypeEnum;
import com.ycl.common.enums.business.ImportanceTypeEnum;
import com.ycl.common.enums.business.ProjectCategoryEnum;
@@ -233,18 +235,18 @@
        Long userId = SecurityUtils.getUserId();
        String ancestors = sysDeptMapper.selectAncestors(userId);
        String[] ancestorArr = ancestors.split(",");
        for (String ancestor : ancestorArr) {
            if ("101".equals(ancestor)) { // 业主
                query.setCreateBy(userId);
                query.setRole(0);
            } else if ("102".equals(ancestor)) { // 审批
                query.setUsedStatus(1);
                query.setRole(1);
            }
        }
//        for (String ancestor : ancestorArr) {
//            if ("101".equals(ancestor)) { // 业主
//                query.setCreateBy(userId);
//                query.setRole(0);
//            } else if ("102".equals(ancestor)) { // 审批
//                query.setUsedStatus(1);
//                query.setRole(1);
//            }
//        }
        IPage<ProjectInfoVO> page = PageUtil.getPage(query, ProjectInfoVO.class);
        baseMapper.getPage(page, query);
        baseMapper.getPage(query, page);
        List<ProjectInfoVO> records = page.getRecords();
        List<ProjectVO> list = new ArrayList<>();
        records.forEach(vo -> {
@@ -315,7 +317,7 @@
        // {"type":"省重点项目","count":0,"amount":"0.00","text":"省"}]}}
        IndexCountVO indexCountVO = new IndexCountVO();
        List<IndexProPhaseCountVO> proPhaseCountVO = new ArrayList<>();
        List<ProjectVO> projectVOS = baseMapper.homeCount();
        List<ProjectVO> projectVOS = baseMapper.homeCount(new BaseEntity());
        List<ProjectVO> reserve = new ArrayList<>();
        List<ProjectVO> previous = new ArrayList<>();
        List<ProjectVO> implement = new ArrayList<>();
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -90,13 +90,14 @@
    @Override
    public Result page(ProjectProcessQuery query) {
        IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
        baseMapper.getPage(page, query);
        baseMapper.getPage(query, page);
        for (ProjectProcessVO vo : page.getRecords()) {
            if (Objects.nonNull(vo.getProcessDefId())) {
                ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
                if (Objects.nonNull(processDefinition)) {
                    vo.setSuspended(processDefinition.isSuspended());
                    vo.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
                    vo.setDeployId(processDefinition.getDeploymentId());
                }
            }
        }
business/src/main/resources/mapper/PlanMapper.xml
@@ -63,6 +63,7 @@
            pi.invest_type
        FROM t_project_info AS pi
        LEFT JOIN t_plan AS p ON p.project_info_id = pi.id
        LEFT JOIN sys_dept d ON d.dept_id = PI.project_owner_unit
        <where>
            pi.deleted = 0
            <if test="query.projectName!= null and query.projectName!= ''">
@@ -83,6 +84,7 @@
            <if test="query.yearStatus!= null">
                AND p.year_status = #{query.yearStatus}
            </if>
            ${query.params.dataScope}
        </where>
    </select>
business/src/main/resources/mapper/ProjectInfoMapper.xml
@@ -103,6 +103,7 @@
        LEFT JOIN t_project_investment_policy_compliance TPIPC ON TPI.id = TPIPC.project_id and TPIPC.deleted = 0
        LEFT JOIN t_project_unit_registration_info TPURI ON TPI.id = TPURI.project_id and TPURI.deleted = 0
        LEFT JOIN t_project_process TPP ON TPI.id = TPP.project_id and TPP.deleted = 0
        LEFT JOIN sys_dept d ON d.dept_id = TPI.project_owner_unit
        <where>
            TPI.deleted = 0
            <if test="query.projectName !=null and query.projectName!=''">
@@ -164,16 +165,22 @@
                    and TPI.used_status = #{query.usedStatus}
                </if>
            </if>
            ${query.params.dataScope}
        </where>
        order by TPI.gmt_create
    </select>
    <select id="homeCount" resultType="com.ycl.domain.vo.ProjectVO">
    <select id="homeCount" parameterType="com.ycl.common.core.domain.BaseEntity" resultType="com.ycl.domain.vo.ProjectVO">
        SELECT TPI.*,TPIF.total_investment,TPP.process_ins_id as processId
        FROM t_project_info TPI
        LEFT JOIN t_project_investment_funding TPIF ON TPI.id = TPIF.project_id and TPIF.deleted = 0
        LEFT JOIN t_project_process TPP ON TPI.id = TPP.project_id and TPP.deleted = 0
        WHERE TPI.deleted = 0
        LEFT JOIN sys_dept d ON TPI.project_owner_unit = d.dept_id
        <where>
            TPI.deleted = 0
            ${params.dataScope}
        </where>
    </select>
    <select id="selectProjectDetailByIds" resultType="com.ycl.domain.vo.ProjectVO">
business/src/main/resources/mapper/ProjectProcessMapper.xml
@@ -65,6 +65,7 @@
        FROM
            t_project_info PI
                LEFT JOIN t_project_process TPP ON TPP.project_id = PI.id AND TPP.deleted = 0 AND PI.deleted = 0
                LEFT JOIN sys_dept d ON d.dept_id = PI.project_owner_unit
        <where>
            <if test="query.projectName != null and query.projectName != ''">
                AND PI.project_name like concat('%', #{query.projectName}, '%')
@@ -72,6 +73,7 @@
            <if test="query.projectCode != null and query.projectCode != ''">
                AND PI.project_code like concat('%', #{query.projectCode}, '%')
            </if>
            ${query.params.dataScope}
        </where>
    </select>
flowable/src/main/java/com/ycl/controller/FlowTaskController.java
@@ -75,8 +75,8 @@
    @ApiOperation(value = "流程历史流转记录", response = FlowTaskDto.class)
    @GetMapping(value = "/flowRecord")
    public AjaxResult flowRecord(String procInsId, String deployId) {
        return flowTaskService.flowRecord(procInsId, deployId);
    public AjaxResult flowRecord(String procInsId) {
        return flowTaskService.flowRecord(procInsId);
    }
    @ApiOperation(value = "根据任务ID查询挂载的表单信息")
@@ -258,13 +258,13 @@
    /**
     * 流程节点信息
     *
     * @param procInsId 流程实例id
     * @param processInsId 流程实例id
     * @return
     */
    @GetMapping("/flowXmlAndNode")
    public AjaxResult flowXmlAndNode(@RequestParam(value = "procInsId", required = false) String procInsId,
    public AjaxResult flowXmlAndNode(@RequestParam(value = "processInsId", required = false) String processInsId,
                                     @RequestParam(value = "deployId", required = false) String deployId) {
        return flowTaskService.flowXmlAndNode(procInsId, deployId);
        return flowTaskService.flowXmlAndNode(processInsId, deployId);
    }
    /**
flowable/src/main/java/com/ycl/service/IFlowTaskService.java
@@ -145,7 +145,7 @@
     * @param procInsId 流程实例Id
     * @return
     */
    AjaxResult flowRecord(String procInsId,String deployId);
    AjaxResult flowRecord(String procInsId);
    /**
     * 根据任务ID查询挂载的表单信息
flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -800,7 +800,7 @@
     * @return
     */
    @Override
    public AjaxResult flowRecord(String procInsId, String deployId) {
    public AjaxResult flowRecord(String procInsId) {
        Map<String, Object> map = new HashMap<String, Object>();
        if (StringUtils.isNotBlank(procInsId)) {
            List<HistoricActivityInstance> list = historyService
start/src/main/resources/application-dev.yml
@@ -7,7 +7,7 @@
    # 版权年份
    copyrightYear: 2024
    # 文件路径 示例( Windows配置D:/projectManagement/uploadPath,Linux配置 /home/projectManagement/uploadPath)
    profile: D:/projectManagement/uploadPath
    profile: E:/ycl/file
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数字计算 char 字符验证
system/src/main/java/com/ycl/framework/aspectj/DataScopeAspect.java
@@ -2,6 +2,8 @@
import java.util.ArrayList;
import java.util.List;
import com.ycl.system.domain.base.AbsQuery;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@@ -151,10 +153,12 @@
        if (StringUtils.isNotBlank(sqlString.toString()))
        {
            Object params = joinPoint.getArgs()[0];
            if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
            {
            if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
                BaseEntity baseEntity = (BaseEntity) params;
                baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
            } else if (StringUtils.isNotNull(params) && params instanceof AbsQuery) {
                AbsQuery query = (AbsQuery) params;
                query.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
            }
        }
    }
system/src/main/java/com/ycl/system/domain/base/AbsQuery.java
@@ -3,6 +3,9 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
 * 基础分页查询,默认第一页,每页10条
 *
@@ -18,4 +21,6 @@
    @ApiModelProperty(value = "每页条数", required = true)
    private long pageSize = 10L;
    public Map<String, Object> params = new HashMap<>(2);
}