chenw пре 7 година
родитељ
комит
e88aaf65ba

+ 6 - 1
bi-server/src/main/java/com/usoftchina/bi/server/model/vo/dataVo/DashboardCopyInfo.java

@@ -7,8 +7,13 @@ import java.io.Serializable;
  * @Date 2019-04-09
  */
 public class DashboardCopyInfo implements Serializable {
-
+    /**
+     * 看板ID
+     */
     private int dashboardId;
+    /**
+     * 数据连接ID
+     */
     private int dataSourceId;
 
     public int getDashboardId() {

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

@@ -21,8 +21,10 @@ import com.usoftchina.bi.server.model.vo.configVo.ChangeOrderInfo;
 import com.usoftchina.bi.server.model.vo.configVo.DashboardsInfo;
 import com.usoftchina.bi.server.model.vo.dataVo.DashboardCopyInfo;
 import com.usoftchina.bi.server.model.vo.dataVo.DashboardOrderInfo;
+import com.usoftchina.bi.server.model.vo.dataVo.DataSourceCopyInfo;
 import com.usoftchina.bi.server.service.chart.ChartsUtilService;
 import com.usoftchina.bi.core.utils.GetTokenDataUtil;
+import com.usoftchina.bi.server.service.dataSource.DataConnectorService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,6 +45,8 @@ public class DashboardsService {
     @Autowired
     ChartsUtilService chartsUtilService;
     @Autowired
+    private DataConnectorService dataConnectorService;
+    @Autowired
     private ChartsConfigMapper chartsConfigMapper;
 
     /*
@@ -304,7 +308,7 @@ public class DashboardsService {
         int userId = Integer.parseInt(resultMap.get("id"));
         String userName = resultMap.get("name");
         int dashboardId = dashboardCopyInfo.getDashboardId(),
-             dataSourceId = dashboardCopyInfo.getDataSourceId();
+            dataSourceId = dashboardCopyInfo.getDataSourceId();
         List<String> idList = new ArrayList<>();
         Map<String, String> idMap = new HashMap<>();
         //复制图表
@@ -317,7 +321,8 @@ public class DashboardsService {
                 chartConfig.setChartName(chartConfig.getChartName() + "_副本");
                 chartConfig.setCreateBy(userName);
                 chartConfig.setCreateId(userId);
-                chartConfig.setDataId(dataSourceId);
+                int dataId = dataConnectorService.copyDataSource(token, new DataSourceCopyInfo(chartConfig.getDataId(), dataSourceId)).getData();
+                chartConfig.setDataId(dataId);
                 chartsConfigMapper.insertCharts(chartConfig);
                 int newChartId = chartConfig.getChartId();
                 idMap.put(String.valueOf(oldChartId), String.valueOf(newChartId));

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

@@ -358,7 +358,7 @@ public class DataConnectorService {
      * @param dataSourceCopyInfo
      * @return
      */
-    public RepEntity copyDataSource(String token, DataSourceCopyInfo dataSourceCopyInfo){
+    public RepEntity<Integer> copyDataSource(String token, DataSourceCopyInfo dataSourceCopyInfo){
         Map<String, String> resultMap = GetTokenDataUtil.getTokenData(token);
         int userId = Integer.parseInt(resultMap.get("id"));
         String userName = resultMap.get("name");
@@ -369,7 +369,7 @@ public class DataConnectorService {
         String loadObject = dataConnector.getLoadObject();
         //校验SQL语句是否可正确在目标数据库执行
         enableCopy(loadObject, dataConnectionId);
-        //复制数据源,开启事务
+        //复制数据源
         dataConnector.setDataName(dataConnector.getDataName() + "_副本");
         dataConnector.setCreateBy(userName);
         dataConnector.setCreateId(userId);