|
|
@@ -0,0 +1,581 @@
|
|
|
+package com.xunmei.sync.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
+import com.xunmei.common.core.domain.R;
|
|
|
+import com.xunmei.common.core.utils.bean.BeanUtils;
|
|
|
+import com.xunmei.common.core.utils.snowId.IDHelper;
|
|
|
+import com.xunmei.sync.domain.FjnxOrgBusinessRelation;
|
|
|
+import com.xunmei.sync.domain.OrgFjnx;
|
|
|
+import com.xunmei.sync.dto.fjnxsync.FJNXOrgDto;
|
|
|
+import com.xunmei.sync.dto.fjnxsync.FJNXXmlOrgDto;
|
|
|
+import com.xunmei.sync.mapper.FjnxOrgBusinessRelationMapper;
|
|
|
+import com.xunmei.sync.service.IFJNXOrgSyncService;
|
|
|
+import com.xunmei.sync.service.IFJNXSyncService;
|
|
|
+import com.xunmei.sync.service.IFJNXUserSyncService;
|
|
|
+import com.xunmei.sync.service.IOrgJinxService;
|
|
|
+import com.xunmei.system.api.RemoteOrgService;
|
|
|
+import com.xunmei.system.api.domain.Org;
|
|
|
+import com.xunmei.system.api.domain.SysOrg;
|
|
|
+import io.netty.util.internal.StringUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import okhttp3.internal.Internal;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zhulu
|
|
|
+ * @date 2022/5/30 16:02
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class FJNXSyncServiceImpl implements IFJNXSyncService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IFJNXOrgSyncService ifjnxOrgSyncService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IFJNXUserSyncService ifjnxUserSyncService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IOrgJinxService iOrgJinxService;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ RemoteOrgService remoteOrgService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ FjnxOrgBusinessRelationMapper fjnxOrgBusinessRelationMapper;
|
|
|
+
|
|
|
+// @Autowired
|
|
|
+// OrgService orgService;
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// private OrgRepository orgRepository;
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// private UserRepository userRepository;
|
|
|
+//
|
|
|
+// @Resource
|
|
|
+// FjnxOrgBusinessRelationMapper orgBusinessRelationMapper;
|
|
|
+//
|
|
|
+// @Resource
|
|
|
+// private OrgExtendInfoMapper orgExtendInfoMapper;
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// private OrgExtendInfoServiceImpl orgExtendInfoService;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String SyncUserInfo() {
|
|
|
+// FJNXXmlUserDto fjnxXmlUserDto = ifjnxUserSyncService.getUserInfoByFileInfo();
|
|
|
+// if (fjnxXmlUserDto == null || ObjectUtil.isEmpty(fjnxXmlUserDto.getUserVos())) return "未获取到用户信息数据";
|
|
|
+//
|
|
|
+// List<User> existUserList = userRepository.findAll();
|
|
|
+// List<Org> existOrgList = orgRepository.findAll();
|
|
|
+//
|
|
|
+// if (ObjectUtil.isEmpty(existUserList)) {
|
|
|
+// userRepository.saveAll(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList));
|
|
|
+// } else {
|
|
|
+// List<User> addList = new ArrayList<>();
|
|
|
+// List<User> updateList = new ArrayList<>();
|
|
|
+// List<User> deleteList = new ArrayList<>();
|
|
|
+// List<String> fjnxUserCodeList = new ArrayList<>();
|
|
|
+//
|
|
|
+// fjnxXmlUserDto.getUserVos().stream().forEach(fjnxUser -> {
|
|
|
+// String orgCode = fjnxUser.getDepCode();
|
|
|
+// if (!StringUtil.isNullOrEmpty(orgCode) && !StringUtil.isNullOrEmpty(fjnxUser.getUserId())) {
|
|
|
+// Optional<Org> optionalOrg = existOrgList.stream().filter(x -> orgCode.equals(x.getCode())).findFirst();
|
|
|
+// if (optionalOrg.isPresent()) {
|
|
|
+// Optional<User> optionalUser = existUserList.stream().filter(x -> fjnxUser.getUserId().equals(x.getCode())).findFirst();
|
|
|
+// if (optionalUser.isPresent()) {
|
|
|
+// updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get()));
|
|
|
+// } else {
|
|
|
+// addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get()));
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", fjnxUser.getUserId() + fjnxUser.getUserName(), fjnxUser.getDepCode(), fjnxUser);
|
|
|
+// }
|
|
|
+// fjnxUserCodeList.add(fjnxUser.getUserId());
|
|
|
+// }
|
|
|
+//
|
|
|
+// });
|
|
|
+//
|
|
|
+// // 人员在本系统中存在 但是在统一运营门户中不存在
|
|
|
+// deleteList = existUserList.stream().filter(entity -> !fjnxUserCodeList.contains(entity.getCode())).collect(Collectors.toList());
|
|
|
+// deleteList.forEach(x -> x.setDeleted(true));
|
|
|
+//
|
|
|
+// if (ObjectUtil.isNotEmpty(addList)) {
|
|
|
+// userRepository.saveAll(addList);
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (ObjectUtil.isNotEmpty(updateList)) {
|
|
|
+// userRepository.saveAll(updateList);
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (ObjectUtil.isNotEmpty(deleteList)) {
|
|
|
+// userRepository.saveAll(deleteList);
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public String SyncOrgInfo() {
|
|
|
+ /*
|
|
|
+ * 1、从统一门户接口获取机构数据,得到FJNXOrgDto 数组对象
|
|
|
+ * 2、保存FJNXOrgDto数组到 t_fjnx_org表,根据机构业务关系表转换机构businessParentCode
|
|
|
+ * 3、获取系统当前现有所有机构
|
|
|
+ * 4、数据对比,判断出新增、删除、修改数组
|
|
|
+ * 5、调用机构接口保存机构数据
|
|
|
+ * */
|
|
|
+ FJNXXmlOrgDto fjnxXmlOrgDto = ifjnxOrgSyncService.getOrgInfoByFileInfo();
|
|
|
+ if (fjnxXmlOrgDto == null || ObjectUtil.isEmpty(fjnxXmlOrgDto.getOrgVos())) return "未获取到机构信息数据";
|
|
|
+
|
|
|
+
|
|
|
+ List<OrgFjnx> fjnxOrgList=ConvertXmlOrgDtoToOrgJinx(fjnxXmlOrgDto.getOrgVos());
|
|
|
+ iOrgJinxService.saveOrUpdateBatch(fjnxOrgList);
|
|
|
+
|
|
|
+
|
|
|
+ R<List<SysOrg>> existAllOrgResult = remoteOrgService.getAllOrg(SecurityConstants.INNER);
|
|
|
+ if(existAllOrgResult.getCode()!=200){
|
|
|
+ return existAllOrgResult.getMsg();
|
|
|
+ }
|
|
|
+ List<SysOrg> existOrgList = existAllOrgResult.getData();
|
|
|
+
|
|
|
+
|
|
|
+// List<OrgExtendInfo> orgExtendInfoList = new ArrayList<>();
|
|
|
+ // 第一同步所有机构
|
|
|
+ if (ObjectUtil.isEmpty(existOrgList)) {
|
|
|
+ List<SysOrg> rList = FjnxOrgsConvertToSysOrgs(fjnxOrgList);
|
|
|
+ resetParentIdAndPath(rList);
|
|
|
+ final R<Boolean> listR = remoteOrgService.batchSaveSyncOrg(rList, SecurityConstants.INNER);
|
|
|
+ if(listR.getCode()!=200)
|
|
|
+ {
|
|
|
+ log.error("调用远程服务接口remoteOrgService.batchSaveSyncOrg 失败:{0}",listR.getMsg());
|
|
|
+ return listR.getMsg();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SysOrg> addList = new ArrayList<>();
|
|
|
+ List<SysOrg> updateList = new ArrayList<>();
|
|
|
+ List<SysOrg> deleteList;
|
|
|
+ List<String> fjnxOrgCodeList = new ArrayList<>();
|
|
|
+ fjnxOrgList.stream().forEach(fjnxOrg -> {
|
|
|
+ String fjnxorgCode = fjnxOrg.getOrgCode();
|
|
|
+ if (!StringUtil.isNullOrEmpty(fjnxorgCode)) {
|
|
|
+ if(ObjectUtil.isNotEmpty(existOrgList)){
|
|
|
+ Optional<SysOrg> optional = existOrgList.stream().filter(x -> fjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
|
|
|
+ if (optional.isPresent()) {
|
|
|
+ updateList.add(FjnxOrgConvertToSysOrg(optional.get(), fjnxOrg));
|
|
|
+ }else {
|
|
|
+ addList.add(FjnxOrgConvertToSysOrg(fjnxOrg));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ addList.add(FjnxOrgConvertToSysOrg(fjnxOrg));
|
|
|
+ }
|
|
|
+ fjnxOrgCodeList.add(fjnxOrg.getOrgCode());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ log.error("机构编码为空停止转换为系统机构,机构名称{0}", fjnxOrg.getOrgName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 机构在本系统中存在 但是在统一运营门户中不存在
|
|
|
+ deleteList = existOrgList.stream().filter(entity -> !fjnxOrgCodeList.contains(entity.getCode()) && !StringUtil.isNullOrEmpty(entity.getCode())).collect(Collectors.toList());
|
|
|
+ deleteList.forEach(x -> x.setDeleted(1));
|
|
|
+
|
|
|
+ existOrgList.addAll(addList);
|
|
|
+
|
|
|
+ resetParentIdAndPath(existOrgList);
|
|
|
+
|
|
|
+ final R<Boolean> listR = remoteOrgService.batchSaveSyncOrg(existOrgList, SecurityConstants.INNER);
|
|
|
+ if(ObjectUtil.isNotEmpty(listR) && listR.getCode()!=200)
|
|
|
+ {
|
|
|
+ log.error("调用远程服务接口remoteOrgService.batchSaveSyncOrg 失败:{0}",listR.getMsg());
|
|
|
+ return listR.getMsg();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String SyncOrgAndUserInfo() {
|
|
|
+ this.SyncOrgInfo();
|
|
|
+ this.SyncUserInfo();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 刷新机构业务Path
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public void RefreshBusinessPath() {
|
|
|
+// List<Org> allOrgList = orgRepository.findAll();
|
|
|
+// // 将所有的 BusinessPath 先刷成跟 path字段值一致
|
|
|
+// allOrgList.forEach(x -> x.setBusinessPath(x.getPath()));
|
|
|
+//
|
|
|
+// List<FjnxOrgBusinessRelation> orgBusinessRelationList = orgBusinessRelationMapper.selectList(Wrappers.emptyWrapper());
|
|
|
+// if (ObjectUtil.isEmpty(orgBusinessRelationList)) {
|
|
|
+// orgRepository.saveAll(allOrgList);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 从顶层机构往下开始刷新businessPath 根据机构业务管理数据 调整某些机构BusinessPath
|
|
|
+// // TODO 目前只支持平级机构可以标记为业务父级
|
|
|
+// orgBusinessRelationList.stream().sorted(Comparator.comparing(FjnxOrgBusinessRelation::getOrgLevel)).forEach(obr -> {
|
|
|
+// Optional<Org> currentOrgOpt = allOrgList.stream().filter(org -> obr.getOrgId().equals(org.getId())).findFirst();
|
|
|
+// Optional<Org> businessParentOrgOpt = allOrgList.stream().filter(org -> obr.getBusinessParentId().equals(org.getId())).findFirst();
|
|
|
+// if (currentOrgOpt.isPresent() && businessParentOrgOpt.isPresent()) {
|
|
|
+// Org currentOrg = currentOrgOpt.get();
|
|
|
+// resetBusinessPath(currentOrg, businessParentOrgOpt.get());
|
|
|
+// updateChildBusinessPath(currentOrg, allOrgList);
|
|
|
+// }
|
|
|
+// });
|
|
|
+// orgRepository.saveAll(allOrgList);
|
|
|
+// return;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void resetParentIdAndPath(List<SysOrg> orgList) {
|
|
|
+
|
|
|
+ final List<SysOrg> collect = orgList.stream().filter(topOrg -> StringUtil.isNullOrEmpty(topOrg.getParentGuid()) && 0==topOrg.getDeleted()).collect(Collectors.toList());
|
|
|
+ collect.stream().forEach(org -> {
|
|
|
+ org.setParentId(-1L);
|
|
|
+// org.setLevel(1);
|
|
|
+ org.setPath(org.getId() + "-");
|
|
|
+ });
|
|
|
+
|
|
|
+ orgList.stream().forEach(org -> {
|
|
|
+
|
|
|
+ if (org.getParentId() != null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(org.getDeleted().equals(1))
|
|
|
+ {
|
|
|
+ // 已删除
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtil.isNullOrEmpty(org.getParentGuid())) {
|
|
|
+ Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg ->!StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getParentGuid())).findFirst();
|
|
|
+ if (parentOrgOptional.isPresent()) {
|
|
|
+ org.setParentId(parentOrgOptional.get().getId());
|
|
|
+ if (StringUtil.isNullOrEmpty(parentOrgOptional.get().getPath())) {
|
|
|
+ List<SysOrg> childOrg = new ArrayList<>();
|
|
|
+ childOrg.add(org);
|
|
|
+ resetParentOrgPath(parentOrgOptional.get(), childOrg, orgList);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", org.getName(), org.getGuid(), org.getParentGuid(), org);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ org.setParentId(-1L);
|
|
|
+// org.setLevel(1);
|
|
|
+ org.setPath(org.getId() + "-");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ public void resetParentOrgPath(SysOrg parentOrg, List<SysOrg> childOrg, List<SysOrg> orgList) {
|
|
|
+ Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg ->!StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(parentOrg.getParentGuid())).findFirst();
|
|
|
+ if (parentOrgOptional.isPresent()) {
|
|
|
+ parentOrg.setParentId(parentOrgOptional.get().getId());
|
|
|
+ if (!StringUtil.isNullOrEmpty(parentOrgOptional.get().getPath())) {
|
|
|
+ retOrgPath(parentOrgOptional.get(), parentOrg);
|
|
|
+ retChildOrgPath(parentOrg, childOrg);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ childOrg.add(parentOrg);
|
|
|
+ resetParentOrgPath(parentOrgOptional.get(), childOrg, orgList);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", parentOrg.getName(), parentOrg.getGuid(), parentOrg.getParentGuid(), parentOrg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void retOrgPath(SysOrg parentOrg, SysOrg org) {
|
|
|
+ org.setParentId(parentOrg.getId());
|
|
|
+// if (parentOrg.getLevel() != null) {
|
|
|
+// parentOrg.setLevel(parentOrg.getLevel() + 1);
|
|
|
+// }
|
|
|
+ org.setPath(parentOrg.getPath() + parentOrg.getId() + "-");
|
|
|
+ }
|
|
|
+
|
|
|
+ public void retChildOrgPath(SysOrg parentOrg, List<SysOrg> childOrgs) {
|
|
|
+ if (ObjectUtil.isNotEmpty(childOrgs)) {
|
|
|
+ if (ObjectUtil.isNotEmpty(parentOrg)) {
|
|
|
+ Optional<SysOrg> orgOptional = childOrgs.stream().filter(org -> org.getParentId().equals(parentOrg.getId())).findFirst();
|
|
|
+ if (orgOptional.isPresent()) {
|
|
|
+ SysOrg childOrg = orgOptional.get();
|
|
|
+ retOrgPath(parentOrg, childOrg);
|
|
|
+ childOrgs.remove(childOrg);
|
|
|
+ retChildOrgPath(childOrg, childOrgs);
|
|
|
+ } else {
|
|
|
+ log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", parentOrg.getName(), parentOrg.getGuid(), parentOrg.getParentGuid(), parentOrg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// private void updateChildBusinessPath(Org businessParentOrg, List<Org> allOrgList) {
|
|
|
+// List<Org> childrenOrgs = allOrgList.stream().filter(aorg -> businessParentOrg.getId().equals(aorg.getParentId())).collect(Collectors.toList());
|
|
|
+// for (final Org org : childrenOrgs) {
|
|
|
+// resetBusinessPath(org, businessParentOrg);
|
|
|
+// this.updateChildBusinessPath(org, allOrgList);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Org resetBusinessPath(Org org, Org businessParentOrg) {
|
|
|
+//
|
|
|
+// org.setBusinessPath(businessParentOrg.getBusinessPath() + org.getId() + "-");
|
|
|
+// System.out.println(org.getBusinessPath());
|
|
|
+// return org;
|
|
|
+// }
|
|
|
+//
|
|
|
+// private List<SysOrg> FjnxOrgsConvertToSysOrgs(List<OrgFjnx> fjnxOrgDtoList) {
|
|
|
+// List<SysOrg> result = new ArrayList<>();
|
|
|
+// if (ObjectUtil.isNotEmpty(fjnxOrgDtoList)) {
|
|
|
+// fjnxOrgDtoList.stream().forEach(x -> {
|
|
|
+// result.add(FjnxOrgConvertToSysOrg(x));
|
|
|
+// });
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+
|
|
|
+ private SysOrg FjnxOrgConvertToOrg(OrgFjnx fjnxOrgDto) {
|
|
|
+ SysOrg org = new SysOrg();
|
|
|
+ org.setId(IDHelper.id());
|
|
|
+ org.setName(fjnxOrgDto.getOrgName());
|
|
|
+ org.setShortName(fjnxOrgDto.getShortName());
|
|
|
+ org.setGuid(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setParentGuid(fjnxOrgDto.getOrgParent());
|
|
|
+ org.setCode(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setPhone(fjnxOrgDto.getOrgPhone());
|
|
|
+ org.setAddress(fjnxOrgDto.getOrgAddress());
|
|
|
+// org.setCodePath(fjnxOrgDto.getOrgPath());
|
|
|
+ org.setSort(fjnxOrgDto.getOrgOrder());
|
|
|
+ org.setUpdateTime(fjnxOrgDto.getUpdateTime());
|
|
|
+ org.setRemark(fjnxOrgDto.getRemark());
|
|
|
+// org.setLevel(fjnxOrgDto.getOrgPath().split("/").length);
|
|
|
+ // TODO 机构状态和机构类型转换
|
|
|
+ //org.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+ org.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+ return org;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<SysOrg> FjnxOrgsConvertToSysOrgs(List<OrgFjnx> fjnxOrgList) {
|
|
|
+ List<SysOrg> result = new ArrayList<>();
|
|
|
+ if (ObjectUtil.isNotEmpty(fjnxOrgList)) {
|
|
|
+ fjnxOrgList.stream().forEach(x -> {
|
|
|
+ result.add(FjnxOrgConvertToSysOrg(x));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysOrg FjnxOrgConvertToSysOrg(OrgFjnx fjnxOrgDto) {
|
|
|
+ SysOrg org = new SysOrg();
|
|
|
+ org.setId(IDHelper.id());
|
|
|
+ org.setName(fjnxOrgDto.getOrgName());
|
|
|
+ org.setShortName(fjnxOrgDto.getShortName());
|
|
|
+ org.setCode(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setGuid(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setParentGuid(fjnxOrgDto.getBusinessParentCode());
|
|
|
+ org.setPhone(fjnxOrgDto.getOrgPhone());
|
|
|
+ org.setAddress(fjnxOrgDto.getOrgAddress());
|
|
|
+ org.setSort(fjnxOrgDto.getOrgOrder());
|
|
|
+ org.setUpdateTime(fjnxOrgDto.getUpdateTime());
|
|
|
+ org.setRemark(fjnxOrgDto.getRemark());
|
|
|
+ //org.setLevel(fjnxOrgDto.getOrgPath().split("/").length);
|
|
|
+ org.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+ org.setDeleted(0);
|
|
|
+ org.setSource(1);
|
|
|
+ return org;
|
|
|
+ }
|
|
|
+//
|
|
|
+// private OrgExtendInfo FjnxOrgConvertToOrgExtendInfo(Long orgId, FJNXOrgDto fjnxOrgDto) {
|
|
|
+// OrgExtendInfo orgExtendInfo = new OrgExtendInfo();
|
|
|
+// orgExtendInfo.setOrgId(orgId);
|
|
|
+// orgExtendInfo.setOrgCode(fjnxOrgDto.getOrgCode());
|
|
|
+// orgExtendInfo.setBankType(fjnxOrgDto.getBankType());
|
|
|
+// orgExtendInfo.setBelongCode(fjnxOrgDto.getBelongCode());
|
|
|
+// orgExtendInfo.setBelongDate(fjnxOrgDto.getBelongDate());
|
|
|
+// orgExtendInfo.setCorporcode(fjnxOrgDto.getCorporCode());
|
|
|
+// orgExtendInfo.setMajorBack(fjnxOrgDto.getMajorBank());
|
|
|
+// orgExtendInfo.setOrgNature(fjnxOrgDto.getOrgNature());
|
|
|
+// orgExtendInfo.setPrincipalType(fjnxOrgDto.getPrincipalType());
|
|
|
+// orgExtendInfo.setPrincipalDuty(fjnxOrgDto.getPrincipalDuty());
|
|
|
+// orgExtendInfo.setSocialTrustCode(fjnxOrgDto.getSocialTrustCode());
|
|
|
+// orgExtendInfo.setOrgLevel(fjnxOrgDto.getOrgLevel());
|
|
|
+// orgExtendInfo.setOrgChief(fjnxOrgDto.getOrgChief());
|
|
|
+// return orgExtendInfo;
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// private OrgExtendInfo FjnxOrgConvertToOrgExtendInfo(OrgExtendInfo orgExtendInfo, FJNXOrgDto fjnxOrgDto) {
|
|
|
+//// OrgExtendInfo orgExtendInfo = new OrgExtendInfo();
|
|
|
+//// orgExtendInfo.setOrgId(orgId);
|
|
|
+//// orgExtendInfo.setOrgCode(fjnxOrgDto.getOrgCode());
|
|
|
+// orgExtendInfo.setBankType(fjnxOrgDto.getBankType());
|
|
|
+// orgExtendInfo.setBelongCode(fjnxOrgDto.getBelongCode());
|
|
|
+// orgExtendInfo.setBelongDate(fjnxOrgDto.getBelongDate());
|
|
|
+// orgExtendInfo.setCorporcode(fjnxOrgDto.getCorporCode());
|
|
|
+// orgExtendInfo.setMajorBack(fjnxOrgDto.getMajorBank());
|
|
|
+// orgExtendInfo.setOrgNature(fjnxOrgDto.getOrgNature());
|
|
|
+// orgExtendInfo.setPrincipalType(fjnxOrgDto.getPrincipalType());
|
|
|
+// orgExtendInfo.setPrincipalDuty(fjnxOrgDto.getPrincipalDuty());
|
|
|
+// orgExtendInfo.setSocialTrustCode(fjnxOrgDto.getSocialTrustCode());
|
|
|
+// orgExtendInfo.setOrgLevel(fjnxOrgDto.getOrgLevel());
|
|
|
+// orgExtendInfo.setOrgChief(fjnxOrgDto.getOrgChief());
|
|
|
+// return orgExtendInfo;
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ private Org FjnxOrgConvertToOrg(Org org, FJNXOrgDto fjnxOrgDto) {
|
|
|
+ org.setName(fjnxOrgDto.getOrgName());
|
|
|
+ org.setShortName(fjnxOrgDto.getShortName());
|
|
|
+ org.setGuid(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setParentGuid(fjnxOrgDto.getOrgParent());
|
|
|
+ org.setCode(fjnxOrgDto.getOrgCode());
|
|
|
+ org.setPhone(fjnxOrgDto.getOrgPhone());
|
|
|
+ org.setAddress(fjnxOrgDto.getOrgAddress());
|
|
|
+// org.setCodePath(fjnxOrgDto.getOrgPath());
|
|
|
+ org.setSort(fjnxOrgDto.getOrgOrder());
|
|
|
+ org.setUpdateTime(fjnxOrgDto.getUpdateTime());
|
|
|
+ org.setRemark(fjnxOrgDto.getRemark());
|
|
|
+ org.setLevel(fjnxOrgDto.getOrgPath().split("/").length);
|
|
|
+ // TODO 机构状态和机构类型转换
|
|
|
+ org.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+ return org;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysOrg FjnxOrgConvertToSysOrg(SysOrg org, OrgFjnx fjnxOrg) {
|
|
|
+ org.setName(fjnxOrg.getOrgName());
|
|
|
+ org.setShortName(fjnxOrg.getShortName());
|
|
|
+ org.setCode(fjnxOrg.getOrgCode());
|
|
|
+ org.setGuid(fjnxOrg.getOrgCode());
|
|
|
+ org.setParentGuid(fjnxOrg.getBusinessParentCode());
|
|
|
+ org.setPhone(fjnxOrg.getOrgPhone());
|
|
|
+ org.setAddress(fjnxOrg.getOrgAddress());
|
|
|
+ org.setSort(fjnxOrg.getOrgOrder());
|
|
|
+ org.setUpdateTime(fjnxOrg.getUpdateTime());
|
|
|
+ org.setRemark(fjnxOrg.getRemark());
|
|
|
+// org.setLevel(fjnxOrg.getOrgPath().split("/").length);
|
|
|
+ // TODO 机构状态和机构类型转换
|
|
|
+ org.setIsLock(fjnxOrg.getUsableFlag());
|
|
|
+ org.setSource(1);
|
|
|
+ return org;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+// private List<User> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<Org> orgList) {
|
|
|
+// List<User> result = new ArrayList<>();
|
|
|
+// if (ObjectUtil.isNotEmpty(fjnxUserDtoList)) {
|
|
|
+// fjnxUserDtoList.stream().forEach(x -> {
|
|
|
+// Optional<Org> optionalOrg = orgList.stream().filter(org -> org.getCode().equals(x.getDepCode())).findFirst();
|
|
|
+// if (optionalOrg.isPresent()) {
|
|
|
+// result.add(FjnxUserConvertToUser(x, optionalOrg.get()));
|
|
|
+// } else {
|
|
|
+// log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", x.getUserId() + x.getUserName(), x.getDepCode(), x);
|
|
|
+// }
|
|
|
+//
|
|
|
+// });
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// private User FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, Org org) {
|
|
|
+// User user = new User();
|
|
|
+// user.setCode(fjnxUserDto.getUserId());
|
|
|
+// user.setName(fjnxUserDto.getUserName());
|
|
|
+// user.setUsername(fjnxUserDto.getLoginName());
|
|
|
+// user.setPhone(fjnxUserDto.getMobile());
|
|
|
+// user.setGender(fjnxUserDto.getSex().equals("1") ? Gender.MAN : Gender.WOMAN);
|
|
|
+// user.setCard(fjnxUserDto.getIdCard());
|
|
|
+// user.setJobNumber(fjnxUserDto.getTeller());
|
|
|
+// user.setApproveStatus(ApproveStatus.PASS);
|
|
|
+// user.setUpdateTime(fjnxUserDto.getUpdateTime());
|
|
|
+// user.setOrgId(org.getId());
|
|
|
+// user.setOrgName(org.getName());
|
|
|
+// user.setOrgPath(org.getPath());
|
|
|
+// //0 禁用 1 启用已改密码 2 启用未改密码
|
|
|
+// user.setIsLock(fjnxUserDto.getUserStatus().equals("0") ? true : false);
|
|
|
+// // TODO 机构状态和机构类型转换
|
|
|
+// //user.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+// return user;
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// private User FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, User user, Org org) {
|
|
|
+// user.setCode(fjnxUserDto.getUserId());
|
|
|
+// user.setName(fjnxUserDto.getUserName());
|
|
|
+// user.setUsername(fjnxUserDto.getLoginName());
|
|
|
+// user.setPhone(fjnxUserDto.getMobile());
|
|
|
+// user.setGender(fjnxUserDto.getSex().equals("1") ? Gender.MAN : Gender.WOMAN);
|
|
|
+// user.setCard(fjnxUserDto.getIdCard());
|
|
|
+// user.setJobNumber(fjnxUserDto.getTeller());
|
|
|
+// user.setApproveStatus(ApproveStatus.PASS);
|
|
|
+// user.setUpdateTime(fjnxUserDto.getUpdateTime());
|
|
|
+// user.setOrgId(org.getId());
|
|
|
+// user.setOrgName(org.getName());
|
|
|
+// user.setOrgPath(org.getPath());
|
|
|
+// //0 禁用 1 启用已改密码 2 启用未改密码
|
|
|
+// user.setIsLock(fjnxUserDto.getUserStatus().equals("0") ? true : false);
|
|
|
+// // TODO 机构状态和机构类型转换
|
|
|
+// //user.setIsLock(fjnxOrgDto.getUsableFlag());
|
|
|
+// return user;
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
+ private List<OrgFjnx> ConvertXmlOrgDtoToOrgJinx(List<FJNXOrgDto> list) {
|
|
|
+ if (ObjectUtil.isEmpty(list)) {
|
|
|
+ return new ArrayList<OrgFjnx>();
|
|
|
+ }
|
|
|
+ List<FjnxOrgBusinessRelation> fjnxOrgBusinessRelationList = fjnxOrgBusinessRelationMapper.selectList(Wrappers.emptyWrapper());
|
|
|
+ final ArrayList<OrgFjnx> resultList = new ArrayList<>();
|
|
|
+ Date syncDateTime=new Date();
|
|
|
+ list.stream().forEach(item -> {
|
|
|
+ OrgFjnx tempOrg = new OrgFjnx();
|
|
|
+ BeanUtils.copyBeanProp(tempOrg, item);
|
|
|
+
|
|
|
+ tempOrg.setLastSyncTime(syncDateTime);
|
|
|
+ tempOrg.setBusinessParentCode(tempOrg.getOrgParent());
|
|
|
+
|
|
|
+ Optional<FjnxOrgBusinessRelation> first = fjnxOrgBusinessRelationList.stream().filter(b -> b.getOrgCode().equals(item.getOrgCode())).findFirst();
|
|
|
+ if(first.isPresent())
|
|
|
+ {
|
|
|
+ if( list.stream().anyMatch(y->y.getOrgCode().equals(first.get().getBusinessParentCode()))){
|
|
|
+ tempOrg.setBusinessParentCode(first.get().getBusinessParentCode());
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ log.error("设置fjnx业务父级机构失败,机构名称:{0},机构编码:{1},业务父级机构编码:{2}", item.getOrgName(),first.get().getOrgCode(), first.get().getBusinessParentCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resultList.add(tempOrg);
|
|
|
+ });
|
|
|
+ return resultList;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|