From 857a1e6ddac0a5cfdd82c78218b2483534ab397f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 09 一月 2024 13:45:19 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java |  150 ++++++++++++++++++++++---------------------------
 1 files changed, 68 insertions(+), 82 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 0be2378..b98b2ae 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
@@ -214,6 +214,7 @@
         }
         company.setErpDate(date);
         company.setHkStatus(Constants.ZERO);
+        company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         return  company;
     }
     /**
@@ -236,6 +237,7 @@
         }
         company.setErpDate(date);
         company.setHkStatus(Constants.ZERO);
+        company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         return  company;
     }
 
@@ -282,23 +284,24 @@
             List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
                     .eq(Member::getIsdeleted,Constants.ZERO)
                     .eq(Member::getType, Constants.memberType.internal));
-            dealUserChangeList(list,addList,updateList,delList,allList);
+            dealUserChangeList(list,addList,updateList,delList,allList,param);
             if(addList.size()>0){
                 memberMapper.insertBatchSomeColumn(addList);
                 for (Member member:addList) {
-                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                    dealRoleEmpower(member );
                 }
             }
             if(updateList.size()>0){
                 for(Member c : updateList){
-                     dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
+                     dealRoleEmpower(c );
                     c.setHkStatus(Constants.ZERO);
+                    c.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     memberMapper.updateById(c);
                 }
             }
             if(delList.size()>0){
                 for (Member member:delList) {
-                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                    dealRoleEmpower(member );
                 }
                 delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList());
                 memberMapper.update(null,new UpdateWrapper<Member>().lambda()
@@ -311,15 +314,13 @@
         }
     }
 
-    public void dealRoleEmpower(Member member,Date startTime , Date endTime){
-        List<Integer> doorIds = null;
-        doorIds = getRoleIdByParam(member.getRoleIds(),member);
-        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-        dealMemberRoleEmpower(member,doorIds,startTime,endTime);
+   public void dealRoleEmpower(Member member ){
+        List<Integer> doorIds = getRoleIdByParam(member.getRoleIds(),member);
+        //娣诲姞浜哄憳鍗$墖鏁版嵁
+        dealMemberCard(member,new UserUpdateRequest());
     }
 
-
-    private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList) {
+    private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList,UserListRequest param) {
         Date date = new Date();
         for(ErpUserListResponse response : list){
             Company company =  new Company();
@@ -337,7 +338,7 @@
                     continue;
                 }
                 //灏佽鏂板缁勭粐瀵硅薄鏁版嵁
-                addList.add(getAddMemberModel(response,date,company));
+                addList.add(getAddMemberModel(response,date,company,param));
             }else{
                 //濡傛灉鏄洿鏂�
                 if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){
@@ -347,7 +348,7 @@
 //                    delIds.add(member.getId());
                     continue;
                 }
-                updateList.add(addUpdateMemberModel(response,member,date,company));
+                updateList.add(addUpdateMemberModel(response,member,date,company,param));
             }
         }
         if(allList!=null && allList.size()>0){
@@ -359,17 +360,18 @@
         }
     }
 
-    private Member getAddMemberModel(ErpUserListResponse param, Date date,Company company) {
+    private Member getAddMemberModel(ErpUserListResponse param, Date date,Company company,UserListRequest request) {
         Member member = new Member();
         BeanUtils.copyProperties(param,member);
-        member.setCreateDate(new Date());
+        member.setCreateDate(date);
         if(StringUtils.isBlank(param.getFaceImg())){
             member.setHkStatus(Constants.THREE);
         }else{
             member.setHkStatus(Constants.ZERO);
+            member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         }
         member.setErpStatus(Constants.ONE);
-        member.setErpDate(new Date());
+        member.setErpDate(date);
         member.setErpId(param.getId());
         member.setIdcardType(param.getIdType());
         member.setFsStatus(Constants.ZERO);
@@ -381,20 +383,25 @@
         member.setRoleIds(param.getRoleIds());
         member.setCompanyId(Objects.isNull(company)?null:company.getId());
         member.setErpOrgId(param.getOrgId());
+        member.setStartTime(request.getStartTime());
+        member.setEndTime(request.getEndTime());
         return  member;
     }
 
-    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date,Company company) {
+    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date,Company company,UserListRequest request) {
         BeanUtils.copyProperties(param,member);
         String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
         member.setIdcardNo(encryptIdNo);
         member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
         member.setErpOrgId(param.getOrgId());
-        member.setEditDate(new Date());
+        member.setEditDate(date);
         member.setStatus(param.getStatus());
-        member.setErpDate(new Date());
+        member.setErpDate(date);
         member.setHkStatus(Constants.ZERO);
+        member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         member.setRoleIds(param.getRoleIds());
+        member.setStartTime(request.getStartTime());
+        member.setEndTime(request.getEndTime());
         member.setCompanyId(Objects.isNull(company)?null:company.getId());
         member.setErpOrgId(param.getOrgId());
         return  member;
@@ -749,6 +756,7 @@
                 company.setId(null);
                 company.setCreateDate(new Date());
                 company.setHkStatus(Constants.ZERO);
+                company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 company.setErpStatus(Constants.ONE);
                 company.setErpDate(new Date());
                 company.setName(param.getName());
@@ -773,6 +781,7 @@
                     company.setHkId(rootOrgId);
                 }*/
                 company.setHkStatus(Constants.ZERO);
