Browse Source

同步和初始化功能

hy 6 years ago
parent
commit
56b5abdc01

+ 41 - 0
bi-server/src/main/java/com/usoftchina/bi/server/controller/common/UASController.java

@@ -0,0 +1,41 @@
+package com.usoftchina.bi.server.controller.common;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.bi.core.base.RepCode;
+import com.usoftchina.bi.core.base.RepEntity;
+import com.usoftchina.bi.core.base.TestPage;
+import com.usoftchina.bi.server.model.po.MessageLog;
+import com.usoftchina.bi.server.model.po.RefreshData;
+import com.usoftchina.bi.server.model.po.SyncData;
+import com.usoftchina.bi.server.model.pojo.annotation.CheckToken;
+import com.usoftchina.bi.server.service.common.MessageLogService;
+import com.usoftchina.bi.server.service.common.UASService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author hy
+ * @Date 2019-05-15
+ */
+@RestController
+@RequestMapping("/uas")
+@Api(description = "UAS调用接口")
+public class UASController {
+
+    @Autowired
+    private UASService uasService;
+
+    @PostMapping("/refreshData")
+    public String refreshData(@RequestBody RefreshData refreshData){
+        return uasService.refreshData(refreshData);
+    }
+
+    @PostMapping("/sync")
+    public String sync(@RequestBody SyncData syncData){
+        return uasService.sync(syncData);
+    }
+
+}

+ 90 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/common/UASMapper.java

