ソースを参照

后管项目列表搜索和清表搜索优化

lvy 3 日 前
コミット
163c2542e8

+ 1 - 29
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ExcelTabMapper.xml

@@ -229,35 +229,6 @@
             #{item}
         </foreach>
     </select>
-<!--    <select id="selectRootExcelTab" resultType="org.springblade.manager.vo.ExcelTabVO">-->
-<!--        SELECT-->
-<!--        t.project_id as projectId,-->
-<!--        p.project_name as projectName,-->
-<!--        t.root_id as id-->
-<!--        FROM (-->
-<!--        SELECT-->
-<!--        project_id,-->
-<!--        SUBSTRING_INDEX(alias, ',', 1) as root_id-->
-<!--        FROM m_wbs_tree_private a-->
-<!--        LEFT JOIN m_excel_tab b ON a.excel_id = b.id-->
-<!--        WHERE a.type = 2-->
-<!--        AND a.is_deleted = 0-->
-<!--        AND a.excel_id IS NOT NULL-->
-<!--        <if test="vo != null ">-->
-<!--          <if test="vo.projectId != null">-->
-<!--              AND a.project_id = #{vo.projectId}-->
-<!--          </if>-->
-<!--        </if>-->
-<!--        GROUP BY project_id, root_id-->
-<!--        <if test="rootIds != null and rootIds.size() > 0">-->
-<!--            HAVING root_id IN-->
-<!--            <foreach collection="rootIds" item="item" open="(" separator="," close=")">-->
-<!--                #{item}-->
-<!--            </foreach>-->
-<!--        </if>-->
-<!--        ) t-->
-<!--        INNER JOIN m_project_info p ON p.id = t.project_id where project_id is not null-->
-<!--    </select>-->
     <select id="selectRootExcelTab" resultType="org.springblade.manager.vo.ExcelTabVO">
         SELECT distinct
         a.project_id as projectId,
@@ -290,6 +261,7 @@
                 #{item}
             </foreach>
         </if>
+        order by d.sort
     </select>
     <select id="getByIds" resultType="org.springblade.manager.vo.ExcelTabVO">
         select *, (select name from blade_user where id = a.create_user) as createUserName, (SELECT bdb.dict_value from blade_dict_biz bdb WHERE code = 'table_template_type' AND dict_key = a.table_template_type) as tableTemplateTypeName

+ 14 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -156,6 +156,8 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 List<Long> ids = records.stream().map(ExcelTabVO::getId).collect(Collectors.toList());
                 List<ExcelTabVO> excelTabs = this.baseMapper.getByIds(ids);
                 Map<Long, ExcelTabVO> map = excelTabs.stream().collect(toMap(ExcelTabVO::getId, v -> v));
+                List<ExcelTabVO> projectInfoList  = baseMapper.selectRootExcelTab(new Page<>(), null, ids);
+                Map<Long, List<ExcelTabVO>> collect = projectInfoList.stream().collect(Collectors.groupingBy(ExcelTabVO::getId));
                 records.forEach(v -> {
                     ProjectInfoVO1 projectInfoVO1 = new ProjectInfoVO1();
                     projectInfoVO1.setProjectId(v.getProjectId());
@@ -163,7 +165,18 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     if (map.get(v.getId()) != null) {
                         BeanUtil.copyProperties(map.get(v.getId()), v);
                     }
-                    v.setProjectInfoList(Collections.singletonList(projectInfoVO1));
+                    List<ExcelTabVO> excelTabVOS = collect.get(v.getId());
+                    if (excelTabVOS != null) {
+                        List<ProjectInfoVO1> list = excelTabVOS.stream().map(vo -> {
+                            ProjectInfoVO1 projectInfoVO2 = new ProjectInfoVO1();
+                            projectInfoVO2.setProjectId(vo.getProjectId());
+                            projectInfoVO2.setProjectName(vo.getProjectName());
+                            return projectInfoVO2;
+                        }).collect(Collectors.toList());
+                        v.setProjectInfoList(list);
+                    } else {
+                        v.setProjectInfoList(Collections.singletonList(projectInfoVO1));
+                    }
                 });
             }
             return page.setRecords(records);

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsInfoServiceImpl.java

@@ -34,9 +34,9 @@ public class WbsInfoServiceImpl extends BaseServiceImpl<WbsInfoMapper, WbsInfo>
     @Override
     public IPage<WbsInfo> selectWbsInfoPage(IPage<WbsInfo> page, WbsInfoDTO wbsInfo) {
         Set<Long> wbsIds = new HashSet<>();
-        if (StringUtil.hasText(wbsInfo.getProjectName()) || wbsInfo.getProjectId() != null) {
+        if (StringUtil.hasText(wbsInfo.getProjectName()) || StringUtil.isNumeric(wbsInfo.getProjectId())) {
             List<ProjectInfo> projectInfoList;
-            if (wbsInfo.getProjectId() != null && StringUtil.isNumeric(wbsInfo.getProjectId())) {
+            if (StringUtil.isNumeric(wbsInfo.getProjectId())) {
                 projectInfoList = jdbcTemplate.query("select * from m_project_info where id = " + wbsInfo.getProjectId(), new BeanPropertyRowMapper<>(ProjectInfo.class));
             } else {
                 projectInfoList = jdbcTemplate.query("select * from m_project_info where project_name like '%" + wbsInfo.getProjectName() + "%'", new BeanPropertyRowMapper<>(ProjectInfo.class));