Explorar o código

机构和人员导出先按照行社排序号排序在按照自有排序号排序

xujie hai 1 ano
pai
achega
36da156ec9

+ 3 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysOrgMapper.java

@@ -177,7 +177,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      */
     OrgPhysicalDefenseConstructionExport complianceStatus(@Param("orgPath") String orgPath);
 
-    List<ConstructionDetailExport> selectConstructionDetail(@Param("orgPath") String orgPath);
+    List<ConstructionDetailExport> selectConstructionDetail(@Param("orgPath") String orgPath,@Param("findInSetOrder") String findInSetOrder);
 
     List<SysOrg> selectSysOrgByPathAndType(@Param("path") String path, @Param("type") Integer type);
 
@@ -200,7 +200,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      */
     List<SysSelectOrgComponentDto> selectOrgs(@Param("org") SysOrgDto org);
 
-    List<OrgExtendExport> exportOrgExtend(@Param("org") SysOrg org,@Param("typeList") List<Integer> typeList);
+    List<OrgExtendExport> exportOrgExtend(@Param("org") SysOrg org,@Param("typeList") List<Integer> typeList,@Param("findInSetOrder") String findInSetOrder);
 
-    List<OrgPhysicalDefenseConstructionDetailExport> exportDefenseDetailExtend(@Param("org") SysOrg org, @Param("typeList") List<Integer> typeList);
+    List<OrgPhysicalDefenseConstructionDetailExport> exportDefenseDetailExtend(@Param("org") SysOrg org, @Param("typeList") List<Integer> typeList,@Param("findInSetOrder") String findInSetOrder);
 }

+ 4 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserMapper.java

@@ -159,9 +159,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     List<SysUser> selectUserListByRoleAndOrg(@Param("sysRoleOrgDTO") SysPlanOrgDTO sysRoleOrgDTO);
 
-    List<UserExport> select(@Param("info") SysUser user);
+    List<UserExport> select(@Param("info") SysUser user, @Param("findInSetOrder") String findInSetOrder);
 
-    List<SecurityUserExport> selectSecurityUser(@Param("path") String path);
+    List<SecurityUserExport> selectSecurityUser(@Param("path") String path, @Param("findInSetOrder") String findInSetOrder);
 
     List<String> selectCountByNames(@Param("names") List<String> names);
 
@@ -172,4 +172,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysMasterSubUserVO> selectSwitchUserList(@Param("masterUserId") Long masterUserId);
 
     List<SysMasterSubUserVO> selectAssociatedList(@Param("subUserId") Long subUserId);
+
+    List<String> getFindInSetOrder(@Param("path") String path);
 }

+ 47 - 4
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -581,7 +581,9 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             dept.setPath(org.getPath());
         }
 
