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 @@