From 9705d3daafae8576c679b91b43c5fc5950cb13ba Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 21 十二月 2023 14:35:26 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java |   89 ++++++++++++++++++++++++++++++--------------
 1 files changed, 60 insertions(+), 29 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 f38dd29..bfd400e 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;
             }
         }
@@ -398,7 +420,7 @@
         try{
             String erpAccessKey = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_KEY).getCode();
             String erpAccessSecret = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_SECRET).getCode();
-            if(!accessKey.equals(erpAccessKey)||!erpAccessSecret.equals(accessSecret)){
+            if(!(accessKey.equals(erpAccessKey)&&erpAccessSecret.equals(accessSecret))){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绉橀挜鍖归厤澶辫触");
             }
             JwtPayLoad payLoad = new JwtPayLoad(erpAccessKey+"-"+erpAccessSecret);
@@ -406,8 +428,9 @@
             RedisUtil.addObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,token,Constants.RedisKeys.EXPIRE_TIME);
             result.setToken(token);
             result.setExpireTime(Constants.RedisKeys.EXPIRE_TIME);
-        }catch (Exception e){
-
+            return result;
+        }catch (BusinessException e ){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),e.getMessage());
         }finally {
             Map<String,String> param = new HashMap<>();
             param.put("accessKey",accessKey);
@@ -415,8 +438,6 @@
             saveInterfaceLog(param,"/visitBiz/accesstoken",JSONObject.toJSONString(result),Constants.ZERO);
         }
 
-
-        return result;
     }
 
     /**
@@ -518,12 +539,19 @@
 
             queryWrapper.selectAll(VisitEvent.class);
             queryWrapper.selectAs(Visits::getName, VisitEventListResponse::getVisitorName);
+            queryWrapper.selectAs(VisitEvent::getBeVisitedPersonName, VisitEventListResponse::getBeVisitedUserName);
+            queryWrapper.selectAs(VisitEvent::getBeVisitedPersonOrg, VisitEventListResponse::getBeVisitedUserOrg);
+            queryWrapper.selectAs(VisitEvent::getSex, VisitEventListResponse::getVisitorSex);
+            queryWrapper.selectAs(VisitEvent::getVisitorWorkUint, VisitEventListResponse::getVisitorWorkUint);
+
             queryWrapper.leftJoin(Visits.class,Visits::getId,VisitEvent::getVisitorId);
 
             if(!Objects.isNull(visitListRequest)){
                 queryWrapper.eq(!Objects.isNull(visitListRequest.getEventId()),VisitEvent::getEventId, visitListRequest.getEventId());
                 queryWrapper.like(StringUtils.isNotBlank(visitListRequest.getVisitorName()),Visits::getName, visitListRequest.getVisitorName());
-                queryWrapper.eq(StringUtils.isNotBlank(visitListRequest.getIdNo()),VisitEvent::getIdNo, visitListRequest.getIdNo());
+
+                queryWrapper.eq(StringUtils.isNotBlank(visitListRequest.getIdNo()),Visits::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, visitListRequest.getIdNo()) );
+
                 queryWrapper.eq(StringUtils.isNotBlank(visitListRequest.getBeVisitedPersonId()),VisitEvent::getBeVisitedPersonId, visitListRequest.getBeVisitedPersonId());
                 queryWrapper.eq(StringUtils.isNotBlank(visitListRequest.getBeVisitedPersonOrgId()),VisitEvent::getBeVisitedPersonOrgId, visitListRequest.getBeVisitedPersonOrgId());
                 queryWrapper.like(StringUtils.isNotBlank(visitListRequest.getVisitorWorkUint()),VisitEvent::getVisitorWorkUint, visitListRequest.getVisitorWorkUint());
@@ -561,11 +589,11 @@
             Utils.MP.blankToNull(doorEventListRequest);
             queryWrapper.selectAs(DeviceEvent::getEventId,DoorEventListResponse::getEventId);
             queryWrapper.selectAs(DeviceEvent::getEventType,DoorEventListResponse::getEventType);
-            queryWrapper.selectAs(DeviceEvent::getSex,DoorEventListResponse::getSex);
+            queryWrapper.selectAs(Member::getSex,DoorEventListResponse::getSex);
             queryWrapper.selectAs(DeviceEvent::getSrcName,DoorEventListResponse::getSrcName);
             queryWrapper.selectAs(DeviceEvent::getSrcType,DoorEventListResponse::getSrcType);
-            queryWrapper.selectAs(DeviceEvent::getIdcardDecode,DoorEventListResponse::getIdcardNo);
-            queryWrapper.selectAs(DeviceEvent::getName,DoorEventListResponse::getName);
+            queryWrapper.selectAs(Member::getIdcardDecode,DoorEventListResponse::getIdcardNo);
+            queryWrapper.selectAs(Member::getName,DoorEventListResponse::getName);
             queryWrapper.selectAs(DeviceEvent::getUserType,DoorEventListResponse::getType);
             queryWrapper.selectAs(DeviceEvent::getExtEventInOut,DoorEventListResponse::getEventInOut);
             queryWrapper.selectAs(DeviceEvent::getExtAccessChannel,DoorEventListResponse::getExtAccessChannel);
@@ -577,14 +605,14 @@
 
             if(!Objects.isNull(doorEventListRequest)){
                 queryWrapper.eq(!Objects.isNull(doorEventListRequest.getEventId()),DeviceEvent::getEventId, doorEventListRequest.getEventId());
-                queryWrapper.like(StringUtils.isNotBlank(doorEventListRequest.getName()),DeviceEvent::getName, doorEventListRequest.getName());
+                queryWrapper.like(StringUtils.isNotBlank(doorEventListRequest.getName()),Member::getName, doorEventListRequest.getName());
                 if(StringUtils.isNotBlank(doorEventListRequest.getIdNo())){
                     //杩涜鍔犲瘑
                     String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,doorEventListRequest.getIdNo());
-                    queryWrapper.eq(DeviceEvent::getIdNum, encryptIdNo);
+                    queryWrapper.eq(Member::getIdcardNo, encryptIdNo);
                 }
-                queryWrapper.ge(StringUtils.isNotBlank(doorEventListRequest.getStartTime()),DeviceEvent::getHappenTime, doorEventListRequest.getStartTime());
-                queryWrapper.le(StringUtils.isNotBlank(doorEventListRequest.getEndTime()),DeviceEvent::getHappenTime, doorEventListRequest.getEndTime());
+                queryWrapper.ge(StringUtils.isNotBlank(doorEventListRequest.getStartTime()),DeviceEvent::getCreateDate, doorEventListRequest.getStartTime());
+                queryWrapper.le(StringUtils.isNotBlank(doorEventListRequest.getEndTime()),DeviceEvent::getCreateDate, doorEventListRequest.getEndTime());
                 for(PageWrap.SortData sortData: param.getSorts()) {
                     if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                         queryWrapper.orderByDesc(sortData.getProperty());
@@ -615,7 +643,8 @@
             Utils.MP.blankToNull(carEventListRequest);
             queryWrapper.selectAs(CarEvent::getEventId,CarEventListResponse::getEventId);
             queryWrapper.selectAs(CarEvent::getEventType,CarEventListResponse::getEventType);
-            queryWrapper.selectAs(CarEvent::getInoutType,CarEventListResponse::getEventType);
+            queryWrapper.selectAs(CarEvent::getCreateDate,CarEventListResponse::getCreateTime);
+            queryWrapper.selectAs(CarEvent::getInoutType,CarEventListResponse::getInoutType);
             queryWrapper.selectAs(CarEvent::getAlarmCar,CarEventListResponse::getAlarmCar);
             queryWrapper.selectAs(CarEvent::getCarAttributeName,CarEventListResponse::getCarAttributeName);
             queryWrapper.selectAs(CarEvent::getCardNo,CarEventListResponse::getCardNo);
@@ -639,8 +668,8 @@
                 queryWrapper.eq(StringUtils.isNotBlank(carEventListRequest.getParkId()),CarEvent::getParkIndex, carEventListRequest.getParkId());
                 queryWrapper.like(StringUtils.isNotBlank(carEventListRequest.getParkName()),CarEvent::getParkName, carEventListRequest.getParkName());
                 queryWrapper.eq(StringUtils.isNotBlank(carEventListRequest.getPlateNo()),CarEvent::getPlateNos, carEventListRequest.getPlateNo());
-                queryWrapper.ge(StringUtils.isNotBlank(carEventListRequest.getStartTime()),CarEvent::getHappenTime, carEventListRequest.getStartTime());
-                queryWrapper.le(StringUtils.isNotBlank(carEventListRequest.getEndTime()),CarEvent::getHappenTime, carEventListRequest.getEndTime());
+                queryWrapper.ge(StringUtils.isNotBlank(carEventListRequest.getStartTime()),CarEvent::getCreateDate, carEventListRequest.getStartTime());
+                queryWrapper.le(StringUtils.isNotBlank(carEventListRequest.getEndTime()),CarEvent::getCreateDate, carEventListRequest.getEndTime());
                 for(PageWrap.SortData sortData: param.getSorts()) {
                     if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                         queryWrapper.orderByDesc(sortData.getProperty());
@@ -814,10 +843,13 @@
      */
     private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) {
         //鍒犻櫎鎵�鏈夎�佺殑鎺堟潈淇℃伅
-        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+//        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())
-                .set(Empower::getIsdeleted,Constants.ONE)
-                .set(Empower::getSendStatus,Constants.ZERO)
                 );
         if(doorIds==null || doorIds.size() == 0){
           return;
@@ -949,8 +981,7 @@
         try{
             if(Objects.isNull(param)
                     ||Objects.isNull(param.getId())
-                    ||Objects.isNull(param.getStatus())
-            ){
+                    ||Objects.isNull(param.getStatus())){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
             if(!(param.getStatus()==Constants.ZERO||param.getStatus()==Constants.ONE)){

--
Gitblit v1.9.3