|
|
@@ -90,9 +90,11 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
}
|
|
|
List<SysOrg> existOrgList = existAllOrgResult.getData();
|
|
|
|
|
|
+ List<FjnxOrg> existFjnxOrgList = ifjnxOrgService.list();
|
|
|
+
|
|
|
//将FJNXUser 转换为SysUser 并保存
|
|
|
if (ObjectUtil.isEmpty(existUserList)) {
|
|
|
- final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList), SecurityConstants.INNER);
|
|
|
+ final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList,existFjnxOrgList), SecurityConstants.INNER);
|
|
|
if (booleanR != null && booleanR.getCode() != 200) {
|
|
|
log.error("调用远程服务接口remoteUserService.batchSaveSyncOrg 失败:{}", booleanR.getMsg());
|
|
|
return "remoteUserService.batchSaveSyncUser 调用失败:" + booleanR.getMsg();
|
|
|
@@ -107,18 +109,27 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
fjnxXmlUserDto.getUserVos().forEach(fjnxUser -> {
|
|
|
String orgCode = fjnxUser.getDepCode();
|
|
|
if (!StringUtil.isNullOrEmpty(orgCode) && !StringUtil.isNullOrEmpty(fjnxUser.getUserId())) {
|
|
|
+ fjnxUserCodeList.add(fjnxUser.getUserId());
|
|
|
+
|
|
|
Optional<SysOrg> optionalOrg = existOrgList.stream().filter(x -> orgCode.equals(x.getCode())).findFirst();
|
|
|
- if (optionalOrg.isPresent()) {
|
|
|
+
|
|
|
+ SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(existFjnxOrgList,existOrgList,fjnxUser);
|
|
|
+ if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
|
|
|
+// final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> userBusinessFjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
|
|
|
+// if(!businessSysOrgOptional.isPresent())
|
|
|
+// {
|
|
|
+// return;
|
|
|
+// }
|
|
|
Optional<SysUser> optionalUser = existUserList.stream().filter(x -> fjnxUser.getUserId().equals(x.getCode())).findFirst();
|
|
|
if (optionalUser.isPresent()) {
|
|
|
- updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get()));
|
|
|
+ updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get(),userBusinessSysOrg));
|
|
|
} else {
|
|
|
- addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get()));
|
|
|
+ addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get(),userBusinessSysOrg));
|
|
|
}
|
|
|
} else {
|
|
|
log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", fjnxUser.getUserId() + fjnxUser.getUserName(), fjnxUser.getDepCode(), fjnxUser);
|
|
|
}
|
|
|
- fjnxUserCodeList.add(fjnxUser.getUserId());
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -512,13 +523,14 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList) {
|
|
|
+ private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList,List<FjnxOrg> fjnxOrgList) {
|
|
|
List<SysUser> result = new ArrayList<>();
|
|
|
if (ObjectUtil.isNotEmpty(fjnxUserDtoList)) {
|
|
|
fjnxUserDtoList.forEach(x -> {
|
|
|
+ SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(fjnxOrgList,orgList,x);
|
|
|
Optional<SysOrg> optionalOrg = orgList.stream().filter(org -> org.getCode().equals(x.getDepCode())).findFirst();
|
|
|
- if (optionalOrg.isPresent()) {
|
|
|
- result.add(FjnxUserConvertToUser(x, optionalOrg.get()));
|
|
|
+ if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
|
|
|
+ result.add(FjnxUserConvertToUser(x, optionalOrg.get(),userBusinessSysOrg));
|
|
|
} else {
|
|
|
log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", x.getUserId() + x.getUserName(), x.getDepCode(), x);
|
|
|
}
|
|
|
@@ -528,7 +540,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org) {
|
|
|
+ private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org,SysOrg businessOrg) {
|
|
|
SysUser user = new SysUser();
|
|
|
user.setCode(fjnxUserDto.getUserId());
|
|
|
user.setName(fjnxUserDto.getUserName());
|
|
|
@@ -539,9 +551,9 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
user.setJobNumber(fjnxUserDto.getTeller());
|
|
|
// user.setApproveStatus(ApproveStatus.PASS);
|
|
|
user.setUpdateTime(fjnxUserDto.getUpdateTime());
|
|
|
- user.setOrgId(org.getId());
|
|
|
- user.setOrgName(org.getName());
|
|
|
- user.setOrgPath(org.getPath());
|
|
|
+ user.setOrgId(businessOrg.getId());
|
|
|
+ user.setOrgName(businessOrg.getName());
|
|
|
+ user.setOrgPath(businessOrg.getPath());
|
|
|
//0 禁用 1 启用已改密码 2 启用未改密码
|
|
|
user.setIsLock(fjnxUserDto.getUserStatus());
|
|
|
user.setSource(1);
|
|
|
@@ -551,7 +563,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
|
|
|
}
|
|
|
|
|
|
- private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org) {
|
|
|
+ private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org,SysOrg businessOrg) {
|
|
|
user.setCode(fjnxUserDto.getUserId());
|
|
|
user.setName(fjnxUserDto.getUserName());
|
|
|
user.setUsername(fjnxUserDto.getLoginName());
|
|
|
@@ -573,6 +585,44 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取用户的业务机构
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private SysOrg getUserBusinessFjnxOrg(List<FjnxOrg> fjnxOrgList,List<SysOrg> existOrgList,FJNXUserDto fjnxUserDto){
|
|
|
+ final Optional<FjnxOrg> fjnxOrgOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getDepCode())).findFirst();
|
|
|
+ if(fjnxOrgOptional.isPresent())
|
|
|
+ {
|
|
|
+ if("0001".equals(fjnxOrgOptional.get().getOrgType()))
|
|
|
+ {
|
|
|
+ final Optional<FjnxOrg> corporCodeOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getCorporCode())).findFirst();
|
|
|
+ if(corporCodeOptional.isPresent())
|
|
|
+ {
|
|
|
+ return getSysOrgByFjnxOrg(existOrgList, corporCodeOptional.get());
|
|
|
+ }else {
|
|
|
+ log.error("同步人员【{}】所属法人机构编码【{}】在当前fjnx_org中未找到对应法人机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getCorporCode(), fjnxUserDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return getSysOrgByFjnxOrg(existOrgList,fjnxOrgOptional.get());
|
|
|
+// return fjnxOrgOptional.get();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ log.error("同步人员【{}】所属机构编码【{}】在当前fjnx_org中未找到对应机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getDepCode(), fjnxUserDto);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysOrg getSysOrgByFjnxOrg(List<SysOrg> existOrgList,FjnxOrg fjnxOrg)
|
|
|
+ {
|
|
|
+ final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> fjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
|
|
|
+ if(businessSysOrgOptional.isPresent())
|
|
|
+ return businessSysOrgOptional.get();
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
private List<FjnxOrg> ConvertXmlOrgDtoToOrgJinx(List<FJNXOrgDto> list) {
|
|
|
if (ObjectUtil.isEmpty(list)) {
|
|
|
return new ArrayList<>();
|