njs 1 ano atrás
pai
commit
129025b3f1

+ 178 - 13
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -375,7 +375,7 @@ public class AnalysisDiyCustomerComponent {
             }
             for (int i = 1; i < co; i++) {
                 try {
-                    bzJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.STAFF,i+"")));
+                    bzJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.BZ,i+"")));
                 } catch (Exception e) {
                     log.error("循环获取3.7经销商倍增人员错误!第"+i+"页");
                     customerAccessTokenUtil.reSetToken();
@@ -386,13 +386,13 @@ public class AnalysisDiyCustomerComponent {
                     bz.addAll(bzJson.getJSONArray("data"));
                 }
             }
-            success += buildSysUserStaff(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
+            success += buildSysUserBz(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
             total += bz.size();
         }else{
             code = bzJson.getInteger("code");
             if(code==0){
                 bz.addAll(bzJson.getJSONArray("data"));
-                success += buildSysUserStaff(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
+                success += buildSysUserBz(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
                 total += bz.size();
             }
         }
@@ -1109,22 +1109,192 @@ public class AnalysisDiyCustomerComponent {
 
     /***
      *
-     * 3.6/3.7经销商经销人员门店
+     * 3.6
      * **/
     public Integer buildSysUserStaff(JSONArray STAFF, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap,Integer isManager){
         //JSONArray jsonArray = json.getJSONArray("data");
         int count = 0;
         List<String > interfaceList8=new ArrayList<>();
-        List<String > interfaceList10=new ArrayList<>();
         for(int x =0;x<STAFF.size();x++){
             JSONObject jsonObject = STAFF.getJSONObject(x);
             String loginName = jsonObject.getString("userid");
             if(loginName !=null && !"".equals(loginName)){
-                if(isManager==8){
                     interfaceList8.add(loginName);
+            }
+        }
+        for(int i =0;i<STAFF.size();i++){
+            JSONObject jo = STAFF.getJSONObject(i);
+
+            try {
+                String userNo = jo.getString("userNo");
+                String name = jo.getString("name");
+                String userid = jo.getString("userid");
+                String customerCode = jo.getString("depCode");
+
+
+                /*企业微信中成员启用状态。1表示启用的成员,0表示被禁用*/
+                /*if(enable==null||enable.trim().equals("0")){
+                    continue;
+                }
+                *//*企业微信中人员激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。*//*
+                if(status==null || !status.trim().equals("1")){
+                    continue;
+                }
+                *//*人员信息是否已更新入企业微信。true:更新成功false:更新失败*//*
+                if(!isSync){
+                    continue;
+                }
+                *//*人员信息是否被标记删除true:删除,false:未删除*//*
+                if(isDelete){
+                    continue;
+                }*/
+                if(userid==null||userid.trim().equals("")){
+                    continue;
+                }
+                loginNameSet = sysUserService.selectAllUserLoginName();
+                diyNameSet = sysUserService.selectDiyUserLoginName();
+                loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
+                if (!loginNameSet.contains(userid.toUpperCase().trim())) {
+
+                    /** =============用户基本信息构建 start===============*/
+                    SysUser user = new SysUser();
+                    user.setCompanyId(1L);
+                    user.setDeptId(deptId);
+                    user.setLoginName(userid);
+                    user.setUserName(jo.getString("name"));
+                    user.setPhonenumber(jo.getString("mobile"));
+                    user.setRoleIds(roleStoreIds);
+                    user.setPassword(user.getLoginName());
+                    user.setSalt(ShiroSaltUtil.randomSalt());
+                    user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+
+
+                    /** =============用户基本信息构建 end===============*/
+
+
+                    /**======== 构建diy用户扩展信息表 start===============*/
+                    SysUserExt userExt = new SysUserExt();
+                    userExt.setSalesLevel("customer_level");
+
+                    userExt.setIdentity(UserIdentityUtil.UI_DIY);// 1=diy,2=ebr,3=all
+
+                    userExt.setCustomerCode(jo.getString("depCode"));
+                    userExt.setIsCustomerManager(isManager + "");
+                    userExt.setSapEmployeeId(userNo);
+
+                    userExt.setPostName("DIY经销商");
+                    String orgCode = jo.getString("depCode");
+                    if(cusMap.containsKey(orgCode)){
+                        Customers c = cusMap.get(orgCode);
+                        userExt.setOrgCode(c.getChainsCode());
+                        userExt.setOrgName(c.getChainsName());
+                    }else{
+                        userExt.setOrgCode(orgCode);
+                    }
+
+//                    /**======== 构建diy用户wx信息表 start===============*/
+//                    WxQyUser wxQyUser = new WxQyUser();
+//                    wxQyUser.setUserid(jo.getString("userid"));
+//                    wxQyUser.setMobile(jo.getString("mobile"));
+                    user.setSysUserExt(userExt);
+                    insertUserAndExt(user);
+                    count++;
+                    loginNameSet.add(userid);
+                    diyNameSet.add(userid);
                 }else{
-                    interfaceList10.add(loginName);
+                    /*已经存在的,需要先清空职位,更新职位
+                    (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
+                    SysUser user = sysUserService.selectUserByLoginName(userid);
+                    if(("0").equals(user.getIsSync())){
+                        //每个接口查询俩次是否有重复开始查询一次,快结束查一次
+                        //查询该用户是否存在该接口返回中
+                        sysUserService.insertUserRole(user.getUserId(), roleStoreIds[0]);
+                        if (user.getSysUserExt().getIsCustomerManager() == null) {
+                            user.getSysUserExt().setIsCustomerManager(isManager + "");
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "") ||
+                                !user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
+                            if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "")) {
+                                /*更新职位*/
+                                user.getSysUserExt().setIsCustomerManager(user.getSysUserExt().getIsCustomerManager() + "," + isManager);
+                            }
+                            if (!user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
+                                /*更新经销商code*/
+                                if (cusMap.containsKey(customerCode)) {
+                                    Customers c = cusMap.get(customerCode);
+                                    user.getSysUserExt().setOrgCode(c.getChainsCode());
+                                    user.getSysUserExt().setOrgName(c.getChainsName());
+                                } else {
+                                    user.getSysUserExt().setOrgCode(customerCode);
+                                }
+                            }
+                            log.info("updateSysUserExt" + customerCode);
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        /*解决名称不一样的情况*/
+                        if (!user.getUserName().equals(name)) {
+                            user.setUserName(name);
+                            sysUserService.updateUserInfo(user);
+                        }
+
+
+                    }
                 }
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+                SyncFailDetail syncFailDetail = new SyncFailDetail();
+                syncFailDetail.setPackageId(packageId);
+                syncFailDetail.setFailReason(e.getMessage());
+                syncFailDetail.setDataJson(jo.toJSONString());
+                syncFailDetail.setFailLevel("1");
+                syncFailDetail.setExceptionType(e.getClass().getSimpleName());
+                failDetails.add(syncFailDetail);
+            }
+        }
+        List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
+        List<String > collect = loginNames.stream().filter(item -> !interfaceList8.contains(item)).collect(Collectors.toList());
+
+        if (collect.size() > 0) {
+            for (String login:collect
+            ) {
+                SysUser u = sysUserService.selectUserByLoginName(login);
+                if(("0").equals(u.getIsSync())){
+                    String CustomerManager= u.getSysUserExt().getIsCustomerManager();
+                    String[] manager=CustomerManager.split(",");
+                    if(manager.length >1){
+                        List<String> resultList = new ArrayList<>(manager.length);
+                        Collections.addAll(resultList,manager);
+                        Object i=isManager;
+                        resultList.remove(i.toString());
+                        String IsManager = resultList.stream().map(String::valueOf).collect(Collectors.joining(","));
+                        u.getSysUserExt().setIsCustomerManager(IsManager);
+                        sysUserExtMapper.updateSysUserExt(u.getSysUserExt());
+                    }else{
+                        u.setQuit("2");
+                        sysUserService.updateUserInfo(u);
+                    }
+                }
+            }
+        }
+
+        return count;
+    }
+
+    /***
+     *
+     *3.7经销商经销人员门店
+     * **/
+    public Integer buildSysUserBz(JSONArray STAFF, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap,Integer isManager){
+        //JSONArray jsonArray = json.getJSONArray("data");
+        int count = 0;
+        List<String > interfaceList10=new ArrayList<>();
+        for(int x =0;x<STAFF.size();x++){
+            JSONObject jsonObject = STAFF.getJSONObject(x);
+            String loginName = jsonObject.getString("userid");
+            if(loginName !=null && !"".equals(loginName)){
+                    interfaceList10.add(loginName);
             }
         }
         for(int i =0;i<STAFF.size();i++){
@@ -1259,12 +1429,7 @@ public class AnalysisDiyCustomerComponent {
             }
         }
         List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
-        List<String > collect=new ArrayList<>();
-        if(isManager ==8){
-            collect = loginNames.stream().filter(item -> !interfaceList8.contains(item)).collect(Collectors.toList());
-        }else{
-            collect = loginNames.stream().filter(item -> !interfaceList10.contains(item)).collect(Collectors.toList());
-        }
+        List<String > collect=loginNames.stream().filter(item -> !interfaceList10.contains(item)).collect(Collectors.toList());
         if (collect.size() > 0) {
             for (String login:collect
             ) {