+                company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 company.setErpDate(new Date());
                 company.setName(param.getName());
                 company.setErpParentId(param.getParentId());
@@ -816,43 +825,41 @@
                 BeanUtils.copyProperties(param,member);
                 member.setId(null);
                 member.setCreateDate(new Date());
+                  member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 member.setHkStatus(Constants.ZERO);
                 member.setErpStatus(Constants.ONE);
                 member.setErpDate(new Date());
                 member.setErpId(param.getId());
                 member.setFsStatus(Constants.ZERO);
+                member.setCompanyId(company.getId());
                 member.setType(Constants.memberType.internal);
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setStartTime(param.getValidStartTime());
+                member.setRoleId(param.getRoleIds()!=null?JSONObject.toJSONString(param.getRoleIds()):null);
                 member.setEndTime(param.getValidEndTime());
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setErpOrgId(param.getOrgId());
-                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 memberMapper.insert(member);
-                //TODO 娴峰悍鏁版嵁鍒涘缓-------------淇敼-------------------
             }else{
                 Integer id = member.getId();
                 BeanUtils.copyProperties(param,member);
                 member.setId(id);
+                member.setCompanyId(company.getId());
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setErpOrgId(param.getOrgId());
                 member.setEditDate(new Date());
-                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 member.setErpDate(new Date());
                 member.setHkStatus(Constants.ZERO);
+                member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 member.setStartTime(param.getValidStartTime());
                 member.setEndTime(param.getValidEndTime());
                 memberMapper.updateById(member);
-                //鍒犻櫎鐢ㄦ埛鍗$墖鏁版嵁  浜哄憳瑙掕壊鍏宠仈
-                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
-                //TODO 娴峰悍鏁版嵁鏇存柊
             }
-            //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
             //娣诲姞浜哄憳鍗$墖鏁版嵁
