Jelajahi Sumber

区分门店用户(品保中心内)

njs 3 tahun lalu
induk
melakukan
847bfae59d

+ 102 - 26
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/impl/AnalysisSysUserService.java

@@ -419,7 +419,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                             failCount++;
                             user.setSysUserExt(userExt);
                             user.setUpdateTime(new Date());
-                            this.save(user);
+                            this.save(user,m);
                             continue;
                         }
 
@@ -435,7 +435,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                             failCount++;
                             user.setSysUserExt(userExt);
                             user.setUpdateTime(new Date());
-                            this.save(user);
+                            this.save(user,m);
                             continue;
                         }
 
@@ -453,7 +453,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         if("1".equals(sysUser.getIsSync())){
                             continue;
                         }
-                        if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                        if(!userExt.getSalesLevel().equals(sysUser.getSysUserExt().getSalesLevel())){
                             sysUserService.deleteByLoginName(user.getLoginName());
                         }
                         //if(!sysUser.getSysUserExt().getPostCode().equals(userExt.getPostCode())){
@@ -465,7 +465,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                             insertUserRole(user);
                         //}
 
-                        if(!sysUser.getSysUserExt().getSalesLevel().equals("diy_level")){
+                        if(!"diy_level".equals(sysUser.getSysUserExt().getSalesLevel())){
                             user.setSysUserExt(userExt);
                         }
                         user.setUpdateTime(new Date());
@@ -649,7 +649,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         failCount++;
                         user.setSysUserExt(userExt);
                         user.setUpdateTime(new Date());
-                        this.save(user);
+                        this.save(user,m);
                         continue;
                     }
 
@@ -665,7 +665,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         failCount++;
                         user.setSysUserExt(userExt);
                         user.setUpdateTime(new Date());
-                        this.save(user);
+                        this.save(user,m);
                         continue;
                     }
 
@@ -678,7 +678,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         if("1".equals(sysUser.getIsSync())){
                             continue;
                         }
-                        if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                        if(!userExt.getSalesLevel().equals(sysUser.getSysUserExt().getSalesLevel())){
                             sysUserService.deleteByLoginName(user.getLoginName());
                         }
                         //if(!sysUser.getSysUserExt().getPostCode().equals(userExt.getPostCode())){
@@ -690,7 +690,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                             insertUserRole(user);
                        // }
 
-                        if (!sysUser.getSysUserExt().getSalesLevel().equals("diy_level")) {
+                        if (!"diy_level".equals(sysUser.getSysUserExt().getSalesLevel())) {
                             user.setSysUserExt(userExt);
                         }
                         user.setUpdateTime(new Date());
@@ -850,7 +850,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         failCount++;
                         user.setSysUserExt(userExt);
                         user.setUpdateTime(new Date());
-                        this.save(user);
+                        this.save(user,m);
                         continue;
                     }
 
@@ -866,7 +866,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         failCount++;
                         user.setSysUserExt(userExt);
                         user.setUpdateTime(new Date());
-                        this.save(user);
+                        this.save(user,m);
                         continue;
                     }
 
@@ -878,7 +878,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                         if(sysUser.getIsSync().equals("1")){
                             continue;
                         }
