diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataset/service/impl/DataSetServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataset/service/impl/DataSetServiceImpl.java
index f5469da3..62e9a931 100644
--- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataset/service/impl/DataSetServiceImpl.java
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataset/service/impl/DataSetServiceImpl.java
@@ -26,6 +26,8 @@ import com.anjiplus.template.gaea.business.modules.datasettransform.service.Data
import com.anjiplus.template.gaea.business.modules.datasource.controller.dto.DataSourceDto;
import com.anjiplus.template.gaea.business.modules.datasource.dao.entity.DataSource;
import com.anjiplus.template.gaea.business.modules.datasource.service.DataSourceService;
+import com.anjiplus.template.gaea.business.modules.report.controller.dto.ReportDto;
+import com.anjiplus.template.gaea.business.modules.report.dao.entity.Report;
import com.anjiplus.template.gaea.business.util.JdbcConstants;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -388,11 +390,11 @@ public class DataSetServiceImpl implements DataSetService {
if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(dto.getSetCode())) {
throw BusinessExceptionBuilder.build(ResponseCode.NOT_NULL, "数据集编码");
}
- String setCode = dto.getSetCode();
- DataSet ds = new DataSet();
- GaeaBeanUtils.copyAndFormatter(ds,dto);
- insert(ds);
- String copySetCode = ds.getSetCode();
+ DataSet dataSet = selectOne(dto.getId());
+ String setCode = dataSet.getSetCode();
+ DataSet dateSetCopy = copyDataSet(dataSet, dto);
+ insert(dateSetCopy);
+ String copySetCode = dateSetCopy.getSetCode();
DataSetParam dataSetParam = dataSetParamService.selectOne("set_code", setCode);
if (null != dataSetParam){
dataSetParam.setId(null);
@@ -465,4 +467,14 @@ public class DataSetServiceImpl implements DataSetService {
return map;
}
+ private DataSet copyDataSet(DataSet dataSet, DataSetDto dto){
+ //复制主表数据
+ DataSet copyDataSet = new DataSet();
+ GaeaBeanUtils.copyAndFormatter(dataSet, copyDataSet);
+ copyDataSet.setSetCode(dto.getSetCode());
+ copyDataSet.setSetName(dto.getSetName());
+ copyDataSet.setId(null);
+ return copyDataSet;
+ }
+
}
diff --git a/report-core/src/main/resources/db/migration/V1.4.3__update.sql b/report-core/src/main/resources/db/migration/V1.4.3__update.sql
index 9b06b43e..f8788adf 100644
--- a/report-core/src/main/resources/db/migration/V1.4.3__update.sql
+++ b/report-core/src/main/resources/db/migration/V1.4.3__update.sql
@@ -1,7 +1,17 @@
-- 分享表增加report_name
-ALTER TABLE `aj_report`.`gaea_report_share` ADD `report_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称' AFTER `report_code`;
+ALTER TABLE `gaea_report_share` ADD `report_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称' AFTER `report_code`;
-- 更新report_name
-UPDATE `aj_report`.`gaea_report_share` t1
+UPDATE `gaea_report_share` t1
INNER JOIN `aj_report`.`gaea_report` t2 on t1.report_code=t2.report_code
- SET t1.report_name=t2.report_name;
\ No newline at end of file
+ SET t1.report_name=t2.report_name;
+
+-- 数据集复制
+INSERT INTO `access_authority`(`parent_target`, `target`, `target_name`, `action`, `action_name`, `sort`, `enable_flag`, `delete_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `version`)
+VALUES
+('report', 'resultsetManage', '数据集管理', 'copy', '数据集复制', 204, 1, 0, 'admin', '2019-07-23 15:59:40', 'admin', '2019-07-23 15:59:40', 1);
+
+-- root用户赋权
+INSERT INTO `access_role_authority`(`role_code`, `target`, `action`)
+VALUES
+('root', 'resultsetManage', 'copy');
diff --git a/report-ui/src/api/reportDataSet.js b/report-ui/src/api/reportDataSet.js
index 8d5579e5..9ab7a964 100644
--- a/report-ui/src/api/reportDataSet.js
+++ b/report-ui/src/api/reportDataSet.js
@@ -39,4 +39,12 @@ export function reportDataSetDetail(data) {
})
}
+export function reportDataSetCopy(data) {
+ return request({
+ url: '/dataSet/copy',
+ method: 'post',
+ data
+ })
+}
+
export default { reportDataSetList, reportDataSetAdd, reportDataSetDeleteBatch, reportDataSetUpdate, reportDataSetDetail }
diff --git a/report-ui/src/views/resultset/components/copyDialog.vue b/report-ui/src/views/resultset/components/copyDialog.vue
new file mode 100644
index 00000000..42baf5fc
--- /dev/null
+++ b/report-ui/src/views/resultset/components/copyDialog.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
diff --git a/report-ui/src/views/resultset/index.vue b/report-ui/src/views/resultset/index.vue
index 256852df..52e878f2 100644
--- a/report-ui/src/views/resultset/index.vue
+++ b/report-ui/src/views/resultset/index.vue
@@ -1,6 +1,6 @@