Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
149f4920
Commit
149f4920
authored
Jul 19, 2023
by
tianyiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
一码通行政区划查询重构
parent
ad673887
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
64 deletions
+38
-64
EquipmentCategoryServiceImpl.java
...le/tzs/biz/service/impl/EquipmentCategoryServiceImpl.java
+38
-64
No files found.
amos-boot-system-tzs/amos-boot-module-tzs-biz/src/main/java/com/yeejoin/amos/boot/module/tzs/biz/service/impl/EquipmentCategoryServiceImpl.java
View file @
149f4920
...
...
@@ -131,10 +131,18 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
private
static
final
String
PROVINCE
=
"PROVINCE"
;
private
static
final
String
CITY
=
"CITY"
;
private
static
final
String
REGION
=
"REGION"
;
private
static
final
String
STREET
=
"STREET"
;
//行政区划level
private
static
final
String
PROVINCE_LEVEL
=
"1"
;
private
static
final
String
CITY_LEVEL
=
"2"
;
private
static
final
String
REGION_LEVEL
=
"3"
;
private
static
final
String
STREET_LEVEL
=
"4"
;
//西安行政区划code
private
static
final
String
XIAN
=
"610100"
;
//判断行政区划查询市还是区
private
static
final
String
END_CODE
=
"0000"
;
//判断行政区划查询街道
private
static
final
String
STREET_END_CODE
=
"00"
;
//一码通监督管理表单id
private
static
final
String
SUPERVISION_FROM_ID
=
"1627903532906602497"
;
...
...
@@ -364,57 +372,49 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
@Override
public
List
<
LinkedHashMap
>
getRegion
(
String
level
,
String
parentId
)
{
List
<
LinkedHashMap
>
list
;
List
<
LinkedHashMap
>
list
=
new
ArrayList
<>()
;
if
(!
ObjectUtils
.
isEmpty
(
level
))
{
list
=
(
List
<
LinkedHashMap
>)
redisUtils
.
get
(
PROVINCE
);
return
ObjectUtils
.
isEmpty
(
list
)
?
getProvinceList
(
level
)
:
list
;
}
else
if
(!
ObjectUtils
.
isEmpty
(
parentId
))
{
String
regionCode
=
parentId
.
split
(
"_"
)[
0
];
//regionCode以0000结果查询市、否则查询区
Map
<
String
,
Object
>
map
=
regionCode
.
endsWith
(
END_CODE
)
?
(
Map
<
String
,
Object
>)
redisUtils
.
get
(
CITY
)
:
(
Map
<
String
,
Object
>)
redisUtils
.
get
(
REGION
);
if
(
ObjectUtils
.
isEmpty
(
map
))
{
map
=
getRegionList
();
//regionCode不是以00结尾查询街道,以0000结果查询市、否则查询区
if
(!
regionCode
.
endsWith
(
STREET_END_CODE
))
{
list
=
ObjectUtils
.
isEmpty
(
redisUtils
.
get
(
STREET
))
?
getProvinceList
(
STREET_LEVEL
)
:
(
List
<
LinkedHashMap
>)
redisUtils
.
get
(
STREET
);
}
else
if
(
regionCode
.
endsWith
(
END_CODE
))
{
list
=
ObjectUtils
.
isEmpty
(
redisUtils
.
get
(
CITY
))
?
getProvinceList
(
CITY_LEVEL
)
:
(
List
<
LinkedHashMap
>)
redisUtils
.
get
(
CITY
);
}
else
{
list
=
ObjectUtils
.
isEmpty
(
redisUtils
.
get
(
REGION
))
?
getProvinceList
(
REGION_LEVEL
)
:
(
List
<
LinkedHashMap
>)
redisUtils
.
get
(
REGION
);
}
list
=
(
List
<
LinkedHashMap
>)
map
.
get
(
regionCode
);
return
list
;
return
list
.
stream
().
filter
(
r
->
regionCode
.
equals
(
r
.
get
(
"parentRegionCode"
).
toString
())).
collect
(
Collectors
.
toList
());
}
else
{
return
new
ArrayList
<>();
}
}
public
Map
<
String
,
Object
>
getRegionList
()
{
//查询省下所有的行政区划市,封装并存入redis
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
List
<
LinkedHashMap
>
cityList
;
FeignClientResult
tree
=
privilegeFeginService
.
getTree
();
List
<
LinkedHashMap
>
result
=
(
List
<
LinkedHashMap
>)
tree
.
getResult
();
//获取陕西省regionCode
String
regionCode
=
((
List
<
LinkedHashMap
>)
privilegeFeginService
.
getProvince
(
"1"
).
getResult
()).
get
(
0
).
get
(
"regionCode"
).
toString
();
cityList
=
deleteTreeData
(
result
,
regionCode
);
Map
<
String
,
Object
>
cityMap
=
new
HashMap
<>();
cityMap
.
put
(
regionCode
,
cityList
);
map1
.
put
(
regionCode
,
cityList
);
redisUtils
.
set
(
CITY
,
cityMap
);
//查询市下所有的行政区划区,封装并存入redis
if
(!
ObjectUtils
.
isEmpty
(
cityList
))
{
List
<
LinkedHashMap
>
region
=
(
List
<
LinkedHashMap
>)
privilegeFeginService
.
getTree
().
getResult
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
for
(
LinkedHashMap
linkedHashMap
:
cityList
)
{
List
<
LinkedHashMap
>
regionList
=
deleteTreeData
(
region
,
linkedHashMap
.
get
(
"regionCode"
).
toString
());
map
.
put
(
linkedHashMap
.
get
(
"regionCode"
).
toString
(),
regionList
);
map1
.
put
(
linkedHashMap
.
get
(
"regionCode"
).
toString
(),
regionList
);
}
redisUtils
.
set
(
REGION
,
map
);
}
return
map1
;
}
public
List
<
LinkedHashMap
>
getProvinceList
(
String
level
)
{
List
<
LinkedHashMap
>
list
;
FeignClientResult
result
=
privilegeFeginService
.
getProvince
(
level
);
list
=
(
List
<
LinkedHashMap
>)
result
.
getResult
();
list
.
get
(
0
).
put
(
"sequenceNbr"
,
list
.
get
(
0
).
get
(
"regionCode"
));
redisUtils
.
set
(
PROVINCE
,
list
);
List
<
LinkedHashMap
>
list
=
(
List
<
LinkedHashMap
>)
result
.
getResult
();
for
(
LinkedHashMap
linkedHashMap
:
list
)
{
linkedHashMap
.
put
(
"sequenceNbr"
,
linkedHashMap
.
get
(
"regionCode"
));
}
switch
(
level
)
{
case
PROVINCE_LEVEL:
redisUtils
.
set
(
PROVINCE
,
list
);
break
;
case
CITY_LEVEL:
redisUtils
.
set
(
CITY
,
list
);
break
;
case
REGION_LEVEL:
redisUtils
.
set
(
REGION
,
list
);
break
;
case
STREET_LEVEL:
redisUtils
.
set
(
STREET
,
list
);
break
;
default
:
log
.
error
(
"不支持的行政区划:{}"
,
level
);
break
;
}
return
list
;
}
...
...
@@ -453,32 +453,6 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
/**
* 获取行政区划以市或区的list集合
*
* @param result 需要删除的源数据
* @param type 匹配行政区划的regionCode,获取市则需要传省的regionCode,获取区则需要传市的regionCode
* @return 对应市或区的list集合
*/
private
List
<
LinkedHashMap
>
deleteTreeData
(
List
<
LinkedHashMap
>
result
,
String
type
)
{
Iterator
it
=
result
.
iterator
();
List
<
LinkedHashMap
>
list
=
new
ArrayList
<>();
while
(
it
.
hasNext
())
{
LinkedHashMap
e
=
(
LinkedHashMap
)
it
.
next
();
//修改数据
if
(
type
.
equals
(
e
.
get
(
"parentRegionCode"
).
toString
()))
{
e
.
put
(
"children"
,
null
);
e
.
put
(
"sequenceNbr"
,
e
.
get
(
"regionCode"
));
list
.
add
(
e
);
}
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
List
<
LinkedHashMap
>
children
=
deleteTreeData
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
type
);
list
.
addAll
(
children
);
}
}
return
list
;
}
/**
* 具体生成监管码和电梯96333识别码逻辑
*/
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRES_NEW
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment