lishuai
2023-12-26 2e7ba2bc0fbefa6ee0b44eaf1990a493795efe4a
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -110,7 +110,7 @@
    public  int  initHkConfig(){
        ErpConstants.approveUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_APPROVE_URL).getCode();
        ErpConstants.orgListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_ORGLIST_URL).getCode();
        ErpConstants.userListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERSTATUS_RL).getCode();
        ErpConstants.userListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERLIST_URL).getCode();
        ErpConstants.userStatusUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERSTATUS_RL).getCode();
        return  0;
    }
@@ -177,13 +177,15 @@
                    //如果已删除,加入删除集合中
                    delIds.add(company.getId());
                    continue;
                }else{
                    company.setIsdeleted(Constants.ZERO);
                }
                updateList.add(addUpdateCompanyModel(respone,company,date));
            }
        }
        if(allList!=null && allList.size()>0){
            for(Company  c : allList){
                if(isCompanyDeleted(c,list)){
                if(!isCompanyDeleted(c,list)){
                    delIds.add(c.getId());
                }
            }
@@ -292,10 +294,11 @@
                        .set(Member::getHkStatus,Constants.ZERO)
                        .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds));
            }
            return "同步数据:新增【"+addList.size()+"】条,更新【"+updateList.size()+"】条,删除【"+delIds.size()+"】条";
        }else{
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "同步ERP数据为空!");
        }
        return  null;
    }
    public void dealRoleEmpower(Member member,Date startTime , Date endTime){
@@ -309,6 +312,13 @@
    private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList) {
        Date date = new Date();
        for(ErpUserListResponse response : list){
            Company company =  new Company();
            if(StringUtils.isNotBlank(response.getOrgId())){
                company = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,response.getOrgId()).last("limit 1"));
                if(Objects.isNull(company)){
                    continue;
                }
            }
            //根据 erpId 查询用户信息,判断是新增还是更新
            Member member = findUserByERPId(allList,response.getId());
            if(member == null){
@@ -317,7 +327,7 @@
                    continue;
                }
                //封装新增组织对象数据
                addList.add(getAddMemberModel(response,date));
                addList.add(getAddMemberModel(response,date,company));
            }else{
                //如果是更新
                if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){
@@ -327,20 +337,19 @@
//                    delIds.add(member.getId());
                    continue;
                }
                updateList.add(addUpdateMemberModel(response,member,date));
                updateList.add(addUpdateMemberModel(response,member,date,company));
            }
        }
        if(allList!=null && allList.size()>0){
            for(Member  c : allList){
                if(isUserDeleted(c,list)){
                if(!Constants.equalsInteger(c.getIsdeleted(),Constants.ONE) &&  !isUserDeleted(c,list)){
                    delList.add(c);
//                    delIds.add(c.getId());
                }
            }
        }
    }
    private Member getAddMemberModel(ErpUserListResponse param, Date date) {
    private Member getAddMemberModel(ErpUserListResponse param, Date date,Company company) {
        Member member = new Member();
        BeanUtils.copyProperties(param,member);
        member.setCreateDate(new Date());
@@ -349,26 +358,31 @@
        member.setErpDate(new Date());
        member.setErpId(param.getId());
        member.setFsStatus(Constants.ZERO);
        member.setStatus(param.getStatus());
        member.setType(Constants.memberType.internal);
        String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
        member.setIdcardNo(encryptIdNo);
        member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
        member.setErpOrgId(param.getOrgId());
        member.setHkStatus(Constants.ZERO);
        member.setRoleIds(param.getRoleIds());
        member.setCompanyId(Objects.isNull(company)?null:company.getId());
        member.setErpOrgId(param.getOrgId());
        return  member;
    }
    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date) {
    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date,Company company) {
        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.setStatus(param.getStatus());
        member.setErpDate(new Date());
        member.setHkStatus(Constants.ZERO);
        member.setRoleIds(param.getRoleIds());
        member.setCompanyId(Objects.isNull(company)?null:company.getId());
        member.setErpOrgId(param.getOrgId());
        return  member;
    }
