Prechádzať zdrojové kódy

feat: 在选择区域的时候添加一层LTE和NB的区分

weijianghai 2 rokov pred
rodič
commit
33e4b06f2a

+ 4 - 2
src/main/java/com/nokia/hb/dao/mapper/PerCfgCellMapper.java

@@ -35,7 +35,8 @@ public interface PerCfgCellMapper extends BaseMapper<PerCfgCell> {
     @Select("<script>"
             + "select a.cellname, a.city, a.quxian, a.vendor, b.*"
             + " from (select eci, cellname, city, quxian, vendor from pm_parse.per_cfg_cell"
-                + " where city in"
+                + " where net = #{net}"
+                + " and city in"
                 + " <foreach open=\"(\" close=\")\" collection=\"citys\" item=\"item\" separator=\",\">"
                 + "   #{item}"
                 + " </foreach>"
@@ -49,7 +50,8 @@ public interface PerCfgCellMapper extends BaseMapper<PerCfgCell> {
             + " on a.eci = b.eci"
             + " order by b.sdate desc"
             + " </script>")
-    List<Map<String, Object>> searchByCity(@Param("citys") Set<String> citys, @Param("quxians") Set<String> quxians,
+    List<Map<String, Object>> searchByCity(@Param("net") String net, @Param("citys") Set<String> citys,
+                                           @Param("quxians") Set<String> quxians,
                                            @Param("indicators") String indicators, @Param("timeType") String timeType,
                                            @Param("startTime") LocalDateTime startTime,
                                            @Param("endTime") LocalDateTime endTime);

+ 10 - 4
src/main/java/com/nokia/hb/pojo/dto/RenderTableDto.java

@@ -16,10 +16,16 @@ import java.util.Set;
 @AllArgsConstructor
 @Data
 public class RenderTableDto {
-    @Schema(description = "地市列表")
-    private Set<String> citys;
-    @Schema(description = "区县列表")
-    private Set<String> quxians;
+    @Schema(description = "是否包含其他")
+    private Boolean includeOther;
+    @Schema(description = "lte地市列表")
+    private Set<String> lteCitys;
+    @Schema(description = "lte区县列表")
+    private Set<String> lteQuxians;
+    @Schema(description = "nblte地市列表")
+    private Set<String> nblteCitys;
+    @Schema(description = "nblte区县列表")
+    private Set<String> nblteQuxians;
     @Schema(description = "时间单位")
     @NotNull(message = "timeType不能为空")
     private TimeTypeEnum timeType;

+ 12 - 0
src/main/java/com/nokia/hb/pojo/enums/NetTypeEnum.java

@@ -0,0 +1,12 @@
+package com.nokia.hb.pojo.enums;
+
+public enum NetTypeEnum {
+    /**
+     * LTE
+     */
+    LTE,
+    /**
+     * NBLTE
+     */
+    NBLTE;
+}

+ 11 - 2
src/main/java/com/nokia/hb/service/AreaService.java

@@ -4,6 +4,7 @@ import com.nokia.common.R;
 import com.nokia.hb.dao.entity.PerCfgArea;
 import com.nokia.hb.dao.mapper.PerCfgAreaMapper;
 import com.nokia.hb.pojo.TreeNode;
+import com.nokia.hb.pojo.enums.NetTypeEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -24,7 +25,12 @@ public class AreaService {
     public R<List<TreeNode>> initTreeCitys() {
         List<PerCfgArea> areas = perCfgAreaMapper.all();
         Map<String, List<TreeNode>> m = new HashMap<>();
-        TreeNode allTree = new TreeNode("地市选择", "地市选择", new ArrayList<>());
+        TreeNode lteTree = new TreeNode(NetTypeEnum.LTE.name(), NetTypeEnum.LTE.name(), new ArrayList<>());
+        TreeNode nblteTree = new TreeNode(NetTypeEnum.NBLTE.name(), NetTypeEnum.NBLTE.name(), new ArrayList<>());
+        List<TreeNode> netList = new ArrayList<>();
+        netList.add(lteTree);
+        netList.add(nblteTree);
+        TreeNode allTree = new TreeNode("地市选择", "地市选择", netList);
         allTree.setSpread(true);
         List<TreeNode> res = new ArrayList<>();
         res.add(allTree);
@@ -36,7 +42,10 @@ public class AreaService {
             m.putIfAbsent(city, new ArrayList<>());
             m.get(city).add(t);
         });
-        m.forEach((key, value) -> allTree.getChildren().add(new TreeNode(key, key, value)));
+        m.forEach((key, value) -> {
+            lteTree.getChildren().add(new TreeNode(key, key, value));
+            nblteTree.getChildren().add(new TreeNode(key, key, value));
+        });
         allTree.getChildren().add(new TreeNode("其他", "其他", null));
         return R.ok(res);
     }

+ 20 - 6
src/main/java/com/nokia/hb/service/PmService.java

@@ -7,6 +7,7 @@ import com.nokia.hb.dao.mapper.PerCfgIndicatorMapper;
 import com.nokia.hb.pojo.Col;
 import com.nokia.hb.pojo.RetData;
 import com.nokia.hb.pojo.dto.RenderTableDto;
+import com.nokia.hb.pojo.enums.NetTypeEnum;
 import com.nokia.hb.pojo.enums.SearchTypeEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -39,18 +40,31 @@ public class PmService {
             // 获取拥有的城市权限
             Map<String, String> areas = (Map<String, String>) session.getAttribute("areas");
             // 地区权限校验
-            for (String t : dto.getCitys()) {
-                if (!"其他".equals(t) && !areas.containsKey(t)) {
+            for (String t : dto.getLteCitys()) {
+                if (!areas.containsKey(t)) {
                     log.debug("没有权限的city: {}", t);
                     return R.error("没有" + t + "的权限");
                 }
             }
-            if (!CollectionUtils.isEmpty(dto.getQuxians())) {
-                List<Map<String, Object>> l = perCfgCellMapper.searchByCity(dto.getCitys(), dto.getQuxians(), indicators,
-                        dto.getTimeType().name().toLowerCase(), dto.getStartTime(), dto.getEndTime());
+            for (String t : dto.getNblteCitys()) {
+                if (!areas.containsKey(t)) {
+                    log.debug("没有权限的city: {}", t);
+                    return R.error("没有" + t + "的权限");
+                }
+            }
+            if (!CollectionUtils.isEmpty(dto.getLteQuxians())) {
+                List<Map<String, Object>> l = perCfgCellMapper.searchByCity(NetTypeEnum.LTE.name(), dto.getLteCitys(),
+                        dto.getLteQuxians(), indicators, dto.getTimeType().name().toLowerCase(), dto.getStartTime(),
+                        dto.getEndTime());
+                list.addAll(l);
+            }
+            if (!CollectionUtils.isEmpty(dto.getNblteQuxians())) {
+                List<Map<String, Object>> l = perCfgCellMapper.searchByCity(NetTypeEnum.NBLTE.name(),
+                        dto.getNblteCitys(), dto.getNblteQuxians(), indicators, dto.getTimeType().name().toLowerCase(),
+                        dto.getStartTime(), dto.getEndTime());
                 list.addAll(l);
             }
-            if (dto.getCitys().contains("其他")) {
+            if (Boolean.TRUE.equals(dto.getIncludeOther())) {
                 List<Map<String, Object>> l = perCfgCellMapper.others(indicators, dto.getTimeType().name(),
                         dto.getStartTime(), dto.getEndTime());
                 list.addAll(l);

+ 47 - 22
src/main/resources/templates/template.html

@@ -449,7 +449,8 @@
                 }
             });
         }
-        function renderTable(condition, searchType, table, citys, quxians, indicators, timeType, startTime, endTime) {
+        function renderTable(includeOther, condition, searchType, table, lteCitys, lteQuxians, nblteCitys, nblteQuxians,
+                             indicators, timeType, startTime, endTime) {
             var tishi = layer.load(1, {
                 shadeClose: false,
                 title: '加载中..',
@@ -459,10 +460,13 @@
             //     layer.close(tishi);
             // },5000)
             const dataJson = JSON.stringify({
+                "includeOther": includeOther,
                 "condition": condition,
                 "searchType": searchType,
-                "citys": [...citys],
-                "quxians": [...quxians],
+                "lteCitys": [...lteCitys],
+                "lteQuxians": [...lteQuxians],
+                "nblteCitys": [...nblteCitys],
+                "nblteQuxians": [...nblteQuxians],
                 "indicators": [...indicators],
                 "timeType": timeType,
                 "startTime": startTime,
@@ -526,27 +530,47 @@
                 alert('请选择地市')
                 return;
             }
-            let checkData1 = tree?.getChecked('Id1')?.[0]?.children;
-            let quxians = new Set()
-            let citys = new Set()
-            if (checkData1) {
-                checkData1.forEach(eee => {
-                    citys.add(eee.title)
-                    eee?.children?.forEach(ee => {
-                        quxians.add(ee.title)
-                    })
-                });
-            }
-            // console.log('0000000', tree.getChecked('Id4')[0]);
-
+            const checkData1 = tree.getChecked('Id1')?.[0]?.children;
+            let lte
+            let nblte
+            let includeOther = false
+            checkData1.forEach?.(t => {
+                if (t?.id === 'LTE') {
+                    lte = t
+                }
+                if (t?.id === 'NBLTE') {
+                    nblte = t
+                }
+                if (t?.id === '其他') {
+                    includeOther = true
+                }
+            })
+            console.log(lte)
+            console.log(nblte)
+            const lteQuxians = new Set()
+            let lteCitys = new Set()
+            lte?.children.forEach?.(eee => {
+                lteCitys.add(eee.title)
+                eee?.children.forEach?.(ee => {
+                    lteQuxians.add(ee.title)
+                })
+            })
+            const nblteQuxians = new Set()
+            let nblteCitys = new Set()
+            nblte?.children.forEach?.(eee => {
+                nblteCitys.add(eee.title)
+                eee?.children.forEach?.(ee => {
+                    nblteQuxians.add(ee.title)
+                })
+            })
             let checkData2 ;
             // console.log('3333 ', tree.getChecked('Id3')[0]?.children);
             // console.log('4444 ', tree.getChecked('Id4')[0]?.children);
-            if(tree.getChecked('Id3')[0]?.children){
-                checkData2= tree.getChecked('Id3')[0].children ;
+            if(tree.getChecked('Id3')?.[0]?.children){
+                checkData2= tree.getChecked('Id3')?.[0]?.children ;
             }
-            if(tree.getChecked('Id4')[0]?.children){
-                checkData2= tree.getChecked('Id4')[0].children ;
+            if(tree.getChecked('Id4')?.[0]?.children){
+                checkData2= tree.getChecked('Id4')?.[0]?.children ;
             }
             const indicators = new Set();
             checkData2.forEach(eee => {
@@ -557,7 +581,8 @@
             let timeType = $('#timeType').val()
             let sdate = $('#time1').val()
             const [startTime, endTime] = sdate.split(' - ')
-            renderTable(condition, searchType, table, citys, quxians, indicators, timeType, startTime, endTime)
+            renderTable(includeOther, condition, searchType, table, lteCitys, lteQuxians, nblteCitys, nblteQuxians,
+                indicators, timeType, startTime, endTime)
             return false;
         }
 
@@ -703,7 +728,7 @@
 
         // 删除指标模板
         function deleteTemplate() {
-            const checkedData = tree?.getChecked('Id3')?.[0]?.children
+            const checkedData = tree.getChecked('Id3')?.[0]?.children
             if (!checkedData || checkedData.length <= 0) {
                 alert('请选择要删除的指标模板!')
                 return