From 9b0b531d63e9c090a4f34f06365a0ffaba8b1991 Mon Sep 17 00:00:00 2001 From: wangshaoping Date: Thu, 7 Aug 2025 17:12:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A1=86=E6=9E=B6=E5=8F=91?= =?UTF-8?q?=E5=B8=83:=208.2.30=20=20=201)=20=E6=94=AF=E6=8C=81=20jxls=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=20excel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端核心发布: 8.2.115 1) 修改默认导出功能 --- README.adoc | 3 + cips.frontend/package.json | 2 +- erm.frontend/package.json | 2 +- gradle.properties | 6 +- io.sc.engine.mv.frontend/package.json | 2 +- .../src/views/config/binomial.vue | 2 +- .../src/views/config/chiSquare.vue | 16 +- .../src/views/config/cutOffPoint.vue | 2 +- .../src/views/config/dataExtractor.vue | 2 - .../src/views/config/distribution.vue | 2 +- .../src/views/config/executor.vue | 2 +- .../src/views/config/model.vue | 2 - .../src/views/config/scale.vue | 2 +- .../src/views/config/threshold.vue | 16 +- .../src/views/result/Result.vue | 2 - .../src/views/sample/Sample.vue | 2 - io.sc.engine.rule.frontend/package.json | 2 +- .../src/views/lib/IndicatorGrid.vue | 2 - .../src/views/lib/ProcessorGrid.vue | 2 - .../src/views/resources/designer/Addition.vue | 2 - .../src/views/resources/designer/Option.vue | 2 - .../views/resources/designer/Parameter.vue | 2 - .../views/resources/designer/Processor.vue | 2 - .../views/shared/TestcaseParameterGrid.vue | 2 - .../src/views/shared/Validator.vue | 2 - .../src/views/workflow/Workflow.vue | 2 - io.sc.engine.st.frontend/package.json | 2 +- .../src/views/DepFactor/DepFactor.vue | 2 - .../src/views/DepFactor/DepFactorDefine.vue | 2 - .../src/views/IndepFactor/IndepFactor.vue | 2 - .../views/IndepFactor/IndepFactorDefine.vue | 2 - .../src/views/Model/ModelDefine.vue | 2 - .../src/views/Scenario/ScenarioFactor.vue | 2 - .../views/Scenario/ScenarioFactorDefine.vue | 2 - .../src/views/TestCase/TestCase.vue | 2 - io.sc.platform.ai.frontend/package.json | 2 +- io.sc.platform.core.frontend/package.json | 2 +- .../src/platform/components/grid/ts/Init.ts | 1 + .../grid/ts/toolbar/buttons/Export.ts | 63 +----- .../grid/ts/toolbar/buttons/Export2.ts | 89 +++++++++ .../src/platform/layout/sub-layout/Main.vue | 25 ++- .../src/platform/layout/sub-layout/Topper.vue | 48 ++++- .../platform/plugin/manager/RouterManager.ts | 3 + .../platform/plugin/manager/TagViewManager.ts | 7 + .../src/platform/types/ConfigureType.ts | 2 + .../src/platform/types/TagViewType.ts | 1 + .../src/platform/views/Home.vue | 10 + .../template-project/package.json | 4 +- .../io/sc/platform/core/i18n/words.properties | 3 +- .../platform/core/i18n/words_tw_CN.properties | 3 +- .../platform/core/i18n/words_zh_CN.properties | 3 +- io.sc.platform.developer.doc/package.json | 2 +- .../package.json | 2 +- .../views/plugin/ApplicationProperties.vue | 2 +- .../src/views/plugin/Components.vue | 2 +- .../src/views/plugin/Directories.vue | 2 +- .../src/views/plugin/FrontendModule.vue | 2 +- .../src/views/plugin/FrontendRoutes.vue | 2 +- .../src/views/plugin/Initializer.vue | 2 +- .../src/views/plugin/JsonSerializers.vue | 2 +- .../src/views/plugin/Liquibase.vue | 2 +- .../src/views/plugin/Menus.vue | 2 +- .../src/views/plugin/Messages.vue | 2 +- .../src/views/plugin/P6spy.vue | 2 +- .../src/views/plugin/Parameters.vue | 2 +- .../src/views/plugin/Repositories.vue | 2 +- .../src/views/plugin/RestartProperties.vue | 2 +- .../src/views/plugin/Security.vue | 2 +- .../src/views/plugin/SystemProperties.vue | 2 +- .../src/views/plugin/Ws.vue | 2 +- .../src/views/springboot/Autoconfigure.vue | 2 +- .../src/views/springboot/Bean.vue | 2 +- .../src/views/springboot/Environment.vue | 2 +- .../src/views/springboot/Mapping.vue | 6 +- .../flowable/jpa/entity/ProcessEntity.xlsx | Bin 0 -> 12476 bytes io.sc.platform.lcdp.frontend/package.json | 2 +- .../src/components/index.ts | 4 +- .../src/i18n/messages.json | 16 +- .../src/i18n/messages_tw_CN.json | 18 +- .../src/i18n/messages_zh_CN.json | 18 +- .../src/menus/menus.json | 4 +- .../src/routes/routes.json | 10 +- .../src/views/export/ExportTemplate.vue | 58 ------ .../src/views/export/UniverTemplate.vue | 154 --------------- .../src/views/jxls/AttachmentDialog.vue | 74 +++++++ .../src/views/jxls/Template.vue | 126 ++++++++++++ .../src/views/theme/TagViewBar.vue | 10 + .../src/views/theme/Topper.vue | 20 ++ .../platform/lcdp/configure/api/Topper.java | 18 ++ .../ExportExcelTemplateColumnController.java | 15 -- .../ExportExcelTemplateController.java | 22 --- .../ExportExcelTemplateColumnEntity.java | 136 ------------- .../lcdp/excel/template/enums/DataType.java | 9 - .../ExportExcelTemplateColumnRepository.java | 7 - .../ExportExcelTemplateRepository.java | 8 - .../ExportExcelTemplateColumnService.java | 9 - .../service/ExportExcelTemplateService.java | 13 -- .../ExportExcelTemplateColumnServiceImpl.java | 12 -- .../impl/ExportExcelTemplateServiceImpl.java | 24 --- .../vo/ExportExcelTemplateColumnVo.java | 82 -------- .../template/vo/ExportExcelTemplateVo.java | 77 -------- .../controller/JxlsTemplateController.java | 36 ++++ .../template/entity/JxlsTemplateEntity.java} | 88 +++++---- .../repository/JxlsTemplateRepository.java | 8 + .../template/service/JxlsTemplateService.java | 16 ++ .../service/impl/JxlsTemplateServiceImpl.java | 72 +++++++ .../lcdp/jxls/template/vo/JxlsTemplateVo.java | 81 ++++++++ .../META-INF/platform/plugins/components.json | 4 + .../META-INF/platform/plugins/liquibase.json | 2 +- .../platform/plugins/repositories.json | 5 +- ...latform.lcdp_Export_Excel_Template_DDL.xml | 86 --------- .../io.sc.platform.lcdp_JXLS_Template_DDL.xml | 44 +++++ .../package.json | 2 +- .../LicenseKeyGeneratorWebController.java | 20 ++ .../keygen/jpa/entity/LicenseEntity.xlsx | Bin 0 -> 12280 bytes io.sc.platform.mvc.frontend/package.json | 2 +- .../support/RestCrudController.java | 30 ++- io.sc.platform.orm/build.gradle | 1 + .../orm/repository/DaoRepository.java | 19 ++ .../repository/impl/DaoRepositoryImpl.java | 90 +++++++++ .../sc/platform/orm/service/DaoService.java | 19 ++ .../orm/service/JxlsTemplateService.java | 8 + .../orm/service/impl/DaoServiceImpl.java | 180 +++++++++++++++++- .../service/impl/JxlsTemplateServiceImpl.java | 74 +++++++ .../service/support/DataExportConfigure.java | 61 ++++++ .../orm/service/support/JxlsTemplate.java | 76 ++++++++ io.sc.platform.poi/build.gradle | 6 +- .../poi/generator/UniverExcelGenerator.java | 49 +++-- .../poi/generator/UniverTemplate.java | 24 +++ .../poi/jxls/generator/ExcelGenerator.java | 15 ++ .../poi}/univer/model/AbsoluteRefType.java | 2 +- .../poi}/univer/model/AlignTypeH.java | 2 +- .../poi}/univer/model/AlignTypeV.java | 2 +- .../poi}/univer/model/BaselineOffset.java | 2 +- .../platform/poi}/univer/model/BlockType.java | 2 +- .../poi}/univer/model/BorderStyleTypes.java | 2 +- .../poi}/univer/model/BulletAlignment.java | 2 +- .../poi}/univer/model/CellValueType.java | 2 +- .../model/CharacterSpacingControlType.java | 2 +- .../univer/model/ColumnSeparatorType.java | 2 +- .../univer/model/CustomDecorationType.java | 2 +- .../poi}/univer/model/CustomRangeType.java | 2 +- .../poi}/univer/model/DashStyleType.java | 2 +- .../poi}/univer/model/DocumentFlavor.java | 2 +- .../poi}/univer/model/DrawingType.java | 2 +- .../platform/poi}/univer/model/GridType.java | 2 +- .../poi}/univer/model/HorizontalAlign.java | 2 +- .../poi}/univer/model/IBorderData.java | 3 +- .../poi}/univer/model/IBorderStyleData.java | 2 +- .../platform/poi}/univer/model/IBullet.java | 2 +- .../platform/poi}/univer/model/ICellData.java | 3 +- .../poi}/univer/model/IColorStyle.java | 2 +- .../poi}/univer/model/IColumnData.java | 2 +- .../poi}/univer/model/IColumnHeader.java | 2 +- .../poi}/univer/model/ICustomBlock.java | 2 +- .../poi}/univer/model/ICustomDecoration.java | 2 +- .../poi}/univer/model/ICustomRange.java | 2 +- .../poi}/univer/model/ICustomTable.java | 2 +- .../poi}/univer/model/IDistFromText.java | 2 +- .../poi}/univer/model/IDocDrawingBase.java | 2 +- .../univer/model/IDocDrawingPosition.java | 2 +- .../poi}/univer/model/IDocsBorder.java | 2 +- .../poi}/univer/model/IDocumentBody.java | 2 +- .../poi}/univer/model/IDocumentData.java | 2 +- .../univer/model/IDocumentRenderConfig.java | 2 +- .../poi}/univer/model/IDocumentSettings.java | 2 +- .../poi}/univer/model/IDocumentStyle.java | 2 +- .../poi}/univer/model/IDrawingParam.java | 2 +- .../poi}/univer/model/IDrawingSearch.java | 2 +- .../poi}/univer/model/IDrawingSpace.java | 2 +- .../poi}/univer/model/IFooterData.java | 2 +- .../platform/poi}/univer/model/IFreeze.java | 2 +- .../poi}/univer/model/IHeaderData.java | 2 +- .../poi}/univer/model/IIndentStart.java | 2 +- .../platform/poi}/univer/model/IListData.java | 2 +- .../poi}/univer/model/INestingLevel.java | 2 +- .../poi}/univer/model/INumberUnit.java | 2 +- .../poi}/univer/model/IObjectPositionH.java | 2 +- .../poi}/univer/model/IObjectPositionV.java | 2 +- .../poi}/univer/model/IPaddingData.java | 2 +- .../poi}/univer/model/IParagraph.java | 2 +- .../poi}/univer/model/IParagraphBorder.java | 2 +- .../univer/model/IParagraphProperties.java | 2 +- .../poi}/univer/model/IParagraphStyle.java | 2 +- .../sc/platform/poi}/univer/model/IRange.java | 2 +- .../poi}/univer/model/IRangeLocation.java | 2 +- .../poi}/univer/model/IReferenceSource.java | 2 +- .../platform/poi}/univer/model/IResource.java | 2 +- .../platform/poi}/univer/model/IRowData.java | 2 +- .../poi}/univer/model/IRowHeader.java | 2 +- .../poi}/univer/model/ISectionBreak.java | 2 +- .../model/ISectionColumnProperties.java | 2 +- .../platform/poi}/univer/model/IShading.java | 2 +- .../sc/platform/poi}/univer/model/ISize.java | 2 +- .../poi}/univer/model/IStyleBase.java | 2 +- .../poi}/univer/model/IStyleData.java | 2 +- .../platform/poi}/univer/model/ITabStop.java | 2 +- .../sc/platform/poi}/univer/model/ITable.java | 2 +- .../poi}/univer/model/ITableAnchor.java | 2 +- .../poi}/univer/model/ITableCell.java | 2 +- .../poi}/univer/model/ITableCellBorder.java | 2 +- .../poi}/univer/model/ITableCellMargin.java | 2 +- .../poi}/univer/model/ITableColumn.java | 2 +- .../platform/poi}/univer/model/ITableRow.java | 2 +- .../poi}/univer/model/ITableRowSize.java | 2 +- .../poi}/univer/model/ITextDecoration.java | 2 +- .../poi}/univer/model/ITextRotation.java | 2 +- .../platform/poi}/univer/model/ITextRun.java | 2 +- .../poi}/univer/model/ITextStyle.java | 2 +- .../poi}/univer/model/ITransformState.java | 2 +- .../poi}/univer/model/IWidthInTableSize.java | 2 +- .../poi}/univer/model/IWorkbookData.java | 4 +- .../poi}/univer/model/IWorksheetData.java | 4 +- .../poi}/univer/model/ListGlyphType.java | 2 +- .../poi}/univer/model/LocaleType.java | 2 +- .../poi}/univer/model/NamedStyleType.java | 2 +- .../poi}/univer/model/NumberUnitType.java | 2 +- .../univer/model/ObjectRelativeFromH.java | 2 +- .../univer/model/ObjectRelativeFromV.java | 2 +- .../poi}/univer/model/PageOrientType.java | 2 +- .../model/PositionedObjectLayoutType.java | 2 +- .../platform/poi}/univer/model/RangeType.java | 2 +- .../poi}/univer/model/SectionType.java | 2 +- .../poi}/univer/model/SpacingRule.java | 2 +- .../poi}/univer/model/TabStopAlignment.java | 2 +- .../poi}/univer/model/TableAlignmentType.java | 2 +- .../poi}/univer/model/TableLayoutType.java | 2 +- .../poi}/univer/model/TableRowHeightRule.java | 2 +- .../poi}/univer/model/TableSizeType.java | 2 +- .../poi}/univer/model/TableTextWrapType.java | 2 +- .../poi}/univer/model/TextDecoration.java | 2 +- .../poi}/univer/model/TextDirection.java | 2 +- .../poi}/univer/model/TextDirectionType.java | 2 +- .../poi}/univer/model/ThemeColorType.java | 2 +- .../poi}/univer/model/VerticalAlign.java | 2 +- .../univer/model/VerticalAlignmentType.java | 2 +- .../poi}/univer/model/WrapStrategy.java | 2 +- .../poi}/univer/model/WrapTextType.java | 2 +- .../META-INF/platform/plugins/components.json | 3 +- .../META-INF/platform/plugins/security.json | 2 +- .../package.json | 2 +- .../src/views/executor/Executor.vue | 2 - .../src/views/task/Task.vue | 2 - .../src/views/tasklog/TaskLog.vue | 2 - .../handler/PlatformLogoutSuccessHandler.java | 10 + io.sc.platform.system.frontend/package.json | 2 +- .../user/controller/UserWebController.java | 1 + .../system/user/service/UserService.java | 1 - .../user/service/impl/UserServiceImpl.java | 7 +- .../jpa/entity/AnnouncementEntity.xlsx | Bin 0 -> 12008 bytes .../jpa/entity/ApplicationEntity.xlsx | Bin 0 -> 12094 bytes .../auditlog/jpa/entity/AuditLogEntity.xlsx | Bin 0 -> 12124 bytes .../jpa/entity/CorporationEntity.xlsx | Bin 0 -> 12054 bytes .../jpa/entity/DepartmentEntity.xlsx | Bin 0 -> 12061 bytes .../jpa/entity/DesensitizeFieldEntity.xlsx | Bin 0 -> 11999 bytes .../jpa/entity/DictionaryEntity.xlsx | Bin 0 -> 11994 bytes .../system/ds/jpa/entity/DsEntity.xlsx | Bin 0 -> 12031 bytes .../system/i18n/jpa/entity/I18nEntity.xlsx | Bin 0 -> 12034 bytes .../system/menu/jpa/entity/MenuEntity.xlsx | Bin 0 -> 12132 bytes .../jap/entity/NotificationEntity.xlsx | Bin 0 -> 12095 bytes .../system/org/jpa/entity/OrgEntity.xlsx | Bin 0 -> 12095 bytes .../parameter/jpa/entity/ParameterEntity.xlsx | Bin 0 -> 12050 bytes .../system/role/jpa/entity/RoleEntity.xlsx | Bin 0 -> 12118 bytes .../system/user/jpa/entity/UserEntity.xlsx | Bin 0 -> 12500 bytes .../java/io/sc/platform/util/ByteUtil.java | 19 ++ io.sc.standard.frontend/package.json | 2 +- io.sc.website/package.json | 2 +- wra.report.frontend/package.json | 2 +- 268 files changed, 1662 insertions(+), 1102 deletions(-) create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export2.ts create mode 100644 io.sc.platform.flowable/src/main/resources/io/sc/platform/flowable/jpa/entity/ProcessEntity.xlsx delete mode 100644 io.sc.platform.lcdp.frontend/src/views/export/ExportTemplate.vue delete mode 100644 io.sc.platform.lcdp.frontend/src/views/export/UniverTemplate.vue create mode 100644 io.sc.platform.lcdp.frontend/src/views/jxls/AttachmentDialog.vue create mode 100644 io.sc.platform.lcdp.frontend/src/views/jxls/Template.vue delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateColumnController.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateController.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateColumnEntity.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/enums/DataType.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateColumnRepository.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateRepository.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateColumnService.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateService.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateColumnServiceImpl.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateServiceImpl.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateColumnVo.java delete mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateVo.java create mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/controller/JxlsTemplateController.java rename io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/{excel/template/entity/ExportExcelTemplateEntity.java => jxls/template/entity/JxlsTemplateEntity.java} (53%) create mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/repository/JxlsTemplateRepository.java create mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/JxlsTemplateService.java create mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/impl/JxlsTemplateServiceImpl.java create mode 100644 io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/vo/JxlsTemplateVo.java delete mode 100644 io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_Export_Excel_Template_DDL.xml create mode 100644 io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_JXLS_Template_DDL.xml create mode 100644 io.sc.platform.license.keygen/src/main/resources/io/sc/platform/license/keygen/jpa/entity/LicenseEntity.xlsx create mode 100644 io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/JxlsTemplateService.java create mode 100644 io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/JxlsTemplateServiceImpl.java create mode 100644 io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DataExportConfigure.java create mode 100644 io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/JxlsTemplate.java create mode 100644 io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverTemplate.java create mode 100644 io.sc.platform.poi/src/main/java/io/sc/platform/poi/jxls/generator/ExcelGenerator.java rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/AbsoluteRefType.java (80%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/AlignTypeH.java (83%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/AlignTypeV.java (81%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/BaselineOffset.java (80%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/BlockType.java (76%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/BorderStyleTypes.java (89%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/BulletAlignment.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/CellValueType.java (81%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/CharacterSpacingControlType.java (84%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ColumnSeparatorType.java (87%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/CustomDecorationType.java (79%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/CustomRangeType.java (88%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/DashStyleType.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/DocumentFlavor.java (80%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/DrawingType.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/GridType.java (81%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/HorizontalAlign.java (92%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IBorderData.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IBorderStyleData.java (89%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IBullet.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ICellData.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IColorStyle.java (88%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IColumnData.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IColumnHeader.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ICustomBlock.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ICustomDecoration.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ICustomRange.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ICustomTable.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDistFromText.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocDrawingBase.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocDrawingPosition.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocsBorder.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocumentBody.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocumentData.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocumentRenderConfig.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocumentSettings.java (84%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDocumentStyle.java (99%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDrawingParam.java (96%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDrawingSearch.java (85%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IDrawingSpace.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IFooterData.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IFreeze.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IHeaderData.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IIndentStart.java (96%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IListData.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/INestingLevel.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/INumberUnit.java (88%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IObjectPositionH.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IObjectPositionV.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IPaddingData.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IParagraph.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IParagraphBorder.java (84%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IParagraphProperties.java (99%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IParagraphStyle.java (86%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IRange.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IRangeLocation.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IReferenceSource.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IResource.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IRowData.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IRowHeader.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ISectionBreak.java (99%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ISectionColumnProperties.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IShading.java (86%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ISize.java (89%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IStyleBase.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IStyleData.java (96%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITabStop.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITable.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableAnchor.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableCell.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableCellBorder.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableCellMargin.java (94%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableColumn.java (83%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableRow.java (96%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITableRowSize.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITextDecoration.java (95%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITextRotation.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITextRun.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITextStyle.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ITransformState.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IWidthInTableSize.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IWorkbookData.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/IWorksheetData.java (97%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ListGlyphType.java (98%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/LocaleType.java (85%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/NamedStyleType.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/NumberUnitType.java (82%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ObjectRelativeFromH.java (86%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ObjectRelativeFromV.java (86%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/PageOrientType.java (78%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/PositionedObjectLayoutType.java (86%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/RangeType.java (79%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/SectionType.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/SpacingRule.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TabStopAlignment.java (89%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TableAlignmentType.java (79%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TableLayoutType.java (78%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TableRowHeightRule.java (80%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TableSizeType.java (78%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TableTextWrapType.java (78%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TextDecoration.java (91%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TextDirection.java (80%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/TextDirectionType.java (82%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/ThemeColorType.java (90%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/VerticalAlign.java (87%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/VerticalAlignmentType.java (93%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/WrapStrategy.java (96%) rename {io.sc.platform.csv/src/main/java/io/sc/platform/excel => io.sc.platform.poi/src/main/java/io/sc/platform/poi}/univer/model/WrapTextType.java (80%) create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/announcement/jpa/entity/AnnouncementEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/application/jpa/entity/ApplicationEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/auditlog/jpa/entity/AuditLogEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/corporation/jpa/entity/CorporationEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/department/jpa/entity/DepartmentEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/desensitizer/jpa/entity/DesensitizeFieldEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/dictionary/jpa/entity/DictionaryEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/ds/jpa/entity/DsEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/i18n/jpa/entity/I18nEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/menu/jpa/entity/MenuEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/notification/jap/entity/NotificationEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/org/jpa/entity/OrgEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/parameter/jpa/entity/ParameterEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx create mode 100644 io.sc.platform.system/src/main/resources/io/sc/platform/system/user/jpa/entity/UserEntity.xlsx diff --git a/README.adoc b/README.adoc index e69de29b..7395026f 100644 --- a/README.adoc +++ b/README.adoc @@ -0,0 +1,3 @@ +. 用户管理功能中,设置用户机构时,机构树直接展示已经选择的机构,新增“选入”、“选出”功能,用于修改机构 +. 用户管理功能中,可修改设置用户所属默认机构,默认角色等 +. \ No newline at end of file diff --git a/cips.frontend/package.json b/cips.frontend/package.json index 0a57ff42..58def452 100644 --- a/cips.frontend/package.json +++ b/cips.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/erm.frontend/package.json b/erm.frontend/package.json index 5a54be43..e27414c5 100644 --- a/erm.frontend/package.json +++ b/erm.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/gradle.properties b/gradle.properties index aacdc76d..72aab60c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -39,7 +39,7 @@ application_version=1.0.0 platform_group=io.sc platform_version=8.2.28 platform_plugin_version=8.2.10 -platform_core_frontend_version=8.2.110 +platform_core_frontend_version=8.2.115 ########################################################### # dependencies version @@ -71,9 +71,7 @@ jdbc_mysql_version=5.1.49 jdbc_oracle_version=19.23.0.0 jib_version=3.3.2 jjwt_version=0.9.1 -jxls_jexcel_version=1.0.7 -jxls_poi_version=1.0.15 -jxls_version=2.4.6 +jxls_version=2.14.0 kotlin_stdlib_version=1.9.25 manifold_version=2025.1.24 mybatis_version=3.5.14 diff --git a/io.sc.engine.mv.frontend/package.json b/io.sc.engine.mv.frontend/package.json index 59da6296..0a88a032 100644 --- a/io.sc.engine.mv.frontend/package.json +++ b/io.sc.engine.mv.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.engine.mv.frontend/src/views/config/binomial.vue b/io.sc.engine.mv.frontend/src/views/config/binomial.vue index 41630c98..40128a56 100644 --- a/io.sc.engine.mv.frontend/src/views/config/binomial.vue +++ b/io.sc.engine.mv.frontend/src/views/config/binomial.vue @@ -10,7 +10,7 @@ :pageable="false" :sort-by="['significanceLevel']" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']" + :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view']" :columns="[ { width: 100, name: 'significanceLevel', label: $t('io.sc.engine.mv.config.binomial.grid.entity.significanceLevel') }, { width: 100, name: 'confidenceLevel', label: $t('io.sc.engine.mv.config.binomial.grid.entity.confidenceLevel') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/chiSquare.vue b/io.sc.engine.mv.frontend/src/views/config/chiSquare.vue index 0f32c998..f355bd0c 100644 --- a/io.sc.engine.mv.frontend/src/views/config/chiSquare.vue +++ b/io.sc.engine.mv.frontend/src/views/config/chiSquare.vue @@ -13,21 +13,7 @@ group-by-field="dof" group-start-open="none" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="[ - 'refresh', - 'separator', - 'expand', - 'separator', - 'add', - 'edit', - 'remove', - 'separator', - 'resetDefaultValues', - 'separator', - 'view', - 'separator', - 'export', - ]" + :toolbar-actions="['refresh', 'separator', 'expand', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view']" :columns="[ { width: 100, name: 'dof', label: $t('io.sc.engine.mv.config.chiSquare.grid.entity.dof') }, { width: 100, name: 'significanceLevel', label: $t('io.sc.engine.mv.config.chiSquare.grid.entity.significanceLevel') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue b/io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue index 3252c983..1e2a28e5 100644 --- a/io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue +++ b/io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue @@ -9,7 +9,7 @@ :data-url="Environment.apiContextPath('/api/mv/configure/cutOffPoint')" :pageable="false" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']" + :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view']" :columns="[ { width: '100%', name: 'name', label: $t('io.sc.engine.mv.config.cutOffPoint.grid.entity.name') }, { width: 100, name: 'from', label: $t('io.sc.engine.mv.config.cutOffPoint.grid.entity.from') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue b/io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue index afc3fdef..d45c8aee 100644 --- a/io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue +++ b/io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue @@ -33,8 +33,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 100, name: 'name', label: $t('name') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/distribution.vue b/io.sc.engine.mv.frontend/src/views/config/distribution.vue index c9d3b13a..f254456c 100644 --- a/io.sc.engine.mv.frontend/src/views/config/distribution.vue +++ b/io.sc.engine.mv.frontend/src/views/config/distribution.vue @@ -13,7 +13,7 @@ group-by-field="modelName" group-start-open="none" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="['refresh', 'separator', 'expand', 'separator', 'add', 'edit', 'remove', 'separator', 'view', 'separator', 'export']" + :toolbar-actions="['refresh', 'separator', 'expand', 'separator', 'add', 'edit', 'remove', 'separator', 'view']" :columns="[ { width: 150, name: 'modelId', label: $t('io.sc.engine.mv.config.distribution.grid.entity.modelId') }, { width: '100%', name: 'modelName', label: $t('io.sc.engine.mv.config.distribution.grid.entity.modelName') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/executor.vue b/io.sc.engine.mv.frontend/src/views/config/executor.vue index 2f39c8d0..95ec2275 100644 --- a/io.sc.engine.mv.frontend/src/views/config/executor.vue +++ b/io.sc.engine.mv.frontend/src/views/config/executor.vue @@ -9,7 +9,7 @@ :pageable="false" :sort-by="['order']" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']" + :toolbar-actions="['refresh', 'separator', 'view']" :columns="[ { width: 80, name: 'order', label: $t('order'), align: 'right' }, { width: 280, name: 'nameI18nKey', label: $t('name'), sortable: false, format: Formater.i18n() }, diff --git a/io.sc.engine.mv.frontend/src/views/config/model.vue b/io.sc.engine.mv.frontend/src/views/config/model.vue index 61e8fac6..4193a916 100644 --- a/io.sc.engine.mv.frontend/src/views/config/model.vue +++ b/io.sc.engine.mv.frontend/src/views/config/model.vue @@ -24,8 +24,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 150, name: 'modelId', label: $t('io.sc.engine.mv.config.model.grid.entity.modelId') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/scale.vue b/io.sc.engine.mv.frontend/src/views/config/scale.vue index 1d3588d1..b1ead946 100644 --- a/io.sc.engine.mv.frontend/src/views/config/scale.vue +++ b/io.sc.engine.mv.frontend/src/views/config/scale.vue @@ -11,7 +11,7 @@ :pageable="false" :sort-by="['order']" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'view', 'separator', 'export']" + :toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'view']" :columns="[ { width: 150, name: 'modelId', label: $t('io.sc.engine.mv.config.scale.grid.entity.modelId') }, { width: '100%', name: 'modelName', label: $t('io.sc.engine.mv.config.scale.grid.entity.modelName') }, diff --git a/io.sc.engine.mv.frontend/src/views/config/threshold.vue b/io.sc.engine.mv.frontend/src/views/config/threshold.vue index 84af8c7b..d81be149 100644 --- a/io.sc.engine.mv.frontend/src/views/config/threshold.vue +++ b/io.sc.engine.mv.frontend/src/views/config/threshold.vue @@ -12,21 +12,7 @@ group-by-field="name" group-start-open="none" :toolbar-configure="{ noIcon: false }" - :toolbar-actions="[ - 'refresh', - 'separator', - 'expand', - 'separator', - 'add', - 'edit', - 'remove', - 'separator', - 'resetDefaultValues', - 'separator', - 'view', - 'separator', - 'export', - ]" + :toolbar-actions="['refresh', 'separator', 'expand', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view']" :columns="[ { width: '100%', name: 'name', label: $t('io.sc.engine.mv.config.threshold.grid.entity.name') }, { width: 120, name: 'level', label: $t('io.sc.engine.mv.config.threshold.grid.entity.level'), align: 'right' }, diff --git a/io.sc.engine.mv.frontend/src/views/result/Result.vue b/io.sc.engine.mv.frontend/src/views/result/Result.vue index 6121300a..dadcf8cf 100644 --- a/io.sc.engine.mv.frontend/src/views/result/Result.vue +++ b/io.sc.engine.mv.frontend/src/views/result/Result.vue @@ -61,8 +61,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 150, name: 'validateDate', label: $t('io.sc.engine.mv.result.grid.entity.validateDate') }, diff --git a/io.sc.engine.mv.frontend/src/views/sample/Sample.vue b/io.sc.engine.mv.frontend/src/views/sample/Sample.vue index e53690b8..73303038 100644 --- a/io.sc.engine.mv.frontend/src/views/sample/Sample.vue +++ b/io.sc.engine.mv.frontend/src/views/sample/Sample.vue @@ -47,8 +47,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 140, name: 'customId', label: $t('io.sc.engine.mv.sample.scoreRecord.grid.entity.customId') }, diff --git a/io.sc.engine.rule.frontend/package.json b/io.sc.engine.rule.frontend/package.json index b4b0ab71..d39dbbd0 100644 --- a/io.sc.engine.rule.frontend/package.json +++ b/io.sc.engine.rule.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue b/io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue index a1b83a1e..08a88836 100644 --- a/io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue +++ b/io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue @@ -99,8 +99,6 @@ }, }, ], - 'separator', - 'export', ]" :query-form-cols-num="6" :query-form-fields="[ diff --git a/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue b/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue index b10bb4ea..543abdb5 100644 --- a/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue +++ b/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue @@ -63,8 +63,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Addition.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Addition.vue index c95890bd..e744ca7f 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Addition.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Addition.vue @@ -44,8 +44,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue index 068b8ae4..4131a6fe 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue @@ -44,8 +44,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 60, name: 'order', label: $t('order'), align: 'right', showIf: false }, diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue index 909ecb13..00875ecd 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue @@ -163,8 +163,6 @@ ...templateImportAndExportManager.getToolbarAction(), 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 300, name: 'name', label: $t('name') }, diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue index e789193d..62409e96 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue @@ -89,8 +89,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 80, name: 'enable', label: $t('isEnable'), align: 'center', sortable: false, format: Formater.enableTag() }, diff --git a/io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue b/io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue index bd3d56be..1870b5e7 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue +++ b/io.sc.engine.rule.frontend/src/views/shared/TestcaseParameterGrid.vue @@ -57,8 +57,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: '100%', name: 'name', label: $t('name'), sortable: false }, diff --git a/io.sc.engine.rule.frontend/src/views/shared/Validator.vue b/io.sc.engine.rule.frontend/src/views/shared/Validator.vue index aeccb041..c4bba109 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/Validator.vue +++ b/io.sc.engine.rule.frontend/src/views/shared/Validator.vue @@ -38,8 +38,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 60, name: 'order', label: $t('order'), sortable: false, align: 'right' }, diff --git a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue index eee7c0f0..b8bbdab4 100644 --- a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue +++ b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue @@ -125,8 +125,6 @@ ], 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 150, name: 'resourceCode', label: $t('code'), showIf: false }, diff --git a/io.sc.engine.st.frontend/package.json b/io.sc.engine.st.frontend/package.json index 8ce2bdee..5d7a7f7d 100644 --- a/io.sc.engine.st.frontend/package.json +++ b/io.sc.engine.st.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.engine.st.frontend/src/views/DepFactor/DepFactor.vue b/io.sc.engine.st.frontend/src/views/DepFactor/DepFactor.vue index 2141d9ec..522e961f 100644 --- a/io.sc.engine.st.frontend/src/views/DepFactor/DepFactor.vue +++ b/io.sc.engine.st.frontend/src/views/DepFactor/DepFactor.vue @@ -42,8 +42,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 60, name: 'year', label: t('year'), align: 'right' }, diff --git a/io.sc.engine.st.frontend/src/views/DepFactor/DepFactorDefine.vue b/io.sc.engine.st.frontend/src/views/DepFactor/DepFactorDefine.vue index 154e9fed..b0da113f 100644 --- a/io.sc.engine.st.frontend/src/views/DepFactor/DepFactorDefine.vue +++ b/io.sc.engine.st.frontend/src/views/DepFactor/DepFactorDefine.vue @@ -75,8 +75,6 @@ 'remove', 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: '100%', name: 'name', label: $t('name') }, diff --git a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue index a78dc658..02a8a628 100644 --- a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue +++ b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue @@ -42,8 +42,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 60, name: 'year', label: t('year'), align: 'right' }, diff --git a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue index 6925d5cc..69d12bad 100644 --- a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue +++ b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue @@ -75,8 +75,6 @@ 'remove', 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: '100%', name: 'name', label: $t('name') }, diff --git a/io.sc.engine.st.frontend/src/views/Model/ModelDefine.vue b/io.sc.engine.st.frontend/src/views/Model/ModelDefine.vue index a8aa63a6..fa2477f2 100644 --- a/io.sc.engine.st.frontend/src/views/Model/ModelDefine.vue +++ b/io.sc.engine.st.frontend/src/views/Model/ModelDefine.vue @@ -40,8 +40,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 200, name: 'name', label: $t('name') }, diff --git a/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactor.vue b/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactor.vue index d84567a3..74afce34 100644 --- a/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactor.vue +++ b/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactor.vue @@ -79,8 +79,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 60, name: 'year', label: t('year'), align: 'right' }, diff --git a/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactorDefine.vue b/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactorDefine.vue index 8b6d9028..3ae286e5 100644 --- a/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactorDefine.vue +++ b/io.sc.engine.st.frontend/src/views/Scenario/ScenarioFactorDefine.vue @@ -38,8 +38,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: '100%', name: 'name', label: $t('name') }, diff --git a/io.sc.engine.st.frontend/src/views/TestCase/TestCase.vue b/io.sc.engine.st.frontend/src/views/TestCase/TestCase.vue index 19ada044..3be10329 100644 --- a/io.sc.engine.st.frontend/src/views/TestCase/TestCase.vue +++ b/io.sc.engine.st.frontend/src/views/TestCase/TestCase.vue @@ -33,8 +33,6 @@ }, }, 'view', - 'separator', - 'export', ]" :columns="[ { width: 160, name: 'name', label: $t('name') }, diff --git a/io.sc.platform.ai.frontend/package.json b/io.sc.platform.ai.frontend/package.json index 0572fb3f..b9ea0d53 100644 --- a/io.sc.platform.ai.frontend/package.json +++ b/io.sc.platform.ai.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.core.frontend/package.json b/io.sc.platform.core.frontend/package.json index 9c9d1f90..8b04ba8d 100644 --- a/io.sc.platform.core.frontend/package.json +++ b/io.sc.platform.core.frontend/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.2.110", + "version": "8.2.115", "description": "前端核心包,用于快速构建前端的脚手架", "//main": "库的主文件", "main": "dist/platform-core.js", diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts b/io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts index c691c102..4d61ea49 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts +++ b/io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts @@ -25,6 +25,7 @@ export class Init { addDataUrl: { type: String, default: '' }, // 新增数据url editDataUrl: { type: String, default: '' }, // 修改数据url removeDataUrl: { type: String, default: '' }, // 删除数据url + exportDataUrl: { type: String, default: '' }, // 导出数据url customFetch: { type: Function, default: undefined }, // 自定义获取数据函数,若表格内置的查询参数或方式(GET、POST)等不满足使用场景,可使用该函数自定义进行查询,只需返回的结果结构与内置查询一致即可。 dense: { type: Boolean, default: undefined }, // 表格整体紧凑模式 denseHeader: { type: Boolean, default: undefined }, // 表格列标题紧凑模式 diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export.ts b/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export.ts index 578e3571..20e1d8c3 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export.ts +++ b/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export.ts @@ -1,5 +1,4 @@ -import { $t, axios, NotifyManager, Tools } from '@/platform'; -import { exportFile } from 'quasar'; +import { $t, axios, Downloader } from '@/platform'; import { PropsType, TableType } from '../../index'; import { Button } from '../Button'; @@ -15,37 +14,10 @@ export class Export extends Button { } async click(args) { - this.showLoading(); - let exportData = args.grid.getRows(); - // 判断是否配置了 url, 以不分页形式请求后端获取全部数据一把导出。 - if (!Tools.isEmpty(args.grid.props.fetchDataUrl) || !Tools.isEmpty(args.grid.props.dataUrl)) { - const fetchResult = await this.getExportData(); - if (fetchResult && fetchResult.length > 0) { - exportData = fetchResult; - } - } - const content = [args.grid.props.columns.map((col) => this.wrapCsvValue(col.label))] - .concat( - exportData.map((row) => - args.grid.props.columns - .map((col) => - this.wrapCsvValue(typeof col.field === 'function' ? col.field(row) : row[col.field === void 0 ? col.name : col.field], col.format, row), - ) - .join(','), - ), - ) - .join('\r\n'); - - const status = exportFile('table-export.csv', content, { - encoding: 'utf-8', - mimeType: 'text/csv', - byteOrderMark: '\uFEFF', // 解决乱码问题 - }); - - if (status !== true) { - NotifyManager.error($t('action.export.failed')); - } - this.hideLoading(); + const reqParams: any = { pageable: false }; + const urlSearchParams = this.tools?.criteriaFM.buildURLSearchParams(reqParams); + const url = this.table?.url.exportDataUrl || this.table.url.dataUrl + '/exportExcel'; + Downloader.get(url, { params: urlSearchParams }); } getButtonConfig() { @@ -59,31 +31,10 @@ export class Export extends Button { } private async getExportData() { - let resultData = []; - const reqParams: any = { pageable: false }; - const urlSearchParams = this.tools?.criteriaFM.buildURLSearchParams(reqParams); - const resp = await axios.get(this.table?.url.fetchDataUrl || this.table.url.dataUrl, { params: urlSearchParams }); - if (resp && resp.data) { - const responseData = resp.data; - if (Array.isArray(responseData)) { - resultData = responseData; - } else if (typeof responseData === 'object' && responseData.content) { - resultData = responseData.content; - } - } - return resultData; + return null; } private wrapCsvValue(val, formatFn, row) { - let formatted = formatFn !== void 0 ? formatFn(val, row) : val; - formatted = formatted === void 0 || formatted === null ? '' : String(formatted); - formatted = formatted.split('"').join('""'); - /** - * Excel accepts \n and \r in strings, but some other CSV parsers do not - * Uncomment the next two lines to escape new lines - */ - // .split('\n').join('\\n') - // .split('\r').join('\\r') - return `"${formatted}"`; + return null; } } diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export2.ts b/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export2.ts new file mode 100644 index 00000000..578e3571 --- /dev/null +++ b/io.sc.platform.core.frontend/src/platform/components/grid/ts/toolbar/buttons/Export2.ts @@ -0,0 +1,89 @@ +import { $t, axios, NotifyManager, Tools } from '@/platform'; +import { exportFile } from 'quasar'; +import { PropsType, TableType } from '../../index'; +import { Button } from '../Button'; + +export class Export extends Button { + name = 'export'; + + constructor(props: PropsType, table: TableType) { + super(props, table); + this.click = this.click.bind(this); + this.getExportData = this.getExportData.bind(this); + this.wrapCsvValue = this.wrapCsvValue.bind(this); + this.getButtonConfig = this.getButtonConfig.bind(this); + } + + async click(args) { + this.showLoading(); + let exportData = args.grid.getRows(); + // 判断是否配置了 url, 以不分页形式请求后端获取全部数据一把导出。 + if (!Tools.isEmpty(args.grid.props.fetchDataUrl) || !Tools.isEmpty(args.grid.props.dataUrl)) { + const fetchResult = await this.getExportData(); + if (fetchResult && fetchResult.length > 0) { + exportData = fetchResult; + } + } + const content = [args.grid.props.columns.map((col) => this.wrapCsvValue(col.label))] + .concat( + exportData.map((row) => + args.grid.props.columns + .map((col) => + this.wrapCsvValue(typeof col.field === 'function' ? col.field(row) : row[col.field === void 0 ? col.name : col.field], col.format, row), + ) + .join(','), + ), + ) + .join('\r\n'); + + const status = exportFile('table-export.csv', content, { + encoding: 'utf-8', + mimeType: 'text/csv', + byteOrderMark: '\uFEFF', // 解决乱码问题 + }); + + if (status !== true) { + NotifyManager.error($t('action.export.failed')); + } + this.hideLoading(); + } + + getButtonConfig() { + return { + name: this.name, + icon: 'file_download', + labelI18nKey: 'action.export', + label: $t('action.export'), + click: this.click, + }; + } + + private async getExportData() { + let resultData = []; + const reqParams: any = { pageable: false }; + const urlSearchParams = this.tools?.criteriaFM.buildURLSearchParams(reqParams); + const resp = await axios.get(this.table?.url.fetchDataUrl || this.table.url.dataUrl, { params: urlSearchParams }); + if (resp && resp.data) { + const responseData = resp.data; + if (Array.isArray(responseData)) { + resultData = responseData; + } else if (typeof responseData === 'object' && responseData.content) { + resultData = responseData.content; + } + } + return resultData; + } + + private wrapCsvValue(val, formatFn, row) { + let formatted = formatFn !== void 0 ? formatFn(val, row) : val; + formatted = formatted === void 0 || formatted === null ? '' : String(formatted); + formatted = formatted.split('"').join('""'); + /** + * Excel accepts \n and \r in strings, but some other CSV parsers do not + * Uncomment the next two lines to escape new lines + */ + // .split('\n').join('\\n') + // .split('\r').join('\\r') + return `"${formatted}"`; + } +} diff --git a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue index 76f7d012..d076a257 100644 --- a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue +++ b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue @@ -22,7 +22,7 @@ > - + @@ -148,10 +148,31 @@ diff --git a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Topper.vue b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Topper.vue index b9e5b36b..c67c051b 100644 --- a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Topper.vue +++ b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Topper.vue @@ -142,9 +142,40 @@
-
-
{{ SessionManager.getSession().user.userName }}
-
{{ SessionManager.getSession().user.defaultRoleName }}
+
+
+ + + + + + + + + + + + + +
@@ -271,6 +302,13 @@ const unReadedAnnouncementsTotalCountRef = ref(); const router = useRouter(); +const userTooltip = () => { + let tip = t('loginName') + ' : ' + SessionManager.getSession().user.loginName + '
'; + tip += t('userName') + ' : ' + SessionManager.getSession().user.userName + '
'; + tip += t('defaultRoleName') + ' : ' + SessionManager.getSession().user.defaultRoleName; + return tip; +}; + const fullScreen = () => { if (quasar.fullscreen.isActive) { quasar.fullscreen.exit(); @@ -376,7 +414,9 @@ const doLogout = () => { window.location.href = Environment.getWebContextPath(); } else { axios.post(Environment.apiContextPath(Environment.getConfigure().setting.logoutUrl)).then((response) => { - window.location.href = response.data; + // 此处不能用 window.location.href =''; + // 因为在 vue 前端项目中, 不能正常跳转 + window.location.replace(response.data); }); } }; diff --git a/io.sc.platform.core.frontend/src/platform/plugin/manager/RouterManager.ts b/io.sc.platform.core.frontend/src/platform/plugin/manager/RouterManager.ts index 60f32e88..7a6eb2d9 100644 --- a/io.sc.platform.core.frontend/src/platform/plugin/manager/RouterManager.ts +++ b/io.sc.platform.core.frontend/src/platform/plugin/manager/RouterManager.ts @@ -170,6 +170,7 @@ class RouterManager { path: cachedRoute['path'], icon: cachedRoute['icon'], component: cachedRoute['component'], + componentPath: cachedRoute['componentPath'], redirect: cachedRoute['redirect'], children: cachedRoute['children'], }); @@ -180,6 +181,7 @@ class RouterManager { path: cachedRoute['path'], icon: cachedRoute['icon'], component: ComponentManager.getLocalComponent(cachedRoute['component']), + componentPath: cachedRoute['componentPath'], redirect: cachedRoute['redirect'], children: cachedRoute['children'], }); @@ -190,6 +192,7 @@ class RouterManager { path: cachedRoute['path'], icon: cachedRoute['icon'], component: ComponentManager.getRemoteComponent(cachedRoute['module'], cachedRoute['component']), + componentPath: cachedRoute['componentPath'], redirect: cachedRoute['redirect'], children: cachedRoute['children'], }); diff --git a/io.sc.platform.core.frontend/src/platform/plugin/manager/TagViewManager.ts b/io.sc.platform.core.frontend/src/platform/plugin/manager/TagViewManager.ts index a162a67d..74e6709b 100644 --- a/io.sc.platform.core.frontend/src/platform/plugin/manager/TagViewManager.ts +++ b/io.sc.platform.core.frontend/src/platform/plugin/manager/TagViewManager.ts @@ -64,6 +64,7 @@ class TagViewManager { let menuId: string; let menuTitleI18nKey: string; let menuIcon: string; + let componentPath: string; // 是否需要添加 TagView let needToAdd = true; @@ -72,6 +73,10 @@ class TagViewManager { menuId = menu.id; menuTitleI18nKey = menu.titleI18nKey; menuIcon = menu.icon; + const route = RouterManager.getRouteByName(menu.routeName) as FrontEndRouteType; + if (route) { + componentPath = route.componentPath; + } for (const tagView of TagViewManager.#tagViewsAndBreadcrumbs.tagViews) { if (tagView.menuId === menuId) { needToAdd = false; @@ -84,6 +89,7 @@ class TagViewManager { menuId = route.name; menuTitleI18nKey = route.name; menuIcon = route.icon; + componentPath = route.componentPath; for (const tagView of TagViewManager.#tagViewsAndBreadcrumbs.tagViews) { if (tagView.menuId === menuId) { needToAdd = false; @@ -104,6 +110,7 @@ class TagViewManager { routePath: to.path, routeQuery: to.query, params: to.params, + componentPath: componentPath, }); } // 设置选中的 TagView diff --git a/io.sc.platform.core.frontend/src/platform/types/ConfigureType.ts b/io.sc.platform.core.frontend/src/platform/types/ConfigureType.ts index 6a642b90..43996e82 100644 --- a/io.sc.platform.core.frontend/src/platform/types/ConfigureType.ts +++ b/io.sc.platform.core.frontend/src/platform/types/ConfigureType.ts @@ -119,6 +119,8 @@ export type ConfigureType = { titleColor: string; // 标题颜色 actions: Map; // 动作按钮 Map(key:动作名称,value:按钮配置) notifierInterval: number; // 通知器轮询时间间隔(单位:秒) + showLoginName: boolean; // 是否显示用户登录名 + showUserName: boolean; // 是否显示用户名 showDefaultRole: boolean; //是否显示用户默认角色 }; diff --git a/io.sc.platform.core.frontend/src/platform/types/TagViewType.ts b/io.sc.platform.core.frontend/src/platform/types/TagViewType.ts index 7fc424fe..481c0891 100644 --- a/io.sc.platform.core.frontend/src/platform/types/TagViewType.ts +++ b/io.sc.platform.core.frontend/src/platform/types/TagViewType.ts @@ -6,4 +6,5 @@ export type TagViewType = { routePath: string; routeQuery: Map; params: Map; + componentPath: string; }; diff --git a/io.sc.platform.core.frontend/src/platform/views/Home.vue b/io.sc.platform.core.frontend/src/platform/views/Home.vue index 6a82f904..bdcd8938 100644 --- a/io.sc.platform.core.frontend/src/platform/views/Home.vue +++ b/io.sc.platform.core.frontend/src/platform/views/Home.vue @@ -31,6 +31,7 @@ import MyDoneTask from './home/MyDoneTask.vue'; import MyFinishedTask from './home/MyFinishedTask.vue'; import MyMessage from './home/MyMessage.vue'; import MyAnnouncement from './home/MyAnnouncement.vue'; +import { onActivated } from 'vue'; const myShortcutMenuRef = ref(); const myTaskRef = ref(); @@ -39,6 +40,15 @@ const myFinishedTaskRef = ref(); const myMessageRef = ref(); const myAnnouncementRef = ref(); +onActivated(() => { + myShortcutMenuRef?.value.refresh(); + myTaskRef?.value.refresh(); + myDoneTaskRef?.value.refresh(); + myFinishedTaskRef?.value.refresh(); + myMessageRef?.value.refresh(); + myAnnouncementRef?.value.refresh(); +}); + const afterMyTaskRefresh = () => { myDoneTaskRef?.value?.refresh(); myFinishedTaskRef?.value?.refresh(); diff --git a/io.sc.platform.core.frontend/template-project/package.json b/io.sc.platform.core.frontend/template-project/package.json index bf56be80..4c3ea714 100644 --- a/io.sc.platform.core.frontend/template-project/package.json +++ b/io.sc.platform.core.frontend/template-project/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.2.110", + "version": "8.2.115", "description": "前端核心包,用于快速构建前端的脚手架", "private": false, "keywords": [], @@ -111,7 +111,7 @@ "mockjs": "1.1.0", "node-sql-parser": "5.3.6", "pinia": "2.3.0", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties index 3d1cb110..466accf6 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties @@ -265,4 +265,5 @@ before=Before send=Send required=Required settings=Settings -reply=Reply \ No newline at end of file +reply=Reply +defaultRoleName=Default Role Name \ No newline at end of file diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties index b091da12..13c2c1fb 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties @@ -265,4 +265,5 @@ before=\u4EE5\u524D send=\u767C\u9001 required=\u5FC5\u9700 settings=\u8A2D\u7F6E -reply=\u56DE\u5FA9 \ No newline at end of file +reply=\u56DE\u5FA9 +defaultRoleName=\u9ED8\u8A8D\u89D2\u8272\u540D\u7A31 \ No newline at end of file diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties index 27444eb5..b69c887f 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties @@ -265,4 +265,5 @@ before=\u4EE5\u524D send=\u53D1\u9001 required=\u5FC5\u9700 settings=\u8BBE\u7F6E -reply=\u56DE\u590D \ No newline at end of file +reply=\u56DE\u590D +defaultRoleName=\u9ED8\u8BA4\u89D2\u8272\u540D\u79F0 \ No newline at end of file diff --git a/io.sc.platform.developer.doc/package.json b/io.sc.platform.developer.doc/package.json index 1757da7e..6f7084f7 100644 --- a/io.sc.platform.developer.doc/package.json +++ b/io.sc.platform.developer.doc/package.json @@ -28,7 +28,7 @@ "vuepress": "2.0.0-rc.15" }, "dependencies": { - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "vue": "3.5.13", "vue-i18n": "11.0.1" diff --git a/io.sc.platform.developer.frontend/package.json b/io.sc.platform.developer.frontend/package.json index 7f31772b..f7294482 100644 --- a/io.sc.platform.developer.frontend/package.json +++ b/io.sc.platform.developer.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue b/io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue index e7b98021..e053a5c7 100644 --- a/io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue +++ b/io.sc.platform.developer.frontend/src/views/plugin/ApplicationProperties.vue @@ -1,7 +1,7 @@ - diff --git a/io.sc.platform.lcdp.frontend/src/views/export/UniverTemplate.vue b/io.sc.platform.lcdp.frontend/src/views/export/UniverTemplate.vue deleted file mode 100644 index 63e2ed2f..00000000 --- a/io.sc.platform.lcdp.frontend/src/views/export/UniverTemplate.vue +++ /dev/null @@ -1,154 +0,0 @@ - - diff --git a/io.sc.platform.lcdp.frontend/src/views/jxls/AttachmentDialog.vue b/io.sc.platform.lcdp.frontend/src/views/jxls/AttachmentDialog.vue new file mode 100644 index 00000000..0d555b0e --- /dev/null +++ b/io.sc.platform.lcdp.frontend/src/views/jxls/AttachmentDialog.vue @@ -0,0 +1,74 @@ + + diff --git a/io.sc.platform.lcdp.frontend/src/views/jxls/Template.vue b/io.sc.platform.lcdp.frontend/src/views/jxls/Template.vue new file mode 100644 index 00000000..6b70611b --- /dev/null +++ b/io.sc.platform.lcdp.frontend/src/views/jxls/Template.vue @@ -0,0 +1,126 @@ + + diff --git a/io.sc.platform.lcdp.frontend/src/views/theme/TagViewBar.vue b/io.sc.platform.lcdp.frontend/src/views/theme/TagViewBar.vue index c9ffb47a..3dcaada7 100644 --- a/io.sc.platform.lcdp.frontend/src/views/theme/TagViewBar.vue +++ b/io.sc.platform.lcdp.frontend/src/views/theme/TagViewBar.vue @@ -84,5 +84,15 @@ >
+
+
+ +
+
diff --git a/io.sc.platform.lcdp.frontend/src/views/theme/Topper.vue b/io.sc.platform.lcdp.frontend/src/views/theme/Topper.vue index 1f7951ac..0c7b47d5 100644 --- a/io.sc.platform.lcdp.frontend/src/views/theme/Topper.vue +++ b/io.sc.platform.lcdp.frontend/src/views/theme/Topper.vue @@ -93,6 +93,26 @@ /> +
+
+ +
+
+
+
+ +
+
actions =new HashMap<>(); // 顶部动作按钮 private long notifierInterval=5*60; // 顶部通知器轮询间隔(单位:秒) + private boolean showLoginName =true; // 是否显示用户登录名 + private boolean showUserName =true; // 是否显示用户名 private boolean showDefaultRole =true; // 是否显示用户默认角色 public Topper(){ @@ -102,6 +104,22 @@ public class Topper { this.notifierInterval = notifierInterval; } + public boolean isShowLoginName() { + return showLoginName; + } + + public void setShowLoginName(boolean showLoginName) { + this.showLoginName = showLoginName; + } + + public boolean isShowUserName() { + return showUserName; + } + + public void setShowUserName(boolean showUserName) { + this.showUserName = showUserName; + } + public boolean isShowDefaultRole() { return showDefaultRole; } diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateColumnController.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateColumnController.java deleted file mode 100644 index 8b80dc47..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateColumnController.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.sc.platform.lcdp.excel.template.controller; - -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateColumnEntity; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateColumnRepository; -import io.sc.platform.lcdp.excel.template.service.ExportExcelTemplateColumnService; -import io.sc.platform.lcdp.excel.template.vo.ExportExcelTemplateColumnVo; -import io.sc.platform.mvc.controller.support.RestCrudController; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/api/exportexcel/column") -public class ExportExcelTemplateColumnController extends RestCrudController { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateController.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateController.java deleted file mode 100644 index a76a7e14..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/controller/ExportExcelTemplateController.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.sc.platform.lcdp.excel.template.controller; - -import io.sc.platform.core.response.ResponseWrapper; -import io.sc.platform.core.response.SuccessResponseWrapper; -import io.sc.platform.lcdp.excel.template.entity.ExcelTemplate; -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateEntity; -import io.sc.platform.lcdp.excel.template.repository.ExcelTemplateRepository; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateRepository; -import io.sc.platform.lcdp.excel.template.service.ExcelTemplateService; -import io.sc.platform.lcdp.excel.template.service.ExportExcelTemplateService; -import io.sc.platform.lcdp.excel.template.vo.ExcelTemplateVo; -import io.sc.platform.lcdp.excel.template.vo.ExportExcelTemplateVo; -import io.sc.platform.mvc.controller.support.RestCrudController; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -@RestController -@RequestMapping("/api/exportexcel/template") -public class ExportExcelTemplateController extends RestCrudController { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateColumnEntity.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateColumnEntity.java deleted file mode 100644 index d43dc502..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateColumnEntity.java +++ /dev/null @@ -1,136 +0,0 @@ -package io.sc.platform.lcdp.excel.template.entity; - -import io.sc.platform.lcdp.excel.template.enums.DataType; -import io.sc.platform.lcdp.excel.template.vo.ExportExcelTemplateColumnVo; -import io.sc.platform.lcdp.excel.template.vo.ExportExcelTemplateVo; -import io.sc.platform.orm.entity.CorporationAuditorEntity; -import org.hibernate.annotations.GenericGenerator; - -import javax.persistence.*; -import javax.validation.constraints.Size; - -/** - * 导出 Excel 模版实体 - */ -@Entity -@Table(name="LCDP_EXPORT_TEMPLATE_COLUMN") -public class ExportExcelTemplateColumnEntity extends CorporationAuditorEntity { - @Id - @GeneratedValue(generator = "system-uuid") - @GenericGenerator(name = "system-uuid", strategy = "uuid2") - @Column(name="ID_", length=36) - @Size(max=36) - private String id; - - //字段代码 - @Column(name="CODE_",nullable=false,length=255) - @Size(min=1,max=255) - private String code; - - //字段名称 - @Column(name="NAME_", length=255) - @Size(min=1,max=255) - private String name; - - //字段描述 - @Column(name="DESCRIPTION_", length=255) - @Size(min=1,max=255) - private String description; - - //排序 - @Column(name="ORDER_") - private Integer order; - - //字段值类型 - @Column(name="VALUE_TYPE_", length=255) - private String valueType; - - //字段值公式 - @Column(name="VALUE_FORMULA") - private String valueFormula; - - //所属模版 - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="TEMPLATE_ID_") - protected ExportExcelTemplateEntity template; - - @Override - public ExportExcelTemplateColumnVo toVo() { - ExportExcelTemplateColumnVo vo = new ExportExcelTemplateColumnVo(); - super.toVo(vo); - - vo.setId(this.getId()); - vo.setCode(this.getCode()); - vo.setName(this.getName()); - vo.setDescription(this.getDescription()); - vo.setOrder(this.getOrder()); - vo.setValueType(this.getValueType()); - vo.setValueFormula(this.getValueFormula()); - vo.setTemplate(this.getTemplate().getId()); - return vo; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getOrder() { - return order; - } - - public void setOrder(Integer order) { - this.order = order; - } - - public String getValueType() { - return valueType; - } - - public void setValueType(String valueType) { - this.valueType = valueType; - } - - public String getValueFormula() { - return valueFormula; - } - - public void setValueFormula(String valueFormula) { - this.valueFormula = valueFormula; - } - - public ExportExcelTemplateEntity getTemplate() { - return template; - } - - public void setTemplate(ExportExcelTemplateEntity template) { - this.template = template; - } -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/enums/DataType.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/enums/DataType.java deleted file mode 100644 index 6fbad3eb..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/enums/DataType.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.sc.platform.lcdp.excel.template.enums; - -/** - * 导出数据类型 - */ -public enum DataType { - JPA_ENTITY, // JPA 实体 - SQL_RESULT_SET; // SQL 记录集 -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateColumnRepository.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateColumnRepository.java deleted file mode 100644 index 75f6d134..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateColumnRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.sc.platform.lcdp.excel.template.repository; - -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateColumnEntity; -import io.sc.platform.orm.repository.DaoRepository; - -public interface ExportExcelTemplateColumnRepository extends DaoRepository { -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateRepository.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateRepository.java deleted file mode 100644 index 7e754552..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/repository/ExportExcelTemplateRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package io.sc.platform.lcdp.excel.template.repository; - -import io.sc.platform.lcdp.excel.template.entity.ExcelTemplate; -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateEntity; -import io.sc.platform.orm.repository.DaoRepository; - -public interface ExportExcelTemplateRepository extends DaoRepository { -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateColumnService.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateColumnService.java deleted file mode 100644 index 1eb0f94a..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateColumnService.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.sc.platform.lcdp.excel.template.service; - -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateColumnEntity; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateColumnRepository; -import io.sc.platform.orm.service.DaoService; - -public interface ExportExcelTemplateColumnService extends DaoService { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateService.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateService.java deleted file mode 100644 index b763d5c8..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/ExportExcelTemplateService.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.sc.platform.lcdp.excel.template.service; - -import io.sc.platform.lcdp.excel.template.entity.ExcelTemplate; -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateEntity; -import io.sc.platform.lcdp.excel.template.repository.ExcelTemplateRepository; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateRepository; -import io.sc.platform.orm.service.DaoService; - -import java.util.Map; - -public interface ExportExcelTemplateService extends DaoService { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateColumnServiceImpl.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateColumnServiceImpl.java deleted file mode 100644 index 3be005f3..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateColumnServiceImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.sc.platform.lcdp.excel.template.service.impl; - -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateColumnEntity; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateColumnRepository; -import io.sc.platform.lcdp.excel.template.service.ExportExcelTemplateColumnService; -import io.sc.platform.orm.service.impl.DaoServiceImpl; -import org.springframework.stereotype.Service; - -@Service("io.sc.platform.lcdp.excel.template.service.impl.ExportExcelTemplateColumnServiceImpl") -public class ExportExcelTemplateColumnServiceImpl extends DaoServiceImpl implements ExportExcelTemplateColumnService { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateServiceImpl.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateServiceImpl.java deleted file mode 100644 index cfa2f0a2..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/service/impl/ExportExcelTemplateServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.sc.platform.lcdp.excel.template.service.impl; - -import com.fasterxml.jackson.databind.ObjectMapper; -import io.sc.platform.lcdp.excel.template.entity.ExcelParams; -import io.sc.platform.lcdp.excel.template.entity.ExcelTemplate; -import io.sc.platform.lcdp.excel.template.entity.ExportExcelTemplateEntity; -import io.sc.platform.lcdp.excel.template.repository.ExcelParamsRepository; -import io.sc.platform.lcdp.excel.template.repository.ExcelTemplateRepository; -import io.sc.platform.lcdp.excel.template.repository.ExportExcelTemplateRepository; -import io.sc.platform.lcdp.excel.template.service.ExcelTemplateService; -import io.sc.platform.lcdp.excel.template.service.ExportExcelTemplateService; -import io.sc.platform.orm.service.impl.DaoServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Service; - -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -@Service("io.sc.platform.lcdp.excel.template.service.impl.ExportExcelTemplateServiceImpl") -public class ExportExcelTemplateServiceImpl extends DaoServiceImpl implements ExportExcelTemplateService { - -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateColumnVo.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateColumnVo.java deleted file mode 100644 index 5ff07a40..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateColumnVo.java +++ /dev/null @@ -1,82 +0,0 @@ -package io.sc.platform.lcdp.excel.template.vo; - -import io.sc.platform.lcdp.excel.template.enums.DataType; -import io.sc.platform.orm.api.vo.CorporationAuditorVo; - -/** - * 导出 Excel 模版 Vo - */ -public class ExportExcelTemplateColumnVo extends CorporationAuditorVo { - private String id; - private String code;//模版代码 - private String name;//模版名称 - private String description;//模版描述 - private Integer order;//排序 - private String valueType;//值类型 - private String valueFormula;//值公式 - private String template;//模版ID - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getOrder() { - return order; - } - - public void setOrder(Integer order) { - this.order = order; - } - - public String getValueType() { - return valueType; - } - - public void setValueType(String valueType) { - this.valueType = valueType; - } - - public String getValueFormula() { - return valueFormula; - } - - public void setValueFormula(String valueFormula) { - this.valueFormula = valueFormula; - } - - public String getTemplate() { - return template; - } - - public void setTemplate(String template) { - this.template = template; - } -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateVo.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateVo.java deleted file mode 100644 index 2b7d0dc1..00000000 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/vo/ExportExcelTemplateVo.java +++ /dev/null @@ -1,77 +0,0 @@ -package io.sc.platform.lcdp.excel.template.vo; - -import io.sc.platform.lcdp.excel.template.enums.DataType; -import io.sc.platform.orm.api.vo.CorporationAuditorVo; -import org.hibernate.annotations.GenericGenerator; - -import javax.persistence.*; -import javax.validation.constraints.Size; - -/** - * 导出 Excel 模版 Vo - */ -public class ExportExcelTemplateVo extends CorporationAuditorVo { - private String id; - private String code;//模版代码 - private String name;//模版名称 - private String description;//模版描述 - private DataType dataType;//数据类型 - private String jpaEntityClass;//JPA 实体类名 - private String univerConfig;//模版配置(univer) - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public DataType getDataType() { - return dataType; - } - - public void setDataType(DataType dataType) { - this.dataType = dataType; - } - - public String getJpaEntityClass() { - return jpaEntityClass; - } - - public void setJpaEntityClass(String jpaEntityClass) { - this.jpaEntityClass = jpaEntityClass; - } - - public String getUniverConfig() { - return univerConfig; - } - - public void setUniverConfig(String univerConfig) { - this.univerConfig = univerConfig; - } -} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/controller/JxlsTemplateController.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/controller/JxlsTemplateController.java new file mode 100644 index 00000000..e9117187 --- /dev/null +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/controller/JxlsTemplateController.java @@ -0,0 +1,36 @@ +package io.sc.platform.lcdp.jxls.template.controller; + +import io.sc.platform.lcdp.jxls.template.entity.JxlsTemplateEntity; +import io.sc.platform.lcdp.jxls.template.repository.JxlsTemplateRepository; +import io.sc.platform.lcdp.jxls.template.service.JxlsTemplateService; +import io.sc.platform.lcdp.jxls.template.vo.JxlsTemplateVo; +import io.sc.platform.mvc.controller.support.RestCrudController; +import io.sc.platform.util.ObjectMapperUtil; +import org.springframework.http.HttpRequest; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Locale; + +@RestController +@RequestMapping("/api/lcdp/jxls/template") +public class JxlsTemplateController extends RestCrudController { + @PostMapping(value="updateAttachment/{id}") + public void updateAttachment(@PathVariable("id") String id, @RequestParam(name="file",required=false) MultipartFile multipartFile, Locale locale) throws Exception{ + if(multipartFile!=null && !multipartFile.isEmpty()) { + service.updateAttachment(id,multipartFile.getInputStream()); + } + } + + @PostMapping(value="downloadAttachment/{id}") + public void downloadAttachment(@PathVariable("id") String id, HttpServletRequest request, HttpServletResponse response,Locale locale) throws Exception{ + service.downloadAttachment(id,request,response,locale); + } + + @PostMapping(value="removeAttachment/{id}") + public void removeAttachment(@PathVariable("id") String id) throws Exception{ + service.removeAttachment(id); + } +} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateEntity.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/entity/JxlsTemplateEntity.java similarity index 53% rename from io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateEntity.java rename to io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/entity/JxlsTemplateEntity.java index d8c4acc1..cde22023 100644 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/excel/template/entity/ExportExcelTemplateEntity.java +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/entity/JxlsTemplateEntity.java @@ -1,21 +1,21 @@ -package io.sc.platform.lcdp.excel.template.entity; +package io.sc.platform.lcdp.jxls.template.entity; -import io.sc.platform.lcdp.excel.template.enums.DataType; -import io.sc.platform.lcdp.excel.template.vo.ExportExcelTemplateVo; +import io.sc.platform.core.Environment; +import io.sc.platform.core.util.PinyinUtil; +import io.sc.platform.lcdp.jxls.template.vo.JxlsTemplateVo; +import io.sc.platform.orm.converter.NumericBooleanConverter; import io.sc.platform.orm.entity.CorporationAuditorEntity; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; import javax.validation.constraints.Size; -import java.util.ArrayList; -import java.util.List; /** - * 导出 Excel 模版实体 + * JXLS 模版实体 */ @Entity -@Table(name="LCDP_EXPORT_TEMPLATE") -public class ExportExcelTemplateEntity extends CorporationAuditorEntity { +@Table(name="LCDP_JXLS_TEMPLATE") +public class JxlsTemplateEntity extends CorporationAuditorEntity { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid2") @@ -33,41 +33,44 @@ public class ExportExcelTemplateEntity extends CorporationAuditorEntity columns =new ArrayList(); + @Lob + @Column(name = "BYTES_", columnDefinition = "BLOB") + private byte[] bytes; @Override - public ExportExcelTemplateVo toVo() { - ExportExcelTemplateVo vo = new ExportExcelTemplateVo(); + public JxlsTemplateVo toVo() { + JxlsTemplateVo vo = new JxlsTemplateVo(); super.toVo(vo); vo.setId(this.getId()); vo.setCode(this.getCode()); vo.setName(this.getName()); + vo.setNamec(this.getNamec()); vo.setDescription(this.getDescription()); - vo.setDataType(this.getDataType()); vo.setJpaEntityClass(this.getJpaEntityClass()); - vo.setUniverConfig(this.getUniverConfig()); + vo.setAsync(this.getAsync()); + byte[] bytes =this.getBytes(); + vo.setHasAttachment(bytes!=null && bytes.length>0); return vo; } @@ -93,22 +96,23 @@ public class ExportExcelTemplateEntity extends CorporationAuditorEntity { + public JxlsTemplateEntity findByCode(String code); +} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/JxlsTemplateService.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/JxlsTemplateService.java new file mode 100644 index 00000000..40aa75b7 --- /dev/null +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/JxlsTemplateService.java @@ -0,0 +1,16 @@ +package io.sc.platform.lcdp.jxls.template.service; + +import io.sc.platform.lcdp.jxls.template.entity.JxlsTemplateEntity; +import io.sc.platform.lcdp.jxls.template.repository.JxlsTemplateRepository; +import io.sc.platform.orm.service.DaoService; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.util.Locale; + +public interface JxlsTemplateService extends DaoService { + public void updateAttachment(String id,InputStream inputStream) throws Exception; + public void downloadAttachment(String id, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception; + public void removeAttachment(String id) throws Exception; +} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/impl/JxlsTemplateServiceImpl.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/impl/JxlsTemplateServiceImpl.java new file mode 100644 index 00000000..fe7b2d42 --- /dev/null +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/service/impl/JxlsTemplateServiceImpl.java @@ -0,0 +1,72 @@ +package io.sc.platform.lcdp.jxls.template.service.impl; + +import io.sc.platform.lcdp.jxls.template.entity.JxlsTemplateEntity; +import io.sc.platform.lcdp.jxls.template.repository.JxlsTemplateRepository; +import io.sc.platform.lcdp.jxls.template.service.JxlsTemplateService; +import io.sc.platform.mvc.support.FileDownloader; +import io.sc.platform.orm.service.impl.DaoServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.transaction.Transactional; +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.util.Locale; + +@Service("io.sc.platform.lcdp.jxls.template.service.impl.JxlsTemplateServiceImpl") +public class JxlsTemplateServiceImpl extends DaoServiceImpl implements JxlsTemplateService { + @Override + public JxlsTemplateEntity findByUniqueKey(JxlsTemplateEntity entity) { + return repository.findByCode(entity.getCode()); + } + + @Override + @Transactional + public void updateAttachment(String id,InputStream inputStream) throws Exception { + if(!StringUtils.hasText(id) || inputStream==null){ + return; + } + JxlsTemplateEntity entity =findById(id); + if(entity==null){ + return; + } + try(InputStream ins =inputStream;){ + byte[] bytes = new byte[ins.available()]; + inputStream.read(bytes); + + entity.setBytes(bytes); + update(id,entity); + } + } + + @Override + public void downloadAttachment(String id, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception { + if(!StringUtils.hasText(id)){ + return; + } + JxlsTemplateEntity entity =findById(id); + if(entity==null){ + return; + } + ByteArrayInputStream bins =new ByteArrayInputStream(entity.getBytes()); + FileDownloader.download(request, response, entity.getName() + "(" + entity.getCode() + ")" + ".xlsx", bins); + } + + @Override + public void removeAttachment(String id) throws Exception { + if(!StringUtils.hasText(id)){ + return; + } + JxlsTemplateEntity entity =findById(id); + if(entity==null){ + return; + } + entity.setBytes(null); + update(id,entity); + } +} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/vo/JxlsTemplateVo.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/vo/JxlsTemplateVo.java new file mode 100644 index 00000000..ac9e9b98 --- /dev/null +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/jxls/template/vo/JxlsTemplateVo.java @@ -0,0 +1,81 @@ +package io.sc.platform.lcdp.jxls.template.vo; + +import io.sc.platform.orm.api.vo.CorporationAuditorVo; + +/** + * JXLS 模版 Vo + */ +public class JxlsTemplateVo extends CorporationAuditorVo { + private String id; + private String code; + private String name; + protected String namec; + private String description; + private String jpaEntityClass; + private Boolean async; + private boolean hasAttachment; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNamec() { + return namec; + } + + public void setNamec(String namec) { + this.namec = namec; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getJpaEntityClass() { + return jpaEntityClass; + } + + public void setJpaEntityClass(String jpaEntityClass) { + this.jpaEntityClass = jpaEntityClass; + } + + public Boolean getAsync() { + return async; + } + + public void setAsync(Boolean async) { + this.async = async; + } + + public boolean isHasAttachment() { + return hasAttachment; + } + + public void setHasAttachment(boolean hasAttachment) { + this.hasAttachment = hasAttachment; + } +} diff --git a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json index b8379972..5bd3617a 100644 --- a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json +++ b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json @@ -15,6 +15,10 @@ "io.sc.platform.lcdp.form.service.impl", "io.sc.platform.lcdp.excel.template.controller", "io.sc.platform.lcdp.excel.template.service.impl", + + "io.sc.platform.lcdp.jxls.template.controller", + "io.sc.platform.lcdp.jxls.template.service.impl", + "io.sc.platform.lcdp.frontend.component.controller", "io.sc.platform.lcdp.frontend.component.service.impl" ], diff --git a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json index cb00253e..87a0950a 100644 --- a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json +++ b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json @@ -7,7 +7,7 @@ "classpath:/liquibase/io.sc.platform.lcdp_8.0.0_20220606__LowCode_Developer_Database_Schema_DDL.xml", "classpath:/liquibase/io.sc.platform.lcdp_Form_DDL.xml", "classpath:/liquibase/io.sc.platform.lcdp_Excel_Template_DDL.xml", - "classpath:/liquibase/io.sc.platform.lcdp_Export_Excel_Template_DDL.xml" + "classpath:/liquibase/io.sc.platform.lcdp_JXLS_Template_DDL.xml" ] } ] \ No newline at end of file diff --git a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json index 3ddf50b0..4cc3c2e8 100644 --- a/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json +++ b/io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json @@ -14,7 +14,10 @@ "io.sc.platform.lcdp.form.entity", "io.sc.platform.lcdp.form.repository", "io.sc.platform.lcdp.excel.template.entity", - "io.sc.platform.lcdp.excel.template.repository" + "io.sc.platform.lcdp.excel.template.repository", + + "io.sc.platform.lcdp.jxls.template.entity", + "io.sc.platform.lcdp.jxls.template.repository" ], "excludes":[] } \ No newline at end of file diff --git a/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_Export_Excel_Template_DDL.xml b/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_Export_Excel_Template_DDL.xml deleted file mode 100644 index 96e50f9d..00000000 --- a/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_Export_Excel_Template_DDL.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_JXLS_Template_DDL.xml b/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_JXLS_Template_DDL.xml new file mode 100644 index 00000000..4405033a --- /dev/null +++ b/io.sc.platform.lcdp/src/main/resources/liquibase/io.sc.platform.lcdp_JXLS_Template_DDL.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/io.sc.platform.license.keygen.frontend/package.json b/io.sc.platform.license.keygen.frontend/package.json index 60e56847..79ee605e 100644 --- a/io.sc.platform.license.keygen.frontend/package.json +++ b/io.sc.platform.license.keygen.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.license.keygen/src/main/java/io/sc/platform/license/keygen/controller/LicenseKeyGeneratorWebController.java b/io.sc.platform.license.keygen/src/main/java/io/sc/platform/license/keygen/controller/LicenseKeyGeneratorWebController.java index 04cdda35..2289b46b 100644 --- a/io.sc.platform.license.keygen/src/main/java/io/sc/platform/license/keygen/controller/LicenseKeyGeneratorWebController.java +++ b/io.sc.platform.license.keygen/src/main/java/io/sc/platform/license/keygen/controller/LicenseKeyGeneratorWebController.java @@ -13,7 +13,9 @@ import io.sc.platform.license.keygen.jpa.vo.LicenseVo; import io.sc.platform.license.keygen.service.LicenseKeyGeneratorService; import io.sc.platform.license.keygen.service.LicenseService; import io.sc.platform.mvc.controller.support.RestCrudController; +import io.sc.platform.mvc.support.FileDownloader; import io.sc.platform.orm.entity.BaseEntity; +import io.sc.platform.orm.service.support.DataExportConfigure; import io.sc.platform.orm.service.support.QueryParameter; import io.sc.platform.orm.service.support.QueryResult; import io.sc.platform.orm.service.support.criteria.Criteria; @@ -27,6 +29,9 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -120,4 +125,19 @@ public class LicenseKeyGeneratorWebController { public void generateLicenseFile(@PathVariable(name="id",required=true)String id, HttpServletRequest request, HttpServletResponse response) throws Exception{ licenseKeyGeneratorService.generate(request, response,id); } + + @GetMapping("exportExcel") + public void _exportExcel(HttpServletRequest request,HttpServletResponse response,LicenseEntity entity,QueryParameter queryParameter) throws Exception{ + List criterias =licenseService.buildCriteriaFromEntity(request.getParameterNames(),entity); + if(criterias!=null && !criterias.isEmpty()){ + queryParameter.addCriterias(criterias); + } + ByteArrayOutputStream outputStream =new ByteArrayOutputStream(); + DataExportConfigure cofigure =licenseService.export(queryParameter,outputStream); + if(cofigure==null){ + return; + } + InputStream inputStream =new ByteArrayInputStream(outputStream.toByteArray()); + FileDownloader.download(request, response, cofigure.getDownloadFileName(), inputStream); + } } diff --git a/io.sc.platform.license.keygen/src/main/resources/io/sc/platform/license/keygen/jpa/entity/LicenseEntity.xlsx b/io.sc.platform.license.keygen/src/main/resources/io/sc/platform/license/keygen/jpa/entity/LicenseEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..121ddf118a0c81a521cc4652abf11d29d389025b GIT binary patch literal 12280 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 criterias =service.buildCriteriaFromEntity(request.getParameterNames(),entity); + if(criterias!=null && !criterias.isEmpty()){ + queryParameter.addCriterias(criterias); + } + exportExcel(request,response,queryParameter); + } + + protected void exportExcel(HttpServletRequest request,HttpServletResponse response,QueryParameter queryParameter) throws Exception{ + ByteArrayOutputStream outputStream =new ByteArrayOutputStream(); + DataExportConfigure cofigure =service.export(queryParameter,outputStream); + InputStream inputStream =new ByteArrayInputStream(outputStream.toByteArray()); + FileDownloader.download(request, response, cofigure.getDownloadFileName(), inputStream); + } } diff --git a/io.sc.platform.orm/build.gradle b/io.sc.platform.orm/build.gradle index c4d095e4..2057a4c1 100644 --- a/io.sc.platform.orm/build.gradle +++ b/io.sc.platform.orm/build.gradle @@ -3,6 +3,7 @@ dependencies { project(":io.sc.platform.jdbc"), project(":io.sc.platform.security"), project(":io.sc.platform.orm.api"), + project(":io.sc.platform.poi"), "org.springframework.boot:spring-boot-starter-data-jpa", ) diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/DaoRepository.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/DaoRepository.java index 88f0bb45..33b2e289 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/DaoRepository.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/DaoRepository.java @@ -1,16 +1,23 @@ package io.sc.platform.orm.repository; import io.sc.platform.orm.service.support.ManagedTypeAttributes; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.support.JpaEntityInformation; import org.springframework.data.repository.NoRepositoryBean; +import org.springframework.data.util.Streamable; import javax.persistence.EntityManager; +import javax.persistence.TypedQuery; import javax.persistence.metamodel.ManagedType; import java.io.Serializable; import java.util.List; import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Stream; @NoRepositoryBean public interface DaoRepository extends JpaRepository,JpaSpecificationExecutor{ @@ -33,4 +40,16 @@ public interface DaoRepository extends JpaRepository< public void deleteAllInBatch(Iterable entities,boolean isSendEvent); public void deleteAllByIdInBatch(Iterable ids,boolean isSendEvent); public void deleteAllInBatch(boolean isSendEvent); + + public void stream(Consumer consumer); + public void stream(Specification spec,Consumer consumer); + public void stream(Sort sort,Consumer consumer); + public void stream(Specification spec, Sort sort,Consumer consumer); + public void stream(TypedQuery query,Consumer consumer); + + public Stream stream(); + public Stream stream(Specification spec); + public Stream stream(Sort sort); + public Stream stream(Specification spec, Sort sort); + public Stream stream(TypedQuery query); } diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/impl/DaoRepositoryImpl.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/impl/DaoRepositoryImpl.java index 1c65ce36..405f7de7 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/impl/DaoRepositoryImpl.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/repository/impl/DaoRepositoryImpl.java @@ -5,7 +5,10 @@ import io.sc.platform.orm.entity.support.JpaEntityPersistentEvent; import io.sc.platform.orm.entity.support.JpaEntityPersistentEventType; import io.sc.platform.orm.repository.DaoRepository; import io.sc.platform.orm.service.support.ManagedTypeAttributes; +import org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter; import org.springframework.context.ApplicationContext; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.support.JpaEntityInformation; import org.springframework.data.jpa.repository.support.SimpleJpaRepository; import org.springframework.data.util.DirectFieldAccessFallbackBeanWrapper; @@ -15,6 +18,7 @@ import org.springframework.util.StringUtils; import javax.persistence.EntityManager; import javax.persistence.Query; +import javax.persistence.TypedQuery; import javax.persistence.metamodel.ManagedType; import javax.persistence.metamodel.SingularAttribute; import java.io.Serializable; @@ -22,9 +26,13 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; import java.util.stream.Collectors; +import java.util.stream.Stream; import java.util.stream.StreamSupport; +import static org.hibernate.annotations.QueryHints.READ_ONLY; +import static org.hibernate.jpa.QueryHints.HINT_FETCH_SIZE; import static org.springframework.data.jpa.repository.query.QueryUtils.*; public class DaoRepositoryImpl extends SimpleJpaRepository implements DaoRepository { @@ -238,4 +246,86 @@ public class DaoRepositoryImpl extends SimpleJpaRepos String sql =String.format("delete from %s x", entityName); entityManager.createQuery(sql).executeUpdate(); } + + @Override + public void stream(Consumer consumer) { + if(consumer==null) { return; } + TypedQuery query = super.getQuery(null,Sort.unsorted()); + stream(query,consumer); + } + + @Override + public void stream(Specification spec,Consumer consumer) { + if(consumer==null) { return; } + TypedQuery query = super.getQuery(spec,Sort.unsorted()); + stream(query,consumer); + } + + @Override + public void stream(Sort sort,Consumer consumer) { + if(consumer==null) { return; } + TypedQuery query = super.getQuery(null,sort); + stream(query,consumer); + } + + @Override + public void stream(Specification spec, Sort sort,Consumer consumer) { + if(consumer==null) { return; } + TypedQuery query = super.getQuery(spec,sort); + stream(query,consumer); + } + + @Override + public void stream(TypedQuery query, Consumer consumer) { + if(query==null || consumer==null){ + return; + } + if(query instanceof CriteriaQueryTypeQueryAdapter){ + CriteriaQueryTypeQueryAdapter _query =(CriteriaQueryTypeQueryAdapter)query; + _query.setHint(HINT_FETCH_SIZE,100); + _query.setHint(READ_ONLY,true); + _query.stream().forEach(consumer); + }else{ + query.getResultStream().forEach(consumer); + } + } + + @Override + public Stream stream() { + TypedQuery query = super.getQuery(null,Sort.unsorted()); + return stream(query); + } + + @Override + public Stream stream(Specification spec) { + TypedQuery query = super.getQuery(spec,Sort.unsorted()); + return stream(query); + } + + @Override + public Stream stream(Sort sort) { + TypedQuery query = super.getQuery(null,sort); + return stream(query); + } + + @Override + public Stream stream(Specification spec, Sort sort) { + TypedQuery query = super.getQuery(spec,sort); + return stream(query); + } + + @Override + public Stream stream(TypedQuery query) { + if(query==null){ + return Stream.empty(); + } + if(query instanceof CriteriaQueryTypeQueryAdapter){ + CriteriaQueryTypeQueryAdapter _query =(CriteriaQueryTypeQueryAdapter)query; + _query.setHint(HINT_FETCH_SIZE,100); + _query.setHint(READ_ONLY,true); + return _query.stream(); + }else{ + return query.getResultStream(); + } + } } diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/DaoService.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/DaoService.java index 8ad409cc..ccecbf4c 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/DaoService.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/DaoService.java @@ -2,16 +2,23 @@ package io.sc.platform.orm.service; import io.sc.platform.orm.repository.DaoRepository; import io.sc.platform.orm.service.support.DaoExceptionProvider; +import io.sc.platform.orm.service.support.DataExportConfigure; import io.sc.platform.orm.service.support.QueryParameter; import io.sc.platform.orm.service.support.criteria.Criteria; +import io.sc.platform.poi.generator.UniverTemplate; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; import java.io.Serializable; import java.util.Enumeration; import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Stream; public interface DaoService>{ public R getRepository(); @@ -47,4 +54,16 @@ public interface DaoService query(QueryParameter queryParameter, Specification specification) throws Exception; public Page query(Specification specification, Pageable pageable,Sort sort) throws Exception; + public void stream(Consumer consumer) throws Exception; + public void stream(QueryParameter queryParameter,Consumer consumer) throws Exception; + public void stream(QueryParameter queryParameter, Specification specification,Consumer consumer) throws Exception; + public void stream(Specification specification, Sort sort,Consumer consumer) throws Exception; + + public Stream stream() throws Exception; + public Stream stream(QueryParameter queryParameter) throws Exception; + public Stream stream(QueryParameter queryParameter, Specification specification) throws Exception; + public Stream stream(Specification specification, Sort sort) throws Exception; + + public DataExportConfigure getExportConfigure(); + public DataExportConfigure export(QueryParameter queryParameter, OutputStream outputStream) throws Exception; } diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/JxlsTemplateService.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/JxlsTemplateService.java new file mode 100644 index 00000000..42fbd6c2 --- /dev/null +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/JxlsTemplateService.java @@ -0,0 +1,8 @@ +package io.sc.platform.orm.service; + +import io.sc.platform.orm.service.support.JxlsTemplate; + +public interface JxlsTemplateService { + public JxlsTemplate findTemplateByCode(String code); + public JxlsTemplate findTemplateByJpaEntityClass(String jpaEntityClass); +} diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/DaoServiceImpl.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/DaoServiceImpl.java index 9c1d826e..7e3e63d5 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/DaoServiceImpl.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/DaoServiceImpl.java @@ -1,6 +1,6 @@ package io.sc.platform.orm.service.impl; -import com.beust.jcommander.internal.Lists; +import io.sc.platform.core.DirectoryManager; import io.sc.platform.core.Environment; import io.sc.platform.orm.entity.CorporationAuditorEntity; import io.sc.platform.orm.entity.DesensitizedEntity; @@ -9,16 +9,25 @@ import io.sc.platform.orm.entity.support.JpaEntityPersistentEventType; import io.sc.platform.orm.repository.DaoRepository; import io.sc.platform.orm.service.DaoService; import io.sc.platform.orm.service.DesensitizerAuthorizerService; +import io.sc.platform.orm.service.JxlsTemplateService; import io.sc.platform.orm.service.support.*; import io.sc.platform.orm.service.support.criteria.Criteria; import io.sc.platform.orm.service.support.criteria.impl.Equals; import io.sc.platform.orm.service.support.criteria.impl.IContains; import io.sc.platform.orm.service.support.criteria.impl.IsNull; +import io.sc.platform.poi.generator.UniverTemplate; +import io.sc.platform.poi.generator.UniverExcelGenerator; import io.sc.platform.security.util.SecurityUtil; -import io.sc.platform.util.CollectionUtil; +import io.sc.platform.util.ByteUtil; +import io.sc.platform.util.ResourceUtil; +import io.sc.platform.util.StringUtil; +import org.jxls.common.Context; +import org.jxls.util.JxlsHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.core.convert.ConversionService; +import org.springframework.core.io.DefaultResourceLoader; +import org.springframework.core.io.Resource; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -32,9 +41,13 @@ import org.springframework.util.StringUtils; import javax.persistence.criteria.Predicate; import javax.persistence.metamodel.PluralAttribute; import javax.persistence.metamodel.SingularAttribute; -import java.io.Serializable; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.lang.reflect.Modifier; import java.util.*; +import java.util.function.Consumer; +import java.util.stream.Stream; public abstract class DaoServiceImpl> implements DaoService{ @Autowired protected ApplicationContext applicationContext; @@ -43,6 +56,7 @@ public abstract class DaoServiceImpl exceptionProvider =getExceptionProvider(); @Override @@ -498,6 +512,166 @@ public abstract class DaoServiceImpl consumer) throws Exception { + repository.stream(consumer); + } + + @Override + public void stream(QueryParameter queryParameter,Consumer consumer) throws Exception { + if(queryParameter!=null) { + buildDefaultSortBy(queryParameter); + Specification specification =buildSpecification(queryParameter); + specification =andCorporationSpecification(specification); + if(queryParameter.getSort()!=null) { + repository.stream(specification, queryParameter.getSort(),consumer); + }else{ + repository.stream(specification,consumer); + } + }else{ + buildDefaultSortBy(queryParameter); + Specification specification =andCorporationSpecification(null); + repository.stream(specification,consumer); + } + } + + @Override + public void stream(QueryParameter queryParameter, Specification specification,Consumer consumer) throws Exception { + if(queryParameter!=null) { + buildDefaultSortBy(queryParameter); + specification =andCorporationSpecification(specification); + if(queryParameter.getPageable()) { + repository.stream(specification,queryParameter.getSort(),consumer); + }else{ + repository.stream(specification,queryParameter.getSort(),consumer); + } + }else{ + specification =andCorporationSpecification(specification); + repository.stream(specification,consumer); + } + } + + @Override + public void stream(Specification specification, Sort sort,Consumer consumer) throws Exception { + if(sort!=null){ + if(specification!=null) { + repository.stream(specification,sort,consumer); + }else{ + repository.stream(sort,consumer); + } + }else{ + if(specification!=null) { + repository.stream(specification,consumer); + }else{ + repository.stream(consumer); + } + } + } + + @Override + public Stream stream() throws Exception { + return repository.stream(); + } + + @Override + public Stream stream(QueryParameter queryParameter) throws Exception { + if(queryParameter!=null) { + buildDefaultSortBy(queryParameter); + Specification specification =buildSpecification(queryParameter); + specification =andCorporationSpecification(specification); + if(queryParameter.getSort()!=null) { + return repository.stream(specification, queryParameter.getSort()); + }else{ + return repository.stream(specification); + } + }else{ + buildDefaultSortBy(queryParameter); + Specification specification =andCorporationSpecification(null); + return repository.stream(specification); + } + } + + @Override + public Stream stream(QueryParameter queryParameter, Specification specification) throws Exception { + if(queryParameter!=null) { + buildDefaultSortBy(queryParameter); + specification =andCorporationSpecification(specification); + if(queryParameter.getPageable()) { + return repository.stream(specification,queryParameter.getSort()); + }else{ + return repository.stream(specification,queryParameter.getSort()); + } + }else{ + specification =andCorporationSpecification(specification); + return repository.stream(specification); + } + } + + @Override + public Stream stream(Specification specification, Sort sort) throws Exception { + if(sort!=null){ + if(specification!=null) { + return repository.stream(specification,sort); + }else{ + return repository.stream(sort); + } + }else{ + if(specification!=null) { + return repository.stream(specification); + }else{ + return repository.stream(); + } + } + } + + @Override + public DataExportConfigure getExportConfigure() { + String entityClassName =repository.getJpaEntityInformation().getJavaType().getName(); + DataExportConfigure configure =new DataExportConfigure(); + configure.setJxlsTemplateClassPath(entityClassName.replace('.','/') + ".xlsx"); + configure.setJxlsTemplateJpaEntityClass(repository.getJpaEntityInformation().getJavaType().getName()); + configure.setOutputFilePath(DirectoryManager.getInstance().getByName("dir.work.web.export") + "/" + UUID.randomUUID().toString() + ".xlsx"); + configure.setDownloadFileName(repository.getJpaEntityInformation().getJavaType().getSimpleName() + ".xlsx"); + return configure; + } + + @Override + public DataExportConfigure export(QueryParameter queryParameter, OutputStream outputStream) throws Exception { + DataExportConfigure dataExportConfigure =this.getExportConfigure(); + if(dataExportConfigure==null){ + return null; + } + + String templateClassPath =dataExportConfigure.getJxlsTemplateClassPath(); + String templateCode =dataExportConfigure.getJxlsTemplateCode(); + String templateJpaEntityClass =dataExportConfigure.getJxlsTemplateJpaEntityClass(); + JxlsTemplate template =null; + if(StringUtils.hasText(templateCode)) { + template =jxlsTemplateService.findTemplateByCode(templateCode); + }else if(StringUtils.hasText(templateClassPath)) { + Resource resource =new DefaultResourceLoader().getResource("classpath:/" + templateClassPath); + if(resource!=null && resource.exists()){ + try(InputStream inputStream =resource.getInputStream();){ + template =new JxlsTemplate(); + template.setBytes(ByteUtil.read(inputStream)); + } + } + }else if(StringUtils.hasText(templateJpaEntityClass)){ + template =jxlsTemplateService.findTemplateByJpaEntityClass(templateJpaEntityClass); + } + + if(template==null){ + return null; + } + + Context context = new Context(); + context.putVar("list", this.list(queryParameter)); + try(InputStream inputStream =new ByteArrayInputStream(template.getBytes());){ + JxlsHelper.getInstance().processTemplate(inputStream, outputStream,context); + } + return dataExportConfigure; + } + @Override public List buildCriteriaFromEntity(Enumeration parameterNames, E entity) throws Exception { if(entity==null){ diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/JxlsTemplateServiceImpl.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/JxlsTemplateServiceImpl.java new file mode 100644 index 00000000..1f6889fe --- /dev/null +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/impl/JxlsTemplateServiceImpl.java @@ -0,0 +1,74 @@ +package io.sc.platform.orm.service.impl; + +import io.sc.platform.orm.service.JxlsTemplateService; +import io.sc.platform.orm.service.support.JxlsTemplate; +import io.sc.platform.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.ResultSetExtractor; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.sql.Blob; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Service("io.sc.platform.orm.service.impl.JxlsTemplateServiceImpl") +public class JxlsTemplateServiceImpl implements JxlsTemplateService { + private static final int TEMPLATE_BYTE_MAX_LENGTH =1024*1024*50; + private static final String SQL_BY_CODE ="select * from LCDP_JXLS_TEMPLATE where CODE_='${0}'"; + private static final String SQL_BY_JPA_ENTITY_CLASS ="select * from LCDP_JXLS_TEMPLATE where JPA_ENTITY_CLASS_='${0}'"; + @Autowired private JdbcTemplate jdbcTemplate; + + @Override + public JxlsTemplate findTemplateByCode(String code) { + if(!StringUtils.hasText(code)){ + return null; + } + String sql = StringUtil.format(SQL_BY_CODE,code); + return jdbcTemplate.query(sql, new JxlsTemplateResultSetExtractor()); + } + + @Override + public JxlsTemplate findTemplateByJpaEntityClass(String jpaEntityClass) { + if(!StringUtils.hasText(jpaEntityClass)){ + return null; + } + String sql = StringUtil.format(SQL_BY_JPA_ENTITY_CLASS,jpaEntityClass); + return jdbcTemplate.query(sql, new JxlsTemplateResultSetExtractor()); + } + + private static class JxlsTemplateResultSetExtractor implements ResultSetExtractor { + @Override + public JxlsTemplate extractData(ResultSet rs) throws SQLException, DataAccessException { + if(rs.next()) { + JxlsTemplate template =new JxlsTemplate(); + template.setId(rs.getString("ID_")); + template.setCode(rs.getString("CODE_")); + template.setName(rs.getString("NAME_")); + template.setDescription(rs.getString("DESCRIPTION_")); + Object o =rs.getObject("ASYNC_"); + if(o==null){ + template.setAsync(false); + }else{ + Integer async =(Integer)o; + template.setAsync(async==1?true:false); + } + Blob blob = rs.getBlob("BYTES_"); + if(blob!=null) { + long length = blob.length(); + if(length<=0){ + template.setBytes(null); + } + if(length>TEMPLATE_BYTE_MAX_LENGTH){ + throw new RuntimeException("JXLS Template's blob data too big! it can NOT great than " + TEMPLATE_BYTE_MAX_LENGTH + " byte."); + } + template.setBytes(blob.getBytes(1, (int) length)); + return template; + } + } + return null; + } + } +} diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DataExportConfigure.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DataExportConfigure.java new file mode 100644 index 00000000..fd30f0a8 --- /dev/null +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DataExportConfigure.java @@ -0,0 +1,61 @@ +package io.sc.platform.orm.service.support; + +/** + * 数据导出配置类 + */ +public class DataExportConfigure { + private boolean async; //是否异步执行 + private String jxlsTemplateClassPath; //JXLS模版 classpath + private String jxlsTemplateCode; //JXLS模版代码 + private String jxlsTemplateJpaEntityClass; //JXLS模版JPA实体类 + private String outputFilePath; //导出文件路径 + private String downloadFileName; //用于下载的文件名 + + public boolean isAsync() { + return async; + } + + public void setAsync(boolean async) { + this.async = async; + } + + public String getJxlsTemplateClassPath() { + return jxlsTemplateClassPath; + } + + public void setJxlsTemplateClassPath(String jxlsTemplateClassPath) { + this.jxlsTemplateClassPath = jxlsTemplateClassPath; + } + + public String getJxlsTemplateCode() { + return jxlsTemplateCode; + } + + public void setJxlsTemplateCode(String jxlsTemplateCode) { + this.jxlsTemplateCode = jxlsTemplateCode; + } + + public String getJxlsTemplateJpaEntityClass() { + return jxlsTemplateJpaEntityClass; + } + + public void setJxlsTemplateJpaEntityClass(String jxlsTemplateJpaEntityClass) { + this.jxlsTemplateJpaEntityClass = jxlsTemplateJpaEntityClass; + } + + public String getOutputFilePath() { + return outputFilePath; + } + + public void setOutputFilePath(String outputFilePath) { + this.outputFilePath = outputFilePath; + } + + public String getDownloadFileName() { + return downloadFileName; + } + + public void setDownloadFileName(String downloadFileName) { + this.downloadFileName = downloadFileName; + } +} diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/JxlsTemplate.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/JxlsTemplate.java new file mode 100644 index 00000000..af2ce76f --- /dev/null +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/JxlsTemplate.java @@ -0,0 +1,76 @@ +package io.sc.platform.orm.service.support; + +public class JxlsTemplate { + private String id; + private String code; + private String name; + protected String namec; + private String description; + private String jpaEntityClass; + private Boolean async; + private byte[] bytes; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNamec() { + return namec; + } + + public void setNamec(String namec) { + this.namec = namec; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getJpaEntityClass() { + return jpaEntityClass; + } + + public void setJpaEntityClass(String jpaEntityClass) { + this.jpaEntityClass = jpaEntityClass; + } + + public Boolean getAsync() { + return async; + } + + public void setAsync(Boolean async) { + this.async = async; + } + + public byte[] getBytes() { + return bytes; + } + + public void setBytes(byte[] bytes) { + this.bytes = bytes; + } +} diff --git a/io.sc.platform.poi/build.gradle b/io.sc.platform.poi/build.gradle index 45a7cd61..0026538c 100644 --- a/io.sc.platform.poi/build.gradle +++ b/io.sc.platform.poi/build.gradle @@ -1,9 +1,11 @@ dependencies { api( - project(":io.sc.platform.mvc"), - project(":io.sc.platform.csv"), + project(":io.sc.platform.core"), "org.apache.poi:poi:${poi_version}", "org.apache.poi:poi-ooxml:${poi_version}", + + "org.jxls:jxls:${jxls_version}", + "org.jxls:jxls-poi:${jxls_version}", ) } diff --git a/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverExcelGenerator.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverExcelGenerator.java index eebe91d4..be6efd91 100644 --- a/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverExcelGenerator.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverExcelGenerator.java @@ -1,30 +1,42 @@ package io.sc.platform.poi.generator; -import io.sc.platform.excel.univer.model.*; -import io.sc.platform.util.FileUtil; -import io.sc.platform.util.ObjectMapperUtil; +import io.sc.platform.poi.univer.model.CellValueType; +import io.sc.platform.poi.univer.model.ICellData; +import io.sc.platform.poi.univer.model.IWorksheetData; import io.sc.platform.util.TypeConvertor; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.util.StringUtils; -import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; public class UniverExcelGenerator { - public void generate(String outputFilePath, IWorkbookData workBookConfig) throws IOException { - if(workBookConfig==null) { + private UniverTemplate template; + private Map parameters =new HashMap<>(); + + public UniverExcelGenerator(){} + public UniverExcelGenerator(UniverTemplate template){ + this.template =template; + } + + public void addParameter(String parameterName,Object parameterValue){ + this.parameters.put(parameterName,parameterValue); + } + + public void generate() throws IOException { + if(template==null || !StringUtils.hasText(template.getOutputFilePath()) || template.getUniverConfigure()==null) { return; } try( - FileOutputStream outputStream =new FileOutputStream(outputFilePath); + FileOutputStream outputStream =new FileOutputStream(template.getOutputFilePath()); XSSFWorkbook workbook = new XSSFWorkbook(); ){ - for(Map.Entry sheetConfigEntry : workBookConfig.getSheets().entrySet()){ + for(Map.Entry sheetConfigEntry : template.getUniverConfigure().getSheets().entrySet()){ String sheetName =sheetConfigEntry.getKey(); IWorksheetData sheetConfig =sheetConfigEntry.getValue(); XSSFSheet sheet = workbook.createSheet(sheetConfig.getName()); @@ -55,14 +67,19 @@ public class UniverExcelGenerator { } } - public static void main(String[] args) throws Exception { - FileInputStream inputStream =new FileInputStream("/Users/wangshaoping/wspsc/workspace/wangshaoping/v8/platform/io.sc.platform.poi/src/main/resources/a.txt"); - String content = FileUtil.readString(inputStream); - content =content.replace("undefined","null"); + public UniverTemplate getTemplate() { + return template; + } + + public void setTemplate(UniverTemplate template) { + this.template = template; + } - IWorkbookData workbookConfig = ObjectMapperUtil.json().readValue(content,IWorkbookData.class); + public Map getParameters() { + return parameters; + } - UniverExcelGenerator generator =new UniverExcelGenerator(); - generator.generate("/Users/wangshaoping/Desktop/test/a.xlsx",workbookConfig); + public void setParameters(Map parameters) { + this.parameters = parameters; } } diff --git a/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverTemplate.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverTemplate.java new file mode 100644 index 00000000..25bf131f --- /dev/null +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/generator/UniverTemplate.java @@ -0,0 +1,24 @@ +package io.sc.platform.poi.generator; + +import io.sc.platform.poi.univer.model.IWorkbookData; + +public class UniverTemplate { + private String outputFilePath; + private IWorkbookData univerConfigure; + + public String getOutputFilePath() { + return outputFilePath; + } + + public void setOutputFilePath(String outputFilePath) { + this.outputFilePath = outputFilePath; + } + + public IWorkbookData getUniverConfigure() { + return univerConfigure; + } + + public void setUniverConfigure(IWorkbookData univerConfigure) { + this.univerConfigure = univerConfigure; + } +} diff --git a/io.sc.platform.poi/src/main/java/io/sc/platform/poi/jxls/generator/ExcelGenerator.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/jxls/generator/ExcelGenerator.java new file mode 100644 index 00000000..a362b571 --- /dev/null +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/jxls/generator/ExcelGenerator.java @@ -0,0 +1,15 @@ +package io.sc.platform.poi.jxls.generator; + +import java.io.FileNotFoundException; + +public class ExcelGenerator { + public static void main(String[] args) throws FileNotFoundException { +// Map data = new HashMap<>(); +// data.put("employees", employees); +// JxlsHelper.getInstance(). +// JxlsPoiTemplateFillerBuilder.newInstance() +// .withTemplate("/Users/wangshaoping/Desktop/test/template.xlsx") +// .build() +// .fill(data, new File("/Users/wangshaoping/Desktop/test/xxx.xlsx")); + } +} diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AbsoluteRefType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AbsoluteRefType.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AbsoluteRefType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AbsoluteRefType.java index e025aacc..19550f3c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AbsoluteRefType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AbsoluteRefType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum AbsoluteRefType { NONE(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeH.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeH.java similarity index 83% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeH.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeH.java index 2c74b5a9..a552810c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeH.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeH.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum AlignTypeH { CENTER(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeV.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeV.java similarity index 81% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeV.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeV.java index 05937212..c497d193 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/AlignTypeV.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/AlignTypeV.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum AlignTypeV { BOTTOM(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BaselineOffset.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BaselineOffset.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BaselineOffset.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BaselineOffset.java index 0bebd77d..3b4e0fe3 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BaselineOffset.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BaselineOffset.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum BaselineOffset { NORMAL(1), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BlockType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BlockType.java similarity index 76% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BlockType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BlockType.java index f101b5c8..a70f9f76 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BlockType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BlockType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum BlockType { DRAWING(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BorderStyleTypes.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BorderStyleTypes.java similarity index 89% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BorderStyleTypes.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BorderStyleTypes.java index b129ceb0..9a03cd6c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BorderStyleTypes.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BorderStyleTypes.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum BorderStyleTypes { NONE(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BulletAlignment.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BulletAlignment.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BulletAlignment.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BulletAlignment.java index 5c8ed8e2..4c67402f 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/BulletAlignment.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/BulletAlignment.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum BulletAlignment { BULLET_ALIGNMENT_UNSPECIFIED(0),// The bullet alignment is unspecified. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CellValueType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CellValueType.java similarity index 81% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CellValueType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CellValueType.java index d6d1783c..1072767c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CellValueType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CellValueType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum CellValueType { STRING(1), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CharacterSpacingControlType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CharacterSpacingControlType.java similarity index 84% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CharacterSpacingControlType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CharacterSpacingControlType.java index 56f338e2..3cf4f56d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CharacterSpacingControlType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CharacterSpacingControlType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum CharacterSpacingControlType { compressPunctuation(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ColumnSeparatorType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ColumnSeparatorType.java similarity index 87% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ColumnSeparatorType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ColumnSeparatorType.java index 70e7bf95..0515483d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ColumnSeparatorType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ColumnSeparatorType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum ColumnSeparatorType { COLUMN_SEPARATOR_STYLE_UNSPECIFIED(0),// An unspecified column separator style. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomDecorationType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomDecorationType.java similarity index 79% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomDecorationType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomDecorationType.java index 99e50670..190e07b1 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomDecorationType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomDecorationType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum CustomDecorationType { COMMENT(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomRangeType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomRangeType.java similarity index 88% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomRangeType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomRangeType.java index 8c04d248..516ca8d5 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/CustomRangeType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/CustomRangeType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum CustomRangeType { HYPERLINK(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DashStyleType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DashStyleType.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DashStyleType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DashStyleType.java index d38e9162..edb51b14 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DashStyleType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DashStyleType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum DashStyleType { DASH_STYLE_UNSPECIFIED(0),// Unspecified dash style. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DocumentFlavor.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DocumentFlavor.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DocumentFlavor.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DocumentFlavor.java index e4f4739e..2ce018af 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DocumentFlavor.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DocumentFlavor.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum DocumentFlavor { UNSPECIFIED(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DrawingType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DrawingType.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DrawingType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DrawingType.java index 0e20044c..4baca382 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/DrawingType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/DrawingType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum DrawingType { /** diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/GridType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/GridType.java similarity index 81% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/GridType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/GridType.java index 82a9eeb0..542fe919 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/GridType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/GridType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum GridType { DEFAULT(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/HorizontalAlign.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/HorizontalAlign.java similarity index 92% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/HorizontalAlign.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/HorizontalAlign.java index 661284f5..e331a9b2 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/HorizontalAlign.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/HorizontalAlign.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum HorizontalAlign { UNSPECIFIED(0), // The horizontal alignment is not specified. Do not use this. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderData.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderData.java index b6d51c11..39a672d6 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderData.java @@ -1,4 +1,5 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; + public class IBorderData { private IBorderStyleData t; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderStyleData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderStyleData.java similarity index 89% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderStyleData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderStyleData.java index e38c27d7..4cb9b2f3 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBorderStyleData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBorderStyleData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IBorderStyleData { private BorderStyleTypes s; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBullet.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBullet.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBullet.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBullet.java index 0ea049fd..ca5ab572 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IBullet.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IBullet.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IBullet { private String listType; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICellData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICellData.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICellData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICellData.java index 5856258e..ac8418a2 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICellData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICellData.java @@ -1,4 +1,5 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; + import java.util.Map; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColorStyle.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColorStyle.java similarity index 88% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColorStyle.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColorStyle.java index ff7c0116..8c0e47c3 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColorStyle.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColorStyle.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IColorStyle { private String rgb; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnData.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnData.java index 0ee09195..8fcfab82 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnHeader.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnHeader.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnHeader.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnHeader.java index 1f8b1857..c4c43623 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IColumnHeader.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IColumnHeader.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomBlock.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomBlock.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomBlock.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomBlock.java index f097b023..206f03fe 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomBlock.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomBlock.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ICustomBlock { private Integer startIndex; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomDecoration.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomDecoration.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomDecoration.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomDecoration.java index 54a02ddc..0af84ed1 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomDecoration.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomDecoration.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ICustomDecoration { private Integer startIndex; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomRange.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomRange.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomRange.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomRange.java index 53e65f07..949035b2 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomRange.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomRange.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import java.util.Map; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomTable.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomTable.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomTable.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomTable.java index c8a46a11..49f40d49 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ICustomTable.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ICustomTable.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ICustomTable { private Integer startIndex; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDistFromText.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDistFromText.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDistFromText.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDistFromText.java index b0526e08..78f7d45c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDistFromText.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDistFromText.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDistFromText { private Integer distT; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingBase.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingBase.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingBase.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingBase.java index 506d3931..26edd6b0 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingBase.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingBase.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingPosition.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingPosition.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingPosition.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingPosition.java index 88d84351..a5fcc664 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocDrawingPosition.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocDrawingPosition.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDocDrawingPosition { private ISize size; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocsBorder.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocsBorder.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocsBorder.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocsBorder.java index 9e3fa17e..e147fbdd 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocsBorder.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocsBorder.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDocsBorder { private IColorStyle color; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentBody.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentBody.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentBody.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentBody.java index 98ae35f8..fb100430 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentBody.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentBody.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import java.util.Map; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentData.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentData.java index a8dda637..98c93470 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDocumentData extends IReferenceSource { /** unit ID */ diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentRenderConfig.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentRenderConfig.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentRenderConfig.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentRenderConfig.java index 86164949..fa9ba07b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentRenderConfig.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentRenderConfig.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentSettings.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentSettings.java similarity index 84% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentSettings.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentSettings.java index 568cfa50..37c2e8da 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentSettings.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentSettings.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDocumentSettings { private Integer zoomRatio; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentStyle.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentStyle.java similarity index 99% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentStyle.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentStyle.java index ab5e61c8..04115d12 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDocumentStyle.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDocumentStyle.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingParam.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingParam.java similarity index 96% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingParam.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingParam.java index e1015741..55181639 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingParam.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingParam.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSearch.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSearch.java similarity index 85% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSearch.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSearch.java index e4466ba6..92cc0e5d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSearch.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSearch.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDrawingSearch extends IDrawingSpace { private String drawingId; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSpace.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSpace.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSpace.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSpace.java index 760f2c7b..cd4113f6 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IDrawingSpace.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IDrawingSpace.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IDrawingSpace { private String unitId; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFooterData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFooterData.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFooterData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFooterData.java index c57e4c13..2bd90f27 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFooterData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFooterData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IFooterData { private String footerId; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFreeze.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFreeze.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFreeze.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFreeze.java index 41e3ec26..67029974 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IFreeze.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IFreeze.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IFreeze { private Integer xSplit; // count of fixed cols diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IHeaderData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IHeaderData.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IHeaderData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IHeaderData.java index 7c04bcc4..03cfaf30 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IHeaderData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IHeaderData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IHeaderData { private String headerId; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IIndentStart.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IIndentStart.java similarity index 96% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IIndentStart.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IIndentStart.java index 4029a3d1..379f2bbd 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IIndentStart.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IIndentStart.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IIndentStart { private INumberUnit indentFirstLine; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IListData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IListData.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IListData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IListData.java index 54dcc4d0..b402ee40 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IListData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IListData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IListData { private String listType; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INestingLevel.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INestingLevel.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INestingLevel.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INestingLevel.java index b20890b2..e2cc13b7 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INestingLevel.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INestingLevel.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class INestingLevel { private IParagraphStyle paragraphProperties; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INumberUnit.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INumberUnit.java similarity index 88% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INumberUnit.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INumberUnit.java index d77d572b..fb314883 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/INumberUnit.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/INumberUnit.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class INumberUnit { private Integer v; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionH.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionH.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionH.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionH.java index dd0f58da..20ff088f 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionH.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionH.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IObjectPositionH { private ObjectRelativeFromH relativeFrom; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionV.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionV.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionV.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionV.java index 69dbf149..7a774d41 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IObjectPositionV.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IObjectPositionV.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IObjectPositionV { private ObjectRelativeFromV relativeFrom; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IPaddingData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IPaddingData.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IPaddingData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IPaddingData.java index 4288c8f5..0b803549 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IPaddingData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IPaddingData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IPaddingData { private Integer t; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraph.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraph.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraph.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraph.java index d4c3d429..f8aff134 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraph.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraph.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IParagraph { private Integer startIndex; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphBorder.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphBorder.java similarity index 84% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphBorder.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphBorder.java index c1f164cf..1255c299 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphBorder.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphBorder.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IParagraphBorder extends IDocsBorder { private Integer padding; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphProperties.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphProperties.java similarity index 99% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphProperties.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphProperties.java index 62cb7def..1d0a5da0 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphProperties.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphProperties.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphStyle.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphStyle.java similarity index 86% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphStyle.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphStyle.java index 23a82eae..b7cebfbe 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IParagraphStyle.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IParagraphStyle.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IParagraphStyle extends IParagraphProperties { private ITextStyle textStyle; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRange.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRange.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRange.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRange.java index b7e9d477..fe2f3425 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRange.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRange.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IRange { private RangeType rangeType; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRangeLocation.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRangeLocation.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRangeLocation.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRangeLocation.java index 74303b13..a3cccf5e 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRangeLocation.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRangeLocation.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IRangeLocation { /** diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IReferenceSource.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IReferenceSource.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IReferenceSource.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IReferenceSource.java index 64afed61..7bfcb294 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IReferenceSource.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IReferenceSource.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import java.util.Map; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IResource.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IResource.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IResource.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IResource.java index 0b703fa9..397bb838 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IResource.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IResource.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IResource { private String id; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowData.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowData.java index 8979d819..aeb5542c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowHeader.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowHeader.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowHeader.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowHeader.java index c51f997e..c365ca90 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IRowHeader.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IRowHeader.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionBreak.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionBreak.java similarity index 99% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionBreak.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionBreak.java index fc6e6a06..64de3111 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionBreak.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionBreak.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionColumnProperties.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionColumnProperties.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionColumnProperties.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionColumnProperties.java index 4a911bbb..28c6a401 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISectionColumnProperties.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISectionColumnProperties.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ISectionColumnProperties { private Integer width; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IShading.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IShading.java similarity index 86% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IShading.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IShading.java index 636b12a3..d12b920f 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IShading.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IShading.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IShading { private IColorStyle backgroundColor; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISize.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISize.java similarity index 89% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISize.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISize.java index c3a3145f..8b0e208d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ISize.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ISize.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ISize { private Integer width; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleBase.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleBase.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleBase.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleBase.java index 72cd878b..d65386b5 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleBase.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleBase.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleData.java similarity index 96% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleData.java index 0db7cbe4..0cf8d89c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IStyleData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IStyleData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IStyleData { private ITextRotation tr; //textRotation diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITabStop.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITabStop.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITabStop.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITabStop.java index 515a42e8..f07f52de 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITabStop.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITabStop.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITabStop { private Integer offset; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITable.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITable.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITable.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITable.java index 76a42cae..9c83f8d6 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITable.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITable.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableAnchor.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableAnchor.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableAnchor.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableAnchor.java index 4df43922..aaed58c2 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableAnchor.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableAnchor.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITableAnchor { private IObjectPositionH positionH; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCell.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCell.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCell.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCell.java index 47ab5a1e..fe92555b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCell.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCell.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellBorder.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellBorder.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellBorder.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellBorder.java index 0511fd87..15b37131 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellBorder.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellBorder.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITableCellBorder { private IColorStyle color; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellMargin.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellMargin.java similarity index 94% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellMargin.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellMargin.java index 7fb07116..4b9cf366 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableCellMargin.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableCellMargin.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITableCellMargin { private INumberUnit start; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableColumn.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableColumn.java similarity index 83% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableColumn.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableColumn.java index 28ebac0a..0d9bd154 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableColumn.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableColumn.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITableColumn { private IWidthInTableSize size; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRow.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRow.java similarity index 96% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRow.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRow.java index fedf3e52..0cc5346e 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRow.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRow.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRowSize.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRowSize.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRowSize.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRowSize.java index 203f511f..2f40f262 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITableRowSize.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITableRowSize.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITableRowSize { private INumberUnit val; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextDecoration.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextDecoration.java similarity index 95% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextDecoration.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextDecoration.java index 2e7f81b5..69b89a36 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextDecoration.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextDecoration.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRotation.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRotation.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRotation.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRotation.java index 899d2561..03f44e6d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRotation.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRotation.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRun.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRun.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRun.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRun.java index 9e0ba045..ff7ecf88 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextRun.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextRun.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITextRun { private Integer st; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextStyle.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextStyle.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextStyle.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextStyle.java index 90a11cb5..776d4fc2 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITextStyle.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITextStyle.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITextStyle { private Integer sc; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITransformState.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITransformState.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITransformState.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITransformState.java index 30172751..eb64d5d0 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ITransformState.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ITransformState.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class ITransformState { private Integer width; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWidthInTableSize.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWidthInTableSize.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWidthInTableSize.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWidthInTableSize.java index 6d01f982..72c5d56b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWidthInTableSize.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWidthInTableSize.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public class IWidthInTableSize { private TableSizeType type; diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorkbookData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorkbookData.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorkbookData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorkbookData.java index 2d17f9ca..44f3ac3b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorkbookData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorkbookData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import java.util.Map; @@ -9,7 +9,7 @@ public class IWorkbookData { private LocaleType locale; //Locale of the document. private Map styles; //Style references for the workbook. private String[] sheetOrder; //Array of sheet IDs representing the order of worksheets. - private Map sheets; //Record containing data for each worksheet. + private Map sheets; //Record containing data for each worksheet. private IResource[] resources; //Store the data of plugins public String getId() { diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorksheetData.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorksheetData.java similarity index 97% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorksheetData.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorksheetData.java index dfd79d24..1126cc85 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/IWorksheetData.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/IWorksheetData.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; import com.fasterxml.jackson.annotation.JsonFormat; @@ -18,7 +18,7 @@ public class IWorksheetData { private IRange[] mergeData; // Array of merged cell ranges. private Map> cellData; // Matrix of cell contents. More details. private Map rowData; // Array of row data objects. - private Map columnData; // Array of column data objects. + private Map columnData; // Array of column data objects. private IRowHeader rowHeader; // Row header configuration. private IColumnHeader columnHeader; // Column header configuration. @JsonFormat(shape = JsonFormat.Shape.NUMBER) diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ListGlyphType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ListGlyphType.java similarity index 98% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ListGlyphType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ListGlyphType.java index 4496c283..79bb5d96 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ListGlyphType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ListGlyphType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum ListGlyphType { BULLET(0),// The glyph type is unspecified or unsupported. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/LocaleType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/LocaleType.java similarity index 85% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/LocaleType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/LocaleType.java index 97e7f27e..f5d34345 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/LocaleType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/LocaleType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum LocaleType { EN_US("enUS"), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NamedStyleType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NamedStyleType.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NamedStyleType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NamedStyleType.java index c6a10511..3a363a0d 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NamedStyleType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NamedStyleType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum NamedStyleType { NAMED_STYLE_TYPE_UNSPECIFIED(0),// The type of named style is unspecified. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NumberUnitType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NumberUnitType.java similarity index 82% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NumberUnitType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NumberUnitType.java index 71dbed36..50a17a4b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/NumberUnitType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/NumberUnitType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum NumberUnitType { POINT(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromH.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromH.java similarity index 86% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromH.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromH.java index 488aa57b..d2eca17e 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromH.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromH.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum ObjectRelativeFromH { PAGE(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromV.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromV.java similarity index 86% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromV.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromV.java index db8c65ae..ec94bfa3 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ObjectRelativeFromV.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ObjectRelativeFromV.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum ObjectRelativeFromV { PAGE(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PageOrientType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PageOrientType.java similarity index 78% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PageOrientType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PageOrientType.java index a3b6dad3..91800b07 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PageOrientType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PageOrientType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum PageOrientType { PORTRAIT(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PositionedObjectLayoutType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PositionedObjectLayoutType.java similarity index 86% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PositionedObjectLayoutType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PositionedObjectLayoutType.java index 7a023eb6..b6ba6387 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/PositionedObjectLayoutType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/PositionedObjectLayoutType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum PositionedObjectLayoutType {INLINE(0), WRAP_NONE(1), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/RangeType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/RangeType.java similarity index 79% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/RangeType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/RangeType.java index 86ed995b..a1eadb92 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/RangeType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/RangeType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum RangeType { NORMAL(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SectionType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SectionType.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SectionType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SectionType.java index da968f18..4cb6b30b 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SectionType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SectionType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum SectionType { SECTION_TYPE_UNSPECIFIED(0),// The section type is unspecified. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SpacingRule.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SpacingRule.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SpacingRule.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SpacingRule.java index 097c2d09..36d88339 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/SpacingRule.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/SpacingRule.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum SpacingRule { /** diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TabStopAlignment.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TabStopAlignment.java similarity index 89% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TabStopAlignment.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TabStopAlignment.java index 09cf4d21..19931b17 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TabStopAlignment.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TabStopAlignment.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TabStopAlignment { TAB_STOP_ALIGNMENT_UNSPECIFIED(0),// The tab stop alignment is unspecified. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableAlignmentType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableAlignmentType.java similarity index 79% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableAlignmentType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableAlignmentType.java index 85928c69..4fa62ffb 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableAlignmentType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableAlignmentType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TableAlignmentType { START(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableLayoutType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableLayoutType.java similarity index 78% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableLayoutType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableLayoutType.java index de350dde..1726fb5f 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableLayoutType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableLayoutType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TableLayoutType { AUTO_FIT(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableRowHeightRule.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableRowHeightRule.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableRowHeightRule.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableRowHeightRule.java index dbf3f687..8446f7ce 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableRowHeightRule.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableRowHeightRule.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TableRowHeightRule { AUTO(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableSizeType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableSizeType.java similarity index 78% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableSizeType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableSizeType.java index b419738d..31c1da61 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableSizeType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableSizeType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TableSizeType { UNSPECIFIED(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableTextWrapType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableTextWrapType.java similarity index 78% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableTextWrapType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableTextWrapType.java index a2609972..69982317 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TableTextWrapType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TableTextWrapType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TableTextWrapType { NONE(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDecoration.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDecoration.java similarity index 91% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDecoration.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDecoration.java index 3b94c913..db952646 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDecoration.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDecoration.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TextDecoration { DASH(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirection.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirection.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirection.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirection.java index 3dc80831..a1b1b211 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirection.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirection.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TextDirection { UNSPECIFIED(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirectionType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirectionType.java similarity index 82% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirectionType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirectionType.java index bbfaf930..f0a31b3e 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/TextDirectionType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/TextDirectionType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum TextDirectionType { NORMAL(0),// Horizontal diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ThemeColorType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ThemeColorType.java similarity index 90% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ThemeColorType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ThemeColorType.java index a644584d..0df86802 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/ThemeColorType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/ThemeColorType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum ThemeColorType { /** diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlign.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlign.java similarity index 87% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlign.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlign.java index 205cd68a..22361c0c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlign.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlign.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum VerticalAlign { UNSPECIFIED(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlignmentType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlignmentType.java similarity index 93% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlignmentType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlignmentType.java index 1ddc5171..befe3bec 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/VerticalAlignmentType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/VerticalAlignmentType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum VerticalAlignmentType { CONTENT_ALIGNMENT_UNSPECIFIED(0),// An unspecified content alignment. The content alignment is inherited from the parent if one exists. diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapStrategy.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapStrategy.java similarity index 96% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapStrategy.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapStrategy.java index b24140a2..c5c6784a 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapStrategy.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapStrategy.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum WrapStrategy { UNSPECIFIED(0), diff --git a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapTextType.java b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapTextType.java similarity index 80% rename from io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapTextType.java rename to io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapTextType.java index 6978f3ec..90c9469c 100644 --- a/io.sc.platform.csv/src/main/java/io/sc/platform/excel/univer/model/WrapTextType.java +++ b/io.sc.platform.poi/src/main/java/io/sc/platform/poi/univer/model/WrapTextType.java @@ -1,4 +1,4 @@ -package io.sc.platform.excel.univer.model; +package io.sc.platform.poi.univer.model; public enum WrapTextType { BOTH_SIDES(0), diff --git a/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/components.json b/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/components.json index 53631ccb..12ce75b0 100644 --- a/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/components.json +++ b/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/components.json @@ -9,8 +9,7 @@ { "includes":[ - "io.sc.platform.poi.controller", - "io.sc.platform.poi.service.impl" + ], "excludes":[] } \ No newline at end of file diff --git a/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/security.json b/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/security.json index b4b0d196..ed359a60 100644 --- a/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/security.json +++ b/io.sc.platform.poi/src/main/resources/META-INF/platform/plugins/security.json @@ -1,5 +1,5 @@ { "permitPatterns":[ - "/api/poi/test" + ] } \ No newline at end of file diff --git a/io.sc.platform.scheduler.manager.frontend/package.json b/io.sc.platform.scheduler.manager.frontend/package.json index 412520c2..415beb51 100644 --- a/io.sc.platform.scheduler.manager.frontend/package.json +++ b/io.sc.platform.scheduler.manager.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue index 4d3f74cc..23dd6df5 100644 --- a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue +++ b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue @@ -27,8 +27,6 @@ 'separator', 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { width: 100, name: 'id', label: $t('id'), showIf: false }, diff --git a/io.sc.platform.scheduler.manager.frontend/src/views/task/Task.vue b/io.sc.platform.scheduler.manager.frontend/src/views/task/Task.vue index 9ef70c52..132baa71 100644 --- a/io.sc.platform.scheduler.manager.frontend/src/views/task/Task.vue +++ b/io.sc.platform.scheduler.manager.frontend/src/views/task/Task.vue @@ -74,8 +74,6 @@ }, 'separator', 'view', - 'separator', - 'export', ]" :columns="[ { diff --git a/io.sc.platform.scheduler.manager.frontend/src/views/tasklog/TaskLog.vue b/io.sc.platform.scheduler.manager.frontend/src/views/tasklog/TaskLog.vue index 88b46a57..d83159e7 100644 --- a/io.sc.platform.scheduler.manager.frontend/src/views/tasklog/TaskLog.vue +++ b/io.sc.platform.scheduler.manager.frontend/src/views/tasklog/TaskLog.vue @@ -65,8 +65,6 @@ }, }, 'view', - 'separator', - 'export', ]" :columns="[ { diff --git a/io.sc.platform.security/src/main/java/io/sc/platform/security/handler/PlatformLogoutSuccessHandler.java b/io.sc.platform.security/src/main/java/io/sc/platform/security/handler/PlatformLogoutSuccessHandler.java index a614141a..892e8d5f 100644 --- a/io.sc.platform.security/src/main/java/io/sc/platform/security/handler/PlatformLogoutSuccessHandler.java +++ b/io.sc.platform.security/src/main/java/io/sc/platform/security/handler/PlatformLogoutSuccessHandler.java @@ -3,11 +3,14 @@ package io.sc.platform.security.handler; import io.sc.platform.core.audit.AuditLog; import io.sc.platform.core.enums.AuditLogAction; import io.sc.platform.core.enums.AuditLogStatus; +import io.sc.platform.core.response.ResponseWrapper; +import io.sc.platform.core.response.ResponseWrapperBuilder; import io.sc.platform.core.service.AuditLogPersistenter; import io.sc.platform.core.service.AuditLogPersistenterManager; import io.sc.platform.core.util.IpUtil; import io.sc.platform.security.support.SecurityUser; import io.sc.platform.security.util.SecurityUtil; +import io.sc.platform.util.ObjectMapperUtil; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.logout.LogoutFilter; @@ -15,9 +18,11 @@ import org.springframework.security.web.authentication.logout.LogoutHandler; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.OutputStream; public class PlatformLogoutSuccessHandler implements LogoutSuccessHandler { private AuditLogPersistenterManager auditLogPersistenterManager; @@ -43,6 +48,11 @@ public class PlatformLogoutSuccessHandler implements LogoutSuccessHandler { } auditLog.setIp(IpUtil.getRemoteIp(request)); logger.log(auditLog); + + ResponseWrapper wrapper =ResponseWrapperBuilder.success("https://cn.bing.com/"); + ServletOutputStream outputStream =response.getOutputStream(); + outputStream.print(ObjectMapperUtil.json().writeValueAsString(wrapper)); + outputStream.flush(); } } } diff --git a/io.sc.platform.system.frontend/package.json b/io.sc.platform.system.frontend/package.json index c7143258..608e6a28 100644 --- a/io.sc.platform.system.frontend/package.json +++ b/io.sc.platform.system.frontend/package.json @@ -111,7 +111,7 @@ "mockjs": "1.1.0", "node-sql-parser": "5.3.6", "pinia": "2.3.0", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/controller/UserWebController.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/controller/UserWebController.java index f88e9876..8ce8ffba 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/controller/UserWebController.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/controller/UserWebController.java @@ -30,6 +30,7 @@ import java.security.Principal; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.stream.Stream; @RestController("io.sc.platform.system.user.controller.UserWebController") @RequestMapping("/api/system/user") diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/UserService.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/UserService.java index ccba288e..b16ec7e4 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/UserService.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/UserService.java @@ -221,5 +221,4 @@ public interface UserService extends DaoService listUsersByOrgs(List orgIds) throws Exception; - } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/impl/UserServiceImpl.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/impl/UserServiceImpl.java index c88a3191..1c1bad25 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/impl/UserServiceImpl.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/user/service/impl/UserServiceImpl.java @@ -1,6 +1,5 @@ package io.sc.platform.system.user.service.impl; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import io.sc.platform.jdbc.util.SqlBatcher; import io.sc.platform.mvc.plugins.PluginManager; @@ -10,7 +9,6 @@ import io.sc.platform.orm.api.exception.UserRawPasswordNotMatchException; import io.sc.platform.orm.service.impl.DaoServiceImpl; import io.sc.platform.orm.service.support.QueryParameter; import io.sc.platform.orm.service.support.QueryResult; -import io.sc.platform.orm.service.support.criteria.Criteria; import io.sc.platform.orm.util.EntityVoUtil; import io.sc.platform.security.SecurityProperties; import io.sc.platform.security.util.SecurityUtil; @@ -30,7 +28,6 @@ import io.sc.platform.system.user.jpa.entity.UserEntity; import io.sc.platform.system.user.jpa.repository.UserRepository; import io.sc.platform.system.user.service.UserService; import io.sc.platform.system.user.service.support.UserSession; -import io.sc.platform.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.data.domain.Page; @@ -42,14 +39,14 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import javax.persistence.criteria.*; +import javax.persistence.criteria.Join; +import javax.persistence.criteria.Subquery; import javax.servlet.http.HttpServletRequest; import javax.transaction.Transactional; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*; -import java.util.stream.Collectors; @Service("io.sc.platform.system.user.service.impl.UserServiceImpl") public class UserServiceImpl extends DaoServiceImpl implements UserService { diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/announcement/jpa/entity/AnnouncementEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/announcement/jpa/entity/AnnouncementEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..847a97fd66351c8abaec3ae18a77530be79bfe4f GIT binary patch literal 12008 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/corporation/jpa/entity/CorporationEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/corporation/jpa/entity/CorporationEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b217bfc37304c5f85c74cd421e525a008fa843e6 GIT binary patch literal 12054 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 PuR+v-V>OTZS?~V<@z}UY literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/department/jpa/entity/DepartmentEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/department/jpa/entity/DepartmentEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9812d93d207ff89b779c9652ad11a966f9600540 GIT binary patch literal 12061 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 ZoIj>yB_MwVKui!!5Ov^O{X+Gu_kTae!BzkO literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/desensitizer/jpa/entity/DesensitizeFieldEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/desensitizer/jpa/entity/DesensitizeFieldEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..67b52a999a6f86f354f502ef028c5a3d40646c7f GIT binary patch literal 11999 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/ds/jpa/entity/DsEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/ds/jpa/entity/DsEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0048cdb19141a8fce09a9fc2db0632a55608633b GIT binary patch literal 12031 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/i18n/jpa/entity/I18nEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/i18n/jpa/entity/I18nEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..657b8f9ed6dd974e0f8a10af0a282897001b3f15 GIT binary patch literal 12034 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 m8Yw#1+Bq^P0>#jQH(-8=HFGRh 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/notification/jap/entity/NotificationEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/notification/jap/entity/NotificationEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1e506bcba57573e0c5f8faf5f6dad1149b1858d7 GIT binary patch literal 12095 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/parameter/jpa/entity/ParameterEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/parameter/jpa/entity/ParameterEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d0b6556f2743215e34b3d0a3e23e5e21d468524d GIT binary patch literal 12050 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 Hp8xxQ%wV*_ literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/role/jpa/entity/RoleEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b5b1f8dda47a6aa4096edc22a65ebffa96730f79 GIT binary patch literal 12118 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.system/src/main/resources/io/sc/platform/system/user/jpa/entity/UserEntity.xlsx b/io.sc.platform.system/src/main/resources/io/sc/platform/system/user/jpa/entity/UserEntity.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..967a897219bc93f256c59680dbf20ec99d9182be GIT binary patch literal 12500 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 literal 0 HcmV?d00001 diff --git a/io.sc.platform.util/src/main/java/io/sc/platform/util/ByteUtil.java b/io.sc.platform.util/src/main/java/io/sc/platform/util/ByteUtil.java index c4e279cc..48c2b5cb 100644 --- a/io.sc.platform.util/src/main/java/io/sc/platform/util/ByteUtil.java +++ b/io.sc.platform.util/src/main/java/io/sc/platform/util/ByteUtil.java @@ -1,5 +1,8 @@ package io.sc.platform.util; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.nio.ByteBuffer; /** @@ -99,4 +102,20 @@ public class ByteUtil { public static Long bytes2Long(byte[] bs){ return ByteBuffer.wrap(bs).getLong(); } + + /** + * 从输入流中读取字节数组 + * @param inputStream 输入流 + * @return 字节数组 + * @throws IOException 违例 + */ + public static byte[] read(InputStream inputStream) throws IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int length; + while ((length = inputStream.read(buffer)) != -1) { + byteArrayOutputStream.write(buffer, 0, length); + } + return byteArrayOutputStream.toByteArray(); + } } diff --git a/io.sc.standard.frontend/package.json b/io.sc.standard.frontend/package.json index f60c23ef..8712bd68 100644 --- a/io.sc.standard.frontend/package.json +++ b/io.sc.standard.frontend/package.json @@ -112,7 +112,7 @@ "node-sql-parser": "5.3.6", "pinia": "2.3.0", "pinia-undo": "0.2.4", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7", diff --git a/io.sc.website/package.json b/io.sc.website/package.json index dae48b74..010cf05b 100644 --- a/io.sc.website/package.json +++ b/io.sc.website/package.json @@ -28,6 +28,6 @@ }, "dependencies": { "vue": "3.5.13", - "platform-core": "8.2.110" + "platform-core": "8.2.115" } } \ No newline at end of file diff --git a/wra.report.frontend/package.json b/wra.report.frontend/package.json index cfcfb398..e5d7328d 100644 --- a/wra.report.frontend/package.json +++ b/wra.report.frontend/package.json @@ -111,7 +111,7 @@ "mockjs": "1.1.0", "node-sql-parser": "5.3.6", "pinia": "2.3.0", - "platform-core": "8.2.110", + "platform-core": "8.2.115", "quasar": "2.17.6", "sort-array": "5.0.0", "svg-path-commander": "2.1.7",