-        List<ConstructionDetailExport> constructionDetailExports = baseMapper.selectConstructionDetail(dept.getPath());
+        String findInSetOrder = this.handleFindInSetOrder(dept.getPath());
+
+        List<ConstructionDetailExport> constructionDetailExports = baseMapper.selectConstructionDetail(dept.getPath(),findInSetOrder);
        /* //hang
         constructionDetailExports.forEach(c -> {
             SysOrg sysOrg = baseMapper.selectSysOrgById(c.getOrgId());
@@ -1285,8 +1287,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 dept.setPath(sysOrg.getPath());
             }
         }
+
+        String findInSetOrder = this.handleFindInSetOrder(dept.getPath());
+
         List<OrgExtendExport> orgExtendExports= null;
-        orgExtendExports = baseMapper.exportOrgExtend(dept, typeList);
+        orgExtendExports = baseMapper.exportOrgExtend(dept, typeList, findInSetOrder);
 
         if (dept.getType() != null){
             switch (dept.getType()){
@@ -1417,8 +1422,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 dept.setPath(sysOrg.getPath());
             }
         }
+
+        String findInSetOrder = this.handleFindInSetOrder(dept.getPath());
+
         List<OrgPhysicalDefenseConstructionDetailExport> detailExports= null;
-        detailExports = baseMapper.exportDefenseDetailExtend(dept, typeList);
+        detailExports = baseMapper.exportDefenseDetailExtend(dept, typeList, findInSetOrder);
 
         try {
             //营业网点需要单独处理:机构类型为营业网点,GA38没有营业网点数据的需要单独生成一条空的数据
@@ -1456,6 +1464,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                     }
                 }
 
+                List<OrgPhysicalDefenseConstructionDetailExport> addList = new ArrayList<>();
                 if (!map.isEmpty()) {
                     Iterator<Map.Entry<Long, List<OrgPhysicalDefenseConstructionDetailExport>>> createIterator = map.entrySet().iterator();
                     while (createIterator.hasNext()) {
@@ -1469,9 +1478,33 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                             detail.setDateOfComplete(null);
                             detail.setDateOfCompliance(null);
                             detail.setReason(null);
-                            detailExports.add(detail);
+                            addList.add(detail);
+                        }
+                    }
+                }
+
+                if (addList.size() > 0) {
+                    HashMap<Integer, OrgPhysicalDefenseConstructionDetailExport> indexMap = new HashMap<>();
+                    int addCount = 1;
+                    for (int i = 0; i < detailExports.size(); i++) {
+                        OrgPhysicalDefenseConstructionDetailExport detailExport = detailExports.get(i);
+                        for (int j = 0; j < addList.size(); j++) {
+                            OrgPhysicalDefenseConstructionDetailExport addExport = addList.get(j);
+                            if(ObjectUtil.equal(detailExport.getCity(), addExport.getCity()) && ObjectUtil.equal(detailExport.getAffiliatedBank(), addExport.getAffiliatedBank())
+                                    && ObjectUtil.equal(detailExport.getShortName(), addExport.getShortName())){
+                                indexMap.put(i + addCount, addExport);
+                                addCount ++;
+                                break;
+                            }
                         }
                     }
+
+                    if (!indexMap.isEmpty()){
+                        for (Map.Entry<Integer, OrgPhysicalDefenseConstructionDetailExport> entry : indexMap.entrySet()) {
+                            detailExports.add(entry.getKey(), entry.getValue());
+                        }
+
+                    }
                 }
             }
         }catch (Exception e){
@@ -1508,4 +1541,14 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         }
         return org.getAffiliatedArea()+"-"+org.getAffiliatedBank()+"-"+org.getShortName();
     }
+
+
+    private String handleFindInSetOrder(String path){
+        List<String> list = sysUserMapper.getFindInSetOrder(path);
+        if (list != null && list.size() > 0){
+            return String.join(",", list);
+        }
+        return "";
+    }
+
 }

+ 13 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -715,7 +715,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             org = sysOrgMapper.selectById(user.getOrgId());
         }
         user.setOrgPath(org.getPath());
-        return userMapper.select(user);
+
+        String findInSetOrder = this.handleFindInSetOrder(org.getPath());
+        return userMapper.select(user,findInSetOrder);
+    }
+
+    private String handleFindInSetOrder(String path){
+        List<String> list = userMapper.getFindInSetOrder(path);
+        if (list != null && list.size() > 0){
+            return String.join(",", list);
+        }
+        return "";
     }
 
     public String calculateWorkExperience(Date workStartDate) {
@@ -741,7 +751,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public List<SecurityUserExport> downSecurityUser() {
         SysOrg sysOrg2 = orgService.selectSysOrgById(SecurityUtils.getLoginUser().getOrgId());
-        List<SecurityUserExport> securityUserExports = userMapper.selectSecurityUser(sysOrg2.getPath());
+        String findInSetOrder = this.handleFindInSetOrder(sysOrg2.getPath());
+        List<SecurityUserExport> securityUserExports = userMapper.selectSecurityUser(sysOrg2.getPath(),findInSetOrder);
         List<SysOrg> diquOrgs = orgService.list(new LambdaQueryWrapper<SysOrg>().likeRight(SysOrg::getShortName, "地区行社").eq(SysOrg::getIsLock, 0).eq(SysOrg::getDeleted, 0));
         securityUserExports.forEach(s -> {
             s.setCity("福建");

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

@@ -884,9 +884,14 @@ and
                         GROUP BY org_id) t1) a ON c.id = a.org_id
         LEFT JOIN sys_org_extend b ON c.id = b.org_id
         WHERE c.type=4
-        and c.deleted = 0
-        and c.is_lock = 0
-        and c.path like concat(#{orgPath}, '%')
+            and c.deleted = 0
+            and c.is_lock = 0
+            and c.path like concat(#{orgPath}, '%')
+        ORDER BY
+            FIND_IN_SET( c.affiliated_bank, #{findInSetOrder} ),
+            c.is_lock,
+            isnull( c.sort ),
+            c.sort
     </select>
     <select id="getReachNumber" resultType="java.lang.Integer">
         select SUM(a.size) from (select org_id,if(count(*) > 0,1,0) as size from  sys_org_physical_defense_construction where standard in (1,2) and type = 1 GROUP BY org_id) a
@@ -1435,7 +1440,11 @@ and
                     #{orgType}
                 </foreach>
             </if>
-        order by b.affiliated_bank asc,b.is_lock asc
+        ORDER BY
+            FIND_IN_SET( b.affiliated_bank, #{findInSetOrder} ),
+            b.is_lock,
+            isnull( b.sort ),
+            b.sort
     </select>
     <select id="exportDefenseDetailExtend" resultType="com.xunmei.system.util.OrgPhysicalDefenseConstructionDetailExport">
         SELECT
@@ -1474,7 +1483,11 @@ and
                     #{orgType}
                 </foreach>
             </if>
-        order by b.affiliated_bank asc,b.is_lock asc
+        ORDER BY
+            FIND_IN_SET( b.affiliated_bank, #{findInSetOrder} ),
+            b.is_lock,
+            isnull( b.sort ),
+            b.sort
     </select>
 
 </mapper>

+ 26 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -714,6 +714,11 @@
             AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
         </if>
         group by u.id
+        ORDER BY
+            FIND_IN_SET( o.affiliated_bank, #{findInSetOrder} ),
+            o.is_lock,
+            isnull( o.sort ),
+            o.sort
     </select>
     <select id="selectCountByNames" resultType="java.lang.String">
         select u.name from sys_user u where u.deleted=0 and u.name in
@@ -747,6 +752,11 @@
         WHERE b.deleted = 0
           AND b.is_manage='Y'
           and c.path like concat(#{path}, '%')
+        ORDER BY
+            FIND_IN_SET( c.affiliated_bank, #{findInSetOrder} ),
+            c.is_lock,
+            isnull( c.sort ),
+            c.sort
     </select>
 
     <select id="checkUserPermission" resultType="Long">
@@ -811,4 +821,20 @@
         WHERE um.sub_user_id=#{subUserId}
     </select>
 
+    <select id="getFindInSetOrder" resultType="java.lang.String">
+        SELECT
+            s.affiliated_bank
+        FROM
+            sys_org s
+        WHERE
+            s.type = '3'
+            AND s.deleted = 0
+            <if test = "path != null and path != ''" >
+                AND s.path LIKE concat( #{path} , '%')
+            </if>
+        GROUP BY
+            s.affiliated_bank
+        ORDER BY
+            s.sort
+    </select>
 </mapper>