-                       if(!sysUser.getSysUserExt().getSalesLevel().equals(userExt.getSalesLevel())){
+                       if(!userExt.getSalesLevel().equals(sysUser.getSysUserExt().getSalesLevel())){
                            sysUserService.deleteByLoginName(user.getLoginName());
                        }
                        //if(!sysUser.getSysUserExt().getPostCode().equals(userExt.getPostCode())){
@@ -970,24 +970,22 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
         List<SyncFailDetail> failDetails = new ArrayList<>();
         long successCount = 0;
         long failCount = 0;
-
+        Long deptIdsfa = Long.parseLong(configService.selectConfigByKey("libang.user.sfa.deptid"));
+        Long roleIdsfa = Long.parseLong(configService.selectConfigByKey("libang.user.sfa.roleid"));
         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) {
@@ -1007,9 +1005,48 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                     userExt.setPostCode(m.getEmployeePost());
                     String postName = m.getEmployeePostName();
                     userExt.setPostName(postName);
-                    userExt.setSalesLevel("ClueReporting_level");
-                    userExt.setOrgName("品保中心");
-                    userExt.setOrgCode("1");
+
+                    Set<String> sfaPostNameSet = getConfigValueSet("sfa_comp_postname");
+                    if (sfaPostNameSet.contains(postName)) {
+                        userExt.setSalesLevel("diysfa_level");
+                        if (m.getBusinessUnit().equals("DIY")) {
+                            Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiySalesOrgTree();
+                            userExt.setOrgName(m.getStext4());
+                            setExtOrgCodeOn3(salesTreeMap, userExt);
+                        } else if (m.getBusinessUnit().equals("CW")) {
+                            Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiySalesOrgTreeY9();
+                            Set<String> deptPostNameSet = getConfigValueSet("cw_dept_postname");
+                            Set<String> officePostNameSet = getConfigValueSet("cw_office_postname");
+                            Set<String> empPostNameSet = getConfigValueSet("cw_emp_postname");
+                            if (deptPostNameSet.contains(postName)) {
+                                userExt.setOrgName(m.getStext4());
+                                setExtOrgCodeY9(salesTreeMap, 3, userExt);
+                            } else if (officePostNameSet.contains(postName)) {
+                                userExt.setOrgName(m.getStext5());
+                                setExtOrgCodeY9(salesTreeMap, 4, userExt);
+                            } else if (empPostNameSet.contains(postName)) {
+                                userExt.setOrgName(m.getStext5());
+                                userExt.setOrgCode(m.getSapEmployeeId());
+                            }
+                        } else if (m.getBusinessUnit().equals("YSL")) {
+                            Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiyYSLSalesOrgTree();
+                            userExt.setOrgName(m.getStext5());
+                            setExtOrgCodeY9(salesTreeMap, 4, userExt);
+                        }
+                    }else{
+                        userExt.setSalesLevel("ClueReporting_level");
+                        userExt.setOrgName("品保中心");
+                        userExt.setOrgCode("1");
+                    }
+                    if("品保中心".equals(userExt.getOrgName())){
+                        Long[] roleIds = {roleId};
+                        user.setDeptId(deptId);
+                        user.setRoleIds(roleIds);
+                    }else{
+                        Long[] roleIdsSfa = {roleIdsfa};
+                        user.setDeptId(deptIdsfa);
+                        user.setRoleIds(roleIdsSfa);
+                    }
                     /**======== 构建用户扩展信息表 end===============*/
                     loginNameList = loginNameList.stream().map(String::toUpperCase).collect(Collectors.toSet());
                     if (loginNameList.contains(user.getLoginName().toUpperCase())) {
@@ -1099,19 +1136,58 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
     }
 
     /**品保中心 diy,cw,ysl 找不到部门的人员线索报备新增**/
-    public void save(SysUser user){
+    public void save(SysUser user,MetaEmployeeDiy m){
+        Set<String> sfaPostNameSet = getConfigValueSet("sfa_comp_postname");
+        String postName = m.getEmployeePostName();
         Long deptId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.deptid"));
         Long roleId = Long.parseLong(configService.selectConfigByKey("libang.user.ClueReporting.roleid"));
+        Long deptIdsfa = Long.parseLong(configService.selectConfigByKey("libang.user.sfa.deptid"));
+        Long roleIdsfa = Long.parseLong(configService.selectConfigByKey("libang.user.sfa.roleid"));
+        SysUserExt userExt =user.getSysUserExt();
+        if (sfaPostNameSet.contains(postName)) {
+            userExt.setSalesLevel("diysfa_level");
+            if(m.getBusinessUnit().equals("DIY")){
+                Map<Integer,Map<String,Map<String,String>>>  salesTreeMap = getDiySalesOrgTree();
+                userExt.setOrgName(m.getStext4());
+                setExtOrgCodeOn3(salesTreeMap,userExt);
+            }else if(m.getBusinessUnit().equals("CW")){
+                Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiySalesOrgTreeY9();
+                Set<String> deptPostNameSet = getConfigValueSet("cw_dept_postname");
+                Set<String> officePostNameSet = getConfigValueSet("cw_office_postname");
+                Set<String> empPostNameSet = getConfigValueSet("cw_emp_postname");
+                if (deptPostNameSet.contains(postName)) {
+                    userExt.setOrgName(m.getStext4());
+                    setExtOrgCodeY9(salesTreeMap, 3, userExt);
+                } else if (officePostNameSet.contains(postName)) {
+                    userExt.setOrgName(m.getStext5());
+                    setExtOrgCodeY9(salesTreeMap, 4, userExt);
+                } else if (empPostNameSet.contains(postName)) {
+                    userExt.setOrgName(m.getStext5());
+                    userExt.setOrgCode(m.getSapEmployeeId());
+                }
+            }else if(m.getBusinessUnit().equals("YSL")){
+                Map<Integer, Map<String, Map<String, String>>> salesTreeMap = getDiyYSLSalesOrgTree();
+                userExt.setOrgName(m.getStext5());
+                setExtOrgCodeY9(salesTreeMap, 4, userExt);
+            }
+
+        }else{
+            userExt.setSalesLevel("ClueReporting_level");
+            userExt.setOrgName("品保中心");
+            userExt.setOrgCode("1");
+        }
         Set<String> loginNameList = sysUserService.selectAllUserLoginName();
-        Long[] roleIds = {roleId};
-        user.setDeptId(deptId);
-        user.setRoleIds(roleIds);
+        if("品保中心".equals(userExt.getOrgName())){
+            Long[] roleIds = {roleId};
+            user.setDeptId(deptId);
+            user.setRoleIds(roleIds);
+        }else{
+            Long[] roleIdsSfa = {roleIdsfa};
+            user.setDeptId(deptIdsfa);
+            user.setRoleIds(roleIdsSfa);
+        }
         //同步0
         user.setIsSync("0");
-        SysUserExt userExt =user.getSysUserExt();
-        userExt.setSalesLevel("ClueReporting_level");
-        userExt.setOrgName("品保中心");
-        userExt.setOrgCode("1");
         /**======== 构建用户扩展信息表 end===============*/