From 5faa3f478f9d36422c5d1a19c4e2da7250afd70f Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期三, 09 七月 2025 17:20:24 +0800 Subject: [PATCH] 优化改造sql --- multi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 155 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 139 insertions(+), 16 deletions(-) diff --git a/multi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/multi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 25c1557..f39e55c 100644 --- a/multi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/multi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -21,48 +21,145 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="responsibilities" column="responsibilities" /> + <result property="deptType" column="dept_type" /> + <result property="responsType" column="respons_type" /> <result property="personNum" column="person_num" /> <result property="internalAuditors" column="internal_auditors" /> <result property="internalAuditorsName" column="internal_auditors_name" /> </resultMap> <resultMap type="com.gkhy.exam.system.domain.vo.DeptVo" id="DeptVoResult" extends="SysDeptResult"> <collection property="caluseVO1List" ofType="com.gkhy.exam.system.domain.vo.CaluseVO1"> - <id property="clauseNum" column="clause_num" /> + <result property="clauseNum" column="clause_num" /> <result property="content" column="content" /> + <result property="clauseId" column="clause_id" /> + <result property="id" column="data_id" /> </collection> </resultMap> <sql id="selectDeptVo"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader_user_id, d.company_id, d.status, d.del_flag, d.create_by, d.create_time,d.person_num,d.internal_auditors, - d.responsibilities + d.responsibilities,d.dept_type,d.respons_type from sys_dept d </sql> + + <select id="selectDeptList" parameterType="com.gkhy.exam.common.domain.entity.SysDept" resultMap="DeptVoResult"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader_user_id, d.company_id, d.status, d.del_flag, d.create_by, d.create_time,d.person_num,d.internal_auditors, - d.responsibilities,u.name as leader_name,d2.dept_name as parent_name, dr.content ,dr.clause_num + d.order_num,d.responsibilities,d.dept_type,d.respons_type,u.name as leader_name,d2.dept_name as parent_name, dr.content ,dr.clause_num,dr.id as data_id,dr.clause_id from sys_dept d - left join sys_user u on d.leader_user_id = u.user_id + left join sys_user u on d.leader_user_id = u.id left join sys_dept d2 on d.parent_id = d2.dept_id left join sys_dept_responsibility dr on d.dept_id = dr.dept_id and dr.del_flag = '0' and data_type = 2 where d.del_flag = '0' <if test="companyId != null and companyId != 0"> - AND company_id = #{companyId} + AND d.company_id = #{companyId} + </if> + <if test="deptType != null and deptType != '' " > + AND d.dept_type = #{deptType} + </if> + <if test="responsType != null and responsType != '' " > + AND d.respons_type = #{responsType} </if> <if test="deptId != null and deptId != 0"> - AND dept_id = #{deptId} + AND d.dept_id = #{deptId} </if> <if test="parentId != null and parentId != 0"> - AND parent_id = #{parentId} + AND d.parent_id = #{parentId} </if> <if test="deptName != null and deptName != ''"> - AND dept_name like concat('%', #{deptName}, '%') + AND d.dept_name like concat('%', #{deptName}, '%') </if> <if test="status != null and status != ''"> - AND status = #{status} + AND d.status = #{status} </if> - order by d.parent_id, d.order_num + order by d.order_num desc </select> + <resultMap type="com.gkhy.exam.system.domain.vo.DeptVo" id="DeptVoPageResult" extends="SysDeptResult"> + <collection property="caluseVO1List" ofType="com.gkhy.exam.system.domain.vo.CaluseVO1" column="deptId = dept_id" select="getReponseData"> + <result property="clauseNum" column="clause_num" /> + <result property="content" column="content" /> + <result property="clauseId" column="clause_id" /> + <result property="id" column="id" /> + </collection> +<!-- <collection ofType="com.gkhy.exam.system.domain.vo.SysDeptManageVo" property="sysDeptManageVoList" column="deptId = dept_id" select="getSysDeptManageVo">--> +<!-- <result property="subDeptId" column="sub_dept_id" />--> +<!-- <result property="subDeptName" column="sub_dept_name" />--> +<!-- <result property="deptId" column="dept_id" />--> + +<!-- </collection>--> + </resultMap> + + <select id="selectDeptPageList" parameterType="com.gkhy.exam.system.domain.req.SysDeptPageReq" resultMap="DeptVoPageResult"> + select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader_user_id, d.company_id, d.status, d.del_flag, d.create_by, d.create_time,d.person_num,d.internal_auditors, + d.order_num,d.responsibilities,d.dept_type,d.respons_type,u.name as leader_name,d2.dept_name as parent_name + from sys_dept d + left join sys_user u on d.leader_user_id = u.id + left join sys_dept d2 on d.parent_id = d2.dept_id + where d.del_flag = '0' + <if test="companyId != null and companyId != 0"> + AND d.company_id = #{companyId} + </if> + <if test="deptType != null and deptType != '' " > + AND d.dept_type = #{deptType} + </if> + <if test="responsType != null and responsType != '' " > + AND d.respons_type = #{responsType} + </if> + <if test="deptId != null and deptId != 0"> + AND d.dept_id = #{deptId} + </if> + <if test="parentId != null and parentId != 0"> + AND d.parent_id = #{parentId} + </if> + <if test="deptName != null and deptName != ''"> + AND d.dept_name like concat('%', #{deptName}, '%') + </if> + <if test="status != null and status != ''"> + AND d.status = #{status} + </if> + order by d.order_num desc + </select> + + <select id="getReponseData" resultType="com.gkhy.exam.system.domain.vo.CaluseVO1"> + select dr.content ,dr.clause_num,dr.id ,dr.clause_id from sys_dept_responsibility dr where dr.dept_id = #{deptId} and dr.del_flag = '0' and data_type = 2 + </select> + + +<!-- <select id="getSysDeptManageVo" resultType="com.gkhy.exam.system.domain.vo.SysDeptManageVo">--> +<!-- select sm.sub_dept_id ,sm2.dept_name as sub_dept_name,sm.dept_id from sys_dept_manage sm--> +<!-- left join sys_dept sm2 on sm2.dept_id = sm.sub_dept_id--> +<!-- where sm.dept_id = #{deptId}--> +<!-- </select>--> + + + <select id="selectDeptListCount" parameterType="com.gkhy.exam.common.domain.entity.SysDept" resultType="int"> + select count(d.dept_id) as total + from sys_dept d + where d.del_flag = '0' + <if test="companyId != null and companyId != 0"> + AND d.company_id = #{companyId} + </if> + <if test="deptType != null and deptType != '' " > + AND d.dept_type = #{deptType} + </if> + <if test="responsType != null and responsType != '' " > + AND d.respons_type = #{responsType} + </if> + <if test="deptId != null and deptId != 0"> + AND d.dept_id = #{deptId} + </if> + <if test="parentId != null and parentId != 0"> + AND d.parent_id = #{parentId} + </if> + <if test="deptName != null and deptName != ''"> + AND d.dept_name like concat('%', #{deptName}, '%') + </if> + <if test="status != null and status != ''"> + AND d.status = #{status} + </if> + </select> + <select id="getOutDeptList" parameterType="com.gkhy.exam.common.domain.entity.SysDept" resultMap="SysDeptResult"> @@ -83,7 +180,7 @@ <if test="status != null and status != ''"> AND status = #{status} </if> - order by d.parent_id, d.order_num + order by d.order_num desc </select> @@ -95,12 +192,12 @@ <if test="deptCheckStrictly"> and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId}) </if> - order by d.parent_id, d.order_num + order by d.order_num </select> <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader_user_id,d.company_id,d.status,d.person_num,d.internal_auditors, - d.responsibilities, + d.responsibilities,d.dept_type,d.respons_type, (select dept_name from sys_dept where dept_id = d.parent_id) parent_name,(select dept_name from sys_user where id = d.leader_user_id) leader_name ,(select dept_name from sys_user where id = d.internal_auditors) internal_auditors_name from sys_dept d @@ -119,7 +216,13 @@ <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult"> select * from sys_dept where find_in_set(#{deptId}, ancestors) </select> - + + <select id="getParentInfo" parameterType="Long" resultMap="SysDeptResult"> + SELECT * FROM sys_dept + WHERE dept_id != #{deptId} + AND FIND_IN_SET(#{deptId}, ancestors) = 0 + </select> + <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int"> select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors) </select> @@ -131,7 +234,7 @@ and del_flag = '0' limit 1 </select> - <insert id="insertDept" parameterType="com.gkhy.exam.common.domain.entity.SysDept"> + <insert id="insertDept" parameterType="com.gkhy.exam.common.domain.entity.SysDept" useGeneratedKeys="true" keyProperty="deptId"> insert into sys_dept( <if test="deptId != null and deptId != 0">dept_id,</if> <if test="parentId != null and parentId != 0">parent_id,</if> @@ -145,6 +248,7 @@ <if test="responsibilities != null and responsibilities != ''">responsibilities,</if> <if test="status != null">status,</if> <if test="createBy != null and createBy != ''">create_by,</if> + <if test="responsType != null and responsType != ''">respons_type,</if> create_time )values( <if test="deptId != null and deptId != 0">#{deptId},</if> @@ -159,6 +263,7 @@ <if test="responsibilities != null and responsibilities != ''">#{responsibilities},</if> <if test="status != null">#{status},</if> <if test="createBy != null and createBy != ''">#{createBy},</if> + <if test="responsType != null and responsType != ''">#{responsType},</if> sysdate() ) </insert> @@ -176,6 +281,7 @@ <if test="responsibilities != null and responsibilities != ''">responsibilities = #{responsibilities},</if> <if test="status != null and status != ''">status = #{status},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> + <if test="responsType != null and responsType != ''">respons_type = #{responsType},</if> update_time = sysdate() </set> where dept_id = #{deptId} @@ -202,7 +308,24 @@ </update> <delete id="deleteDeptById" parameterType="Long"> - update sys_dept set del_flag = '2' where dept_id = #{deptId} + update sys_dept set del_flag = '1' where dept_id = #{deptId} </delete> + + <insert id="insetMangeBatch"> + insert into sys_dept_manage(dept_id,sub_dept_id,company_id) values + <foreach item="item" index="index" collection="list" separator=","> + (#{item.deptId},#{item.subDeptId},#{item.companyId}) + </foreach> + </insert> + + <delete id="deleteMangeBatch"> + delete from sys_dept_manage where dept_id = #{deptId} + </delete> + + <select id="getAllManage" parameterType="long" resultType="com.gkhy.exam.system.domain.SysDeptManage"> + select * from sys_dept_manage + where company_id = #{companyId} + </select> + </mapper> \ No newline at end of file -- Gitblit v1.9.2