Browse Source

随身邦提供接口文档同步的用户要保持唯一性,人员多岗,换岗也需要去掉岗位编码,新岗增加新岗位

njs 2 years ago
parent
commit
f8cb825fe3

+ 19 - 3
suishenbang-admin/src/test/java/com/qxp/myTest.java

@@ -9,17 +9,33 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import java.util.Map;
+import java.util.*;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes=DgtlyApplication.class)
 public class myTest {
 
-    @Autowired
-    private CustomersMapper customersMapper;
+
 
     @Test
     public void test(){
+        String CustomerManager="0,1,2,3";
+        String[] manager = CustomerManager.split(",");
+        List<String> resultList = new ArrayList<>(manager.length);
+
+        Collections.addAll(resultList,manager);
+        //List<String> resultList = new ArrayList<>(manager.length);
+/*
+        for (String s : manager) {
+
+            resultList.add(s);
+
+        }*/
+        int i=2;
+        Object x=i;
+        resultList.remove(x.toString());
+        System.out.println(resultList);
+
 
     }
 

+ 7 - 0
suishenbang-quartz/src/main/java/com/dgtly/quartz/task/RyTask.java

@@ -101,4 +101,11 @@ public class RyTask
     public void sendmailUnionUser()throws Exception{
         sysUserOrderAuthorService.sendmailUnionUser();
     }
+
+    /**
+     * 有道接口经销商用户账号重复进行业务处理
+     * **/
+    public void unionCustomerUser(){
+        sysUserOrderAuthorService.unionCustomerUser();
+    }
 }

+ 411 - 242
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -22,7 +22,6 @@ import com.dgtly.system.mapper.SysUserMapper;
 import com.dgtly.system.service.IAssRelcustomerinfoService;
 import com.dgtly.system.service.ISysConfigService;
 import com.dgtly.system.service.impl.SysUserServiceImpl;
