Bladeren bron

机构同步和新增修改机构 刷新 机构所属行社和地区字段值

zhulu 1 jaar geleden
bovenliggende
commit
a279471dec

+ 7 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysOrg.java

@@ -143,6 +143,13 @@ public class SysOrg extends BaseEntity {
     private String treeParentCode;
     @ApiModelProperty(value = "机构缩略词")
     private String breviary;
+
+    @ApiModelProperty(value = "机构所属地区")
+    private String affiliatedArea;
+
+    @ApiModelProperty(value = "机构所属行社")
+    private String affiliatedBank;
+
     /**
      * 子机构
      */

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -293,6 +293,10 @@ public class PanelServiceImpl implements PanelService {
         } else {
             List<String> fileLit = new ArrayList<>();
             for (SysLearningMaterialsPageVo vo : rows) {
+                if(vo.getIsOpen().equals(0))
+                {
+                    continue;
+                }
                 final String json = vo.getFileList();
                 if (ObjectUtil.isEmpty(json)) {
                     continue;

+ 7 - 0
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/domain/FjnxOrg.java

@@ -268,5 +268,12 @@ public class FjnxOrg implements Serializable {
     @TableField("tree_show_parent_code")
     private String treeShowParentCode;
 
+    @ApiModelProperty(value = "机构所属地区")
+    @TableField("affiliated_area")
+    private String affiliatedArea;
+
+    @ApiModelProperty(value = "机构所属行社")
+    @TableField("affiliated_bank")
+    private String affiliatedBank;
 
 }

+ 36 - 1
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -2,6 +2,7 @@ package com.xunmei.sync.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.util.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.R;
@@ -176,7 +177,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         }
 
         List<FjnxOrg> fjnxOrgList = ConvertXmlOrgDtoToOrgFjnx(fjnxXmlOrgDto.getOrgVos());
-        ifjnxOrgService.saveOrUpdateBatch(fjnxOrgList);
+//        ifjnxOrgService.saveOrUpdateBatch(fjnxOrgList);
 
         R<List<SysOrg>> existAllOrgResult = remoteOrgService.getAllOrg(SecurityConstants.INNER);
         if (existAllOrgResult.getCode() != 200) {
@@ -626,6 +627,8 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         org.setIsLock(ConvertOrgIsLockValue(fjnxOrgDto.getUsableFlag()));
         org.setDeleted(0);
         org.setSource(1);
+        org.setAffiliatedArea(fjnxOrgDto.getAffiliatedArea());
+        org.setAffiliatedBank(fjnxOrgDto.getAffiliatedBank());
         // todo 机构类型转换
         return org;
     }
@@ -711,6 +714,8 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         org.setIsLock(ConvertOrgIsLockValue(fjnxOrg.getUsableFlag()));
         org.setSource(1);
         org.setDeleted(0);
+        org.setAffiliatedArea(fjnxOrg.getAffiliatedArea());
+        org.setAffiliatedBank(fjnxOrg.getAffiliatedBank());
         return org;
 
     }
@@ -1101,6 +1106,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 //                String a="M33000000";
 //            }
 
+            // 设置机构的业务父级
             Optional<FjnxOrgBusinessRelation> first = fjnxOrgBusinessRelationList.stream().filter(b -> b.getOrgCode().equals(item.getOrgCode())).findFirst();
             if (first.isPresent()) {
                 String afterStr = StringEscapeUtils.escapeEcmaScript(item.getOrgName());
@@ -1115,12 +1121,41 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
                     log.error("设置fjnx机构树显示父级机构失败,机构名称:{},机构编码:{},机构树显示父级机构编码:{}", afterStr, first.get().getOrgCode(), first.get().getBusinessParentCode());
                 }
             }
+            // 设置机构所属行社
+            final Optional<FJNXOrgDto> affiliatedBank = list.stream().filter(x -> ObjectUtil.equal(x.getOrgCode(), item.getCorporCode())).findFirst();
+            if(affiliatedBank.isPresent())
+            {
+                tempOrg.setAffiliatedBank(affiliatedBank.get().getShortName());
+            }
+            // 设置机构所属地区
+            tempOrg.setAffiliatedArea(getOrgAffiliatedArea(tempOrg.getOrgPath(),list,fjnxOrgBusinessRelationList));
             resultList.add(tempOrg);
         });
         return AddCustomOrg(resultList);
     }
 
     /**
+     * 获取机构所属地区 ,机构不在地区下的返回空字符如 省联社下的职能部门
+     * @param userOrgPath 机构path
+     * @param specialOrgList 同步配置表中配置的各类型数据, 类型为3的为地区行社
+     * @return
+     */
+    private String getOrgAffiliatedArea(String userOrgPath,List<FJNXOrgDto> orgDtoList ,List<FjnxOrgBusinessRelation> specialOrgList){
+        final List<String> dqhsOrgCodeList = specialOrgList.stream().filter(x -> x.getOrgType().equals(3)).map(FjnxOrgBusinessRelation::getOrgCode).collect(Collectors.toList());
+        final List<String> orgCodeList = orgPathConvertToOrgCodeList(userOrgPath);
+        final Optional<String> first = CollectionUtils.intersection(orgCodeList, dqhsOrgCodeList).stream().findFirst();
+        if(first.isPresent())
+        {
+            final Optional<FJNXOrgDto> first1 = orgDtoList.stream().filter(x -> ObjectUtil.equal(x.getOrgCode(), first.get().toString())).findFirst();
+            if(first1.isPresent())
+            {
+                return first1.get().getShortName().replace("地区行社","");
+            }
+        }
+        return StringUtil.EMPTY_STRING;
+    }
+
+    /**
      * 新增 机关机构
      *
      * @param list

+ 51 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -597,12 +597,18 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                     List<SysOrg> allChildOrgList = reSetOrgAllChildOrgPath(org, originalOrg);
                     this.saveOrUpdateBatch(allChildOrgList);
                 }
+                final List<String> hsAndDqOrgNames = getHsAndDqOrgName(org.getPath());
+                org.setAffiliatedBank(hsAndDqOrgNames.get(0));
+                org.setAffiliatedArea(hsAndDqOrgNames.get(1));
             }
 
             isOk = this.updateById(org);
 
         } else {
             SysOrg parentOrg = sysOrgMapper.selectById(org.getParentId());
+            final List<String> hsAndDqOrgNames = getHsAndDqOrgName(parentOrg.getPath());
+            org.setAffiliatedBank(hsAndDqOrgNames.get(0));
+            org.setAffiliatedArea(hsAndDqOrgNames.get(1));
             org.setParentGuid(parentOrg.getGuid());
             org.setDeleted(0);
             long id = IdWorker.getId();
@@ -619,6 +625,51 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         return isOk;
     }
 
+    // 获取机构所属行社、地区的名称
+    private List<String> getHsAndDqOrgName(String path)
+    {
+        List<String> list=new ArrayList<>();
+        final List<Long> orgIdList =  Arrays.stream(path.split("-")).map(Arrays::asList)
+            .flatMap(Collection::stream)
+            .map(Long::valueOf)
+            .distinct().
+            collect(Collectors.toList());
+
+        final List<SysOrg> sysOrgs = sysOrgMapper.selectList(new LambdaQueryWrapper<SysOrg>()
+                .in(SysOrg::getId, orgIdList));
+
+        if(sysOrgs.size()<=0)
+        {
+            list.add( StringUtil.EMPTY_STRING);
+            list.add( StringUtil.EMPTY_STRING);
+            return list;
+        }
+
+        final Optional<SysOrg> hsOrg = sysOrgs.stream().filter(x -> ObjectUtil.equal(x.getType(),3)).findFirst();
+
+
+        // 行社名称
+        if(hsOrg.isPresent()){
+            list.add(hsOrg.get().getShortName());
+
+            final Optional<SysOrg> dqOrg = sysOrgs.stream().filter(x -> x.getId().equals(hsOrg.get().getParentId())).findFirst();
+            if(dqOrg.isPresent())
+            {
+                list.add(dqOrg.get().getShortName().replace("地区行社",""));
+            }
+            else {
+                list.add( StringUtil.EMPTY_STRING);
+            }
+        }
+        else {
+            list.add( StringUtil.EMPTY_STRING);
+            list.add( StringUtil.EMPTY_STRING);
+        }
+        // 地区名称
+
+        return list;
+    }
+
     @Override
     public boolean removeOrg(Long orgId) {
         boolean rel = this.removeById(orgId);

+ 18 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -308,6 +308,12 @@
             <if test="treeShowParentId != null">
                 treeShowParentId,
             </if>
+            <if test="affiliatedArea != null">
+                affiliated_area,
+            </if>
+            <if test="affiliatedBank != null">
+                affiliated_bank,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="address != null">
@@ -424,6 +430,12 @@
             <if test="treeShowParentId != null">
                 #{treeShowParentId},
             </if>
+            <if test="affiliatedArea != null">
+                #{affiliatedArea},
+            </if>
+            <if test="affiliatedBank != null">
+                #{affiliatedBank},
+            </if>
         </trim>
     </insert>
 
@@ -585,6 +597,12 @@
             <if test="treeShowParentId != null">
                 tree_show_parentId=#{treeShowParentId},
             </if>
+            <if test="affiliatedArea != null">
+                affiliated_area=#{affiliatedArea},
+            </if>
+            <if test="affiliatedBank != null">
+                affiliated_bank=#{affiliatedBank},
+            </if>
         </trim>
         where id = #{id}
     </update>