From 21f45258cfcdc79127f85ad6e45736cff5acd345 Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Mon, 21 Oct 2024 20:58:05 +0800
Subject: [PATCH] 1、数据割接程序,白云区矛盾纠纷多元化解平台 2、纠纷态势报错修改
---
dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java | 198 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 191 insertions(+), 7 deletions(-)
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java
index e77afff..14fc9af 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java
@@ -4,16 +4,23 @@
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.base.common.utils.ObjectUtils;
+import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.constant.BaseConsts;
+import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.kind.dao.mapper.SyRegionMapper;
+import cn.huge.module.kind.domain.bo.AreaBO;
import cn.huge.module.kind.domain.dto.RegionSelectJSDTO;
import cn.huge.module.kind.domain.po.SyRegion;
import cn.huge.module.sys.dto.QueAddrBaseDTO;
+import cn.huge.module.sys.dto.QueAreaDTO;
import cn.huge.module.utils.BaiduMapAddrDTO;
import cn.huge.module.utils.BaiduMapUtils;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -25,9 +32,7 @@
import javax.annotation.PostConstruct;
import javax.swing.plaf.synth.Region;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* @title: 地域字典表业务逻辑处理
@@ -47,6 +52,9 @@
@Autowired
private UtilsClientImpl utilsClient;
+
+ @Autowired
+ private CustClientImpl custClient;
/**
* 更新对象
@@ -178,25 +186,25 @@
if (ObjectUtils.isNotEmpty(baiduMapAddrDTO)) {
QueryWrapper<SyRegion> syRegionQueryWrapper = new QueryWrapper<>();
// 查询省
- syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getProvince());
+ syRegionQueryWrapper.like("name", baiduMapAddrDTO.getProvince());
SyRegion province = mapper.selectOne(syRegionQueryWrapper);
queAddrBaseDTO.setQueProv(province.getId());
queAddrBaseDTO.setQueProvName(province.getName());
// 查询市
syRegionQueryWrapper.clear();
- syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getCity());
+ syRegionQueryWrapper.like("name", baiduMapAddrDTO.getCity());
SyRegion city = mapper.selectOne(syRegionQueryWrapper);
queAddrBaseDTO.setQueCity(city.getId());
queAddrBaseDTO.setQueCityName(city.getName());
// 查询区
syRegionQueryWrapper.clear();
- syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getDistrict());
+ syRegionQueryWrapper.like("name", baiduMapAddrDTO.getDistrict());
SyRegion district = mapper.selectOne(syRegionQueryWrapper);
queAddrBaseDTO.setQueArea(district.getId());
queAddrBaseDTO.setQueAreaName(district.getName());
// 查询街道
syRegionQueryWrapper.clear();
- syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getTown());
+ syRegionQueryWrapper.like("name", baiduMapAddrDTO.getTown());
SyRegion town = mapper.selectOne(syRegionQueryWrapper);
queAddrBaseDTO.setQueRoad(town.getId());
queAddrBaseDTO.setQueRoadName(town.getName());
@@ -209,6 +217,182 @@
}
+ public List<QueAreaDTO> listByParentId(String parentId){
+ List<QueAreaDTO> list = new ArrayList<>();
+ QueryWrapper<SyRegion> queryWrapper = new QueryWrapper();
+ queryWrapper.eq("parent_id", parentId);
+ List<SyRegion> syRegions = mapper.selectList(queryWrapper);
+ if(ObjectUtils.isNotEmpty(syRegions)){
+ for (SyRegion syRegion : syRegions) {
+ QueAreaDTO queAreaDTO = new QueAreaDTO();
+ queAreaDTO.setAreaCode(syRegion.getId());
+ queAreaDTO.setAreaName(syRegion.getName());
+ queAreaDTO.setParentId(syRegion.getParentId());
+ list.add(queAreaDTO);
+ }
+ }
+ return list;
+ }
+
+ public List<AreaBO> treeByUserId(String userId){
+ CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
+ Integer unitGrade = ctUnitDTO.getUnitGrade();
+ Set<AreaBO> areaSet = new HashSet<>();
+ if(unitGrade.equals(1)){
+ QueryWrapper<SyRegion> queryWrapper = new QueryWrapper();
+ queryWrapper.gt("level", 0);
+ List<SyRegion> syRegions = mapper.selectList(queryWrapper);
+ for (SyRegion syRegion : syRegions) {
+ AreaBO areaBO = new AreaBO();
+ areaBO.setParentId(syRegion.getParentId());
+ if(syRegion.getLevel().equals(1)){
+ areaBO.setParentId("root");
+ }
+ areaBO.setLevel(String.valueOf(syRegion.getLevel()));
+ areaBO.setLabel(syRegion.getName());
+ areaBO.setValue(syRegion.getId());
+ areaBO.setSort(syRegion.getId());
+ areaSet.add(areaBO);
+ }
+ }else if(unitGrade.equals(2)){
+ SyRegion areaSyRegion = mapper.selectById(ctUnitDTO.getArea());
+ if(ObjectUtils.isNotEmpty(areaSyRegion)){
+ AreaBO areaBO = new AreaBO();
+ areaBO.setParentId("root");
+ areaBO.setLabel(areaSyRegion.getName());
+ areaBO.setValue(areaSyRegion.getId());
+ areaBO.setLevel(String.valueOf(areaSyRegion.getLevel()));
+ areaBO.setSort(areaSyRegion.getId());
+ areaSet.add(areaBO);
+
+ QueryWrapper<SyRegion> queryWrapper = new QueryWrapper();
+ queryWrapper.eq("parent_id", areaSyRegion.getId());
+ List<SyRegion> syRegions = mapper.selectList(queryWrapper);
+ for (SyRegion syRegion : syRegions) {
+ AreaBO roadaBO = new AreaBO();
+ roadaBO.setParentId(syRegion.getParentId());
+ roadaBO.setLabel(syRegion.getName());
+ roadaBO.setValue(syRegion.getId());
+ roadaBO.setLevel(String.valueOf(syRegion.getLevel()));
+ roadaBO.setSort(syRegion.getId());
+ areaSet.add(roadaBO);
+ }
+ }
+ }else {
+ SyRegion roadSyRegion = mapper.selectById(ctUnitDTO.getRoad());
+ AreaBO roadaBO = new AreaBO();
+ roadaBO.setParentId("root");
+ roadaBO.setLabel(roadSyRegion.getName());
+ roadaBO.setValue(roadSyRegion.getId());
+ roadaBO.setLevel(String.valueOf(roadSyRegion.getLevel()));
+ roadaBO.setSort(roadSyRegion.getId());
+ areaSet.add(roadaBO);
+ }
+ if(ObjectUtils.isEmpty(areaSet)){
+ return new ArrayList<>();
+ }
+ List<AreaBO> areaBOList = sort(areaSet);
+ List<AreaBO> areaBOS = sortArea(areaBOList);
+ return createTree(areaBOS, null);
+ }
+
+ public List<AreaBO> sortArea(List<AreaBO> list) {
+ Map<String, String> map = new HashMap<>();
+ map.put("越秀区","2");
+ map.put("海珠区","3");
+ map.put("荔湾区","4");
+ map.put("天河区","5");
+ map.put("白云区","6");
+ map.put("黄埔区","7");
+ map.put("花都区","8");
+ map.put("番禺区","9");
+ map.put("南沙区","10");
+ map.put("从化区","11");
+ map.put("增城区","12");
+ for (AreaBO areaBO : list) {
+ if(map.containsKey(areaBO.getLabel())){
+ areaBO.setSort(map.get(areaBO.getLabel()));
+ }
+ }
+// list.sort((o1, o2) -> {
+// Integer totalScore1 = Integer.valueOf(o1.getSort());
+// Integer totalScore2 = Integer.valueOf(o2.getSort());
+// if (totalScore1 > totalScore2) {
+// return 1;
+// } else if (totalScore1.equals(totalScore2)) {
+// return 0;
+// } else {
+// return -1;
+// }
+// });
+ return list;
+ }
+
+
+ public List<AreaBO> sort(Set<AreaBO> termsSet){
+ List<AreaBO> termsList = new ArrayList<>();
+ if(ObjectUtils.isNotEmpty(termsSet)){
+ for (AreaBO selectTermDTO : termsSet) {
+ termsList.add(selectTermDTO);
+ }
+// termsList.sort((o1, o2)->{
+// Double totalScore1 = Double.valueOf(o1.getValue());
+// Double totalScore2 = Double.valueOf(o2.getValue());
+// if(totalScore1 > totalScore2) {
+// return 1;
+// }else if (totalScore1.equals(totalScore2)) {
+// return 0;
+// }else {
+// return -1;
+// }
+// });
+ }
+ return termsList;
+ }
+
+ /**
+ * 创建树形结构
+ *
+ * @param selectTermDTOList 所有集合
+ * @param firstId 某一级编号
+ * @return List
+ */
+ public List<AreaBO> createTree(List<AreaBO> selectTermDTOList, String firstId) {
+ List<AreaBO> firstMapList = new ArrayList<>();
+ for (AreaBO selectTermDTO : selectTermDTOList) {
+ for (AreaBO currentParam : selectTermDTOList) {
+ if (currentParam.getValue().equals(selectTermDTO.getParentId())) {
+ addToMBean(currentParam, selectTermDTO);
+ break;
+ }
+ }
+ }
+ //取第一级节点
+ for (AreaBO selectTermDTO : selectTermDTOList) {
+ if (StringUtils.isNotEmpty(firstId)) {
+ if (firstId.equals(selectTermDTO.getValue())) {
+ firstMapList.add(selectTermDTO);
+ }
+ } else {
+ if (BaseConsts.ROOT.equals(selectTermDTO.getParentId()) || StringUtils.isEmpty(selectTermDTO.getParentId())) {
+ firstMapList.add(selectTermDTO);
+ }
+ }
+ }
+ return firstMapList;
+ }
+
+ public void addToMBean(AreaBO targetUnit, AreaBO currentUnit) {
+ List<AreaBO> childListObj = targetUnit.getChildren();
+ List<AreaBO> childList = null;
+ if (CollectionUtils.isEmpty(childListObj)) {
+ childList = new ArrayList();
+ targetUnit.setChildren(childList);
+ } else {
+ childList = childListObj;
+ }
+ childList.add(currentUnit);
+ }
}
--
Gitblit v1.8.0