xiangpei
2024-08-05 2a57a16c9b54e23050a4fa534abb5ebbb6e846a8
ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -9,6 +9,7 @@
      <result property="parentId"   column="parent_id"   />
      <result property="ancestors"  column="ancestors"   />
      <result property="deptName"   column="dept_name"   />
      <result property="area"   column="area"   />
      <result property="orderNum"   column="order_num"   />
      <result property="leader"     column="leader"      />
      <result property="phone"      column="phone"       />
@@ -21,15 +22,15 @@
      <result property="updateBy"   column="update_by"   />
      <result property="updateTime" column="update_time" />
   </resultMap>
   <sql id="selectDeptVo">
        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time,d.area
        from sys_dept d
    </sql>
   <select id="selectDeptList" parameterType="com.ycl.system.entity.SysDept" resultMap="SysDeptResult">
        <include refid="selectDeptVo"/>
        where d.del_flag = '0'
        where d.del_flag = 0
      <if test="deptId != null and deptId != 0">
         AND dept_id = #{deptId}
      </if>
@@ -46,7 +47,7 @@
      ${params.dataScope}
      order by d.parent_id, d.order_num
    </select>
    <select id="selectDeptListByRoleId" resultType="Long">
      select d.dept_id
      from sys_dept d
@@ -57,36 +58,41 @@
            </if>
      order by d.parent_id, 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, d.phone, d.email, d.status,
      select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,d.area,
         (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
      from sys_dept d
      where d.dept_id = #{deptId}
   </select>
    <select id="checkDeptExistUser" parameterType="Long" resultType="int">
      select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'
      select count(1) from sys_user where dept_id = #{deptId} and del_flag = 0
   </select>
   <select id="hasChildByDeptId" parameterType="Long" resultType="int">
      select count(1) from sys_dept
      where del_flag = '0' and parent_id = #{deptId} limit 1
      where del_flag = 0 and parent_id = #{deptId} limit 1
   </select>
   <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
      select * from sys_dept where find_in_set(#{deptId}, ancestors)
   </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 id="selectByParentId"  resultType="java.lang.Integer">
      select dept_id from sys_dept
      where del_flag = 0 and parent_id = #{id}
   </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>
   <select id="checkDeptNameUnique" resultMap="SysDeptResult">
       <include refid="selectDeptVo"/>
      where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
      where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = 0 limit 1
   </select>
    <insert id="insertDept" parameterType="com.ycl.system.entity.SysDept">
       insert into sys_dept(
          <if test="deptId != null and deptId != 0">dept_id,</if>
@@ -114,12 +120,13 @@
          sysdate()
       )
   </insert>
   <update id="updateDept" parameterType="com.ycl.system.entity.SysDept">
       update sys_dept
       <set>
          <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
          <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
          <if test="area != null and area != ''">area = #{area},</if>
          <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
          <if test="orderNum != null">order_num = #{orderNum},</if>
          <if test="leader != null">leader = #{leader},</if>
@@ -131,7 +138,7 @@
       </set>
       where dept_id = #{deptId}
   </update>
   <update id="updateDeptChildren" parameterType="java.util.List">
       update sys_dept set ancestors =
       <foreach collection="depts" item="item" index="index"
@@ -144,16 +151,36 @@
           #{item.deptId}
       </foreach>
   </update>
   <update id="updateDeptStatusNormal" parameterType="Long">
        update sys_dept set status = '0' where dept_id in
        update sys_dept set status = '0' where dept_id in
        <foreach collection="array" item="deptId" open="(" separator="," close=")">
           #{deptId}
        </foreach>
   </update>
   <delete id="deleteDeptById" parameterType="Long">
      update sys_dept set del_flag = '2' where dept_id = #{deptId}
   </delete>
</mapper>
   <select id="cascader" resultType="com.ycl.platform.base.Cascader">
      SELECT dept_id as value, dept_name as label, parent_id as parentId FROM sys_dept WHERE status = '0' AND del_flag = 0
   </select>
   <select id="selectParents" resultType="long">
      WITH RECURSIVE temp_table AS (
         SELECT
            dept_id, dept_name, parent_id, 0 as level FROM sys_dept WHERE dept_id = 101
         UNION ALL
         SELECT
            sd.dept_id, sd.dept_name, sd.parent_id, tb.level+1 FROM sys_dept sd INNER JOIN temp_table tb ON sd.dept_id = tb.parent_id
      )
      SELECT
         dept_id
      FROM
         temp_table
      ORDER BY
         level DESC
   </select>
</mapper>