|
@@ -59,9 +59,8 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
* @param packageId
|
|
|
* @return
|
|
|
*/
|
|
|
- @Override
|
|
|
@Async
|
|
|
- public SyncLog analysisSysUser(String packageId){
|
|
|
+ public SyncLog analysisSysUserOld(String packageId){
|
|
|
//解析逻辑件DIY用户逻辑.jpg
|
|
|
MetaEmployeeDiy param = new MetaEmployeeDiy();
|
|
|
if(packageId==null||packageId.trim().equals("")){
|
|
@@ -70,6 +69,8 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
}else{
|
|
|
param.setPackageId(packageId);
|
|
|
}
|
|
|
+ param.setBusinessUnit("DIY");
|
|
|
+
|
|
|
List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeeDiyList(param);
|
|
|
SyncLog syncLog = new SyncLog();
|
|
|
syncLog.setSyncType("sysuser");
|
|
@@ -260,6 +261,401 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 解析DIY用户数据 异步执行(new)
|
|
|
+ * @param packageId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Async
|
|
|
+ public SyncLog analysisSysUser(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 {
|
|
|
+ //todo
|
|
|
+// if(!m.getLoginName().equalsIgnoreCase("LiuTao.Fight")){
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+
|
|
|
+ //用户是否属于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.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) {
|
|
|
+ //失败后取上一层
|
|
|
+ orgName = getStextSecond(m);
|
|
|
+ userExt.setOrgName(orgName);
|
|
|
+ i = getLevel(userExt, salesTreeMap);
|
|
|
+ if (i == -1) {
|
|
|
+ throw new NotFountOrgCodeException(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ switch (i){
|
|
|
+ case 5:
|
|
|
+ if(empSet.contains(m.getEmployeePostName())){
|
|
|
+ //等级6 销售员
|
|
|
+ userExt.setSalesLevel("emp_level");
|
|
|
+ }else if(subofficeSet.contains(m.getEmployeePostName())){
|
|
|
+ //等级6 销售分部
|
|
|
+ userExt.setSalesLevel("suboffice_level");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ userExt.setSalesLevel("office_level");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ userExt.setSalesLevel("company_level");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ throw new OutOfDIYPostNameException(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// if(userExt.getOrgCode()==null){
|
|
|
+// throw new NotFountOrgCodeException(m);
|
|
|
+// }
|
|
|
+
|
|
|
+ /**======== 构建diy用户扩展信息表 end===============*/
|
|
|
+ if (loginNameList.contains(user.getLoginName())) {
|
|
|
+ /** 更新 */
|
|
|
+ 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;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解析CW用户数据 异步执行
|
|
|
+ * @param packageId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Async
|
|
|
+ public SyncLog analysisSysCwUser(String packageId) {
|
|
|
+ MetaEmployeeDiy param = new MetaEmployeeDiy();
|
|
|
+ if (packageId == null || packageId.trim().equals("")) {
|
|
|
+ Long l = new Date().getTime();
|
|
|
+ packageId = l.toString();
|
|
|
+ } else {
|
|
|
+ param.setPackageId(packageId);
|
|
|
+ }
|
|
|
+
|
|
|
+ param.setBusinessUnit("CW");
|
|
|
+ param.setStext3("厨卫底材事业部");//厨卫底材事业部
|
|
|
+
|
|
|
+ List<MetaEmployeeDiy> metaEmployeeDiys = metaEmployeeDiyMapper.selectMetaEmployeeDiyList(param);
|
|
|
+ SyncLog syncLog = new SyncLog();
|
|
|
+ syncLog.setSyncType("sysusercw");
|
|
|
+ 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.cw.deptid"));
|
|
|
+ Long roleId = Long.parseLong(configService.selectConfigByKey("libang.user.cw.roleid"));
|
|
|
+ Long[] roleIds = {roleId};
|
|
|
+ if (metaEmployeeDiys.size() > 0) {
|
|
|
+
|
|
|
+ Set<String> companyPostNameSet = getConfigValueSet("cw_comp_postname");
|
|
|
+ Set<String> companyDeptPostNameSet = getConfigValueSet("cw_comp_dept_postname");
|
|
|
+ Set<String> companyEndPostNameSet = getConfigValueSet("cw_comp_end_postname");
|
|
|
+
|
|
|
+ Set<String> deptPostNameSet = getConfigValueSet("cw_dept_postname");
|
|
|
+ Set<String> officePostNameSet = getConfigValueSet("cw_office_postname");
|
|
|
+ Set<String> empPostNameSet = getConfigValueSet("cw_emp_postname");
|
|
|
+
|
|
|
+ Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiySalesOrgTreeY9();
|
|
|
+
|
|
|
+ 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.setSapEmployeeId(m.getSapEmployeeId());
|
|
|
+ userExt.setPostCode(m.getEmployeePost());
|
|
|
+ String postName = m.getEmployeePostName();
|
|
|
+ userExt.setPostName(postName);
|
|
|
+
|
|
|
+ String orgName = getStext(m);
|
|
|
+
|
|
|
+ if (companyPostNameSet.contains(postName) || companyDeptPostNameSet.contains(orgName) || companyEndPostNameSet.contains(orgName)) {
|
|
|
+ if (companyEndPostNameSet.contains(orgName)) {
|
|
|
+ if (postName != null && (postName.trim().endsWith("部主管") || postName.trim().endsWith("组主管"))) {
|
|
|
+ userExt.setSalesLevel("cw_diy");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ userExt.setSalesLevel("cw_diy");
|
|
|
+ }
|
|
|
+ } else if (deptPostNameSet.contains(postName)) {
|
|
|
+ userExt.setSalesLevel("cw_dept");
|
|
|
+ userExt.setOrgName(m.getStext4());
|
|
|
+ setExtOrgCodeY9(salesTreeMap, 3, userExt);
|
|
|
+ } else if (officePostNameSet.contains(postName)) {
|
|
|
+ userExt.setSalesLevel("cw_office");
|
|
|
+ userExt.setOrgName(m.getStext5());
|
|
|
+ setExtOrgCodeY9(salesTreeMap, 4, userExt);
|
|
|
+ } else if (empPostNameSet.contains(postName)) {
|
|
|
+ userExt.setSalesLevel("cw_emp");
|
|
|
+ userExt.setOrgName(m.getStext5());
|
|
|
+ userExt.setOrgCode(m.getSapEmployeeId());
|
|
|
+ } else {
|
|
|
+ throw new OutOfDIYPostNameException(m);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**======== 构建diy用户扩展信息表 end===============*/
|
|
|
+ if (loginNameList.contains(user.getLoginName())) {
|
|
|
+ /** 更新 */
|
|
|
+ SysUser userInDb = sysUserService.selectUserByLoginName(user.getLoginName());
|
|
|
+ if (!userInDb.getSysUserExt().getSalesLevel().equals("diy_level")) {
|
|
|
+ user.setSysUserExt(userExt);
|
|
|
+ }
|
|
|
+ user.setUpdateTime(new Date());
|
|
|
+ sysUserService.updateUserInfoAndSalesExt(user);
|
|
|
+ } else {
|
|
|
+ /** 插入 */
|
|
|
+
|
|
|
+ userExt.setIdentity("2");
|
|
|
+
|
|
|
+ //修改密码并加密
|
|
|
+ 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("解析cw用户出错", 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("解析cw用户插入解析日志出错", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new BusinessException("解析cw用户插入解析日志出错", e);
|
|
|
+ } finally {
|
|
|
+ syncLogService.insertSyncLog(syncLog);
|
|
|
+ }
|
|
|
+ return syncLog;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取字典的set
|
|
|
* @param dictType
|
|
@@ -282,10 +678,10 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<Integer,Map<String,Map<String,String>>> getDiySalesOrgTree(){
|
|
|
- Map<String,Map<String,String>> map3= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(3);
|
|
|
- Map<String,Map<String,String>> map4= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(4);
|
|
|
- Map<String,Map<String,String>> map5= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(5);
|
|
|
- Map<String,Map<String,String>> map6= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(6);
|
|
|
+ Map<String,Map<String,String>> map3= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(3, "DIY");
|
|
|
+ Map<String,Map<String,String>> map4= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(4, "DIY");
|
|
|
+ Map<String,Map<String,String>> map5= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(5, "DIY");
|
|
|
+ Map<String,Map<String,String>> map6= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(6, "DIY");
|
|
|
Map<Integer,Map<String,Map<String,String>>>res = new HashMap<>();
|
|
|
res.put(3,map3);
|
|
|
res.put(4,map4);
|
|
@@ -377,6 +773,32 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据销售的部门等级及销售组织名称获取销售的组织code 向下兼容
|
|
|
+ * @param salesTree
|
|
|
+ * @param level 销售登记
|
|
|
+ * @param userExt 用户扩展信息
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean setExtOrgCodeY9(Map<Integer, Map<String, Map<String, String>>> salesTree, int level, SysUserExt userExt) {
|
|
|
+ if (userExt.getOrgName() == null || userExt.getOrgName().trim().equals("")) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ String orgname = userExt.getOrgName();
|
|
|
+ if (salesTree.containsKey(level)) {
|
|
|
+ Map<String, Map<String, String>> temp = salesTree.get(level);
|
|
|
+ for (String key : temp.keySet()) {
|
|
|
+ if (level==3 && orgname.indexOf(key) != -1) {
|
|
|
+ userExt.setOrgCode(temp.get(key).get("orgcode"));
|
|
|
+ return true;
|
|
|
+ }else if (level==4 && key.indexOf(orgname) != -1) {
|
|
|
+ userExt.setOrgCode(temp.get(key).get("orgcode"));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 根据销售的部门等级及销售组织名称获取销售的组织code 向上兼容
|
|
@@ -429,6 +851,9 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
|
|
|
public int getLevel(SysUserExt userExt,Map<Integer,Map<String,Map<String,String>>> salesTree){
|
|
|
String orgName = userExt.getOrgName();
|
|
|
+ if (orgName != null && orgName.startsWith("36城-")) {
|
|
|
+ orgName = orgName.replaceAll("36城-", "");
|
|
|
+ }
|
|
|
for(int i =6;i>2;i--){
|
|
|
if(salesTree.containsKey(i)){
|
|
|
Map<String,Map<String,String>> temp = salesTree.get(i);
|
|
@@ -442,6 +867,69 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取销售组织架构树
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<Integer,Map<String,Map<String,String>>> getDiySalesOrgTreeY9(){
|
|
|
+ Map<String,Map<String,String>> map3= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(3, "CW");
|
|
|
+
|
|
|
+ Map<String,Map<String,String>> map4= metaDiySalesorgtreeMapper.selectSalesTreeByLevel(4, "CW");
|
|
|
+ Map<Integer,Map<String,Map<String,String>>>res = new HashMap<>();
|
|
|
+ res.put(3,map3);
|
|
|
+ res.put(4,map4);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据销售的部门等级及销售组织名称获取销售的组织code
|
|
|
+ * @param salesTree
|
|
|
+ * @param level 销售登记
|
|
|
+ * @param userExt 用户扩展信息
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean setExtOrgCodeEbrY9(Map<Integer,Map<String,Map<String,String>>> salesTree,int level,SysUserExt userExt){
|
|
|
+ if(userExt.getOrgName()==null||userExt.getOrgName().trim().equals("")){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ String orgname = userExt.getOrgName();
|
|
|
+ for(;level<5;level++){
|
|
|
+ if(salesTree.containsKey(level)){
|
|
|
+ Map<String,Map<String,String>> temp = salesTree.get(level);
|
|
|
+ String code = getLikeKey(temp,orgname);
|
|
|
+ if(code!=null){
|
|
|
+ userExt.setOrgCode(code);
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ public String getLikeKey( Map<String,Map<String,String>> map,String key){
|
|
|
+ if(map.containsKey(key)){
|
|
|
+ return map.get(key).get("orgcode");
|
|
|
+ }else{
|
|
|
+ Iterator it = map.entrySet().iterator();
|
|
|
+ while(it.hasNext()) {
|
|
|
+ Map.Entry<String, Map<String,String>> entry = (Map.Entry<String, Map<String,String>>)it.next();
|
|
|
+ if (entry.getKey().indexOf(key) != -1) {
|
|
|
+ Map<String,String> t =entry.getValue();
|
|
|
+ String value = t.get("orgcode");
|
|
|
+ map.put(key,t);
|
|
|
+ return value;
|
|
|
+ }else if(key.indexOf(entry.getKey())!=-1){
|
|
|
+ Map<String,String> t =entry.getValue();
|
|
|
+ String value = t.get("orgcode");
|
|
|
+ map.put(key,t);
|
|
|
+ return value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|