Forráskód Böngészése

1.原厨卫接口更改获取所有角色 2.品保中心线索报备接口

njs 3 éve
szülő
commit
0c80bd9d31

+ 4 - 1
suishenbang-admin/src/main/resources/templates/system/user/edit.html

@@ -281,7 +281,7 @@
         var postValue = "";
 
         if (post.indexOf('1') != -1){
-            postValue += "经 ";
+            postValue += "经销商负责人 ";
         }
         if(post.indexOf('2') != -1){
             postValue += " 财务 ";
@@ -301,6 +301,9 @@
         if (post.indexOf('0') != -1){
             postValue += " 导购 ";
         }
+        if(post.indexOf('7') != -1){
+            postValue += " 厨卫仓管 ";
+        }
         $("#customerManagerValue").val(postValue);
 
         $("#form-user-edit").validate({

+ 3 - 0
suishenbang-common/src/main/java/com/dgtly/common/utils/UserIdentityUtil.java

@@ -25,4 +25,7 @@ public class UserIdentityUtil {
     /*SAF事业部*/
     public final static String UI_SAF = "6";
     public final static String UI_SAF_NAME = "SAF事业部";
+    /*品保中心*/
+    public final static String UI_ClueReporting = "7";
+    public final static String UI_ClueReporting_NAME = "品保中心";
 }

+ 8 - 0
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/mapper/MetaEmployeeDiyMapper.java

@@ -27,6 +27,14 @@ public interface MetaEmployeeDiyMapper
      */
     public List<MetaEmployeeDiy> selectMetaEmployeeDiyList(MetaEmployeeDiy metaEmployeeDiy);
 
+    /**
+     * 查询立邦雇员数据同步列表
+     *线索报备
+     * @param
+     * @return 立邦雇员数据同步集合
+     */
+    public List<MetaEmployeeDiy> selectMetaEmployeetClueReporting(List<String> businessUnitList);
+
     /**
      * 新增立邦雇员数据同步
      * 

+ 26 - 9
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -379,19 +379,21 @@ 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) {
-                success += buildSysUserEbr(bossListJson, loginNameSet, diyNameSet, 4, failDetails, packageId, chainsMap);
-                total += bossListJson.getJSONArray("userlist").size();
+                success += buildSysUserEbr(bossListJson, loginNameSet, diyNameSet, failDetails, packageId, chainsMap);
+                //total += bossListJson.getJSONArray("userlist").size();
+                total += bossListJson.getJSONArray("data").size();
             }
         } catch (Exception e) {
-            log.error("获取厨卫老板列表接口错误!");
+            log.error("获取厨卫列表接口错误!");
             customerAccessTokenUtil.reSetToken();
             throw e;
         }
 
-        try {
+    /*    try {
             JSONObject bossListJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.MANAGERLIST, null)));
             int code = bossListJson.getInteger("code");
             if (code == 0) {
@@ -416,7 +418,7 @@ public class AnalysisDiyCustomerComponent {
             log.error("获取厨卫业务人员列表接口错误!");
             customerAccessTokenUtil.reSetToken();
             throw e;
-        }
+        }*/
 
         try{
             syncLog.setTotalCount(total);
@@ -589,20 +591,35 @@ public class AnalysisDiyCustomerComponent {
      * 构建 插入用户List
      * @param json
      * @param loginNameSet 排重用
-     * @param isManager
+     * @param
      * @return
      */
-    public Integer buildSysUserEbr(JSONObject json, Set<String> loginNameSet,Set<String> diyNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
-        JSONArray jsonArray = json.getJSONArray("userlist");
+    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;
+        int isManager=1;
         for(int i =0;i<jsonArray.size();i++){
             JSONObject jo = jsonArray.getJSONObject(i);
 
             try {
+                String role=jo.getString("role_code");
+                if(role.equals("business")){
+                    continue;
+                }
                 String userNo = jo.getString("userNo");
                 String name = jo.getString("name");
                 String userid = jo.getString("userid");
                 String customerCode = jo.getString("depCode");
+                if(role.equals("boss")){
+                    isManager=4;
+
+                }else if(role.equals("manager")){
+                    isManager=5;
+                }else if(role.equals("CWWH")){
+                    isManager=7;
+                }
+
+
                 /*企业微信中成员启用状态。1表示启用的成员,0表示被禁用*/
                 /*if(enable==null||enable.trim().equals("0")){
                     continue;

+ 8 - 0
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/IAnalysisSysUserService.java

@@ -26,4 +26,12 @@ public interface IAnalysisSysUserService {
      * @date: 2022/4/18 11:05
      */ 
     public SyncLog analysisSysYSLUser(String packageId);
+    /**
+     * @description: 解析除ysl,diy,cw外用户数据
+     * @param: [packageId]
+     * @return: com.dgtly.sync.domain.SyncLog
+     * @author: njs
+     * @date: 2022/5/13 9:00
+     */
+    public SyncLog analysisSysClueReporting();
 }

+ 263 - 5
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/impl/AnalysisSysUserService.java

@@ -18,6 +18,8 @@ import com.dgtly.sync.service.ISyncLogService;
 import com.dgtly.system.domain.SysDictData;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.system.domain.SysUserExt;
+import com.dgtly.system.domain.SysUserRole;
+import com.dgtly.system.mapper.SysUserRoleMapper;
 import com.dgtly.system.service.ISysConfigService;
 import com.dgtly.system.service.ISysDictDataService;
 import com.dgtly.system.service.ISysUserService;
@@ -50,7 +52,8 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
     private MetaDiySalesorgtreeMapper metaDiySalesorgtreeMapper;
     @Autowired
     private ISyncLogService syncLogService;
-
+    @Autowired
+    private SysUserRoleMapper userRoleMapper;
 
 
     /**
@@ -405,9 +408,38 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                                     userExt.setSalesLevel("company_level");
                                     break;
                             }
-                        }else{
-                            throw new OutOfDIYPostNameException(m);
+                        }else {
+                            log.error("DIY用户对应的岗位未找到!当前用户信息: " + m.getLoginName() + " , 岗位名称: " + postName);
+                            SyncFailDetail syncFailDetail = new SyncFailDetail();
+                            syncFailDetail.setPackageId(packageId);
+                            syncFailDetail.setFailReason("DIY用户对应的岗位未找到!当前用户信息: " + m.getLoginName() + " , 岗位名称: " + postName);
+                            syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                            syncFailDetail.setFailLevel("1");
+                            syncFailDetail.setExceptionType("not found post");
+                            failDetails.add(syncFailDetail);
+                            failCount++;
+                            user.setSysUserExt(userExt);
+                            user.setUpdateTime(new Date());
+                            this.save(user);
+                            continue;
                         }
+
+                        if (StringUtils.isEmpty(userExt.getOrgCode())){
+                            log.error("DIY用户对应的销售部未找到!当前用户信息: " + m.getLoginName() + " , 销售部名称: " + userExt.getOrgName());
+                            SyncFailDetail syncFailDetail = new SyncFailDetail();
+                            syncFailDetail.setPackageId(packageId);
+                            syncFailDetail.setFailReason("DIY用户对应的销售部未找到!当前用户信息: " + m.getLoginName() + " , 销售部名称: " + userExt.getOrgName());
+                            syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                            syncFailDetail.setFailLevel("1");
+                            syncFailDetail.setExceptionType("not found dept");
+                            failDetails.add(syncFailDetail);
+                            failCount++;
+                            user.setSysUserExt(userExt);
+                            user.setUpdateTime(new Date());
+                            this.save(user);
+                            continue;
+                        }
+
                     }
 
 //                    if(userExt.getOrgCode()==null){
@@ -418,6 +450,18 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                     loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
                     if (loginNameList.contains(user.getLoginName().toUpperCase())) {
                         /**  更新 */
+                        SysUser sysUser=sysUserService.selectUserByLoginName(user.getLoginName());
+                        if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                            sysUserService.deleteByLoginName(user.getLoginName());
+                        }else if(!sysUser.getSysUserExt().getOrgCode().equals(userExt.getOrgCode())){
+                            SysUserRole role=new SysUserRole();
+                            role.setUserId(sysUser.getUserId());
+                            for (Long role_Id : roleIds)
+                            {
+                                role.setRoleId(role_Id);
+                                userRoleMapper.deleteUserRoleInfo(role);
+                            }
+                        }
                         SysUser userInDb =sysUserService.selectUserByLoginName(user.getLoginName());
                         if(!userInDb.getSysUserExt().getSalesLevel().equals("diy_level")){
                             user.setSysUserExt(userExt);
@@ -592,13 +636,54 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         userExt.setOrgName(m.getStext5());
                         userExt.setOrgCode(m.getSapEmployeeId());
                     } else {
-                        throw new OutOfDIYPostNameException(m);
+                        log.error("CW用户对应的岗位未找到!当前用户信息: " + m.getLoginName() + " , 岗位名称: " + postName);
+                        SyncFailDetail syncFailDetail = new SyncFailDetail();
+                        syncFailDetail.setPackageId(packageId);
+                        syncFailDetail.setFailReason("CW用户对应的岗位未找到!当前用户信息: " + m.getLoginName() + " , 岗位名称: " + postName);
+                        syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                        syncFailDetail.setFailLevel("1");
+                        syncFailDetail.setExceptionType("not found post");
+                        failDetails.add(syncFailDetail);
+                        failCount++;
+                        user.setSysUserExt(userExt);
+                        user.setUpdateTime(new Date());
+                        this.save(user);
+                        continue;
+                    }
+
+                    if (StringUtils.isEmpty(userExt.getOrgCode())){
+                        log.error("CW用户对应的销售部未找到!当前用户信息: " + m.getLoginName() + " , 销售部名称: " + userExt.getOrgName());
+                        SyncFailDetail syncFailDetail = new SyncFailDetail();
+                        syncFailDetail.setPackageId(packageId);
+                        syncFailDetail.setFailReason("CW用户对应的销售部未找到!当前用户信息: " + m.getLoginName() + " , 销售部名称: " + userExt.getOrgName());
+                        syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                        syncFailDetail.setFailLevel("1");
+                        syncFailDetail.setExceptionType("not found dept");
+                        failDetails.add(syncFailDetail);
+                        failCount++;
+                        user.setSysUserExt(userExt);
+                        user.setUpdateTime(new Date());
+                        this.save(user);
+                        continue;
                     }
 
+
                     /**======== 构建diy用户扩展信息表 end===============*/
                     loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
                     if (loginNameList.contains(user.getLoginName().toUpperCase())) {
                         /**  更新 */
+                        SysUser sysUser=sysUserService.selectUserByLoginName(user.getLoginName());
+                        if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                            sysUserService.deleteByLoginName(user.getLoginName());
+                        }else if(!sysUser.getSysUserExt().getOrgCode().equals(userExt.getOrgCode())){
+                            SysUserRole role=new SysUserRole();
+                            role.setUserId(sysUser.getUserId());
+                            for (Long role_Id : roleIds)
+                            {
+                                role.setRoleId(role_Id);
+                                userRoleMapper.deleteUserRoleInfo(role);
+                            }
+                        }
                         SysUser userInDb = sysUserService.selectUserByLoginName(user.getLoginName());
                         if (!userInDb.getSysUserExt().getSalesLevel().equals("diy_level")) {
                             user.setSysUserExt(userExt);
@@ -759,6 +844,9 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         syncFailDetail.setExceptionType("not found post");
                         failDetails.add(syncFailDetail);
                         failCount++;
+                        user.setSysUserExt(userExt);
+                        user.setUpdateTime(new Date());
+                        this.save(user);
                         continue;
                     }
 
@@ -772,6 +860,9 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         syncFailDetail.setExceptionType("not found dept");
                         failDetails.add(syncFailDetail);
                         failCount++;
+                        user.setSysUserExt(userExt);
+                        user.setUpdateTime(new Date());
+                        this.save(user);
                         continue;
                     }
 
@@ -779,6 +870,18 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                     loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
                     if (loginNameList.contains(user.getLoginName().toUpperCase())) {
                         /**  更新 */
+                        SysUser sysUser=sysUserService.selectUserByLoginName(user.getLoginName());
+                       if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                           sysUserService.deleteByLoginName(user.getLoginName());
+                       }else if(!sysUser.getSysUserExt().getOrgCode().equals(userExt.getOrgCode())){
+                           SysUserRole role=new SysUserRole();
+                           role.setUserId(sysUser.getUserId());
+                           for (Long role_Id : roleIds)
+                               {
+                                   role.setRoleId(role_Id);
+                                   userRoleMapper.deleteUserRoleInfo(role);
+                               }
+                       }
                         user.setSysUserExt(userExt);
                         user.setUpdateTime(new Date());
                         sysUserService.updateUserInfoAndSalesExt(user);
@@ -844,6 +947,126 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
         return syncLog;
     }
 
+    @Override
+    public SyncLog analysisSysClueReporting() {
+        List<String> businessUnitList=new ArrayList<>();
+        businessUnitList.add("CW");
+        businessUnitList.add("YSL");
+        businessUnitList.add("DIY");
+        List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeetClueReporting(businessUnitList);
+        SyncLog syncLog = new SyncLog();
+        syncLog.setSyncType("sysuserClueReporting");
+        syncLog.setStartTime(new Date());
+
+        Set<String> loginNameList = sysUserService.selectAllUserLoginName();
+        syncLog.setTotalCount((long) metaEmployeeDiys.size());
+        List<SyncFailDetail> failDetails = new ArrayList<>();
+        long successCount = 0;
+        long failCount = 0;
+
+        Long deptId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.deptid"));
+        Long roleId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.roleid"));
+        Long[] roleIds = {roleId};
+        if (metaEmployeeDiys.size() > 0) {
+            for (MetaEmployeeDiy m : metaEmployeeDiys) {
+                try {
+                    /** =============用户基本信息构建 start===============*/
+                    SysUser user = new SysUser();
+                    user.setCompanyId(1L);
+                    user.setDeptId(deptId);
+                    user.setLoginName(m.getLoginName());
+                    user.setUserName(m.getName());
+                    user.setEmail(m.getEmail());
+                    user.setPhonenumber(m.getMobile());
+                    String sex = "" + (Integer.parseInt(m.getSex()) - 1);
+                    user.setSex(sex);
+                    user.setRoleIds(roleIds);
+                    //同步0
+                    user.setIsSync("0");
+                    if (m.getStatus() == 0) {
+                        user.setStatus("1");
+                        user.setDelFlag("2");
+                    } else {
+                        user.setStatus("0");
+                    }
+                    /** =============用户基本信息构建 end===============*/
+
+
+                    /**======== 构建用户扩展信息表 start===============*/
+                    SysUserExt userExt = new SysUserExt();
+                    userExt.setBossEmployeeId(m.getBossEmployeeId());
+                    userExt.setBossName(m.getBossName());
+                    userExt.setSapEmployeeId(m.getSapEmployeeId());
+                    userExt.setPostCode(m.getEmployeePost());
+                    String postName = m.getEmployeePostName();
+                    userExt.setPostName(postName);
+                    userExt.setSalesLevel("ClueReporting_level");
+                    userExt.setOrgName("品保中心");
+                    /**======== 构建用户扩展信息表 end===============*/
+                    loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
+                    if (loginNameList.contains(user.getLoginName().toUpperCase())) {
+                        /**  更新 */
+                        user.setSysUserExt(userExt);
+                        user.setUpdateTime(new Date());
+                        sysUserService.updateUserInfoAndSalesExt(user);
+                    } else {
+                        /**  插入 */
+                        userExt.setIdentity(UserIdentityUtil.UI_ClueReporting);
+                        //修改密码并加密
+                        user.setPassword(m.getLoginName());
+                        user.setSalt(ShiroSaltUtil.randomSalt());
+                        user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+                        user.setSysUserExt(userExt);
+                        sysUserService.insertUserAndSalesExt(user);
+                        successCount++;
+                    }
+                } catch (OutOfScopeDIYException | NotFountOrgCodeException | OutOfDIYPostNameException | OutOfLeveLException | NotOrgNameException e) {
+                    /**
+                     * 警告类异常
+                     */
+                    SyncFailDetail syncFailDetail = new SyncFailDetail();
+                    syncFailDetail.setFailReason(e.getMessage());
+                    syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                    syncFailDetail.setFailLevel("0");
+                    syncFailDetail.setExceptionType(e.getClass().getSimpleName());
+                    failDetails.add(syncFailDetail);
+                    failCount++;
+                } catch (Exception e) {
+                    /**
+                     * 错误异常
+                     */
+                    SyncFailDetail syncFailDetail = new SyncFailDetail();
+                    syncFailDetail.setFailReason(e.getMessage());
+                    syncFailDetail.setDataJson(JSONObject.toJSONString(m));
+                    syncFailDetail.setFailLevel("1");
+                    syncFailDetail.setExceptionType(e.getClass().getSimpleName());
+                    failDetails.add(syncFailDetail);
+                    e.printStackTrace();
+                    log.error("解析品保中心用户出错", e);
+                    failCount++;
+                }
+            }
+            syncLog.setSuccessCount(successCount);
+            syncLog.setFaileCount(failCount);
+        } else {
+            syncLog.setSuccessCount(0l);
+            syncLog.setFaileCount(0l);
+        }
+        try {
+            syncLog.setEndTime(new Date());
+            if (failDetails.size() > 0) {
+                syncFailDetailMapper.batchInsertSyncFailDetail(failDetails);
+            }
+        } catch (Exception e) {
+            log.error("解析品保中心用户插入解析日志出错", e);
+            e.printStackTrace();
+            throw new BusinessException("解析品保中心用户插入解析日志出错", e);
+        } finally {
+            syncLogService.insertSyncLog(syncLog);
+        }
+        return syncLog;
+    }
+
     /**
      * 获取字典的set
      * @param dictType
@@ -858,7 +1081,42 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
         return res;
     }
 
-
+    /**品保中心 diy,cw,ysl 找不到部门的人员线索报备新增**/
+    public void save(SysUser user){
+        Long deptId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.deptid"));
+        Long roleId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.roleid"));
+        Set<String> loginNameList = sysUserService.selectAllUserLoginName();
+        Long[] roleIds = {roleId};
+        user.setDeptId(deptId);
+        user.setRoleIds(roleIds);
+        //同步0
+        user.setIsSync("0");
+        SysUserExt userExt =user.getSysUserExt();
+        userExt.setSalesLevel("ClueReporting_level");
+        userExt.setOrgName("品保中心");
+        /**======== 构建用户扩展信息表 end===============*/
+        loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
+        if (loginNameList.contains(user.getLoginName().toUpperCase())) {
+            /**  更新 */
+            SysUser sysUser=sysUserService.selectUserByLoginName(user.getLoginName());
+            sysUserService.deleteByLoginName(user.getLoginName());
+            SysUserRole role=new SysUserRole();
+            role.setUserId(sysUser.getUserId());
+            userRoleMapper.deleteUserRoleInfo(role);
+            user.setSysUserExt(userExt);
+            user.setUpdateTime(new Date());
+            sysUserService.updateUserInfoAndSalesExt(user);
+        } else {
+            /**  插入 */
+            userExt.setIdentity(UserIdentityUtil.UI_ClueReporting);
+            //修改密码并加密
+            user.setPassword(user.getLoginName());
+            user.setSalt(ShiroSaltUtil.randomSalt());
+            user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+            user.setSysUserExt(userExt);
+            sysUserService.insertUserAndSalesExt(user);
+        }
+    }
 
 
     /**

+ 17 - 9
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/utils/CustomerAccessTokenUtil.java

@@ -19,10 +19,11 @@ public class CustomerAccessTokenUtil {
         STOREGUIDE,
         FINANCE,
         RESELLER,
-        BOSSLIST,
+     /*   BOSSLIST,
         MANAGERLIST,
-        BUSINESSLIST,
-        WAREHOUSE;
+        BUSINESSLIST,*/
+        WAREHOUSE,
+        AllRole;
 
 
 
@@ -64,13 +65,15 @@ public class CustomerAccessTokenUtil {
     //获取经销商仓管人员列表(分页)
     private String warehouseListUrl ;
     //厨卫 获取老板列表
-    private String bossListUrl ;
+   /* private String bossListUrl ;
     //厨卫 获取经理列表
-    private String managerUrl ;
+    private String managerUrl ;*/
     //获取经销商分销业务员人员列表(分页)
     private String resellerUrl ;
     //获取厨卫业务员人员
-    private String businessUrl ;
+   // private String businessUrl ;
+    //获取所有角色员列表
+    private String allRoleUrl ;
 
     @PostConstruct
     public void init() {
@@ -79,10 +82,13 @@ public class CustomerAccessTokenUtil {
         storeGuideListUrl =domain+"/wechatwork/diydt/v1/user/storeGuide/list?access_token=%s";
         financeListUrl =domain+"/wechatwork/diydt/v2/user/finance/list?page=%s&access_token=%s";
         warehouseListUrl =domain+"/wechatwork/diydt/v2/user/warehouse/list?page=%s&access_token=%s";
+        /**
         bossListUrl =domain+"/wechatwork/chuwei/v1/user/boss/list?access_token=%s";
         managerUrl =domain+"/wechatwork/chuwei/v1/user/manager/list?access_token=%s";
+        */
         resellerUrl =domain+"/api/diydt/v2/user/reseller/list?page=%s&access_token=%s";
-        businessUrl =domain+"/wechatwork/chuwei/v1/user/business/list?access_token=%s";
+      /*  businessUrl =domain+"/wechatwork/chuwei/v1/user/business/list?access_token=%s";*/
+        allRoleUrl=domain+"/api/chuwei/v1/user/all/list?access_token=%s";
     }
 
     public String getAccessToken(){
@@ -147,7 +153,7 @@ public class CustomerAccessTokenUtil {
             case WAREHOUSE:
                 url = String.format(warehouseListUrl,pageNum,token);
                 break;
-            case BOSSLIST:
+      /*      case BOSSLIST:
                 url = String.format(bossListUrl,token);
                 break;
             case MANAGERLIST:
@@ -155,7 +161,9 @@ public class CustomerAccessTokenUtil {
                 break;
             case BUSINESSLIST:
                 url = String.format(businessUrl, token);
-                break;
+                break;*/
+            case AllRole:
+                url = String.format(allRoleUrl,token);
         }
         return url;
     }

+ 52 - 0
suishenbang-sync/suishenbang-sync-common/src/main/resources/mapper/sync/MetaEmployeeDiyMapper.xml

@@ -259,5 +259,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{name}
         </foreach>
     </delete>
+
+    <select id="selectMetaEmployeetClueReporting" parameterType="MetaEmployeeDiy" resultMap="MetaEmployeeDiyResult">
+        <include refid="selectMetaEmployeeDiyVo"/>
+        <where>
+            <if test="name != null  and name != ''"> and name = #{name}</if>
+            <if test="loginName != null  and loginName != ''"> and login_name = #{loginName}</if>
+            <if test="email != null  and email != ''"> and email = #{email}</if>
+            <if test="mobile != null  and mobile != ''"> and mobile = #{mobile}</if>
+            <if test="sapEmployeeId != null  and sapEmployeeId != ''"> and sap_employee_id = #{sapEmployeeId}</if>
+            <if test="sapCostCenterCode != null  and sapCostCenterCode != ''"> and sap_cost_center_code = #{sapCostCenterCode}</if>
+            <if test="sapCostCenter != null  and sapCostCenter != ''"> and sap_cost_center = #{sapCostCenter}</if>
+            <if test="sapCompanyCode != null  and sapCompanyCode != ''"> and sap_company_code = #{sapCompanyCode}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="objid1 != null  and objid1 != ''"> and objid_1 = #{objid1}</if>
+            <if test="contract != null  and contract != ''"> and contract = #{contract}</if>
+            <if test="contractName != null  and contractName != ''"> and contract_name = #{contractName}</if>
+            <if test="contractBegin != null  and contractBegin != ''"> and contract_begin = #{contractBegin}</if>
+            <if test="duty != null  and duty != ''"> and duty = #{duty}</if>
+            <if test="dutyName != null  and dutyName != ''"> and duty_name = #{dutyName}</if>
+            <if test="org != null  and org != ''"> and org = #{org}</if>
+            <if test="orgName != null  and orgName != ''"> and org_name = #{orgName}</if>
+            <if test="employeePost != null  and employeePost != ''"> and employee_post = #{employeePost}</if>
+            <if test="employeePostName != null  and employeePostName != ''"> and employee_post_name = #{employeePostName}</if>
+            <if test="posty != null  and posty != ''"> and posty = #{posty}</if>
+            <if test="poste != null  and poste != ''"> and poste = #{poste}</if>
+            <if test="posnc != null  and posnc != ''"> and posnc = #{posnc}</if>
+            <if test="bossEmployeeId != null  and bossEmployeeId != ''"> and boss_employee_id = #{bossEmployeeId}</if>
+            <if test="bossName != null  and bossName != ''"> and boss_name = #{bossName}</if>
+            <if test="bossEmployeePost != null  and bossEmployeePost != ''"> and boss_employee_post = #{bossEmployeePost}</if>
+            <if test="sex != null  and sex != ''"> and sex = #{sex}</if>
+            <if test="stext1 != null  and stext1 != ''"> and stext_1 = #{stext1}</if>
+            <if test="objid2 != null  and objid2 != ''"> and objid_2 = #{objid2}</if>
+            <if test="stext2 != null  and stext2 != ''"> and stext_2 = #{stext2}</if>
+            <if test="objid3 != null  and objid3 != ''"> and objid_3 = #{objid3}</if>
+            <if test="stext3 != null  and stext3 != ''"> and stext_3 = #{stext3}</if>
+            <if test="objid4 != null  and objid4 != ''"> and objid_4 = #{objid4}</if>
+            <if test="stext4 != null  and stext4 != ''"> and stext_4 = #{stext4}</if>
+            <if test="objid5 != null  and objid5 != ''"> and objid_5 = #{objid5}</if>
+            <if test="stext5 != null  and stext5 != ''"> and stext_5 = #{stext5}</if>
+            <if test="objid6 != null  and objid6 != ''"> and objid_6 = #{objid6}</if>
+            <if test="stext6 != null  and stext6 != ''"> and stext_6 = #{stext6}</if>
+            <if test="dataversion != null  and dataversion != ''"> and dataversion = #{dataversion}</if>
+            <if test="etlCreatime != null "> and etl_creatime = #{etlCreatime}</if>
+            <if test="lineId != null  and lineId != ''"> and line_id = #{lineId}</if>
+            <if test="packageId != null  and packageId != ''"> and package_id = #{packageId}</if>
+             and  business_unit not in
+            <foreach collection="businessUnitList" item="businessUnit" index="index" open="(" close=")" separator=",">
+                    #{businessUnit}
+            </foreach>
+
+        </where>
+    </select>
     
 </mapper>

+ 1 - 0
suishenbang-sync/suishenbang-sync-manager/src/main/java/com/dgtly/sync/controller/SyncLogController.java

@@ -112,6 +112,7 @@ public class SyncLogController extends BaseController
             analysisSysUserService.analysisSysUser(null);
             analysisSysUserService.analysisSysCwUser(null);
             analysisSysUserService.analysisSysYSLUser(null);
+            analysisSysUserService.analysisSysClueReporting();
         }catch (Exception e){
             logger.error("解析用户出错",e);
         }

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

@@ -208,4 +208,6 @@ public interface SysUserMapper
     String selectSyncDateUser(@Param("type") Integer type);
 
     int insertUserRole(@Param("userId") Long userId, @Param("roleId") Long roleId);
+
+    int deleteByLoginName(@Param("loginName") String loginName);
 }

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

@@ -264,4 +264,6 @@ public interface ISysUserService
 
     void insertUserRole(Long userId, Long roleId);
 
+    void deleteByLoginName(String loginName);
+
 }

+ 2 - 3
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserOrderAuthorServiceImpl.java

@@ -285,9 +285,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
         List<SysUserOrderAuthor> userOrderAuthorYSLList = sysUserOrderAuthorMapper.selectAuthorIdByCode("YSL");
         userExtMapper.selectUserExtList().forEach(sysUserExt -> {
             String sales = sysUserExt.getSalesLevel();
-            if (sales == null) {
-                sales = "diy_level";
-            }
+            if (sales != null) {
             int index = sales.indexOf("_");
             String intNumber = sales.substring(0, index);
             if (intNumber.equals("cw")) {
@@ -338,6 +336,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
                 }
             }
             }
+            }
         });
 
     }

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

@@ -646,4 +646,9 @@ public class SysUserServiceImpl implements ISysUserService
         userMapper.insertUserRole(userId, roleId);
     }
 
+    @Override
+    public void deleteByLoginName(String loginName) {
+        userMapper.deleteByLoginName(loginName);
+    }
+
 }

+ 9 - 0
suishenbang-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -470,5 +470,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<insert id="insertUserRole">
 		insert into sys_user_role (user_id,role_id) select ${userId},${roleId} from dual where not exists ( select 1 from sys_user_role where user_id = #{userId} and role_id = #{roleId} )
 	</insert>
+	<delete id="deleteByLoginName" parameterType="int">
+		delete from sys_user_author_rel where user_id = (
+		    select user_id from sys_user where 1=1
+		    <if test="loginName !=null and loginName !='' ">
+				and login_name=#{loginName}
+			</if>
+
+			)
+	</delete>
 
 </mapper>