Browse Source

人员导入

duyj 3 years ago
parent
commit
c6c7506fe9

+ 18 - 2
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -59,6 +59,8 @@ public class AnalysisDiyCustomerComponent {
     private Long deptId;
     private Long[] roleIds;
     private Long[] roleGuideIds;
+    private Long[] roleCwIds;
+    private Long[] roleCwDiyIds;
      /**
      * 获取并解析DIY经销商用户
      * 因为经销商用户并不涉及用信息更新等方面 所以只插入不更新
@@ -78,6 +80,16 @@ public class AnalysisDiyCustomerComponent {
             Long roleId = Long.parseLong(configService.selectConfigByKey("libang.guide.roleid"));
             roleGuideIds = new Long[]{roleId};
         }
+        if (roleCwIds == null) {
+            Long roleId = Long.parseLong(configService.selectConfigByKey("libang.cw.roleid"));
+            roleCwIds = new Long[]{roleId};
+        }
+        if (roleCwDiyIds == null) {
+            Long roleId = Long.parseLong(configService.selectConfigByKey("libang.cw.roleid"));
+            Long roleDiyId = Long.parseLong(configService.selectConfigByKey("libang.guide.roleid"));
+            roleCwDiyIds = new Long[]{roleId, roleDiyId};
+        }
+
         List<SyncFailDetail> failDetails = new ArrayList<>();
         SyncLog syncLog = new SyncLog();
         syncLog.setStartTime(new Date());
@@ -86,7 +98,7 @@ public class AnalysisDiyCustomerComponent {
         long total = 0;
         long success = 0;
         Set<String> loginNameSet = sysUserService.selectAllUserLoginName();
-        Set<String> diyNameSet = sysUserService.selectAllUserLoginName();
+        Set<String> diyNameSet = sysUserService.selectDiyUserLoginName();
         String managerJson ="";
         try{
             managerJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.MANAGER,null));
@@ -438,7 +450,11 @@ public class AnalysisDiyCustomerComponent {
                     user.setLoginName(userid);
                     user.setUserName(jo.getString("name"));
                     user.setPhonenumber(jo.getString("mobile"));
-                    user.setRoleIds(roleIds);
+                    if (diyNameSet.contains(userid)) {
+                        user.setRoleIds(roleCwDiyIds);
+                    } else {
+                        user.setRoleIds(roleCwIds);
+                    }
                     user.setPassword(user.getLoginName());
                     user.setSalt(ShiroSaltUtil.randomSalt());
                     user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));

+ 15 - 2
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/HanaOrderComponent.java

@@ -90,7 +90,11 @@ public class HanaOrderComponent {
                 "                T.TRAGR,\n" +
                 "                T.ABRVW,\n" +
                 "                T.ABRVW_TXT,\n" +
-                "                T.VKBUR\n" +
+                "                T.VKBUR, \n" +
+                "                T.ZCODE1,\n" +
+                "                T.ZCODE1_DESC,\n" +
+                "                T.ZCODE4,\n" +
+                "                T.ZCODE4_DESC \n" +
                 "FROM (\n" +
                 "\n" +
                 "SELECT\n" +
@@ -132,7 +136,11 @@ public class HanaOrderComponent {
                 "                B.TRAGR, "+
                 "                A.ABRVW, "+
                 "                A.ABRVW_TXT, "+
-                "                A.VKBUR "+
+                "                A.VKBUR,  " +
+                "                CAL.ZCODE1,\n" +
+                "                CAL.ZCODE1_DESC,\n" +
+                "                CAL.ZCODE4,\n" +
+                "                CAL.ZCODE4_DESC "+
                 "FROM \"_SYS_BIC\".\"com.sd/CAL_SALES\"" +
                 "('PLACEHOLDER' = ('$$IP_ENDDATE$$',\n" +
                 "\t '"+DateUtils.dateTime()+"'),\n" +
@@ -141,6 +149,7 @@ public class HanaOrderComponent {
                 "\t LEFT JOIN ERP.T001W C ON C.WERKS = A.WERKS \n" +
                 "\t LEFT JOIN ERP.ZHANAMATDOWN D ON D.MATNR = A.MATNR \n" +
                 "\t LEFT JOIN ERP.T001L E ON E.WERKS = A.WERKS AND E.LGORT = A.LGORT \n" +
+                "\t LEFT JOIN \"_SYS_BIC\".\"com.md/CAL_MAT_HIERARCHY_S\" CAL ON B.MATNR=CAL.MATNR AND A.VTWEG=CAL.VTWEG \n" +
                 "\t WHERE A.VKORG != '4000' AND A.VTWEG IN ('D9','Y9') AND A.SPART != '16' AND A.AUART NOT IN ('31','32','33','35','36','39') " +
                 "and ((A.ZCMGST !='信用通过' and A.ABGRU='') or (A.ZCMGST ='信用通过' and A.ABGRU=''))\n" +
                 " order by A.VBELN,A.POSNR " +
@@ -328,6 +337,10 @@ public class HanaOrderComponent {
                                 +"?"+ result.getString("ABRVW")
                                 +"?"+ result.getString("ABRVW_TXT")
                                 +"?"+ result.getString("VKBUR")
+                                +"?"+ result.getString("ZCODE1")
+                                +"?"+ result.getString("ZCODE1_DESC")
+                                +"?"+ result.getString("ZCODE4")
+                                +"?"+ result.getString("ZCODE4_DESC")
                                 + "\r\n");
 
 

+ 14 - 7
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/impl/AnalysisSysUserService.java

@@ -317,7 +317,7 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
             for(MetaEmployeeDiy m:metaEmployeeDiys) {
                 try {
                     //todo
-//                    if(!m.getLoginName().equalsIgnoreCase("LiuTao.Fight")){
+//                    if(!m.getLoginName().equalsIgnoreCase("wangzhen")){
 //                        continue;
 //                    }
 
@@ -359,9 +359,15 @@ public class AnalysisSysUserService implements IAnalysisSysUserService {
                     //先啊判断用户所属的岗位名称确定销售部门
                     if(companySet.contains(postName)){
                         //先处理特殊的第三级 区公司级别
-                        userExt.setSalesLevel("company_level");
-                        userExt.setOrgName(m.getStext4());
-                        setExtOrgCodeOn3(salesTreeMap,userExt);
+                        userExt.setOrgName(m.getStext5());
+                        int i = getLevel(userExt,salesTreeMap);
+                        if(i==4){//职位都有时判断部门 大区
+                            userExt.setSalesLevel("office_level");
+                        }else{
+                            userExt.setSalesLevel("company_level");
+                            userExt.setOrgName(m.getStext4());
+                            setExtOrgCodeOn3(salesTreeMap,userExt);
+                        }
 
                     }else {
                         //判断用户u岗位是否在销售员敢为、销售分部岗位、销售部岗位、销售大区岗位中
@@ -851,13 +857,14 @@ 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城-", "");
+        String orgNameTmp = userExt.getOrgName();
+        if (orgNameTmp != null && orgNameTmp.startsWith("36城-")) {
+            orgNameTmp = orgNameTmp.replaceAll("36城-", "");
         }
         for(int i =6;i>2;i--){
             if(salesTree.containsKey(i)){
                 Map<String,Map<String,String>> temp = salesTree.get(i);
-                if(temp.containsKey(orgName)){
+                if(temp.containsKey(orgName) || temp.containsKey(orgNameTmp)){
                     userExt.setOrgCode(temp.get(orgName).get("orgcode"));
                     return i;
                 }

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

@@ -66,6 +66,7 @@ public class SyncController {
     public Object user(String packageId, String jobId, String message){
         try{
             analysisSysUserService.analysisSysUser(null);
+//            analysisSysUserService.analysisSysCwUser(null);
         }catch (Exception e){
             log.error("解析用户出错",e);
         }

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

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

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

@@ -347,8 +347,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
 	<select id="selectDiyUserLoginName"  resultType="String">
-        select u.login_name
-        from sys_user u where post_name='DIY经销商'
+        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>
 
     <insert id="insertUserNoKey" parameterType="SysUser" >

+ 1 - 1
suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/WxPortalController.java

@@ -65,7 +65,7 @@ public class WxPortalController extends ApiBaseController {
         ParameterObject obj =  getParameterObject();
         obj.checkParameterNotNull("userId");
         WxBanner wxBanner = new WxBanner();
-        List<WxMagnet> wxMagnetList =  wxMagnetService.selectMagnetByUserId(obj.getString("userId"));
+        List<WxMagnet> wxMagnetList =  wxMagnetService.selectMagnetByUserId(obj.getString("userId"), obj.getString("cw"), obj.getString("salesLevel"));
         List<WxBanner> wxBannerList = wxBannerService.selectWxBannerList(wxBanner);
         return AjaxResult.success().putKV("magnets",wxMagnetList).putKV("banners",wxBannerList);
     }

+ 2 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/mapper/WxMagnetMapper.java

@@ -113,6 +113,8 @@ public interface WxMagnetMapper
      */
     List<WxMagnet> selectMagnetByUserId(String userId);
 
+    List<WxMagnet> selectMagnetByCw(@Param("userId") String userId, @Param("roleId")String roleId);
+
 
     String selectSapEmploeeIdByUserId(String userId);
 }

