Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
c39a6fc3
Commit
c39a6fc3
authored
Mar 11, 2022
by
墨竹
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:删除无效代码
parent
78cc11fd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
701 additions
and
764 deletions
+701
-764
DepartmentApiServiceImpl.java
...ge/service/service/out/impl/DepartmentApiServiceImpl.java
+701
-764
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/DepartmentApiServiceImpl.java
View file @
c39a6fc3
...
...
@@ -44,769 +44,706 @@ import java.util.stream.Collectors;
@Service
public
class
DepartmentApiServiceImpl
implements
DepartmentApiService
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DepartmentApiServiceImpl
.
class
);
@Autowired
private
DepartmentService
departmentService
;
@Autowired
private
StaffDepartmentRelatedService
staffDepartmentService
;
@Autowired
private
DepartmentMapper
departmentMapper
;
@Autowired
private
com
.
gic
.
enterprise
.
api
.
service
.
DepartmentService
gicDepartmentService
;
@Autowired
private
QywxDepartmentApiService
qywxDepartmentApiService
;
@Autowired
private
WxEnterpriseService
wxEnterpriseService
;
@Autowired
private
StoreService
storeService
;
@Autowired
private
StoreGroupService
storeGroupService
;
@Autowired
private
StaffApiService
staffApiService
;
@Autowired
private
StaffDepartmentRelatedApiService
staffDepartmentRelatedApiService
;
@Autowired
private
SyncErrorLogService
syncErrorLogService
;
@Autowired
private
SecretSettingService
secretSettingService
;
@Override
public
List
<
DepartmentDTO
>
listByParentId
(
String
parentId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
parentId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
DepartmentDTO
selectById
(
String
departmentId
)
{
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
departmentId
);
return
EntityUtil
.
changeEntityByJSON
(
DepartmentDTO
.
class
,
tab
);
}
@Override
public
ServiceResponse
<
DepartmentDTO
>
add
(
DepartmentDTO
department
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
//调微信的新增接口
String
wxDepartmentId
=
""
;
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
logger
.
info
(
"【部门新增】enterpriseDTO = {}"
,
JSON
.
toJSONString
(
enterpriseDTO
));
if
(
enterpriseDTO
!=
null
)
{
Long
sort
=
department
.
getSort
();
if
(
sort
==
null
)
{
long
maxSort
=
departmentMapper
.
selectMaxSort
(
department
.
getParentDepartmentId
());
department
.
setSort
(
maxSort
+
1
);
}
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
department
.
getDepartmentName
());
dto
.
setOrder
(
department
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
department
.
getParentDepartmentId
());
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
logger
.
info
(
"【部门新增】corpid() = {},siteId={},dto={}"
,
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
JSON
.
toJSONString
(
dto
));
JSONResponse
jp
=
qywxDepartmentApiService
.
createSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门新增】jp = {}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信新增部门失败:"
+
jp
.
getErrorCode
());
return
hr
;
}
wxDepartmentId
=
jp
.
getResult
().
toString
();
logger
.
info
(
"【部门新增】wxDepartmentId = {}"
,
wxDepartmentId
);
department
.
setWxDepartmentId
(
wxDepartmentId
);
department
.
setLevel
(
parent
.
getLevel
()
+
1
);
setGicEnterpriseId
(
department
);
String
departmentId
=
departmentService
.
add
(
department
);
department
.
setDepartmentId
(
departmentId
);
hr
.
setResult
(
department
);
}
return
hr
;
}
private
void
setGicEnterpriseId
(
DepartmentDTO
department
)
{
String
relatedId
=
department
.
getRelatedId
();
if
(
StringUtils
.
isNotBlank
(
relatedId
)){
Integer
storeFlag
=
department
.
getIsStore
();
if
(
storeFlag
==
1
){
StoreDTO
store
=
storeService
.
getStore
(
relatedId
);
if
(
store
!=
null
){
department
.
setEnterpriseId
(
store
.
getEnterpriseId
());
}
}
else
{
com
.
gic
.
enterprise
.
api
.
dto
.
DepartmentDTO
departmentDTO
=
gicDepartmentService
.
getDeptment
(
relatedId
);
if
(
departmentDTO
!=
null
){
department
.
setEnterpriseId
(
departmentDTO
.
getEnterpriseId
());
}
StoreGroupDTO
storeGroup
=
storeGroupService
.
getStoreGroupById
(
relatedId
);
if
(
storeGroup
!=
null
){
department
.
setEnterpriseId
(
storeGroup
.
getEnterpriseId
());
}
}
}
}
@Override
public
ServiceResponse
edit
(
DepartmentDTO
department
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
hr
.
setResult
(
department
);
//调微信的修改接口
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
department
.
getDepartmentId
());
if
(
tab
==
null
){
hr
.
setCode
(
0
);
hr
.
setMessage
(
"部门不存在"
);
return
hr
;
}
logger
.
info
(
"【部门修改】tab={}"
,
JSON
.
toJSONString
(
tab
));
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
tab
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
department
.
getDepartmentName
());
dto
.
setOrder
(
department
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
department
.
getParentDepartmentId
());
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
dto
.
setId
(
Integer
.
valueOf
(
tab
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
updateSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门修改】jp={}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信修改部门失败"
);
return
hr
;
}
}
departmentService
.
edit
(
department
);
return
hr
;
}
@Override
public
ServiceResponse
del
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
//调微信的删除接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
==
null
){
hr
.
setCode
(
0
);
hr
.
setMessage
(
"不存在部门,删除部门失败"
);
return
hr
;
}
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()==
0
)
{
logger
.
info
(
"没有设置通讯录secret:{}"
,
JSONObject
.
toJSONString
(
secretSetting
));
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
deleteSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
Integer
.
parseInt
(
department
.
getWxDepartmentId
()));
if
(
jp
.
getErrorCode
()
!=
0
)
{
logger
.
info
(
"微信删除部门失败:{}"
,
JSONObject
.
toJSONString
(
jp
));
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信删除部门失败"
);
return
hr
;
}
}
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
wxCallBackDel
(
String
departmentId
){
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
DepartmentDTO
selectByRelatedId
(
String
relatedId
)
{
TabHaobanDepartment
tab
=
departmentService
.
selectByRelatedId
(
relatedId
);
return
EntityUtil
.
changeEntityByJSON
(
DepartmentDTO
.
class
,
tab
);
}
@Override
public
ServiceResponse
recycle
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
//调微信的新增接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
deleteSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
Integer
.
parseInt
(
department
.
getWxDepartmentId
()));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信删除部门失败"
);
return
hr
;
}
}
departmentService
.
recycle
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
wxCallBackrecycle
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
departmentService
.
recycle
(
departmentId
);
return
hr
;
}
@Override
public
Page
<
DepartmentDTO
>
pageDepartmentByParams
(
BasePageInfo
pageInfo
,
String
wxEnterpriseId
,
String
keyword
,
Integer
storeFlag
,
Integer
recycleFlag
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentService
.
pageDepartmentByParams
(
wxEnterpriseId
,
keyword
,
storeFlag
,
recycleFlag
),
DepartmentDTO
.
class
);
}
@Override
public
ServiceResponse
repairRecycle
(
String
departmentId
,
String
parentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
0
);
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
departmentId
);
//调微信的新增接口
String
wxDepartmentId
=
""
;
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
tab
.
getWxEnterpriseId
());
logger
.
info
(
"【部门新增】enterpriseDTO = {}"
,
JSON
.
toJSONString
(
enterpriseDTO
));
if
(
enterpriseDTO
!=
null
)
{
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
tab
.
getDepartmentName
());
dto
.
setOrder
(
tab
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
parentId
);
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
logger
.
info
(
"【部门新增】corpid() = {},siteId={},dto={}"
,
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
JSON
.
toJSONString
(
dto
));
JSONResponse
jp
=
qywxDepartmentApiService
.
createSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门新增】jp = {}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信新增部门失败"
);
return
hr
;
}
wxDepartmentId
=
jp
.
getResult
().
toString
();
tab
.
setWxDepartmentId
(
wxDepartmentId
);
tab
.
setParentDepartmentId
(
parentId
);
logger
.
info
(
"【部门新增】wxDepartmentId = {}"
,
wxDepartmentId
);
}
departmentService
.
repairRecycle
(
tab
);
return
hr
;
}
@Override
public
List
<
DepartmentDTO
>
listByDepartmentIds
(
List
<
String
>
departmentIds
,
Integer
storeFlag
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listByDepartmentIds
(
departmentIds
,
storeFlag
);
if
(
list
==
null
){
return
new
ArrayList
<
DepartmentDTO
>();
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
List
<
DepartmentDTO
>
listByRelatedIds
(
List
<
String
>
relatedIds
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listByRelatedIds
(
relatedIds
);
if
(
list
==
null
){
return
new
ArrayList
<
DepartmentDTO
>();
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
DepartmentDTO
getRootByEnterpriseId
(
String
wxEnterpriseId
)
{
return
departmentService
.
getRootByEnterpriseId
(
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentDTO
>
listStoreByWxEnterpriseId
(
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listStoreByWxEnterpriseId
(
wxEnterpriseId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
Page
<
DepartmentDTO
>
pageFullStoreByWxEnterpriseId
(
String
wxEnterpriseId
,
String
search
,
List
<
String
>
storeIds
,
int
count
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
if
(
CollectionUtil
.
isNotEmpty
(
storeIds
)&&
StringUtils
.
isNotEmpty
(
search
)){
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentMapper
.
pageFullStoreByWxEnterpriseId2
(
wxEnterpriseId
,
search
,
storeIds
,
count
),
DepartmentDTO
.
class
);
}
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentMapper
.
pageFullStoreByWxEnterpriseId
(
wxEnterpriseId
,
search
,
storeIds
,
count
),
DepartmentDTO
.
class
);
}
@Override
public
void
syncGicStore
(
String
fieldListString
)
{
if
(
true
)
{
return
;
}
logger
.
info
(
"【同步门店】fieldList={}"
,
fieldListString
);
List
<
SyncJsonColumnDTO
>
fieldList
=
JSONArray
.
parseArray
(
fieldListString
,
SyncJsonColumnDTO
.
class
);
if
(
fieldList
.
isEmpty
()){
return
;
}
Integer
status
=
0
;
String
storeName
=
""
;
String
departmentId
=
""
;
String
storeId
=
""
;
String
storeParentId
=
""
;
for
(
SyncJsonColumnDTO
syncJsonColumnDTO:
fieldList
){
String
name
=
StringUtil
.
camelName
(
syncJsonColumnDTO
.
getName
());
String
value
=
syncJsonColumnDTO
.
getValue
();
if
(
"status"
.
equals
(
name
))
{
status
=
Integer
.
parseInt
(
value
);
}
if
(
"storeName"
.
equals
(
name
))
{
storeName
=
value
;
}
if
(
"departmentId"
.
equals
(
name
))
{
departmentId
=
value
;
}
if
(
"storeGroupId"
.
equals
(
name
))
{
storeParentId
=
value
;
}
if
(
"storeId"
.
equals
(
name
))
{
storeId
=
(
value
);
}
}
DepartmentDTO
department
=
departmentService
.
getByRelatedId
(
storeId
);
DepartmentDTO
parent
=
departmentService
.
getByRelatedId
(
storeParentId
);
if
(
department
!=
null
&&
parent
!=
null
&&(!
department
.
getParentDepartmentId
().
equals
(
parent
.
getDepartmentId
())))
{
logger
.
info
(
"更新部门!"
);
department
.
setDepartmentName
(
storeName
);
department
.
setParentDepartmentId
(
parent
.
getDepartmentId
());
this
.
edit
(
department
);
}
}
/**
* 向上找父节点
* @param departmentId
* @return
*/
private
DepartmentDTO
getParent
(
String
departmentId
)
{
DepartmentDTO
department
=
departmentService
.
getByRelatedId
(
departmentId
);
if
(
department
==
null
)
{
com
.
gic
.
enterprise
.
api
.
dto
.
DepartmentDTO
dto
=
gicDepartmentService
.
getDeptment
(
departmentId
);
String
parentId
=
dto
.
getParentDepartId
();
getParent
(
parentId
);
}
return
department
;
}
@Override
public
void
syncGicDepartment
(
String
fieldListString
)
{
}
@Override
public
Page
<
DepartmentDTO
>
pageByParentId
(
String
parentId
,
String
keyword
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentService
.
pageByParentId
(
parentId
,
keyword
),
DepartmentDTO
.
class
);
}
@Override
public
List
<
DepartmentDTO
>
listByChainId
(
String
chainId
,
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByChainId
(
chainId
,
wxEnterpriseId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
void
initwxDepartment
(
String
corpid
,
String
contactSecret
,
String
wxEnterpriseId
)
{
logger
.
info
(
"【同步企业微信】wxEnterpriseId={}"
,
"init-enterprise-"
+
wxEnterpriseId
);
String
key
=
"init-enterprise-"
+
wxEnterpriseId
;
if
(
RedisUtil
.
getCache
(
key
)
==
null
){
RedisUtil
.
setCache
(
key
,
1
,
60
*
60L
);
String
taskId
=
StringUtil
.
randomUUID
();
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
=
this
.
qywxDepartmentApiService
.
listSelfDepartment
(
corpid
,
contactSecret
,
null
);
logger
.
info
(
"企业所有部门数据:{}"
,
JSON
.
toJSONString
(
list
));
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
this
.
addAllDepartment
(
list
,
0
,
wxEnterpriseId
,
corpid
,
contactSecret
,
taskId
);
}
}
else
{
RedisUtil
.
delCache
(
key
);
}
// String taskId = StringUtil.randomUUID();
// List<com.gic.wechat.api.dto.qywx.DepartmentDTO> list = this.qywxDepartmentApiService.listSelfDepartment(corpid, contactSecret, null);
// logger.info("企业所有部门数据:{}", JSON.toJSONString(list));
// if(CollectionUtils.isNotEmpty(list)){
// this.addAllDepartment(list, 0, wxEnterpriseId, corpid, contactSecret,taskId);
// }
}
private
void
insertMQ
(
Integer
parentId
,
String
wxEnterpriseId
,
String
corpid
,
String
contactSecret
,
String
taskId
){
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"parentId"
,
parentId
);
json
.
put
(
"wxEnterpriseId"
,
wxEnterpriseId
);
json
.
put
(
"corpid"
,
corpid
);
json
.
put
(
"contactSecret"
,
contactSecret
);
json
.
put
(
"taskId"
,
taskId
);
logger
.
info
(
"【初始化部门调用】{},{},{}"
,
RouterConstant
.
INIT_WX_DEPARTMENT_SERVICENAME
,
RouterConstant
.
INIT_WX_DEPARTMENT_METHODNAME
,
json
.
toJSONString
());
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DepartmentApiServiceImpl
.
class
);
@Autowired
private
DepartmentService
departmentService
;
@Autowired
private
StaffDepartmentRelatedService
staffDepartmentService
;
@Autowired
private
DepartmentMapper
departmentMapper
;
@Autowired
private
com
.
gic
.
enterprise
.
api
.
service
.
DepartmentService
gicDepartmentService
;
@Autowired
private
QywxDepartmentApiService
qywxDepartmentApiService
;
@Autowired
private
WxEnterpriseService
wxEnterpriseService
;
@Autowired
private
StoreService
storeService
;
@Autowired
private
StoreGroupService
storeGroupService
;
@Autowired
private
StaffApiService
staffApiService
;
@Autowired
private
StaffDepartmentRelatedApiService
staffDepartmentRelatedApiService
;
@Autowired
private
SyncErrorLogService
syncErrorLogService
;
@Autowired
private
SecretSettingService
secretSettingService
;
@Override
public
List
<
DepartmentDTO
>
listByParentId
(
String
parentId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
parentId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
DepartmentDTO
selectById
(
String
departmentId
)
{
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
departmentId
);
return
EntityUtil
.
changeEntityByJSON
(
DepartmentDTO
.
class
,
tab
);
}
@Override
public
ServiceResponse
<
DepartmentDTO
>
add
(
DepartmentDTO
department
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
//调微信的新增接口
String
wxDepartmentId
=
""
;
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
logger
.
info
(
"【部门新增】enterpriseDTO = {}"
,
JSON
.
toJSONString
(
enterpriseDTO
));
if
(
enterpriseDTO
!=
null
)
{
Long
sort
=
department
.
getSort
();
if
(
sort
==
null
)
{
long
maxSort
=
departmentMapper
.
selectMaxSort
(
department
.
getParentDepartmentId
());
department
.
setSort
(
maxSort
+
1
);
}
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
department
.
getDepartmentName
());
dto
.
setOrder
(
department
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
department
.
getParentDepartmentId
());
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()
==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
logger
.
info
(
"【部门新增】corpid() = {},siteId={},dto={}"
,
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
JSON
.
toJSONString
(
dto
));
JSONResponse
jp
=
qywxDepartmentApiService
.
createSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门新增】jp = {}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信新增部门失败:"
+
jp
.
getErrorCode
());
return
hr
;
}
wxDepartmentId
=
jp
.
getResult
().
toString
();
logger
.
info
(
"【部门新增】wxDepartmentId = {}"
,
wxDepartmentId
);
department
.
setWxDepartmentId
(
wxDepartmentId
);
department
.
setLevel
(
parent
.
getLevel
()
+
1
);
setGicEnterpriseId
(
department
);
String
departmentId
=
departmentService
.
add
(
department
);
department
.
setDepartmentId
(
departmentId
);
hr
.
setResult
(
department
);
}
return
hr
;
}
private
void
setGicEnterpriseId
(
DepartmentDTO
department
)
{
String
relatedId
=
department
.
getRelatedId
();
if
(
StringUtils
.
isNotBlank
(
relatedId
))
{
Integer
storeFlag
=
department
.
getIsStore
();
if
(
storeFlag
==
1
)
{
StoreDTO
store
=
storeService
.
getStore
(
relatedId
);
if
(
store
!=
null
)
{
department
.
setEnterpriseId
(
store
.
getEnterpriseId
());
}
}
else
{
com
.
gic
.
enterprise
.
api
.
dto
.
DepartmentDTO
departmentDTO
=
gicDepartmentService
.
getDeptment
(
relatedId
);
if
(
departmentDTO
!=
null
)
{
department
.
setEnterpriseId
(
departmentDTO
.
getEnterpriseId
());
}
StoreGroupDTO
storeGroup
=
storeGroupService
.
getStoreGroupById
(
relatedId
);
if
(
storeGroup
!=
null
)
{
department
.
setEnterpriseId
(
storeGroup
.
getEnterpriseId
());
}
}
}
}
@Override
public
ServiceResponse
edit
(
DepartmentDTO
department
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
hr
.
setResult
(
department
);
//调微信的修改接口
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
department
.
getDepartmentId
());
if
(
tab
==
null
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"部门不存在"
);
return
hr
;
}
logger
.
info
(
"【部门修改】tab={}"
,
JSON
.
toJSONString
(
tab
));
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
tab
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
department
.
getDepartmentName
());
dto
.
setOrder
(
department
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
department
.
getParentDepartmentId
());
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
dto
.
setId
(
Integer
.
valueOf
(
tab
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()
==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
updateSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门修改】jp={}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信修改部门失败"
);
return
hr
;
}
}
departmentService
.
edit
(
department
);
return
hr
;
}
@Override
public
ServiceResponse
del
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
//调微信的删除接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
==
null
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"不存在部门,删除部门失败"
);
return
hr
;
}
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()
==
0
)
{
logger
.
info
(
"没有设置通讯录secret:{}"
,
JSONObject
.
toJSONString
(
secretSetting
));
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
deleteSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
Integer
.
parseInt
(
department
.
getWxDepartmentId
()));
if
(
jp
.
getErrorCode
()
!=
0
)
{
logger
.
info
(
"微信删除部门失败:{}"
,
JSONObject
.
toJSONString
(
jp
));
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信删除部门失败"
);
return
hr
;
}
}
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
wxCallBackDel
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
DepartmentDTO
selectByRelatedId
(
String
relatedId
)
{
TabHaobanDepartment
tab
=
departmentService
.
selectByRelatedId
(
relatedId
);
return
EntityUtil
.
changeEntityByJSON
(
DepartmentDTO
.
class
,
tab
);
}
@Override
public
ServiceResponse
recycle
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
//调微信的新增接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()
==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
JSONResponse
jp
=
qywxDepartmentApiService
.
deleteSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
Integer
.
parseInt
(
department
.
getWxDepartmentId
()));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信删除部门失败"
);
return
hr
;
}
}
departmentService
.
recycle
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
wxCallBackrecycle
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
return
hr
;
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
return
hr
;
}
departmentService
.
recycle
(
departmentId
);
return
hr
;
}
@Override
public
Page
<
DepartmentDTO
>
pageDepartmentByParams
(
BasePageInfo
pageInfo
,
String
wxEnterpriseId
,
String
keyword
,
Integer
storeFlag
,
Integer
recycleFlag
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentService
.
pageDepartmentByParams
(
wxEnterpriseId
,
keyword
,
storeFlag
,
recycleFlag
),
DepartmentDTO
.
class
);
}
@Override
public
ServiceResponse
repairRecycle
(
String
departmentId
,
String
parentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
0
);
TabHaobanDepartment
tab
=
departmentService
.
selectById
(
departmentId
);
//调微信的新增接口
String
wxDepartmentId
=
""
;
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
tab
.
getWxEnterpriseId
());
logger
.
info
(
"【部门新增】enterpriseDTO = {}"
,
JSON
.
toJSONString
(
enterpriseDTO
));
if
(
enterpriseDTO
!=
null
)
{
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
dto
=
new
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
();
dto
.
setCorpid
(
enterpriseDTO
.
getCorpid
());
dto
.
setName
(
tab
.
getDepartmentName
());
dto
.
setOrder
(
tab
.
getSort
());
TabHaobanDepartment
parent
=
departmentService
.
selectById
(
parentId
);
dto
.
setParentid
(
Integer
.
valueOf
(
parent
.
getWxDepartmentId
()));
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
enterpriseDTO
.
getWxEnterpriseId
(),
SecretTypeEnum
.
CONTACT_SECRET
.
getVal
());
if
(
null
==
secretSetting
||
secretSetting
.
getCheckFlag
()
==
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"没有设置通讯录secret"
);
return
hr
;
}
logger
.
info
(
"【部门新增】corpid() = {},siteId={},dto={}"
,
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
JSON
.
toJSONString
(
dto
));
JSONResponse
jp
=
qywxDepartmentApiService
.
createSelfDepartment
(
enterpriseDTO
.
getCorpid
(),
secretSetting
.
getSecretVal
(),
dto
);
logger
.
info
(
"【部门新增】jp = {}"
,
JSON
.
toJSONString
(
jp
));
if
(
jp
.
getErrorCode
()
!=
0
)
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"微信新增部门失败"
);
return
hr
;
}
wxDepartmentId
=
jp
.
getResult
().
toString
();
tab
.
setWxDepartmentId
(
wxDepartmentId
);
tab
.
setParentDepartmentId
(
parentId
);
logger
.
info
(
"【部门新增】wxDepartmentId = {}"
,
wxDepartmentId
);
}
departmentService
.
repairRecycle
(
tab
);
return
hr
;
}
@Override
public
List
<
DepartmentDTO
>
listByDepartmentIds
(
List
<
String
>
departmentIds
,
Integer
storeFlag
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listByDepartmentIds
(
departmentIds
,
storeFlag
);
if
(
list
==
null
)
{
return
new
ArrayList
<
DepartmentDTO
>();
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
List
<
DepartmentDTO
>
listByRelatedIds
(
List
<
String
>
relatedIds
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listByRelatedIds
(
relatedIds
);
if
(
list
==
null
)
{
return
new
ArrayList
<
DepartmentDTO
>();
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
DepartmentDTO
getRootByEnterpriseId
(
String
wxEnterpriseId
)
{
return
departmentService
.
getRootByEnterpriseId
(
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentDTO
>
listStoreByWxEnterpriseId
(
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentMapper
.
listStoreByWxEnterpriseId
(
wxEnterpriseId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
Page
<
DepartmentDTO
>
pageFullStoreByWxEnterpriseId
(
String
wxEnterpriseId
,
String
search
,
List
<
String
>
storeIds
,
int
count
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
if
(
CollectionUtil
.
isNotEmpty
(
storeIds
)
&&
StringUtils
.
isNotEmpty
(
search
))
{
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentMapper
.
pageFullStoreByWxEnterpriseId2
(
wxEnterpriseId
,
search
,
storeIds
,
count
),
DepartmentDTO
.
class
);
}
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentMapper
.
pageFullStoreByWxEnterpriseId
(
wxEnterpriseId
,
search
,
storeIds
,
count
),
DepartmentDTO
.
class
);
}
@Override
public
void
syncGicStore
(
String
fieldListString
)
{
if
(
true
)
{
return
;
}
logger
.
info
(
"【同步门店】fieldList={}"
,
fieldListString
);
List
<
SyncJsonColumnDTO
>
fieldList
=
JSONArray
.
parseArray
(
fieldListString
,
SyncJsonColumnDTO
.
class
);
if
(
fieldList
.
isEmpty
())
{
return
;
}
Integer
status
=
0
;
String
storeName
=
""
;
String
departmentId
=
""
;
String
storeId
=
""
;
String
storeParentId
=
""
;
for
(
SyncJsonColumnDTO
syncJsonColumnDTO
:
fieldList
)
{
String
name
=
StringUtil
.
camelName
(
syncJsonColumnDTO
.
getName
());
String
value
=
syncJsonColumnDTO
.
getValue
();
if
(
"status"
.
equals
(
name
))
{
status
=
Integer
.
parseInt
(
value
);
}
if
(
"storeName"
.
equals
(
name
))
{
storeName
=
value
;
}
if
(
"departmentId"
.
equals
(
name
))
{
departmentId
=
value
;
}
if
(
"storeGroupId"
.
equals
(
name
))
{
storeParentId
=
value
;
}
if
(
"storeId"
.
equals
(
name
))
{
storeId
=
(
value
);
}
}
DepartmentDTO
department
=
departmentService
.
getByRelatedId
(
storeId
);
DepartmentDTO
parent
=
departmentService
.
getByRelatedId
(
storeParentId
);
if
(
department
!=
null
&&
parent
!=
null
&&
(!
department
.
getParentDepartmentId
().
equals
(
parent
.
getDepartmentId
())))
{
logger
.
info
(
"更新部门!"
);
department
.
setDepartmentName
(
storeName
);
department
.
setParentDepartmentId
(
parent
.
getDepartmentId
());
this
.
edit
(
department
);
}
}
/**
* 向上找父节点
*
* @param departmentId
* @return
*/
private
DepartmentDTO
getParent
(
String
departmentId
)
{
DepartmentDTO
department
=
departmentService
.
getByRelatedId
(
departmentId
);
if
(
department
==
null
)
{
com
.
gic
.
enterprise
.
api
.
dto
.
DepartmentDTO
dto
=
gicDepartmentService
.
getDeptment
(
departmentId
);
String
parentId
=
dto
.
getParentDepartId
();
getParent
(
parentId
);
}
return
department
;
}
@Override
public
void
syncGicDepartment
(
String
fieldListString
)
{
}
@Override
public
Page
<
DepartmentDTO
>
pageByParentId
(
String
parentId
,
String
keyword
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
return
PageUtil
.
changePageHelperToCurrentPage
(
departmentService
.
pageByParentId
(
parentId
,
keyword
),
DepartmentDTO
.
class
);
}
@Override
public
List
<
DepartmentDTO
>
listByChainId
(
String
chainId
,
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByChainId
(
chainId
,
wxEnterpriseId
);
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
void
initwxDepartment
(
String
corpid
,
String
contactSecret
,
String
wxEnterpriseId
)
{
logger
.
info
(
"【同步企业微信】wxEnterpriseId={}"
,
"init-enterprise-"
+
wxEnterpriseId
);
String
key
=
"init-enterprise-"
+
wxEnterpriseId
;
if
(
RedisUtil
.
getCache
(
key
)
==
null
)
{
RedisUtil
.
setCache
(
key
,
1
,
60
*
60L
);
String
taskId
=
StringUtil
.
randomUUID
();
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
=
this
.
qywxDepartmentApiService
.
listSelfDepartment
(
corpid
,
contactSecret
,
null
);
logger
.
info
(
"企业所有部门数据:{}"
,
JSON
.
toJSONString
(
list
));
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
this
.
addAllDepartment
(
list
,
0
,
wxEnterpriseId
,
corpid
,
contactSecret
,
taskId
);
}
}
else
{
RedisUtil
.
delCache
(
key
);
}
}
private
void
insertMQ
(
Integer
parentId
,
String
wxEnterpriseId
,
String
corpid
,
String
contactSecret
,
String
taskId
)
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"parentId"
,
parentId
);
json
.
put
(
"wxEnterpriseId"
,
wxEnterpriseId
);
json
.
put
(
"corpid"
,
corpid
);
json
.
put
(
"contactSecret"
,
contactSecret
);
json
.
put
(
"taskId"
,
taskId
);
logger
.
info
(
"【初始化部门调用】{},{},{}"
,
RouterConstant
.
INIT_WX_DEPARTMENT_SERVICENAME
,
RouterConstant
.
INIT_WX_DEPARTMENT_METHODNAME
,
json
.
toJSONString
());
try
{
GICMQClientUtil
.
getClientInstance
().
sendCommonMessage
(
RouterConstant
.
ROUTERTYPE
,
json
.
toJSONString
(),
RouterConstant
.
INIT_WX_DEPARTMENT_SERVICENAME
,
RouterConstant
.
INIT_WX_DEPARTMENT_METHODNAME
);
}
catch
(
Exception
e
)
{
logger
.
info
(
e
.
getMessage
(),
e
);
}
}
@Override
public
void
syncWxDepartmentByParentMQ
(
String
res
){
JSONObject
json
=
JSON
.
parseObject
(
res
);
Integer
parentId
=
json
.
getInteger
(
"parentId"
);
String
wxEnterpriseId
=
json
.
getString
(
"wxEnterpriseId"
);
String
corpid
=
json
.
getString
(
"corpid"
);
String
contactSecret
=
json
.
getString
(
"contactSecret"
);
String
taskId
=
json
.
getString
(
"taskId"
);
Integer
level
=
1
;
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
=
this
.
qywxDepartmentApiService
.
listSelfDepartment
(
corpid
,
contactSecret
,
parentId
);
String
chainId
=
"0"
;
String
chainName
=
"0"
;
String
pid
=
"0"
;
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
handerList
=
new
ArrayList
<>();
if
(
parentId
.
equals
(
0
)){
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
)
{
if
(
departmentDTO
.
getId
()
==
1
){
handerList
.
add
(
departmentDTO
);
break
;
}
}
}
else
{
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
)
{
if
(
departmentDTO
.
getParentid
().
equals
(
parentId
)){
handerList
.
add
(
departmentDTO
);
}
}
}
if
(
parentId
!=
0
){
TabHaobanDepartment
parent
=
this
.
departmentService
.
getByWxId
(
parentId
+
""
,
wxEnterpriseId
);
if
(
parent
!=
null
){
level
=
parent
.
getLevel
()
+
1
;
chainId
=
parent
.
getChainId
()
+
Constant
.
ID_SEPARATOR
+
parent
.
getDepartmentId
();
chainName
=
parent
.
getChainName
()
+
Constant
.
NAME_SEPARATOR
+
parent
.
getDepartmentName
();
pid
=
parent
.
getParentDepartmentId
();
}
else
{
TabHaobanSyncErrorLog
tab
=
new
TabHaobanSyncErrorLog
();
tab
.
setDataId
(
parentId
+
""
);
tab
.
setDataType
(
0
);
tab
.
setLogType
(
0
);
tab
.
setReason
(
"父部门不存在"
);
tab
.
setTaskId
(
taskId
);
tab
.
setWxEnterpriseId
(
wxEnterpriseId
);
syncErrorLogService
.
add
(
tab
);
}
}
if
(
handerList
==
null
||
handerList
.
isEmpty
()){
return
;
}
logger
.
info
(
"【mq同步】parentId={}"
,
parentId
);
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
handerList
)
{
// try {
// TabHaobanDepartment exist = this.departmentService.getByWxId(departmentDTO.getId() + "", wxEnterpriseId);
// logger.info("分组是否存在:{}", JSON.toJSONString(exist));
// if(exist == null){
// com.gic.haoban.manage.api.dto.DepartmentDTO dto = new com.gic.haoban.manage.api.dto.DepartmentDTO();
// dto.setDepartmentName(departmentDTO.getName());
// dto.setLevel(level);
// dto.setWxEnterpriseId(wxEnterpriseId);
// dto.setWxDepartmentId(departmentDTO.getId()+"");
// dto.setParentDepartmentId(pid);
// dto.setChainId(chainId);
// dto.setChainName(chainName);
// dto.setSort(departmentDTO.getOrder());
// dto.setIsStore(0);
// this.departmentService.add(dto);
// }
// insertMQ(departmentDTO.getId(),wxEnterpriseId, corpid,contactSecret,taskId);
// } catch (Exception e) {
// TabHaobanSyncErrorLog tab = new TabHaobanSyncErrorLog();
// tab.setDataId(departmentDTO.getId()+"");
// tab.setDataType(0);
// tab.setLogType(0);
// tab.setReason(e.getMessage());
// tab.setTaskId(taskId);
// tab.setWxEnterpriseId(wxEnterpriseId);
// syncErrorLogService.add(tab);
// }
//this.addAllDepartment(list, departmentDTO.getId(), wxEnterpriseId, corpid, contactSecret,taskId);
// this.staffApiService.initWxUser(corpid, contactSecret, wxEnterpriseId, departmentDTO.getId(),taskId);
return
;
}
}
@Override
public
boolean
isInitLocked
(
String
wxEnterpriseId
){
return
RedisUtil
.
isLocked
(
"init-enterprise-"
+
wxEnterpriseId
);
}
private
void
addAllDepartment
(
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
,
Integer
parentId
,
String
wxEnterpriseId
,
String
corpid
,
String
contactSecret
,
String
taskId
){
int
level
=
1
;
String
chainId
=
"0"
;
String
chainName
=
"0"
;
String
pId
=
"0"
;
if
(
parentId
!=
0
){
TabHaobanDepartment
parent
=
this
.
departmentService
.
getByWxId
(
parentId
+
""
,
wxEnterpriseId
);
if
(
parent
!=
null
){
level
=
parent
.
getLevel
()
+
1
;
chainId
=
parent
.
getChainId
()
+
Constant
.
ID_SEPARATOR
+
parent
.
getDepartmentId
();
chainName
=
parent
.
getChainName
()
+
Constant
.
NAME_SEPARATOR
+
parent
.
getDepartmentName
();
pId
=
parent
.
getDepartmentId
();
}
}
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
){
try
{
if
(
parentId
.
equals
(
departmentDTO
.
getParentid
()))
{
TabHaobanDepartment
exist
=
this
.
departmentService
.
getByWxId
(
departmentDTO
.
getId
()
+
""
,
wxEnterpriseId
);
logger
.
info
(
"分组是否存在:{}"
,
JSON
.
toJSONString
(
exist
));
if
(
exist
==
null
){
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
DepartmentDTO
dto
=
new
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
DepartmentDTO
();
dto
.
setDepartmentName
(
departmentDTO
.
getName
());
dto
.
setLevel
(
level
);
dto
.
setWxEnterpriseId
(
wxEnterpriseId
);
dto
.
setWxDepartmentId
(
departmentDTO
.
getId
()+
""
);
dto
.
setParentDepartmentId
(
pId
);
dto
.
setChainId
(
chainId
);
dto
.
setChainName
(
chainName
);
dto
.
setSort
(
departmentDTO
.
getOrder
());
dto
.
setIsStore
(
0
);
this
.
departmentService
.
add
(
dto
);
}
}
}
catch
(
Exception
e
)
{
TabHaobanSyncErrorLog
tab
=
new
TabHaobanSyncErrorLog
();
tab
.
setDataId
(
departmentDTO
.
getId
()+
""
);
tab
.
setDataType
(
0
);
tab
.
setLogType
(
0
);
tab
.
setReason
(
e
.
getMessage
());
tab
.
setTaskId
(
taskId
);
tab
.
setWxEnterpriseId
(
wxEnterpriseId
);
syncErrorLogService
.
add
(
tab
);
}
this
.
addAllDepartment
(
list
,
departmentDTO
.
getId
(),
wxEnterpriseId
,
corpid
,
contactSecret
,
taskId
);
this
.
staffApiService
.
initWxUser
(
corpid
,
contactSecret
,
wxEnterpriseId
,
departmentDTO
.
getId
(),
taskId
);
}
}
@Override
public
Integer
departmentRecycleCount
(
String
wxEnterpriseId
)
{
return
departmentService
.
departmentRecycleCount
(
wxEnterpriseId
);
}
@Override
public
boolean
hasSonNode
(
String
departmentId
)
{
int
departmentCount
=
departmentService
.
countByDepartment
(
departmentId
);
if
(
departmentCount
>
0
){
return
true
;
}
return
false
;
}
@Override
@Deprecated
public
ServiceResponse
gicDel
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
//return hr;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
){
department
.
setGicDelFlag
(
1
);
}
departmentMapper
.
updateByPrimaryKeySelective
(
department
);
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
//return hr;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
){
department
.
setGicDelFlag
(
1
);
}
departmentMapper
.
updateByPrimaryKeySelective
(
department
);
}
//调微信的删除接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
if
(
enterpriseDTO
!=
null
)
{
//todo 不需要了
// JSONResponse jp = qywxDepartmentApiService.deleteSelfDepartment(enterpriseDTO.getCorpid(), enterpriseDTO.getContactSecret(), Integer.parseInt(department.getWxDepartmentId()));
// if(jp.getErrorCode() != 0) {
// hr.setCode(0);
// hr.setMessage("微信删除部门失败");
// return hr;
// }
}
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
<
List
<
DepartmentDTO
>>
listStoreListByStaffId
(
String
staffId
)
{
ServiceResponse
<
List
<
DepartmentDTO
>>
rer
=
new
ServiceResponse
<
List
<
DepartmentDTO
>>();
List
<
StaffDepartmentRelatedDTO
>
relateList
=
staffDepartmentRelatedApiService
.
listByStaffId
(
staffId
);
if
(
CollectionUtils
.
isEmpty
(
relateList
))
{
logger
.
info
(
"没有部分显示:{}"
,
staffId
);
return
rer
;
}
List
<
String
>
departmentIds
=
relateList
.
stream
().
map
(
dto
->
dto
.
getDepartmentId
()).
collect
(
Collectors
.
toList
());
List
<
DepartmentDTO
>
departmentList
=
listByDepartmentIds
(
departmentIds
,
1
);
rer
.
setResult
(
departmentList
);
return
rer
;
}
@Override
public
Integer
totalStoreCountByEnterpriseId
(
String
wxEnterpriseId
)
{
return
departmentService
.
totalStoreCountByEnterpriseId
(
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentDTO
>
listSonByDepartmentIds
(
List
<
String
>
departmentIdList
,
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
new
ArrayList
<>();
for
(
String
departmentId
:
departmentIdList
)
{
String
chainId
=
""
;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
){
chainId
=
department
.
getChainId
()
+
Constant
.
ID_SEPARATOR
+
departmentId
;
}
list
.
add
(
department
);
if
(
StringUtils
.
isNotBlank
(
chainId
)){
List
<
TabHaobanDepartment
>
tabList
=
departmentService
.
listByChainId
(
chainId
,
wxEnterpriseId
);
list
.
addAll
(
tabList
);
}
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
List
<
DepartmentShortDTO
>
searchDepartment
(
String
search
,
String
wxEnterpriseId
)
{
return
departmentService
.
searchDepartment
(
search
,
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentShortDTO
>
listAllDepartment
(
String
wxEnterpriseId
)
{
List
<
DepartmentShortDTO
>
list
=
departmentService
.
listAllDepartment
(
wxEnterpriseId
);
return
list
;
}
GICMQClientUtil
.
getClientInstance
().
sendCommonMessage
(
RouterConstant
.
ROUTERTYPE
,
json
.
toJSONString
(),
RouterConstant
.
INIT_WX_DEPARTMENT_SERVICENAME
,
RouterConstant
.
INIT_WX_DEPARTMENT_METHODNAME
);
}
catch
(
Exception
e
)
{
logger
.
info
(
e
.
getMessage
(),
e
);
}
}
@Override
public
void
syncWxDepartmentByParentMQ
(
String
res
)
{
JSONObject
json
=
JSON
.
parseObject
(
res
);
Integer
parentId
=
json
.
getInteger
(
"parentId"
);
String
wxEnterpriseId
=
json
.
getString
(
"wxEnterpriseId"
);
String
corpid
=
json
.
getString
(
"corpid"
);
String
contactSecret
=
json
.
getString
(
"contactSecret"
);
String
taskId
=
json
.
getString
(
"taskId"
);
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
=
this
.
qywxDepartmentApiService
.
listSelfDepartment
(
corpid
,
contactSecret
,
parentId
);
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
handerList
=
new
ArrayList
<>();
if
(
parentId
.
equals
(
0
))
{
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
)
{
if
(
departmentDTO
.
getId
()
==
1
)
{
handerList
.
add
(
departmentDTO
);
break
;
}
}
}
else
{
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
)
{
if
(
departmentDTO
.
getParentid
().
equals
(
parentId
))
{
handerList
.
add
(
departmentDTO
);
}
}
}
if
(
parentId
!=
0
)
{
TabHaobanDepartment
parent
=
this
.
departmentService
.
getByWxId
(
parentId
+
""
,
wxEnterpriseId
);
if
(
parent
==
null
)
{
TabHaobanSyncErrorLog
tab
=
new
TabHaobanSyncErrorLog
();
tab
.
setDataId
(
parentId
+
""
);
tab
.
setDataType
(
0
);
tab
.
setLogType
(
0
);
tab
.
setReason
(
"父部门不存在"
);
tab
.
setTaskId
(
taskId
);
tab
.
setWxEnterpriseId
(
wxEnterpriseId
);
syncErrorLogService
.
add
(
tab
);
}
}
logger
.
info
(
"【mq同步】parentId={}"
,
parentId
);
}
@Override
public
boolean
isInitLocked
(
String
wxEnterpriseId
)
{
return
RedisUtil
.
isLocked
(
"init-enterprise-"
+
wxEnterpriseId
);
}
private
void
addAllDepartment
(
List
<
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
>
list
,
Integer
parentId
,
String
wxEnterpriseId
,
String
corpid
,
String
contactSecret
,
String
taskId
)
{
int
level
=
1
;
String
chainId
=
"0"
;
String
chainName
=
"0"
;
String
pId
=
"0"
;
if
(
parentId
!=
0
)
{
TabHaobanDepartment
parent
=
this
.
departmentService
.
getByWxId
(
parentId
+
""
,
wxEnterpriseId
);
if
(
parent
!=
null
)
{
level
=
parent
.
getLevel
()
+
1
;
chainId
=
parent
.
getChainId
()
+
Constant
.
ID_SEPARATOR
+
parent
.
getDepartmentId
();
chainName
=
parent
.
getChainName
()
+
Constant
.
NAME_SEPARATOR
+
parent
.
getDepartmentName
();
pId
=
parent
.
getDepartmentId
();
}
}
for
(
com
.
gic
.
wechat
.
api
.
dto
.
qywx
.
DepartmentDTO
departmentDTO
:
list
)
{
try
{
if
(
parentId
.
equals
(
departmentDTO
.
getParentid
()))
{
TabHaobanDepartment
exist
=
this
.
departmentService
.
getByWxId
(
departmentDTO
.
getId
()
+
""
,
wxEnterpriseId
);
logger
.
info
(
"分组是否存在:{}"
,
JSON
.
toJSONString
(
exist
));
if
(
exist
==
null
)
{
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
DepartmentDTO
dto
=
new
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
DepartmentDTO
();
dto
.
setDepartmentName
(
departmentDTO
.
getName
());
dto
.
setLevel
(
level
);
dto
.
setWxEnterpriseId
(
wxEnterpriseId
);
dto
.
setWxDepartmentId
(
departmentDTO
.
getId
()
+
""
);
dto
.
setParentDepartmentId
(
pId
);
dto
.
setChainId
(
chainId
);
dto
.
setChainName
(
chainName
);
dto
.
setSort
(
departmentDTO
.
getOrder
());
dto
.
setIsStore
(
0
);
this
.
departmentService
.
add
(
dto
);
}
}
}
catch
(
Exception
e
)
{
TabHaobanSyncErrorLog
tab
=
new
TabHaobanSyncErrorLog
();
tab
.
setDataId
(
departmentDTO
.
getId
()
+
""
);
tab
.
setDataType
(
0
);
tab
.
setLogType
(
0
);
tab
.
setReason
(
e
.
getMessage
());
tab
.
setTaskId
(
taskId
);
tab
.
setWxEnterpriseId
(
wxEnterpriseId
);
syncErrorLogService
.
add
(
tab
);
}
this
.
addAllDepartment
(
list
,
departmentDTO
.
getId
(),
wxEnterpriseId
,
corpid
,
contactSecret
,
taskId
);
this
.
staffApiService
.
initWxUser
(
corpid
,
contactSecret
,
wxEnterpriseId
,
departmentDTO
.
getId
(),
taskId
);
}
}
@Override
public
Integer
departmentRecycleCount
(
String
wxEnterpriseId
)
{
return
departmentService
.
departmentRecycleCount
(
wxEnterpriseId
);
}
@Override
public
boolean
hasSonNode
(
String
departmentId
)
{
int
departmentCount
=
departmentService
.
countByDepartment
(
departmentId
);
if
(
departmentCount
>
0
)
{
return
true
;
}
return
false
;
}
@Override
@Deprecated
public
ServiceResponse
gicDel
(
String
departmentId
)
{
ServiceResponse
hr
=
new
ServiceResponse
();
hr
.
setCode
(
1
);
List
<
TabHaobanDepartment
>
list
=
departmentService
.
listByParentId
(
departmentId
);
logger
.
info
(
"【部门删除】list.size={}"
,
list
.
size
());
if
(!
list
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在子部门,删除部门失败"
);
//return hr;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
)
{
department
.
setGicDelFlag
(
1
);
}
departmentMapper
.
updateByPrimaryKeySelective
(
department
);
}
List
<
TabHaobanStaffDepartmentRelated
>
staffList
=
staffDepartmentService
.
listByDepartmentId
(
departmentId
);
logger
.
info
(
"【部门删除】staffList.size={}"
,
staffList
.
size
());
if
(!
staffList
.
isEmpty
())
{
hr
.
setCode
(
0
);
hr
.
setMessage
(
"存在成员,删除部门失败"
);
//return hr;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
)
{
department
.
setGicDelFlag
(
1
);
}
departmentMapper
.
updateByPrimaryKeySelective
(
department
);
}
//调微信的删除接口
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
WxEnterpriseDTO
enterpriseDTO
=
wxEnterpriseService
.
selectById
(
department
.
getWxEnterpriseId
());
departmentService
.
del
(
departmentId
);
return
hr
;
}
@Override
public
ServiceResponse
<
List
<
DepartmentDTO
>>
listStoreListByStaffId
(
String
staffId
)
{
ServiceResponse
<
List
<
DepartmentDTO
>>
rer
=
new
ServiceResponse
<
List
<
DepartmentDTO
>>();
List
<
StaffDepartmentRelatedDTO
>
relateList
=
staffDepartmentRelatedApiService
.
listByStaffId
(
staffId
);
if
(
CollectionUtils
.
isEmpty
(
relateList
))
{
logger
.
info
(
"没有部分显示:{}"
,
staffId
);
return
rer
;
}
List
<
String
>
departmentIds
=
relateList
.
stream
().
map
(
dto
->
dto
.
getDepartmentId
()).
collect
(
Collectors
.
toList
());
List
<
DepartmentDTO
>
departmentList
=
listByDepartmentIds
(
departmentIds
,
1
);
rer
.
setResult
(
departmentList
);
return
rer
;
}
@Override
public
Integer
totalStoreCountByEnterpriseId
(
String
wxEnterpriseId
)
{
return
departmentService
.
totalStoreCountByEnterpriseId
(
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentDTO
>
listSonByDepartmentIds
(
List
<
String
>
departmentIdList
,
String
wxEnterpriseId
)
{
List
<
TabHaobanDepartment
>
list
=
new
ArrayList
<>();
for
(
String
departmentId
:
departmentIdList
)
{
String
chainId
=
""
;
TabHaobanDepartment
department
=
departmentService
.
selectById
(
departmentId
);
if
(
department
!=
null
)
{
chainId
=
department
.
getChainId
()
+
Constant
.
ID_SEPARATOR
+
departmentId
;
}
list
.
add
(
department
);
if
(
StringUtils
.
isNotBlank
(
chainId
))
{
List
<
TabHaobanDepartment
>
tabList
=
departmentService
.
listByChainId
(
chainId
,
wxEnterpriseId
);
list
.
addAll
(
tabList
);
}
}
return
EntityUtil
.
changeEntityListByJSON
(
DepartmentDTO
.
class
,
list
);
}
@Override
public
List
<
DepartmentShortDTO
>
searchDepartment
(
String
search
,
String
wxEnterpriseId
)
{
return
departmentService
.
searchDepartment
(
search
,
wxEnterpriseId
);
}
@Override
public
List
<
DepartmentShortDTO
>
listAllDepartment
(
String
wxEnterpriseId
)
{
List
<
DepartmentShortDTO
>
list
=
departmentService
.
listAllDepartment
(
wxEnterpriseId
);
return
list
;
}
}
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