Procházet zdrojové kódy

重点库新增搜索行业功能

Wayne před 3 měsíci
rodič
revize
96e359d0aa

+ 6 - 6
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml

@@ -580,25 +580,25 @@
         from sub_fix a left join sub_info b on a.sub_id = b.id
         where a.cat = #{queryVO.stateFix} and a.year = #{queryVO.year} and b.logic_delete_flag = 0
         <if test="queryVO.subName != null and queryVO.subName != ''">
-            AND sub_info.sub_name LIKE CONCAT('%', #{queryVO.subName}, '%')
+            AND b.sub_name LIKE CONCAT('%', #{queryVO.subName}, '%')
         </if>
         <if test="queryVO.subjectId != null and queryVO.subjectId != ''">
-            AND sub_info.subject_id = #{queryVO.subjectId}
+            AND b.subject_id = #{queryVO.subjectId}
         </if>
         <if test="indusKinds != null and indusKinds.size() &gt; 0">
-            AND sub_info.indus_kind IN
+            AND b.indus_kind IN
             <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
                 #{item}
             </foreach>
         </if>
         <if test="queryVO.sbdw != null and queryVO.sbdw != ''">
-            AND sub_info.unit_desc LIKE CONCAT('%', #{queryVO.sbdw}, '%')
+            AND b.unit_desc LIKE CONCAT('%', #{queryVO.sbdw}, '%')
         </if>
         <if test="queryVO.startAmt != null and queryVO.startAmt != ''">
-            AND sub_info.amt_total &gt;= #{queryVO.startAmt}
+            AND b.amt_total &gt;= #{queryVO.startAmt}
         </if>
         <if test="queryVO.endAmt != null and queryVO.endAmt != ''">
-            AND sub_info.amt_total &lt;= #{queryVO.endAmt}
+            AND b.amt_total &lt;= #{queryVO.endAmt}
         </if>
     </select>
     <!--预警-->

+ 48 - 46
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java

@@ -374,57 +374,59 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
                 .filter(StringUtils::isNotBlank)
                 .collect(Collectors.toList());
 
-        // 查询前期手续办理情况表中的数据,获取所有重点项目的前期手续信息
-        List<SubInfoFixDetailPreNew> preNewList = Optional.ofNullable(
-                subInfoMapper.selectSubPreNewBySubIds(subIdList)
-        ).orElse(Collections.emptyList());
-
-        //对手续信息按照id进行分组
-        Map<String, List<SubInfoFixDetailPreNew>> preNewMap = preNewList.stream().collect(Collectors.groupingBy(SubInfoFixDetailPreNew::getSubId));
-
-        // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
-        list.forEach(e->{
-            List<SubInfoFixDetailPreNew> subInfoFixDetailPreNewList = preNewMap.get(e.getId());
-            StringBuilder sb = new StringBuilder();
-            if (com.rtrh.common.util.CollectionUtil.isNotEmpty(subInfoFixDetailPreNewList)){
-                //已经完成的手续
-                StringBuilder end = new StringBuilder("已完成:");
-                //正在办理的手续
-                StringBuilder yellow = new StringBuilder("进行中:");
-                //判断是否有已完成手续
-                boolean endBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"2".equals(f.getStatusConf()));
-                //判断是否有正在进行手续
-                boolean yellowBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"1".equals(f.getStatusConf()));
-                subInfoFixDetailPreNewList.forEach(f->{
-                    if ("1".equals(f.getStatusConf())){
-                        yellow.append(f.getTitle()).append(",");
-                    }else if ("2".equals(f.getStatusConf())){
-                        end.append(f.getTitle()).append(",");
+        if (list != null && list.size() > 0){
+            // 查询前期手续办理情况表中的数据,获取所有重点项目的前期手续信息
+            List<SubInfoFixDetailPreNew> preNewList = Optional.ofNullable(
+                    subInfoMapper.selectSubPreNewBySubIds(subIdList)
+            ).orElse(Collections.emptyList());
+
+            //对手续信息按照id进行分组
+            Map<String, List<SubInfoFixDetailPreNew>> preNewMap = preNewList.stream().collect(Collectors.groupingBy(SubInfoFixDetailPreNew::getSubId));
+
+            // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
+            list.forEach(e->{
+                List<SubInfoFixDetailPreNew> subInfoFixDetailPreNewList = preNewMap.get(e.getId());
+                StringBuilder sb = new StringBuilder();
+                if (com.rtrh.common.util.CollectionUtil.isNotEmpty(subInfoFixDetailPreNewList)){
+                    //已经完成的手续
+                    StringBuilder end = new StringBuilder("已完成:");
+                    //正在办理的手续
+                    StringBuilder yellow = new StringBuilder("进行中:");
+                    //判断是否有已完成手续
+                    boolean endBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"2".equals(f.getStatusConf()));
+                    //判断是否有正在进行手续
+                    boolean yellowBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"1".equals(f.getStatusConf()));
+                    subInfoFixDetailPreNewList.forEach(f->{
+                        if ("1".equals(f.getStatusConf())){
+                            yellow.append(f.getTitle()).append(",");
+                        }else if ("2".equals(f.getStatusConf())){
+                            end.append(f.getTitle()).append(",");
+                        }
+                    });
+                    if (endBoolean){
+                        sb.append(end, 0, end.length()-1).append("。");
+                    }
+                    if (yellowBoolean){
+                        sb.append(yellow, 0, yellow.length()-1).append("。");
+                    }
+                    if (!endBoolean && !yellowBoolean){
+                        sb.append("暂无手续办理情况!");
                     }
-                });
-                if (endBoolean){
-                    sb.append(end, 0, end.length()-1).append("。");
-                }
-                if (yellowBoolean){
-                    sb.append(yellow, 0, yellow.length()-1).append("。");
                 }
-                if (!endBoolean && !yellowBoolean){
-                    sb.append("暂无手续办理情况!");
+                e.setQqsxblqk(sb.toString());
+                if (StringUtils.isNotBlank(e.getSubjectId())){
+                    e.setSubjectId(jsddNameMap.getOrDefault(e.getSubjectId(),""));
                 }
-            }
-            e.setQqsxblqk(sb.toString());
-            if (StringUtils.isNotBlank(e.getSubjectId())){
-                e.setSubjectId(jsddNameMap.getOrDefault(e.getSubjectId(),""));
-            }
 
-            //遍历subInfoTotalExcel将万元转换为亿元
-            e.setAmtTotal(e.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
+                //遍历subInfoTotalExcel将万元转换为亿元
+                e.setAmtTotal(e.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
 
-            //由于content字段过长,所以截取长度100字符,避免空指针异常
-            // 检查内容是否为空,避免空指针异常,并截取前100个字符
-            String content = e.getContent();
-            e.setContent(content == null ? "" : StringUtils.substring(content, 0, 100));
-        });
+                //由于content字段过长,所以截取长度100字符,避免空指针异常
+                // 检查内容是否为空,避免空指针异常,并截取前100个字符
+                String content = e.getContent();
+                e.setContent(content == null ? "" : StringUtils.substring(content, 0, 100));
+            });
+        }
 
         PageInfo<SubFixListVo> pageInfo = new PageInfo<SubFixListVo>(list);
         page.setList(list);

+ 7 - 7
projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubInfoQueryApiController.java

@@ -86,7 +86,7 @@ public class SubInfoQueryApiController extends BaseController {
     }
 
     /**
-     * 项目台账
+     * 获取重点项目数据
      *
      * @param page
      * @param queryVO
@@ -103,15 +103,15 @@ public class SubInfoQueryApiController extends BaseController {
             //保存行业code
             List<String> indusKinds = new ArrayList<>();
             //判断搜索条件中是否有行业分类条件
-            if (StringUtils.isNotBlank(queryVO.getIndusKinds())) {
+            if (StringUtils.isNotBlank(queryVO.getIndusKind())) {
                 //在subInduList中找到code=queryVO.getIndusKinds()的数据
-                SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(queryVO.getIndusKinds())).findFirst().orElse(null);
+                SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(queryVO.getIndusKind())).findFirst().orElse(null);
 
                 if (subIndu != null){
                     //判断这个行业是不是上级行业
                     if (StringUtils.isBlank(subIndu.getLastId())){
                         // 这个行业是上级行业,需要找到所有下级行业的code
-                        indusKinds = subInduList.stream().filter(item -> item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                        indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
                     }else {
                         indusKinds.add(subIndu.getCode());
                     }
@@ -654,15 +654,15 @@ public class SubInfoQueryApiController extends BaseController {
         //保存行业code
         List<String> indusKinds = new ArrayList<>();
         //判断搜索条件中是否有行业分类条件
-        if (StringUtils.isNotBlank(queryVO.getIndusKinds())) {
+        if (StringUtils.isNotBlank(queryVO.getIndusKind())) {
             //在subInduList中找到code=queryVO.getIndusKinds()的数据
-            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(queryVO.getIndusKinds())).findFirst().orElse(null);
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(queryVO.getIndusKind())).findFirst().orElse(null);
 
             if (subIndu != null){
                 //判断这个行业是不是上级行业
                 if (StringUtils.isBlank(subIndu.getLastId())){
                     // 这个行业是上级行业,需要找到所有下级行业的code
-                    indusKinds = subInduList.stream().filter(item -> item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
                 }else {
                     indusKinds.add(subIndu.getCode());
                 }