+ 1 - 1
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/IWxMagnetService.java

@@ -108,5 +108,5 @@ public interface IWxMagnetService
      * @param userId
      * @return
      */
-    List<WxMagnet> selectMagnetByUserId(String userId);
+    List<WxMagnet> selectMagnetByUserId(String userId, String cw, String salesLevel);
 }

+ 12 - 3
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/WxMagnetServiceImpl.java

@@ -7,6 +7,7 @@ import com.dgtly.common.utils.StringUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.system.mapper.SysRoleMenuMapper;
+import com.dgtly.system.service.ISysConfigService;
 import com.dgtly.wxportal.domain.RoleMagnet;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.mapper.WxMagnetMapper;
@@ -34,6 +35,9 @@ public class WxMagnetServiceImpl implements IWxMagnetService
     @Autowired
     private SysRoleMenuMapper roleMenuMapper;
 
+    @Autowired
+    private ISysConfigService configService;
+
     protected final Logger logger = LoggerFactory.getLogger(WxMagnetServiceImpl.class);
 
 
@@ -199,9 +203,14 @@ public class WxMagnetServiceImpl implements IWxMagnetService
      * @return
      */
     @Override
-    public List<WxMagnet> selectMagnetByUserId(String userId) {
-
-        List<WxMagnet> list = wxMagnetMapper.selectMagnetByUserId(userId);
+    public List<WxMagnet> selectMagnetByUserId(String userId, String cw, String salesLevel) {
+        List<WxMagnet> list;
+        if (null != cw && null != salesLevel && "customer_level".equals(salesLevel)) {
+            String roleId = cw.equals("1") ? configService.selectConfigByKey("libang.customer.roleid") : configService.selectConfigByKey("libang.cw.roleid");
+            list = wxMagnetMapper.selectMagnetByCw(userId, roleId);
+        } else {
+            list = wxMagnetMapper.selectMagnetByUserId(userId);
+        }
         if(list!=null && list.size()>0){
             for(WxMagnet wxMagnet: list){
                 logger.info("isEncry::::"+wxMagnet.getIsEncry());

+ 14 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/resources/mapper/wxportal/WxMagnetMapper.xml

@@ -180,6 +180,20 @@
         </where>
         order by  m.order_num
     </select>
+    <select id="selectMagnetByCw" parameterType="String" resultMap="WxMagnetResult">
+        select distinct m.magnet_id,  m.magnet_name, m.url, m.visible, m.magnet_size
+        , m.bg_url, m.order_num, m.create_time, m.magnet_type, m.applet_qr_url,m.is_encry
+        from wx_magnet m
+        left join wx_role_magnet rm on m.magnet_id = rm.magnet_id
+        left join sys_user_role ur on rm.role_id = ur.role_id
+        LEFT JOIN sys_role ro on ur.role_id = ro.role_id
+        <where>
+            ur.user_id = #{userId}
+            and m.visible = "0"
+            and ro.role_id= #{roleId}
+        </where>
+        order by  m.order_num
+    </select>
     <select id="selectSapEmploeeIdByUserId" resultType="java.lang.String">
         select sap_employee_id from sys_user_ext where user_id = #{userId}
     </select>