xiangpei
2025-03-03 aa084fcf2f099ebcf1e2d7ae46a03a5f77f76949
工程库调整
8个文件已修改
1个文件已添加
142 ■■■■■ 已修改文件
business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectProcessMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/utils/TreeUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectEngineeringMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectProcessMapper.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java
@@ -53,7 +53,8 @@
    /** 业主单位 */
    @ApiModelProperty("业主单位")
    private Long unit;
    private Long projectOwnerUnit;
    private String projectOwnerUnitName;
    /** 年份 */
    @ApiModelProperty("年份")
@@ -63,9 +64,13 @@
    @ApiModelProperty("父工程")
    private String parent;
    /** 主管部门名字 */
    @ApiModelProperty("主管部门名字")
    private String departmentName;
    /** 主管部门 */
    @ApiModelProperty("主管部门")
    private Long competentDepartment;
    /** 主管部门 */
    @ApiModelProperty("主管部门")
    private String competentDepartmentName;
    /** 业主单位名字 */
    @ApiModelProperty("业主单位名字")
business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java
@@ -78,6 +78,9 @@
    @ApiModelProperty("主管部门(对应审批部门id)")
    private String competentDepartment;
    @ApiModelProperty("主管部门")
    private String competentDepartmentName;
    @ApiModelProperty("主管部门联系人")
    /** 主管部门联系人 */
    private String competentDepartmentPerson;
@@ -159,6 +162,9 @@
    @ApiModelProperty("项目业主单位")
    private Long projectOwnerUnit;
    @ApiModelProperty("项目业主单位")
    private String projectOwnerUnitName;
    /** 项目联系人 */
    @ApiModelProperty("项目联系人")
    private String projectContactPerson;
