Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agent-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
agent-platform
Commits
3438b077
Commit
3438b077
authored
May 12, 2025
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加更新基础区域
parent
6b9f2ddc
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
195 additions
and
9 deletions
+195
-9
agent-manager/src/main/java/com/mortals/xhx/module/base/model/vo/GroupAreaInfo.java
...a/com/mortals/xhx/module/base/model/vo/GroupAreaInfo.java
+59
-0
agent-manager/src/main/java/com/mortals/xhx/module/base/model/vo/RootAreaInfo.java
...va/com/mortals/xhx/module/base/model/vo/RootAreaInfo.java
+10
-0
agent-manager/src/main/java/com/mortals/xhx/module/base/service/BaseAreaService.java
.../com/mortals/xhx/module/base/service/BaseAreaService.java
+3
-0
agent-manager/src/main/java/com/mortals/xhx/module/base/service/impl/BaseAreaServiceImpl.java
...als/xhx/module/base/service/impl/BaseAreaServiceImpl.java
+80
-5
agent-manager/src/main/java/com/mortals/xhx/module/base/web/BaseAreaController.java
...a/com/mortals/xhx/module/base/web/BaseAreaController.java
+38
-4
agent-manager/src/test/java/com/mortals/httpclient/system.http
...-manager/src/test/java/com/mortals/httpclient/system.http
+5
-0
No files found.
agent-manager/src/main/java/com/mortals/xhx/module/base/model/vo/GroupAreaInfo.java
0 → 100644
View file @
3438b077
package
com.mortals.xhx.module.base.model.vo
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
GroupAreaInfo
{
/**
* 一体化的父id
*/
private
String
iid
;
/**
* 一体化的父id
*/
private
String
pid
;
/**
* 是否有下级区域(True.是,False.否)
*/
private
String
haveSonArea
;
/**
* 是否有下级部门(True.是,False.否)
*/
private
String
haveSonDept
;
/**
* 是否获取部门(true.是,false.否)
*/
private
String
haveGetDept
;
/**
* 是否获取事项列表(true.是,false.否)
*/
private
String
haveGetMatterList
;
/**
* 区域编码
*/
private
String
areaCode
;
/**
* 区域等级(1.省,2.地市州,3.区县,4.街道,5.社区)
*/
private
Integer
areaLevel
;
/**
* 名称简称
*/
private
String
shortName
;
/**
* 访问地址
*/
private
String
domain
;
/**
* 区域状态 (0.停用,1.正常)
*/
private
String
status
;
private
List
<
GroupAreaInfo
>
sonAreas
;
}
agent-manager/src/main/java/com/mortals/xhx/module/base/model/vo/RootAreaInfo.java
0 → 100644
View file @
3438b077
package
com.mortals.xhx.module.base.model.vo
;
import
lombok.Data
;
@Data
public
class
RootAreaInfo
{
private
GroupAreaInfo
group
;
}
agent-manager/src/main/java/com/mortals/xhx/module/base/service/BaseAreaService.java
View file @
3438b077
...
@@ -28,4 +28,7 @@ public interface BaseAreaService extends ICRUDService<BaseAreaEntity, Long> {
...
@@ -28,4 +28,7 @@ public interface BaseAreaService extends ICRUDService<BaseAreaEntity, Long> {
Rest
<
List
<
String
>>
getSubAreaByRootName
(
BaseAreaEntity
baseAreaEntity
,
Context
context
);
Rest
<
List
<
String
>>
getSubAreaByRootName
(
BaseAreaEntity
baseAreaEntity
,
Context
context
);
Rest
<
Void
>
updateArea
(
BaseAreaEntity
baseAreaEntity
,
Context
context
);
}
}
\ No newline at end of file
agent-manager/src/main/java/com/mortals/xhx/module/base/service/impl/BaseAreaServiceImpl.java
View file @
3438b077
package
com.mortals.xhx.module.base.service.impl
;
package
com.mortals.xhx.module.base.service.impl
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.xhx.busiz.rsp.ApiResp
;
import
com.mortals.xhx.common.utils.AreaMatchCodeUtil
;
import
com.mortals.xhx.common.utils.AreaMatchCodeUtil
;
import
com.mortals.xhx.common.utils.BeanUtil
;
import
com.mortals.xhx.common.utils.BeanUtil
;
import
com.mortals.xhx.module.area.model.AreaEntity
;
import
com.mortals.xhx.module.area.model.AreaEntity
;
...
@@ -11,10 +16,13 @@ import com.mortals.xhx.module.area.service.AreaService;
...
@@ -11,10 +16,13 @@ import com.mortals.xhx.module.area.service.AreaService;
import
com.mortals.xhx.module.base.dao.BaseAreaDao
;
import
com.mortals.xhx.module.base.dao.BaseAreaDao
;
import
com.mortals.xhx.module.base.model.BaseAreaEntity
;
import
com.mortals.xhx.module.base.model.BaseAreaEntity
;
import
com.mortals.xhx.module.base.model.BaseAreaQuery
;
import
com.mortals.xhx.module.base.model.BaseAreaQuery
;
import
com.mortals.xhx.module.base.model.vo.GroupAreaInfo
;
import
com.mortals.xhx.module.base.model.vo.RootAreaInfo
;
import
com.mortals.xhx.module.base.service.BaseAreaService
;
import
com.mortals.xhx.module.base.service.BaseAreaService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -31,6 +39,7 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
...
@@ -31,6 +39,7 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
@Autowired
@Autowired
private
AreaService
areaService
;
private
AreaService
areaService
;
@Override
@Override
public
Rest
<
String
>
genSubAreaByRootName
(
BaseAreaEntity
baseAreaEntity
,
Context
context
)
{
public
Rest
<
String
>
genSubAreaByRootName
(
BaseAreaEntity
baseAreaEntity
,
Context
context
)
{
...
@@ -39,20 +48,20 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
...
@@ -39,20 +48,20 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
matchCode
=
AreaMatchCodeUtil
.
getMatchCode
(
matchCode
,
baseAreaEntity
.
getAreaLevel
());
matchCode
=
AreaMatchCodeUtil
.
getMatchCode
(
matchCode
,
baseAreaEntity
.
getAreaLevel
());
BaseAreaQuery
baseAreaQuery
=
new
BaseAreaQuery
();
BaseAreaQuery
baseAreaQuery
=
new
BaseAreaQuery
();
baseAreaQuery
.
setAreaCode
(
matchCode
+
"%"
);
baseAreaQuery
.
setAreaCode
(
matchCode
+
"%"
);
List
<
BaseAreaEntity
>
baseAreaEntityList
=
this
.
find
(
baseAreaQuery
);
List
<
BaseAreaEntity
>
baseAreaEntityList
=
this
.
find
(
baseAreaQuery
);
//清除子区域数据
//清除子区域数据
Rest
<
String
>
rest
=
areaService
.
removeAll
();
Rest
<
String
>
rest
=
areaService
.
removeAll
();
List
<
AreaEntity
>
collect
=
baseAreaEntityList
.
stream
().
map
(
item
->
{
List
<
AreaEntity
>
collect
=
baseAreaEntityList
.
stream
().
map
(
item
->
{
AreaEntity
areaEntity
=
new
AreaEntity
();
AreaEntity
areaEntity
=
new
AreaEntity
();
areaEntity
.
initAttrValue
();
areaEntity
.
initAttrValue
();
BeanUtils
.
copyProperties
(
item
,
areaEntity
,
BeanUtil
.
getNullPropertyNames
(
item
));
BeanUtils
.
copyProperties
(
item
,
areaEntity
,
BeanUtil
.
getNullPropertyNames
(
item
));
if
(
item
.
getAreaCode
().
equalsIgnoreCase
(
areaCode
))
{
if
(
item
.
getAreaCode
().
equalsIgnoreCase
(
areaCode
))
{
areaEntity
.
setPid
(
"0"
);
areaEntity
.
setPid
(
"0"
);
}
}
return
areaEntity
;
return
areaEntity
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
log
.
info
(
"更新数据条数:"
+
collect
.
size
());
log
.
info
(
"更新数据条数:"
+
collect
.
size
());
List
<
List
<
AreaEntity
>>
partition
=
ListUtil
.
partition
(
collect
,
100
);
List
<
List
<
AreaEntity
>>
partition
=
ListUtil
.
partition
(
collect
,
100
);
for
(
List
<
AreaEntity
>
areaEntities
:
partition
)
{
for
(
List
<
AreaEntity
>
areaEntities
:
partition
)
{
areaService
.
save
(
areaEntities
,
context
);
areaService
.
save
(
areaEntities
,
context
);
...
@@ -74,11 +83,77 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
...
@@ -74,11 +83,77 @@ public class BaseAreaServiceImpl extends AbstractCRUDServiceImpl<BaseAreaDao, Ba
matchCode
=
AreaMatchCodeUtil
.
getMatchCode
(
matchCode
,
baseAreaEntity
.
getAreaLevel
());
matchCode
=
AreaMatchCodeUtil
.
getMatchCode
(
matchCode
,
baseAreaEntity
.
getAreaLevel
());
BaseAreaQuery
baseAreaQuery
=
new
BaseAreaQuery
();
BaseAreaQuery
baseAreaQuery
=
new
BaseAreaQuery
();
baseAreaQuery
.
setAreaCode
(
matchCode
+
"%"
);
baseAreaQuery
.
setAreaCode
(
matchCode
+
"%"
);
List
<
BaseAreaEntity
>
baseAreaEntityList
=
this
.
find
(
baseAreaQuery
);
List
<
BaseAreaEntity
>
baseAreaEntityList
=
this
.
find
(
baseAreaQuery
);
List
<
String
>
areaCodeList
=
baseAreaEntityList
.
stream
().
map
(
i
->
i
.
getAreaCode
()).
collect
(
Collectors
.
toList
());
List
<
String
>
areaCodeList
=
baseAreaEntityList
.
stream
().
map
(
i
->
i
.
getAreaCode
()).
collect
(
Collectors
.
toList
());
return
Rest
.
ok
(
areaCodeList
);
return
Rest
.
ok
(
areaCodeList
);
}
}
@Override
public
Rest
<
Void
>
updateArea
(
BaseAreaEntity
baseAreaEntity
,
Context
context
)
{
//https://www.sczwfw.gov.cn/jiq/interface/jitem/find-by-code?code=510000000000&deptType=1&jsonpCallback=jsonpcallback&_=1747020251031
//todo 更新四川区域数据
String
url
=
"https://www.sczwfw.gov.cn/jiq/interface/jitem/find-by-code?code="
+
baseAreaEntity
.
getAreaCode
()
+
"&deptType=1&jsonpCallback=jsonpcallback&_=1747020251031"
;
String
rest
=
HttpUtil
.
get
(
url
);
rest
=
StrUtil
.
subBetween
(
rest
,
"jsonpcallback("
,
")"
);
Rest
<
RootAreaInfo
>
ret
=
JSON
.
parseObject
(
rest
,
new
TypeReference
<
Rest
<
RootAreaInfo
>>()
{
});
if
(
200
==
ret
.
getCode
())
{
GroupAreaInfo
group
=
ret
.
getData
().
getGroup
();
//查询当前group是否存在 存在 更新数据
BaseAreaQuery
baseAreaQuery
=
new
BaseAreaQuery
();
baseAreaQuery
.
setAreaCode
(
group
.
getAreaCode
());
updateAndSaveEntity
(
baseAreaQuery
,
group
);
List
<
GroupAreaInfo
>
sonAreas
=
group
.
getSonAreas
();
for
(
GroupAreaInfo
sonArea
:
sonAreas
)
{
//
baseAreaQuery
=
new
BaseAreaQuery
();
baseAreaQuery
.
setAreaCode
(
sonArea
.
getAreaCode
());
updateAndSaveEntity
(
baseAreaQuery
,
sonArea
);
updateArea
(
new
BaseAreaQuery
().
areaCode
(
sonArea
.
getAreaCode
()),
context
);
}
}
return
Rest
.
ok
();
}
private
void
updateAndSaveEntity
(
BaseAreaQuery
baseAreaQuery
,
GroupAreaInfo
group
)
{
BaseAreaEntity
entity
=
this
.
selectOne
(
baseAreaQuery
);
if
(!
ObjectUtils
.
isEmpty
(
entity
))
{
//新增
entity
=
new
BaseAreaEntity
();
entity
.
initAttrValue
();
BeanUtils
.
copyProperties
(
group
,
entity
,
BeanUtil
.
getNullPropertyNames
(
group
));
this
.
save
(
entity
);
}
else
{
//更新
BeanUtils
.
copyProperties
(
group
,
entity
,
BeanUtil
.
getNullPropertyNames
(
group
));
this
.
update
(
entity
);
}
}
public
static
void
main
(
String
[]
args
)
{
String
url
=
"https://www.sczwfw.gov.cn/jiq/interface/jitem/find-by-code?code=510100000000&deptType=1&jsonpCallback=jsonpcallback&_=1747020251031"
;
String
rest
=
HttpUtil
.
get
(
url
);
rest
=
StrUtil
.
subBetween
(
rest
,
"jsonpcallback("
,
")"
);
System
.
out
.
println
(
rest
);
Rest
<
RootAreaInfo
>
ret
=
JSON
.
parseObject
(
rest
,
new
TypeReference
<
Rest
<
RootAreaInfo
>>()
{
});
System
.
out
.
println
(
JSON
.
toJSONString
(
ret
));
}
}
}
\ No newline at end of file
agent-manager/src/main/java/com/mortals/xhx/module/base/web/BaseAreaController.java
View file @
3438b077
...
@@ -6,6 +6,7 @@ import com.mortals.framework.common.Rest;
...
@@ -6,6 +6,7 @@ import com.mortals.framework.common.Rest;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.util.ThreadPool
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
...
@@ -73,7 +74,7 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
...
@@ -73,7 +74,7 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
}
}
if
(
ObjectUtils
.
isEmpty
(
baseAreaEntity
))
{
if
(
ObjectUtils
.
isEmpty
(
baseAreaEntity
))
{
throw
new
AppException
(
String
.
format
(
"区域数据未找到,区域名称:%s,区域编码:%s"
,
areaQuery
.
getName
(),
areaQuery
.
getAreaCode
()));
throw
new
AppException
(
String
.
format
(
"区域数据未找到,区域名称:%s,区域编码:%s"
,
areaQuery
.
getName
(),
areaQuery
.
getAreaCode
()));
}
}
boolean
bool
=
cacheService
.
setnx
(
RedisCacheKeys
.
getSyncAreaLockKey
()
+
areaQuery
.
getName
(),
areaQuery
.
getName
(),
60L
);
boolean
bool
=
cacheService
.
setnx
(
RedisCacheKeys
.
getSyncAreaLockKey
()
+
areaQuery
.
getName
(),
areaQuery
.
getName
(),
60L
);
if
(!
bool
)
{
if
(!
bool
)
{
...
@@ -81,11 +82,11 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
...
@@ -81,11 +82,11 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
}
}
Rest
<
String
>
rest
=
this
.
service
.
genSubAreaByRootName
(
baseAreaEntity
,
getContext
());
Rest
<
String
>
rest
=
this
.
service
.
genSubAreaByRootName
(
baseAreaEntity
,
getContext
());
if
(
YesNoEnum
.
NO
.
getValue
()==
rest
.
getCode
())
{
if
(
YesNoEnum
.
NO
.
getValue
()
==
rest
.
getCode
())
{
throw
new
AppException
(
"更新子区域失败,"
+
rest
.
getMsg
());
throw
new
AppException
(
"更新子区域失败,"
+
rest
.
getMsg
());
}
}
// ThreadPool.getInstance().execute(new SyncSubAreaThread(this.service, baseAreaEntity, getContext()));
// ThreadPool.getInstance().execute(new SyncSubAreaThread(this.service, baseAreaEntity, getContext()));
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
"初始同步区域数据命令下发成功!"
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
"初始同步区域数据命令下发成功!"
);
...
@@ -98,4 +99,37 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
...
@@ -98,4 +99,37 @@ public class BaseAreaController extends BaseCRUDJsonBodyMappingController<BaseAr
}
}
/**
* 更新基础区域数据
*/
@PostMapping
(
value
=
"updateBaseArea"
)
@UnAuth
public
String
updateBaseArea
(
@RequestBody
BaseAreaQuery
areaQuery
)
{
JSONObject
jsonObject
=
new
JSONObject
();
String
busiDesc
=
"更新基础区域数据"
+
this
.
getModuleDesc
();
try
{
if
(
ObjectUtils
.
isEmpty
(
areaQuery
.
getName
())
&&
ObjectUtils
.
isEmpty
(
areaQuery
.
getAreaCode
()))
{
throw
new
AppException
(
"当前初始区域编码或名称为空!"
);
}
new
Thread
(()
->
{
this
.
service
.
updateArea
(
areaQuery
,
getContext
());
}).
start
();
//编码优先
//this.service.updateArea(areaQuery, getContext());
// ThreadPool.getInstance().execute(thread);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
"更新基础区域数据命令下发成功!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取异常"
,
e
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
}
return
jsonObject
.
toJSONString
();
}
}
}
\ No newline at end of file
agent-manager/src/test/java/com/mortals/httpclient/system.http
View file @
3438b077
...
@@ -63,6 +63,11 @@ Content-Type: application/json
...
@@ -63,6 +63,11 @@ Content-Type: application/json
{}
{}
###更新区域
POST {{baseUrl}}/base/area/updateBaseArea
Content-Type: application/json
{"areaCode": "510000000000"}
###controoler 测试
###controoler 测试
...
...
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