فهرست منبع

Merge remote-tracking branch 'origin/shenai_4a' into shenai_4a

zhouy 3 ماه پیش
والد
کامیت
8d9ae45e0d

+ 12 - 0
src/main/java/com/uas/eis/controller/SyncController.java

@@ -2,15 +2,20 @@ package com.uas.eis.controller;
 
 import com.uas.eis.serviceImpl.ADSyncService;
 import com.uas.eis.serviceImpl.NetEasyService;
+import com.uas.eis.serviceImpl.YongHService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 @RestController
 public class SyncController {
     @Autowired
     private NetEasyService netEasyService;
     @Autowired
     private ADSyncService  adSyncService;
+    @Autowired
+    private YongHService yongHService;
 
     @PostMapping("/api/sync/netEasy")
     public String syncNetEasy(){
@@ -25,4 +30,11 @@ public class SyncController {
        adSyncService.syncUser();
        return "同步成功";
     }
+
+    @RequestMapping(value="/api/sync/yonghong")
+    @ResponseBody
+    public Map<String, Object> syncYongH() throws Exception {
+        return yongHService.syncEmployee();
+    }
+
 }

+ 15 - 0
src/main/java/com/uas/eis/dto/YongHResp.java

@@ -0,0 +1,15 @@
+package com.uas.eis.dto;
+
+import com.uas.eis.entity.YongHResults;
+
+public class YongHResp {
+    private YongHResults results;
+
+    public YongHResults getResults() {
+        return results;
+    }
+
+    public void setResults(YongHResults results) {
+        this.results = results;
+    }
+}

+ 18 - 1
src/main/java/com/uas/eis/entity/Employee.java

@@ -13,7 +13,8 @@ public class Employee {
     private Integer em_isneteasy;
     private String em_position;
     private String em_mobile;
-
+    private String em_yonghongid;
+    private String em_email;
     public String getEm_code() {
         return em_code;
     }
@@ -110,6 +111,22 @@ public class Employee {
         this.em_mobile = em_mobile;
     }
 
+    public String getEm_yonghongid() {
+        return em_yonghongid;
+    }
+
+    public void setEm_yonghongid(String em_yonghongid) {
+        this.em_yonghongid = em_yonghongid;
+    }
+
+    public String getEm_email() {
+        return em_email;
+    }
+
+    public void setEm_email(String em_email) {
+        this.em_email = em_email;
+    }
+
     @Override
     public String toString() {
         return "Employee{" +

+ 26 - 0
src/main/java/com/uas/eis/entity/YongHRes.java

@@ -0,0 +1,26 @@
+package com.uas.eis.entity;
+
+import javax.persistence.Entity;
+import java.io.Serializable;
+
+
+public class YongHRes implements Serializable {
+    private String level;
+    private String message;
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 13 - 0
src/main/java/com/uas/eis/entity/YongHResults.java

@@ -0,0 +1,13 @@
+package com.uas.eis.entity;
+
+public class YongHResults {
+    public YongHRes getResult() {
+        return result;
+    }
+
+    public void setResult(YongHRes result) {
+        this.result = result;
+    }
+
+    private YongHRes result;
+}

+ 9 - 0
src/main/java/com/uas/eis/serviceImpl/UasSyncService.java

@@ -33,4 +33,13 @@ public class UasSyncService {
                 Employee.class);
     }
 
+    public List<Employee> getYongHDelUserList() {
+        return  baseDao.query("select em_code,em_name,em_class,em_yonghongid,em_mobile,em_email from employee"+
+                        " where EM_YONGHONGID is not null and (EM_ISYONGHONG=0 or em_class='离职') order by em_id asc" ,Employee.class);
+    }
+    public List<Employee> getYongHAddUserList() {
+        return  baseDao.query("select em_code,em_name,em_class,em_yonghongid,em_mobile,em_email from employee "+
+                        " where nvl(EM_YONGHONGID,' ')=' ' and  em_class<>'离职' and EM_ISYONGHONG=-1 order by em_id asc"  , Employee.class);
+    }
+
 }

+ 170 - 0
src/main/java/com/uas/eis/serviceImpl/YongHService.java

@@ -0,0 +1,170 @@
+package com.uas.eis.serviceImpl;
+
+import com.alibaba.druid.util.HttpClientUtils;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dto.YongHResp;
+import com.uas.eis.entity.Employee;
+import com.uas.eis.utils.FlexJsonUtil;
+import com.uas.eis.utils.HttpUtil;
+import com.uas.eis.utils.PinyinUtils;
+import com.uas.eis.utils.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class YongHService {
+    private final Logger logger = LoggerFactory.getLogger(getClass());
+    @Autowired
+    private UasSyncService uasSyncService;
+    @Autowired
+    private BaseDao baseDao;
+
+    public Map<String, Object>  syncEmployee() throws Exception {
+        Map<String, Object> modelMap = new HashMap<String, Object>();
+        //获取token
+        String token=getToken();
+        int add_count_success=0;
+        int add_count_failed=0;
+        int del_count_success=0;
+        int del_count_failed=0;
+        if(StringUtil.hasText(token)){
+            List<Employee> employeeDel = uasSyncService.getYongHDelUserList();
+            for (Employee employee : employeeDel) {
+                boolean bool1=delYongHAccount(token,employee);
+                if(bool1){
+                    del_count_success++;
+                }else{
+                    del_count_failed++;
+                }
+            }
+            List<Employee> employeeAdd = uasSyncService.getYongHAddUserList();
+            for (Employee employee : employeeAdd) {
+                boolean bool2=addYongHAccount(token,employee);
+                if(bool2){
+                    add_count_success++;
+                }else{
+                    del_count_failed++;
+                }
+            }
+            String message="添加成功:"+add_count_success+",添加失败:"+add_count_failed+",删除成功:"+del_count_success+",删除失败:"+del_count_failed;
+            modelMap.put("message", message);
+            modelMap.put("success", true);
+            logout(token);
+        }else{
+            modelMap.put("message", "获取token失败!");
+            modelMap.put("success", false);
+        }
+        return modelMap;
+    }
+    private boolean delYongHAccount(String token,Employee employee) throws Exception {
+        String action="http://172.16.0.207:8081/bi/api?action=delNode&token="+token;
+        Map<String,Object> xmlData = new HashMap<>();
+        Map<String,Object> user = new HashMap<>();
+        user.put("name",employee.getEm_yonghongid());
+        xmlData.put("user",user);
+        String param="xmlData="+FlexJsonUtil.toJsonDeep(xmlData);
+        HttpUtil.Response response =HttpUtil.doPost( action, param, false, null,300000);
+        if (response.getStatusCode() == HttpStatus.OK.value()){
+            System.out.println("delUser成功");
+            String res = response.getResponseText();
+            System.out.println(res);
+            YongHResp resp= FlexJsonUtil.fromJson(res, YongHResp.class);
+            if("1".equals(resp.getResults().getResult().getLevel())){
+                baseDao.updateByCondition("employee","em_isyonghong=0,EM_YONGHONGID=''","em_code='"+employee.getEm_code()+"'");
+                return true;
+            }else{
+                logger.info("yonghong删除用户失败,token:{},message:{}",token,resp.getResults().getResult().getMessage());
+                return false;
+            }
+        }else{
+            logger.info("yonghong删除用户请求失败:{}",response.getResponseText());
+            return false;
+        }
+    }
+    private boolean addYongHAccount(String token,Employee employee) throws Exception {
+        String action="http://172.16.0.207:8081/bi/api?action=saveNode&type=user&token="+token;
+        Map<String,Object> xmlData = new HashMap<>();
+        Map<String,Object> info = new HashMap<>();
+        Map<String,Object> user = new HashMap<>();
+        String name=PinyinUtils.getCustomPinyin(employee.getEm_name());
+        user.put("name",name);
+        user.put("pass",employee.getEm_password());
+        user.put("email",employee.getEm_email());
+        user.put("alias",employee.getEm_name());
+        user.put("parent","");
+        user.put("roles","everyone_role");
+        user.put("type",2);
+        info.put("user",user);
+        xmlData.put("info",info);
+        String param="xmlData="+FlexJsonUtil.toJsonDeep(xmlData);
+        HttpUtil.Response response =HttpUtil.doPost( action, param, false, null,300000);
+        if (response.getStatusCode() == HttpStatus.OK.value()){
+            System.out.println("addUser成功");
+            String res = response.getResponseText();
+            System.out.println(res);
+            YongHResp resp= FlexJsonUtil.fromJson(res, YongHResp.class);
+            if("1".equals(resp.getResults().getResult().getLevel())){
+                baseDao.updateByCondition("employee","EM_YONGHONGID='"+name+"'","em_code='"+employee.getEm_code()+"'");
+                return true;
+            }else{
+                logger.info("yonghong添加用户失败,token:{},message:{}",token,resp.getResults().getResult().getMessage());
+                return false;
+            }
+        }else{
+            logger.info("yonghong添加用户请求失败:{}",response.getResponseText());
+            return false;
+        }
+    }
+
+    private String getToken() throws Exception {
+        String action="http://172.16.0.207:8081/bi/api?action=login";
+        HashMap<String, String> header=new HashMap<>();
+        Map<String,String> paraMap=new HashMap<>();
+        paraMap.put("adminv","admin");
+        paraMap.put("passv","Yonghong123");
+        HttpUtil.Response response=HttpUtil.sendPostRequest(action,header,paraMap);
+        if (response.getStatusCode() == HttpStatus.OK.value()){
+            System.out.println("获取成功");
+            String res = response.getResponseText();
+            YongHResp resp= FlexJsonUtil.fromJson(res, YongHResp.class);
+            if("1".equals(resp.getResults().getResult().getLevel())){
+                String token=resp.getResults().getResult().getMessage();
+                System.out.println(token);
+                return token;
+            }else{
+                logger.info("yonghong获取Token失败,{}",resp.getResults().getResult().getMessage());
+                return "";
+            }
+        }else{
+            logger.info("yonghong获取Tokenq请求失败:{}",response.getResponseText());
+            return "";
+        }
+    }
+    private void logout(String token) throws Exception {
+        String action="http://172.16.0.207:8081/bi/api?action=logout";
+        HashMap<String, String> header=new HashMap<>();
+        Map<String,String> paraMap=new HashMap<>();
+        paraMap.put("token","token");
+        HttpUtil.Response response=HttpUtil.sendPostRequest(action,header,paraMap);
+        if (response.getStatusCode() == HttpStatus.OK.value()){
+            System.out.println("logout成功");
+            String res = response.getResponseText();
+            YongHResp resp= FlexJsonUtil.fromJson(res, YongHResp.class);
+            if("1".equals(resp.getResults().getResult().getLevel())){
+                logger.info("yonghong-logout success,token{},message:{}",token,resp.getResults().getResult().getMessage());
+            }else{
+                logger.info("yonghong-logout fail,token{},message:{}",token,resp.getResults().getResult().getMessage());
+            }
+        }else{
+            logger.info("yonghong-logout-请求失败:{}",response.getResponseText());
+        }
+
+    }
+}