Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lyf-beidou-cdp-api
Overview
Overview
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
zhoupeng
lyf-beidou-cdp-api
Commits
c7a4184c
Commit
c7a4184c
authored
Aug 29, 2023
by
zhoupeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交导入组织架构openapi接口
parent
01502fdc
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
800 additions
and
1 deletions
+800
-1
SyncEmployeCdpController.java
...m/rome/order/api/controller/SyncEmployeCdpController.java
+35
-0
RedisConstant.java
...in/java/com/rome/order/domain/constant/RedisConstant.java
+7
-0
OrganizationRedisService.java
...m/rome/order/domain/service/OrganizationRedisService.java
+30
-0
SyncEmployeCdpService.java
.../com/rome/order/domain/service/SyncEmployeCdpService.java
+17
-0
OrganizationRedisServiceImpl.java
...der/domain/service/impl/OrganizationRedisServiceImpl.java
+105
-0
SyncEmployeCdpServiceImpl.java
.../order/domain/service/impl/SyncEmployeCdpServiceImpl.java
+231
-0
HttpUtil.java
src/main/java/com/rome/order/domain/util/HttpUtil.java
+20
-0
SyncEmployeeCdpDO.java
...me/order/infrastructure/dataobject/SyncEmployeeCdpDO.java
+164
-0
SyncEmployeeCdpMapper.java
...me/order/infrastructure/mapper/SyncEmployeeCdpMapper.java
+38
-0
QiDianOpenApiRemoteConstant.java
...tructure/remote/constant/QiDianOpenApiRemoteConstant.java
+17
-0
RemoteConstant.java
.../order/infrastructure/remote/constant/RemoteConstant.java
+6
-0
EmpMainStaffsReqDTO.java
...er/infrastructure/remote/dto/req/EmpMainStaffsReqDTO.java
+33
-0
EmpMainDataResDTO.java
...rder/infrastructure/remote/dto/res/EmpMainDataResDTO.java
+2
-1
SyncEmployeeCdpMapper.xml
src/main/resources/mapper/SyncEmployeeCdpMapper.xml
+95
-0
No files found.
src/main/java/com/rome/order/api/controller/SyncEmployeCdpController.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
api
.
controller
;
import
com.rome.arch.core.clientobject.Response
;
import
com.rome.order.domain.service.SyncEmployeCdpService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 11:13:23
* @version: 1.0
* @Description:
* @copyright:
*/
@Slf4j
@RestController
@Api
(
value
=
"新Cdp同步员工(基础信息)"
,
tags
=
"新Cdp同步员工(基础信息)"
)
@RequestMapping
(
value
=
"/api/synEmp"
)
public
class
SyncEmployeCdpController
{
@Autowired
private
SyncEmployeCdpService
syncEmployeCdpService
;
@PostMapping
(
"/synAllEmpCdpBase"
)
@ApiOperation
(
value
=
"新Cdp同步查询员工(基础信息)"
)
public
Response
<
Boolean
>
synAllEmpCdpBase
(
Integer
pageNum
)
{
return
Response
.
builderSuccess
(
syncEmployeCdpService
.
synAllEmpCdpBase
(
pageNum
));
}
}
src/main/java/com/rome/order/domain/constant/RedisConstant.java
View file @
c7a4184c
...
@@ -12,4 +12,11 @@ public class RedisConstant {
...
@@ -12,4 +12,11 @@ public class RedisConstant {
*/
*/
public
static
String
QIDIAN_TENCENT_ACCESS_TOKEN
=
"qidian_tencent_access_token"
;
public
static
String
QIDIAN_TENCENT_ACCESS_TOKEN
=
"qidian_tencent_access_token"
;
/**
* 组织架构
*/
public
static
final
String
DEPARTMENT_ORGANIZATION
=
"beidou_cdp_department_organization"
;
}
}
src/main/java/com/rome/order/domain/service/OrganizationRedisService.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
domain
.
service
;
import
com.rome.order.infrastructure.remote.dto.res.OrgDTO
;
import
java.util.List
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 17:31:40
* @version: 1.0
* @Description:
* @copyright:
*/
public
interface
OrganizationRedisService
{
/**
* 批量添加组织机构信息并进行缓存
*
* @return
*/
Boolean
synAllOrgRedis
();
/**
* 从redis中获取组织机构
* @return
*/
List
<
OrgDTO
>
getAllOrgRedis
();
}
src/main/java/com/rome/order/domain/service/SyncEmployeCdpService.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
domain
.
service
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 11:16:36
* @version: 1.0
* @Description:
* @copyright:
*/
public
interface
SyncEmployeCdpService
{
/**
* 同步查询员工(基础信息) -(工单系统等)
*/
Boolean
synAllEmpCdpBase
(
Integer
pageNum
);
}
src/main/java/com/rome/order/domain/service/impl/OrganizationRedisServiceImpl.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
domain
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.rome.order.domain.constant.BaseConstant
;
import
com.rome.order.domain.constant.RedisConstant
;
import
com.rome.order.domain.service.OrganizationRedisService
;
import
com.rome.order.domain.util.PageInfo
;
import
com.rome.order.domain.util.RedisService
;
import
com.rome.order.infrastructure.remote.dto.res.OrgDTO
;
import
com.rome.order.infrastructure.remote.facade.OrganizationFacade
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 17:32:32
* @version: 1.0
* @Description:
* @copyright:
*/
@Service
@Slf4j
public
class
OrganizationRedisServiceImpl
implements
OrganizationRedisService
{
@Autowired
private
RedisService
redisService
;
@Resource
private
OrganizationFacade
organizationFacade
;
@Override
public
Boolean
synAllOrgRedis
()
{
Object
object
=
redisService
.
getValue
(
RedisConstant
.
DEPARTMENT_ORGANIZATION
);
if
(
object
!=
null
){
//先从redis进行删除
redisService
.
delete
(
RedisConstant
.
DEPARTMENT_ORGANIZATION
);
}
List
<
OrgDTO
>
orgDTOList
=
this
.
getRemoteOrgCdpList
();
if
(!
CollectionUtils
.
isEmpty
(
orgDTOList
)){
// 组织机构存缓存(1天)
redisService
.
setValue
(
RedisConstant
.
DEPARTMENT_ORGANIZATION
,
JSON
.
toJSONString
(
orgDTOList
),
86400L
);
}
return
true
;
}
@Override
public
List
<
OrgDTO
>
getAllOrgRedis
()
{
List
<
OrgDTO
>
organizationRedisDTOS
=
new
ArrayList
<>();
Object
cacheObject
=
redisService
.
getValue
(
RedisConstant
.
DEPARTMENT_ORGANIZATION
);
if
(
Objects
.
nonNull
(
cacheObject
))
{
organizationRedisDTOS
=
JSON
.
parseArray
(
cacheObject
.
toString
(),
OrgDTO
.
class
);
}
else
{
organizationRedisDTOS
=
this
.
getRemoteOrgCdpList
();
if
(!
CollectionUtils
.
isEmpty
(
organizationRedisDTOS
)){
// 组织机构存缓存(1天)
redisService
.
setValue
(
RedisConstant
.
DEPARTMENT_ORGANIZATION
,
JSON
.
toJSONString
(
organizationRedisDTOS
),
86400L
);
}
return
organizationRedisDTOS
;
}
return
organizationRedisDTOS
;
}
/**
* 远程-获取到所有组织架构信息
*/
public
List
<
OrgDTO
>
getRemoteOrgCdpList
()
{
// 分页获取全量数据
int
pageNum
=
BaseConstant
.
ONE
;
int
pageSize
=
BaseConstant
.
PAGE_SIZE
;
List
<
OrgDTO
>
allList
=
new
ArrayList
<>();
log
.
info
(
"------synAllOrg()------getRemoteOrgList全量同步开始-------"
);
while
(
true
)
{
PageInfo
<
OrgDTO
>
pageList
=
organizationFacade
.
getOrgPageList
(
pageNum
,
pageSize
);
if
(
pageList
==
null
)
{
log
.
info
(
"------synAllOrg()----getRemoteOrgList全量同步结束-------"
);
break
;
}
List
<
OrgDTO
>
orgList
=
pageList
.
getList
();
if
(
CollectionUtils
.
isEmpty
(
orgList
))
{
log
.
info
(
"-----synAllOrg()------getRemoteOrgList全量同步结束-------"
);
break
;
}
else
{
// 处理同步的公司信息
allList
.
addAll
(
orgList
);
if
(
orgList
.
size
()
<
pageSize
)
{
log
.
info
(
"-------synAllOrg()-------getRemoteOrgList全量同步结束-------"
);
break
;
}
}
pageNum
++;
}
return
allList
;
}
}
src/main/java/com/rome/order/domain/service/impl/SyncEmployeCdpServiceImpl.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
domain
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.pagehelper.PageInfo
;
import
com.rome.order.domain.service.OrganizationRedisService
;
import
com.rome.order.domain.service.SyncEmployeCdpService
;
import
com.rome.order.domain.util.DateUtils
;
import
com.rome.order.domain.util.HmacSHA256Util
;
import
com.rome.order.domain.util.HttpUtil
;
import
com.rome.order.infrastructure.dataobject.SyncEmployeeCdpDO
;
import
com.rome.order.infrastructure.mapper.SyncEmployeeCdpMapper
;
import
com.rome.order.infrastructure.remote.constant.QiDianOpenApiRemoteConstant
;
import
com.rome.order.infrastructure.remote.constant.RemoteConstant
;
import
com.rome.order.infrastructure.remote.dto.req.EmpMainStaffsReqDTO
;
import
com.rome.order.infrastructure.remote.dto.res.EmpMainDataResDTO
;
import
com.rome.order.infrastructure.remote.dto.res.OrgDTO
;
import
com.rome.order.infrastructure.remote.facade.UserEmployeeFacade
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.hadoop.yarn.webapp.hamlet.Hamlet
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 11:17:15
* @version: 1.0
* @Description:
* @copyright:
*/
@Service
@Slf4j
public
class
SyncEmployeCdpServiceImpl
implements
SyncEmployeCdpService
{
@Autowired
private
UserEmployeeFacade
userEmployeeFacade
;
@Resource
private
SyncEmployeeCdpMapper
syncEmployeeCdpMapper
;
@Autowired
private
OrganizationRedisService
organizationRedisService
;
@Override
public
Boolean
synAllEmpCdpBase
(
Integer
pageNum
)
{
List
<
OrgDTO
>
allOrg
=
organizationRedisService
.
getAllOrgRedis
();
//全量同步员工数据
return
this
.
synEmpCdp
(
null
,
pageNum
,
1
,
allOrg
);
}
/**
* 同步员工数据
*/
private
Boolean
synEmpCdp
(
String
startDate
,
Integer
pageParamNum
,
Integer
status
,
List
<
OrgDTO
>
allOrg
)
{
try
{
//转换成Map
Map
<
String
,
List
<
OrgDTO
>>
orgDTOMap
=
this
.
getOrgDTOMap
(
allOrg
);
// 分页获取全量数据
int
pageNum
=
1
;
if
(
pageParamNum
!=
null
){
pageNum
=
pageParamNum
;
}
int
pageSize
=
100
;
log
.
info
(
"------synAllEmpCdp全量同步开始-------"
);
while
(
true
)
{
PageInfo
<
EmpMainDataResDTO
>
empResDTOPageInfo
=
userEmployeeFacade
.
syncEmpBase
(
pageNum
,
pageSize
,
startDate
,
status
);
if
(
empResDTOPageInfo
==
null
){
log
.
info
(
"------synAllEmpCdp全量同步结束-------"
);
break
;
}
List
<
EmpMainDataResDTO
>
empResList
=
empResDTOPageInfo
.
getList
();
if
(
CollectionUtils
.
isEmpty
(
empResList
)){
log
.
info
(
"------synAllEmpCdp全量同步结束-------"
);
break
;
}
// 处理同步的员工信息
this
.
dealthEmpCdpList
(
empResList
,
orgDTOMap
);
if
(
empResList
.
size
()<
pageSize
){
// 处理同步的员工信息
log
.
info
(
"------synAllEmpCdp全量同步结束-------"
);
break
;
}
pageNum
++;
}
log
.
info
(
"------synAllEmpCdp全量同步结束-------"
);
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
"------synAllEmpCdp出现异常-----"
);
e
.
printStackTrace
();
return
false
;
}
}
/**
* 获取对应的部门信息,类似于根据部门code去获取部门详情信息
* @param allOrg
* @return
*/
private
Map
<
String
,
List
<
OrgDTO
>>
getOrgDTOMap
(
List
<
OrgDTO
>
allOrg
)
{
Map
<
String
,
List
<
OrgDTO
>>
orgMap
=
allOrg
.
stream
().
collect
(
Collectors
.
groupingBy
(
a
->
a
.
getCode
()));
return
orgMap
;
}
/**
* 处理同步的员工信息
* @param empResList
*/
private
void
dealthEmpCdpList
(
List
<
EmpMainDataResDTO
>
empResList
,
Map
<
String
,
List
<
OrgDTO
>>
orgDTOMap
){
empResList
.
forEach
(
s
->{
s
.
setCreator
(-
1
);
s
.
setCreatorName
(
"system"
);
s
.
setIsDisable
(
0
);
s
.
setUpdator
(-
1
);
s
.
setUpdatorName
(
"system"
);
});
//根据用户员工号进行查询
List
<
Long
>
userIds
=
empResList
.
parallelStream
().
filter
(
emp
->
emp
.
getUserId
()
!=
null
)
.
map
(
EmpMainDataResDTO:
:
getUserId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
SyncEmployeeCdpDO
>
employeeCdpListByUserIds
=
syncEmployeeCdpMapper
.
findEmployeeCdpListByUserIds
(
userIds
);
if
(
CollectionUtils
.
isEmpty
(
employeeCdpListByUserIds
)){
//需要用户id 根据进行去重
empResList
=
empResList
.
stream
().
collect
(
Collectors
.
collectingAndThen
(
Collectors
.
toCollection
(()
->
new
TreeSet
<>(
Comparator
.
comparing
(
o
->
o
.
getUserId
()))),
ArrayList:
:
new
));
syncEmployeeCdpMapper
.
batchSaveEmpCdp
(
empResList
);
//同步腾讯
List
<
EmpMainStaffsReqDTO
>
staffs
=
new
ArrayList
<>();
for
(
EmpMainDataResDTO
empMainDataResDTO:
empResList
)
{
EmpMainStaffsReqDTO
empMainStaffsReqDTO
=
new
EmpMainStaffsReqDTO
();
//获取部门编码 ,根据部门编码去获取部门详细信息
String
departmentCode
=
empMainDataResDTO
.
getDepartmentCode
();
if
(!
CollectionUtils
.
isEmpty
(
orgDTOMap
)&&
orgDTOMap
.
containsKey
(
departmentCode
)){
List
<
OrgDTO
>
orgDTOList
=
orgDTOMap
.
get
(
departmentCode
);
OrgDTO
orgDTO
=
orgDTOList
.
get
(
0
);
List
<
String
>
fullDeptNames
=
new
ArrayList
<>();
String
name
=
orgDTO
.
getName
();
fullDeptNames
.
add
(
name
);
//不断的查询上级部门,并获取部门名称,直到为空,
String
parentDepartmentCode
=
orgDTO
.
getParentDepartmentCode
();
for
(
int
i
=
0
;
i
<
1000
;
i
++)
{
//不断的去查询父级
if
(
orgDTOMap
.
containsKey
(
parentDepartmentCode
)){
List
<
OrgDTO
>
orgDTOtTempList
=
orgDTOMap
.
get
(
parentDepartmentCode
);
OrgDTO
orgDTOTemp
=
orgDTOtTempList
.
get
(
0
);
String
parentDeptName
=
orgDTOTemp
.
getName
();
//替换原来
parentDepartmentCode
=
orgDTOTemp
.
getParentDepartmentCode
();
if
(
StringUtils
.
isEmpty
(
parentDepartmentCode
)){
break
;
}
fullDeptNames
.
add
(
parentDeptName
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
fullDeptNames
)){
Collections
.
reverse
(
fullDeptNames
);
String
fullDeptName
=
fullDeptNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
"/"
));
empMainStaffsReqDTO
.
setFullDeptName
(
fullDeptName
);
}
}
empMainStaffsReqDTO
.
setAccountId
(
empMainDataResDTO
.
getUserId
()+
""
);
empMainStaffsReqDTO
.
setAccountName
(
empMainDataResDTO
.
getName
());
empMainStaffsReqDTO
.
setEmail
(
empMainDataResDTO
.
getCompanyEmail
());
staffs
.
add
(
empMainStaffsReqDTO
);
}
String
result
=
this
.
syncCdpEmpOrg
(
staffs
);
//成功标识
Boolean
successFlag
=
false
;
String
errMsg
=
""
;
if
(
StringUtils
.
isNotBlank
(
result
)){
Map
map
=
JSONObject
.
parseObject
(
result
,
Map
.
class
);
if
(
Objects
.
nonNull
(
map
.
get
(
"status"
)))
{
Object
statusObj
=
map
.
get
(
"status"
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
statusObj
));
String
code
=
jsonObject
.
getString
(
"code"
);
String
message
=
jsonObject
.
getString
(
"message"
);
//返回为1 表示成功
if
(
RemoteConstant
.
CODE
.
equals
(
code
)){
successFlag
=
true
;
}
else
{
//其他的表示失败
errMsg
=
message
;
}
}
}
//整个批次成功
if
(
successFlag
){
empResList
.
forEach
(
s
->{
s
.
setIsSyncEmployee
(
RemoteConstant
.
IS_SYNC_EMPLOYEE_SUCCESS
);
});
}
else
{
for
(
EmpMainDataResDTO
s:
empResList
)
{
s
.
setIsSyncEmployee
(
RemoteConstant
.
IS_SYNC_EMPLOYEE_FAIL
);
s
.
setErrorMsg
(
errMsg
);
}
}
}
}
/**
* 同步导入组织架构和人员信息到企点
* @param staffs
*/
private
String
syncCdpEmpOrg
(
List
<
EmpMainStaffsReqDTO
>
staffs
){
try
{
String
bodyStr
=
JSON
.
toJSONString
(
staffs
);
log
.
info
(
"-----同步导入组织架构和人员信息到企点/api/dataauth/authserver/openapi/org/sync入参信息----:{}"
,
bodyStr
);
String
timestamp
=
DateUtils
.
convert
(
new
Date
(),
DateUtils
.
YYYYMMDDHHMMSS
);
Map
<
String
,
String
>
headers
=
new
HashMap
<>();
headers
.
put
(
"corporationId"
,
"0"
);
headers
.
put
(
"timestamp"
,
timestamp
);
String
sign
=
HmacSHA256Util
.
getSign
(
timestamp
);
headers
.
put
(
"sign"
,
sign
);
log
.
info
(
"------同步导入组织架构和人员信息到企点/api/dataauth/authserver/openapi/org/sync头部信息------:{}"
,
JSON
.
toJSONString
(
headers
));
String
result
=
HttpUtil
.
httpPost
(
QiDianOpenApiRemoteConstant
.
ORG_SYNC_URL
,
bodyStr
,
headers
);
return
result
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
}
src/main/java/com/rome/order/domain/util/HttpUtil.java
View file @
c7a4184c
...
@@ -61,6 +61,26 @@ public class HttpUtil {
...
@@ -61,6 +61,26 @@ public class HttpUtil {
}
}
}
}
public
static
String
httpPost
(
String
url
,
String
jsonStr
,
Map
<
String
,
String
>
headers
)
{
try
{
HttpClient
httpClient
=
HttpClientBuilder
.
create
().
build
();
HttpPost
httpPost
=
new
HttpPost
(
url
);
httpPost
.
addHeader
(
HTTP
.
CONTENT_TYPE
,
CONTENT_TYPE_VAL
);
for
(
String
key
:
headers
.
keySet
())
{
httpPost
.
setHeader
(
key
,
headers
.
get
(
key
));
}
StringEntity
stringEntity
=
new
StringEntity
(
jsonStr
,
UTF_8
);
httpPost
.
setEntity
(
stringEntity
);
HttpResponse
response
=
httpClient
.
execute
(
httpPost
);
return
EntityUtils
.
toString
(
response
.
getEntity
());
}
catch
(
Exception
e
)
{
log
.
error
(
"http POST请求异常:"
,
e
);
throw
new
TradeException
(
RomeExceptionEnum
.
HTTP_ERROR
);
}
}
public
static
String
httpPost
(
String
url
)
{
public
static
String
httpPost
(
String
url
)
{
try
{
try
{
HttpClient
httpClient
=
HttpClientBuilder
.
create
().
build
();
HttpClient
httpClient
=
HttpClientBuilder
.
create
().
build
();
...
...
src/main/java/com/rome/order/infrastructure/dataobject/SyncEmployeeCdpDO.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
infrastructure
.
dataobject
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 10:38:02
* @version: 1.0
* @Description: 新的同步员工基础信息
* @copyright:
*/
@Data
public
class
SyncEmployeeCdpDO
{
/**
* 主键id
*/
private
Long
id
;
/**
* 同步来伊份用户id
*/
private
Long
userId
;
/**
* 员工状态字段
*/
private
String
erPersonStatus
;
/**
* 员工工号
*/
private
String
employeeNumber
;
/**
* 员工类型
*/
private
String
employeeType
;
/**
* 员工姓名
*/
private
String
name
;
/**
* 性别:1-男,2-女
*/
private
Integer
gender
;
/**
* 部门编码
*/
private
String
departmentCode
;
/**
* 部门名称
*/
private
String
departmentName
;
/**
* 手机号
*/
private
String
mobile
;
/**
* 电话号
*/
private
String
phone
;
/**
* 公司编码
*/
private
String
companyCode
;
/**
* 公司名称
*/
private
String
companyName
;
/**
* 公司邮箱
*/
private
String
companyEmail
;
/**
* 是否同步创建员工 0-失败 1-成功
*/
private
Integer
isSyncEmployee
;
/**
* 是否停用员工 0-企点正常激活 1-企点停用
*/
private
Integer
isDisable
;
/**
* 错误信息
*/
private
String
errorMsg
;
/**
* 创建人
*/
private
Integer
creator
;
/**
* 创建人名称
*/
private
String
creatorName
;
/**
* 修改时间
*/
private
Date
updateTime
;
/**
* 修改人
*/
private
Integer
updater
;
/**
* 修改人名称
*/
private
String
updaterName
;
/**
* 删除标记 0-否 1是
*/
private
Integer
isDelete
;
/**
* 重试次数(最多重试3次)
*/
private
Integer
resentNumber
;
}
src/main/java/com/rome/order/infrastructure/mapper/SyncEmployeeCdpMapper.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
infrastructure
.
mapper
;
import
com.rome.order.infrastructure.dataobject.SyncEmployeeCdpDO
;
import
com.rome.order.infrastructure.remote.dto.res.EmpMainDataResDTO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 11:18:25
* @version: 1.0
* @Description:
* @copyright:
*/
@Mapper
public
interface
SyncEmployeeCdpMapper
{
/**
* 批量添加同步员工信息
*
* @return
*/
int
batchSaveEmpCdp
(
@Param
(
"empList"
)
List
<
EmpMainDataResDTO
>
empList
);
/**
* 根据同步的员工号获取员工信息
*
* @param userIds
* @return
*/
List
<
SyncEmployeeCdpDO
>
findEmployeeCdpListByUserIds
(
@Param
(
"userIds"
)
List
<
Long
>
userIds
);
}
src/main/java/com/rome/order/infrastructure/remote/constant/QiDianOpenApiRemoteConstant.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
infrastructure
.
remote
.
constant
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 16:04:12
* @version: 1.0
* @Description:
* @copyright:
*/
public
class
QiDianOpenApiRemoteConstant
{
/**
* 导入组织架构openapi接口
*/
public
static
String
ORG_SYNC_URL
=
"/api/dataauth/authserver/openapi/org/sync"
;
}
src/main/java/com/rome/order/infrastructure/remote/constant/RemoteConstant.java
View file @
c7a4184c
...
@@ -149,4 +149,10 @@ public class RemoteConstant {
...
@@ -149,4 +149,10 @@ public class RemoteConstant {
* 为空
* 为空
*/
*/
public
static
final
String
EMP
=
""
;
public
static
final
String
EMP
=
""
;
/*
1-表示成功
*/
public
static
final
String
CODE
=
"1"
;
}
}
src/main/java/com/rome/order/infrastructure/remote/dto/req/EmpMainStaffsReqDTO.java
0 → 100644
View file @
c7a4184c
package
com
.
rome
.
order
.
infrastructure
.
remote
.
dto
.
req
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @Author: zhoupeng
* @createTime: 2023年08月29日 16:15:32
* @version: 1.0
* @Description:
* @copyright:
*/
@Data
public
class
EmpMainStaffsReqDTO
{
@ApiModelProperty
(
value
=
"用户id"
)
private
String
accountId
;
@ApiModelProperty
(
value
=
"用户名称"
)
private
String
accountName
;
@ApiModelProperty
(
value
=
"部门名称"
)
private
String
fullDeptName
;
@ApiModelProperty
(
value
=
"邮件"
)
private
String
email
;
private
String
avatar
;
}
src/main/java/com/rome/order/infrastructure/remote/dto/res/EmpMainDataResDTO.java
View file @
c7a4184c
...
@@ -115,7 +115,7 @@ public class EmpMainDataResDTO {
...
@@ -115,7 +115,7 @@ public class EmpMainDataResDTO {
private
String
staffType
;
private
String
staffType
;
@ApiModelProperty
(
value
=
"用户id(B端)"
)
@ApiModelProperty
(
value
=
"用户id(B端)"
)
private
Integer
userId
;
private
Long
userId
;
@ApiModelProperty
(
value
=
"是否同步创建员工 0-失败 1-成功"
)
@ApiModelProperty
(
value
=
"是否同步创建员工 0-失败 1-成功"
)
...
@@ -154,4 +154,5 @@ public class EmpMainDataResDTO {
...
@@ -154,4 +154,5 @@ public class EmpMainDataResDTO {
private
Integer
isDisable
;
private
Integer
isDisable
;
}
}
src/main/resources/mapper/SyncEmployeeCdpMapper.xml
0 → 100644
View file @
c7a4184c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.rome.order.infrastructure.mapper.SyncEmployeeCdpMapper"
>
<!-- 批量添加同步员工信息 -->
<insert
id=
"batchSaveEmpCdp"
>
insert into sync_employee_cdp(
`user_id`,
`er_person_status`,
`employee_number`,
`employee_type`,
`name`,
`gender`,
`department_code`,
`department_name`,
`mobile`,
`phone`,
`company_code`,
`company_name`,
`company_email`,
`is_sync_employee`,
`is_disable`,
`error_msg`,
`creator`,
`creator_name`,
`updator`,
`updator_name`
) values
<foreach
collection=
"empList"
item=
"item"
index=
"index"
separator=
","
>
(
#{item.userId},
#{item.erPersonStatus},
#{item.employeeNumber},
#{item.employeeType},
#{item.name},
#{item.gender},
#{item.departmentCode},
#{item.departmentName},
#{item.mobile},
#{item.phone},
#{item.companyCode},
#{item.companyName},
#{item.companyEmail},
#{item.isSyncEmployee},
#{item.isDisable},
#{item.errorMsg},
#{item.creator},
#{item.creatorName},
#{item.updator},
#{item.updatorName}
)
</foreach>
</insert>
<!-- 根据同步的员工号获取员工信息 -->
<select
id=
"findEmployeeCdpListByUserIds"
parameterType=
"java.util.List"
resultType=
"com.rome.order.infrastructure.dataobject.SyncEmployeeCdpDO"
>
SELECT
se.id,
se.user_id,
se.er_person_status,
se.employee_number,
se.employee_type,
se.name,
se.gender,
se.department_code,
se.department_name,
se.mobile,
se.phone,
se.company_code,
se.company_name,
se.company_email,
se.is_sync_employee,
se.is_disable,
se.is_sync_employee,
se.is_disable,
se.creator,
se.creator_name,
se.updator,
se.updator_name,
se.create_time,
se.update_time
FROM sync_employee_cdp se
where se.is_delete = 0
<if
test=
"userIds != null and userIds.size() "
>
and se.user_id in
<foreach
collection=
"userIds"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</select>
</mapper>
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