Commit 0d3efe4f80073db60a0d016ee1422d1faa4b295f
Committed by
YunaiV
1 parent
5e9cbb9c
【优化】ureport2菜单,初始化数据,按照规范重新进行命名处理
Showing
24 changed files
with
560 additions
and
568 deletions
sql/mysql/Ureport.sql
| @@ -4,8 +4,8 @@ INSERT INTO system_menu( | @@ -4,8 +4,8 @@ INSERT INTO system_menu( | ||
| 4 | path, icon, component, status, component_name | 4 | path, icon, component, status, component_name |
| 5 | ) | 5 | ) |
| 6 | VALUES ( | 6 | VALUES ( |
| 7 | - 'Ureport2报表', '', 2, 0, 1281, | ||
| 8 | - 'ureport-file', '', 'report/ureport/index', 0, 'UreportFile' | 7 | + 'Ureport2报表管理', '', 2, 0, 1281, |
| 8 | + 'ureport-data', '', 'report/ureport/index', 0, 'UReportData' | ||
| 9 | ); | 9 | ); |
| 10 | 10 | ||
| 11 | -- 按钮父菜单ID | 11 | -- 按钮父菜单ID |
| @@ -18,7 +18,7 @@ INSERT INTO system_menu( | @@ -18,7 +18,7 @@ INSERT INTO system_menu( | ||
| 18 | path, icon, component, status | 18 | path, icon, component, status |
| 19 | ) | 19 | ) |
| 20 | VALUES ( | 20 | VALUES ( |
| 21 | - 'Ureport2报表查询', 'report:ureport-file:query', 3, 1, @parentId, | 21 | + 'Ureport2报表查询', 'report:ureport-data:query', 3, 1, @parentId, |
| 22 | '', '', '', 0 | 22 | '', '', '', 0 |
| 23 | ); | 23 | ); |
| 24 | INSERT INTO system_menu( | 24 | INSERT INTO system_menu( |
| @@ -26,7 +26,7 @@ INSERT INTO system_menu( | @@ -26,7 +26,7 @@ INSERT INTO system_menu( | ||
| 26 | path, icon, component, status | 26 | path, icon, component, status |
| 27 | ) | 27 | ) |
| 28 | VALUES ( | 28 | VALUES ( |
| 29 | - 'Ureport2报表创建', 'report:ureport-file:create', 3, 2, @parentId, | 29 | + 'Ureport2报表创建', 'report:ureport-data:create', 3, 2, @parentId, |
| 30 | '', '', '', 0 | 30 | '', '', '', 0 |
| 31 | ); | 31 | ); |
| 32 | INSERT INTO system_menu( | 32 | INSERT INTO system_menu( |
| @@ -34,7 +34,7 @@ INSERT INTO system_menu( | @@ -34,7 +34,7 @@ INSERT INTO system_menu( | ||
| 34 | path, icon, component, status | 34 | path, icon, component, status |
| 35 | ) | 35 | ) |
| 36 | VALUES ( | 36 | VALUES ( |
| 37 | - 'Ureport2报表更新', 'report:ureport-file:update', 3, 3, @parentId, | 37 | + 'Ureport2报表更新', 'report:ureport-data:update', 3, 3, @parentId, |
| 38 | '', '', '', 0 | 38 | '', '', '', 0 |
| 39 | ); | 39 | ); |
| 40 | INSERT INTO system_menu( | 40 | INSERT INTO system_menu( |
| @@ -42,7 +42,7 @@ INSERT INTO system_menu( | @@ -42,7 +42,7 @@ INSERT INTO system_menu( | ||
| 42 | path, icon, component, status | 42 | path, icon, component, status |
| 43 | ) | 43 | ) |
| 44 | VALUES ( | 44 | VALUES ( |
| 45 | - 'Ureport2报表删除', 'report:ureport-file:delete', 3, 4, @parentId, | 45 | + 'Ureport2报表删除', 'report:ureport-data:delete', 3, 4, @parentId, |
| 46 | '', '', '', 0 | 46 | '', '', '', 0 |
| 47 | ); | 47 | ); |
| 48 | INSERT INTO system_menu( | 48 | INSERT INTO system_menu( |
| @@ -50,28 +50,28 @@ INSERT INTO system_menu( | @@ -50,28 +50,28 @@ INSERT INTO system_menu( | ||
| 50 | path, icon, component, status | 50 | path, icon, component, status |
| 51 | ) | 51 | ) |
| 52 | VALUES ( | 52 | VALUES ( |
| 53 | - 'Ureport2报表导出', 'report:ureport-file:export', 3, 5, @parentId, | 53 | + 'Ureport2报表导出', 'report:ureport-data:export', 3, 5, @parentId, |
| 54 | '', '', '', 0 | 54 | '', '', '', 0 |
| 55 | ); | 55 | ); |
| 56 | 56 | ||
| 57 | 57 | ||
| 58 | --- 创建数据库表 | ||
| 59 | -DROP TABLE IF EXISTS `ureport_file`; | ||
| 60 | -CREATE TABLE `ureport_file` ( | ||
| 61 | - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', | ||
| 62 | - `file_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名称', | ||
| 63 | - `status` tinyint(4) NOT NULL COMMENT '状态', | ||
| 64 | - `file_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文件内容', | ||
| 65 | - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 66 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 67 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 68 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 69 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 70 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 71 | - `tenant_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 72 | - PRIMARY KEY (`id`) USING BTREE | 58 | +DROP TABLE IF EXISTS `report_ureport_data`; |
| 59 | +CREATE TABLE `report_ureport_data` ( | ||
| 60 | + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', | ||
| 61 | + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名称', | ||
| 62 | + `status` tinyint(4) NOT NULL COMMENT '状态', | ||
| 63 | + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文件内容', | ||
| 64 | + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 65 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 66 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 67 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 68 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 69 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 70 | + `tenant_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 71 | + PRIMARY KEY (`id`) USING BTREE | ||
| 73 | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Ureport2报表' ROW_FORMAT = Dynamic; | 72 | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Ureport2报表' ROW_FORMAT = Dynamic; |
| 74 | 73 | ||
| 75 | - | ||
| 76 | --- 插入测试报表 | ||
| 77 | -INSERT INTO `ureport_file` (`id`, `file_name`, `status`, `file_content`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, '角色对应的用户列表.ureport.xml', 0, '<?xml version=\"1.0\" encoding=\"UTF-8\"?><ureport><cell expand=\"None\" name=\"A1\" row=\"1\" col=\"1\"><cell-style font-size=\"10\" font-family=\"黑体\" bold=\"true\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><simple-value><![CDATA[角色名称]]></simple-value></cell><cell expand=\"None\" name=\"B1\" row=\"1\" col=\"2\"><cell-style font-size=\"10\" font-family=\"黑体\" bold=\"true\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><simple-value><![CDATA[角色编码]]></simple-value></cell><cell expand=\"None\" name=\"C1\" row=\"1\" col=\"3\"><cell-style font-size=\"10\" font-family=\"黑体\" bold=\"true\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><simple-value><![CDATA[昵称]]></simple-value></cell><cell expand=\"None\" name=\"D1\" row=\"1\" col=\"4\"><cell-style font-size=\"10\" font-family=\"黑体\" bold=\"true\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><simple-value><![CDATA[邮箱]]></simple-value></cell><cell expand=\"None\" name=\"E1\" row=\"1\" col=\"5\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"黑体\" bold=\"true\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><simple-value><![CDATA[手机]]></simple-value></cell><cell expand=\"None\" name=\"F1\" row=\"1\" col=\"6\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"宋体\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"Down\" name=\"A2\" row=\"2\" col=\"1\"><cell-style font-size=\"10\" font-family=\"黑体\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><dataset-value dataset-name=\"sys_role\" aggregate=\"group\" property=\"role_name\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"B2\" row=\"2\" col=\"2\"><cell-style font-size=\"10\" font-family=\"黑体\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><dataset-value dataset-name=\"sys_role\" aggregate=\"group\" property=\"role_code\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"C2\" row=\"2\" col=\"3\"><cell-style font-size=\"10\" font-family=\"黑体\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><dataset-value dataset-name=\"sys_role\" aggregate=\"group\" property=\"nickname\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"D2\" row=\"2\" col=\"4\"><cell-style font-size=\"10\" font-family=\"黑体\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><dataset-value dataset-name=\"sys_role\" aggregate=\"group\" property=\"email\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"E2\" row=\"2\" col=\"5\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"黑体\" align=\"center\" valign=\"middle\"><left-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><right-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><top-border width=\"1\" style=\"solid\" color=\"0,0,0\"/><bottom-border width=\"1\" style=\"solid\" color=\"0,0,0\"/></cell-style><dataset-value dataset-name=\"sys_role\" aggregate=\"group\" property=\"mobile\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"None\" name=\"F2\" row=\"2\" col=\"6\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"宋体\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"A3\" row=\"3\" col=\"1\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"B3\" row=\"3\" col=\"2\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"C3\" row=\"3\" col=\"3\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"D3\" row=\"3\" col=\"4\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"E3\" row=\"3\" col=\"5\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"宋体\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"F3\" row=\"3\" col=\"6\"><cell-style font-size=\"9\" forecolor=\"0,0,0\" font-family=\"宋体\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><row row-number=\"1\" height=\"18\"/><row row-number=\"2\" height=\"18\"/><row row-number=\"3\" height=\"18\"/><column col-number=\"1\" width=\"80\"/><column col-number=\"2\" width=\"80\"/><column col-number=\"3\" width=\"80\"/><column col-number=\"4\" width=\"80\"/><column col-number=\"5\" width=\"74\"/><column col-number=\"6\" width=\"74\"/><datasource name=\"UreportDataSource\" type=\"buildin\"><dataset name=\"sys_role\" type=\"sql\"><sql><![CDATA[SELECT sr.name as role_name ,sr.code as role_code,su.username ,su.nickname ,su.email,su.mobile \nFROM system_role sr\nLEFT JOIN system_user_role sur ON sr.id = sur.role_id\nLEFT JOIN system_users su ON sur.user_id = su.id]]></sql><field name=\"role_name\"/><field name=\"role_code\"/><field name=\"username\"/><field name=\"nickname\"/><field name=\"email\"/><field name=\"mobile\"/></dataset></datasource><paper type=\"A4\" left-margin=\"90\" right-margin=\"90\"\n top-margin=\"72\" bottom-margin=\"72\" paging-mode=\"fitpage\" fixrows=\"0\"\n width=\"595\" height=\"842\" orientation=\"portrait\" html-report-align=\"left\" bg-image=\"\" html-interval-refresh-value=\"0\" column-enabled=\"false\"></paper></ureport>', NULL, NULL, '2023-11-22 22:02:44', NULL, '2023-11-22 22:06:51', b'0', 0); | 74 | +-- ---------------------------- |
| 75 | +-- Records of report_ureport_data | ||
| 76 | +-- ---------------------------- | ||
| 77 | +INSERT INTO `report_ureport_data` VALUES (11, 'role.ureport.xml', 0, '<?xml version=\"1.0\" encoding=\"UTF-8\"?><ureport><cell expand=\"Down\" name=\"A1\" row=\"1\" col=\"1\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><dataset-value dataset-name=\"role\" aggregate=\"group\" property=\"name\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"B1\" row=\"1\" col=\"2\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><dataset-value dataset-name=\"role\" aggregate=\"group\" property=\"code\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"Down\" name=\"C1\" row=\"1\" col=\"3\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><dataset-value dataset-name=\"role\" aggregate=\"group\" property=\"status\" order=\"none\" mapping-type=\"simple\"></dataset-value></cell><cell expand=\"None\" name=\"D1\" row=\"1\" col=\"4\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"A2\" row=\"2\" col=\"1\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"B2\" row=\"2\" col=\"2\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"C2\" row=\"2\" col=\"3\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"D2\" row=\"2\" col=\"4\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"A3\" row=\"3\" col=\"1\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"B3\" row=\"3\" col=\"2\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"C3\" row=\"3\" col=\"3\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand=\"None\" name=\"D3\" row=\"3\" col=\"4\"><cell-style font-size=\"10\" align=\"center\" valign=\"middle\"></cell-style><simple-value><![CDATA[]]></simple-value></cell><row row-number=\"1\" height=\"18\"/><row row-number=\"2\" height=\"18\"/><row row-number=\"3\" height=\"18\"/><column col-number=\"1\" width=\"80\"/><column col-number=\"2\" width=\"80\"/><column col-number=\"3\" width=\"80\"/><column col-number=\"4\" width=\"80\"/><datasource name=\"UReportDataSource\" type=\"buildin\"><dataset name=\"role\" type=\"sql\"><sql><![CDATA[select * from system_role]]></sql><field name=\"id\"/><field name=\"name\"/><field name=\"code\"/><field name=\"sort\"/><field name=\"data_scope\"/><field name=\"data_scope_dept_ids\"/><field name=\"status\"/><field name=\"type\"/><field name=\"remark\"/><field name=\"creator\"/><field name=\"create_time\"/><field name=\"updater\"/><field name=\"update_time\"/><field name=\"deleted\"/><field name=\"tenant_id\"/></dataset></datasource><paper type=\"A4\" left-margin=\"90\" right-margin=\"90\"\n top-margin=\"72\" bottom-margin=\"72\" paging-mode=\"fitpage\" fixrows=\"0\"\n width=\"595\" height=\"842\" orientation=\"portrait\" html-report-align=\"left\" bg-image=\"\" html-interval-refresh-value=\"0\" column-enabled=\"false\"></paper></ureport>', NULL, NULL, '2023-11-25 22:40:58', NULL, '2023-11-25 23:00:42', b'0', 0); |
yudao-module-report/yudao-module-report-api/src/main/java/cn/iocoder/yudao/module/report/enums/ErrorCodeConstants.java
| @@ -13,7 +13,7 @@ public interface ErrorCodeConstants { | @@ -13,7 +13,7 @@ public interface ErrorCodeConstants { | ||
| 13 | ErrorCode GO_VIEW_PROJECT_NOT_EXISTS = new ErrorCode(1_003_000_000, "GoView 项目不存在"); | 13 | ErrorCode GO_VIEW_PROJECT_NOT_EXISTS = new ErrorCode(1_003_000_000, "GoView 项目不存在"); |
| 14 | 14 | ||
| 15 | // ========== UREPORT 模块 1-003-001-000 ========== | 15 | // ========== UREPORT 模块 1-003-001-000 ========== |
| 16 | - ErrorCode UREPORT_FILE_NOT_EXISTS = new ErrorCode(1_003_001_000, "打印文件不存在,请检查 UReport 报表文件"); | ||
| 17 | - ErrorCode UREPORT_FILE_EXISTS = new ErrorCode(1_003_001_001, "报表名字已存在,请修改后再保存"); | 16 | + ErrorCode REPORT_DATA_NOT_EXISTS = new ErrorCode(1_003_001_001, "Ureport2报表不存在"); |
| 18 | 17 | ||
| 18 | + ErrorCode REPORT_DATABASE_NOT_EXISTS = new ErrorCode(1_003_001_001, "Ureport2报表数据源不存在"); | ||
| 19 | } | 19 | } |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/UreportFileController.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/UReportDataController.java
| 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport; | 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | +import org.springframework.web.bind.annotation.*; |
| 4 | +import javax.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import javax.validation.constraints.*; | ||
| 12 | +import javax.validation.*; | ||
| 13 | +import javax.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 17 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 18 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 19 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 20 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 21 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 7 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; | 23 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 8 | -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | ||
| 9 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFilePageReqVO; | ||
| 10 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileRespVO; | ||
| 11 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileSaveReqVO; | ||
| 12 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | ||
| 13 | -import cn.iocoder.yudao.module.report.service.ureport.UreportFileService; | ||
| 14 | -import io.swagger.v3.oas.annotations.Operation; | ||
| 15 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 16 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 17 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 18 | -import org.springframework.validation.annotation.Validated; | ||
| 19 | -import org.springframework.web.bind.annotation.*; | ||
| 20 | 24 | ||
| 21 | -import javax.annotation.Resource; | ||
| 22 | -import javax.servlet.http.HttpServletResponse; | ||
| 23 | -import javax.validation.Valid; | ||
| 24 | -import java.io.IOException; | ||
| 25 | -import java.util.List; | 25 | +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 26 | +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; | ||
| 26 | 27 | ||
| 27 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 28 | -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; | 28 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.*; |
| 29 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 30 | +import cn.iocoder.yudao.module.report.service.ureport.UReportDataService; | ||
| 29 | 31 | ||
| 30 | -// TODO @赤焰: Ureport 改成 UReport | ||
| 31 | -@Tag(name = "管理后台 - UReport2 报表") | 32 | +@Tag(name = "管理后台 - Ureport2报表") |
| 32 | @RestController | 33 | @RestController |
| 33 | -@RequestMapping("/report/ureport-file") | 34 | +@RequestMapping("/report/ureport-data") |
| 34 | @Validated | 35 | @Validated |
| 35 | -public class UreportFileController { | 36 | +public class UReportDataController { |
| 36 | 37 | ||
| 37 | @Resource | 38 | @Resource |
| 38 | - private UreportFileService ureportFileService; | 39 | + private UReportDataService uReportDataService; |
| 39 | 40 | ||
| 40 | @PostMapping("/create") | 41 | @PostMapping("/create") |
| 41 | - @Operation(summary = "创建 UReport2 报表") | ||
| 42 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:create')") | ||
| 43 | - public CommonResult<Long> createUreportFile(@Valid @RequestBody UreportFileSaveReqVO createReqVO) { | ||
| 44 | - return success(ureportFileService.createUreportFile(createReqVO)); | 42 | + @Operation(summary = "创建Ureport2报表") |
| 43 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:create')") | ||
| 44 | + public CommonResult<Long> createUReportData(@Valid @RequestBody UReportDataSaveReqVO createReqVO) { | ||
| 45 | + return success(uReportDataService.createUReportData(createReqVO)); | ||
| 45 | } | 46 | } |
| 46 | 47 | ||
| 47 | @PutMapping("/update") | 48 | @PutMapping("/update") |
| 48 | - @Operation(summary = "更新 UReport2 报表") | ||
| 49 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:update')") | ||
| 50 | - public CommonResult<Boolean> updateUreportFile(@Valid @RequestBody UreportFileSaveReqVO updateReqVO) { | ||
| 51 | - ureportFileService.updateUreportFile(updateReqVO); | 49 | + @Operation(summary = "更新Ureport2报表") |
| 50 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:update')") | ||
| 51 | + public CommonResult<Boolean> updateUReportData(@Valid @RequestBody UReportDataSaveReqVO updateReqVO) { | ||
| 52 | + uReportDataService.updateUReportData(updateReqVO); | ||
| 52 | return success(true); | 53 | return success(true); |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | @DeleteMapping("/delete") | 56 | @DeleteMapping("/delete") |
| 56 | - @Operation(summary = "删除 UReport2 报表") | 57 | + @Operation(summary = "删除Ureport2报表") |
| 57 | @Parameter(name = "id", description = "编号", required = true) | 58 | @Parameter(name = "id", description = "编号", required = true) |
| 58 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:delete')") | ||
| 59 | - public CommonResult<Boolean> deleteUreportFile(@RequestParam("id") Long id) { | ||
| 60 | - ureportFileService.deleteUreportFile(id); | 59 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:delete')") |
| 60 | + public CommonResult<Boolean> deleteUReportData(@RequestParam("id") Long id) { | ||
| 61 | + uReportDataService.deleteUReportData(id); | ||
| 61 | return success(true); | 62 | return success(true); |
| 62 | } | 63 | } |
| 63 | 64 | ||
| 64 | @GetMapping("/get") | 65 | @GetMapping("/get") |
| 65 | - @Operation(summary = "获得 UReport2 报表") | 66 | + @Operation(summary = "获得Ureport2报表") |
| 66 | @Parameter(name = "id", description = "编号", required = true, example = "1024") | 67 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 67 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:query')") | ||
| 68 | - public CommonResult<UreportFileRespVO> getUreportFile(@RequestParam("id") Long id) { | ||
| 69 | - UreportFileDO ureportFile = ureportFileService.getUreportFile(id); | ||
| 70 | - return success(BeanUtils.toBean(ureportFile, UreportFileRespVO.class)); | 68 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:query')") |
| 69 | + public CommonResult<UReportDataRespVO> getUReportData(@RequestParam("id") Long id) { | ||
| 70 | + UReportDataDO uReportData = uReportDataService.getUReportData(id); | ||
| 71 | + return success(BeanUtils.toBean(uReportData, UReportDataRespVO.class)); | ||
| 71 | } | 72 | } |
| 72 | 73 | ||
| 73 | @GetMapping("/page") | 74 | @GetMapping("/page") |
| 74 | - @Operation(summary = "获得 UReport2 报表分页") | ||
| 75 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:query')") | ||
| 76 | - public CommonResult<PageResult<UreportFileRespVO>> getUreportFilePage(@Valid UreportFilePageReqVO pageReqVO) { | ||
| 77 | - PageResult<UreportFileDO> pageResult = ureportFileService.getUreportFilePage(pageReqVO); | ||
| 78 | - return success(BeanUtils.toBean(pageResult, UreportFileRespVO.class)); | 75 | + @Operation(summary = "获得Ureport2报表分页") |
| 76 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:query')") | ||
| 77 | + public CommonResult<PageResult<UReportDataRespVO>> getUReportDataPage(@Valid UReportDataPageReqVO pageReqVO) { | ||
| 78 | + PageResult<UReportDataDO> pageResult = uReportDataService.getUReportDataPage(pageReqVO); | ||
| 79 | + return success(BeanUtils.toBean(pageResult, UReportDataRespVO.class)); | ||
| 79 | } | 80 | } |
| 80 | 81 | ||
| 81 | - // TODO @赤焰:导出是必须的么?没用可以删除哈 | ||
| 82 | @GetMapping("/export-excel") | 82 | @GetMapping("/export-excel") |
| 83 | - @Operation(summary = "导出 UReport2 报表 Excel") | ||
| 84 | - @PreAuthorize("@ss.hasPermission('report:ureport-file:export')") | 83 | + @Operation(summary = "导出Ureport2报表 Excel") |
| 84 | + @PreAuthorize("@ss.hasPermission('report:ureport-data:export')") | ||
| 85 | @OperateLog(type = EXPORT) | 85 | @OperateLog(type = EXPORT) |
| 86 | - public void exportUreportFileExcel(@Valid UreportFilePageReqVO pageReqVO, | 86 | + public void exportUReportDataExcel(@Valid UReportDataPageReqVO pageReqVO, |
| 87 | HttpServletResponse response) throws IOException { | 87 | HttpServletResponse response) throws IOException { |
| 88 | pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | 88 | pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); |
| 89 | - List<UreportFileDO> list = ureportFileService.getUreportFilePage(pageReqVO).getList(); | 89 | + List<UReportDataDO> list = uReportDataService.getUReportDataPage(pageReqVO).getList(); |
| 90 | // 导出 Excel | 90 | // 导出 Excel |
| 91 | - ExcelUtils.write(response, "Ureport2报表.xls", "数据", UreportFileRespVO.class, | ||
| 92 | - BeanUtils.toBean(list, UreportFileRespVO.class)); | 91 | + ExcelUtils.write(response, "Ureport2报表.xls", "数据", UReportDataRespVO.class, |
| 92 | + BeanUtils.toBean(list, UReportDataRespVO.class)); | ||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | -} | ||
| 96 | \ No newline at end of file | 95 | \ No newline at end of file |
| 96 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UreportFilePageReqVO.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UReportDataPageReqVO.java
| @@ -13,15 +13,15 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -13,15 +13,15 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 13 | @Data | 13 | @Data |
| 14 | @EqualsAndHashCode(callSuper = true) | 14 | @EqualsAndHashCode(callSuper = true) |
| 15 | @ToString(callSuper = true) | 15 | @ToString(callSuper = true) |
| 16 | -public class UreportFilePageReqVO extends PageParam { | 16 | +public class UReportDataPageReqVO extends PageParam { |
| 17 | 17 | ||
| 18 | - @Schema(description = "文件名称", example = "赵六") | ||
| 19 | - private String fileName; | 18 | + @Schema(description = "文件名称", example = "李四") |
| 19 | + private String name; | ||
| 20 | 20 | ||
| 21 | @Schema(description = "状态", example = "1") | 21 | @Schema(description = "状态", example = "1") |
| 22 | private Integer status; | 22 | private Integer status; |
| 23 | 23 | ||
| 24 | - @Schema(description = "备注", example = "随便") | 24 | + @Schema(description = "备注", example = "你猜") |
| 25 | private String remark; | 25 | private String remark; |
| 26 | 26 | ||
| 27 | @Schema(description = "创建时间") | 27 | @Schema(description = "创建时间") |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UreportFileRespVO.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UReportDataRespVO.java
| 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport.vo; | 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport.vo; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | 3 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; |
| 4 | +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | ||
| 4 | import cn.iocoder.yudao.module.system.enums.DictTypeConstants; | 5 | import cn.iocoder.yudao.module.system.enums.DictTypeConstants; |
| 5 | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | 6 | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
| 6 | import com.alibaba.excel.annotation.ExcelProperty; | 7 | import com.alibaba.excel.annotation.ExcelProperty; |
| @@ -12,22 +13,26 @@ import java.time.LocalDateTime; | @@ -12,22 +13,26 @@ import java.time.LocalDateTime; | ||
| 12 | @Schema(description = "管理后台 - Ureport2报表 Response VO") | 13 | @Schema(description = "管理后台 - Ureport2报表 Response VO") |
| 13 | @Data | 14 | @Data |
| 14 | @ExcelIgnoreUnannotated | 15 | @ExcelIgnoreUnannotated |
| 15 | -public class UreportFileRespVO { | 16 | +public class UReportDataRespVO { |
| 16 | 17 | ||
| 17 | - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9948") | 18 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26175") |
| 18 | @ExcelProperty("ID") | 19 | @ExcelProperty("ID") |
| 19 | private Long id; | 20 | private Long id; |
| 20 | 21 | ||
| 21 | - @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | 22 | + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") |
| 22 | @ExcelProperty("文件名称") | 23 | @ExcelProperty("文件名称") |
| 23 | - private String fileName; | 24 | + private String name; |
| 24 | 25 | ||
| 25 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 26 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 26 | - @ExcelProperty("状态") | 27 | + @ExcelProperty(value = "状态", converter = DictConvert.class) |
| 27 | @DictFormat(DictTypeConstants.COMMON_STATUS) | 28 | @DictFormat(DictTypeConstants.COMMON_STATUS) |
| 28 | private Integer status; | 29 | private Integer status; |
| 29 | 30 | ||
| 30 | - @Schema(description = "备注", example = "随便") | 31 | + @Schema(description = "文件内容") |
| 32 | + @ExcelProperty("文件内容") | ||
| 33 | + private String content; | ||
| 34 | + | ||
| 35 | + @Schema(description = "备注", example = "你猜") | ||
| 31 | @ExcelProperty("备注") | 36 | @ExcelProperty("备注") |
| 32 | private String remark; | 37 | private String remark; |
| 33 | 38 | ||
| @@ -35,4 +40,4 @@ public class UreportFileRespVO { | @@ -35,4 +40,4 @@ public class UreportFileRespVO { | ||
| 35 | @ExcelProperty("创建时间") | 40 | @ExcelProperty("创建时间") |
| 36 | private LocalDateTime createTime; | 41 | private LocalDateTime createTime; |
| 37 | 42 | ||
| 38 | -} | ||
| 39 | \ No newline at end of file | 43 | \ No newline at end of file |
| 44 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UreportFileSaveReqVO.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/ureport/vo/UReportDataSaveReqVO.java
| 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport.vo; | 1 | package cn.iocoder.yudao.module.report.controller.admin.ureport.vo; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | -import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 5 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | -import lombok.Data; | ||
| 7 | - | ||
| 8 | -import javax.validation.constraints.NotEmpty; | ||
| 9 | -import javax.validation.constraints.NotNull; | 4 | +import lombok.*; |
| 5 | +import java.util.*; | ||
| 6 | +import javax.validation.constraints.*; | ||
| 7 | +import java.util.*; | ||
| 10 | 8 | ||
| 11 | @Schema(description = "管理后台 - Ureport2报表新增/修改 Request VO") | 9 | @Schema(description = "管理后台 - Ureport2报表新增/修改 Request VO") |
| 12 | @Data | 10 | @Data |
| 13 | -public class UreportFileSaveReqVO { | 11 | +public class UReportDataSaveReqVO { |
| 14 | 12 | ||
| 15 | - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9948") | 13 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26175") |
| 16 | private Long id; | 14 | private Long id; |
| 17 | 15 | ||
| 18 | - @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | 16 | + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") |
| 19 | @NotEmpty(message = "文件名称不能为空") | 17 | @NotEmpty(message = "文件名称不能为空") |
| 20 | - private String fileName; | 18 | + private String name; |
| 21 | 19 | ||
| 22 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 20 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 23 | @NotNull(message = "状态不能为空") | 21 | @NotNull(message = "状态不能为空") |
| 24 | - @InEnum(CommonStatusEnum.class) | ||
| 25 | private Integer status; | 22 | private Integer status; |
| 26 | 23 | ||
| 27 | @Schema(description = "文件内容") | 24 | @Schema(description = "文件内容") |
| 28 | - private String fileContent; | 25 | + private String content; |
| 29 | 26 | ||
| 30 | - @Schema(description = "备注", example = "随便") | 27 | + @Schema(description = "备注", example = "你猜") |
| 31 | private String remark; | 28 | private String remark; |
| 32 | 29 | ||
| 33 | -} | 30 | -} |
| 31 | +} | ||
| 34 | \ No newline at end of file | 32 | \ No newline at end of file |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/dataobject/ureport/UreportFileDO.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/dataobject/ureport/UReportDataDO.java
| 1 | package cn.iocoder.yudao.module.report.dal.dataobject.ureport; | 1 | package cn.iocoder.yudao.module.report.dal.dataobject.ureport; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | import com.baomidou.mybatisplus.annotation.KeySequence; | 5 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 6 | import com.baomidou.mybatisplus.annotation.TableId; |
| @@ -11,35 +12,35 @@ import lombok.*; | @@ -11,35 +12,35 @@ import lombok.*; | ||
| 11 | * | 12 | * |
| 12 | * @author 芋道源码 | 13 | * @author 芋道源码 |
| 13 | */ | 14 | */ |
| 14 | -@TableName("ureport_file") | ||
| 15 | -@KeySequence("ureport_file_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | 15 | +@TableName("report_ureport_data") |
| 16 | +@KeySequence("report_ureport_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 16 | @Data | 17 | @Data |
| 17 | @EqualsAndHashCode(callSuper = true) | 18 | @EqualsAndHashCode(callSuper = true) |
| 18 | @ToString(callSuper = true) | 19 | @ToString(callSuper = true) |
| 19 | @Builder | 20 | @Builder |
| 20 | @NoArgsConstructor | 21 | @NoArgsConstructor |
| 21 | @AllArgsConstructor | 22 | @AllArgsConstructor |
| 22 | -public class UreportFileDO extends BaseDO { | 23 | +public class UReportDataDO extends BaseDO { |
| 23 | 24 | ||
| 24 | /** | 25 | /** |
| 25 | * ID | 26 | * ID |
| 26 | */ | 27 | */ |
| 27 | @TableId | 28 | @TableId |
| 28 | private Long id; | 29 | private Long id; |
| 29 | - // TODO @赤焰:是不是用 name 就可以了。 | ||
| 30 | /** | 30 | /** |
| 31 | * 文件名称 | 31 | * 文件名称 |
| 32 | */ | 32 | */ |
| 33 | - private String fileName; | 33 | + private String name; |
| 34 | /** | 34 | /** |
| 35 | * 状态 | 35 | * 状态 |
| 36 | + * | ||
| 37 | + * 枚举 {@link CommonStatusEnum#getStatus()} | ||
| 36 | */ | 38 | */ |
| 37 | private Integer status; | 39 | private Integer status; |
| 38 | - // TODO @赤焰:是不是用 string 就可以了。然后字段名用 content? | ||
| 39 | /** | 40 | /** |
| 40 | * 文件内容 | 41 | * 文件内容 |
| 41 | */ | 42 | */ |
| 42 | - private byte[] fileContent; | 43 | + private String content; |
| 43 | /** | 44 | /** |
| 44 | * 备注 | 45 | * 备注 |
| 45 | */ | 46 | */ |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/mysql/ureport/UReportDataMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.report.dal.mysql.ureport; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * Ureport2报表 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 芋道源码 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface UReportDataMapper extends BaseMapperX<UReportDataDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<UReportDataDO> selectPage(UReportDataPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<UReportDataDO>() | ||
| 22 | + .likeIfPresent(UReportDataDO::getName, reqVO.getName()) | ||
| 23 | + .eqIfPresent(UReportDataDO::getStatus, reqVO.getStatus()) | ||
| 24 | + .eqIfPresent(UReportDataDO::getRemark, reqVO.getRemark()) | ||
| 25 | + .betweenIfPresent(UReportDataDO::getCreateTime, reqVO.getCreateTime()) | ||
| 26 | + .orderByDesc(UReportDataDO::getId)); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 根据名字查询报表 | ||
| 31 | + * @param name 报表名字 | ||
| 32 | + * @return | ||
| 33 | + */ | ||
| 34 | + default List<UReportDataDO> selectByName(String name){ | ||
| 35 | + return selectList(new LambdaQueryWrapperX<UReportDataDO>() | ||
| 36 | + .eqIfPresent(UReportDataDO::getName,name)); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 根据名字查询报表 | ||
| 41 | + * @param name 报表名字 | ||
| 42 | + * @return | ||
| 43 | + */ | ||
| 44 | + default UReportDataDO selectOneByName(String name){ | ||
| 45 | + return selectOne(new LambdaQueryWrapperX<UReportDataDO>() | ||
| 46 | + .eqIfPresent(UReportDataDO::getName,name)); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * 根据名字删除报表 | ||
| 52 | + * @param name 报表名字 | ||
| 53 | + * @return | ||
| 54 | + */ | ||
| 55 | + default int deleteByName(String name){ | ||
| 56 | + return delete(new LambdaQueryWrapperX<UReportDataDO>() | ||
| 57 | + .eqIfPresent(UReportDataDO::getName,name)); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/mysql/ureport/UreportFileMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.report.dal.mysql.ureport; | ||
| 2 | - | ||
| 3 | -import java.util.*; | ||
| 4 | - | ||
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | ||
| 9 | -import org.apache.ibatis.annotations.Mapper; | ||
| 10 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.*; | ||
| 11 | - | ||
| 12 | -/** | ||
| 13 | - * Ureport2报表 Mapper | ||
| 14 | - * | ||
| 15 | - * @author 芋道源码 | ||
| 16 | - */ | ||
| 17 | -@Mapper | ||
| 18 | -public interface UreportFileMapper extends BaseMapperX<UreportFileDO> { | ||
| 19 | - | ||
| 20 | - default PageResult<UreportFileDO> selectPage(UreportFilePageReqVO reqVO) { | ||
| 21 | - return selectPage(reqVO, new LambdaQueryWrapperX<UreportFileDO>() | ||
| 22 | - .likeIfPresent(UreportFileDO::getFileName, reqVO.getFileName()) | ||
| 23 | - .eqIfPresent(UreportFileDO::getStatus, reqVO.getStatus()) | ||
| 24 | - .eqIfPresent(UreportFileDO::getRemark, reqVO.getRemark()) | ||
| 25 | - .betweenIfPresent(UreportFileDO::getCreateTime, reqVO.getCreateTime()) | ||
| 26 | - .orderByDesc(UreportFileDO::getId)); | ||
| 27 | - } | ||
| 28 | - | ||
| 29 | -} | ||
| 30 | \ No newline at end of file | 0 | \ No newline at end of file |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/security/config/SecurityConfiguration.java
| 1 | package cn.iocoder.yudao.module.report.framework.security.config; | 1 | package cn.iocoder.yudao.module.report.framework.security.config; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; | ||
| 3 | import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer; | 4 | import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer; |
| 5 | +import cn.iocoder.yudao.framework.security.config.SecurityProperties; | ||
| 6 | +import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; | ||
| 7 | +import org.springframework.boot.web.servlet.FilterRegistrationBean; | ||
| 4 | import org.springframework.context.annotation.Bean; | 8 | import org.springframework.context.annotation.Bean; |
| 5 | import org.springframework.context.annotation.Configuration; | 9 | import org.springframework.context.annotation.Configuration; |
| 6 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | 10 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
| 7 | import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; | 11 | import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; |
| 12 | +import org.springframework.util.StringUtils; | ||
| 13 | + | ||
| 14 | +import javax.annotation.Resource; | ||
| 8 | 15 | ||
| 9 | /** | 16 | /** |
| 10 | * Report 模块的 Security 配置 | 17 | * Report 模块的 Security 配置 |
| @@ -12,6 +19,9 @@ import org.springframework.security.config.annotation.web.configurers.Expression | @@ -12,6 +19,9 @@ import org.springframework.security.config.annotation.web.configurers.Expression | ||
| 12 | @Configuration("reportSecurityConfiguration") | 19 | @Configuration("reportSecurityConfiguration") |
| 13 | public class SecurityConfiguration { | 20 | public class SecurityConfiguration { |
| 14 | 21 | ||
| 22 | + @Resource | ||
| 23 | + private OAuth2TokenApi oauth2TokenApi; | ||
| 24 | + | ||
| 15 | @Bean("reportAuthorizeRequestsCustomizer") | 25 | @Bean("reportAuthorizeRequestsCustomizer") |
| 16 | public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() { | 26 | public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() { |
| 17 | return new AuthorizeRequestsCustomizer() { | 27 | return new AuthorizeRequestsCustomizer() { |
| @@ -25,4 +35,16 @@ public class SecurityConfiguration { | @@ -25,4 +35,16 @@ public class SecurityConfiguration { | ||
| 25 | }; | 35 | }; |
| 26 | } | 36 | } |
| 27 | 37 | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 创建 UReportFilter 过滤器,响应 header 设置 token | ||
| 41 | + */ | ||
| 42 | + /*@Bean | ||
| 43 | + public FilterRegistrationBean<UReportFilter> uReportFilterFilterRegistrationBean() { | ||
| 44 | + FilterRegistrationBean<UReportFilter> registrationBean = new FilterRegistrationBean<>(); | ||
| 45 | + registrationBean.setFilter(new UReportFilter(oauth2TokenApi)); | ||
| 46 | + registrationBean.setOrder(WebFilterOrderEnum.TRACE_FILTER); | ||
| 47 | + return registrationBean; | ||
| 48 | + }*/ | ||
| 49 | + | ||
| 28 | } | 50 | } |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/security/config/UReportFilter.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.report.framework.security.config; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.exception.ServiceException; | ||
| 4 | +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | ||
| 5 | +import cn.iocoder.yudao.framework.security.core.LoginUser; | ||
| 6 | +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; | ||
| 7 | +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | ||
| 8 | +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; | ||
| 9 | +import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; | ||
| 10 | +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; | ||
| 11 | +import lombok.Data; | ||
| 12 | +import lombok.RequiredArgsConstructor; | ||
| 13 | +import lombok.extern.slf4j.Slf4j; | ||
| 14 | +import org.springframework.web.filter.OncePerRequestFilter; | ||
| 15 | + | ||
| 16 | +import javax.servlet.FilterChain; | ||
| 17 | +import javax.servlet.ServletException; | ||
| 18 | +import javax.servlet.http.HttpServletRequest; | ||
| 19 | +import javax.servlet.http.HttpServletResponse; | ||
| 20 | +import java.io.IOException; | ||
| 21 | +import java.util.Map; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * UReport 认证过滤器 | ||
| 25 | + * @author 赤焰 | ||
| 26 | + */ | ||
| 27 | +@Slf4j | ||
| 28 | +@RequiredArgsConstructor | ||
| 29 | +public class UReportFilter extends OncePerRequestFilter { | ||
| 30 | + | ||
| 31 | + private final static String TOKEN = "token"; | ||
| 32 | + | ||
| 33 | + private final OAuth2TokenApi oauth2TokenApi; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) | ||
| 37 | + throws ServletException, IOException { | ||
| 38 | + | ||
| 39 | + if(log.isDebugEnabled()){ | ||
| 40 | + log.debug("UReportFilter自定义过滤器"); | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + Map<String, String> paramMap = ServletUtils.getParamMap(request); | ||
| 44 | + String requestURI = request.getRequestURI(); | ||
| 45 | + boolean contains = requestURI.contains("/ureport"); | ||
| 46 | + if (paramMap.containsKey(TOKEN)&&contains) { | ||
| 47 | + String token = request.getParameter(TOKEN); | ||
| 48 | + if(log.isDebugEnabled()){ | ||
| 49 | + log.debug("UReportFilter自定义过滤器 token="+token); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + response.addHeader(TOKEN,token); | ||
| 53 | + | ||
| 54 | + TenantContextHolder.setIgnore(true); // 忽略租户,保证可查询到 token 信息 | ||
| 55 | + LoginUser user = null; | ||
| 56 | + try { | ||
| 57 | + OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token); | ||
| 58 | + if (accessToken != null) { | ||
| 59 | + user = new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType()) | ||
| 60 | + .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes()); | ||
| 61 | + if (user != null) { | ||
| 62 | + SecurityFrameworkUtils.setLoginUser(user, WebFrameworkUtils.getRequest()); | ||
| 63 | + | ||
| 64 | + // ② 参考 TenantContextWebFilter 实现(Tenant 的上下文清理,交给 TenantContextWebFilter 完成) | ||
| 65 | + // 目的:基于 LoginUser 获得到的租户编号,设置到 Tenant 上下文,避免查询数据库时的报错 | ||
| 66 | + TenantContextHolder.setIgnore(false); | ||
| 67 | + TenantContextHolder.setTenantId(user.getTenantId()); | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } catch (ServiceException ignored) { | ||
| 71 | + chain.doFilter(request, response); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + // 继续过滤 | ||
| 77 | + chain.doFilter(request, response); | ||
| 78 | + | ||
| 79 | + } | ||
| 80 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/security/config/UReportProperties.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.report.framework.security.config; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import org.springframework.boot.context.properties.ConfigurationProperties; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * UReport配置类 | ||
| 8 | + * | ||
| 9 | + * @author 赤焰 | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +@ConfigurationProperties(prefix = "ureport.provider.database") | ||
| 13 | +public class UReportProperties { | ||
| 14 | + private String name = "数据库文件系统"; | ||
| 15 | + private String prefix = "db-"; | ||
| 16 | + private boolean disabled = false; | ||
| 17 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/config/UreportConfiguration.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/config/UReportConfiguration.java
| 1 | package cn.iocoder.yudao.module.report.framework.ureport.config; | 1 | package cn.iocoder.yudao.module.report.framework.ureport.config; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.report.framework.security.config.UReportProperties; | ||
| 3 | import com.bstek.ureport.console.UReportServlet; | 4 | import com.bstek.ureport.console.UReportServlet; |
| 5 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
| 4 | import org.springframework.boot.web.servlet.ServletRegistrationBean; | 6 | import org.springframework.boot.web.servlet.ServletRegistrationBean; |
| 5 | import org.springframework.context.annotation.Bean; | 7 | import org.springframework.context.annotation.Bean; |
| 6 | import org.springframework.context.annotation.Configuration; | 8 | import org.springframework.context.annotation.Configuration; |
| @@ -15,13 +17,13 @@ import javax.servlet.Servlet; | @@ -15,13 +17,13 @@ import javax.servlet.Servlet; | ||
| 15 | * @author 赤焰 | 17 | * @author 赤焰 |
| 16 | */ | 18 | */ |
| 17 | @Configuration | 19 | @Configuration |
| 18 | -@ImportResource({"classpath:ureport-console-context.xml"}) // Bean 配置 | ||
| 19 | -@PropertySource(value = {"classpath:ureport.properties"}) // 配置文件 | ||
| 20 | -public class UreportConfiguration { | 20 | +@ImportResource({"classpath:ureport-console-context.xml"}) |
| 21 | +@PropertySource(value = {"classpath:ureport.properties"}) | ||
| 22 | +@EnableConfigurationProperties({UReportProperties.class}) | ||
| 23 | +public class UReportConfiguration { | ||
| 21 | 24 | ||
| 22 | - // TODO @赤焰:bean 是不是取个和 ureport 相关的名字好点哈? | ||
| 23 | @Bean | 25 | @Bean |
| 24 | - public ServletRegistrationBean<Servlet> registrationBean() { | 26 | + public ServletRegistrationBean<Servlet> uReportRegistrationBean() { |
| 25 | return new ServletRegistrationBean<>(new UReportServlet(), "/ureport/*"); | 27 | return new ServletRegistrationBean<>(new UReportServlet(), "/ureport/*"); |
| 26 | } | 28 | } |
| 27 | 29 |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/config/UreportDataSource.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/config/UReportDataSource.java
| @@ -9,14 +9,18 @@ import javax.sql.DataSource; | @@ -9,14 +9,18 @@ import javax.sql.DataSource; | ||
| 9 | import java.sql.Connection; | 9 | import java.sql.Connection; |
| 10 | import java.sql.SQLException; | 10 | import java.sql.SQLException; |
| 11 | 11 | ||
| 12 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 13 | +import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.REPORT_DATABASE_NOT_EXISTS; | ||
| 14 | + | ||
| 12 | /** | 15 | /** |
| 13 | * UReport 内置数据源 | 16 | * UReport 内置数据源 |
| 17 | + * @author 赤焰 | ||
| 14 | */ | 18 | */ |
| 15 | @Slf4j | 19 | @Slf4j |
| 16 | @Component | 20 | @Component |
| 17 | -public class UreportDataSource implements BuildinDatasource { | 21 | +public class UReportDataSource implements BuildinDatasource { |
| 18 | 22 | ||
| 19 | - private static final String NAME = "UreportDataSource"; | 23 | + private static final String NAME = "UReportDataSource"; |
| 20 | 24 | ||
| 21 | @Resource | 25 | @Resource |
| 22 | private DataSource dataSource; | 26 | private DataSource dataSource; |
| @@ -29,7 +33,6 @@ public class UreportDataSource implements BuildinDatasource { | @@ -29,7 +33,6 @@ public class UreportDataSource implements BuildinDatasource { | ||
| 29 | return NAME; | 33 | return NAME; |
| 30 | } | 34 | } |
| 31 | 35 | ||
| 32 | - // TODO @赤焰:这个方法,如果拿不到连接,是不是抛出异常比较好? | ||
| 33 | /** | 36 | /** |
| 34 | * @return 获取连接 | 37 | * @return 获取连接 |
| 35 | */ | 38 | */ |
| @@ -38,10 +41,9 @@ public class UreportDataSource implements BuildinDatasource { | @@ -38,10 +41,9 @@ public class UreportDataSource implements BuildinDatasource { | ||
| 38 | try { | 41 | try { |
| 39 | return dataSource.getConnection(); | 42 | return dataSource.getConnection(); |
| 40 | } catch (SQLException e) { | 43 | } catch (SQLException e) { |
| 41 | - log.error("Ureport 数据源 获取连接失败!"); | ||
| 42 | - e.printStackTrace(); | 44 | + log.error("UReportDataSource获取连接失败!"); |
| 45 | + throw exception(REPORT_DATABASE_NOT_EXISTS); | ||
| 43 | } | 46 | } |
| 44 | - return null; | ||
| 45 | } | 47 | } |
| 46 | 48 | ||
| 47 | } | 49 | } |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/core/UReportDatabaseProvider.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.report.framework.ureport.core; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.hutool.core.util.StrUtil; | ||
| 5 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 7 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | ||
| 8 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UReportDataSaveReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 10 | +import cn.iocoder.yudao.module.report.framework.security.config.UReportProperties; | ||
| 11 | +import cn.iocoder.yudao.module.report.service.ureport.UReportDataService; | ||
| 12 | +import com.bstek.ureport.provider.report.ReportFile; | ||
| 13 | +import com.bstek.ureport.provider.report.ReportProvider; | ||
| 14 | +import lombok.Setter; | ||
| 15 | +import lombok.extern.slf4j.Slf4j; | ||
| 16 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 17 | +import org.springframework.stereotype.Component; | ||
| 18 | + | ||
| 19 | +import javax.annotation.Resource; | ||
| 20 | +import java.io.ByteArrayInputStream; | ||
| 21 | +import java.io.InputStream; | ||
| 22 | +import java.util.Collections; | ||
| 23 | +import java.util.List; | ||
| 24 | + | ||
| 25 | +/** | ||
| 26 | + * 基于数据库的 {@link ReportProvider} 实现类 | ||
| 27 | + * | ||
| 28 | + * @author 赤焰 | ||
| 29 | + */ | ||
| 30 | +@Component | ||
| 31 | +@Slf4j | ||
| 32 | +@Setter | ||
| 33 | +public class UReportDatabaseProvider implements ReportProvider { | ||
| 34 | + | ||
| 35 | + @Autowired | ||
| 36 | + private UReportProperties uReportProperties; | ||
| 37 | + @Resource | ||
| 38 | + private UReportDataService uReportDataService; | ||
| 39 | + | ||
| 40 | + @Override | ||
| 41 | + public InputStream loadReport(String name) { | ||
| 42 | + uReportDataService.validateUReportDataExists(getCorrectName(name)); | ||
| 43 | + UReportDataDO uReportDataDO = uReportDataService.selectOneByName(getCorrectName(name)); | ||
| 44 | + String content = uReportDataDO.getContent(); | ||
| 45 | + return new ByteArrayInputStream(content.getBytes()); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @Override | ||
| 49 | + public void deleteReport(String name) { | ||
| 50 | + uReportDataService.deleteByName(getCorrectName(name)); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + @Override | ||
| 54 | + public List<ReportFile> getReportFiles() { | ||
| 55 | + List<UReportDataDO> list = uReportDataService.getReportDataList(); | ||
| 56 | + if(CollUtil.isEmpty(list)) { | ||
| 57 | + return Collections.emptyList(); | ||
| 58 | + } | ||
| 59 | + return CollectionUtils.convertList(list, report -> new ReportFile(report.getName(), DateUtils.of(report.getUpdateTime()))); | ||
| 60 | + | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + @Override | ||
| 64 | + public void saveReport(String name, String content) { | ||
| 65 | + name = getCorrectName(name); | ||
| 66 | + UReportDataDO uReportDataDO = uReportDataService.selectOneByName(name); | ||
| 67 | + UReportDataSaveReqVO saveReqVO = new UReportDataSaveReqVO(); | ||
| 68 | + if (uReportDataDO == null) { | ||
| 69 | + saveReqVO.setName(name); | ||
| 70 | + saveReqVO.setContent(content); | ||
| 71 | + saveReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 72 | + uReportDataService.createUReportData(saveReqVO); | ||
| 73 | + } else { | ||
| 74 | + saveReqVO.setId(uReportDataDO.getId()); | ||
| 75 | + saveReqVO.setName(name); | ||
| 76 | + saveReqVO.setContent(content); | ||
| 77 | + saveReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 78 | + uReportDataService.updateUReportData(saveReqVO); | ||
| 79 | + } | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + @Override | ||
| 83 | + public String getName() { | ||
| 84 | + return uReportProperties.getName(); | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + @Override | ||
| 88 | + public boolean disabled() { | ||
| 89 | + return uReportProperties.isDisabled(); | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + @Override | ||
| 93 | + public String getPrefix() { | ||
| 94 | + return uReportProperties.getPrefix(); | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + /** | ||
| 98 | + * 去除存储媒介,获取报表名字 | ||
| 99 | + * @param name 前端传入的报表带存储媒介的名字 | ||
| 100 | + * @return | ||
| 101 | + */ | ||
| 102 | + private String getCorrectName(String name) { | ||
| 103 | + return StrUtil.removePrefix(name,getPrefix()); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | +} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/core/UreportDatabaseProvider.java deleted
| 1 | -package cn.iocoder.yudao.module.report.framework.ureport.core; | ||
| 2 | - | ||
| 3 | -import cn.hutool.core.collection.CollUtil; | ||
| 4 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 5 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileSaveReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | ||
| 7 | -import cn.iocoder.yudao.module.report.service.ureport.UreportFileService; | ||
| 8 | -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
| 9 | -import com.bstek.ureport.provider.report.ReportFile; | ||
| 10 | -import com.bstek.ureport.provider.report.ReportProvider; | ||
| 11 | -import lombok.Setter; | ||
| 12 | -import lombok.extern.slf4j.Slf4j; | ||
| 13 | -import org.springframework.boot.context.properties.ConfigurationProperties; | ||
| 14 | -import org.springframework.stereotype.Component; | ||
| 15 | - | ||
| 16 | -import javax.annotation.Resource; | ||
| 17 | -import java.io.ByteArrayInputStream; | ||
| 18 | -import java.io.InputStream; | ||
| 19 | -import java.time.LocalDateTime; | ||
| 20 | -import java.time.ZoneId; | ||
| 21 | -import java.time.ZonedDateTime; | ||
| 22 | -import java.util.ArrayList; | ||
| 23 | -import java.util.Date; | ||
| 24 | -import java.util.List; | ||
| 25 | - | ||
| 26 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 27 | -import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FILE_EXISTS; | ||
| 28 | -import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FILE_NOT_EXISTS; | ||
| 29 | - | ||
| 30 | -// TODO @赤焰:有了这个功能,是不是就不需要 UreportFileController? | ||
| 31 | -/** | ||
| 32 | - * 基于数据库的 {@link ReportProvider} 实现类 | ||
| 33 | - * | ||
| 34 | - * @author 赤焰 | ||
| 35 | - */ | ||
| 36 | -@Component | ||
| 37 | -@Slf4j | ||
| 38 | -@Setter | ||
| 39 | -@ConfigurationProperties(prefix = "ureport.provider.database") // TODO @赤焰:是不是单独搞个 UReportProperties 用来注入 prefix、disabled 等属性 | ||
| 40 | -public class UreportDatabaseProvider implements ReportProvider { | ||
| 41 | - | ||
| 42 | - private static final String NAME = "mysql-provider"; | ||
| 43 | - | ||
| 44 | - // TODO @赤焰:IdTypeEnvironmentPostProcessor 参考下,通过 primary 数据源获取 | ||
| 45 | - private String prefix = "mysql:"; | ||
| 46 | - | ||
| 47 | - private boolean disabled = false; | ||
| 48 | - | ||
| 49 | - @Resource | ||
| 50 | - private UreportFileService ureportFileService; | ||
| 51 | - | ||
| 52 | - @Override | ||
| 53 | - public InputStream loadReport(String file) { | ||
| 54 | - // TODO @赤焰:是不是不需要这个 check 接口?直接使用 name 查询就 ok 了? | ||
| 55 | - // TODO @赤焰:变量的命名要注意,这里 reportDo 是不是叫 count 就好了?还有,这个方法的命名也不太对。 | ||
| 56 | - Long reportDo = ureportFileService.checkExistByName(getCorrectName(file)); | ||
| 57 | - if (reportDo <=0) { // TODO 赤焰:<= 0 注释空格 | ||
| 58 | - throw exception(UREPORT_FILE_NOT_EXISTS); | ||
| 59 | - } | ||
| 60 | - // TODO @赤焰:queryUreportFileDoByName 改成 getUreportFileDoByName 更合适,保持整个项目的命名风格一致性。 | ||
| 61 | - UreportFileDO ureportFileDO = ureportFileService.queryUreportFileDoByName(getCorrectName(file)); | ||
| 62 | - byte[] content = ureportFileDO.getFileContent(); | ||
| 63 | - return new ByteArrayInputStream(content); | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - @Override | ||
| 67 | - public void deleteReport(String file) { | ||
| 68 | - ureportFileService.deleteReportFileByName(getCorrectName(file)); | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - @Override | ||
| 72 | - public List<ReportFile> getReportFiles() { | ||
| 73 | - // TODO @赤焰:queryReportFileList 改成 getReportFileList 更合适,保持整个项目的命名风格一致性。 | ||
| 74 | - List<UreportFileDO> list = ureportFileService.queryReportFileList(); | ||
| 75 | - List<ReportFile> reportList = new ArrayList<>(); | ||
| 76 | - if(CollUtil.isEmpty(list)){ // TODO 赤焰:CollUtil.isEmpty(list) 注意空格 | ||
| 77 | - // TODO @赤焰:这里可以直接返回 Collections.emptyList(); | ||
| 78 | - return reportList; | ||
| 79 | - } | ||
| 80 | - // TODO 赤焰:可以使用 CollectionUtils.converList | ||
| 81 | - for (UreportFileDO reportFile : list) { | ||
| 82 | - // TODO 赤焰:可以使用 DateUtils.of() 么? | ||
| 83 | - LocalDateTime updateTime = reportFile.getUpdateTime(); | ||
| 84 | - ZonedDateTime zdt = updateTime.atZone(ZoneId.systemDefault()); | ||
| 85 | - Date date = Date.from(zdt.toInstant()); | ||
| 86 | - reportList.add(new ReportFile(reportFile.getFileName(),date)); | ||
| 87 | - } | ||
| 88 | - return reportList; | ||
| 89 | - | ||
| 90 | - } | ||
| 91 | - | ||
| 92 | - @Override | ||
| 93 | - public void saveReport(String file, String content) { | ||
| 94 | - file = getCorrectName(file); | ||
| 95 | - // TODO @赤焰:这里的逻辑,应该封装到 ureportFileService 中,这里只负责调用即可 | ||
| 96 | - LambdaQueryWrapper<UreportFileDO> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 97 | - queryWrapper.eq(UreportFileDO::getFileName, file); | ||
| 98 | - Long count = ureportFileService.checkExistByName(file); | ||
| 99 | - if(count>1){ | ||
| 100 | - throw exception(UREPORT_FILE_EXISTS); | ||
| 101 | - } | ||
| 102 | - UreportFileDO ureportFileDO = ureportFileService.queryUreportFileDoByName(file); | ||
| 103 | - UreportFileSaveReqVO saveReqVO = new UreportFileSaveReqVO(); | ||
| 104 | - if (ureportFileDO == null) { | ||
| 105 | - saveReqVO.setFileName(file); | ||
| 106 | - saveReqVO.setFileContent(content); | ||
| 107 | - saveReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 108 | - ureportFileService.createUreportFile(saveReqVO); | ||
| 109 | - } else { | ||
| 110 | - saveReqVO.setId(ureportFileDO.getId()); | ||
| 111 | - saveReqVO.setFileName(file); | ||
| 112 | - saveReqVO.setFileContent(content); | ||
| 113 | - saveReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 114 | - ureportFileService.updateUreportFile(saveReqVO); | ||
| 115 | - } | ||
| 116 | - } | ||
| 117 | - | ||
| 118 | - @Override | ||
| 119 | - public String getName() { | ||
| 120 | - return NAME; | ||
| 121 | - } | ||
| 122 | - | ||
| 123 | - @Override | ||
| 124 | - public boolean disabled() { | ||
| 125 | - return disabled; | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - @Override | ||
| 129 | - public String getPrefix() { | ||
| 130 | - return prefix; | ||
| 131 | - } | ||
| 132 | - | ||
| 133 | - // TODO @赤焰:这个方法的注释,最好写下哈; | ||
| 134 | - private String getCorrectName(String name) { | ||
| 135 | - // TODO 赤焰:一些常用方法,可以用 hutool StrUtil.removePrefix() | ||
| 136 | - if (name.startsWith(getPrefix())) { | ||
| 137 | - name = name.substring(getPrefix().length()); | ||
| 138 | - } | ||
| 139 | - return name; | ||
| 140 | - } | ||
| 141 | - | ||
| 142 | -} |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/ureport/core/UreportFileReportProvider.java deleted
| 1 | -/* | ||
| 2 | -package cn.iocoder.yudao.module.report.framework.ureport.provider; | ||
| 3 | - | ||
| 4 | -import com.bstek.ureport.exception.ReportException; | ||
| 5 | -import com.bstek.ureport.provider.report.ReportFile; | ||
| 6 | -import com.bstek.ureport.provider.report.ReportProvider; | ||
| 7 | -import lombok.extern.slf4j.Slf4j; | ||
| 8 | -import org.apache.commons.io.IOUtils; | ||
| 9 | -import org.springframework.boot.context.properties.ConfigurationProperties; | ||
| 10 | -import org.springframework.stereotype.Component; | ||
| 11 | - | ||
| 12 | -import java.io.*; | ||
| 13 | -import java.util.ArrayList; | ||
| 14 | -import java.util.Calendar; | ||
| 15 | -import java.util.List; | ||
| 16 | -import java.util.Objects; | ||
| 17 | - | ||
| 18 | -// TODO @赤焰:这个类的作用是?如果全部注释,是不是可以删除哈? | ||
| 19 | -*/ | ||
| 20 | -/** | ||
| 21 | - * 自定义文件存储,可接入oss等 | ||
| 22 | - * @author 赤焰 | ||
| 23 | - *//* | ||
| 24 | - | ||
| 25 | -@Slf4j | ||
| 26 | -@Component | ||
| 27 | -@ConfigurationProperties(prefix = "ureport.provider.file") | ||
| 28 | -public class UreportFileReportProvider implements ReportProvider{ | ||
| 29 | - | ||
| 30 | - private String prefix="reportFile:"; | ||
| 31 | - private String fileStoreDir; | ||
| 32 | - private boolean disabled; | ||
| 33 | - | ||
| 34 | - @Override | ||
| 35 | - public InputStream loadReport(String file) { | ||
| 36 | - if(file.startsWith(prefix)){ | ||
| 37 | - file=file.substring(prefix.length(),file.length()); | ||
| 38 | - } | ||
| 39 | - String fullPath=fileStoreDir+"/"+file; | ||
| 40 | - try { | ||
| 41 | - return new FileInputStream(fullPath); | ||
| 42 | - } catch (FileNotFoundException e) { | ||
| 43 | - throw new ReportException(e); | ||
| 44 | - } | ||
| 45 | - } | ||
| 46 | - | ||
| 47 | - @Override | ||
| 48 | - public void deleteReport(String file) { | ||
| 49 | - if(file.startsWith(prefix)){ | ||
| 50 | - file=file.substring(prefix.length(),file.length()); | ||
| 51 | - } | ||
| 52 | - String fullPath=fileStoreDir+"/"+file; | ||
| 53 | - File f=new File(fullPath); | ||
| 54 | - if(f.exists()){ | ||
| 55 | - f.delete(); | ||
| 56 | - } | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - @Override | ||
| 60 | - public List<ReportFile> getReportFiles() { | ||
| 61 | - File file=new File(fileStoreDir); | ||
| 62 | - List<ReportFile> list= new ArrayList<>(); | ||
| 63 | - for(File f: Objects.requireNonNull(file.listFiles())){ | ||
| 64 | - Calendar calendar=Calendar.getInstance(); | ||
| 65 | - calendar.setTimeInMillis(f.lastModified()); | ||
| 66 | - list.add(new ReportFile(f.getName(),calendar.getTime())); | ||
| 67 | - } | ||
| 68 | - list.sort((f1, f2) -> f2.getUpdateDate().compareTo(f1.getUpdateDate())); | ||
| 69 | - return list; | ||
| 70 | - } | ||
| 71 | - | ||
| 72 | - @Override | ||
| 73 | - public String getName() { | ||
| 74 | - return "文件存储系统"; | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | - @Override | ||
| 78 | - public void saveReport(String file,String content) { | ||
| 79 | - if(file.startsWith(prefix)){ | ||
| 80 | - file=file.substring(prefix.length(),file.length()); | ||
| 81 | - } | ||
| 82 | - String fullPath=fileStoreDir+"/"+file; | ||
| 83 | - FileOutputStream outStream=null; | ||
| 84 | - try{ | ||
| 85 | - outStream=new FileOutputStream(new File(fullPath)); | ||
| 86 | - IOUtils.write(content, outStream,"utf-8"); | ||
| 87 | - }catch(Exception ex){ | ||
| 88 | - throw new ReportException(ex); | ||
| 89 | - }finally{ | ||
| 90 | - if(outStream!=null){ | ||
| 91 | - try { | ||
| 92 | - outStream.close(); | ||
| 93 | - } catch (IOException e) { | ||
| 94 | - e.printStackTrace(); | ||
| 95 | - } | ||
| 96 | - } | ||
| 97 | - } | ||
| 98 | - | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - @Override | ||
| 102 | - public boolean disabled() { | ||
| 103 | - return disabled; | ||
| 104 | - } | ||
| 105 | - | ||
| 106 | - public void setDisabled(boolean disabled) { | ||
| 107 | - this.disabled = disabled; | ||
| 108 | - } | ||
| 109 | - | ||
| 110 | - public void setFileStoreDir(String fileStoreDir) { | ||
| 111 | - this.fileStoreDir = fileStoreDir; | ||
| 112 | - } | ||
| 113 | - | ||
| 114 | - @Override | ||
| 115 | - public String getPrefix() { | ||
| 116 | - return prefix; | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | -} | ||
| 120 | -*/ |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/ureport/UreportFileService.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/ureport/UReportDataService.java
| 1 | package cn.iocoder.yudao.module.report.service.ureport; | 1 | package cn.iocoder.yudao.module.report.service.ureport; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFilePageReqVO; | ||
| 5 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileSaveReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | 4 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UReportDataPageReqVO; |
| 5 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UReportDataSaveReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 7 | 7 | ||
| 8 | import javax.validation.Valid; | 8 | import javax.validation.Valid; |
| 9 | import java.util.List; | 9 | import java.util.List; |
| @@ -13,7 +13,7 @@ import java.util.List; | @@ -13,7 +13,7 @@ import java.util.List; | ||
| 13 | * | 13 | * |
| 14 | * @author 芋道源码 | 14 | * @author 芋道源码 |
| 15 | */ | 15 | */ |
| 16 | -public interface UreportFileService { | 16 | +public interface UReportDataService { |
| 17 | 17 | ||
| 18 | /** | 18 | /** |
| 19 | * 创建Ureport2报表 | 19 | * 创建Ureport2报表 |
| @@ -21,21 +21,21 @@ public interface UreportFileService { | @@ -21,21 +21,21 @@ public interface UreportFileService { | ||
| 21 | * @param createReqVO 创建信息 | 21 | * @param createReqVO 创建信息 |
| 22 | * @return 编号 | 22 | * @return 编号 |
| 23 | */ | 23 | */ |
| 24 | - Long createUreportFile(@Valid UreportFileSaveReqVO createReqVO); | 24 | + Long createUReportData(@Valid UReportDataSaveReqVO createReqVO); |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * 更新Ureport2报表 | 27 | * 更新Ureport2报表 |
| 28 | * | 28 | * |
| 29 | * @param updateReqVO 更新信息 | 29 | * @param updateReqVO 更新信息 |
| 30 | */ | 30 | */ |
| 31 | - void updateUreportFile(@Valid UreportFileSaveReqVO updateReqVO); | 31 | + void updateUReportData(@Valid UReportDataSaveReqVO updateReqVO); |
| 32 | 32 | ||
| 33 | /** | 33 | /** |
| 34 | * 删除Ureport2报表 | 34 | * 删除Ureport2报表 |
| 35 | * | 35 | * |
| 36 | * @param id 编号 | 36 | * @param id 编号 |
| 37 | */ | 37 | */ |
| 38 | - void deleteUreportFile(Long id); | 38 | + void deleteUReportData(Long id); |
| 39 | 39 | ||
| 40 | /** | 40 | /** |
| 41 | * 获得Ureport2报表 | 41 | * 获得Ureport2报表 |
| @@ -43,7 +43,7 @@ public interface UreportFileService { | @@ -43,7 +43,7 @@ public interface UreportFileService { | ||
| 43 | * @param id 编号 | 43 | * @param id 编号 |
| 44 | * @return Ureport2报表 | 44 | * @return Ureport2报表 |
| 45 | */ | 45 | */ |
| 46 | - UreportFileDO getUreportFile(Long id); | 46 | + UReportDataDO getUReportData(Long id); |
| 47 | 47 | ||
| 48 | /** | 48 | /** |
| 49 | * 获得Ureport2报表分页 | 49 | * 获得Ureport2报表分页 |
| @@ -51,36 +51,32 @@ public interface UreportFileService { | @@ -51,36 +51,32 @@ public interface UreportFileService { | ||
| 51 | * @param pageReqVO 分页查询 | 51 | * @param pageReqVO 分页查询 |
| 52 | * @return Ureport2报表分页 | 52 | * @return Ureport2报表分页 |
| 53 | */ | 53 | */ |
| 54 | - PageResult<UreportFileDO> getUreportFilePage(UreportFilePageReqVO pageReqVO); | ||
| 55 | - | 54 | + PageResult<UReportDataDO> getUReportDataPage(UReportDataPageReqVO pageReqVO); |
| 56 | 55 | ||
| 57 | /** | 56 | /** |
| 58 | - * 根据报表名称检查报表是否存在 | ||
| 59 | - * @param name 报表名称 | 57 | + * 根据名称删除报表 |
| 58 | + * @param name | ||
| 60 | * @return | 59 | * @return |
| 61 | */ | 60 | */ |
| 62 | - Long checkExistByName(String name); | 61 | + int deleteByName(String name); |
| 63 | 62 | ||
| 64 | /** | 63 | /** |
| 65 | - * 根据报表名称查询报表 | ||
| 66 | - * @param name 报表名称 | ||
| 67 | - * @return | 64 | + * 根据名称校验报表是否存在 |
| 65 | + * @param name | ||
| 68 | */ | 66 | */ |
| 69 | - UreportFileDO queryUreportFileDoByName(String name); | ||
| 70 | - | 67 | + void validateUReportDataExists(String name); |
| 71 | 68 | ||
| 72 | /** | 69 | /** |
| 73 | - * 查询全部报表 | 70 | + * 根据名称查询报表 |
| 71 | + * @param name | ||
| 74 | * @return | 72 | * @return |
| 75 | */ | 73 | */ |
| 76 | - List<UreportFileDO> queryReportFileList(); | ||
| 77 | - | 74 | + UReportDataDO selectOneByName(String name); |
| 78 | 75 | ||
| 79 | /** | 76 | /** |
| 80 | - * 根据报表名称删除报表 | ||
| 81 | - * @param name | 77 | + * 获取全部报表 |
| 82 | * @return | 78 | * @return |
| 83 | */ | 79 | */ |
| 84 | - int deleteReportFileByName(String name); | 80 | + List<UReportDataDO> getReportDataList(); |
| 85 | 81 | ||
| 86 | } | 82 | } |
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/ureport/UreportFileServiceImpl.java renamed to yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/ureport/UReportDataServiceImpl.java
| 1 | package cn.iocoder.yudao.module.report.service.ureport; | 1 | package cn.iocoder.yudao.module.report.service.ureport; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.collection.CollectionUtil; | ||
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFilePageReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileSaveReqVO; | ||
| 8 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | ||
| 9 | -import cn.iocoder.yudao.module.report.dal.mysql.ureport.UreportFileMapper; | ||
| 10 | -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
| 11 | import org.springframework.stereotype.Service; | 3 | import org.springframework.stereotype.Service; |
| 4 | +import javax.annotation.Resource; | ||
| 12 | import org.springframework.validation.annotation.Validated; | 5 | import org.springframework.validation.annotation.Validated; |
| 13 | 6 | ||
| 14 | -import javax.annotation.Resource; | 7 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.*; |
| 8 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 9 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 10 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 11 | + | ||
| 12 | +import cn.iocoder.yudao.module.report.dal.mysql.ureport.UReportDataMapper; | ||
| 13 | + | ||
| 15 | import java.util.List; | 14 | import java.util.List; |
| 16 | 15 | ||
| 17 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 16 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 18 | -import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FILE_NOT_EXISTS; | 17 | +import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.*; |
| 19 | 18 | ||
| 20 | /** | 19 | /** |
| 21 | * Ureport2报表 Service 实现类 | 20 | * Ureport2报表 Service 实现类 |
| @@ -24,87 +23,72 @@ import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FI | @@ -24,87 +23,72 @@ import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FI | ||
| 24 | */ | 23 | */ |
| 25 | @Service | 24 | @Service |
| 26 | @Validated | 25 | @Validated |
| 27 | -public class UreportFileServiceImpl implements UreportFileService { | 26 | +public class UReportDataServiceImpl implements UReportDataService { |
| 28 | 27 | ||
| 29 | @Resource | 28 | @Resource |
| 30 | - private UreportFileMapper ureportFileMapper; | 29 | + private UReportDataMapper uReportDataMapper; |
| 31 | 30 | ||
| 32 | @Override | 31 | @Override |
| 33 | - public Long createUreportFile(UreportFileSaveReqVO createReqVO) { | 32 | + public Long createUReportData(UReportDataSaveReqVO createReqVO) { |
| 34 | // 插入 | 33 | // 插入 |
| 35 | - UreportFileDO ureportFile = BeanUtils.toBean(createReqVO, UreportFileDO.class); | ||
| 36 | - ureportFileMapper.insert(ureportFile); | 34 | + UReportDataDO uReportData = BeanUtils.toBean(createReqVO, UReportDataDO.class); |
| 35 | + uReportDataMapper.insert(uReportData); | ||
| 37 | // 返回 | 36 | // 返回 |
| 38 | - return ureportFile.getId(); | 37 | + return uReportData.getId(); |
| 39 | } | 38 | } |
| 40 | 39 | ||
| 41 | @Override | 40 | @Override |
| 42 | - public void updateUreportFile(UreportFileSaveReqVO updateReqVO) { | 41 | + public void updateUReportData(UReportDataSaveReqVO updateReqVO) { |
| 43 | // 校验存在 | 42 | // 校验存在 |
| 44 | - validateUreportFileExists(updateReqVO.getId()); | 43 | + validateUReportDataExists(updateReqVO.getId()); |
| 45 | // 更新 | 44 | // 更新 |
| 46 | - UreportFileDO updateObj = BeanUtils.toBean(updateReqVO, UreportFileDO.class); | ||
| 47 | - ureportFileMapper.updateById(updateObj); | 45 | + UReportDataDO updateObj = BeanUtils.toBean(updateReqVO, UReportDataDO.class); |
| 46 | + uReportDataMapper.updateById(updateObj); | ||
| 48 | } | 47 | } |
| 49 | 48 | ||
| 50 | @Override | 49 | @Override |
| 51 | - public void deleteUreportFile(Long id) { | 50 | + public void deleteUReportData(Long id) { |
| 52 | // 校验存在 | 51 | // 校验存在 |
| 53 | - validateUreportFileExists(id); | 52 | + validateUReportDataExists(id); |
| 54 | // 删除 | 53 | // 删除 |
| 55 | - ureportFileMapper.deleteById(id); | 54 | + uReportDataMapper.deleteById(id); |
| 56 | } | 55 | } |
| 57 | 56 | ||
| 58 | - private void validateUreportFileExists(Long id) { | ||
| 59 | - if (ureportFileMapper.selectById(id) == null) { | ||
| 60 | - throw exception(UREPORT_FILE_NOT_EXISTS); | 57 | + private void validateUReportDataExists(Long id) { |
| 58 | + if (uReportDataMapper.selectById(id) == null) { | ||
| 59 | + throw exception(REPORT_DATA_NOT_EXISTS); | ||
| 61 | } | 60 | } |
| 62 | } | 61 | } |
| 63 | 62 | ||
| 64 | @Override | 63 | @Override |
| 65 | - public UreportFileDO getUreportFile(Long id) { | ||
| 66 | - return ureportFileMapper.selectById(id); | 64 | + public void validateUReportDataExists(String name) { |
| 65 | + if (uReportDataMapper.selectByName(name) == null) { | ||
| 66 | + throw exception(REPORT_DATA_NOT_EXISTS); | ||
| 67 | + } | ||
| 67 | } | 68 | } |
| 68 | 69 | ||
| 69 | @Override | 70 | @Override |
| 70 | - public PageResult<UreportFileDO> getUreportFilePage(UreportFilePageReqVO pageReqVO) { | ||
| 71 | - return ureportFileMapper.selectPage(pageReqVO); | 71 | + public UReportDataDO getUReportData(Long id) { |
| 72 | + return uReportDataMapper.selectById(id); | ||
| 72 | } | 73 | } |
| 73 | 74 | ||
| 74 | @Override | 75 | @Override |
| 75 | - public Long checkExistByName(String name) { | ||
| 76 | - // TODO @赤焰:Service 处理业务逻辑,不能出现 Mapper 层的东西,收敛成 mapper 的一个操作方法 | ||
| 77 | - LambdaQueryWrapper<UreportFileDO> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 78 | - queryWrapper.eq(UreportFileDO::getFileName,name); | ||
| 79 | - return ureportFileMapper.selectCount(queryWrapper); | 76 | + public PageResult<UReportDataDO> getUReportDataPage(UReportDataPageReqVO pageReqVO) { |
| 77 | + return uReportDataMapper.selectPage(pageReqVO); | ||
| 80 | } | 78 | } |
| 81 | 79 | ||
| 82 | @Override | 80 | @Override |
| 83 | - public UreportFileDO queryUreportFileDoByName(String name) { | ||
| 84 | - // TODO @赤焰:Service 处理业务逻辑,不能出现 Mapper 层的东西,收敛成 mapper 的一个操作方法 | ||
| 85 | - LambdaQueryWrapper<UreportFileDO> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 86 | - queryWrapper.eq(UreportFileDO::getFileName,name); | ||
| 87 | - // TODO @赤焰:这里,可以用 selectByName 即可 | ||
| 88 | - List<UreportFileDO> list = ureportFileMapper.selectList(queryWrapper); | ||
| 89 | - if(CollectionUtil.isNotEmpty(list)){ | ||
| 90 | - return list.get(0); | ||
| 91 | - } | ||
| 92 | - return null; | 81 | + public int deleteByName(String name) { |
| 82 | + return uReportDataMapper.deleteByName(name); | ||
| 93 | } | 83 | } |
| 94 | 84 | ||
| 95 | @Override | 85 | @Override |
| 96 | - public List<UreportFileDO> queryReportFileList() { | ||
| 97 | - // TODO @赤焰:Service 处理业务逻辑,不能出现 Mapper 层的东西,收敛成 mapper 的一个操作方法 | ||
| 98 | - LambdaQueryWrapper<UreportFileDO> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 99 | - return ureportFileMapper.selectList(queryWrapper); | 86 | + public UReportDataDO selectOneByName(String name) { |
| 87 | + return uReportDataMapper.selectOneByName(name); | ||
| 100 | } | 88 | } |
| 101 | 89 | ||
| 102 | @Override | 90 | @Override |
| 103 | - public int deleteReportFileByName(String name) { | ||
| 104 | - // TODO @赤焰:Service 处理业务逻辑,不能出现 Mapper 层的东西,收敛成 mapper 的一个操作方法 | ||
| 105 | - LambdaQueryWrapper<UreportFileDO> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 106 | - queryWrapper.eq(UreportFileDO::getFileName,name); | ||
| 107 | - return ureportFileMapper.delete(queryWrapper); | 91 | + public List<UReportDataDO> getReportDataList() { |
| 92 | + return uReportDataMapper.selectList(); | ||
| 108 | } | 93 | } |
| 109 | - | ||
| 110 | } | 94 | } |
yudao-module-report/yudao-module-report-biz/src/main/resources/mapper/ureport/UReportDataMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="cn.iocoder.yudao.module.report.dal.mysql.ureport.UReportDataMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
yudao-module-report/yudao-module-report-biz/src/test/java/cn/iocoder/yudao/module/report/service/ureport/UreportFileServiceImplTest.java renamed to yudao-module-report/yudao-module-report-biz/src/test/java/cn/iocoder/yudao/module/report/service/ureport/UReportDataServiceImplTest.java
| 1 | package cn.iocoder.yudao.module.report.service.ureport; | 1 | package cn.iocoder.yudao.module.report.service.ureport; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||
| 5 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFilePageReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.UreportFileSaveReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UreportFileDO; | ||
| 8 | -import cn.iocoder.yudao.module.report.dal.mysql.ureport.UreportFileMapper; | ||
| 9 | import org.junit.jupiter.api.Disabled; | 3 | import org.junit.jupiter.api.Disabled; |
| 10 | import org.junit.jupiter.api.Test; | 4 | import org.junit.jupiter.api.Test; |
| 11 | -import org.springframework.context.annotation.Import; | ||
| 12 | 5 | ||
| 13 | import javax.annotation.Resource; | 6 | import javax.annotation.Resource; |
| 14 | 7 | ||
| 15 | -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; | ||
| 16 | -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; | ||
| 17 | -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; | ||
| 18 | -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; | ||
| 19 | -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; | ||
| 20 | -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; | ||
| 21 | -import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.UREPORT_FILE_NOT_EXISTS; | 8 | +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 9 | + | ||
| 10 | +import cn.iocoder.yudao.module.report.controller.admin.ureport.vo.*; | ||
| 11 | +import cn.iocoder.yudao.module.report.dal.dataobject.ureport.UReportDataDO; | ||
| 12 | +import cn.iocoder.yudao.module.report.dal.mysql.ureport.UReportDataMapper; | ||
| 13 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 14 | + | ||
| 15 | +import org.springframework.context.annotation.Import; | ||
| 16 | + | ||
| 17 | +import static cn.iocoder.yudao.module.report.enums.ErrorCodeConstants.*; | ||
| 18 | +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; | ||
| 19 | +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; | ||
| 20 | +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; | ||
| 21 | +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; | ||
| 22 | import static org.junit.jupiter.api.Assertions.*; | 22 | import static org.junit.jupiter.api.Assertions.*; |
| 23 | 23 | ||
| 24 | -// TODO 芋艿:但愿测试后面补 | ||
| 25 | /** | 24 | /** |
| 26 | - * {@link UreportFileServiceImpl} 的单元测试类 | 25 | + * {@link UReportDataServiceImpl} 的单元测试类 |
| 27 | * | 26 | * |
| 28 | * @author 芋道源码 | 27 | * @author 芋道源码 |
| 29 | */ | 28 | */ |
| 30 | -@Import(UreportFileServiceImpl.class) | ||
| 31 | -public class UreportFileServiceImplTest extends BaseDbUnitTest { | 29 | +@Import(UReportDataServiceImpl.class) |
| 30 | +public class UReportDataServiceImplTest extends BaseDbUnitTest { | ||
| 32 | 31 | ||
| 33 | @Resource | 32 | @Resource |
| 34 | - private UreportFileServiceImpl ureportFileService; | 33 | + private UReportDataServiceImpl uReportDataService; |
| 35 | 34 | ||
| 36 | @Resource | 35 | @Resource |
| 37 | - private UreportFileMapper ureportFileMapper; | 36 | + private UReportDataMapper uReportDataMapper; |
| 38 | 37 | ||
| 39 | @Test | 38 | @Test |
| 40 | - public void testCreateUreportFile_success() { | 39 | + public void testCreateUReportData_success() { |
| 41 | // 准备参数 | 40 | // 准备参数 |
| 42 | - UreportFileSaveReqVO createReqVO = randomPojo(UreportFileSaveReqVO.class).setId(null); | 41 | + UReportDataSaveReqVO createReqVO = randomPojo(UReportDataSaveReqVO.class).setId(null); |
| 43 | 42 | ||
| 44 | // 调用 | 43 | // 调用 |
| 45 | - Long ureportFileId = ureportFileService.createUreportFile(createReqVO); | 44 | + Long uReportDataId = uReportDataService.createUReportData(createReqVO); |
| 46 | // 断言 | 45 | // 断言 |
| 47 | - assertNotNull(ureportFileId); | 46 | + assertNotNull(uReportDataId); |
| 48 | // 校验记录的属性是否正确 | 47 | // 校验记录的属性是否正确 |
| 49 | - UreportFileDO ureportFile = ureportFileMapper.selectById(ureportFileId); | ||
| 50 | - assertPojoEquals(createReqVO, ureportFile, "id"); | 48 | + UReportDataDO uReportData = uReportDataMapper.selectById(uReportDataId); |
| 49 | + assertPojoEquals(createReqVO, uReportData, "id"); | ||
| 51 | } | 50 | } |
| 52 | 51 | ||
| 53 | @Test | 52 | @Test |
| 54 | - public void testUpdateUreportFile_success() { | 53 | + public void testUpdateUReportData_success() { |
| 55 | // mock 数据 | 54 | // mock 数据 |
| 56 | - UreportFileDO dbUreportFile = randomPojo(UreportFileDO.class); | ||
| 57 | - ureportFileMapper.insert(dbUreportFile);// @Sql: 先插入出一条存在的数据 | 55 | + UReportDataDO dbUReportData = randomPojo(UReportDataDO.class); |
| 56 | + uReportDataMapper.insert(dbUReportData);// @Sql: 先插入出一条存在的数据 | ||
| 58 | // 准备参数 | 57 | // 准备参数 |
| 59 | - UreportFileSaveReqVO updateReqVO = randomPojo(UreportFileSaveReqVO.class, o -> { | ||
| 60 | - o.setId(dbUreportFile.getId()); // 设置更新的 ID | 58 | + UReportDataSaveReqVO updateReqVO = randomPojo(UReportDataSaveReqVO.class, o -> { |
| 59 | + o.setId(dbUReportData.getId()); // 设置更新的 ID | ||
| 61 | }); | 60 | }); |
| 62 | 61 | ||
| 63 | // 调用 | 62 | // 调用 |
| 64 | - ureportFileService.updateUreportFile(updateReqVO); | 63 | + uReportDataService.updateUReportData(updateReqVO); |
| 65 | // 校验是否更新正确 | 64 | // 校验是否更新正确 |
| 66 | - UreportFileDO ureportFile = ureportFileMapper.selectById(updateReqVO.getId()); // 获取最新的 | ||
| 67 | - assertPojoEquals(updateReqVO, ureportFile); | 65 | + UReportDataDO uReportData = uReportDataMapper.selectById(updateReqVO.getId()); // 获取最新的 |
| 66 | + assertPojoEquals(updateReqVO, uReportData); | ||
| 68 | } | 67 | } |
| 69 | 68 | ||
| 70 | @Test | 69 | @Test |
| 71 | - public void testUpdateUreportFile_notExists() { | 70 | + public void testUpdateUReportData_notExists() { |
| 72 | // 准备参数 | 71 | // 准备参数 |
| 73 | - UreportFileSaveReqVO updateReqVO = randomPojo(UreportFileSaveReqVO.class); | 72 | + UReportDataSaveReqVO updateReqVO = randomPojo(UReportDataSaveReqVO.class); |
| 74 | 73 | ||
| 75 | // 调用, 并断言异常 | 74 | // 调用, 并断言异常 |
| 76 | - assertServiceException(() -> ureportFileService.updateUreportFile(updateReqVO), UREPORT_FILE_NOT_EXISTS); | 75 | + assertServiceException(() -> uReportDataService.updateUReportData(updateReqVO), REPORT_DATA_NOT_EXISTS); |
| 77 | } | 76 | } |
| 78 | 77 | ||
| 79 | @Test | 78 | @Test |
| 80 | - public void testDeleteUreportFile_success() { | 79 | + public void testDeleteUReportData_success() { |
| 81 | // mock 数据 | 80 | // mock 数据 |
| 82 | - UreportFileDO dbUreportFile = randomPojo(UreportFileDO.class); | ||
| 83 | - ureportFileMapper.insert(dbUreportFile);// @Sql: 先插入出一条存在的数据 | 81 | + UReportDataDO dbUReportData = randomPojo(UReportDataDO.class); |
| 82 | + uReportDataMapper.insert(dbUReportData);// @Sql: 先插入出一条存在的数据 | ||
| 84 | // 准备参数 | 83 | // 准备参数 |
| 85 | - Long id = dbUreportFile.getId(); | 84 | + Long id = dbUReportData.getId(); |
| 86 | 85 | ||
| 87 | // 调用 | 86 | // 调用 |
| 88 | - ureportFileService.deleteUreportFile(id); | 87 | + uReportDataService.deleteUReportData(id); |
| 89 | // 校验数据不存在了 | 88 | // 校验数据不存在了 |
| 90 | - assertNull(ureportFileMapper.selectById(id)); | 89 | + assertNull(uReportDataMapper.selectById(id)); |
| 91 | } | 90 | } |
| 92 | 91 | ||
| 93 | @Test | 92 | @Test |
| 94 | - public void testDeleteUreportFile_notExists() { | 93 | + public void testDeleteUReportData_notExists() { |
| 95 | // 准备参数 | 94 | // 准备参数 |
| 96 | Long id = randomLongId(); | 95 | Long id = randomLongId(); |
| 97 | 96 | ||
| 98 | // 调用, 并断言异常 | 97 | // 调用, 并断言异常 |
| 99 | - assertServiceException(() -> ureportFileService.deleteUreportFile(id), UREPORT_FILE_NOT_EXISTS); | 98 | + assertServiceException(() -> uReportDataService.deleteUReportData(id), REPORT_DATA_NOT_EXISTS); |
| 100 | } | 99 | } |
| 101 | 100 | ||
| 102 | @Test | 101 | @Test |
| 103 | @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 | 102 | @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 |
| 104 | - public void testGetUreportFilePage() { | 103 | + public void testGetUReportDataPage() { |
| 105 | // mock 数据 | 104 | // mock 数据 |
| 106 | - UreportFileDO dbUreportFile = randomPojo(UreportFileDO.class, o -> { // 等会查询到 | ||
| 107 | - o.setFileName(null); | 105 | + UReportDataDO dbUReportData = randomPojo(UReportDataDO.class, o -> { // 等会查询到 |
| 106 | + o.setName(null); | ||
| 108 | o.setStatus(null); | 107 | o.setStatus(null); |
| 109 | o.setRemark(null); | 108 | o.setRemark(null); |
| 110 | o.setCreateTime(null); | 109 | o.setCreateTime(null); |
| 111 | }); | 110 | }); |
| 112 | - ureportFileMapper.insert(dbUreportFile); | ||
| 113 | - // 测试 fileName 不匹配 | ||
| 114 | - ureportFileMapper.insert(cloneIgnoreId(dbUreportFile, o -> o.setFileName(null))); | 111 | + uReportDataMapper.insert(dbUReportData); |
| 112 | + // 测试 name 不匹配 | ||
| 113 | + uReportDataMapper.insert(cloneIgnoreId(dbUReportData, o -> o.setName(null))); | ||
| 115 | // 测试 status 不匹配 | 114 | // 测试 status 不匹配 |
| 116 | - ureportFileMapper.insert(cloneIgnoreId(dbUreportFile, o -> o.setStatus(null))); | 115 | + uReportDataMapper.insert(cloneIgnoreId(dbUReportData, o -> o.setStatus(null))); |
| 117 | // 测试 remark 不匹配 | 116 | // 测试 remark 不匹配 |
| 118 | - ureportFileMapper.insert(cloneIgnoreId(dbUreportFile, o -> o.setRemark(null))); | 117 | + uReportDataMapper.insert(cloneIgnoreId(dbUReportData, o -> o.setRemark(null))); |
| 119 | // 测试 createTime 不匹配 | 118 | // 测试 createTime 不匹配 |
| 120 | - ureportFileMapper.insert(cloneIgnoreId(dbUreportFile, o -> o.setCreateTime(null))); | 119 | + uReportDataMapper.insert(cloneIgnoreId(dbUReportData, o -> o.setCreateTime(null))); |
| 121 | // 准备参数 | 120 | // 准备参数 |
| 122 | - UreportFilePageReqVO reqVO = new UreportFilePageReqVO(); | ||
| 123 | - reqVO.setFileName(null); | 121 | + UReportDataPageReqVO reqVO = new UReportDataPageReqVO(); |
| 122 | + reqVO.setName(null); | ||
| 124 | reqVO.setStatus(null); | 123 | reqVO.setStatus(null); |
| 125 | reqVO.setRemark(null); | 124 | reqVO.setRemark(null); |
| 126 | reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); | 125 | reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); |
| 127 | 126 | ||
| 128 | // 调用 | 127 | // 调用 |
| 129 | - PageResult<UreportFileDO> pageResult = ureportFileService.getUreportFilePage(reqVO); | 128 | + PageResult<UReportDataDO> pageResult = uReportDataService.getUReportDataPage(reqVO); |
| 130 | // 断言 | 129 | // 断言 |
| 131 | assertEquals(1, pageResult.getTotal()); | 130 | assertEquals(1, pageResult.getTotal()); |
| 132 | assertEquals(1, pageResult.getList().size()); | 131 | assertEquals(1, pageResult.getList().size()); |
| 133 | - assertPojoEquals(dbUreportFile, pageResult.getList().get(0)); | 132 | + assertPojoEquals(dbUReportData, pageResult.getList().get(0)); |
| 134 | } | 133 | } |
| 135 | 134 | ||
| 136 | -} | ||
| 137 | \ No newline at end of file | 135 | \ No newline at end of file |
| 136 | +} |
yudao-module-report/yudao-module-report-biz/src/test/resources/sql/clean.sql
yudao-module-report/yudao-module-report-biz/src/test/resources/sql/create_tables.sql
| @@ -12,16 +12,16 @@ CREATE TABLE IF NOT EXISTS "report_go_view_project" ( | @@ -12,16 +12,16 @@ CREATE TABLE IF NOT EXISTS "report_go_view_project" ( | ||
| 12 | "deleted" bit NOT NULL DEFAULT FALSE, | 12 | "deleted" bit NOT NULL DEFAULT FALSE, |
| 13 | PRIMARY KEY ("id") | 13 | PRIMARY KEY ("id") |
| 14 | ) COMMENT 'GoView 项目表'; | 14 | ) COMMENT 'GoView 项目表'; |
| 15 | -CREATE TABLE IF NOT EXISTS "ureport_file" ( | ||
| 16 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 17 | - "file_name" varchar NOT NULL, | ||
| 18 | - "status" int NOT NULL, | ||
| 19 | - "file_content" varchar, | ||
| 20 | - "remark" varchar, | ||
| 21 | - "creator" varchar DEFAULT '', | ||
| 22 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 23 | - "updater" varchar DEFAULT '', | ||
| 24 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 25 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 26 | - PRIMARY KEY ("id") | 15 | +CREATE TABLE IF NOT EXISTS "report_ureport_data" ( |
| 16 | + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 17 | + "name" varchar NOT NULL, | ||
| 18 | + "status" int NOT NULL, | ||
| 19 | + "content" varchar, | ||
| 20 | + "remark" varchar, | ||
| 21 | + "creator" varchar DEFAULT '', | ||
| 22 | + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 23 | + "updater" varchar DEFAULT '', | ||
| 24 | + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 25 | + "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 26 | + PRIMARY KEY ("id") | ||
| 27 | ) COMMENT 'Ureport2报表'; | 27 | ) COMMENT 'Ureport2报表'; |
yudao-server/src/main/resources/application.yaml
| @@ -229,7 +229,7 @@ yudao: | @@ -229,7 +229,7 @@ yudao: | ||
| 229 | - jimu_report_link | 229 | - jimu_report_link |
| 230 | - jimu_report_map | 230 | - jimu_report_map |
| 231 | - jimu_report_share | 231 | - jimu_report_share |
| 232 | - - ureport_file | 232 | + - report_ureport_data |
| 233 | - rep_demo_dxtj | 233 | - rep_demo_dxtj |
| 234 | - rep_demo_employee | 234 | - rep_demo_employee |
| 235 | - rep_demo_gongsi | 235 | - rep_demo_gongsi |