From ab6ab7f9f1c56cca6ea8c45690eb01495460c476 Mon Sep 17 00:00:00 2001 From: root <123> Date: Wed, 16 Feb 2022 16:30:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?2022=E5=B9=B4=202=E6=9C=8816=E6=97=A5=20?= =?UTF-8?q?=E6=95=B0=E7=AE=A1=E7=BB=9F=E8=AE=A1=E5=8C=BA=E5=9F=9F=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=95=B0=E9=87=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/rest/CityGeomController.java | 61 +++++++++++++++++-- .../com/cetc32/dh/mybatis/DataAreaMapper.java | 2 +- .../com/cetc32/dh/mybatis/DataFileMapper.java | 10 +++ .../cetc32/dh/service/DataAreaService.java | 2 +- .../cetc32/dh/service/DataFileService.java | 10 +++ .../dh/service/impl/DataAreaServiceImpl.java | 2 +- .../dh/service/impl/DataFileServiceImpl.java | 19 ++++++ src/main/resources/mapper/CityGeomMapper.xml | 2 +- src/main/resources/mapper/DataAreaMapper.xml | 2 +- src/main/resources/mapper/DataFileMapper.xml | 15 +++++ 10 files changed, 116 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java b/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java index 4553fa3..1f54c94 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java @@ -10,9 +10,11 @@ package com.cetc32.dh.controller.rest; import com.cetc32.dh.common.response.ResponseData; import com.cetc32.dh.common.response.ResponseResult; import com.cetc32.dh.entity.CityGeom; +import com.cetc32.dh.entity.DataFile; import com.cetc32.dh.entity.DataMenu; import com.cetc32.dh.service.CityGeomService; import com.cetc32.dh.service.DataAreaService; +import com.cetc32.dh.service.DataFileService; import com.cetc32.dh.service.DataMenuService; import com.cetc32.webutil.common.annotations.LoginSkipped; import io.swagger.annotations.ApiOperation; @@ -22,6 +24,9 @@ import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static jdk.nashorn.internal.objects.NativeArray.concat; @RestController @@ -34,6 +39,8 @@ public class CityGeomController { DataAreaService dataAreaService; @Autowired DataMenuService dataMenuService; + @Autowired + DataFileService dataFileService; @LoginSkipped @@ -137,7 +144,11 @@ public class CityGeomController { List MidNames = new ArrayList<>(); List tmpCodes =new ArrayList<>(); DataMenu dataMenu = null; - List> result =new ArrayList<>(); + List> result=new ArrayList<>(); + List dataFileList =new ArrayList<>(); + + String polygonText = cityGeomService.queryByName(areaName).getPolygonText(); + result = dataFileService.selectFileIdByPolygon(polygonText); if(flag.equals("市")||flag.equals("省")) { areaCodes = cityGeomService.queryAreaCodeByCity(areaName); areaCodes.addAll(cityGeomService.queryAreaCodeByProvince(areaName)); @@ -152,17 +163,59 @@ public class CityGeomController { } } } - if(areaCodes.size()==0){ + // + if(result==null||result.size()==0||areaCodes.size()==0){ return ResponseResult.error("未找到相关区域信息和文件信息,请传入正确参数!"); }else{ - result=dataAreaService.countByAreaCodes(areaCodes); + result.addAll(dataAreaService.countByAreaCodes(areaCodes)); + result=combineMap("menuid",result); + for (Map map:result) { - dataMenu = dataMenuService.queryById((long)map.get("menuid")); + dataMenu = dataMenuService.queryById(Long.parseLong(map.get("menuid").toString())); map.put("menuname",dataMenu.getMenuName()); + String[] idsArry = ((String)map.get("fileids")).split(","); + Stream stream = Arrays.stream(idsArry); + List list = stream.distinct().collect(Collectors.toList()); + idsArry = list.toArray(new String[]{}); + map.put("count",idsArry.length); + map.put("fileids",idsArry); + List fileIds = Arrays.stream(idsArry) + .map(s -> Long.parseLong(s.trim())) + .collect(Collectors.toList()); + dataFileList = dataFileService.queryByIds(fileIds); + map.put("filedetail",dataFileList); } return ResponseResult.success(result); } } + + public static List> combineMap(String combineField, List> dataList){ + //用于存放最后的结果 + List> countList = new ArrayList>(); + for (int i = 0; i < dataList.size(); i++) { + String oldCombineField = String.valueOf(dataList.get(i).get(combineField)); + + int flag = 0;//0为新增数据,1为增加count + for (int j = 0; j < countList.size(); j++) { + String newCombineField = String.valueOf(countList.get(j).get(combineField)); + if (oldCombineField.equals(newCombineField)) { + //做累加的操作 + String fileids =dataList.get(i).get("fileids").toString().concat(countList.get(j).get("fileids").toString()); + countList.get(j).put("fileids", fileids); + flag = 1; + break; + } + } + if (flag == 0) { + countList.add(dataList.get(i)); + } + } + return countList; + } + + + + } diff --git a/src/main/java/com/cetc32/dh/mybatis/DataAreaMapper.java b/src/main/java/com/cetc32/dh/mybatis/DataAreaMapper.java index 6fe7e17..1a990b8 100644 --- a/src/main/java/com/cetc32/dh/mybatis/DataAreaMapper.java +++ b/src/main/java/com/cetc32/dh/mybatis/DataAreaMapper.java @@ -17,5 +17,5 @@ import java.util.List; public interface DataAreaMapper { public Integer insertArea(List areaList); public Integer deleteAreaByDataId(@Param("dataId")Long dataId); - public List> countByAreaCodes(List areaCodes); + public List> countByAreaCodes(List areaCodes); } diff --git a/src/main/java/com/cetc32/dh/mybatis/DataFileMapper.java b/src/main/java/com/cetc32/dh/mybatis/DataFileMapper.java index 7011081..a53f591 100644 --- a/src/main/java/com/cetc32/dh/mybatis/DataFileMapper.java +++ b/src/main/java/com/cetc32/dh/mybatis/DataFileMapper.java @@ -14,7 +14,9 @@ import org.springframework.stereotype.Repository; import tk.mybatis.mapper.common.Mapper; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Title: DataFileMapper @@ -66,6 +68,8 @@ public interface DataFileMapper extends Mapper { */ public DataFile queryById(Long id); + public List queryByIds(List fileIds); + /** * 根据时间查询文件数据 * @@ -82,6 +86,12 @@ public interface DataFileMapper extends Mapper { */ public List queryByRegion(String region); + /** + * 查询polygontext包含points的datafileIds + * @return 返回查询结果 + */ + public List> selectFileIdByPolygon(@Param("polygontext") String polygontext); + /** * 根据安全等级查询文件数据 * diff --git a/src/main/java/com/cetc32/dh/service/DataAreaService.java b/src/main/java/com/cetc32/dh/service/DataAreaService.java index 374727b..fa9bfdc 100644 --- a/src/main/java/com/cetc32/dh/service/DataAreaService.java +++ b/src/main/java/com/cetc32/dh/service/DataAreaService.java @@ -16,5 +16,5 @@ public interface DataAreaService { Integer insertArea(List areaList); Integer deleteAreaByDataId(Long dataId); Integer updateArea(Long dataId,List list); - List > countByAreaCodes(List areaCode); + List > countByAreaCodes(List areaCode); } diff --git a/src/main/java/com/cetc32/dh/service/DataFileService.java b/src/main/java/com/cetc32/dh/service/DataFileService.java index dd6f223..5f2b1a1 100644 --- a/src/main/java/com/cetc32/dh/service/DataFileService.java +++ b/src/main/java/com/cetc32/dh/service/DataFileService.java @@ -9,7 +9,9 @@ package com.cetc32.dh.service; import com.cetc32.dh.entity.DataFile; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Title: DataFileService @@ -61,6 +63,8 @@ public interface DataFileService { */ public DataFile queryById(Long id); + public List queryByIds(List fileIds); + /** * 根据时间查询文件数据 * @@ -77,6 +81,12 @@ public interface DataFileService { */ public List queryByRegion(String region); + /** + * 查询polygontext包含points的datafileIds + * @return 返回查询结果 + */ + public List> selectFileIdByPolygon(String polygontext); + /** * 根据安全等级查询文件数据 * diff --git a/src/main/java/com/cetc32/dh/service/impl/DataAreaServiceImpl.java b/src/main/java/com/cetc32/dh/service/impl/DataAreaServiceImpl.java index f16aac6..68919ad 100644 --- a/src/main/java/com/cetc32/dh/service/impl/DataAreaServiceImpl.java +++ b/src/main/java/com/cetc32/dh/service/impl/DataAreaServiceImpl.java @@ -41,7 +41,7 @@ public class DataAreaServiceImpl implements DataAreaService { return dataAreaMapper.insertArea(list); } @Override - public List> countByAreaCodes(List areaCode){ + public List> countByAreaCodes(List areaCode){ return dataAreaMapper.countByAreaCodes(areaCode); } } diff --git a/src/main/java/com/cetc32/dh/service/impl/DataFileServiceImpl.java b/src/main/java/com/cetc32/dh/service/impl/DataFileServiceImpl.java index e8d515e..09b96af 100644 --- a/src/main/java/com/cetc32/dh/service/impl/DataFileServiceImpl.java +++ b/src/main/java/com/cetc32/dh/service/impl/DataFileServiceImpl.java @@ -183,6 +183,17 @@ public class DataFileServiceImpl implements DataFileService { return dataFileMapper.queryById(id); } + /** + * 根据id查询文件数据 + * + * @param id 文件id + * @return 返回查询结果 + */ + @Override + public List queryByIds(List fileIds) { + return dataFileMapper.queryByIds(fileIds); + } + /** * 根据时间查询文件数据 * @@ -205,6 +216,14 @@ public class DataFileServiceImpl implements DataFileService { return dataFileMapper.queryByRegion(region); } + /** + * 查询polygontext包含points的datafileIds + * @return 返回查询结果 + */ + public List> selectFileIdByPolygon(String polygontext){ + return dataFileMapper.selectFileIdByPolygon(polygontext); + } + /** * 根据安全等级查询文件数据 * diff --git a/src/main/resources/mapper/CityGeomMapper.xml b/src/main/resources/mapper/CityGeomMapper.xml index 1398d04..6d318fb 100644 --- a/src/main/resources/mapper/CityGeomMapper.xml +++ b/src/main/resources/mapper/CityGeomMapper.xml @@ -46,7 +46,7 @@ - select menuid,count(distinct(dataid)) from data_area + select menuid,count(distinct(dataid)),array_to_string(array_agg(distinct(dataid)),',') as fileids from data_area areacode in diff --git a/src/main/resources/mapper/DataFileMapper.xml b/src/main/resources/mapper/DataFileMapper.xml index 45217fd..648bfe6 100644 --- a/src/main/resources/mapper/DataFileMapper.xml +++ b/src/main/resources/mapper/DataFileMapper.xml @@ -483,6 +483,16 @@ where id= #{id,jdbcType=BIGINT} + + + - select menuid,count(distinct(dataid)),array_to_string(array_agg(distinct(dataid)),',') as fileids from data_area + select menuid,array_to_string(array_agg(distinct(dataid)),',') as fileids from data_area areacode in diff --git a/src/main/resources/mapper/DataFileMapper.xml b/src/main/resources/mapper/DataFileMapper.xml index 648bfe6..ffb8a36 100644 --- a/src/main/resources/mapper/DataFileMapper.xml +++ b/src/main/resources/mapper/DataFileMapper.xml @@ -42,7 +42,8 @@ - SELECT currval('data_file_id_seq'::regclass) as id + SELECT setval('data_file_id_seq', (SELECT max(id) FROM data_file)) +-- SELECT setval('data_file_id_seq'::regclass) as id insert into data_file @@ -483,13 +484,16 @@ where id= #{id,jdbcType=BIGINT} - select * from data_file + id in #{fileid} + + -- Gitee From 06e4c59f6972bfe9c3f322fc96fa064c6de49d1a Mon Sep 17 00:00:00 2001 From: root <123> Date: Fri, 18 Feb 2022 11:05:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?2022=E5=B9=B4=202=E6=9C=8818=E6=97=A5=20?= =?UTF-8?q?=E6=95=B0=E7=AE=A1=E5=8C=BA=E5=9F=9F=E6=96=87=E4=BB=B6=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E8=AF=A6=E6=83=85=E5=B1=95=E7=A4=BA=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?(=E5=88=86=E7=9B=AE=E5=BD=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cetc32/dh/controller/rest/CityGeomController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java b/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java index 4bd0186..0786e97 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/CityGeomController.java @@ -166,8 +166,9 @@ public class CityGeomController { } } } + // - if(result==null||result.size()==0||areaCodes.size()==0){ + if((result==null||result.size()==0)&&areaCodes.size()==0){ return ResponseResult.error("未找到相关区域信息和文件信息,请传入正确参数!"); }else{ result.addAll(dataAreaService.countByAreaCodes(areaCodes)); -- Gitee