|
@@ -59,217 +59,6 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
@Autowired
|
|
|
private SysUserExtMapper sysUserExtMapper;
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 解析DIY用户数据 异步执行
|
|
|
- * @param packageId
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Async
|
|
|
- public SyncLog analysisSysUserOld(String packageId){
|
|
|
- //解析逻辑件DIY用户逻辑.jpg
|
|
|
- MetaEmployeeDiy param = new MetaEmployeeDiy();
|
|
|
- if(packageId==null||packageId.trim().equals("")){
|
|
|
- Long l = new Date().getTime();
|
|
|
- packageId = l.toString();
|
|
|
- }else{
|
|
|
- param.setPackageId(packageId);
|
|
|
- }
|
|
|
- param.setBusinessUnit("DIY");
|
|
|
-
|
|
|
- List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeeDiyList(param);
|
|
|
- SyncLog syncLog = new SyncLog();
|
|
|
- syncLog.setSyncType("sysuser");
|
|
|
- syncLog.setStartTime(new Date());
|
|
|
-
|
|
|
- Set<String> loginNameList = sysUserService.selectAllUserLoginName();
|
|
|
-
|
|
|
-
|
|
|
- syncLog.setPackageId(packageId);
|
|
|
- syncLog.setTotalCount((long)metaEmployeeDiys.size());
|
|
|
- List<SyncFailDetail> failDetails = new ArrayList<>();
|
|
|
- long successCount = 0;
|
|
|
- long failCount = 0;
|
|
|
-
|
|
|
- Long deptId = Long.parseLong(configService.selectConfigByKey("libang.user.deptid"));
|
|
|
- Long roleId = Long.parseLong(configService.selectConfigByKey("libang.user.roleid"));
|
|
|
- Long[] roleIds = {roleId};
|
|
|
- if(metaEmployeeDiys.size()>0){
|
|
|
-
|
|
|
- //用户objid3为列表内的内容才为DIY人员
|
|
|
- Set<String> diyObjid3Set = getConfigValueSet("libang_diyobjid3");
|
|
|
- //用户岗位名称为列表的内容才是区公司级别人员
|
|
|
- Set<String> companySet = getConfigValueSet("libang_company_level_postname");
|
|
|
- //用户岗位名称为列表的内容才是销售大区级别人员
|
|
|
- Set<String> saledeptSet = getConfigValueSet("libang_saledept_level_postname");
|
|
|
- //用户岗位名称为列表的内容才是销售部级别人员
|
|
|
- Set<String> officeSet = getConfigValueSet("libang_office_level_postname");
|
|
|
- //用户岗位名称为列表的内容才是销售分部级别人员
|
|
|
- Set<String> subofficeSet = getConfigValueSet("libang_suboffice_level_postname");
|
|
|
- //用户岗位名称为列表的内容才是销售员级别人员
|
|
|
- Set<String> empSet = getConfigValueSet("libang_emp_level_postname");
|
|
|
- Map<Integer,Map<String,Map<String,String>>> salesTreeMap = getDiySalesOrgTree();
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- for(MetaEmployeeDiy m:metaEmployeeDiys) {
|
|
|
- try {
|
|
|
- //用户是否属于DIY筛选范围
|
|
|
-// if(!diyObjid3Set.contains(m.getStext3())){
|
|
|
-// throw new OutOfScopeDIYException(m);
|
|
|
-// }
|
|
|
- /** =============用户基本信息构建 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);
|
|
|
- if (m.getStatus() == 0) {
|
|
|
- user.setStatus("1");
|
|
|
- user.setDelFlag("2");
|
|
|
- } else {
|
|
|
- user.setStatus("0");
|
|
|
- }
|
|
|
- /** =============用户基本信息构建 end===============*/
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- /**======== 构建diy用户扩展信息表 start===============*/
|
|
|
- SysUserExt userExt = new SysUserExt();
|
|
|
- userExt.setBossEmployeeId(m.getBossEmployeeId());
|
|
|
- userExt.setBossName(m.getBossName());
|
|
|
- userExt.setDuty(m.getDuty());
|
|
|
- userExt.setDutyName(m.getDutyName());
|
|
|
- userExt.setSapEmployeeId(m.getSapEmployeeId());
|
|
|
- userExt.setPostCode(m.getEmployeePost());
|
|
|
- String postName = m.getEmployeePostName();
|
|
|
- userExt.setPostName(postName);
|
|
|
-
|
|
|
- //判断用户所处销售层级
|
|
|
- //先啊判断用户所属的岗位名称确定销售部门
|
|
|
- if(companySet.contains(postName)){
|
|
|
- //先处理特殊的第三级 区公司级别
|
|
|
- userExt.setSalesLevel("company_level");
|
|
|
- userExt.setOrgName(m.getStext4());
|
|
|
- setExtOrgCodeOn3(salesTreeMap,userExt);
|
|
|
-
|
|
|
- }else {
|
|
|
- //判断用户u岗位是否在销售员敢为、销售分部岗位、销售部岗位、销售大区岗位中
|
|
|
- if(empSet.contains(postName)||subofficeSet.contains(postName)||officeSet.contains(postName)||saledeptSet.contains(postName)){
|
|
|
- //获取最后所属的部门名称
|
|
|
- String orgName = getStext(m);
|
|
|
- if(orgName.indexOf("通路推广组")!=-1){
|
|
|
- orgName = getStextSecond(m);
|
|
|
- }
|
|
|
- userExt.setOrgName(orgName);
|
|
|
- int i = getLevel(userExt,salesTreeMap);
|
|
|
- if (i==-1){
|
|
|
- throw new NotFountOrgCodeException(m);
|
|
|
- }
|
|
|
- switch (i){
|
|
|
- case 6:
|
|
|
- if(empSet.contains(m.getEmployeePostName())){
|
|
|
- //等级6 销售员
|
|
|
- userExt.setSalesLevel("emp_level");
|
|
|
- }else if(subofficeSet.contains(m.getEmployeePostName())){
|
|
|
- //等级6 销售分部
|
|
|
- userExt.setSalesLevel("suboffice_level");
|
|
|
- }
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- userExt.setSalesLevel("office_level");
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- userExt.setSalesLevel("saledept_level");
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- userExt.setSalesLevel("company_level");
|
|
|
- break;
|
|
|
- }
|
|
|
- }else{
|
|
|
- throw new OutOfDIYPostNameException(m);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-// if(userExt.getOrgCode()==null){
|
|
|
-// throw new NotFountOrgCodeException(m);
|
|
|
-// }
|
|
|
-
|
|
|
- /**======== 构建diy用户扩展信息表 end===============*/
|
|
|
- loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
|
|
|
- if (loginNameList.contains(user.getLoginName().toUpperCase())) {
|
|
|
- /** 更新 */
|
|
|
- SysUser userInDb =sysUserService.selectUserByLoginName(user.getLoginName());
|
|
|
- if(!userInDb.getSysUserExt().getSalesLevel().equals("diy_level")){
|
|
|
- user.setSysUserExt(userExt);
|
|
|
- }
|
|
|
- user.setUpdateTime(new Date());
|
|
|
- sysUserService.updateUserInfoAndSalesExt(user);
|
|
|
- } else {
|
|
|
- /** 插入 */
|
|
|
- //修改密码并加密
|
|
|
- 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.setPackageId(packageId);
|
|
|
- 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.setPackageId(packageId);
|
|
|
- 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;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 解析DIY用户数据 异步执行(new)
|
|
|
* @param packageId
|
|
@@ -311,7 +100,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
Set<String> diyObjid3Set = getConfigValueSet("libang_diyobjid3");
|
|
|
//用户岗位名称为列表的内容才是区公司级别人员
|
|
|
Set<String> companySet = getConfigValueSet("libang_company_level_postname");
|
|
|
- //用户岗位名称为列表的内容才是销售大区级别人员
|
|
|
+ //用户岗位名称为列表的内容才是销售大区级别人员(此层级已废弃)
|
|
|
Set<String> saledeptSet = getConfigValueSet("libang_saledept_level_postname");
|
|
|
//用户岗位名称为列表的内容才是销售部级别人员
|
|
|
Set<String> officeSet = getConfigValueSet("libang_office_level_postname");
|
|
@@ -342,7 +131,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
user.setUserName(m.getName());
|
|
|
user.setEmail(m.getEmail());
|
|
|
user.setPhonenumber(m.getMobile());
|
|
|
- String sex = ""+(Integer.parseInt(m.getSex())-1);
|
|
|
+ String sex = "" + (Integer.parseInt(m.getSex()) - 1);
|
|
|
user.setSex(sex);
|
|
|
user.setRoleIds(roleIds);
|
|
|
if (m.getStatus() == 0) {
|
|
@@ -367,21 +156,21 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
|
|
|
//判断用户所处销售层级
|
|
|
//先啊判断用户所属的岗位名称确定销售部门
|
|
|
- if(companySet.contains(postName)){
|
|
|
+ if(companySet.contains(postName) || empSet.contains(postName)||subofficeSet.contains(postName)||officeSet.contains(postName)||saledeptSet.contains(postName)){
|
|
|
+ if (companySet.contains(postName)) {
|
|
|
//先处理特殊的第三级 区公司级别
|
|
|
userExt.setOrgName(m.getStext5());
|
|
|
- int i = getLevel(userExt,salesTreeMap);
|
|
|
- if(i==4){//职位都有时判断部门 大区
|
|
|
+ int i = getLevel(userExt, salesTreeMap);
|
|
|
+ if (i == 4) {//职位都有时判断部门 大区
|
|
|
userExt.setSalesLevel("office_level");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
userExt.setSalesLevel("company_level");
|
|
|
- userExt.setOrgName(m.getStext4());
|
|
|
- setExtOrgCodeOn3(salesTreeMap,userExt);
|
|
|
+ userExt.setOrgName(m.getStext3());
|
|
|
+ setExtOrgCodeOn3(salesTreeMap, userExt);
|
|
|
}
|
|
|
-
|
|
|
- }else {
|
|
|
- //判断用户u岗位是否在销售员敢为、销售分部岗位、销售部岗位、销售大区岗位中
|
|
|
- if(empSet.contains(postName)||subofficeSet.contains(postName)||officeSet.contains(postName)||saledeptSet.contains(postName)){
|
|
|
+ //判断用户u岗位是否在销售员敢为、销售分部岗位、销售部岗位、销售大区岗位中
|
|
|
+ }
|
|
|
+ if(empSet.contains(postName)||subofficeSet.contains(postName)||officeSet.contains(postName)||saledeptSet.contains(postName)){
|
|
|
//获取最后所属的部门名称
|
|
|
String orgName = getStext(m);
|
|
|
if(orgName.indexOf("通路推广组")!=-1){
|
|
@@ -415,7 +204,8 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
userExt.setSalesLevel("company_level");
|
|
|
break;
|
|
|
}
|
|
|
- }else {
|
|
|
+ }
|
|
|
+ }else {
|
|
|
log.error("DIY用户对应的岗位未找到!当前用户信息: " + m.getLoginName() + " , 岗位名称: " + postName);
|
|
|
SyncFailDetail syncFailDetail = new SyncFailDetail();
|
|
|
syncFailDetail.setPackageId(packageId);
|
|
@@ -447,7 +237,6 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
|
|
|
// if(userExt.getOrgCode()==null){
|
|
|
// throw new NotFountOrgCodeException(m);
|
|
@@ -543,7 +332,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
* @param packageId
|
|
|
* @return
|
|
|
*/
|
|
|
- @Override
|
|
|
+ /* @Override
|
|
|
@Async
|
|
|
public SyncLog analysisSysCwUser(String packageId) {
|
|
|
MetaEmployeeDiy param = new MetaEmployeeDiy();
|
|
@@ -591,7 +380,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
// if(!diyObjid3Set.contains(m.getStext3())){
|
|
|
// throw new OutOfScopeDIYException(m);
|
|
|
// }
|
|
|
- /** =============用户基本信息构建 start===============*/
|
|
|
+ *//** =============用户基本信息构建 start===============*//*
|
|
|
SysUser user = new SysUser();
|
|
|
user.setCompanyId(1L);
|
|
|
user.setDeptId(deptId);
|
|
@@ -608,10 +397,10 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
} else {
|
|
|
user.setStatus("0");
|
|
|
}
|
|
|
- /** =============用户基本信息构建 end===============*/
|
|
|
+ *//** =============用户基本信息构建 end===============*//*
|
|
|
|
|
|
|
|
|
- /**======== 构建diy用户扩展信息表 start===============*/
|
|
|
+ *//**======== 构建diy用户扩展信息表 start===============*//*
|
|
|
SysUserExt userExt = new SysUserExt();
|
|
|
userExt.setBossEmployeeId(m.getBossEmployeeId());
|
|
|
userExt.setBossName(m.getBossName());
|
|
@@ -681,18 +470,18 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- /**======== 构建diy用户扩展信息表 end===============*/
|
|
|
+ *//**======== 构建diy用户扩展信息表 end===============*//*
|
|
|
loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
|
|
|
if (loginNameList.contains(user.getLoginName().toUpperCase())) {
|
|
|
- /** 更新 */
|
|
|
+ *//** 更新 *//*
|
|
|
SysUser sysUser=sysUserService.selectUserByLoginName(user.getLoginName());
|
|
|
if("1".equals(sysUser.getIsSync())){
|
|
|
continue;
|
|
|
}
|
|
|
- /* if(sysUser.getSysUserExt().getSalesLevel().equals("cw_emp")){
|
|
|
+ *//* if(sysUser.getSysUserExt().getSalesLevel().equals("cw_emp")){
|
|
|
setExtOrgCodeY9(salesTreeMap, 4, userExt);
|
|
|
sysUserExtMapper.updateSysUserExt(sysUser.getSysUserExt());
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
if(!userExt.getSalesLevel().equals(sysUser.getSysUserExt().getSalesLevel())){
|
|
|
sysUserService.deleteByLoginName(user.getLoginName());
|
|
|
}
|
|
@@ -711,7 +500,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
user.setUpdateTime(new Date());
|
|
|
sysUserService.updateUserInfoAndSalesExt(user);
|
|
|
} else {
|
|
|
- /** 插入 */
|
|
|
+ *//** 插入 *//*
|
|
|
|
|
|
userExt.setIdentity(UserIdentityUtil.UI_CW);
|
|
|
|
|
@@ -724,9 +513,9 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
successCount++;
|
|
|
}
|
|
|
} catch (OutOfScopeDIYException | NotFountOrgCodeException | OutOfDIYPostNameException | OutOfLeveLException | NotOrgNameException e) {
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 警告类异常
|
|
|
- */
|
|
|
+ *//*
|
|
|
SyncFailDetail syncFailDetail = new SyncFailDetail();
|
|
|
syncFailDetail.setPackageId(packageId);
|
|
|
syncFailDetail.setFailReason(e.getMessage());
|
|
@@ -736,9 +525,9 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
failDetails.add(syncFailDetail);
|
|
|
failCount++;
|
|
|
} catch (Exception e) {
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 错误异常
|
|
|
- */
|
|
|
+ *//*
|
|
|
SyncFailDetail syncFailDetail = new SyncFailDetail();
|
|
|
syncFailDetail.setPackageId(packageId);
|
|
|
syncFailDetail.setFailReason(e.getMessage());
|
|
@@ -770,7 +559,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
syncLogService.insertSyncLog(syncLog);
|
|
|
}
|
|
|
return syncLog;
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
@Override
|
|
|
public SyncLog analysisSysYSLUser(String packageId) {
|
|
@@ -899,7 +688,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
sysUserService.deleteByLoginName(user.getLoginName());
|
|
|
}
|
|
|
//if(!sysUser.getSysUserExt().getPostCode().equals(userExt.getPostCode())){
|
|
|
- log.error("解析cw部门不一致情况原/新", sysUser.getSysUserExt().getPostCode()+"/"+userExt.getPostCode());
|
|
|
+ log.error("解析ysl部门不一致情况原/新", sysUser.getSysUserExt().getPostCode()+"/"+userExt.getPostCode());
|
|
|
SysUserRole role=new SysUserRole();
|
|
|
role.setUserId(sysUser.getUserId());
|
|
|
userRoleMapper.deleteUserRoleInfo(role);
|
|
@@ -973,11 +762,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
|
|
|
@Override
|
|
|
public SyncLog analysisSysClueReporting() {
|
|
|
- List<String> businessUnitList=new ArrayList<>();
|
|
|
- businessUnitList.add("CW");
|
|
|
- businessUnitList.add("YSL");
|
|
|
- businessUnitList.add("DIY");
|
|
|
- List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeetClueReporting(businessUnitList);
|
|
|
+ List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeetClueReporting();
|
|
|
SyncLog syncLog = new SyncLog();
|
|
|
syncLog.setSyncType("sysuserClueReporting");
|
|
|
syncLog.setStartTime(new Date());
|