@@ -200,7 +206,7 @@
    private ProjectUnitRegistrationInfoVO projectUnitRegistrationInfo;
    private ProjectInvestmentPolicyComplianceVO projectInvestmentPolicyCompliance;
    private Boolean auditRole;
    private String projectOwnerUnitName;
    public static ProjectInfoVO getVoByEntity(@NonNull ProjectInfo entity, ProjectInfoVO vo) {
        if(vo == null) {
            vo = new ProjectInfoVO();
business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java
@@ -46,6 +46,9 @@
    @ApiModelProperty("开工状态")
    private String status;
    @ApiModelProperty("年份")
    private String year;
    @ApiModelProperty("工程列表")
    private List<ProjectEngineeringVO> children = new ArrayList<>();
}
business/src/main/java/com/ycl/mapper/ProjectProcessMapper.java
@@ -5,6 +5,7 @@
import com.ycl.domain.entity.ProjectProcess;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.vo.ProjectEngineeringVO;
import com.ycl.domain.vo.ProjectProcessVO;
import com.ycl.domain.form.ProjectProcessForm;
import com.ycl.domain.query.ProjectProcessQuery;
@@ -35,6 +36,11 @@
    IPage getPage(@Param("query") ProjectProcessQuery query, IPage page);
    /**
     *  根据项目获取工程列表
     */
    List<ProjectEngineeringVO> getEngineeringList(@Param("projectId") Long projectId);
    /**
     * 通过流程实例id获取项目id、名称
     *
     * @param processInstanceId
business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java
@@ -100,9 +100,9 @@
     */
    @Override
    public Result detail(String id) {
        ProjectEngineeringVO vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
        ProjectEngineering entity = baseMapper.selectById(id);
        Assert.notNull(entity, "记录不存在");
        return Result.ok().data(entity);
    }
    /**
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -36,6 +36,7 @@
import com.ycl.system.service.ISysDictTypeService;
import com.ycl.system.service.ISysRoleService;
import com.ycl.system.service.ISysUserService;
import com.ycl.utils.TreeUtil;
import lombok.Synchronized;
import org.apache.commons.lang3.StringUtils;
import org.flowable.bpmn.model.*;
@@ -104,6 +105,7 @@
        IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
        baseMapper.getPage(query, page);
        for (ProjectProcessVO vo : page.getRecords()) {
            vo.setChildren(TreeUtil.treeForProjectEng(baseMapper.getEngineeringList(vo.getId())));
            vo.setStatus(vo.getProjectStatus());
            if (Objects.nonNull(vo.getProcessDefId())) {
                ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
business/src/main/java/com/ycl/utils/TreeUtil.java
New file
@@ -0,0 +1,43 @@
package com.ycl.utils;
import com.ycl.domain.vo.ProjectEngineeringVO;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 构建树工具
 *
 * @author:xp
 * @date:2025/3/3 2:37
 */
public class TreeUtil {
    /**
     * 为工程构造树
     *
     * @param nodes
     * @return
     */
    public static List<ProjectEngineeringVO> treeForProjectEng(List<ProjectEngineeringVO> nodes) {
        Map<String, ProjectEngineeringVO> nodeMap = new HashMap<>();
        for (ProjectEngineeringVO node : nodes) {
            nodeMap.put(node.getId(), node);
        }
        List<ProjectEngineeringVO> roots = new ArrayList<>();
        for (ProjectEngineeringVO node : nodes) {
            if ("0".equals(node.getParent())) {
                roots.add(node);
            } else {
                ProjectEngineeringVO parentNode = nodeMap.get(node.getParent());
                if (parentNode != null) {
                    parentNode.getChildren().add(node);
                }
            }
        }
        return roots;
    }
}
business/src/main/resources/mapper/ProjectEngineeringMapper.xml
@@ -64,7 +64,6 @@
    <select id="getPage" resultMap="BaseResultMap">
        SELECT
            TPE.project_info_id,
            TPE.project_type,
            TPE.investment_amount,
            TPE.status,
business/src/main/resources/mapper/ProjectProcessMapper.xml
@@ -56,16 +56,68 @@
        <result column="project_owner_unit" property="projectOwnerUnit" />
        <result column="project_owner_unit_name" property="projectOwnerUnitName" />
        <result column="project_contact_person" property="projectContactPerson" />
        <result column="competent_department" property="competentDepartment" />
        <result column="competent_department_name" property="competentDepartmentName" />
        <result column="contact" property="contact" />
        <result column="update_by" property="updateBy" />
        <result column="create_by" property="createBy" />
        <result column="process_def_id" property="processDefId" />
        <result column="process_ins_id" property="processInsId" />
        <collection property="children" ofType="com.ycl.domain.vo.ProjectEngineeringVO" select="getProjectEngineering" column="id"></collection>
<!--        <collection property="children" ofType="com.ycl.domain.vo.ProjectEngineeringVO" select="getProjectEngineering" column="id"></collection>-->
    </resultMap>
    <select id="getProjectEngineering" parameterType="long" resultMap="com.ycl.mapper.ProjectEngineeringMapper.BaseResultMap">
        SELECT * FROM t_project_engineering WHERE project_info_id = #{id} and deleted = 0 AND parent_id = '0' ORDER BY gmt_create
    <resultMap id="EngineeringMap" type="com.ycl.domain.vo.ProjectEngineeringVO">
        <id column="id" property="id"/>
        <result column="project_name" property="projectName" />
        <result column="project_type" property="projectType" />
        <result column="investment_amount" property="investmentAmount" />
        <result column="status" property="status" />
        <result column="unit" property="projectOwnerUnit" />
        <result column="department" property="competentDepartment" />
        <result column="year" property="year" />
        <result column="parent_id" property="parent" />
        <result column="project_owner_unit_name" property="projectOwnerUnitName" />
        <result column="competent_department_name" property="competentDepartmentName" />
<!--        <collection property="children" ofType="com.ycl.domain.vo.ProjectEngineeringVO" select="getProjectEngineeringList" column="id"></collection>-->
    </resultMap>
    <select id="getProjectEngineeringList" parameterType="string" resultMap="EngineeringMap">
        SELECT  TPE.project_info_id,
                TPE.project_name,
                TPE.project_type,
                TPE.investment_amount,
                TPE.status,
                TPE.id,
                TPE.unit,
                TPE.department,
                TPE.parent_id,
                TPE.year,
                (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TPE.unit) AS unit_name,
                (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TPE.department) AS department_name
        FROM t_project_engineering TPE
                 INNER JOIN t_project_info TPI ON TPI.id = TPE.project_info_id AND TPI.deleted = 0
        WHERE
              TPE.parent_id = #{id} and TPE.deleted = 0
        ORDER BY
                 TPE.gmt_create
    </select>
    <select id="getEngineeringList" parameterType="long" resultMap="EngineeringMap">
        WITH RECURSIVE temp_table AS (
            SELECT
                id, project_info_id, project_name, project_type, investment_amount, status, unit, department, parent_id, year, gmt_create  FROM t_project_engineering WHERE project_info_id = #{projectId} AND parent_id = '0' AND deleted = 0
            UNION ALL
            SELECT
                TPE.id, TPE.project_info_id, TPE.project_name, TPE.project_type, TPE.investment_amount, TPE.status, TPE.unit, TPE.department, TPE.parent_id, TPE.year, TPE.gmt_create FROM t_project_engineering TPE INNER JOIN temp_table tb ON TPE.parent_id = tb.id AND TPE.deleted = 0
        )
        SELECT
            TT.id, TT.project_info_id, TT.project_name, TT.project_type, TT.investment_amount, TT.status, TT.unit, TT.department, TT.parent_id, TT.year, TT.gmt_create,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.unit) AS project_owner_unit_name,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name
        FROM
            temp_table TT
        ORDER BY
            TT.gmt_create DESC
    </select>
@@ -87,6 +139,8 @@
            TPP.process_def_id,
            TPP.process_ins_id,
            TPIF.total_investment as investmentAmount,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = PI.project_owner_unit) AS project_owner_unit_name,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = PI.competent_department) AS competent_department_name,
            d.dept_name as project_owner_unit_name
        FROM
            t_project_info PI