@@ -0,0 +1,90 @@
+package com.usoftchina.bi.server.dao.common;
+
+import com.usoftchina.bi.core.base.TestPage;
+import com.usoftchina.bi.server.model.po.Databases;
+import com.usoftchina.bi.server.model.po.MessageLog;
+import com.usoftchina.bi.server.model.po.RefreshData;
+import com.usoftchina.bi.server.model.po.User;
+import com.usoftchina.bi.server.model.vo.configVo.DatabasesInfo;
+import com.usoftchina.bi.server.model.vo.dataVo.DashboardCopyInfo;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.mapping.StatementType;
+import org.apache.ibatis.type.JdbcType;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+@Repository
+public interface UASMapper {
+
+    /**
+     * 调用存储过程,从UAS_BI标准数据库同步表和数据过来
+     */
+    @Select({ "call SP_BI_REFRESHDATA(#{sob,mode=IN,jdbcType=VARCHAR},"
+            + "#{address,mode=IN,jdbcType=VARCHAR},"
+            + "#{port,mode=IN,jdbcType=VARCHAR},"
+            + "#{sid,mode=IN,jdbcType=VARCHAR},"
+            + "#{em_id,mode=IN,jdbcType=VARCHAR},"
+            + "#{em_code,mode=IN,jdbcType=VARCHAR},"
+            + "#{em_name,mode=IN,jdbcType=VARCHAR},"
+            + "#{res,mode=OUT,jdbcType=VARCHAR})" })
+    @Options(statementType=StatementType.CALLABLE)
+    String sp_refreshdata(RefreshData refreshData);
+
+    /**
+     * 校验账套的数据源是否存在
+     */
+    @Select({ "SELECT COUNT(*) FROM BI_DATABASES where USER_NAME = #{from}" })
+    int checkDataBase(String from);
+
+    /**
+     * 获取数链接
+     */
+    @Select({ "SELECT * BI_DATABASES where id = #{id}" })
+    Databases getDataBase(String id);
+
+    //插入数据源
+    @Insert("INSERT INTO BI_DATABASES(ID,BASES_NAME,ADDRASS,PORT,DATABASE_TYPE,DATA_NAME,USER_NAME,PASS_WORD,CREATE_DATE,UPDATE_DATE,NOTE) "
+            +       "SELECT "
+            +           "#{id, jdbcType=INTEGER},#{name},ADDRASS,PORT,DATABASE_TYPE,DATA_NAME,#{sob},PASS_WORD,CREATE_DATE,UPDATE_DATE,NOTE "
+            +       "FROM BI_DATABASES where id = #{mainid}")
+    @SelectKey(before=true,keyProperty="id",resultType=int.class,statement="SELECT BI_DATABASES_sequence.nextval from dual",keyColumn = "id")
+    void insertDataBase(@Param("name") String name ,@Param("sob") String sob ,@Param("mainid") String mainid);
+
+    //获取所有单个数据链接的报表 且编号符合  xxxx_xxxx_账套str
+    @Select({ "select DASHBOARD_ID dashboardId,ID dataSourceId,'_副本' lastName,BD_CODE newCode  from (select MAX(BD_CODE) BD_CODE,DASHBOARD_ID,count(*),max(BI_DATABASES.id) id,max(BI_DATABASES.USER_NAME) USER_NAME " +
+            "from BI_DATABASES " +
+            "left join BI_DATA_CONNECTORS on DB_CONFIG = BI_DATABASES.id  " +
+            "left join BI_CHARTS on BI_CHARTS.BD_DATA_ID = BI_DATA_CONNECTORS.ID " +
+            "left join BI_DASHBOARDS_CHART on BI_DASHBOARDS_CHART.CHART_ID = BI_CHARTS.id " +
+            "LEFT JOIN BI_DASHBOARDS ON BI_DASHBOARDS.ID = BI_DASHBOARDS_CHART.DASHBOARD_ID " +
+            "group by DASHBOARD_ID " +
+            "having count(*)=1) x " +
+            "where X.USER_NAME = #{from} AND REGEXP_LIKE (nvl(BD_CODE,' '), '([[:alnum:]]+_){2}')" })
+    List<DashboardCopyInfo> getFromSobDashboard(@Param("from") String from);
+
+    /**
+     * 查询数据链接
+     * @return
+     */
+    @Select("SELECT id,BASES_NAME name,addrass,port,DATABASE_TYPE databaseType,DATA_NAME dataName,USER_NAME userName,PASS_WORD passWord,note FROM BI_DATABASES where id = #{id}")
+    DatabasesInfo getDatabasesInfo(@Param("id") String id);
+
+    /**
+     * 调用存储过程,刷新数据链接后缀
+     */
+    @Select({ "call SP_BI_SYNC(#{from,mode=IN,jdbcType=VARCHAR},"
+            + "#{res,mode=OUT,jdbcType=VARCHAR})" })
+    @Options(statementType=StatementType.CALLABLE)
+    String sp_sync(@Param("from") String from,@Param("res") String res);
+
+    /**
+     * 调用存储过程,删除目标账套所有报表配置(除数据链接)
+     */
+    @Select({ "call SP_BI_CLEAN_SOB(#{from,mode=IN,jdbcType=VARCHAR},"
+            + "#{res,mode=OUT,jdbcType=VARCHAR})" })
+    @Options(statementType=StatementType.CALLABLE)
+    String sp_clean_sob(@Param("from") String from,@Param("res") String res);
+}

+ 16 - 1
bi-server/src/main/java/com/usoftchina/bi/server/dao/user/UserMapper.java