+            getRoleIdByParam(param.getRoleIds(),member);
             dealMemberCard(member,param);
         }catch (BusinessException e){
             throw e;
@@ -867,69 +874,45 @@
      * @param param
      */
     private void dealMemberCard(Member member, UserUpdateRequest param) {
-        if(!Objects.isNull(param.getCardList())&&param.getCardList().size()>Constants.ZERO){
-            if(CollectionUtils.isNotEmpty(param.getCardList())){
-                List<MemberCard> memberCardList = new ArrayList<>();
-                for (String id:param.getCardList()) {
+        if(Objects.isNull(param.getCardList()) || param.getCardList().size()== Constants.ZERO){
+           param.setCardList(new ArrayList<>());
+           //濡傛灉娌℃湁鍗″彿锛岄粯璁ょ粰涓�涓崱鍙�
+           param.getCardList().add(Constants.VIRTUAL_CARD_INDEX+member.getId());
+        }
+        if(CollectionUtils.isNotEmpty(param.getCardList())){
+            List<MemberCard> memberCardList = new ArrayList<>();
+            for (String id:param.getCardList()) {
+                MemberCard model = memberCardMapper.selectOne(new QueryWrapper<MemberCard>().lambda()
+                        .eq(MemberCard::getCode,id)
+                        .eq(MemberCard::getMemberId,member.getId()));
+
+                if(model!=null && Constants.equalsInteger(model.getHkStatus(),Constants.ONE)){
+                    //濡傛灉宸茬粡寮�鍗″畬鎴�,涓嶅仛浠讳綍澶勭悊
+                }else if(model !=null){
+                    //濡傛灉瀛樺湪锛屼絾鏈紑鍗★紝鍒欑洿鎺ユ洿鏀逛负寰呭悓姝�
+                    model.setHkStatus(Constants.ZERO);
+                    model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                    model.setIsdeleted(Constants.ZERO);
+                    memberCardMapper.updateById(model);
+                }else{
                     MemberCard memberCard = new MemberCard();
                     memberCard.setCreateDate(new Date());
+                    memberCard.setStatus(Constants.ONE);
                     memberCard.setMemberId(member.getId());
                     memberCard.setIsdeleted(Constants.ZERO);
+                    memberCard.setCardType(HKConstants.CARD_TYPE.NORMAL.getKey());
+                    memberCard.setHkStatus(Constants.ZERO);
+                    memberCard.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                    memberCard.setType(Constants.TWO);
                     memberCard.setCode(id);
                     memberCardList.add(memberCard);
                 }
+            }
+            if(memberCardList.size()>0){
                 memberCardMapper.insertBatchSomeColumn(memberCardList);
             }
         }
     }
-    /**
-     * //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-     * @param member
-     */
-    private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) {
-        //鍒犻櫎鎵�鏈夎�佺殑鎺堟潈淇℃伅
-        if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
-            empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
-                    .eq(Empower::getMemberId,member.getId())
-                    .set(Empower::getIsdeleted,Constants.ONE)
-                    .set(Empower::getSendStatus,Constants.ZERO));
-        }
-
-//        empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
-//                .eq(Empower::getMemberId,member.getId())
-//                );
-        if(doorIds==null || doorIds.size() == 0){
-          return;
-        }
-        if(StringUtils.isBlank(member.getFaceImg())){
-          return;
-        }
-        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
-            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
-            List<Empower> list = new ArrayList<>();
-            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
-            if(deviceList == null || deviceList.size() == 0){
-                return;
-            }
-            for (Device deviceRole:deviceList) {
-                Empower model = new Empower();
-                model.setCreateDate(new Date());
-                model.setMemberId(member.getId());
-                model.setIsdeleted(Constants.ZERO);
-                model.setDeviceId(deviceRole.getId());
-                model.setSendStatus(Constants.ZERO);
-                model.setStartTime(startTime);
-                model.setEndTime(endTime);
-                //榛樿缁欎簬铏氭嫙鍗�
-                model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
-                model.setSendType(Constants.ZERO);
-                list.add(model);
-            }
-            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
-            empowerMapper.insertBatchSomeColumn(list);
-        }
-    }
-
     private   List<Integer>  getRoleIdByParam(Integer[] param, Member member) {
         //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁
         if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
@@ -994,11 +977,12 @@
         update.setEditDate(new Date());
         update.setStartTime(param.getValidStartTime());
         update.setEndTime(param.getValidEndTime());
+        update.setHkStatus(Constants.ZERO);//鍋氫竴閬嶆洿鏂伴�昏緫
+        update.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         memberMapper.updateById(update);
-        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-        dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
-
     }
+
+
     @Override
     public void parkCarAuthor(CarAuthorRequest param){
         if(Objects.isNull(param)
@@ -1031,6 +1015,7 @@
                 parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
                 parkBook.setMemberId(member.getId());
                 parkBook.setHkStatus(Constants.ZERO);
+                parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 parkBookList.add(parkBook);
             }
             parkBookMapper.insertBatchSomeColumn(parkBookList);
@@ -1060,6 +1045,7 @@
                     i.setStatus(param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass);
                     i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss"));
                     i.setHkStatus(Constants.ZERO);
+                    i.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     visitsMapper.updateById(i);
                 });
             }

--
Gitblit v1.9.3