Browse Source

机构树调整

jiawuxian 2 years ago
parent
commit
1d1cc68069

+ 11 - 11
soc-common/soc-common-security/src/main/java/com/xunmei/common/security/config/WebMvcConfig.java

@@ -45,16 +45,16 @@ public class WebMvcConfig implements WebMvcConfigurer, ApplicationContextAware {
 
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-        final AbstractJackson2HttpMessageConverter httpMessageConverter = applicationContext.getBean(AbstractJackson2HttpMessageConverter.class);
-        final ObjectMapper objectMapper = httpMessageConverter.getObjectMapper();
-        SimpleModule simpleModule = new SimpleModule();
-
-        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
-        simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
-        simpleModule.addSerializer(long.class, ToStringSerializer.instance);
-
-        objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
-        objectMapper.registerModule(simpleModule);
-        httpMessageConverter.setObjectMapper(objectMapper);
+//        final AbstractJackson2HttpMessageConverter httpMessageConverter = applicationContext.getBean(AbstractJackson2HttpMessageConverter.class);
+//        final ObjectMapper objectMapper = httpMessageConverter.getObjectMapper();
+//        SimpleModule simpleModule = new SimpleModule();
+//
+//        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+//        simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
+//        simpleModule.addSerializer(long.class, ToStringSerializer.instance);
+//
+//        objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
+//        objectMapper.registerModule(simpleModule);
+//        httpMessageConverter.setObjectMapper(objectMapper);
     }
 }

+ 3 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRuleServiceImpl.java

@@ -10,6 +10,7 @@ import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.ServiceImplBase;
 import com.xunmei.core.resumption.vo.appRuleItem.RuleTreeItem;
 import com.xunmei.core.safetyCheck.domain.SafetyCheckRule;
 import com.xunmei.core.safetyCheck.dto.rule.SafetyCheckRuleEditDto;
