From 83c7cfa4ecd5d59106b09efff26be43141e38386 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 21 十二月 2023 09:10:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java |   38 ++++++++++++++++++++++++++++++--------
 1 files changed, 30 insertions(+), 8 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 436a7bc..9e8b703 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
@@ -270,32 +270,47 @@
         if(list !=null && list.size()>0) {
             List<Member> addList = new ArrayList<>();
             List<Member> updateList = new ArrayList<>();
-            List<Integer> delIds = new ArrayList<>(); 
+            List<Integer> delIds = new ArrayList<>();
+            List<Member> delList = 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);
+            dealUserChangeList(list,addList,updateList,delList,allList);
             if(addList.size()>0){
+                for (Member member:addList) {
+                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                }
                 memberMapper.insertBatchSomeColumn(addList);
             }
             if(updateList.size()>0){
                 for(Member c : updateList){
+                    dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
                     memberMapper.updateById(c);
                 }
             }
-            if(delIds.size()>0){
-                //鍒犻櫎鎵�鏈夐渶瑕佸垹闄ょ殑缁勭粐淇℃伅(閫昏緫鍒犻櫎锛�
+            if(delList.size()>0){
+                for (Member member:delList) {
+                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                }
+                delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList());
                 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) {
+    public void dealRoleEmpower(Member member,Date startTime , Date endTime){
+        List<Integer> doorIds = null;
+        doorIds = getRoleIdByParam(member.getRoleIds(),member);
+        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
+        dealMemberRoleEmpower(member,doorIds,startTime,endTime);
+    }
+
+
+    private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList,List<Member> delList, List<Member> allList) {
         Date date = new Date();
         for(UserListRespone response : list){
             //鏍规嵁 erpId 鏌ヨ鐢ㄦ埛淇℃伅锛屽垽鏂槸鏂板杩樻槸鏇存柊
@@ -311,7 +326,10 @@
                 //濡傛灉鏄洿鏂�
                 if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){
                     //濡傛灉宸插垹闄わ紝鍔犲叆鍒犻櫎闆嗗悎涓�
-                    delIds.add(member.getId());
+                    member.setRoleIds(response.getRoleIds());
+                    delList.add(member);
+//                    delIds.add(member.getId());
+
                     continue;
                 }
                 updateList.add(addUpdateMemberModel(response,member,date));
@@ -320,7 +338,8 @@
         if(allList!=null && allList.size()>0){
             for(Member  c : allList){
                 if(isUserDeleted(c,list)){
-                    delIds.add(c.getId());
+                    delList.add(c);
+//                    delIds.add(c.getId());
                 }
             }
         }
@@ -341,6 +360,7 @@
         member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
         member.setCompanyId(param.getOrgId());
         member.setHkStatus(Constants.ZERO);
+        member.setRoleIds(param.getRoleIds());
         return  member;
     }
 
@@ -353,12 +373,14 @@
         member.setEditDate(new Date());
         member.setErpDate(new Date());
         member.setHkStatus(Constants.ZERO);
+        member.setRoleIds(param.getRoleIds());
         return  member;
     }
 
     private boolean isUserDeleted(Member c, List<UserListRespone> list) {
         for(UserListRespone m : list){
             if(StringUtils.equals(c.getErpId(),m.getId().toString())){
+                c.setRoleIds(m.getRoleIds());
                 return  true;
             }
         }

--
Gitblit v1.9.3