From 448e5af484afbc9c5f0af7607fe5817e6c32b7b3 Mon Sep 17 00:00:00 2001 From: yang chen Date: Mon, 15 Dec 2025 11:03:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(report):=20=E6=96=B0=E5=A2=9E=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加工单统计报表基础配置数据 - 配置报表字段:未开始、已完结、已作废、进行中、总数 - 设置报表数据源为自定义SQL查询 - 实现按日、月、年维度统计工单状态数量 - 支持通过工单类型和任务类型筛选数据 - 报表字段支持导出及前端展示控制 - 配置报表国际化标签(简体中文) - 关联报表分组并设置访问权限为无需认证 - 定义报表表格显示样式及高度属性 - 设置报表唯一标识码report_work_order_statistics --- .../20251215/report_work_order_statistics.sql | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 SQL/202512/20251215/report_work_order_statistics.sql diff --git a/SQL/202512/20251215/report_work_order_statistics.sql b/SQL/202512/20251215/report_work_order_statistics.sql new file mode 100644 index 0000000..0aaec3f --- /dev/null +++ b/SQL/202512/20251215/report_work_order_statistics.sql @@ -0,0 +1,33 @@ +delete from "LOWCODE_FRAME"."LOWCODE_REPORT" where "REPORT_CODE" = 'report_work_order_statistics'; +insert into "LOWCODE_FRAME"."LOWCODE_REPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_NAME", "REPORT_CODE", "GROUP_REPORT_ID", "JAVA_CONFIG", "DATA_CONFIG", "TABLE_CONFIG", "DATA_SOURCES_CONFIG", "DATA_SOURCES_CODE") values(2000399466478268417, 1, 1, '2025-12-15 10:56:13', 100, null, '2025-12-15 10:56:13', 0, '工单统计报表', 'report_work_order_statistics', 1960535736475779074, '', 'page,authFalse', 'height,header,menu,index,border', '{"dataOrigin":"1998318491426455554","executeSql":"select\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE)\r\n and \"GMT_CREATE\" < TRUNC(SYSDATE) + 1\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}\r\nunion all\r\nselect\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE, ''mm'')\r\n and \"GMT_CREATE\" < ADD_MONTHS(TRUNC(SYSDATE, ''mm''), 1)\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}\r\nunion all\r\nselect\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE, ''yyyy'')\r\n and \"GMT_CREATE\" < ADD_MONTHS(TRUNC(SYSDATE, ''yyyy''), 12)\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}","optionData":{"optionObj":{"select":[],"from":[],"where":[],"groupBy":"","having":"","orderBy":[]},"customSql":"select\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE)\r\n and \"GMT_CREATE\" < TRUNC(SYSDATE) + 1\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}\r\nunion all\r\nselect\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE, ''mm'')\r\n and \"GMT_CREATE\" < ADD_MONTHS(TRUNC(SYSDATE, ''mm''), 1)\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}\r\nunion all\r\nselect\r\n count(\r\n case\r\n when \"STATUS\" = ''未处理'' then 1\r\n else null\r\n end\r\n ) as pending,\r\n count(\r\n case\r\n when \"STATUS\" = ''已处理'' then 1\r\n else null\r\n end\r\n ) as processed,\r\n count(\r\n case\r\n when \"STATUS\" = ''已关闭'' then 1\r\n else null\r\n end\r\n ) as closed,\r\n count(\r\n case\r\n when \"STATUS\" not in (''未处理'', ''已处理'', ''已关闭'') then 1\r\n else null\r\n end\r\n ) as processing,\r\n count(*) as total\r\nfrom\r\n \"XCAMPUS_WORKORDER\".\"WORK_ORDER\"\r\nwhere\r\n \"GMT_CREATE\" >= TRUNC(SYSDATE, ''yyyy'')\r\n and \"GMT_CREATE\" < ADD_MONTHS(TRUNC(SYSDATE, ''yyyy''), 12)\r\n and \"ORDER_TYPE_PATH_NAME\" = #{workOrderType}\r\n and \"TASK_TYPE\" = #{taskType}","aliasObj":{"lc_power_env_alert_message":"tbl_lpeam"},"typeKey":"custom"}}', 'master'); +delete from "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD" where "REPORT_ID" in (select "ID" from "LOWCODE_FRAME"."LOWCODE_REPORT" where "REPORT_CODE" = 'report_work_order_statistics'); +insert into "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_TYPE", "SORT_NUM", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "DICT_CODE", "IS_EXPORT", "IS_SHOW_SORT", "LABEL_I18N") values(2000399466578931713, 1, 1, '2025-12-15 10:56:13', 100, null, null, 0, 2000399466478268417, 'pending', '未开始', 'Integer', 1, 'Y', 'Y', 'RANGE', '', 'Y', 'Y', 'return { + //简体中文 + ''zh-CN'': ''未开始'', + //English + ''en'': '''', +}'); +insert into "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_TYPE", "SORT_NUM", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "DICT_CODE", "IS_EXPORT", "IS_SHOW_SORT", "LABEL_I18N") values(2000399466578931714, 1, 1, '2025-12-15 10:56:13', 100, null, null, 0, 2000399466478268417, 'processed', '已完结', 'Integer', 2, 'Y', 'Y', 'RANGE', '', 'Y', 'Y', 'return { + //简体中文 + ''zh-CN'': ''已完结'', + //English + ''en'': '''', +}'); +insert into "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_TYPE", "SORT_NUM", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "DICT_CODE", "IS_EXPORT", "IS_SHOW_SORT", "LABEL_I18N") values(2000399466578931715, 1, 1, '2025-12-15 10:56:13', 100, null, null, 0, 2000399466478268417, 'closed', '已作废', 'Integer', 3, 'Y', 'Y', 'RANGE', '', 'Y', 'Y', 'return { + //简体中文 + ''zh-CN'': ''已作废'', + //English + ''en'': '''', +}'); +insert into "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_TYPE", "SORT_NUM", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "DICT_CODE", "IS_EXPORT", "IS_SHOW_SORT", "LABEL_I18N") values(2000399466578931716, 1, 1, '2025-12-15 10:56:13', 100, null, null, 0, 2000399466478268417, 'processing', '进行中', 'Integer', 4, 'Y', 'Y', 'RANGE', '', 'Y', 'Y', 'return { + //简体中文 + ''zh-CN'': ''进行中'', + //English + ''en'': '''', +}'); +insert into "LOWCODE_FRAME"."LOWCODE_REPORT_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "REPORT_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_TYPE", "SORT_NUM", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "DICT_CODE", "IS_EXPORT", "IS_SHOW_SORT", "LABEL_I18N") values(2000399466578931717, 1, 1, '2025-12-15 10:56:13', 100, null, null, 0, 2000399466478268417, 'total', '总数', 'Integer', 5, 'Y', 'Y', 'RANGE', '', 'Y', 'Y', 'return { + //简体中文 + ''zh-CN'': ''总数'', + //English + ''en'': '''', +}');