@@ -424,8 +438,8 @@
            result.setToken(token);
            result.setExpireTime(Constants.RedisKeys.EXPIRE_TIME);
            return result;
        }catch (BusinessException e ){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),e.getMessage());
        }catch (BusinessException e){
            throw e;
        }finally {
            Map<String,String> param = new HashMap<>();
            param.put("accessKey",accessKey);
@@ -478,8 +492,8 @@
                   }
               }
           }
       }catch (Exception e){
           e.printStackTrace();
       }catch (BusinessException e){
            throw e;
       }finally {
           saveInterfaceLog(param,"/visitBiz/resource/role/list",JSONObject.toJSONString(result),Constants.ZERO);
       }
@@ -510,8 +524,8 @@
                    result.add(parkListResponse);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/park/list",JSONObject.toJSONString(result),Constants.ZERO);
        }
@@ -565,8 +579,8 @@
            }
            IPage<VisitEventListResponse> pageData = visitEventJoinMapper.selectJoinPage(page, VisitEventListResponse.class,queryWrapper);
            result = PageData.from(pageData);
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/visit/list",JSONObject.toJSONString(result),Constants.ZERO);
        }
@@ -619,8 +633,8 @@
            IPage<DoorEventListResponse> pageData = deviceEventJoinMapper.selectJoinPage(page, DoorEventListResponse.class,queryWrapper);
            result = PageData.from(pageData);
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/doorEvent/list",JSONObject.toJSONString(result),Constants.ZERO);
        }
@@ -683,8 +697,8 @@
                    i.setVehiclePicUrl(null);
                }
            });
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/carEventList",JSONObject.toJSONString(result),Constants.ZERO);
        }
@@ -708,9 +722,15 @@
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
            Company company = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,param.getId()).last("limit 1"));
            Company parentCompany = new Company();
            if(StringUtils.isNotBlank(param.getParentId())){
                parentCompany = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,param.getParentId()).last("limit 1"));
                if(Objects.isNull(parentCompany)){
                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到上级组织数据");
                }
            }
            if(Objects.isNull(company)){
                company = new Company();
//                BeanUtils.copyProperties(param,company);
                company.setId(null);
                company.setCreateDate(new Date());
                company.setHkStatus(Constants.ZERO);
@@ -718,6 +738,7 @@
                company.setErpDate(new Date());
                company.setErpId(param.getId());
                company.setErpParentId(param.getParentId());
                company.setParentId(Objects.isNull(parentCompany)?null:parentCompany.getId());
                company.setFsStatus(Constants.ZERO);
                company.setType(Constants.ONE);
                company.setLinkName(param.getLinkName());
@@ -731,13 +752,14 @@
                company.setHkStatus(Constants.ZERO);
                company.setErpDate(new Date());
                company.setErpParentId(param.getParentId());
                company.setParentId(Objects.isNull(parentCompany)?null:parentCompany.getId());
                company.setLinkName(param.getLinkName());
                company.setLinkPhone(param.getLinkPhone());
                companyMapper.updateById(company);
                //TODO 海康数据更新
            }
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/orgUpdate",null,Constants.ZERO);
        }
@@ -762,6 +784,10 @@
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getId()).last("limit 1"));
            Company company = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,param.getOrgId()).last("limit 1"));
            if(Objects.isNull(company)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到组织信息");
            }
            List<Integer> doorIds = null;
              if(Objects.isNull(member)){
                member = new Member();
@@ -802,8 +828,8 @@
            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
            //添加人员卡片数据
            dealMemberCard(member,param);
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/userUpdate",null,Constants.ZERO);
        }
@@ -993,8 +1019,8 @@
                    visitsMapper.updateById(i);
                });
            }
        }catch (Exception e){
            e.printStackTrace();
        }catch (BusinessException e){
            throw e;
        }finally {
            saveInterfaceLog(param,"/visitBiz/resource/approveApply",null,Constants.ZERO);
        }