-import com.dgtly.wxportal.domain.WxQyUser;
 import com.dgtly.wxportal.mapper.WxQyUserMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,7 +67,7 @@ public class AnalysisDiyCustomerComponent {
     private Long[] roleCwDiyIds;
     private Long[] roleFXDiyIds;  //3.4接口,同步分销用户
     private Long[] roleStoreIds; //3.6门店经销商
-     /**
+    /**
      * 获取并解析DIY经销商用户
      * 因为经销商用户并不涉及用信息更新等方面 所以只插入不更新
      * @return
@@ -130,7 +129,9 @@ public class AnalysisDiyCustomerComponent {
         Map<String,Customers> chainsMap = customersMapper.selectCustomerMapByChainsCode();
         int code = mjson.getInteger("code");
         if(code==0){
-            success+=buildSysUser(mjson,loginNameSet,1,failDetails,packageId,chainsMap);
+            JSONArray MANAGER = new JSONArray();
+            MANAGER.addAll(mjson.getJSONArray("userlist"));
+            success+=buildSysUser(MANAGER,loginNameSet,1,failDetails,packageId,chainsMap);
             total+=mjson.getJSONArray("userlist").size();
         }
 
@@ -148,7 +149,9 @@ public class AnalysisDiyCustomerComponent {
         JSONObject gjson = JSONObject.parseObject(guideJson);
         code = gjson.getInteger("code");
         if(code==0){
-            success+=buildSysUser(gjson,loginNameSet,0,failDetails,packageId,codeMap);
+            JSONArray STOREGUIDE = new JSONArray();
+            STOREGUIDE.addAll(gjson.getJSONArray("userlist"));
+            success+=buildSysUser(STOREGUIDE,loginNameSet,0,failDetails,packageId,codeMap);
             total+=gjson.getJSONArray("userlist").size();
         }
 
@@ -166,6 +169,7 @@ public class AnalysisDiyCustomerComponent {
 
         JSONObject fxJson = JSONObject.parseObject(fxResellerJson);
         Integer fxCount = fxJson.getInteger("count");
+        JSONArray jsonArray = new JSONArray();
         if(fxCount>100){
             int co = 0;
             if (fxCount%100 != 0){
@@ -183,21 +187,24 @@ public class AnalysisDiyCustomerComponent {
                 }
                 code = fxJson.getInteger("code");
                 if(code==0){
-                    success+=buildSysUserFx(fxJson,loginNameSet,6,failDetails,packageId,chainsMap);
-                    total+=fxJson.getJSONArray("userlist").size();
+                    jsonArray.addAll( fxJson.getJSONArray("userlist"));
                 }
             }
+            success+=buildSysUserFx(jsonArray,loginNameSet,6,failDetails,packageId,chainsMap);
+            total+=jsonArray.size();
+
         }else{
             code = fxJson.getInteger("code");
             if(code==0){
-                success+=buildSysUserFx(fxJson,loginNameSet,6,failDetails,packageId,chainsMap);
-                total+=fxJson.getJSONArray("userlist").size();
+                jsonArray.addAll( fxJson.getJSONArray("userlist"));
+                success+=buildSysUserFx(jsonArray,loginNameSet,6,failDetails,packageId,chainsMap);
+                total+=jsonArray.size();
             }
         }
         log.info("3.4、获取经销商分销业务员人员列表(分页)结束: <========================");
         //3.4、获取经销商分销业务员人员列表(分页)结束: <========================
 
-
+//财务3.2
         String financeJson ="";
         try{
             financeJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.FINANCE,1+""));
@@ -209,6 +216,7 @@ public class AnalysisDiyCustomerComponent {
 
         JSONObject fjson = JSONObject.parseObject(financeJson);
         Integer fcount = fjson.getInteger("count");
+        JSONArray FINANCE = new JSONArray();
         if(fcount>100){
             int co = 0;
             if (fcount%100 != 0){
@@ -226,19 +234,21 @@ public class AnalysisDiyCustomerComponent {
                 }
                 code = fjson.getInteger("code");
                 if(code==0){
-                    success+=buildSysUser(fjson,loginNameSet,2,failDetails,packageId,chainsMap);
-                    total+=fjson.getJSONArray("userlist").size();
+                    FINANCE.addAll(fjson.getJSONArray("userlist"));
                 }
             }
+            success+=buildSysUser(FINANCE,loginNameSet,2,failDetails,packageId,chainsMap);
+            total+=FINANCE.size();
         }else{
             code = fjson.getInteger("code");
             if(code==0){
-                success+=buildSysUser(fjson,loginNameSet,2,failDetails,packageId,chainsMap);
-                total+=fjson.getJSONArray("userlist").size();
+                FINANCE.addAll(fjson.getJSONArray("userlist"));
+                success+=buildSysUser(FINANCE,loginNameSet,2,failDetails,packageId,chainsMap);
+                total+=FINANCE.size();
             }
         }
 
-
+//3.3经销商仓管人员
         String warehouseJson ="";
         try{
             warehouseJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.WAREHOUSE,1+""));
@@ -250,6 +260,7 @@ public class AnalysisDiyCustomerComponent {
 
         JSONObject wjson = JSONObject.parseObject(warehouseJson);
         Integer wcount = wjson.getInteger("count");
+        JSONArray WAREHOUSE = new JSONArray();
         if(wcount>100){
             int co = 0;
             if (wcount%100 != 0){
@@ -257,7 +268,6 @@ public class AnalysisDiyCustomerComponent {
             }else{
                 co = (wcount/100) +1;
             }
-
             for (int i = 1; i < co; i++) {
                 try {
                     wjson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.WAREHOUSE,i+"")));
@@ -268,33 +278,32 @@ public class AnalysisDiyCustomerComponent {
                 }
                 code = wjson.getInteger("code");
                 if(code==0){
-                    success+=buildSysUser(wjson,loginNameSet,3,failDetails,packageId,chainsMap);
-                    total+=wjson.getJSONArray("userlist").size();
+                    WAREHOUSE.addAll(wjson.getJSONArray("userlist"));
                 }
             }
+            success+=buildSysUser(WAREHOUSE,loginNameSet,3,failDetails,packageId,chainsMap);
+            total+=WAREHOUSE.size();
         }else{
             code = wjson.getInteger("code");
             if(code==0){
-                success+=buildSysUser(wjson,loginNameSet,3,failDetails,packageId,chainsMap);
-                total+=wjson.getJSONArray("userlist").size();
+                WAREHOUSE.addAll(wjson.getJSONArray("userlist"));
+                success+=buildSysUser(WAREHOUSE,loginNameSet,3,failDetails,packageId,chainsMap);
+                total+=WAREHOUSE.size();
             }
         }
 
         //3.6经销商经销人员列表
+        String staffListJson ="";
+        JSONArray STAFF = new JSONArray();
         try {
-            JSONObject bossListJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.STAFF, 1+"")));
-            int codeStaff = bossListJson.getInteger("code");
-            if (codeStaff == 0) {
-                success += buildSysUserStaff(bossListJson, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
-                total += bossListJson.getJSONArray("data").size();
-            }
+            staffListJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.STAFF, 1+""));
         } catch (Exception e) {
             log.error("3.6经销商经销人员列表!");
             customerAccessTokenUtil.reSetToken();
             throw e;
         }
 
-        JSONObject json = JSONObject.parseObject(financeJson);
+        JSONObject json = JSONObject.parseObject(staffListJson);
         Integer Staffcount = json.getInteger("count");
         if(Staffcount>100){
             int co = 0;
@@ -313,15 +322,17 @@ public class AnalysisDiyCustomerComponent {
                 }
                 code = json.getInteger("code");
                 if(code==0){
-                    success += buildSysUserStaff(json, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
-                    total += json.getJSONArray("data").size();
+                    STAFF.addAll(json.getJSONArray("data"));
                 }
             }
+            success += buildSysUserStaff(STAFF, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
+            total += STAFF.size();
         }else{
             code = json.getInteger("code");
             if(code==0){
-                success += buildSysUserStaff(json, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
-                total += json.getJSONArray("data").size();
+                STAFF.addAll(json.getJSONArray("data"));
+                success += buildSysUserStaff(STAFF, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
+                total += STAFF.size();
             }
         }
 
@@ -433,7 +444,7 @@ public class AnalysisDiyCustomerComponent {
         Map<String,Customers> chainsMap = customersMapper.selectCustomerMapByChainsCode();
 
         try {
-           // JSONObject bossListJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.BOSSLIST, null)));
+            // JSONObject bossListJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.BOSSLIST, null)));
             JSONObject bossListJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.AllRole, null)));
             int code = bossListJson.getInteger("code");
             if (code == 0) {
@@ -498,15 +509,23 @@ public class AnalysisDiyCustomerComponent {
 
     /**
      * 构建 插入用户List
-     * @param json
+     * @param
      * @param loginNameSet 排重用
      * @param isManager
      * @return
      */
-    public Integer buildSysUser(JSONObject json, Set<String> loginNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
-        JSONArray jsonArray = json.getJSONArray("userlist");
+    public Integer buildSysUser(JSONArray jsonArray, Set<String> loginNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap) {
+        // JSONArray jsonArray = json.getJSONArray("userlist");
         int count = 0;
-        for(int i =0;i<jsonArray.size();i++){
+        List<String> interfaceList = new ArrayList<>();
+        for (int x = 0; x < jsonArray.size(); x++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(x);
+            String loginName = jsonObject.getString("userid");
+            if (loginName != null && !"".equals(loginName)) {
+                interfaceList.add(loginName);
+            }
+        }
+        for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject jo = jsonArray.getJSONObject(i);
 
             try {
@@ -518,9 +537,9 @@ public class AnalysisDiyCustomerComponent {
                 Boolean isDelete = jo.getBoolean("isDelete");
                 String userid = jo.getString("userid");
                 String customerCode = jo.getString("depCode");
-                String customerName=null;
+                String customerName = null;
                 if (isManager != 0) {
-                 customerName=jo.getString("depName");
+                    customerName = jo.getString("depName");
                 }
                 /*企业微信中成员启用状态。1表示启用的成员,0表示被禁用*/
                 /*if(enable==null||enable.trim().equals("0")){
@@ -538,11 +557,12 @@ public class AnalysisDiyCustomerComponent {
                 if(isDelete){
                     continue;
                 }*/
-                if(userid==null||userid.trim().equals("")){
+                if (userid == null || userid.trim().equals("")) {
                     continue;
                 }
+                loginNameSet = sysUserService.selectAllUserLoginName();
                 loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
-                if (!loginNameSet.contains(userid.toUpperCase())) {
+                if (!loginNameSet.contains(userid.toUpperCase().trim())) {
 
                     /** =============用户基本信息构建 start===============*/
                     SysUser user = new SysUser();
@@ -573,18 +593,18 @@ public class AnalysisDiyCustomerComponent {
 
                     userExt.setPostName("DIY经销商");
                     String orgCode = jo.getString("depCode");
-                    String code=null;
-                    if(cusMap.containsKey(orgCode)){
+                    String code = null;
+                    if (cusMap.containsKey(orgCode)) {
                         Customers c = cusMap.get(orgCode);
                         userExt.setOrgCode(c.getChainsCode());
                         userExt.setOrgName(c.getChainsName());
-                        code=c.getChainsCode();
-                    }else{
+                        code = c.getChainsCode();
+                    } else {
                         userExt.setOrgCode(orgCode);
                     }
                     if (isManager == 0) {
                         userExt.setCustomerCode(code);
-                    }else{
+                    } else {
                         userExt.setCustomerCode(jo.getString("depCode"));
                     }
 //                    /**======== 构建diy用户wx信息表 start===============*/
@@ -595,100 +615,106 @@ public class AnalysisDiyCustomerComponent {
                     insertUserAndExt(user);
                     count++;
                     loginNameSet.add(userid);
-                }else{
+                } else {
                     /*已经存在的,需要先清空职位,更新职位
                     (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
-
+                    //查询岗位现阶段存在的用户
                     SysUser user = sysUserService.selectUserByLoginName(userid);
-                    /*判断不是导购角色,更新经销商角色*/
+                    if (("0").equals(user.getIsSync())) {
+                        //查询该用户是否存在该接口返回中
+
+                        if (user.getSysUserExt().getIsCustomerManager() == null) {
+                            user.getSysUserExt().setIsCustomerManager(isManager + "");
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        /*判断不是导购角色,更新经销商角色*/
 //                    if (isManager == 1 || isManager == 2 || isManager == 3) {
 //                        user.setRoleIds(roleIds);
 //                        sysUserService.updateUser(user);
 //                    }
-                    if(isManager == 0){
-                        sysUserService.insertUserRole(user.getUserId(), roleGuideIds[0]);
-                    }else{
-                    sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
-                    }
-
-                    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);
-                            }
+                        if (isManager == 0) {
+                            sysUserService.insertUserRole(user.getUserId(), roleGuideIds[0]);
+                        } else {
+                            sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
                         }
-                        log.info("updateSysUserExt" + customerCode);
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
-                    }
-                    /*解决名称不一样的情况*/
-                    if(!user.getUserName().equals(name)){
-                        user.setUserName(name);
-                        sysUserService.updateUserInfo(user);
-                    }
-
-                    List<AssRelcustomerinfo>  assRelcustomerinfoList=new ArrayList<>();
-                    /*过滤导购*/
-                    if (isManager!=0  && !user.getSysUserExt().getOrgCode().substring(0,3).equals("019") && !user.getSysUserExt().getCustomerCode().substring(0,3).equals("019") ) {
-                        if (user.getSysUserExt().getCustomerCode() != null && !customerCode.equals(user.getSysUserExt().getCustomerCode())) {
-                            assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
-                            if (assRelcustomerinfoList != null && assRelcustomerinfoList.size() > 0) {
-                                assRelcustomerinfoService.deleteAssRelcustomerinfoByUserId(user.getUserId().toString(), customerCode);
+                        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);
                             }
-                            assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
-                            if (assRelcustomerinfoList == null || assRelcustomerinfoList.size() == 0) {
-                                AssRelcustomerinfo info = new AssRelcustomerinfo();
-                                info.setUserId(user.getUserId().toString());
-                                if (isManager == 0) {
-                                    info.setMainkunnr(user.getSysUserExt().getOrgCode());
+                            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 {
-                                    info.setMainkunnr(user.getSysUserExt().getCustomerCode());
+                                    user.getSysUserExt().setOrgCode(customerCode);
                                 }
+                            }
+                            log.info("updateSysUserExt" + customerCode);
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        /*解决名称不一样的情况*/
+                        if (!user.getUserName().equals(name)) {
+                            user.setUserName(name);
+                            sysUserService.updateUserInfo(user);
+                        }
 
-                                if (cusMap.containsKey(info.getMainkunnr())) {
-                                    Customers c = cusMap.get(info.getMainkunnr());
-                                    info.setMainname1(c.getChainsName());
+                        List<AssRelcustomerinfo> assRelcustomerinfoList = new ArrayList<>();
+                        /*过滤导购*/
+                        if (isManager != 0 && !("019").equals(user.getSysUserExt().getOrgCode().substring(0, 3)) && !("019").equals(user.getSysUserExt().getCustomerCode().substring(0, 3))) {
+                            if (user.getSysUserExt().getCustomerCode() != null && !customerCode.equals(user.getSysUserExt().getCustomerCode())) {
+                                assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
+                                if (assRelcustomerinfoList != null && assRelcustomerinfoList.size() > 0) {
+                                    assRelcustomerinfoService.deleteAssRelcustomerinfoByUserId(user.getUserId().toString(), customerCode);
                                 }
+                                assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
+                                if (assRelcustomerinfoList == null || assRelcustomerinfoList.size() == 0) {
+                                    AssRelcustomerinfo info = new AssRelcustomerinfo();
+                                    info.setUserId(user.getUserId().toString());
+                                    if (isManager == 0) {
+                                        info.setMainkunnr(user.getSysUserExt().getOrgCode());
+                                    } else {
+                                        info.setMainkunnr(user.getSysUserExt().getCustomerCode());
+                                    }
+
+                                    if (cusMap.containsKey(info.getMainkunnr())) {
+                                        Customers c = cusMap.get(info.getMainkunnr());
+                                        info.setMainname1(c.getChainsName());
+                                    }
 
 //                            info.setMainname1(user.getSysUserExt().getOrgName());
-                                info.setKunnr(customerCode);
-                                if (customerName != null && customerName != "") {
-                                    info.setName1(customerName);
-                                } else {
-                                    if (isManager == 0) {
-                                        String orgCode = jo.getString("depCode");
-                                        String code = null;
-                                        if (cusMap.containsKey(orgCode)) {
-                                            Customers c = cusMap.get(orgCode);
-                                            code = c.getChainsCode();
+                                    info.setKunnr(customerCode);
+                                    if (customerName != null && customerName != "") {
+                                        info.setName1(customerName);
+                                    } else {
+                                        if (isManager == 0) {
+                                            String orgCode = jo.getString("depCode");
+                                            String code = null;
+                                            if (cusMap.containsKey(orgCode)) {
+                                                Customers c = cusMap.get(orgCode);
+                                                code = c.getChainsCode();
+                                            } else {
+                                                code = orgCode;
+                                            }
+                                            String Name = assRelcustomerinfoService.selectCustomerName(code);
+                                            info.setName1(Name);
                                         } else {
-                                            code = orgCode;
+                                            String Name = assRelcustomerinfoService.selectCustomerName(customerCode);
+                                            info.setName1(Name);
                                         }
-                                        String Name = assRelcustomerinfoService.selectCustomerName(code);
-                                        info.setName1(Name);
-                                    } else {
-                                        String Name = assRelcustomerinfoService.selectCustomerName(customerCode);
-                                        info.setName1(Name);
                                     }
-                                }
-                                info.setGlfs("用户关联");
-                                assRelcustomerinfoService.insertAssRelcustomerinfo(info);
+                                    info.setGlfs("用户关联");
+                                    assRelcustomerinfoService.insertAssRelcustomerinfo(info);
 
+                                }
                             }
-
                         }
                     }
                 }
-            }catch (Exception e){
+            } catch (Exception e) {
                 log.error(e.getMessage());
                 e.printStackTrace();
                 SyncFailDetail syncFailDetail = new SyncFailDetail();
@@ -700,13 +726,36 @@ public class AnalysisDiyCustomerComponent {
                 failDetails.add(syncFailDetail);
             }
         }
-
+        List<String> loginNames = sysUserService.selectUserByIsManager(isManager);
+        List<String> collect = loginNames.stream().filter(item -> !interfaceList.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;
     }
 
 
     /**
-     * 构建 插入用户List
+     * 构建 厨卫插入用户List
      * @param json
      * @param loginNameSet 排重用
      * @param
@@ -715,6 +764,14 @@ public class AnalysisDiyCustomerComponent {
     public Integer buildSysUserEbr(JSONObject json, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
         JSONArray jsonArray = json.getJSONArray("data");
         int count = 0;
+        List<String > interfaceList=new ArrayList<>();
+        for(int x =0;x<jsonArray.size();x++){
+            JSONObject jsonObject = jsonArray.getJSONObject(x);
+            String loginName = jsonObject.getString("userid");
+            if(loginName !=null && !"".equals(loginName)){
+                interfaceList.add(loginName);
+            }
+        }
         int isManager=1;
         for(int i =0;i<jsonArray.size();i++){
             JSONObject jo = jsonArray.getJSONObject(i);
@@ -757,7 +814,10 @@ public class AnalysisDiyCustomerComponent {
                 if(userid==null||userid.trim().equals("")){
                     continue;
                 }
-                if (!loginNameSet.contains(userid)) {
+                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();
@@ -811,79 +871,87 @@ public class AnalysisDiyCustomerComponent {
                     /*已经存在的,需要先清空职位,更新职位
                     (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
                     SysUser user = sysUserService.selectUserByLoginName(userid);
-                    List<AssRelcustomerinfo>  assRelcustomerinfoList=new ArrayList<>();
-                    if ( !user.getSysUserExt().getOrgCode().substring(0,3).equals("019") && !user.getSysUserExt().getCustomerCode().substring(0,3).equals("019")) {
-                        if (!customerCode.equals(user.getSysUserExt().getCustomerCode())) {
-                            assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
-                            if (assRelcustomerinfoList != null && assRelcustomerinfoList.size() > 0) {
-                                assRelcustomerinfoService.deleteAssRelcustomerinfoByUserId(user.getUserId().toString(), customerCode);
-                            }
-                            assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
-                            if (assRelcustomerinfoList == null || assRelcustomerinfoList.size() == 0) {
-                                String customerName = assRelcustomerinfoService.selectCustomerName(customerCode);
-                                AssRelcustomerinfo info = new AssRelcustomerinfo();
-                                info.setUserId(user.getUserId().toString());
-                                info.setMainkunnr(user.getSysUserExt().getCustomerCode());
-                                info.setMainname1(user.getSysUserExt().getOrgName());
-                                info.setKunnr(customerCode);
-                                if (customerName != null && customerName != "") {
-                                    info.setName1(customerName);
-                                }else {
-                                    if (cusMap.containsKey(info.getKunnr())) {
-                                        Customers c = cusMap.get(info.getKunnr());
-                                        info.setName1(c.getChainsName());
+                    if(("0").equals(user.getIsSync())){
+                        //每个接口查询俩次是否有重复开始查询一次,快结束查一次
+                        //查询该用户是否存在该接口返回中
+                        if(user.getSysUserExt().getIsCustomerManager()==null ){
+                            user.getSysUserExt().setIsCustomerManager(isManager+ "");
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        List<AssRelcustomerinfo>  assRelcustomerinfoList=new ArrayList<>();
+                        if ( !("019").equals(user.getSysUserExt().getOrgCode().substring(0,3)) && !("019").equals(user.getSysUserExt().getCustomerCode().substring(0,3))) {
+                            if (!customerCode.equals(user.getSysUserExt().getCustomerCode())) {
+                                assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
+                                if (assRelcustomerinfoList != null && assRelcustomerinfoList.size() > 0) {
+                                    assRelcustomerinfoService.deleteAssRelcustomerinfoByUserId(user.getUserId().toString(), customerCode);
+                                }
+                                assRelcustomerinfoList = assRelcustomerinfoService.selectRelcustomerinfoByKunnr(customerCode, user.getUserId().toString());
+                                if (assRelcustomerinfoList == null || assRelcustomerinfoList.size() == 0) {
+                                    String customerName = assRelcustomerinfoService.selectCustomerName(customerCode);
+                                    AssRelcustomerinfo info = new AssRelcustomerinfo();
+                                    info.setUserId(user.getUserId().toString());
+                                    info.setMainkunnr(user.getSysUserExt().getCustomerCode());
+                                    info.setMainname1(user.getSysUserExt().getOrgName());
+                                    info.setKunnr(customerCode);
+                                    if (customerName != null && customerName != "") {
+                                        info.setName1(customerName);
+                                    }else {
+                                        if (cusMap.containsKey(info.getKunnr())) {
+                                            Customers c = cusMap.get(info.getKunnr());
+                                            info.setName1(c.getChainsName());
+                                        }
                                     }
+                                    info.setGlfs("用户关联");
+                                    assRelcustomerinfoService.insertAssRelcustomerinfo(info);
+
                                 }
-                                info.setGlfs("用户关联");
-                                assRelcustomerinfoService.insertAssRelcustomerinfo(info);
 
                             }
-
                         }
-                    }
-                    if (diyNameSet.contains(userid)) {
-                        sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
-                        sysUserService.insertUserRole(user.getUserId(), roleCwIds[0]);
-                    } else {
-                        sysUserService.insertUserRole(user.getUserId(), roleCwIds[0]);
-                    }
-
-                    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 (diyNameSet.contains(userid)) {
+                            sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
+                            sysUserService.insertUserRole(user.getUserId(), roleCwIds[0]);
+                        } else {
+                            sysUserService.insertUserRole(user.getUserId(), roleCwIds[0]);
                         }
-                        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);
+
+                        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());
                         }
-                        log.info("updateSysUserExt" + customerCode);
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
-                    }
-                    /*解决名称不一样的情况*/
-                    if(!user.getUserName().equals(name)){
-                        user.setUserName(name);
-                        sysUserService.updateUserInfo(user);
-                    }
-                    //更新 identity 1=diy,2=ebr,3=all
-                    if (diyNameSet.contains(userid) && !"1,2".equals(user.getSysUserExt().getIdentity())) {
+                        /*解决名称不一样的情况*/
+                        if(!user.getUserName().equals(name)){
+                            user.setUserName(name);
+                            sysUserService.updateUserInfo(user);
+                        }
+                        //更新 identity 1=diy,2=ebr,3=all
+                        if (diyNameSet.contains(userid) && !"1,2".equals(user.getSysUserExt().getIdentity())) {
 
-                        log.info("updateSysUserExt identity 1,2" + userid);
-                        user.getSysUserExt().setIdentity(UserIdentityUtil.UI_DIY+","+UserIdentityUtil.UI_CW);
+                            log.info("updateSysUserExt identity 1,2" + userid);
+                            user.getSysUserExt().setIdentity(UserIdentityUtil.UI_DIY+","+UserIdentityUtil.UI_CW);
 
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
-                    }
-                    if (!diyNameSet.contains(userid) && !"2".equals(user.getSysUserExt().getIdentity())) {
-                        log.info("updateSysUserExt identity 2" + userid);
-                        user.getSysUserExt().setIdentity(UserIdentityUtil.UI_CW);
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        if (!diyNameSet.contains(userid) && !"2".equals(user.getSysUserExt().getIdentity())) {
+                            log.info("updateSysUserExt identity 2" + userid);
+                            user.getSysUserExt().setIdentity(UserIdentityUtil.UI_CW);
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
                     }
                 }
             }catch (Exception e){
@@ -898,6 +966,30 @@ public class AnalysisDiyCustomerComponent {
                 failDetails.add(syncFailDetail);
             }
         }
+        List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
+        List<String> collect = loginNames.stream().filter(item -> !interfaceList.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;
     }
@@ -906,12 +998,20 @@ public class AnalysisDiyCustomerComponent {
      *
      * 3.6经销商经销人员门店
      * **/
-    public Integer buildSysUserStaff(JSONObject json, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
-        JSONArray jsonArray = json.getJSONArray("data");
+    public Integer buildSysUserStaff(JSONArray STAFF, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
+        //JSONArray jsonArray = json.getJSONArray("data");
         int count = 0;
         int isManager=8;
-        for(int i =0;i<jsonArray.size();i++){
-            JSONObject jo = jsonArray.getJSONObject(i);
+        List<String > interfaceList=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)){
+                interfaceList.add(loginName);
+            }
+        }
+        for(int i =0;i<STAFF.size();i++){
+            JSONObject jo = STAFF.getJSONObject(i);
 
             try {
                 String userNo = jo.getString("userNo");
@@ -939,7 +1039,10 @@ public class AnalysisDiyCustomerComponent {
                 if(userid==null||userid.trim().equals("")){
                     continue;
                 }
-                if (!loginNameSet.contains(userid)) {
+                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();
@@ -990,38 +1093,39 @@ public class AnalysisDiyCustomerComponent {
                     /*已经存在的,需要先清空职位,更新职位
                     (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
                     SysUser user = sysUserService.selectUserByLoginName(userid);
-                    sysUserService.insertUserRole(user.getUserId(), roleStoreIds[0]);
-
-                    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(("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().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);
+                        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());
                         }
-                        log.info("updateSysUserExt" + customerCode);
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
-                    }
-                    /*解决名称不一样的情况*/
-                    if(!user.getUserName().equals(name)){
-                        user.setUserName(name);
-                        if("2".equals(user.getQuit())){
-                            user.setQuit(null);
+                        /*解决名称不一样的情况*/
+                        if (!user.getUserName().equals(name)) {
+                            user.setUserName(name);
+                            sysUserService.updateUserInfo(user);
                         }
-                        sysUserService.updateUserInfo(user);
                     }
-
-
-
                 }
             }catch (Exception e){
                 log.error(e.getMessage());
@@ -1035,19 +1139,51 @@ public class AnalysisDiyCustomerComponent {
                 failDetails.add(syncFailDetail);
             }
         }
+        List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
+        List<String> collect = loginNames.stream().filter(item -> !interfaceList.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.4 分销业务员人员 List
-     * @param json
+     * @param
      * @param loginNameSet 排重用
      * @param isManager
      * @return
      */
-    public Integer buildSysUserFx(JSONObject json, Set<String> loginNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
-        JSONArray jsonArray = json.getJSONArray("userlist");
+    public Integer buildSysUserFx(JSONArray jsonArray, Set<String> loginNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
+        //JSONArray jsonArray = json.getJSONArray("userlist");
         int count = 0;
+        List<String > interfaceList=new ArrayList<>();
+        for(int x =0;x<jsonArray.size();x++){
+            JSONObject jsonObject = jsonArray.getJSONObject(x);
+            String loginName = jsonObject.getString("userid");
+            if(loginName!=null && !"".equals(loginName)){
+                interfaceList.add(loginName);
+            }
+        }
         for(int i =0;i<jsonArray.size();i++){
             JSONObject jo = jsonArray.getJSONObject(i);
 
@@ -1083,7 +1219,9 @@ public class AnalysisDiyCustomerComponent {
                 if(userid==null||userid.trim().equals("")){
                     continue;
                 }
-                if (!loginNameSet.contains(userid)) {
+                loginNameSet = sysUserService.selectAllUserLoginName();
+                loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
+                if (!loginNameSet.contains(userid.toUpperCase().trim())) {
 
                     /** =============用户基本信息构建 start===============*/
                     SysUser user = new SysUser();
@@ -1136,40 +1274,48 @@ public class AnalysisDiyCustomerComponent {
                     (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
 
                     SysUser user = sysUserService.selectUserByLoginName(userid);
-                    /*判断不是导购角色,更新经销商角色*/
+                    if(("0").equals(user.getIsSync())){
+                        //每个接口查询俩次是否有重复开始查询一次,快结束查一次
+                        //查询该用户是否存在该接口返回中
+                        if(user.getSysUserExt().getIsCustomerManager()==null ){
+                            user.getSysUserExt().setIsCustomerManager(isManager+ "");
+                            sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
+                        }
+                        /*判断不是导购角色,更新经销商角色*/
 //                    if (isManager == 1 || isManager == 2 || isManager == 3) {
 //                        user.setRoleIds(roleIds);
 //                        sysUserService.updateUser(user);
 //                    }
 
-                    sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
+                        sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
 
-                    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);
+                        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);
                         }
-                        log.info("updateSysUserExt" + customerCode);
-                        sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
-                    }
-                    /*解决名称不一样的情况*/
-                    if(!user.getUserName().equals(name)){
-                        user.setUserName(name);
-                        sysUserService.updateUserInfo(user);
                     }
                 }
-            }catch (Exception e){
+            }catch (Exception e) {
                 log.error(e.getMessage());
                 e.printStackTrace();
                 SyncFailDetail syncFailDetail = new SyncFailDetail();
@@ -1181,7 +1327,30 @@ public class AnalysisDiyCustomerComponent {
                 failDetails.add(syncFailDetail);
             }
         }
-
+        List<String> loginNames = sysUserService.selectUserByIsManager(isManager);
+        List<String> collect = loginNames.stream().filter(item -> !interfaceList.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;
     }
 

+ 23 - 0
suishenbang-system/src/main/java/com/dgtly/system/domain/SysUser.java

@@ -575,4 +575,27 @@ public class SysUser extends BaseEntity
             .append("dept", getDept())
             .toString();
     }
+
+    @Override
+    public int hashCode() {
+        int result = 20;
+        result = 31 * result + (loginName == null ? 0 : loginName.hashCode());
+        return result;
+
+    }
+
+    @Override
+    public boolean equals(Object object) {
+
+        boolean result = false;
+        if (object instanceof SysUser) {
+            SysUser that = (SysUser) object;
+            if (this.hashCode() == that.hashCode()) {
+                result = true;
+            }
+        }
+        return result;
+    }
 }
+
+

+ 10 - 0
suishenbang-system/src/main/java/com/dgtly/system/mapper/SysUserMapper.java

@@ -59,6 +59,16 @@ public interface SysUserMapper
      */
     public SysUser selectUserByLoginName(String userName);
 
+    public List<String> selectUserByIsManager(@Param("isCustomerManager") Integer isCustomerManager);
+
+    /**
+     *
+     * 查询有道接口的经销商用户
+     * @return 用户对象信息
+     */
+    public List<SysUser>  selectAllUser();
+
+
     /**
      * 通过手机号码查询用户
      * 

+ 2 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/ISysUserOrderAuthorService.java

@@ -98,4 +98,6 @@ public interface ISysUserOrderAuthorService
     void updateCustomers();
 
     void sendmailUnionUser();
+
+    void unionCustomerUser();
 }

+ 4 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/ISysUserService.java

@@ -61,6 +61,10 @@ public interface ISysUserService
      */
     public SysUser selectUserByLoginName(String userName);
 
+
+    public List<String> selectUserByIsManager(Integer isCustomerManager);
+
+
     /**
      * 通过手机号码查询用户
      * 

+ 16 - 5
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserOrderAuthorServiceImpl.java

@@ -209,7 +209,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
         }
         return ztrees;
     }
-
+    @Override
     public List<Ztree> userAuthorTreeData(Long userId) {
         List<Ztree> ztrees = new ArrayList<Ztree>();
         List<SysUserOrderAuthor> menuList = sysUserOrderAuthorMapper.selectSysUserOrderAuthorList(new SysUserOrderAuthor());
@@ -219,13 +219,13 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
         getAuthorByLevel();//todo
         return ztrees;
     }
-
+    @Override
     public List<Ztree> userAuthorTreeDataFmt(Long userId) {
         List<Ztree> ztrees = new ArrayList<Ztree>();
         List<SysUserOrderAuthor> menuList = sysUserOrderAuthorMapper.selectSysUserOrderAuthorList(new SysUserOrderAuthor());
         List<Long> user = sysUserOrderAuthorMapper.selectAuthorTree(userId);
         ztrees = initTree(menuList, user);
-        ztrees = buildTree(ztrees, 0l);
+        ztrees = buildTree(ztrees, 0L);
         return ztrees;
     }
 
@@ -286,14 +286,14 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
     public void getAuthorByLevel(){
         List<SysUserOrderAuthor> list = sysUserOrderAuthorMapper.selectSysUserOrderAuthorList(new SysUserOrderAuthor());
         List<Long> ids = new ArrayList<>();
-        getParentAuthor(ids, list, 8l);
+        getParentAuthor(ids, list, 8L);
         System.out.println(ids);
     }
 
     public void getParentAuthor(List<Long> ids, List<SysUserOrderAuthor> list, Long id){
         for (SysUserOrderAuthor sysUserOrderAuthor : list) {
             Long itemId = sysUserOrderAuthor.getAuthorId();
-            if(itemId.equals(0l)){
+            if(itemId.equals(0L)){
                 ids.add(itemId);
             }else if(itemId.equals(id)){
                 ids.add(itemId);
@@ -457,6 +457,17 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
         }
     }
 
+    @Override
+    public void unionCustomerUser() {
+    /*    List<SysUser> userList = userMapper.selectAllUser();
+        userList.forEach(user -> {
+            user.setQuit("2");
+            user.getSysUserExt().setIsCustomerManager(null);
+            userMapper.updateUser(user);
+            userExtMapper.updateSysUserExt(user.getSysUserExt());
+        });*/
+    }
+
     public Set<String> getConfigValueSet(String dictType){
             Set<String> res = new HashSet<>();
             List<SysDictData> dictDatas = sysDictDataService.selectSimpleDictDataByType(dictType);

+ 5 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserServiceImpl.java

@@ -102,6 +102,11 @@ public class SysUserServiceImpl implements ISysUserService
         return userMapper.selectUserByLoginName(userName);
     }
 
+    @Override
+    public List<String> selectUserByIsManager(Integer isCustomerManager) {
+        return userMapper.selectUserByIsManager(isCustomerManager);
+    }
+
     /**
      * 通过手机号码查询用户
      * 

+ 65 - 8
suishenbang-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -216,7 +216,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	
 	<select id="selectUserByLoginName" parameterType="String" resultMap="SysUserResult">
 	    <include refid="selectUserVo"/>
-		where u.login_name = #{userName}
+		where u.login_name = #{userName} and u.quit is null
+	</select>
+
+	<select id="selectUserByIsManager"  resultType="java.lang.String">
+		select  u.login_name
+		from sys_user u
+		left join sys_user_ext suse on suse.user_id = u.user_id
+		where 1=1
+		<if test="isCustomerManager !=null ">
+			and suse.is_customer_manager  like concat('%',#{isCustomerManager}, '%')
+		</if>
+		 and u.quit is null
+		  and u.login_name is not null
+	</select>
+
+	<select id="selectAllUser" parameterType="String" resultMap="SysUserResult">
+		SELECT
+			u.user_id,
+			u.company_id,
+			u.dept_id,
+			u.login_name,
+			u.user_name,
+			u.email,
+			u.avatar,
+			u.phonenumber,
+			u.sex,
+			u.PASSWORD,
+			u.salt,
+			u.id_type,
+			u.id_number,
+			u.account_id,
+			u.is_authentication,
+			u.receive_url_mobile_no,
+			u.STATUS,
+			u.del_flag,
+			u.login_ip,
+			u.login_date,
+			u.create_time,
+			u.remark,
+			u.is_consignee,
+			u.person_attestation_time,
+			is_sync,
+			u.quit,
+			suse.sales_level,
+			suse.org_name,
+			suse.org_code,
+			suse.sap_employee_id,
+			suse.boss_employee_id,
+			suse.boss_name,
+			suse.customer_code,
+			suse.is_customer_manager,
+			suse.post_name,
+			suse.post_code,
+			suse.identity
+		FROM
+			sys_user u
+				LEFT JOIN sys_user_ext suse ON suse.user_id = u.user_id
+		where suse.is_customer_manager is not null and  suse.is_customer_manager !=''
 	</select>
 	
 	<select id="selectUserByPhoneNumber" parameterType="String" resultMap="SysUserResult">
@@ -282,7 +339,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="remark != null">remark = #{remark},</if>
  			<if test="isConsignee != null">is_consignee = #{isConsignee},</if>
  			<if test="isSync != null">is_sync = #{isSync},</if>
-			<if test="quit != null">quit = #{quit},</if>
+			quit = #{quit},
  			update_time = sysdate()
  		</set>
  		where user_id = #{userId}
@@ -372,15 +429,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
-    <select id="selectAllUserLoginName"  resultType="String">
+    <select id="selectAllUserLoginName"  resultType="java.lang.String">
         select u.login_name
-        from sys_user u
-    </select>
+        from sys_user u  where u.quit is null
+	</select>
 
-	<select id="selectDiyUserLoginName"  resultType="String">
+	<select id="selectDiyUserLoginName"  resultType="java.lang.String">
         select distinct(u.login_name)
-        from sys_user u left join sys_user_ext b on u.user_id = b.user_id where b.post_name='DIY经销商'
-    </select>
+        from sys_user u left join sys_user_ext b on u.user_id = b.user_id where b.post_name='DIY经销商' and   u.quit is null
+	</select>
 
     <insert id="insertUserNoKey" parameterType="SysUser" >
         insert into sys_user(

+ 1 - 1
suishenbang-system/src/main/resources/mapper/system/SysUserSalesExtMapper.xml

@@ -85,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="bossEmployeeId != null ">boss_employee_id = #{bossEmployeeId},</if>
             <if test="bossName != null  and bossName != ''">boss_name = #{bossName},</if>
             <if test="customerCode != null and customerCode != ''"> customer_code =#{customerCode}, </if>
-            <if test="isCustomerManager != null  and isCustomerManager != ''"> is_customer_manager = #{isCustomerManager},</if>
+             is_customer_manager = #{isCustomerManager},
             <if test="postCode != null and postCode != ''">  post_code = #{postCode},</if>
             <if test="postName != null  and postName != ''">  post_name = #{postName}, </if>
             <if test="identity != null  and identity != ''">  `identity` = #{identity}, </if>