@@ -18,6 +18,20 @@ public interface UserMapper {
     @Select("SELECT COUNT(*) FROM bi_users")
     int getCount();
 
+    /**
+     * 获取主账套
+     * @return
+     */
+    @Select("SELECT id FROM BI_DATABASES where ismaster = 1 and rownum<2")
+    String getMasterId();
+
+    /**
+     * 获取目标账套数据链接ID
+     * @return
+     */
+    @Select("SELECT id FROM BI_DATABASES where USER_NAME = #{name} and rownum<2")
+    String getMasterIdByName(@Param("name") String name);
+
     /**
      * 查询UAS的人员资料表数据
      * @return
@@ -31,13 +45,14 @@ public interface UserMapper {
      * @param userList
      */
     @Insert("<script>"
-            + "INSERT INTO BI_USERS(BU_ID, BU_NAME, BU_POST, USER_NAME, PASS_WORD, BU_DEPARTMENT, CREATE_DATE) "
+            + "INSERT INTO BI_USERS(BU_ID, BU_NAME, BU_POST,BU_ROLE, USER_NAME, PASS_WORD, BU_DEPARTMENT, CREATE_DATE) "
             + "SELECT M.* FROM ("
             +   "<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\"UNION ALL\">"
             +       "SELECT "
             +           "#{item.id, jdbcType=INTEGER},"
             +           "#{item.name, jdbcType=VARCHAR},"
             +           "#{item.post, jdbcType=VARCHAR},"
+            +           "#{item.role, jdbcType=VARCHAR},"
             +           "#{item.userName, jdbcType=VARCHAR},"
             +           "#{item.passWord, jdbcType=VARCHAR},"
             +           "#{item.department, jdbcType=VARCHAR},"

+ 76 - 0
bi-server/src/main/java/com/usoftchina/bi/server/model/po/RefreshData.java

@@ -0,0 +1,76 @@
+package com.usoftchina.bi.server.model.po;
+
+public class RefreshData {
+    private String sob;
+    private String address;
+    private String port;
+    private String sid;
+    private String em_name;
+    private String em_code;
+    private String em_id;
+    private String res = "";
+
+    public String getSob() {
+        return sob;
+    }
+
+    public void setSob(String sob) {
+        this.sob = sob;
+    }
+
+    public String getRes() {
+        return res;
+    }
+
+    public void setRes(String res) {
+        this.res = res;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    public String getSid() {
+        return sid;
+    }
+
+    public void setSid(String sid) {
+        this.sid = sid;
+    }
+
+    public String getEm_name() {
+        return em_name;
+    }
+
+    public void setEm_name(String em_name) {
+        this.em_name = em_name;
+    }
+
+    public String getEm_code() {
+        return em_code;
+    }
+
+    public void setEm_code(String em_code) {
+        this.em_code = em_code;
+    }
+
+    public String getEm_id() {
+        return em_id;
+    }
+
+    public void setEm_id(String em_id) {
+        this.em_id = em_id;
+    }
+}

+ 49 - 0
bi-server/src/main/java/com/usoftchina/bi/server/model/po/SyncData.java

@@ -0,0 +1,49 @@
+package com.usoftchina.bi.server.model.po;
+
+public class SyncData {
+    private String from;
+    private String fromName;
+    private String to;
+    private String toName;
+    private String emName;
+
+    public String getEmName() {
+        return emName;
+    }
+
+    public void setEmName(String emName) {
+        this.emName = emName;
+    }
+
+    public String getFromName() {
+        return fromName;
+    }
+
+    public void setFromName(String fromName) {
+        this.fromName = fromName;
+    }
+
+    public String getToName() {
+        return toName;
+    }
+
+    public void setToName(String toName) {
+        this.toName = toName;
+    }
+
+    public String getFrom() {
+        return from;
+    }
+
+    public void setFrom(String from) {
+        this.from = from;
+    }
+
+    public String getTo() {
+        return to;
+    }
+
+    public void setTo(String to) {
+        this.to = to;
+    }
+}

+ 29 - 0
bi-server/src/main/java/com/usoftchina/bi/server/model/vo/dataVo/DashboardCopyInfo.java

@@ -16,6 +16,27 @@ public class DashboardCopyInfo implements Serializable {
      */
     private int dataSourceId;
 
+    private String lastName = "_副本";
+
+    private String newCode = "";
+
+    public DashboardCopyInfo() {}
+
+    public DashboardCopyInfo(int dashboardId, int dataSourceId ,String lastName ,String newCode) {
+        this.dashboardId = dashboardId;
+        this.dataSourceId = dataSourceId;
+        this.lastName = lastName;
+        this.newCode = newCode;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
     public int getDashboardId() {
         return dashboardId;
     }
@@ -31,4 +52,12 @@ public class DashboardCopyInfo implements Serializable {
     public void setDataSourceId(int dataSourceId) {
         this.dataSourceId = dataSourceId;
     }
+
+    public String getNewCode() {
+        return newCode;
+    }
+
+    public void setNewCode(String newCode) {
+        this.newCode = newCode;
+    }
 }

+ 12 - 1
bi-server/src/main/java/com/usoftchina/bi/server/model/vo/dataVo/DataSourceCopyInfo.java

@@ -16,6 +16,16 @@ public class DataSourceCopyInfo implements Serializable {
      */
     private int dataConnectionId;
 
+    private String lastName = "_副本";
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
     public int getDataSourceId() {
         return dataSourceId;
     }
@@ -35,8 +45,9 @@ public class DataSourceCopyInfo implements Serializable {
     public DataSourceCopyInfo() {
     }
 
-    public DataSourceCopyInfo(int dataSourceId, int dataConnectionId) {
+    public DataSourceCopyInfo(int dataSourceId, int dataConnectionId ,String lastName) {
         this.dataSourceId = dataSourceId;
         this.dataConnectionId = dataConnectionId;
+        this.lastName = lastName;
     }
 }

+ 108 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/common/UASService.java

@@ -0,0 +1,108 @@
+package com.usoftchina.bi.server.service.common;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.bi.core.base.BaseContextHolder;
+import com.usoftchina.bi.core.base.RepCode;
+import com.usoftchina.bi.core.base.RepEntity;
+import com.usoftchina.bi.core.base.TestPage;
+import com.usoftchina.bi.core.jdbc.DynamicDataSourceContextHolder;
+import com.usoftchina.bi.server.aspect.JwtTokenAspect;
+import com.usoftchina.bi.server.dao.common.MessageLogMapper;
+import com.usoftchina.bi.server.dao.common.UASMapper;
+import com.usoftchina.bi.server.dao.user.UserMapper;
+import com.usoftchina.bi.server.model.po.*;
+import com.usoftchina.bi.server.model.vo.configVo.DatabasesInfo;
+import com.usoftchina.bi.server.model.vo.dataVo.DashboardCopyInfo;
+import com.usoftchina.bi.server.model.vo.dataVo.DataSourceCopyInfo;
+import com.usoftchina.bi.server.service.dashboard.DashboardsService;
+import com.usoftchina.bi.server.service.dataSource.DataBasesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.usoftchina.bi.server.model.vo.dataVo.DashboardCopyInfo;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author hy
+ * @Date 2019-04-26
+ */
+@Service
+public class UASService {
+
+    @Autowired
+    private UASMapper uasMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    JwtTokenAspect jwtTokenUtil;
+
+    @Autowired
+    DashboardsService dashboardsService;
+
+    @Autowired
+    DataBasesService dataBasesService;
+
+    public String refreshData(RefreshData refreshData){
+        uasMapper.sp_refreshdata(refreshData);
+        String BI_DATABASES_ID = refreshData.getRes();
+        //添加数据源可切换
+        DatabasesInfo databasesInfo = uasMapper.getDatabasesInfo(BI_DATABASES_ID);
+        dataBasesService.addDataSource(databasesInfo);
+        //把人员信息重新插入一遍
+        //切换到主账套
+        DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(BI_DATABASES_ID));
+        List<User> userList = userMapper.getUASEmployee();
+        DynamicDataSourceContextHolder.setDataSourceType("[]");
+        userMapper.batchInsert(userList);
+        return "true";
+    }
+
+    public String sync(SyncData syncData){
+        //校验from 和 to  是否存在
+        String id = userMapper.getMasterId();
+        if(!StringUtils.hasText(id)){
+            return "主账套还未初始化,请初始化后再使用同步功能";
+        }
+        int hasFrom = uasMapper.checkDataBase(syncData.getFrom());
+        int hasTo = uasMapper.checkDataBase(syncData.getTo());
+        if(hasFrom==0){
+            //插入数据源
+            return "来源账套还未初始化,请初始化后再使用同步功能";
+        }
+        if(hasTo==0){
+            //插入数据源
+            uasMapper.insertDataBase(syncData.getToName(),syncData.getTo(),id);
+        }
+        //目标账套数据源ID
+        String to_basedata_id = userMapper.getMasterIdByName(syncData.getTo());
+        //添加数据源可切换
+        DatabasesInfo databasesInfo = uasMapper.getDatabasesInfo(to_basedata_id);
+        dataBasesService.addDataSource(databasesInfo);
+        //删除目标数据源所有标准报表
+        uasMapper.sp_clean_sob(syncData.getTo(),"");
+        //模拟登录
+        User user = userMapper.getLogin(syncData.getEmName());
+        String token = jwtTokenUtil.createToke(user).getToken();
+        //查找所有符合条件的Dashboard
+        List<DashboardCopyInfo> list = uasMapper.getFromSobDashboard(syncData.getFrom());
+        for (  DashboardCopyInfo dashboardCopyInfo : list) {
+            dashboardCopyInfo.setLastName("_" + syncData.getToName());
+            dashboardCopyInfo.setDataSourceId(Integer.valueOf(to_basedata_id));
+            //复制报表
+            dashboardsService.copy(token,dashboardCopyInfo);
+        }
+        //更新标准的旧报表编号账套后缀
+        uasMapper.sp_sync(syncData.getTo(),"");
+        return "true";
+    }
+}

+ 12 - 7
bi-server/src/main/java/com/usoftchina/bi/server/service/dashboard/DashboardsService.java

@@ -328,10 +328,10 @@ public class DashboardsService {
      * @param dashboardCopyInfo
      * @return
      */
-    @Transactional
     public RepEntity copy(String token, DashboardCopyInfo dashboardCopyInfo) {
-        int userId = BaseContextHolder.getUserId();
-        String userName = BaseContextHolder.getUserName();
+        Map<String,String> userData = GetTokenDataUtil.getTokenData(token);
+        int userId = Integer.valueOf(userData.get("id"));
+        String userName = userData.get("name");
         int dashboardId = dashboardCopyInfo.getDashboardId(),
             dataSourceId = dashboardCopyInfo.getDataSourceId();
         List<String> idList = new ArrayList<>();
@@ -343,10 +343,10 @@ public class DashboardsService {
             for (int i = 0, len = idArray.length; i < len; i++) {
                 ChartConfig chartConfig = chartsConfigMapper.getOneChart(Integer.valueOf(idArray[i]));
                 int oldChartId = chartConfig.getChartId();
-                chartConfig.setChartName(chartConfig.getChartName() + "_副本");
+                chartConfig.setChartName(chartConfig.getChartName() + dashboardCopyInfo.getLastName());
                 chartConfig.setCreateBy(userName);
                 chartConfig.setCreateId(userId);
-                int dataId = dataConnectorService.copyDataSource(token, new DataSourceCopyInfo(chartConfig.getDataId(), dataSourceId)).getData();
+                int dataId = dataConnectorService.copyDataSource(token, new DataSourceCopyInfo(chartConfig.getDataId(), dataSourceId ,dashboardCopyInfo.getLastName())).getData();
                 chartConfig.setDataId(dataId);
                 chartsConfigMapper.insertCharts(chartConfig);
                 int newChartId = chartConfig.getChartId();
@@ -357,7 +357,7 @@ public class DashboardsService {
         //复制报表
         int dashboardCreatorId = dashboardsMapper.getCreateIdById(dashboardId);
         Dashboards dashboards = dashboardsMapper.getDashboards(dashboardCreatorId, dashboardId);
-        dashboards.setBdName(dashboards.getBdName() + "_副本");
+        dashboards.setBdName(dashboards.getBdName() + dashboardCopyInfo.getLastName());
         JSONArray jsonArray = JSON.parseArray(dashboards.getBdConfiguration());
         for (int i = 0, len = jsonArray.size(); i < len; i++) {
             JSONObject json = jsonArray.getJSONObject(i);
@@ -371,7 +371,12 @@ public class DashboardsService {
         dashboards.setCreateBy(userName);
         dashboards.setCreateId(userId);
         dashboards.setDemo(false);
-        dashboards.setBdCode(generateUUCode(0));
+        if(StringUtils.hasText(dashboardCopyInfo.getNewCode()) && dashboardCopyInfo.getNewCode().length()>0){
+            dashboards.setBdCode(dashboardCopyInfo.getNewCode());
+        }else{
+            dashboards.setBdCode(generateUUCode(0));
+        }
+
         dashboardsMapper.setDashboards(dashboards);
         String[] ids = String.join(",", idList).split(",");
         dashboardsMapper.saveDashboardChartRelation(dashboards.getId(), ids);

+ 1 - 1
bi-server/src/main/java/com/usoftchina/bi/server/service/dataSource/DataBasesService.java

@@ -220,7 +220,7 @@ public class DataBasesService {
     }
 
     //添加数据源
-    private void addDataSource(DatabasesInfo databasesInfo) {
+    public void addDataSource(DatabasesInfo databasesInfo) {
         //额外的数据源
         Map<String, Object> dsMap = new HashMap<>();
         dsMap.put("driver", "oracle.jdbc.driver.OracleDriver");

+ 6 - 4
bi-server/src/main/java/com/usoftchina/bi/server/service/dataSource/DataConnectorService.java

@@ -36,6 +36,7 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.dao.DataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
@@ -412,8 +413,9 @@ public class DataConnectorService {
      * @return
      */
     public RepEntity<Integer> copyDataSource(String token, DataSourceCopyInfo dataSourceCopyInfo){
-        int userId = BaseContextHolder.getUserId();
-        String userName = BaseContextHolder.getUserName();
+        Map<String,String> userData = GetTokenDataUtil.getTokenData(token);
+        int userId = Integer.valueOf(userData.get("id"));
+        String userName = userData.get("name");
 
         int dataSourceId = dataSourceCopyInfo.getDataSourceId(),
             dataConnectionId = dataSourceCopyInfo.getDataConnectionId();
@@ -422,7 +424,7 @@ public class DataConnectorService {
         //校验SQL语句是否可正确在目标数据库执行
         enableCopy(loadObject, dataConnectionId);
         //复制数据源
-        dataConnector.setDataName(dataConnector.getDataName() + "_副本");
+        dataConnector.setDataName(dataConnector.getDataName() + dataSourceCopyInfo.getLastName());
         dataConnector.setCreateBy(userName);
         dataConnector.setCreateId(userId);
         dataConnector.setDbConId(String.valueOf(dataConnectionId));
@@ -437,7 +439,7 @@ public class DataConnectorService {
      * @param loadObject
      * @param dataConnectionId
      */
-    private void enableCopy(String loadObject, int dataConnectionId){
+    public void enableCopy(String loadObject, int dataConnectionId){
         DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(dataConnectionId));
         if (!loadObject.toUpperCase().startsWith("SELECT")) {
             loadObject = "SELECT * FROM " + loadObject;

+ 5 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/user/UserService.java

@@ -3,6 +3,7 @@ package com.usoftchina.bi.server.service.user;
 import com.usoftchina.bi.core.base.RepCode;
 import com.usoftchina.bi.core.base.RepEntity;
 import com.usoftchina.bi.core.exception.MyException;
+import com.usoftchina.bi.core.jdbc.DynamicDataSourceContextHolder;
 import com.usoftchina.bi.core.utils.EncryUtil;
 import com.usoftchina.bi.server.aspect.JwtTokenAspect;
 import com.usoftchina.bi.server.dao.user.UserMapper;
@@ -87,8 +88,10 @@ public class UserService {
     private void copyUserFromUAS(){
         int count = userMapper.getCount();
         if (count == 0) {
+            DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(userMapper.getMasterId()));
             List<User> userList = userMapper.getUASEmployee();
             //userList.forEach(user -> user.setPassWord(EncryUtil.decryptPassword(user.getPassWord())));
+            DynamicDataSourceContextHolder.setDataSourceType(String.valueOf("[]"));
             userMapper.batchInsert(userList);
         }
     }
@@ -100,7 +103,9 @@ public class UserService {
      * @return
      */
     private User findUserFromUAS(String userName, String pws){
+        DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(userMapper.getMasterId()));
         User user = userMapper.getUserMess(userName);
+        DynamicDataSourceContextHolder.setDataSourceType(String.valueOf("[]"));
         if (null == user) {
             throw new MyException(RepCode.NoUser);
         }