@@ -44,7 +45,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
-public class SafetyCheckRuleServiceImpl extends ServiceImpl<SafetyCheckRuleMapper, SafetyCheckRule> implements ISafetyCheckRuleService {
+public class SafetyCheckRuleServiceImpl extends ServiceImplBase<SafetyCheckRuleMapper, SafetyCheckRule> implements ISafetyCheckRuleService {
     @Resource
     private SafetyCheckRuleMapper safetyCheckRuleMapper;
 
@@ -54,6 +55,7 @@ public class SafetyCheckRuleServiceImpl extends ServiceImpl<SafetyCheckRuleMappe
     @Override
     public TableDataInfo getRulePage(SafetyCheckRulePageDto query) {
         Page<SafetyCheckRulePageVo> page = query.getPageDto();
+        handleSupOrgPage(query);
         page = safetyCheckRuleMapper.selectPageByCondition(page, query);
 
         return TableDataInfo.success(page);

+ 11 - 3
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/SafetyCheckRuleMapper.xml

@@ -9,7 +9,7 @@
         a.status as status,
         a.remark as remark,
         a.org_id as orgId,
-        org.name as orgName
+        org.short_name as orgName
         from core_safetycheck_rule a
         inner join sys_org org on a.org_id = org.id
         <where>
@@ -27,8 +27,16 @@
                 and a.org_id=#{appRule.orgId}
             </if>
             <if test="appRule.checkSub==true">
-                and a.org_id in (select id from sys_org where `path` like concat((select `path` from sys_org where id =
-                #{appRule.orgId}),'%'))
+                and (a.org_id in (select id from sys_org where `path` like concat(#{appRule.orgPath},'%'))
+                <if test="appRule.parentOrgIds!=null and appRule.parentOrgIds.size()>0">
+                    or a.org_id in
+                    <foreach collection="appRule.parentOrgIds" separator="," open="(" close=")" item="id">
+                        #{id}
+                    </foreach>)
+                </if>
+                <if test="appRule.parentOrgIds==null or appRule.parentOrgIds.size()==0">
+                    and 1=1)
+                </if>
             </if>
         </where>
         order by a.create_time desc

+ 4 - 4
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -152,11 +152,11 @@ public class SysDeptController extends BaseController {
     }
 
     /**
-     * 获取登录用户机构及下级机构树列表(机构)
+     * 获取登录用户机构及下级机构树列表(机构),不包含办事处节点
      */
     @GetMapping("/deptTree/hangshe")
     public AjaxResult hangsheDeptTree() {
-        return success(deptService.selectTreeByOrgType(false,OrgTypeEnum.HANG_SHE));
+        return success(deptService.selectTreeByOrgType(false,false,OrgTypeEnum.HANG_SHE));
     }
 
     /**
@@ -164,7 +164,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree/wholetree/bytype")
     public AjaxResult wholeTreeByType(@RequestParam Integer orgType) {
-        return success(deptService.selectTreeByOrgType(true,OrgTypeEnum.getOrgTypeEnum(orgType)));
+        return success(deptService.selectTreeByOrgType(true,true,OrgTypeEnum.getOrgTypeEnum(orgType)));
     }
 
     @PostMapping("/deptTree/business")
@@ -196,7 +196,7 @@ public class SysDeptController extends BaseController {
     @PostMapping("/deptTree/hangshewhole")
     @InnerAuth
     public R<List<SysOrgVO>> hangsheWholePathTree(@RequestBody Long orgId) {
-        return R.ok(deptService.hangsheWholePathTree(orgId));
+        return R.ok(deptService.hangsheWholePath(orgId));
     }
 
     /**

+ 3 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeptService.java

@@ -38,7 +38,7 @@ public interface ISysDeptService extends IService<SysDept> {
      *
      * @return
      */
-    List<SysOrgVO> selectTreeByOrgType(Boolean includeUp, OrgTypeEnum orgType);
+    List<SysOrgVO> selectTreeByOrgType(Boolean includeUp,Boolean includeBangshichu, OrgTypeEnum orgType);
 
     List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request);
 
@@ -48,7 +48,7 @@ public interface ISysDeptService extends IService<SysDept> {
      * @param path
      * @return
      */
-    List<SysOrgVO> getWholePathInCache(String path, OrgTypeEnum orgType);
+    List<SysOrgVO> getWholePathInCache(Boolean includeUp,String path, OrgTypeEnum orgType);
 
     /**
      * 获取指定机构树,包含到顶级节点的路径及下级所有机构
@@ -56,7 +56,7 @@ public interface ISysDeptService extends IService<SysDept> {
      * @param orgId
      * @return
      */
-    List<SysOrgVO> hangsheWholePathTree(Long orgId);
+    List<SysOrgVO> hangsheWholePath(Long orgId);
 
     /**
      * 机构管理

+ 18 - 24
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java

@@ -147,17 +147,21 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return
      */
     @Override
-    public List<SysOrgVO> selectTreeByOrgType(Boolean includeUp, OrgTypeEnum orgType) {
-        String path="";
+    public List<SysOrgVO> selectTreeByOrgType(Boolean includeUp,Boolean includeBangshichu, OrgTypeEnum orgType) {
+        String path = "";
         SysOrg sysOrg = getLoginUserOrg();
-        path=sysOrg.getPath();
-        if(includeUp){
-            sysOrg=null;
+        path = sysOrg.getPath();
+        if (includeUp) {
+            sysOrg = null;
         }
 
-        List<SysOrgVO> orglist = getWholePathInCache(path, orgType);
-
-        return generateTree(orglist, sysOrg);
+        List<SysOrgVO> orglist = getWholePathInCache(includeUp, path, orgType);
+        if(!includeBangshichu){
+            orglist=orglist.stream().filter(o->ObjectUtil.notEqual(o.getType(),OrgTypeEnum.BAN_SHI_CHU.getCode()))
+                    .collect(Collectors.toList());
+        }
+        List<SysOrgVO> r = generateTree(orglist, sysOrg);
+        return r;
     }
 
     @Override
@@ -229,7 +233,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return
      */
     @Override
-    public List<SysOrgVO> getWholePathInCache(String path, OrgTypeEnum orgType) {
+    public List<SysOrgVO> getWholePathInCache(Boolean includeUp, String path, OrgTypeEnum orgType) {
         List<SysOrgVO> cacheList = getOrgCache();
         List<SysOrgVO> hangshelist = cacheList.stream().filter(c -> ObjectUtil.equal(c.getType(), orgType.getCode())
                         && ObjectUtil.isNotEmpty(c.getPath()) && c.getPath().startsWith(path))
@@ -246,7 +250,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
                     });
         });
         hangshelist.addAll(cacheList.stream()
-                .filter(o -> parentIds.contains(o.getId()))
+                .filter(o -> parentIds.contains(o.getId()) && (includeUp || (ObjectUtil.isNotEmpty(o.getPath()) && o.getPath().startsWith(path))))
                 .collect(Collectors.toList()));
 
         return hangshelist;
@@ -259,21 +263,11 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return
      */
     @Override
-    public List<SysOrgVO> hangsheWholePathTree(Long orgId) {
-        List<SysOrgVO> orgs = getWholePathInCache("", OrgTypeEnum.HANG_SHE);
-        Map<Long, SysOrgVO> orgMap = orgs.stream().collect(Collectors.toMap(o -> o.getId(), o -> o));
-        if (!orgMap.containsKey(orgId)) {
-            return new ArrayList<>();
-        }
-
-        SysOrgVO self = orgMap.get(orgId);
-        List<SysOrgVO> orgVOS = orgs.stream().filter(o -> o.getTreeShowPath().startsWith(self.getTreeShowPath()))
-                .collect(Collectors.toList());
-        List<Long> parentIds = Arrays.stream(self.getTreeShowPath().split("-")).map(o -> Long.parseLong(o)).collect(Collectors.toList());
-        parentIds = parentIds.stream().limit(parentIds.size() - 1).collect(Collectors.toList());
-        orgVOS.addAll(parentIds.stream().map(id -> orgMap.get(id)).collect(Collectors.toList()));
+    public List<SysOrgVO> hangsheWholePath(Long orgId) {
+        SysOrg org= orgService.getById(orgId);
+        List<SysOrgVO> orgs = getWholePathInCache(true,org.getPath(), OrgTypeEnum.HANG_SHE);
 
-        return orgVOS;
+        return orgs;
     }