select d.dept_id,
               d.dept_code,
               d.parent_id,
               d.ancestors,
               d.dept_name,
               d.order_num,
               d.leader,
               d.phone,
               d.dept_type,
               d.email,
               d.status,
               d.del_flag,
               d.create_by,
               d.guid,
               d.orgid,
               d.create_time,
               d.his_dept_id,
               d.his_parent_id
        from sys_dept d
    
    
    
    
    
    
    
    
    
    
    
        insert into sys_dept(
        dept_id,
        parent_id,
        dept_name,
        ancestors,
        order_num,
        leader,
        phone,
        email,
        status,
        dept_code,
        dept_type,
        create_by,
        his_dept_id,
        his_parent_id,
        orgid,
        create_time
        )values(
        #{deptId},
        #{parentId},
        #{deptName},
        #{ancestors},
        #{orderNum},
        #{leader},
        #{phone},
        #{email},
        #{status},
        #{deptCode},
        #{deptType},
        #{createBy},
        #{hisDeptId},
        #{hisParentId},
        #{orgid},
        sysdate()
        )
    
    
        update sys_dept
        
            parent_id = #{parentId},
            dept_name = #{deptName},
            ancestors = #{ancestors},
            order_num = #{orderNum},
            leader = #{leader},
            phone = #{phone},
            email = #{email},
            status = #{status},
            dept_code=#{deptCode},
            dept_type=#{deptType},
            update_by = #{updateBy},
            his_parent_id = #{hisParentId},
            his_dept_id = #{hisDeptId},
            orgid = #{orgid},
            update_time = sysdate()
        
        where dept_id = #{deptId}
    
    
        update sys_dept set ancestors =
        
            when #{item.deptId} then #{item.ancestors}
        
        where dept_id in
        
            #{item.deptId}
        
    
    
        update sys_dept set status = '0' where dept_id in
        
            #{deptId}
        
    
    
        update sys_dept
        set del_flag = '1'
        where dept_id = #{deptId}