From 08e432aaf57cd2e7c9502ab27c63e01c09c5d1f4 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 18 十二月 2023 10:28:13 +0800 Subject: [PATCH] ERP接口 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 113 insertions(+), 3 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java index 88c30a0..245bb9e 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java @@ -251,18 +251,128 @@ return null; } + + + /** * 鍚屾ERP浜哄憳淇℃伅 * @param param * @return */ @Override - public String syncUsers(UserListRequest param){ - //TODO----------------RK------------------ - List<UserListRespone> allList = ErpTool.getErpUserList(ErpConstants.userListUrl,param); + public String syncUsers(UserListRequest param){ + List<UserListRespone> list = ErpTool.getErpUserList(ErpConstants.userListUrl,param); + if(list !=null && list.size()>0) { + List<Member> addList = new ArrayList<>(); + List<Member> updateList = new ArrayList<>(); + List<Integer> delIds = new ArrayList<>(); + List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda() + .eq(Member::getIsdeleted,Constants.ZERO) + .eq(Member::getType, Constants.memberType.internal)); + dealUserChangeList(list,addList,updateList,delIds,allList); + + if(addList.size()>0){ + memberMapper.insertBatchSomeColumn(addList); + } + if(updateList.size()>0){ + for(Member c : updateList){ + memberMapper.updateById(c); + } + } + if(delIds.size()>0){ + //鍒犻櫎鎵�鏈夐渶瑕佸垹闄ょ殑缁勭粐淇℃伅(閫昏緫鍒犻櫎锛� + memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getHkStatus,Constants.ZERO) + .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds)); + } + + }else{ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾ERP鏁版嵁涓虹┖锛�"); + } return null; } + private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList, List<Integer> delIds, List<Member> allList) { + Date date = new Date(); + for(UserListRespone response : list){ + //鏍规嵁 erpId 鏌ヨ鐢ㄦ埛淇℃伅锛屽垽鏂槸鏂板杩樻槸鏇存柊 + Member member = findUserByERPId(allList,response.getId()); + if(member == null){ + //濡傛灉鏄柊澧� + if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){ + continue; + } + //灏佽鏂板缁勭粐瀵硅薄鏁版嵁 + addList.add(getAddMemberModel(response,date)); + }else{ + //濡傛灉鏄洿鏂� + if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){ + //濡傛灉宸插垹闄わ紝鍔犲叆鍒犻櫎闆嗗悎涓� + delIds.add(member.getId()); + continue; + } + updateList.add(addUpdateMemberModel(response,member,date)); + } + } + if(allList!=null && allList.size()>0){ + for(Member c : allList){ + if(isUserDeleted(c,list)){ + delIds.add(c.getId()); + } + } + } + } + + private Member getAddMemberModel(UserListRespone param, Date date) { + Member member = new Member(); + BeanUtils.copyProperties(param,member); + member.setCreateDate(new Date()); + member.setHkStatus(Constants.ZERO); + member.setErpStatus(Constants.ONE); + member.setErpDate(new Date()); + member.setErpId(param.getId()); + member.setFsStatus(Constants.ZERO); + member.setType(Constants.memberType.internal); + String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); + member.setIdcardNo(encryptIdNo); + member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); + member.setCompanyId(param.getOrgId()); + member.setHkStatus(Constants.ZERO); + return member; + } + + private Member addUpdateMemberModel(UserListRespone param,Member member,Date date) { + BeanUtils.copyProperties(param,member); + String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); + member.setIdcardNo(encryptIdNo); + member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); + member.setCompanyId(param.getOrgId()); + member.setEditDate(new Date()); + member.setErpDate(new Date()); + member.setHkStatus(Constants.ZERO); + return member; + } + + private boolean isUserDeleted(Member c, List<UserListRespone> list) { + for(UserListRespone m : list){ + if(StringUtils.equals(c.getErpId(),m.getId().toString())){ + return true; + } + } + return false; + } + + private Member findUserByERPId(List<Member> allList, String id) { + if(allList!=null){ + for(Member com :allList){ + if(StringUtils.equals(com.getErpId(),id)){ + return com; + } + } + } + return null; + } + + /** * 鎻愪氦鐢ㄦ埛鍚屾澶辫触璁板綍 -- Gitblit v1.9.3