Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
leader-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
leader-base
Commits
a678f353
提交
a678f353
authored
6月 11, 2025
作者:
yanxin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增企业高管同步接口
上级
db76ef0b
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
217 行增加
和
0 行删除
+217
-0
SyncEnterpriseDataController.java
...n/leaderbase/controller/SyncEnterpriseDataController.java
+95
-0
ExecutiveNew.java
src/main/java/com/zzsn/leaderbase/entity/ExecutiveNew.java
+94
-0
BeanUtils.java
src/main/java/com/zzsn/leaderbase/util/BeanUtils.java
+28
-0
没有找到文件。
src/main/java/com/zzsn/leaderbase/controller/SyncEnterpriseDataController.java
浏览文件 @
a678f353
package
com
.
zzsn
.
leaderbase
.
controller
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson2.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.zzsn.leaderbase.entity.CharacterBasicInfo
;
import
com.zzsn.leaderbase.entity.Executive
;
import
com.zzsn.leaderbase.entity.ExecutiveNew
;
import
com.zzsn.leaderbase.service.CharacterBasicInfoService
;
import
com.zzsn.leaderbase.service.IGeneratorIdService
;
import
com.zzsn.leaderbase.util.BeanUtils
;
import
com.zzsn.leaderbase.vo.Result
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -141,6 +146,79 @@ public class SyncEnterpriseDataController {
});
return
Result
.
OK
();
}
/**
* 同步企业核心人员数据信息
* @param jsonString json字符串
*/
@PostMapping
(
"/executiveNew"
)
public
Result
<?>
executiveNew
(
@RequestBody
String
jsonString
)
{
log
.
info
(
jsonString
);
CompletableFuture
.
runAsync
(()
->
{
//最新采集数据,以企业为单位传参
List
<
ExecutiveNew
>
listExecutive
=
JSON
.
parseArray
(
jsonString
,
ExecutiveNew
.
class
);
Map
<
String
,
ExecutiveNew
>
mapExecutive
=
listExecutive
.
stream
()
.
collect
(
Collectors
.
toMap
(
ExecutiveNew:
:
getName
,
e
->
e
));
//社会信用代码和公司名称
String
socialCreditCode
=
listExecutive
.
get
(
0
).
getSocialCreditCode
();
log
.
info
(
"社会信用代码:{},企业高管数量:{}"
,
socialCreditCode
,
listExecutive
.
size
());
LambdaQueryWrapper
<
CharacterBasicInfo
>
queryWrapper
=
Wrappers
.
lambdaQuery
();
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getCategory
,
"3"
);
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getTakeOfficeStatus
,
"在职"
);
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getSocialCreditCode
,
socialCreditCode
);
List
<
CharacterBasicInfo
>
creditList
=
characterBasicInfoService
.
list
(
queryWrapper
);
//库中已有数据
Map
<
String
,
CharacterBasicInfo
>
mapCredit
=
creditList
.
stream
()
.
collect
(
Collectors
.
toMap
(
CharacterBasicInfo:
:
getName
,
e
->
e
));
//处理库中已有数据
Set
<
String
>
creditLSet
=
mapCredit
.
keySet
();
for
(
String
name
:
creditLSet
)
{
ExecutiveNew
executive
=
mapExecutive
.
get
(
name
);
if
(
executive
==
null
){
//最新数据中无此人,改为历任
CharacterBasicInfo
basicInfo
=
mapCredit
.
get
(
name
);
basicInfo
.
setTakeOfficeStatus
(
"历任"
);
characterBasicInfoService
.
updateById
(
basicInfo
);
}
}
//处理新采集数据
Set
<
String
>
executiveSet
=
mapExecutive
.
keySet
();
for
(
String
name
:
executiveSet
)
{
CharacterBasicInfo
basicInfo
=
mapCredit
.
get
(
name
);
ExecutiveNew
executive
=
mapExecutive
.
get
(
name
);
if
(
basicInfo
==
null
){
//新增人员
CharacterBasicInfo
newInfo
=
convertNew
(
executive
);
//新增数据生成新的UID
newInfo
.
setUid
(
generatorIdService
.
getIdNo
());
characterBasicInfoService
.
save
(
newInfo
);
}
else
{
//已有人员
//判断职务是否变动//职务变动则追加职务变更记录,职务未变动更新数据
String
duty
=
basicInfo
.
getDuty
()
==
null
?
""
:
basicInfo
.
getDuty
();
String
position
=
executive
.
getPosition
()
==
null
?
""
:
executive
.
getPosition
();
if
(!
duty
.
equals
(
position
)){
//更新历史数据为历任
basicInfo
.
setTakeOfficeStatus
(
"历任"
);
basicInfo
.
setMainEntry
(
0
);
characterBasicInfoService
.
updateById
(
basicInfo
);
//新增新数据
CharacterBasicInfo
newInfo
=
convertNew
(
executive
);
//UID保持不变
newInfo
.
setUid
(
basicInfo
.
getUid
());
characterBasicInfoService
.
save
(
newInfo
);
}
else
{
//更新数据
CharacterBasicInfo
merge
=
BeanUtils
.
merge
(
basicInfo
,
convertNew
(
executive
));
characterBasicInfoService
.
updateById
(
merge
);
}
}
}
});
return
Result
.
OK
();
}
private
CharacterBasicInfo
convert
(
Executive
executive
){
CharacterBasicInfo
basicInfo
=
new
CharacterBasicInfo
();
...
...
@@ -165,6 +243,23 @@ public class SyncEnterpriseDataController {
return
basicInfo
;
}
private
CharacterBasicInfo
convertNew
(
ExecutiveNew
executive
){
CharacterBasicInfo
basicInfo
=
new
CharacterBasicInfo
();
basicInfo
.
setName
(
executive
.
getName
());
basicInfo
.
setSocialCreditCode
(
executive
.
getSocialCreditCode
());
basicInfo
.
setDepartment
(
executive
.
getCompanyName
());
basicInfo
.
setDuty
(
executive
.
getPosition
());
basicInfo
.
setSex
(
executive
.
getGender
());
basicInfo
.
setEducation
(
executive
.
getEducation
());
basicInfo
.
setTakeOfficeTime
(
executive
.
getEmploymentDate
());
basicInfo
.
setBiographicalNotes
(
executive
.
getBriefInfo
());
basicInfo
.
setCategory
(
"3"
);
basicInfo
.
setTakeOfficeStatus
(
"在职"
);
basicInfo
.
setMainEntry
(
1
);
basicInfo
.
setStatus
(
1L
);
return
basicInfo
;
}
@GetMapping
(
"/get"
)
public
Result
<?>
get
(){
...
...
src/main/java/com/zzsn/leaderbase/entity/ExecutiveNew.java
0 → 100644
浏览文件 @
a678f353
package
com
.
zzsn
.
leaderbase
.
entity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @author lkg
* @description: 企业高管表
* @date 2023/1/9
*/
@Data
public
class
ExecutiveNew
implements
Serializable
{
/**
* 人员序号
*/
private
Integer
serialNumber
;
/**
* 人员姓名
*/
private
String
name
;
/**
* 人员关联的统一社会信用代码
*/
private
String
socialCreditCode
;
/**
* 人员关联的企业名称 公司名称
*/
private
String
companyName
;
/**
* 性别
*/
private
String
gender
;
/**
* 年龄
*/
private
String
age
;
/**
* 学历
*/
private
String
education
;
/**
* 是否法人
*/
private
String
corporationFlag
;
/**
* 职位
*/
private
String
position
;
/**
* 任职日期
*/
private
String
employmentDate
;
/**
* 薪酬(元)
*/
private
String
salary
;
/**
* 持股比例(%)
*/
private
String
shareholdingPercentage
;
/**
* 持股数(股)
*/
private
String
shareholdingNum
;
/**
* 报告日期
*/
private
String
reportDate
;
/**
* 个人id
*/
private
String
personnelId
;
/**
* 公司id
*/
private
String
companyId
;
/**
* 公司相关id
*/
private
String
companyRelatedId
;
/**
* 个人简介
*/
private
String
briefInfo
;
/**
* 最新采集标识:0-最新;1-历史
*/
private
Integer
stateFlag
;
}
src/main/java/com/zzsn/leaderbase/util/BeanUtils.java
0 → 100644
浏览文件 @
a678f353
package
com
.
zzsn
.
leaderbase
.
util
;
import
cn.hutool.core.bean.BeanUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.Map
;
@Slf4j
public
class
BeanUtils
{
/**
* 合并两个类中的属性,有冲突以后面类中传参为准
* @param target
* @param destination
* @return
* @param <M>
*/
public
static
<
M
>
M
merge
(
M
target
,
M
destination
){
try
{
Map
<
String
,
Object
>
map
=
BeanUtil
.
beanToMap
(
target
);
map
.
putAll
(
BeanUtil
.
beanToMap
(
destination
,
false
,
true
));
return
(
M
)
BeanUtil
.
mapToBean
(
map
,
target
.
getClass
(),
false
);
}
catch
(
Exception
e
)
{
log
.
error
(
"合并对象异常:{}"
,
e
.
getMessage
(),
e
);
return
target
;
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论