浏览代码

新增机构type为school,并过滤流程数据权限

wangliang 3 年之前
父节点
当前提交
b6379ef8bc

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/OrgTypeEnum.java

@@ -11,6 +11,8 @@ import java.util.Objects;
  */
 public enum OrgTypeEnum {
 
+    SCHOOL("学校"),
+
     COLLEGE("学院"),
 
     FACULTY("院系"),

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysOrgMapper.java

@@ -33,9 +33,10 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * 递归树查询(同级及以上)
      *
      * @param orgId
+     * @param school
      * @return
      */
-    List<SysOrg> findByConnectByParentId(@Param("orgId") Long orgId);
+    List<SysOrg> findByConnectByParentId(@Param("orgId") Long orgId, @Param("school") Boolean school);
 
     /**
      * 递归树查询(同级及以下)

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -73,9 +73,10 @@ public interface SysOrgService extends IService<SysOrg> {
      * 递归树查询(同级及以上)
      *
      * @param orgId
+     * @param school
      * @return
      */
-    List<SysOrg> findByConnectByParentId(Long orgId);
+    List<SysOrg> findByConnectByParentId(Long orgId, Boolean school);
 
     /**
      * 递归树查询(同级及以下)

+ 3 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -280,11 +280,12 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
      * 递归树查询(同级及以上)
      *
      * @param orgId
+     * @param school
      * @return
      */
     @Override
-    public List<SysOrg> findByConnectByParentId(Long orgId) {
-        return sysOrgMapper.findByConnectByParentId(orgId);
+    public List<SysOrg> findByConnectByParentId(Long orgId, Boolean school) {
+        return sysOrgMapper.findByConnectByParentId(orgId, school);
     }
 
     /**

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -594,7 +594,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         Set<SysOrg> sysOrgSet = new HashSet<>();
         for (Long l : orgIds) {
-            sysOrgSet.addAll(sysOrgService.findByConnectByParentId(l));
+            sysOrgSet.addAll(sysOrgService.findByConnectByParentId(l, true));
         }
         Set<Long> orgIdsSet = sysOrgSet.stream().map(s -> s.getId()).collect(Collectors.toSet());
         List<ApproveUserResult> approveUserResultList = sysUserService.filterFlowPrivilege(schoolId, orgIdsSet, true, FlowApproveNameEnum.PRESIDENT);

+ 5 - 0
teachcloud-common/src/main/resources/mapper/SysOrgMapper.xml

@@ -24,6 +24,11 @@
 
     <select id="findByConnectByParentId" resultType="com.qmth.teachcloud.common.entity.SysOrg">
         SELECT su.* FROM (SELECT @a AS _id, (SELECT @a := so.parent_id FROM sys_org so WHERE so.id = _id) AS parent_id FROM (SELECT @a := #{orgId}) vars, sys_org h WHERE @a <![CDATA[ <> ]]> 0) temp JOIN sys_org su ON temp._id = su.id
+        <where>
+            <if test="school != null and school != '' and school == 1">
+                and su.type <![CDATA[ <> ]]> 'SCHOOL';
+            </if>
+        </where>
     </select>
 
     <select id="findByConnectByRootOrgId" resultType="com.qmth.teachcloud.common.entity.SysOrg">