From d26afb5fec379cf742088b60639f6ce458703662 Mon Sep 17 00:00:00 2001 From: oneao Date: Mon, 14 Sep 2026 22:49:48 +0800 Subject: [PATCH] 20260914224947 --- code/fms/FMS业务表设计.md | 10 +- code/fms/FMS新系统核心表结构设计.md | 27 +- .../tools/VerifyBusinessMigration.java | 2 +- .../cn/g3soft/fmsapi/service/FileService.java | 3 +- .../cn/g3soft/fmsapi/FmsApiApplication.class | Bin 1180 -> 0 bytes .../g3soft/fmsapi/config/AuthProperties.class | Bin 1138 -> 0 bytes .../config/FileStorageProperties$Local.class | Bin 963 -> 0 bytes .../config/FileStorageProperties$Oss.class | Bin 743 -> 0 bytes .../fmsapi/config/FileStorageProperties.class | Bin 1735 -> 0 bytes .../g3soft/fmsapi/config/JacksonConfig.class | Bin 1127 -> 0 bytes .../g3soft/fmsapi/config/JwtAuthFilter.class | Bin 4636 -> 0 bytes .../fmsapi/controller/AuthController.class | Bin 2830 -> 0 bytes .../fmsapi/controller/DataController.class | Bin 4813 -> 0 bytes .../fmsapi/controller/FileController.class | Bin 6664 -> 0 bytes .../g3soft/fmsapi/database/OrgContext.class | Bin 1748 -> 0 bytes .../database/OrgDataSourceFactory.class | Bin 5023 -> 0 bytes .../OrgDataSourceManager$PoolEntry.class | Bin 1425 -> 0 bytes .../database/OrgDataSourceManager.class | Bin 8790 -> 0 bytes .../fmsapi/database/OrgDatabaseConfig.class | Bin 1696 -> 0 bytes .../database/OrgDatabaseConfigLoader.class | Bin 6471 -> 0 bytes .../database/OrgDatabaseConfigWatcher.class | Bin 7022 -> 0 bytes .../database/OrgDatabaseProperties$Pool.class | Bin 3040 -> 0 bytes .../database/OrgDatabaseProperties.class | Bin 1979 -> 0 bytes .../database/OrgRoutingDataSource.class | Bin 1348 -> 0 bytes .../exception/AuthenticationException.class | Bin 470 -> 0 bytes .../fmsapi/exception/BusinessException.class | Bin 434 -> 0 bytes .../exception/GlobalExceptionHandler.class | Bin 5196 -> 0 bytes .../exception/SaveObjectException.class | Bin 1270 -> 0 bytes .../ActiveSessionRegistry$AccountKey.class | Bin 1595 -> 0 bytes .../service/ActiveSessionRegistry.class | Bin 1797 -> 0 bytes .../g3soft/fmsapi/service/AuthService.class | Bin 5495 -> 0 bytes .../DataSaveService$AutoCodeFormat.class | Bin 1845 -> 0 bytes .../DataSaveService$AutoCodeRule.class | Bin 2742 -> 0 bytes .../DataSaveService$CodeCandidate.class | Bin 1563 -> 0 bytes .../fmsapi/service/DataSaveService.class | Bin 21592 -> 0 bytes .../g3soft/fmsapi/service/DataService.class | Bin 4999 -> 0 bytes .../g3soft/fmsapi/service/FileService.class | Bin 14058 -> 0 bytes .../fmsapi/service/LoginLogService.class | Bin 4143 -> 0 bytes .../cn/g3soft/fmsapi/utils/ApiResponse.class | Bin 3022 -> 0 bytes .../cn/g3soft/fmsapi/utils/ClientInfo.class | Bin 2177 -> 0 bytes .../fmsapi/utils/ClientInfoExtractor.class | Bin 4517 -> 0 bytes .../fmsapi/utils/DbUtils$ColumnMetadata.class | Bin 2005 -> 0 bytes .../fmsapi/utils/DbUtils$PageResult.class | Bin 2005 -> 0 bytes .../fmsapi/utils/DbUtils$TableMetadata.class | Bin 2189 -> 0 bytes .../cn/g3soft/fmsapi/utils/DbUtils.class | Bin 28721 -> 0 bytes .../fmsapi/utils/IpRegionSearcher.class | Bin 4145 -> 0 bytes .../cn/g3soft/fmsapi/utils/IpUtils.class | Bin 1483 -> 0 bytes .../fmsapi/utils/JwtUtils$TokenClaims.class | Bin 1642 -> 0 bytes .../cn/g3soft/fmsapi/utils/JwtUtils.class | Bin 4694 -> 0 bytes .../cn/g3soft/fmsapi/utils/ParamUtils.class | Bin 3404 -> 0 bytes .../cn/g3soft/fmsapi/utils/StringUtils.class | Bin 535 -> 0 bytes .../g3soft/fmsapi/utils/UuidV7Generator.class | Bin 883 -> 0 bytes .../snowflake/contract/IIdGenerator.class | Bin 262 -> 0 bytes .../snowflake/contract/ISnowWorker.class | Bin 259 -> 0 bytes .../contract/IdGeneratorException.class | Bin 1157 -> 0 bytes .../contract/IdGeneratorOptions.class | Bin 935 -> 0 bytes .../contract/OverCostActionArg.class | Bin 901 -> 0 bytes .../utils/snowflake/core/SnowWorkerM1.class | Bin 4383 -> 0 bytes .../utils/snowflake/core/SnowWorkerM2.class | Bin 1476 -> 0 bytes .../snowflake/idgen/DefaultIdGenerator.class | Bin 3116 -> 0 bytes .../utils/snowflake/idgen/IdGenerator.class | Bin 1346 -> 0 bytes .../tools/migration/rename-impact-out.txt | 29 + .../fms-file/composables/useFileCategory.js | 8 +- .../src/views/base/othercompany/index.vue | 4 +- .../fms-vue/tests/views/othercompany.spec.js | 12 +- code/fms/sql/fms_business_othercompany.sql | 12 +- code/fms/sql/fms_files.sql | 70 ++ .../sql/fms_rename_othercompany_category.sql | 18 + code/fms/test.html | 971 ------------------ 69 files changed, 158 insertions(+), 1008 deletions(-) delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/FmsApiApplication.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/AuthProperties.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Local.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Oss.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JacksonConfig.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JwtAuthFilter.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/AuthController.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/DataController.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/FileController.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgContext.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDataSourceFactory.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDataSourceManager$PoolEntry.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDataSourceManager.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfig.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfigLoader.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfigWatcher.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseProperties$Pool.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseProperties.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgRoutingDataSource.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/AuthenticationException.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/BusinessException.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/GlobalExceptionHandler.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/SaveObjectException.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry$AccountKey.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/AuthService.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService$AutoCodeFormat.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService$AutoCodeRule.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService$CodeCandidate.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataService.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/FileService.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/LoginLogService.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ApiResponse.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ClientInfo.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ClientInfoExtractor.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$ColumnMetadata.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$PageResult.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$TableMetadata.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpRegionSearcher.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpUtils.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils$TokenClaims.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ParamUtils.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/StringUtils.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/UuidV7Generator.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IIdGenerator.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/ISnowWorker.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IdGeneratorException.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IdGeneratorOptions.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/OverCostActionArg.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM1.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM2.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/DefaultIdGenerator.class delete mode 100644 code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/IdGenerator.class create mode 100644 code/fms/fms-api/tools/migration/rename-impact-out.txt create mode 100644 code/fms/sql/fms_files.sql create mode 100644 code/fms/sql/fms_rename_othercompany_category.sql delete mode 100644 code/fms/test.html diff --git a/code/fms/FMS业务表设计.md b/code/fms/FMS业务表设计.md index f0290fe7..ff73ee5b 100644 --- a/code/fms/FMS业务表设计.md +++ b/code/fms/FMS业务表设计.md @@ -73,7 +73,7 @@ create table dbo.b_othercompany_partner_type ( b_updated_at datetime2 null ); -create table dbo.b_othercompany_bmfl ( +create table dbo.b_othercompany_category ( b_id varchar(150) not null primary key, b_parent_id varchar(150) null, b_depth int not null default 0, @@ -88,10 +88,10 @@ create table dbo.b_othercompany_bmfl ( b_updated_at datetime2 null ); -create index ix_b_othercompany_bmfl_parent - on dbo.b_othercompany_bmfl (b_parent_id, b_canuse, b_depth, b_xh, b_id); -create index ix_b_othercompany_bmfl_path - on dbo.b_othercompany_bmfl (b_path, b_canuse, b_id); +create index ix_b_othercompany_category_parent + on dbo.b_othercompany_category (b_parent_id, b_canuse, b_depth, b_xh, b_id); +create index ix_b_othercompany_category_path + on dbo.b_othercompany_category (b_path, b_canuse, b_id); -- 注:b_grade 由「其他数据」迁移重建为雪花主键(原为级别编码) create table dbo.b_grade ( diff --git a/code/fms/FMS新系统核心表结构设计.md b/code/fms/FMS新系统核心表结构设计.md index 2fb687c9..c62b32db 100644 --- a/code/fms/FMS新系统核心表结构设计.md +++ b/code/fms/FMS新系统核心表结构设计.md @@ -993,7 +993,7 @@ create table dbo.bf_files ( mx_fileext varchar(50) null, -- 扩展名(小写、不含点) mx_mapfilename nvarchar(500) null, -- 访问地址:本地为 {url-prefix}/{org}/{yyyy}/{MM}/{dd}/{uuid}.{ext},OSS 为完整 URL mx_moduleid varchar(50) null, -- 业务模块编码(s_module.b_id) - mx_cate_id varchar(50) null, -- 文件分类(bf_files_cateid.b_id) + mx_cate_id bigint null, -- 文件分类(bf_files_category.b_id,雪花主键) mx_xh int not null default 0, -- 排序号(保留;当前实现固定 0,列表按 subid 倒序) mx_sh tinyint not null default 0, -- 审核标识(保留;当前实现固定 0) mx_shuser_id varchar(50) null, -- 审核人(保留) @@ -1011,19 +1011,24 @@ create table dbo.bf_files ( create index ix_bf_files_host on dbo.bf_files (father, mx_moduleid, mx_cate_id, mx_xh, subid); --- 文件分类表 -create table dbo.bf_files_cateid ( - b_id varchar(50) not null primary key, -- 分类编码 - b_name nvarchar(50) null, -- 分类名称 - b_files_type varchar(50) null, -- 允许的扩展名(逗号分隔,空 = 不限;保留) +-- 文件分类表(按模块划分;b_module_id 为空表示跨模块通用分类) +create table dbo.bf_files_category ( + b_id bigint not null primary key, -- 主键(雪花,新增行由前端 nextIdApi 生成) + b_module_id varchar(50) null, -- 归属模块(s_module.b_id);NULL = 通用分类 + b_name nvarchar(50) not null, -- 分类名称 + b_i18n varchar(150) null, -- 多语言资源键(s_i18n.b_key) + b_files_type varchar(50) null, -- 允许的扩展名(逗号分隔,空 = 不限;预留) b_xh int not null default 0, -- 显示顺序 b_canuse tinyint not null default 1, -- 是否启用(0/1) b_bz nvarchar(200) null, -- 备注 - b_inputuser_id varchar(50) null, -- 创建人 - b_inputdatetime datetime2 null, -- 创建时间 - b_updateuser_id varchar(50) null, -- 最后修改人 - b_updatedatetime datetime2 null -- 最后修改时间 + b_created_by varchar(50) null, -- 创建人(用户账号) + b_created_at datetime2 null, -- 创建时间 + b_updated_by varchar(50) null, -- 最后修改人 + b_updated_at datetime2 null -- 最后修改时间 ); + +create index ix_bf_files_category_module + on dbo.bf_files_category (b_module_id, b_canuse, b_xh, b_id); ``` 要点: @@ -1032,6 +1037,8 @@ create table dbo.bf_files_cateid ( - **宿主关联**:`father` 存宿主业务主键(业务表 `b_id`,bigint 雪花),不建外键;删除业务数据时由业务层级联清理附件(先删存储、后删行)。 - **存储地址**:`mx_mapfilename` 即访问地址,前端预览 / 下载直接使用。本地模式写入 `{fms.file.local.url-prefix}/{orgId}/{yyyy}/{MM}/{dd}/{uuid}.{ext}`,物理文件落在 `{fms.file.local.storage-dir}` 下的同路径;OSS 模式写入 g3oss 返回的完整 URL。 - **保留字段**:`mx_sh*`(审核)、`mx_cut*`(缩略图)、`mx_orderid`、`mx_bz`、`mx_xh` 沿用旧库结构,当前实现未使用(写 0 / 空值),保留以兼容历史数据迁移。 +- **分类归属模块**:`bf_files_category.b_module_id` 指定分类所属模块,不填(NULL)为跨模块通用分类;分类树按当前模块过滤(`b_module_id IS NULL OR b_module_id = 当前模块`)。分类主键与 `bf_files.mx_cate_id` 类型保持一致(bigint 雪花)。 +- **风格**:分类表按新版字典表风格(应用层雪花主键、`b_created_*` 审计列、`b_canuse tinyint`);`bf_files` 的 `subid` / `father` / `mx_*` 列名已被前后端实现引用,保持现状。表名 `bf_*` 属于"明确的业务域前缀",符合第 1 节表名规范。 - **旧库遗留**:`bf_files_type`(模块文件类型 / 数量配置)在旧库存在,但新旧系统均未使用,不迁移。 存储配置(`application.yaml`): diff --git a/code/fms/fms-api/config/migrations/tools/VerifyBusinessMigration.java b/code/fms/fms-api/config/migrations/tools/VerifyBusinessMigration.java index 565eb37e..520c45a2 100644 --- a/code/fms/fms-api/config/migrations/tools/VerifyBusinessMigration.java +++ b/code/fms/fms-api/config/migrations/tools/VerifyBusinessMigration.java @@ -88,7 +88,7 @@ public final class VerifyBusinessMigration { } private static void verifyCoreTables(Connection connection) throws Exception { - for (String table : List.of("b_othercompany", "b_contact", "b_othercompany_bmfl")) { + for (String table : List.of("b_othercompany", "b_contact", "b_othercompany_category")) { if (!tableExists(connection, table)) { throw new IllegalStateException("Missing core business table: dbo." + table); } diff --git a/code/fms/fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java b/code/fms/fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java index 39c6f805..7c657118 100644 --- a/code/fms/fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java +++ b/code/fms/fms-api/src/main/java/cn/g3soft/fmsapi/service/FileService.java @@ -140,7 +140,8 @@ public class FileService { ps.setString(6, mapfilename); // 字符串业务键:模块编码 / 分类编码 / 用户账号均按字符串存储 ps.setString(7, moduleId); - ps.setString(8, cateId); + // 分类主键为 bigint 雪花(bf_files_category.b_id),按数字写入 + ps.setObject(8, toLongOrNull(cateId)); ps.setString(9, userId); ps.executeUpdate(); } diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/FmsApiApplication.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/FmsApiApplication.class deleted file mode 100644 index 559592fc1d10ba182134a3959bfab6def5e4727f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcmbtTZBG+H5PlX4*Pi9A)hfP=sHLcv=*JS0N`fJ&LaZq<#t+-;_E@;?UiS9HzvTx5 z(ZnC%k2204C{3s###}OUGrK#_%ri4Tet!K9poJ$MCK#4N6-3WdJ+Q%GnDRsho5Qq~ z$X1fXGUQfj<)OeZzt2DNAm%CxwtM>`v<%a0Qc1hcFj-&eG88s+U-+0rsf;O1Gt9N6 z60fsiPnfs77Yl|;TZcUEawDC6>MYnjnKCT5FV3V%C_^q4L#_V4eU?$j8mXe@O4q{z z!`it(nU!%Gq)HzSVtyckP%CSAXoIc(OQD3}R-5g_)tdU4N2x^Oav4`pV<_%wb0ExC zpMiCJT*Gw_iww^$1d;tns8NJ6Zr~=vY%1&sE<>w+zVv^{n9BBX8+Se2VQ6R*1!>~w z7#Kbjhm?HK)7l1|+&R+LGVWoCnrAZNvsWLXb0g+y+8jr4dt7+Orubxo4Xp+;%8cvn z2oAa3vFjZ-5p}vcCNhJkPa43m{(p4PtiBR68(ZWA0dIN-}-xi-wY;3C&E}M z(lavMRPOxocS5e3)Hv!JEio`bf3$2QJ+cDQjPz9F2*uC&u}{(+1DEIn$|n~{&yZEZ zEaoVPd;Ed)1nI?Zn16RfySiHVg6irqu2xv%7`JxM0@er<^t4EiXJ}UzP@%=B<^Z*m jAh?fZx>KaH2Y5)JkI0&0BX`k#>(vN{($v#Wj diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/AuthProperties.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/AuthProperties.class deleted file mode 100644 index 22cfa4af821d08f9fb41cd61b5669da4e3f6fa59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcma)4TW=CU6#j-gbW0H^y=lGIg=+V~M@wS6r*p9}zi+BQc)e!~>lAQ0@kQV& zAw7ojG)RdNcV3LAUJ6S+7oJeZ3~{^KVo03GOP)g<>lU)eB?+*8wsW|FQW`~SW_m4^ zu~5b)Lt1uU$#D=eY}sekRqe8%I}2%K7&aQh<8Q{JHV@vp?IG7=$c{T~xq;Aji( zpo(_m|LCHLtR7cqb8^ad1jW!7(W8Ofwva@M;=`r*P5W;)H8X|RT=nJUxf{46uDBkv zFzvL+a^-ioC4vZ5VcKOeb}Q<%9IAWen#5y=zZ9C5(y}0qH2(}c7h_K+wnQk1t-9w) zW&SkbI&H|H=Y+miLRZ7RlEHhYEv3>LQ+%QveJ#Kt&IFv6s}SEWD>S%&6_eABq%&j z1$M}1O;fOoJ+c^X;#O47pv`fwQ c{((ueJ;RhH95FmHtBoq{Yjjzo?=ZyUU(iVGw*UYD diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Local.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Local.class deleted file mode 100644 index 5ac35469155427a55c1be7368e0f2ad6f26dc094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmbV~+fEcg5QhKS)3D;xRW(0r`uK!T|69FajN1(=R=jo zuT&=cP8*TRp3$e$I3?|RS0^G1P$RTX#0L>)B2VLYgAO1 zI%$|O;#%+j48Z5S9U<^JBhGpLz;o>Du}P%g0Q;0KV#^Pg1K;GiG<%t_R@wj$2%G;j z21313qZom*!`xK+xuGR^d)l<7`6)5X$Hzgjn)Bpeg diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Oss.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties$Oss.class deleted file mode 100644 index aba3549e123b740a4e5dfa9c9a74a90380e81115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmb7B*-jKe6g{_RgQgW2Sro;DgognF9WzfvB|#FGWLT0B-fMd9G(~#4NLAr?NdhtP z!4L4GjJF0NAiVH$x4O$Yr+)wW`3t}{UN;aC-ehH(x1AaIbTD-4RHvCK2Rctb>Vmu8 zSe5gEHK%O7X1BcWTmx0Y)QS40(n6Jay5BqD%oE1)wsG#z7KCQ!=DF*wF7vm9`a4}} zzeT9DR*neO9n(V2m)?(IxMl4SQ_As$RiijmcDTq^u74b+PJ?wIj4Uj|MIn zCUW+l{=uASt=tDX4#KkpHPofu-EN<4-R}-ergqsMoBn~aYRI0gpo_ca%w`-kBrH5A z{JV z_}c0Z#OD%3NW|7h#Z5esIJs)TQ%p)G3^6VC?(hYg-~Sta|KRWpX5~Z}-Vz^)udl9M zqIq*V9#yvm?T68ZxvQ@0^8s4mL70=-8c7l;&5Moj952Mj@+dmvm7G}|)ffH(N}HY3 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/FileStorageProperties.class deleted file mode 100644 index 7ca39c05603da81496219eb414d38f38e7efad57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1735 zcmbW1YflqF6o%jFm6l>lp~yuP5VaIxMFdPVB!p;UQZ5Q1@#D5k%VN9R>`WE^l_nAr zP5c4=DC0ZZT1Y7$%7@OGJv--}XV0a7{{H+8U<(^@ganq#u2o%CUPW7#y0RONRrcJ9 zQ?=eYHF=;t->%Ai-)l%;J5t3F5y+g{pKYsVyH#tibSleQU{JMA9)4{|fo$>e#DVr5 zxB5yTTJy?wO<=9q*NyW<6UO+krPGJzK zIEE>F3#ueCNGBjLnnD}{af}J9^ru6j5USnH{N5yyJb_ zx9d_%pL_$nEvTWu2Jh)FJ^zb8K!CQ$%lxf03|)*UOgMY6Z;*B$5hD;-?-#9q3LR;E{`1Lu;^Q^>uFm%o=g5WMbEEVs$oW}Vp9FZ^FLW7 z&(mglwLH^SqcgMCb}-OQKZw4ZWiuBIUsjwm7KyXJTnV63?_5{<+cjG$$*ZF6w1bSslo;B6n-J|@dDX% zjBuOd_U<{xzX!pST(gL9jd4vNO|ePtr|2 zX2~>n1C!~94pV|m5iD^HVVPM1+eF|Qe=7>lu}VjluQGJJU<2f6*J#)2j|KkRKQ>l^ AXaE2J diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JacksonConfig.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JacksonConfig.class deleted file mode 100644 index 37408c3ffa9bf87e0e6380b099063fca968c581d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmb7DT~8B16g^W4rL}xjKEy9XMOvUt42dsmOpxecWvf-m>Z-MROiJ9p3h`Rm&c0K3>Op}?>fXddlY({sGnx8hjw!04We z_zMvnS)=!|sDvWJ?4fuscr0|p_q&HOa10ZVl~(Qv!&tr1VJPmIP*yO8auws4V3_fh zmahi=u1wmZ8%u_oZvqi_M55C8>|@crQ+^L#>CelyTc^<_s{Ma}GLZJcn*XzHcunr^$o@TtCxo48%VEry39=&ek+bs=w?9H=E}_ObdTlPXqlhhb7_>x2$yggc`K zI2y!D`@UPnJ=|xQ5@9&RXNWGoV=orgdZQRRA|A+Lt@mI5vW#UssA3&;5@Gw`^)rUK z3lq$lNv^pL7`8@r@o%A2T4s<0^0~?s{MTk|r@w>Y(Pib5@6#a3bmn0dv^%tpK!HxQ zGh|B?aq^7(_{J$Fzhu`HvgtKY#uc*FJc0ZaMI;Q&5XkIV)*Sg1NDzF1{OWhq4r=qK zSoAk*%O|+;6{~MIPq6mq_?eOlNJ(lalAWUSH0B9(g+Non#T@92u!1EtutCHHY-Y7v I=j2V`H)cvS*8l(j diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JwtAuthFilter.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/config/JwtAuthFilter.class deleted file mode 100644 index 95fc0f2f6da35f114ee2dab16ae18f003b22177b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4636 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 Robhp`I5#<;rM7?(>u<35KGOgI diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/DataController.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/DataController.class deleted file mode 100644 index 25c4e52f368454fd42b7ba7226a28a4bfc6cd5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4813 zcmbtWYjYb{8Gep#D=QmclqTRdA&Hx&j-7U)ZQNixrp~3oLAFynRhksHtfaNFw!EvX zR!&@?7urH8&>K)%ptJ>M_{0p%FsTDGP`>bi-$D7rPXN;A9Id34tQ3)s$J#xYeJ{`Z zyqCZK_m6)DFpXbohzN}29iw=E#a;G|<+X}gwvD{&_?}xTS)Osy^vx5ErG}V5|BAV8 z8YR;y8uPgoEAIRQh7&Y84LAf0jZW+`iWwp<6BG5?ZHV-IgteNzmnJXvzh zf<#u}$T0mRoK@d08M9`2;?P!6@~mP^muN38S+t9e=~q2^@ar~RlQq>Ul8e4)JH?66PA#?*Q(ajUh*Dl;?1~>=)2l8uO;H;m z$+%w8sFbBa%bvMrU2(lt@g&~k{$v>tqePB zN_oEJwNR~lg$vf@s#WoiyM+xIMvqI|vkFmW6M7(Ur;a!hDcps-H5?Q;&`l!fxDCSs z``e;J+?&jhm`DCsxTR5WQ9^5OSRjT>CRUt=@2J%CR+f``kXre4}ql~_g zNs_DryIQkiqg>C7Bdu4vWB{wntmR*F3ynxo>-KuO9N$>HToUMQ1UR=r#!I*#)bW4> zF;+H6!KqZ`F%#^o7CBx^_V&b&nw(adRua%##y3(iEuYL6LyE1KNWjf3WoC&`8elf%zRLDlwAlX-hG7jFM^L`P_mScIQ?|M2GP*e^6ObRwuHLS39C?}Lr z8P_T5C}E9$tJX2UEGcy+Y`DBLp~2-r)B9=9GdE+|Xf; z33(ID7GYe2Em;A+tK(_BEO1vCq2PRGOAnN2e_zKBBw1n=`zcFqyei4~ngqH2K`ZOt zXklI5GZpr;e#?O; z!aoi>Txnd%XHxC5u($0cx#m#K-|f6%@G1C=k9>gM->Xmh`6~qgJ2Ajtd6gHC#tuFO z=cAoG-^KSBSD(Qk-y*nODemRY9sJ+@I79_|@Hw7weizuw|9ux}u2j09%;m|*A22j} z4F@)H=y%+YqN#ho(!Gl}r3E$J^3A~KDe4PqSK1|a?&Hq=e2)t*q=^r7ZQ_wGO&sfB z;_#<2@n}aAzt{oA@h(lA=wPDpX-u5LmpTOcp$;Za-^9cVL7@8>=;I9Z$@CeqiA*!r zDHY!_lJ&umrG1Tf_hBAqTjDKu9%;sVUd4NXV8#O?E_Sf*Txa{l9i*Jhm!;UT(Z6Bu zX!_CXI3K}<@z`In^fr12V;^E^?w)IS^4RX!udsa+`AuAsIR6RGg%403k4MK6zrk&T z@!HXKT#n%U3kk6^vHSfS|B~B^*)hfJ5hf!rNuQ4~H>NOzhj2Hh$>tLn$4RbEVUEx9 zIIYl_BK$P2fyPq6{s;?f7FQ@|58b|s4Z1OoJMk2;ic|LO_&QG$Dobh^B)^ndQoHpH z-ufmb??&w37!tiV&jN`uGW{??3ox+7gXVg1Zauo)}DA$M@J}-a~pY5xtIABKQ!mOLzwpEg%o6 z$~Q|l<~Y{Qv*e$}C`-;5776t^uCgI;vkh>w0k|5!c@94$xILIvFh?mPpFD1COvmf(Jg1Z-y|6o+Z>*59u)Zvv&g)lF)RIE2U;@hdH{-iU$Bu!K$(|{_f z>9>gSHT*PyCR|yULYX$uaDO0hzgb!3PFrP-;2jzs!7o(Sr1|zP*YDByTETz+V?C08 A=l}o! diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/FileController.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/controller/FileController.class deleted file mode 100644 index cd9ccdb55e9203775ff756f4f91def5402214568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6664 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 Hv_1VSPykeB diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgContext.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgContext.class deleted file mode 100644 index b441b83ed694f0784e9ab0d38ae12e6f26d6f49f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1748 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 ph+oYs^Z~^gQ=Q1QD04H;|HZ1BZm9T(9g& zmw_!aTz7V)^H#bGYE}3_q}dp{b>&q#ft-36N?&oIf|}>>1!IbVU(sxyd%maU8Md$7 z!hg|TE^IL*76Vsi5yuS+oyal7^M$Q6ZZb?UkoO0mHC`Yp}F8Y9Wb~_U>6oqeFZ5Eo6{o=qh@?T&>qiGTaoU zDkaPn14mT1MCj@B>BofH@kr{Y?bWzsuSopv6{&UtcU^>{CY1~+pPesUeU-QlZnxGg zJCtpbdFAQ8`Y&4i89fmO>y7WraIq?)NJeQqWSD7Nsijed%-JtQ<5`uFdL2Xxvm|w# z{>ub%dIsd>^aRMh(E6J*O^Iw0F&f}?dUw(3J)M(e$LwQt+b8JR{(@V_xYNL0d$NHM zd#XWqqYaE7QdA5R^d2zz52)5hs&a@ve8M0;V-!btK=(G?P)6iYAgevih#60FiWyI{ zic>7m88;NtU!z|@Ys3q$%Wty zHTSo2?5y(mhjW#`UjiOFRdt>^)6+=V!!62XP47Rb!Jj5WuQ{jAluDUd(Yg{gNuwqc X$FwOvLt20&(|XL}5%HWe-)H{-KT|#G diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDataSourceManager.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDataSourceManager.class deleted file mode 100644 index 3c37140044e73265223370420ddfd8c0172cf0b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8790 zcmbtZ3wRUPmHw|RYixNEJBAoc3>ad-PZWsT1Pf@4fnrxS1QQbod5op8Ei7x4(TGRW zwB0mq*|tfx86J^I#<&wd?1w-{Cs5Lg>eM@DbX8Y5O@WFo6&l97aFX~SApkL)x@ zxAJ+=$eD4yUrTGFx~U*2P;*c_q(xF%dNi_g_@ExQ1jc6zB-a3N*#+#W^dPio}g{JZGAE+KTjekNsMPiz)|`qiM~`nYw^Ek0l$OIkrxN zmYGbCMq^iZvZh^zk=mBF%%joGRNy*Ox00rwkfS{*BdePNk+~HajF0JwTuM)DJEF&P zmSGO+=AmRBG|np=hhf;~n;52GG8C|Dw}XeM#oy;U?|Dd{k(TMnTFRyF%< z-ILO?*=Wmb-c>?ixr%ax1gc}nv_6oV7}m`_8WFUK8rM=onwgZ}-NDdCTf;EQ(4=A| z>J+RNSbYV)?$EMh<|dIdp@4W8 z5v)^ilfbe$w=Xa)t71KF7HH%agCsrAVsA8yk^*mm5;Zj%#S%VyF?==r^(J&MmRHF%i*H$zevPNW#n|6Ojy^GqP1a7FS25 zN>LTp;My=Y;XMk-xph~J1vC9l#chm{xHfH=6WsLuI-_B)Z9pIUJk^Q;(H*L#5^LRCmb@-ne=0O4oOZdGs-h3?qbm@^ zOwQ7KN4kfz47}9RkF^udqi?&dtCTPNM-}u7++&kh#*`6_`F`b4z=Evb3rx3FB zs`9E&-!Nj>tKv@VW85uV!+{a&kfDhOYm=-gM(Z zON);)7}^0PqhoemYS2D#q$1vzc-_L%ohQXr|~R%{4k91{vsjK%W82~7FAD`d zQKH(SLa?8qbQt#|tAGVT)7!Fy!YuuWrNTmvwS=kPpJPelT5MrKxWDF+$2=?*rsb>S zvTP{^MnW?etovmcc|gSn@Ss4*)F+HXOpvSnQ{AXAhvQ2yKcwQrs3YU-{m8hIVBTY} zc(IdyuiWTi6(7Yz%oSONRF(zyn(h>>v7AJmRmto!^{sl=GL55*c0Y|zD)@vz$DGmb zaw$s1r|<}?(Ck>wN*IUJ1IA(MSOCw?hOuPUvZLu^Dt-o^CJcwPR8E#Ui%aJ97^##) z(P%9KcwEJCJi*yoTr!YHD4FdAY??8fn_w+mh0owA1)pV@D;}XJRK@4;c>!g_Ft=&( zF=lnw2)2^5#kCAcM4wUdtP8)cky6!0nj5ly^dj4wX1CXVNyX1evzO6i3SJOcKZ}og z!Mh^eIctnjA{n=9PtUVtx;>#{0Tzbw75svNpJ$;wON@+TGQ}1y6{Q8DikI+J7J*d5 zANPAnf0L$Q)Gi<^>)^=NoN4P24dWMaQo$q*Y6DvGR>doLm2g_dfR;9BOctJfl?<-0 zsmS9rb35zy__&_vw%iGRxZ~c1B%)cyL^2-fwm)J9uNGlU;hciAm#YqEt&ljs8pi8* zL&4WeqvFx5rBA5%C8=vgnwsw65#CEsoPPT3^s^67KQTG|$jj%?KK|Al&rU!3 z!t}}K&Od+hty3?wUpRN-!nv=0|MfR69RKq4XHNX!qmNv8{pGI42Og}#U*fM7{1wg2 z99(i6R`ECZTUzO`W-_B}@E@*Fao9ZeAI_J*3vqZzn(F&1&SRR<$1xS1jy^IkzjML^ zN&FW6PQed|&{Zr`@%Q)#?#f)GrRY>8Tq-EYiYtbHl3e;{p0>HqiB$ip;)nP*dZejm zQd*p*DM8?}=A8q9{T28RR{1kb3^|3eLv=@DZF*)D63mLUcIE3l+!DEE5qMMS!&UAyw;=S5F}&e_KC-d--Yvb<^V zoqpy{+We{MyL7;mMdR-ku7}`Zh#dW9+iwY4|MCJVZMTPsjs1m9q zsU0v_gUzATY+&Zf7A|Y&T>_JW;#ywgMYX`bd53_j(uKTcHF8x;m?K54Di+9ex7bd1 zrCp}2dP+OWv?i`sMV*}zETcb}N+q*wONhm)s2A*(RB)x;`4Cu8$c%Q(aM~fYoZ6s@ zrD7RVfth2d**tFm{6!x5mX`gIXr*WrD;2SV{ib5!!njlD-pQ182fI6}xKT7Q-Sqdy zV!eagdUg(M9ds%?_6uh<9^6H;vJ&b$$k9ZYEz#|%_4rA-Vcv?exZn&(u}524dti7H}kN!E9UD+FaUFiCVs!aF^? z4!7^v5trF3EIPz`N#dJlT#7tAeBq&xdWYnycd6pt;ueOWtZc2YswWGA&HL@v8~5U! zdZBNrCyuUaxveVy&CxwZ@$l>4;hmh06Ly=7N!gIA=dGrARdG8*YbDuu?{&I+8QIkx zk(b89hB+Q#*<|X5bu^>%J~)vv(yUEs)|xGbVP!2-%Q)A}Y*_S&ZHm}h=#toel1v{m z#`Q?dwj?KNBTjQv72CyoX>eXl3qu0m_FLIq=?LGUr4uPV+Y~d5@m$7jo7fx7P9G%; z_fT#B^!dMZwtV}wege9Zd$d$)Flp)0>X6t{BidQbiTA0ZO|)~Mj{`M$uv)=)Yh-yh zXHFlg5x2`#dsMMeY~rfH8nLMcb=BqgAV28!y}Xs1b_9}Fr%JD%u86zYwJqk$lEaol zsEB(DElVg(D-GPYeqSR&iLe5#e5SdLcmIe;*~vrlP1 zvpLA|YI`<0V~;V-%^KsaX2w`GC0>s@jxOS=7JkZqm9^pw7Qc#RC;26SM*a=iuNtV9 z909+vqwFr*O-1FxhSt-#vGp8Q?K_P%uc5j1ELwpxSo<0}i;`*)<;yjlt*6k{mdD0^J~X#e{1)(LvAvAfjo3hIM;-%D;hNTV zKJ3n8Xp)~plU!G3pP-H~f{o}(+=QiA#|HO$e(SXNZgu3t*_%6IKklMFm1x5OJ_Wd9 z5$?u4lyxtqR6$%qM8SOuE5l(9lnbtqsIXVTIXa(%{5E3izlrN5W|gf}ek_lJQYk;I zx7te7Ig>mkDqSUJ$Tv8xRQ`I7Nc<~W&mfb>p_$@0`tYrA#S0w4QLdBtKF&{x@9I)~ zr||xOjcms^QC{|vL^F>M24CV#2hk-qEpH=A-ITM1mh2%;+t7sVK2%qG2U_i+y3|E= z5g9N8)unTx`crs_CzQH&@>8BQEGaOBj|kqiOTp~(oi^;9_G4sgz;lt0bB&aCw~O2w zO6#1$F@e2~+(!k@;%6nho(#YldRky6iFeWqck#%#V>NdBwq4_G`vpAbf_#FYNdmS| znvcX&_@W1L@T9}ty(duK6+FpvHsD5ze%{4<83O>Yk9hB=_IDBQ1DtU$=iG;8GEaJu z!{inZ^A->DMi28^ALcbEyMzV@b9UdK7k)YiWEb1j{|vRS;07D0|BHEiIggjS8!L}L zBdO7L3a9cob4&0HzIIEfE>suP8;?I-cvBaw3+3_4Mc%Bm1tsZ42U(4ev)MAibEK)i zL4V7j1EzhJP8+Zd-dQ%-dNWR9E#Aa8s2G1u!#DX9bv}h${|sEjg5V|82ZMzJ z-A&~KvTN=fNc@niB%W`&2KkLGE86q;&hgKoynRx7>UX=!Pax72lICw~pTh5#;VD$L zauWUEkLp8jbcJ5Qvf4jus}D`#FM?>FtS`^wdwl=BJT5$ix_0^fJ9+%0{FJ^!xwfqO z@+tgFkkaZ4(xjk&Z=1q@mZ84fmLuoevkMIA3e|^rzWR_Oq%`_X@=yy&h-D;;{M>*a zxuh8;Fu);_<}fqD5x)HZ-#^HZ_#wjhVS@V*XMY4yb~1P1WBgs^7%BD%qV`Fe=Tk`G zQLcCl53`r}7(Pv>IL^l26Ksw>iI>>{Jjrj8cn7!x!Ssyvrb|3ICS5$h_g`cG<{Q-O z2L8Xuv2yPAfcwpKwrPdHEK61E@EL&vh*k9e@KCFcq{Gr zJh*~k%s0rlKe~t-hUgWmE@D|BR96P5nRIyr4VyhQnmspMZetMO%6>ToAe6P9HZUrJDRQUjT}7Mv3u`&t)>$Z4@I z)kqLYS-Fc}D4f-nD||gaX2#EI-LbGL|p9PO|e(RM8EwsAa;sf_S0^0hZwS-_KG{j dJ|XQdTi!7ifOipt1L7WWAL@n1ahbMb{|De&Z72W$ diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfig.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfig.class deleted file mode 100644 index 62e91cadbb210700a8d581740414ee336f8e2d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 zcmb7ETT|0O6#llfOd0rroRvxx*_B@}`&VDsSv^ zX?lDA&;w*ND2RL7MGb18jcQ1EPE^+p^3tjP%NoWo&aj#*57B|rz;xAp?(BOhQ!8@$ zP0#&R4HKARSQ^s(CPQ3&Z1aZ0Fq#YXW~*`_s%|O&-t&G#!!&L(tPSUVkUNUEVp^vA zl;Kr4UiSt=kReX;yGe{-PQwgxeouCZH?M`eZ`a;(No;V1qym%Mc3W1(3)8#Mv47~c z=<$hwYqsq=uH>!2gOkJ}mJ}2jrcW6s+m>rKiL`#7x|SMl;|@cj((}M@94^wdj_gBG z46I*rtJVm3M(VpIc%>I8|x3Tw8`A>kT4%_@LXp4({$6s%_wwlW=Ye%QS>DZqAzI-NvdQSLz2GdXg5oek&GGNpnWAJf(!JG z`-f4a{1ebl83;-DLt-I_IuN4wL*gMwVjv{j4^jR=GW3r0YMGCG1ebt*5WQpF zYBKaXTp?4h0b$T2@WnSdZ9y0`jcZ*{jv__KQZ))ExPBIj(Gbp(trzMs$r#BA<2!B{ zg$^`hzJs)}(1C7@M?1(K|2KM`{$!#)Tp?AZm7o=cLEi`pm?x=IddvRZ-Nk)8z(YKu bpzs@1!V^5hIG)pff^Y#z0*V9#@#*m!Op0w} diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfigLoader.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/database/OrgDatabaseConfigLoader.class deleted file mode 100644 index 126443e6045b98e2523de461bd78f1750c6b459b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6471 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 Fe*g;%TqFPh diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/AuthenticationException.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/AuthenticationException.class deleted file mode 100644 index e1560d8665e0acd3c7213a0f1a1a0b79e6d06fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmaKn&q~8U5XQfWX`->(TG5jiZ~ntT^;RiV(Nh$m()%{uCM(INWH;h#c@jMM06vsB z(dtFoUD%o5F!Sv&LjhLxWKF4xqRiVQ{WmBoGibajr zzjYrj;bh6&Wo49>#{5kXybGn3?GttmqDS#0!c6ES9NJRpq<1(XxL3tQ23Wyb6AgHT zR>T^2RX&#GgBWL$(20szWFt|kn&(B=rpge`qa}V8?9n6mIolM;xA;F>g!ZkpX)(DM zrO2g~C4UqQi>i#}jjA2(El@tKwXhH3ed8eM0#S2sT0%O%DEQmDN%E$3nR`etBtbu@~0ER zC+t4RM=3ICQgK%qr*rlDP6$r5(QZK4*^mEtLsx2(_76q`|Du?v2rF1?qJeZ@qhgG31Q9)$n;Bg$q=D^t=z1b+{#ks%Bhk^ zM8l#g6LqC)FWsd-=+!FN1Mv>^A-=o_JcNt}oITFL;n53LpSki7ag4sZ%nY&4xVykj XY%pRzHqm0GHrEYePz!Hy^w9YPBm`?s diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/GlobalExceptionHandler.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/exception/GlobalExceptionHandler.class deleted file mode 100644 index 0eea0492f7b48af59fe637f4f2e42403cd0d1179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5196 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 HJD&Xmlgt3T diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry$AccountKey.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry$AccountKey.class deleted file mode 100644 index 6dbac1f8034e9b4c56fbc445002806588052d06e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmbtUZBNrs6n^et>o)5K6I4*a7m%$WRq+jnB#1FAP9Q+|pr5+#G74Mo?CqBDpZp++ z#Dow20DqM6+^)DPgGBkzp7z}HoaemWA3u-316aZ<4Kap!+cj%*QtbHVPD5Hv$CTV_ zJ2p3$Y~N|~O)jM)+znoHr0*R}EZMebx&AwTprM~(V9#n>X5DgY<_5QgS7nF`uT~Z8a*~+p;QkuKWtys&8AK zqy7V>0%Ub)3Xt?ghb>20=5!3;3d35y{NH&Ndj^`^wdAe}mZ2|SC@HdQI)-qaVevv_ zB`OmC)UxW5VK^VD(OPAX+kUa|L2=#GF@jqR>lfkb<($|T9M|y|8K$D_VFx3SP*d1W zqYrmiH?Igi&X4vOqNPW zPlnVb*X3S7$fbrS472|>+vF*_#m^ZgyLCOML>lH9#?CjT@#)l)7IBqJe?>^2be+2a z4{1;PXnJGFsqIz^s+N{yf==Q{(mO?elO!3*xbYR~FZ2vQ<0ECWx!vFvP diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/ActiveSessionRegistry.class deleted file mode 100644 index 322ba8eb86ed3e3f08aa2dc7baf424a9825ed1f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1797 zcmbtVU2hvj6g^`*b!@K_H?9GPkA7g%*sZgL^3jqINCFiVNn2`U)I1}xkt;i2}FyXF~vs9GwDbl^W!9UYnQD2t3h>9IVNZddvp_x{df;F43%%(jnVLH8SN8!9y2KB zATZ}(3g>KP+E@1my&V;PCwIE6W^Oa^WVbCtZRg2i#_VhIaN{LQBlhW-OKF(-_Tr1> zon@uo&SIY1UzyfCs(8zC^|rv(Gl8hL3%H2OSzHn*j;SSs4zA!`D$yUXQEr_~Hte30 z5+*D46GbLV0#iZQxw~uW9`|1&IRziEZ|&DyH0)SAE^R5ZAM8Gmq3kK6Lh3QCqhVwJ z4|2EjxQ?YPny0KVgyO)(4S}qV*4dK>aRY8!W(@Oi&QC#j;6{{41?H%) zXv1DV@M%c;!MW@ED%|MGh|&_l*!%={Peo=+Su;ksOqZs4x3NX6Rr$_xmcleL9MkuF z7Pzv`D8YBBaSW&N95auOQTiR{e~qKde9pvqa@<$IEO%bunls#k3SQ$(;B~yg+%})& zX&JsNjo)zoIjWDYT|dT~&1ZNgjqk@v^9;ACFEFJ|*cfg~5^_6gcrQMrf(4FjbOl#A zN@J1ZVwwTqCvedss58Y7!OyJLBB(Y0LcaMF*M7lN`bqN?o@aPJg{S!F3FFcjS2@QT z$|&-vF{s)IRBZ&RHUd>kK;34h3{nL#8Q!N@PT+k@f~+v*{{UJ^!J;M1& diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/AuthService.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/AuthService.class deleted file mode 100644 index 46d3a22bc4d07cfc935173f243868fde42c361fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5495 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 TU-0nB4Lh7iL{!7}!yU3*s=yA_vLO~VyV z-7E-WiA%o8>tfR%56{=6y=WK3vh7s3j3La>wa@F^D06Gicqat!2rz{k=UEt+y?wD%qO)5Y}Lkv;X>(LNb(2i_wRgJG{NFd1&m$vU~ zhEmk8;W}<`y9rv{8b5hBTU<C5tEHDgQyp`nUr<{s)L%4Fqb|uaE&kv@k zmODu6VPw?XK)sAAdCyY8dzK2FY@BvRaD~1ajYh~avJw3|I=@jTgcNQVw?gUxNW3kiyA|>|07;;ixLO_S``Y5z;VC3dFICgAQF30z64Os`18Cu)rDil~ zdU={WLC|fWh3On<2zMIJWr-<7OmThe1a~h&g($=KX|D=tmTZJk* z^@(G2>%HM)^c~S^-~s~dI<2I`9y~_fIJE?|2*&6e!Z;?#W(e@eySvAj!BadV%DgwP i5;KPv=*LU?0WMN{mOR`XUX$%7+4!RICF2Xmlgl5tx}R47 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService$AutoCodeRule.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService$AutoCodeRule.class deleted file mode 100644 index 9b1b0238ae20d2f0ba2f983e1bc9f069673932e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2742 zcmbVNZBrXn6n-{9-dGGoKvSfp2$C$NQERPsYn4Kg(3Bz|RqET4Two#Djk_C0|A@ar zXY7ob&hWt>;E!^A?rsv6CBsxcoIU5hJooH9FVFqw-_ySVETWn~Ou^lXRXn)k+WTH{ zzwR0hv*-%v#H@(ovf&w9#);Sp#xsje&t9^tVzXHj3G^!%J~B>>V$HA)ikqThJ5>eA zx?SaRiDtHZw!Gyzrgfkzh&LRuZ~menT{S$hVmo!iQ;>2+!*C4Gb`%V`;^(HYD&o0W z^$ry%C9XTd72fu*4MCvm8IHGO)S4V9YXnr9jw38@LpY{QziNBj-jZ^8g>7T6#_g$n zQ`D;KMxFL(zR>Fj`{fN&P%y4y0C5GGvT2F+W_?dM?NhR4yJFOK49AqG`jZlHO+^B6 zX}zN&8Ccg!et*ICe=5DDN3FdCA z$Vyz&vxA^!nadAU6!D>gC;9S~vZ?nBMe@*a4`n!{i@PfB;9~{%uk3<(j5D=H%~dd# z55@l3-jS$ydSO@kxv%0LSSaPI`ssBrJwGrl(|f4kx3K4SS%x70W2STww)R?67dI7l z(&)qIDjwhqzgTwITu+5}XjeDb7j@wYhfzy!*-fV+R!mvTqmlN!ExV1dN4D*`o?|ou zyqm@fRulMA!Hu(ibefiD)h64+0vz0L^=UWTJ(S||3gCZJ_MmW#LvFv%yXeLzZfW>xL)VX?St*kg)f2W!tWzOdOAsc&gx}!$f*O zIr`_kr8Dx$MekCJ-X)d{i<^?8Oi(5%Q9ACiD54yyt83ov+Duz9!50njGhAGMul;Z@wnGQD^930B`a; z%F!&fLOr1Ug|Rpip?s61@s6D+*N4*?}AVZkxdWp&4_z|1^BjTkNf@FGnnTvX*Hjw xckvyr;d}fD13B#Zr|hCay-WrOSR&wvfFS~Y2-qRuhJYCYUI$;^dttg>jUjGQ6hp3jd{vR2 z5{E5^yLd@g~Sy}Cm3`c2_zXZWy=w3&3aXM>%3|Qsa=!X8{D(hIdpd9 z3o8oNt3yMIAtl{5ZH`Lq(~(0zLpfi*T(PAy-J87-A@0o@tpO zDLys1?KAY}BRzUs-4UiN6+S4U5go(0$*_89qO&p+^_=Bca-LxzN*zvcrLd7k2kz(? z#aK}E2JOJAklSwU9rt)$Na4}5(-pVrnc|J5#?^Ofji%IM5bU+5}6md_( zB*V?))$y8+wCciW*B(adxQ{7@&gx+XhP~)(EvMz~3ZospL?hVI9AhSlLJAM5SxPXaKp7c^F8Z>x z{mYIcyns&l8fF>t|GT*i-D)QzLVde7xV-kP>6=i5hQj5 z$$mQ*(o2koEEAMgv1r8uTmeq;(A6PNFRAuw$P)!!1HPVQIsqES^$?UNrWi%0ijxPp zaS6 nkI@t!VH%IgmkT;DgC`imQ#{8U2Js@m%wRsisBCIZ!Ib_2(uHib diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataSaveService.class deleted file mode 100644 index 17968130a2237d260e4da1c444dd620b5bcf3071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21592 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 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataService.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/DataService.class deleted file mode 100644 index 28c8b8c9fa0bea5ecfee3df592eb2f6f5e766047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4999 zcmbVP`+F2u8GcW)%WRe*gaE1G8f<`s1hz_nlC*)6G?FxgOCS`f#>ws^8M4_~W@f`h zZN0Qw+gfj+v{a|+$*T2Bxz^#7<7WNp$!#S_Ntk$9#`4+( z${QN{1tRTs%8a8N3w6wgF0io2%9y>mu|d;0Xb^%xb&s7i(*1^G$>(4&;*D6uw64^p z8K@z+Sju#hjx|Vo^$iM}&r+Y~SefD0Mt?}sk?65pPrCEK$)uT8zH4}wz*0r6^rvrs zPyU@iMV~dCF}$2Z(?{oE`rgo1dyH)Gs6rNi3BmJ&*xJTV1q4>;s6af9RjAXjT41y7 z3@6;IbYaLb#>^A8GnzP-8cZf+Ed0oX=vO+>u?FuJSTJmQ?RF+ZjWE0d8-3^{5et}+ zeix=IF!eg3m>0)7G-y~auv08KP^c53dL_Y3=ij}W<>oW# z`H`YIa}-{2X8gbMjbR6KW!y4P3}om+oW-qO!!BZS)CwfrooG?72!>-W(i9@@FI z*Q$Ya{|;4$f^9ORW@@+Lj*#v+#;`Dk~g=BNw=$v)HJq%4!g19iPFIRK&QE&Y63Mm@5rr zyJT8x3{T60gnbiL?&298PvdjSe0LmQz?U?9aSDkt-(zQnrR_5;{SDn=i}FpYwDDyf zUy(?exWi^I#pvQ$9nZ<3m>lX;4u~#+rvD-QwC5-x2s~IM;5nv9$ot@wq|7yZZQ7aV z_j0mGzNq8tc!^Z7ND6co?KwlzgzUGc4cDDI*22M#<08JP<7LTlMVgHD%lJguJ>$_^ zw{FST-_dai-xZjjvUBVp)dUrgjyPVys~Rp(1Kgoz>G(c=z;Gw+F_uf}Bihi>A-(&d zKyyh7m{YxCVpq;(1M9l^4zZd@uIiY?YfQE=V^nr1Ny9sAc_X}YJtO0>6t4@5Js>lz zggTvAqRk9Wk-E4IH zCce{>-FH>!FUBUhP@th_rnb{%S7O>8kBmg{kA!BccG5y5 z4UscLg$Ycw8|ieP<(aJu=i$v5e$PKgqVDY*kN@k1>o?E6^7czF|Kr*-b$8YM^SQ@v zp1pGOEcK;#vDJ2zicN+)UMRyF{>&4kgp8To)9_ce*|(p{toFIU8lG9@6ki!XY}EOr z@kw4|YLx#ZipJzS{t4sn0?tVADtL`6J-pu8+%$o;Es*9mGWRYM^|!uHJ0 zgoe8{Y?ar0(85j*opAR{-_2xR$)Hqd)6OR0CFUOj23n+soswLq84^#Y24O(=11ha3lcP&liFn z)a)Q1=GGEqr4RBbK~CTU1xS^Os*QxSiI6siU{vN|RF=SyBPB2f@Sz#FG9*``pHY*( zU)a!8Js6ol>OS6#R4w6MTbMpcS%}1)D^^b6SWDzO#*SQt-4d;hR%dIu-gylt%5j*F z9}ONK6)Y2v=ZBw?!=IhR=kp_ja^!4y&WId27aA$h(y55p%zxTp zG-5l|(LzPFQcYXBUZ%JmOAZ7mxCGoJWVU(&l@fr}IKUX9dpkNI%c;EXGqj z$O50#4-W&P?&q@W-p!C&n!Q{lGBF`I7p%nQJ4KB;}ALtTMFE# zqB~DTcR&RZ;>RRZDzzK0D=Ku(zJWKm+cLiS34R(-;U|JzDXEZ&ya46zV6lda@1Q=i zKyk95obN%Kpf!p3XZ$V0&-3N)7kvIDzcJeQEx*6RANW+wIW80Pk7V&r_zV7q+W!J~ Cjxomo diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/FileService.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/FileService.class deleted file mode 100644 index 56a57557efff1952619d1d7bffcdea7b9b6bff49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14058 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 XuMihmcgR!g;wQCkyzj(wH5L9ZhBS*` diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/LoginLogService.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/service/LoginLogService.class deleted file mode 100644 index 38e12466f90c2b0952fc3aa458521666ba945655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4143 zcmb7H`+pQy760CBl9}BMuPu)*6b+@NdC+c^QXmVoGz5}1At@U|L)CS5GrJkGnOSCL z16Z+IZGF|Zh*;l(_*Pm70i3~*HE3oviKBgy& zx>ZQ_W)B-VPasmX3j*&W!&N~aI@?%yp% zraJaw0F>*}3FDp>44p@kpst|^pLvva4 zaz=E=(|wp14KF$Dd8K409}-(+>^F{-4cALaS6gwff{im^ADpG(J|qPc(|v@+Fycev zPz-OuCIxS$_jACxU`RDQfX&oo1i%#7Cw;v|6aRPWQVO;Zn|{Sf87`9`lf*k@I7I5G|*&G_!ve&Q-M`safcnA-(G%Q*#KM|Hq%|Xol z!wwwi+MSBw5$smbF0gpo4EaSv2ljBcX9qzQSU$De?=WFn8_0+DE2Ux|i!+-kvpg6A6@3C)HdB-!&3MO4>_z)of7y(k z%atAWA;U9AS@!)HP;fwCnQxQiCA)$Srr{u-pk0=IRA9xFN7WJx$sxQ=!IO-azui4j zO!iX+JK!k&dOP01jN~1ARG>L@Y{vf3j~UzO$vcBQGObw*DaZ+|TOg0qElz_WlTc%p zRIraPA`VLQKBs%8ZAnF@hQm@KW|q1`wu+)3v#etuW!R*YrNNd`O2|`jgt5tHLNYVP zsty&p8ayewIQ%vcd{Qyyn{T^P-!ToxeYi7{@bt(6%E}{ z@e=R&$>&Z_K6~~br>{<4JNfrhXD6?pnmlv|~y30$UT!*S&3&@_)@PtMbB*dngdUcbhDpmZF|86{a+)a6^iyoCmE<(6|f z=3hV@B3>mr_WR&qu0veNs47lyL$Np9@=d|mnVfzE*5AUF!QREfmP5yke#?tm@!{B8 zqJ_-EiYkvQj!|l*>=VtBh>j{w*s^z0;i9ys=SJA_eLV_(CveX# z-jNFaFe3r|!*nf}pkise?Bt9+rW~i1&zef^ldcOS_7fUx%mb!tvJiJ!mhJhSkx6O_ zMz)fiVDoZv;jB86bUD8mw!Ao!>0oe9VIAkA2xsnEtd`>(SF52wB{#}-4PuDPF^cQB z9HRJ+@as}6qePt4y?o1`Xk1L-wwI7NPof5E_>A!l+)nW|xWngy!fWv+^5xb+zU9$N zS}x(uEv*-^u4Uszte;j8r&T~BpX+GNojiZNuc$HDhP$zW->Ja2P};G?x3LEIa2>57 z8)V2+o6sDb8aYWP8_4onUq!5S94)6&d%ooY)+g%6aetd~6%P(x!qzr5p~kmOAT^F% zm$5g3gQR=bo`$mV9RJ&>uzKUM%KGsMq$e;~p)(0(9D0S!OLDkEj!1H}LY5@yRLHU< zk5sAFXgdm8h+(Ka;2n)>Ga_6Vdp|_^D7J z8b2N1R$0H0P$%%EfNY(>HyEsSi6~j)`1Uz8w8bXy!$j;lpXbonro4zm{Kfifhzv$r z(}T4e(}Q&hC4CteB5Z**Vw>m`oy>_Q(qaHtm|TgKXP9OQrUnkL8fVp2*hJ1|+>b42 z$5!-W8!~8vg%nP36nq{#@B((ST|b1&co@IrKaGFmF!wJ?{~NnS9dFCU*eh0}Q*7XT zwi%C!ZRiml9H|~fujt_{)yH=lkBcWbMY$ZBBt}aCHm0B@Jp9-%2I2+RxFVvtdKuRx z1iAVNc?2m}Kjo^wcKjT_U@J6mcs7Sp*$p41lCJ}4E4I~j&AQZInH+(7ht%9t=5wwO6@^4W5CQ^|=$`?F)Gr|8$ zow$JyhNjXoGPEBMinCj4JR7|7!3@|M@5UneTd5 I^k0Dg0#;r?2mk;8 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ApiResponse.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ApiResponse.class deleted file mode 100644 index f0537e84730f4067b5f1e4ceace6aed4837068a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3022 zcmb7GT~ixX7=8{RUv!ZWJ{0<;ZIL9jjnbl}K`?|=Qo~2HAxf*_5*FAt?8eqxKzgINyp=5!)(Va)9kXv3Mr5+ht*veq zvg`SDCc9L>eDWRH$mvqH)h74{!=St=7qcs^7wm6_p~Ve3x5}Mq;qkp-=q(#NDnsx< zwJc?io}&3?EV6BC`d*5(b`)D_y<6LUsFrQI3(MM`uGlq`jD5u-odm5~xlDKrw_*aC zXA#f;cTx#tX|8ztxbb|97`j22BfWXd4^alCop=!3n%peN>qWormL&9gKgC;D%%w&Z$??EloV6rvUfO|Z#n$D zTEB>_sP?|Gv#yxRfoiKJ!M6^5(G6m~34O76E=(@okT8S*!*DEqybxUBEeXRI zX;)~Bnm-n&a&g7m5=QYdL&!GV>_=&tydxn6>SLO^E=H__3xv0?So?frI9^)90u~u2 zyThXm7f?T|DHUqw5wV%;b90}A-jR^Od%R5DI4Pv5fxsl>dIOMUR+E}!f7X&J@h zG^u^EQ8UZx9gPoZL|EL{`JSVp?_6?$*xl&V9g#)Dur1qEs_yh!eYgiXhyugK=F&84 zx~(0kN!MRbQ$i6Nv@5sk2n^4}6lwZnvg7}1Cq6v0Ns6l+naN%@SYBD!3^x#$oZ_+^Uw`mw-@FPG{kfa`j zNDd2fAIWC~St7Y#kY6HsK#(IO4+?S=Q9i$f9pz){{L&N>-zyFuM-O8hXUQA)LTF<`Xd#c%3xval`PyzkzTrSFh=GhxF)t7i^?XYpZdrIByf6*7hX|i@ z&|e^@OL#RVNaF7L6F*}5dwLL2dmU7sLt4VPN#E@zGwtE|1(Q*{O>l1QZyht8Z8r@x zOb2Om*V!h$d64XqX(QdCx2~q7seX1=`~hjWSsB;))Ryk2RE-Izsj|EBY&p z%Z(x}JE7eq+g`FBrhd*P&K_bqarF>0iED?Ledf5>Z0{yNuYA9c>fu&~x3V93M}5W1 s+$z>cj*ycjXL3HkChp?_KB80prvDgQP^de%Nj^tTxy5%UvSl9s1wp-=_5c6? diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ClientInfo.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/ClientInfo.class deleted file mode 100644 index 0ad5d9dde54aa56964683e5db713e703ddb28fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2177 zcmc(g+fo}x5QhH|pk0XpVHp!d2!_O9X|cUNB(WViaWD?CV)^Xi!oFHb1B@+pl-(7n zJV#z57jacouHqsOkcUd8XJ>^rstxg7s%Ul3;p^Gy>2Ch~>-Y}zS9a54`X|Ux;C% zT5D*hHI5B93>zQhw84-UKlZ&YMfF@Y6|X0)H=-TYYp=A=D;%3}8E$=u&nzc&${p#; z=o^M#(x)WPpF;kJnc8j<6S%=~6`#j(+@;)oB%%Y=dFln;p@=B?C_`VUe$W;>Qm061 zlJ(h_7(R0_FDkQN9O#Kaz*SHQ`Nma(oSnOrbUO!0;{|CFvij zx572MA9#MJE5Zv+rQY^?^;1KafVwvBi?AKYUZjFFvfcHf3#_9h^#w1fp zdEB0xnTVN#;owNES(!NR~-fNLCqm!}moH zUqOTxnhfisKxcgQFlH7WlaJH4Qo@=5lVO?{u2JDnP%+pj>&8J=S@(ljQ#Xh;^@3Pa zCx|umfml-)h&A;9(wsa^VU~VNG+HOkNKZMxW9~OHa^x7aQBPVp8_$47Rwgn(j@T*0 z&O{c*kwOY7WFm{>NHK*JGm)inWIBaRXClkv2u~qA6ImHYW>UyZCbBw?%$^`;s38yE z9&zXicaVdeSbW)CX+Ro-NE}up*>QUEd zuRiKI=>qBN&U=#00p^@b1I#;@2Uu__lLIU|m8k)ioJxLxWv5~du;Ntg0aoAr>sNh2 zD{D3-r_MZ`>WGghlAb2vBr_zF_>z8exQSb&m*^UI>7O6Nx44IG+{bs=!S{H827aJ* iz48!`@B|e+rSWz0YYNDek0~BgI;L<;*_fh! zTT3~XEu&aM`7UipOJp>&FR{62m!5JY6lJVF32K{V_a$ z8J3yUH9OU>+Y%yevq)^c;3%&L^V)5iofFs8w!F48>n;)=P3*5uWen4B)=-JsNVkOI zW-G0SF%K0o$|WqgP^FEoA$t_4xI#jxPj@_3CA`13tzcPmM$6?IBQq@uK|-a15|m1q z*JhY{M}DwJx3_3L8Qp~-rDeJ`+YoD?Si0KRFjjlnmPfk7C_=S@g-~Q%MI0|QK8(ev z7TVM(2q7$H*C>z?BnD2uk&_UcP1;2~D?HV%JN;Ig&}xIaqub;l>z?N&bO>+;G~3Y< zbjDCdcM|=MlTEbnlk^Ck`dxWF=Mc16+*=UaC?g_a>3=;JL>-mLn**jbYz7gRQ2Nee z&;0YrgFz%DAc*U@-Q{hEQHvDf7Q0)s zT_W)m+=K=RWeiOpv8;rf{}=oVVeDHP#A*rQE_yD$u8&DwhBa6#;}!|mUZz(SmWw7Y zUs`l6E%NaL7Xdjk6Xh`0W21}>lr^i}(<_96TZOFBoLe!%XvK$QY?@YhJi8RMp`8(6 zWtA^?I+C&#=a> zx(M7eZ(qa#LZg&|v=Ce}sO_?BLFrY{=TQvPqZkTyxs9IdPYTq_8Q#W_?rm(@lhuRxl!WR+`qaF8 z=;?Q!c;p`kj=Vc|u%YIjy=C|eJ}2X|ynEq$qu>F2o+Wu$vkBczmxj)JPp6hDpAzYo z@eo6*5G@;ar}V7j`a`z8$}3*h%S>mM`+&i+5;n4JR!Z~v^w`!g1DRg%XXjlWvU2C= zVGm&e4B<|>UBdL&*-s}45>Hf4354@XQ~sQ!qooGgwXFL}%J>E!>wDqp353UJcu8&n)X;E{*(naWoyG3L4BFjCP6*LqeiyhGRflSJfWFs z+cMHYyh6_olQ$!&#@~NU6k_k_uXwH9>M?}mUvoa_&wtA!mc#B)*!Ft`f50EPOZ~MB zEt}@y$&8>)f2QE|dTzk67|MzlmK*)b8ptz~ONO*eo-tUI)_WO^WED0QP$ypJogakXMg%y|hx=DqqM*aASL&+IRvt2hb56!_wF|nj4DMSVM_g-%!d?<``6$H-zG+a3DU8mJvM8gG)H= zXb4w@$Iy8S33nXB9cpX>cQ%yx%N~E!{jq-n0}Z8OVflBgG32~EvP&MrkUtLl<8E;$ zC>DE8VVOIQVQ+i__ceqLL2U>h#eDVtcvbiWK3xo9XRNBYs-&v4O0Ei4h2p|Y;?jvT zcnc5G1Hwx^gcWQ-ig6XHu>>{zi7*US5Zsl7w~?UULM)q!=B?c6L>+sA7@y}ja!8O* zJs!bz_&Tn~A>Mi!H{vz6j%Tn6XW1G43#(n1-OZ4p2PR#{*~9n(wW-0|*oPhTR0Mxv z)3Sqlt-$N#xq~{b#H;usXC>6*G`_@HDYbct5AY6pxfw6wQO<(Y>?FR-S%|vbi?86T z^!Qmu+SjO882f2q7fPz%V1>;MNgwtT|P=no^6k*N5=8o2r6Uhad)D` z)DxWS=aG}6G4)52yDv`e{>0yXiMu~@iC4$e)04-3F?sA&|JW}_iO;hgarO1{gqZr9 zar{n5_|qtVsiucf6UsU7AOf2i8@DswI*CsbQTl!ZBdY~>U^_d>48In!aBwH~VkhpS zi4QOj9-`@@xOf=uV>Egg?sKD(1snH^ZkRAQ%#<^nc^FnAB%i|)hErfsU|HZC$~i4_ z;S2@H1-vhyWQXiQNuBtrl2#Etg)nh!*$=ty5Q?J(W4z+oKc(7L;0<4)3cSggpufd+0DpDAXYn_V;_lyp{{XRpfAIhS diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$ColumnMetadata.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$ColumnMetadata.class deleted file mode 100644 index e064289b4ac45849be35c3dfcb6c2106a36888fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2005 zcmb7FT~pge6g_Kf%NR9)3#Bd%X<8t*NTMe6Tl6C_p}28KCP{gqPqMuMC9>p7aysn~ z>E~bQLo-uPXL#rj=#T33tRxrVc$neg>h9jX=ic4B=dS+w_xNuBx9~tiPT*R{GY>aI z|4C#%>4kRRF$a<3hURwrYo%8kzB}l7_he*u?a0=U7npl$KetWS_72U5vf~F`fxKt; zq(G&0vh*kl9PiK)xZwFg&vu<3WOpz2Dt#9?k==F)5C;OK==;7*SGY8oi;TjG`L7sbdDyu}@RYFX_sZAVft%+J&59M}w*%V^dD2>@a`)R$Whb)g2P*!CjvB5CY@av&q=3x0<#O?Z&naYp+LC}#qjv|nr z^7OhQ9^G&IeiTN5-A`~~86VwspAunt<&vM1c4XXvpC*! z|Cuxs?_JyLx-wjC`Tny(-+K8p8A}R$OqOrUuoF1_$PcoRhHHmm){qwIo0o%Rv!5bS zdbhJhd{6?fVN*4vb-MGcQQujkjqM}{~jw-6* zW6eg7HQPMaZ1PyMxv9%U7I1;zSttI( Q;e@~meG~E~)QySzACGFDkpKVy diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$PageResult.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$PageResult.class deleted file mode 100644 index d178f86c89e6a288e6efeb3617b05b91ae9e8418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2005 zcmbVNZByGu5Pr`14Wbn623kr>(gYG)q^N27Zc5TX6HE-vgft(TPiJ#6N`&M}=XBaX z)R$>zl9@1_;X{8we^jT>Niqn-FiplIt#1a_*k&s{1PHd%A?Yz{C^zOgf(QyUu;p3BqlGd>H%~aitY6 z8MM=KBi#@f-EzCW)csHi+!tIhsyTZIo~ z+cP<|f{yea%Fs1>Y8 zi5D!qhxY|;)LQ?$jg7Q2SznB{BcmO2CgXO_!bQvrEWVOkcA%(!=u3~oFj+g^z54gY zciqBe*aA0S#rH|h7;VY*UA-(Yl}0<9z4d0Z{!n0Jc;R&$9{U@^2pkIw_%QAp{ZDKt zy%TKTlcC&IT7^9M*jCUFJL>?f1Q(6rQ+!^+X9DLBc@_43 z?d~ck8Txdmg)i_W8Py(m5O|TTvFkqzo+>BVy(ax_PepUBAb8sEWr=j0S}E|sPd&A& zqE6`cbP#4CE1ry^tReOBDASY^q8}Nvl)vLed{V|&oOW|%G-4h%5(dY@aCcmw!e@%l zG@lt3vFZCNjMGq239ACLrw==ukiE6;2+SW=_k>gjg(`s~JbU_9PF+$}Qf5;{dM$`F zZOL7TYvk_;hdhs}xfQ6DsO3d?U>divhIPujF>VDd%8Q(*qtlek KQZh;L9Q_9r6T@Ht diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$TableMetadata.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils$TableMetadata.class deleted file mode 100644 index 02f56571d0330de753fa8fa6339c59e8263f6ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2189 zcmb_eTT>Hf7=FG4*pM!#6tQ@$6>Ji~t%n|iqJ$zih@E1&s7`0TB%iRd*^PT}#_RqO z?R78ejEpl}_yhb=j?eBUunPf)DHq?qyYKft@A-X`4tR zV^ublKw)K1X3cj^d!r(de;zoy5(9O|3YxYz|1w65$B59jv0~a=s<9-!%?GkYVE>xA zVM{-7srkuaaJjLvIt|qifgv5e=p&_%YBgxqlp7@| z4B4qmYhAi#n6QW$0>0Ftg@Cgi#a$!(>+su?h%0pDw2mD51#-RQf`wK3lk-fEtZx;{TFqd!`A}Wj;nuJppPvjEl=Q7F;S9-wP&jCS4w|| z>L+wu!lXd;nCiRfqrq9zHvQWIcajF%?VEt4I9__XmQ8OD{nc=KDL(HwzURBL72~`-uHlA;>jD?| z=GzTy-)t%)u1s4}$4z|C$*pxX2)s$A#I#>HTgr%~m!#dWlsB>BI9oxha#*UPjnf7` zdf8G7%B#C(%Xi!)q-sgeOETK!dYn+(#d@lx+f6pqhwpOuN#IIqy;b)1SS7W^h6DzA z3Or*>=CW-oH*!aL8rWAe$J$34?g(5s8bX8VCB{{pnp6!70+V~i>JoV;?-~|q?`TmD zNn9lEkyY;dCCBs0i+={#9Bed>Wfp~SOY*G{F29I!_wY8)_YA%uS5QLdbAX&lQbF2V zev85XB9UP}`$A^s6-FWs_@#A)6!t@2Cm=bD(qe4))B$T_`=S5rLPxk6I}UzJ6`_M# zc?aXbJ`k@uE{<^Bo#%HLRT6Xo_&17TH?9=u6257JinNrWWUf55gUd&u*p)PqZHHEj zOx`56hv?DrJCw>(+ZZfQZ=+D2*~ZwLL+wxVW+2OYFhHIhPcLTp%-|{v(qTIH19<{J u;%EGV3TDYYL*utF$3GI|yqUv1X%)ZX9_dnqp2ITfIm*S|5cfi=6Fvb?6ehF) diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/DbUtils.class deleted file mode 100644 index e085f3dc530cf6fc5169eb48898daed5538f8f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28721 zcmc(I34B!5z5nl=J2UqtxglXfzyZNgQ6LKum!Lt`BuFp>BrLKCLoz@hn==UlViiS2 z>yD`41}??AAk{V`K}Bs{y6?8NudlwA1ZZou%X@9DHt+j8=gyrwNdWcV_xZm{?!D)p z_4oV!)^qN>Z~d$D6(X8yJZ6#4_R6)zq%YsOKYt*7NL4%hs$56|gBdep!Tbf!T^~-CTS{u=6R`t~B<;yF|%B$v8 zOs^=PD=4J9dPvZ&zU-JUinFimv(5t6rZKNeq-P9VZiOz~NVkR*`=T!Eg1=m^`iARfO$5xm1Zh<+3=3?S? z4bcU4@w%1u(W#A%SWinGmMmyE=DscxYl##^+~T6S(YP8EZPSxe08P|FHx$LMtS?Fq zgj&|cHT89kbuE(w8KcK65acUuss$ZGXtQK$;o?Z)rsd0=n{x^;TD~kVorckHlTH;h zMDe39@oXAFrwKA^ni`tx>Z5`RNB3pjnB$T@jRc);Q#xf>bf%zFMo+GbkGW!LJa2S7 zS`Tz=zN)Te&6uStx!zee*<5dwpsP_2rK9T_k+5##ZAY*3`VY zCDz(l!>=Os;PmF2Sd<^48=^JpPb(f)#{j6!vFQ4yb#jyVc=rLkaRNWT$|3J!C*?unmVvN+!sM9(!~6%Z;I41hXsv1 z3Dqm>;w_Am@(nf7W(6vfE)tZhxXM5QvfX!r(yHrLH%3}oW0?1nPtogbsz?J?lRYci zvZkqaP9%m$U;>nW{NFQhKZ~9;q4#9|UkFudQyGT4?<-dA5)FKF?+8k9~Ibg4-*1)bLvTU``yX0^PE>3CIBY+cb>NJ|mxA+41>s%JiHf14_4 z7IgUPXbaSMBV-$@%~cnDw3S0RhGw$5!pm%%=Fnw=Y!+ik@MW#h*hWDYIV9-SqA!Aa zvjm-1P_<3-Xg;)l3_1i#Iyt7Gu_x%c@4TT_v*OW6tY!`RsIAkhG@D|z(bzOhGc)n7 zzO{ihd$vb%9JCr(0z|dOL#13@tJm6C)u-r`jm-(YGO|~<{ely-scwPBgTyLzWD+!q z$3SZVGpR<yM)%d|TCs+jV1j5tj&YpzUSZFExG}f!V71V z&n?F^R?v+$-9$ID(TdeI2pTlH?+P&WTL9T9?g%(==O4 z2$Sj#o9^UJt(GQD7oOtXHr>M%&RLJ8vbmodjnvL=tlwDeNQ+{wdT>0wzHDQgc_ph0 zRV_1NKBwvD<`c+ye_V3m^LdrJNjn9dp`=L7wW7X0x;j!nHMY970c>>bu|*FG8rHpI zfA{VCx;nQXJ@iQT9Zw!^zy0V9FCT92Jo4qvbb5fma38zDf?E6GdoOh`p)U;jmQ+-X zIf)N4k{Jg#w6&g{i(5`UZok6YcjUe$pKUHC?GaSa#{-WhoS&j;t#P<#@wkV?k3*ZP zFru+3+;!;2V|xyEJ+b$2=N;j5(rGtA;=cr8Qx)QMo1(p{1Q7*2Wz(1GY3PiG$U3$k z@H-d6dBvTISpeM&k4qpARQt2RjQ?kCdXDx%VjQ!_q<2i;!cPm_nV*e}>9n6-FzG9T z#`K{jgWrwpJUFoFMfxhB2(^zD2NU|hm6Zt@w36CvIza8vBz5ufhUOM%HpC-~d6k_u z9i*4wfT}QVuIeQ3(=Kn!OrG&8tcnkTn@+Rj(7b$@=KyoDs!5QjfIi@dYH$=P$}!SP zIhd-PRZF00)v9pz3o4R} z5!CRx8h&17#eU#-ZOWqTboxI1(4-&0GwK5i_WzC>%&c{^q!p6c#d^b6yXHtd4)3#enYN60he$29%&}0qNqAy-a(HT08Mmy7G@`;X z6phQET6)K(pV7}DRL!wyb0ijpJJb?o-HQnR#Iu~E8`Qcj0PJ_^KTP_iprNi~)TfqB zzoP#Hya6a}+8C!5ef8a#1>D_x?CSm(SMktC>)YyRi}HqlYtv!s0*(>d)@pf4*nK8u zva-`d5H9q*VH$~qdb*kOs-?;w2J;{(+Bh+e8)&_ZFOri zC>M`M;m@4nC7A2?O<;-hBVMRL6*E%fq-WBg6BCp^RWF~X+lO8-D`^-2B8LUTzerYf zr-~{AS-g}Bi|8)G7zAvb>GXnBKcqgHB&T!?Z{{N`2q>?Qvcme z>^%ih-ow`58dHdb6X_7Xab2`_MkKxlK6knxIu~RWK3n)j0C9uPPq>ik#dx=TLWZzJ zx+#$VO0v#<3(N>4AVz!Hk?LNi0s}Y@nYI`pvakw7XH3E}MZyvN!Y=V1vlu9HOcC?~ z-sMW7mMsQ}+(g*NE}9O*b4SCuNP0fb{6J7K#1^NppBGH{c}bU+Uk|m#Fm@a>8=GPc z@B}wSxkH}Ha9fPvp$4i5lZTpzcqs8UY>U&y8K7}p916Ipq7k&#g6_jq7IOz9ZE+S? zNw141d`n9p*_6gvIpDRS86K|~V~ad?m9xR`NPWCwH6{`*MaXE00Agm}OTetWJh&f~W>W(?%lAo17KXo?FE8}w1E44Ky7n_D4pDK3kXxbd`gO1!Leig~J*Ft{&t*$pc8VmXi!y=4#5rPypedhf)q3K61ySj! zG$qm+otZ4mV0pAwKc}l8%XvVm(}^R!8D*sVl9COTd5*ZP41i$IMnY6a+J0Jpuu=;H$(-q2@TGG>c7z20FY5>Lv0)J{*9Wz|OG zHL<#th$a-`SpTiF>2LIRQy|#Z`4_c@sj*mOBPV9kMLnI%YiPE`l>#wg0BRIaX7lXz z0MH|+*P(Bq##_XCQ?vrJN+GKblkaVDl>iK_IwVUY$clT6lB!wZl%t zx3;)Od;wuWqe?EMrU@LHTH-pc0Bz3t?0Q>VM>l7Pt)j#fH-d-BxxsW=LggHQeXe_p zE#}e9mRQISx7lJLwWo_a#9gMi6XqakWu`SXA-UIRi@U`=a7GkmX0PG}E%s_Kr`iNd zT+SWtu*KzKO1ijT>@>v#DIHccwqPSE#vShBZc=QT^O6G|@sKSZ7LNc?@R@q$RuYJU z3ECuf+hUIjjF5+^QltuK>0mR zz|+&GZwX}T%^N{mkK?JG#0K_KASbEai#n-uo-hWH;M4!#r_rApPNLTV3icE#SP?vH zi{}LL0k&%r;Qb2l0K-2H(mI*UV|3~^ArYzkxuJPH9XZ1IXf z%pZuiAP$0VOjYr^vX8fL)HZE-0x zz$e~Cydr)nXy#||q`bX(6)5P;8}_h8;#cgTA>a*pVVR@{JTFVU2TFI}x4-MLM;M#G zvBhu2;pFztLO>L@xbisCnUoJ_)ZV1)2a^!?G(b$V5lR_8yEmZVFdE}G*GFoiYnnLS z4?dm1cltb^llYR(CL!>zw1|Fw@7m+E7bV9l`Wtu51XyhcOoGOkQXo|&cnJ$sCFj=!f za|lYwiKZyGeui@UQ4`O!;C38Sll{^fR zCEkTUCxgbF$$C>6yZ3w%EydST(^TFM!&)JiARW5^&3!#;=5J9IL%fUfP z6yelD3Ra$D%W?8t*e*az7ps_~udd+a@k+6S+gxDFVot#%NHJfXloGV!-?;$K3>+go zrXonTya+ypEDtC?)eDRL@g8x*K) zVnyK}T`^PT%4Ml7%VfD0JcM5A6;fKrL&-~QIfFBU$vjkLWM#D8k~1MfUE6Ltw&!cz zk3M*XETaZOl(BeK$#vt$*S@H__2BSv7C6p^{8Idb7Cu~Nrw<4&_OX?KG>0wezc|VR@5J%WBF~16s zaRgAVvgK;I2IDkDT56!qa02MK<9HRcK4v*fH-ar#E9*_UF2(Oosbb3p75(aA;z8^- zVIJvq?x6-tUWwM4Sz#Pm3#aUYqkou^7Vg5g3h6UTu7};}y7TF-8@C+Y*WP{0-lKbN z!{gEC59%&hS!}T7MouUX(nd9f_;E{K4Vtt2Ew8cV7v!~yU5zaf#I77<9G9qzEx853 zSn5pmG`eoPvFom90K2X`4_FfCDNazU`^Be@-F&MhZxnQbv4gdwGxN(oF$oqiMaM+T_mJDVtL5hw%`=!I}FLXcj^s)P& z>$+zEK%Ca+t9YLkBWAW)_IkRC6Qwhc|pn+z>PljAyPWEx;%Vz&r?TVd8O;6JGHBN_~4V_a_ngyIk>%R|0_WnNKaYv zRkT_f&*wS3Zp*LBZ=l0?bA26H*q;s_v&4g6&5Q|_d=tR#zT=**&O5d8>)!nmMunht zKlk{NJ^L*AHbwy}TmC`5 zuS_GK-~HS!J|9NG*`k>8ls~ZLhY}&9uQ?ipQci63r26=7ixbgfi2RKu{|aKm2>$qF z!N z!yPQdkhWnc(_0sxhIi|NbP7wO_cIKK8o*17%1qaPz7=>G_377b8EM$UIDF{guIC=m z&Y9QpgYHI#ZP=VVgidb30l#PqrwZ4b20}s4MhQk7SBHvZ4Bme3*}CXpYCQ^Su?32;Hqo#CRnIDMp)J>EuqUlC9;!2n(FrRMTQQIy{0ip zLs=1JsGZCN2un{YtGcEeboSfvFzQJ&PB+dp4Q!r!bgVj?9JP&+##sQ(+}X3|xq#AZ zykGlY4F6_x+41Xqf{(xHl&_BZ73Q^5>m5_Qrjb*<_P+nz!2kx;y9g8;c1~87uH#9dj0+v8uHukStV6h_2U>iPl zh^HG9jmf4l3BgX%jjC(p4_?@$A>jfgkJD(=;es{AHX>*<;2=KWb#9&7y2BZf#@hO5 zd}L))6F!!4!0yGGN9&|CFrlt$|7s}U1T$O;%2TL#?3yAub)_^94; z{nf#;v3UjI(%JLzeb%&!OGb|y6P~@GeD3Hm@I%5&`u|qUIXX64=t|zsl4q7hc=q(^ z)#dYWl5Fnmh1KEdR!LY`1`-a#+_yS8eq`5HPlZe2gjZBmm(QIS zuBe(fJ1oMyfCW=4=a*OWt!2#ecA;}r-Y(LO*~Vq2F$bPoA5>H-Y_rs_axh`cHL4*H z4ap)w-}%2s$O++-@=}A+i>{Q{3VL2m(hsVtvIQUMG8WoKp)n%MG!|qVBb>6OwlPkX zEkT)Otbjv5e@@xddF3EH!y>_DunzI~u&!;pkL`S-`{6x@54L#?6?p4(2)%fo>abRI zSO;rThR+Gmp*rI4=?|`1jz}gXUb?=kymNi zi(nv-9)<|A`$bN3=!5018>*+7<)=;Abd6;oibi_bGB$8n#|yxlt$5=svBOc{6T6 zs=0$wo&(jQPv;=EPH|jK<00(c^%0%^RHSLZ9~^Pws_;UzKE*7Rg92%*!V#odQT~K5 zPNx&*j8o<&4Mo~NfF~1Ak}N#q>q*=X<*y^v6`v-mD?UV2b#P`E^#|gf+woa-$=`GJ zD$7G(xilE1Lr~)~T>1Y_51!IaLtmtD@Cd<@+UVl_>Lt%gcUhpi9IPujU7|WoR_~{vo*zLKELti7hr`q{IzIrgIX_7E$MdH7e z>ZX>LVjczY7^Fn4D z-4!yK)tZ*YNT?EKV_`l6X*$4m39vK+5G<#&XeMZJDP2snP@@W8`&|Zl%%uobEBemW z^L6Q4>(aN@rEjfE-&%*h7AU%1(f2IWUrhJnehCn=16R{SX|A83v`z98x>ymmVaV}_ zD(F4{;&^a>3gl&3%V!$i} zx-%WB<|nvUHD^6jgTw$u_B4t2%hxw)NIf7`yS)j?Oqgo>;OG+ zC^z6fKgrK|`Go>goyOnTa|1WljZaUg3_CAmhtdY8=LT{i z7SEJqhBDje`3^$va3^tt-INo`EXfMl36^HbadfMa=ysQ*?XFa|D+y$+*RJG~ zvD2>Pld;iGuhMHuMB3?f+yyZEI~=LxHGCZ<7FKXIeFJxCSVuFxL2ts6UPh}GYHZBC zg5ILHF@vPW*%*;zeMADIcvYi+qgBsHkdq*@c-BoQi}MfQm+CbeuRptLM& z*Mz2h75A^>pP+BjxB5Zqw-r*ahlH>W{7_Vh5+6YG9jJuwmH2}{E(!2KN&wOy3Uts< zB>)*p^A&W^FCY&k>7pbfl-5DN#wIC)vWjCc`}yAAL4Odm zzXUZr)zS~4oAkHvKBFXkFAWUg=1Dx^(njxx@Y+o2$~?pp!u72Zlj}oTxIQji-#k?1 z9j)+CiLdZ2N(=d__EHwi?~|0KjPU!=ZW++*)4)3dR;qwE!u zQqNDRYZjj0QqOOxs~=kB9rgT&*pufl>OPG7JjU3Me!haX z`=}1jJMsKBo|CrwLl?y#(w~4j)=MAKpK&MA>l+Gne)RoS^b^4UMnYo#LVpE1FNQDh z-}FDQ+N^0GpVUF zXBFG}O(njNuao`--RVClXwd;76Clp-5C)J61Ote|1ek%b4q>A#!&hwYrQM;7T)RVL z<4tBBw51rV{)V6y)r(W{B1_+%CZUVQ==(GIet3>JJCxNXM(?6vj>vazO=Bw7KhT`q!E}ri`iZp1OY(-uSUt8d5Gm@Aw*A1<@d8rC@+qba#hIA39F*xK%1Dh zlLoRiE9?}dgikV`ICM~yErLvi0tdwO{ovXRxanEo+(Z!;4CM>(WdR#=Z9X=^1z=_C zqYfD2mta0#h70iujLIPZ|1~Js*P&X!4yF1HsOC5D<>#9)*Ka}Dz75s;O}ZJXY&(4$ zkp2$D>YEUm@1pki@W1cV5AeSq(GTf;-2aKb0crV(*hue)E%Y;SC;dVR*0UVch=&q_ zg*$dgP*pr6DwJRi7B`8RxHD+DxE5y}1DNaCV!aYEKNaB^eWjR%(uray{Y6wMQ}9zI zY-|di7qi72sFr#3thfy8v9W?X#az_S#2U8X98du3zM9tK{CNOEyq~6u`CDOtj zSctoUSj(B>a=Id4Lrb{Rsc*H$C9z=jh4o+Y=_0^{E%t0}n0Z zqzg!BBUz>N*GH7071=*X<|fn*JUXx*e*n}aP;gK-)Cl&oS1=;4AV(~9^otmr-zKhr zq7k7svGP@MKKqwCkR5>fgby{-=s&^UUn{8P=^heL1Moi*tCS8OAy$Kx618*18r&I) zseFW4ut5@{4p{2z%PYrMtV9D2mA12&E7n#W6!lPbjWBhXUYls@5J*gv1oqMz7;b^B zBuq7_5Y3R8Bd$eICAM^k8w{ulJm196+mg?>^79wl#qG(W?Ob$kySUFO@`cO}@t{O| z4DzU;T|M`Pd`uB7=wl%Sgik_E`aQt?2Ux!M;RF5=G1dq0P(Fmk`x89GKf|;71H8b$ zDvIfdb-PQk?Fr$e?T&Do@E)0p2Ku}KYJnrxLRusq6OY4pE5>(>PlzWmCi`C;x~p2^ zOQ@ya?ZrE`h^LWc3DB{tk^oT#gNFlrn~462?^dUvlJ@o;Y&<2t+?OHZX-13UVLBRY zWFKBUg8;uEPyZ z@$Gi;-FETg5(|xfra}Vo3l0hL@SCJ_;s83uV*p1CVL6shlC_f9{TWO zXMP-V3y=+ao{8t6NW+#+I(~vGlcpe|sTNtZP-N2*Tvv*LiUq4+Ww8*K1sh!!Y*d7o z{8n^<+zj}Qq8sG)0gYFRBe?TJXRXFpM64gDzy;wz*Mz@&wm6DA3j`jb^k|x5kPZ{M z4_HN~kG*am$IyaVl|kYY$~VPUC=A6GBosIZV_E6Kzi!+MoMb*Od+18^$+2%Hr(oK} z@0m#-Fv+x^ru-@>b2e7z>x%C3Im%V$0qUD^$IH)jm!Ih@Kk4mr2`^>}>K$jEf5Pje zXH$ZTQv8`=WQ@n)aK**s!Z*n-bYi*zjGP?t7Zofz@G9&O{|yN@_tL2>gpPzGn*>jt zLDnYz2U6`w<$FmmI_<2zG$drX?T~FkR46`L$Yn~9yZWN`6OGy=X!AM+{HzWskr)(j zx643>!~us_X+?=y*depA1Jx;EYIOw}^j1h>S`K1Nd+}V7?o1Lc*_ntX5{pBSfYoKR z$=nV(L_%bg=D~Y4;a{*=gwk{5DJjBm6GR;6-@viabc)EMu*j$JqJYY9trBBtHXM{W z;vAYQ#z7dy(&gejY7*zuRk&^u#rP4L@w7{n&=X<;4Ex3OGVTwFiS&k;gx@lljL-5X z(tBbG9TrpJdriZK@l)snQAVHO%hW+)x)_b?xnhPw)*VVPCnu1F)(OXBaspXmvK$JH z2EoEduv)Of;xtFF#yhwRAf7zph*%TEoJG-u^K_jYriAT1S}spj!uA1v34r5*G<0%HKQY|u+04lWesB(lmDx+7A%A%;pVo_9m$kU)6SSW9!w9ND#NISd?XqQ@3 zsZS-OTeT8Br3VHtt?yfwVx?tsdXO(jC}2->u0TEbO`n8&llsneM_hG%S}$n>5gn}{ z!}9dL(k9PPN_&DL5>Yc7^k)$I7KD6CXZzXE!Ou%>%?Sv>pG+vH<^+WBBU20<1CXdw!12MKTrTsVk^MBAPFK(fK&1^*(9nib>tSxW z*KNr#&@GRlrK^YYJbF0O!1!7ZvksPgg1R4S=PPR0;|=>Pn~-D>CH{P*5jdj|Fp8nY zLZLve>042lYj(&22)8UU2F%z>0AW_3}pNYSG)wWY5)}iFH;DfPaHX7Gr zu@;{GI;z065?3}7lh7V3arv+beP|=GNl}%J#3m(hJYt0k$pes;kt!naCV5c{B4sH0 z&Lpb`Injhbu{*!g@#X1V$V6@r0;Pn!q`rmyn}Vut)U5=2T9Y?Qj6OAKs4lRe*Ch0cMEF z&geikGt3aSHeg5~nX2K|Crs6tSo)brY9P`82WH{QNqN3z;<;Wu*Q=`^n;%!J=d0CK zn|RIH7*uE+QC$n-t5!sE>uCb+C*i&U_et}=!{zJ_m$N$@&Sqj1j{5wVQK5?ZEXBQL zWcQ$pgu-L~xM7&Op(Cs)`%kF^95v}_)qjSBu?mL5W55S*eVHl8D`xJ)8_moTW?@3s zOrsc>#=6ayS&s>L3!d%CNx$f6ucsX+MEQYnT9@i-T^3@YLh-)E+*Fg-oKn$;g z7~TMtxRuJqjkG}A3`@O@YH?kSD>F{3#uG6P*mgvc?=HsJJ_u*65>C?DxIc+Qm^@Pq!sgHiN&vX zK{+IyMRpP&CKJk=@S&ti&L)`4soB#z_O)?OMG zv_hG=Ssik^MEEfpxu@K$;sIN;L~d3n)5$jdI(NWB1RwOmMLDv9xt|C&v(mZ;RHAm!PufiGV$DyoH z&~@wNTn;FoR67@0gR^{b>cDne&XYFlX!yehGE}@Savte^j`54KEC}jy?_YxAnsp7`47ZC!0&N* zqx&(}uV7v;U@rUdGd*7slf(;3P9DH~ft`ec!(GA)txuRPl<~d>d!hA6#;H9K-0|)R z5?1hpb%uEy9dk0wCHRFdPI_g+xPD*GLp|Os8>Nh07IuPe!|%H-!nilkEpk43&PK*` zigHte^e~;L>g6bD1$*)?#M`iS7L?oqB5pB`f;vDOE-}@tqWTZ-dl&N|tl|%Bf&Q z{RaNMj(@M>pXA@E>n+dFVLF-fctNMc&JAzEuz#e})kq&89O7&>vNjzo6o~75O5R+h z+nsca*p5C2wqJVa&R08-URpCMT=`_G-1{RYGJG%(i8TiZBOu7VHb^N?l zUA5gko9&P|0RN;7UTz1}c_)7Q`yjya6728GbP29AaZP$vk0+o>k0+psI}T$cgzzD$ zk1OOlRyct9j8`z!X`K?v=)uIiiZ`K|RX&u2?^53sudC!{1QqAJ`@8aT>}cw2;4<(? zVsWSBzeQ$_T(mzwM=r^c%i84fPFX`p;wEwlDi0`L!`JbzBR2bnT9`gUa*DgKQ)Dfc zBNVEkq%AeFU!WAU68I%6XVkUMs3UpH9)}&WU!ZV)n~b)}x?MU6pWi7Pb!5WlVKmA0 z4BiH*zX>$vm$O1K`nESF-Whzj5RaIe*+|(vF?@YA2j$ge%1%h-7xqx@zAp8tU<>z#%co$0am-qqVUm+IyPr6#Xr%0fa zv722IY*v`U0dcC8Hz{-#({y<=?zA^Pko-9x)2Yx7AJb6$9iq=&I0q9Xe*ostXgykR zJa9K3SOI^w9gts~WlS=P5rov_=la^@9mTN7*`pq%!3D#2l9e4sWR2Z>dC$VVGzleR za(%uP-10FRfd;-6Xp%i@Hw`SvkvsVK%2uDiMh|N0&7nyJ*g*oQ_bA#BY%ZJd8tb-N*qP!4LEw1wM{J|NaiddmlNFKhk3H0WA|B(hBhx zS}XpFq+U0U=lu=2kiXMy;v+>!9sJzw67p_`kT%^&Z{akHg!aEd?i33^mVvNiyb0pN zG3WVmmweC(B}*y&Uo^;s+YLYI6l^N65{01R8JkDA_5g*crIOzU#+Xwu4HMcul^y(> z%^0r)Y>@IHc7m~UkI!vz9hZ+}TE3G^gYZ7QKR=P4dNdKir{u4aDeR%lS7f;|G0TAx zhuo0sIzt-x^bNnQgRZq;k8?>eP8~47Nprl@jw6>`;fOi}4I$YSyaR~TDJY3EkPe7m z1&tU)?1#&ymlx$>(;`kQ})mCw2@}+Gf_a$ronrr4e}B zrrr+9k?o1MmU;^)Y(;-LvJ(|tDSb(y1iPgY|L-{V189fZR0@`sW?Zz74rGcRU4hda^yGN2M2oJ<_4-zez#NpfVW|h5jW1o&TPovDSznIl#4+= z0$2UgB7DjZlWkK-X408*0F9PebiT}{smLHsmqD6~JmE@g*fhu?_?U1gT`PytO-NLkU#sF&Ot#!gJKXi^!TA_ z%~-kx-NTil@p-TrKgUMWEYSL0(7IjzN2mNR2Z2Z@9X>7?^$wE)qs+smL_X!n0vaw0 zL8q})jAsU;PU4Jr*E`->ZyJr2U245kPz%uG847H@Bxbl1^J76NOV#n+%u7aNjy$TT zi%I^DC;3N7of7->PHOirp44tq<%}Q`gg6&pL7s={7E>6pX+9#z3*<#qisz*Kl(|zb zlS#7#!${+JKK9UrJIbD<}M4p+q-`)MKuX*>klxriWf*;cmF_wbLWmF=|X@;Cm zm&zG*1x=y9*;HT0$m84_xufv8EV=)a|F}#6-O=r5$+1Fx)qLmHT z-wSr>TE|d}edD=g@OG$54k25LtrBQcbg%NPJvc+#`;95ici!PQD_HyXX{Bfnef1IO zd<5iYk6H5XnIw1sP_vr-9;U#GYa+HHo!mTYkvC~*$oCqp*hwQpzE`m+z)4jDK~AnZ zJb)bOmQDkng;p57RIZ$hUjnEGy5~^=B8FmIOW=($WHcowx|E!#=*N_tsPfuO$%$&O z(0~daCuQh$I5GmSse|P4HSScJrKI) zG~6e(Q`n_VSX3g?@mhD3VB9i+nO9nwt1U+v_l%R~ zj+3T@-tF}<)d)Wr?DWb}0UMNIj=EN-aSA$((=<|8V<)w+3I^m=(84&VDL1L{G{1(q z;|+7d5p=2e>mGR>tQM9gIWWN+rZ;{^*O|s-XK@)k;0s2$%{aUF^1k3%UWPkdhBMq0 zbm#;q!ENa+O4q~DynzPDtq`S~XsEoI zM#^oJCvU-S+BWF;FT$t233~nxwNCACMBH^oR9MQVWfrUK2>Zp=Mn1e@1IwDJaw0w& z38CT*8$XSrkwyXDYN29nuWG5Y3%VBX$FV34A>Y5?dLYw*^u{O1h#nm+)ZdxvZ>2Gh3}e1=xv@yyEjE@JSEx73)!&FJtua;^tJU)w^>?lM zTd)2$s=v*uUd)IaE$X>d{k_V$=P@=Kn~bYftpdg^UM{hmA*Z9e{7L ScL&mpJ*aPyf%^MJ+5ZB(ZNj7g diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpRegionSearcher.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpRegionSearcher.class deleted file mode 100644 index 23cd61422c4a41ee86a6ac5e14fcebc4d4a84916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4145 zcma)9YjjlA75>g-CU-KqKr#|T6lDO>WG2b*D%Aw6Ni=nI0%-z4h_>8JZYBehxx>A8 zc-BV+DGDlDALXH-fW{8v2l&yo`roC}@7$S$2?Q2|+k8x4*sj$#*}0ejY#*zEeMwe z)~}li+yZ55wGCQ0siorKWj$;4m@QD0G~xpOsA0y#RmBq1SB9*Wo|bFqgVG~5~e7aEKqsvF|At6 zHq6Z`%1|y)64&kA@jS9Rdez#Nq-I%-HP>5N0)g99cu*`bC7MX-OEUvKy188IN$QSU zF)i7pnF;xwpDbSNSm;9$rm46cK3Zw_CoF-Q=q-XtPu+48fvS#7%1#XET?s3}Bbrhv z!`5txlfW!Guud~=Ev$`AhuaOyZlTyVGcmhS!3=>q2b8p#NX7e1Z9v~>nCrqZ!_>nG zBkXwIuG#$^I-xgXx)(DACXGd)o)PfjZp@ah+#^s?2wSHuH*Kuxk}K|2aUZG$CKKdH zDxI+@)wKZzrMe~uHIFM0H2M%kt%48{b|NuetfCI}0xI|DZAvDaH`_XWc30PQH!GMc zP%XW>0b`;@DlQe8OjFzJLm1QKV}Xi=_=P~RmQL%bUI9;acXLfw34VzO6x>fhZ?a{V zZd!z0MFV7XBJCR%3e3D2ZRHaBxCFmaK)%kt$>yUBSMd;bIy+;Pv7WfyOaP1V)zxvOC|&4(`hCek*%?_r;xi z{`bZ1i*F8HeEE3x@L+c6)xg%L1KCgBzWmbjKKvRH1&<1pU(LBl%GOy3R6K^q1(Xe1 zGNUi+6S%!PlIM$4Nb<`XOVNg93YN0UID9UsB`VtS8z*J@3|6cO7+R3(xx(adHi%9Y z%VmOkVoAed9qGao3RaF1(m8*5ziDig>8)ZFRx>zSZ*ONNoi=sL(n+Feg~yF8=Kfwh zDG% zBfJ0I@1NVvEiN5A^8Ir!O9+0e;&)g>i*?g9$cwN=ru4H>k2yevZo79WPw^@-#FRrWe})n*a?0pp<;4uA6Yo?{INLh(^O7CR^ zZxFhO7ax)U4Gr_8y+>7iB!gZ?FSVoXG*?9FLC z++qx*jg+3U8!?kfQpEeH3wOv{m@{Ha;@iV#31kwL@~eh#`LDz;MxdU8{{%l=n966d zBf1?G&J6g)OIcnm%(qnZ1ka%IT9v7eike%1Dq0|w@1(K|)AJkO#W&9vTWF=U?oAOD zZRc?JDu3V%W({M`(z;>PG`PsdsLQ1=bmsns!vNR(qmjzbsPLf^t$8y&=?Q0)POn_!D#9+o02YiPa)rr9tP)aTh9isS98RZ*>7IU?5sB z3u(;8R@{San1k)O7q3$K2EmuuK9~a_4^%l?5l27wtwb#nSj&?G)Lw@qLzm`-d;lrJ zx!oBV9HqI(0(h^`Ot%7|pv(CmbcR2`+r-b3k}F(Ene&KsD$vU~W*KBmBoF?}V&$V*AKGfUlxT9P*S~oX?%JU?iR!jc?OD9w z2Gx1QEG%Zp9mT2MIczSU^DvoKSMX{%jp)tbWpWnph#@p`^HBdQmAk@IQM_!sM^t!}_pbbV5K4nH zT~xmh9yjGh^<}<8W5Z|1hUNI^5T;bQ-Sy@8xnTC#AymrQva diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpUtils.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/IpUtils.class deleted file mode 100644 index f20a9e5e2b230bad04277b5404a5184ccdaf6ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1483 zcma)6T~iZR7=BJZ$PzXtqya_5idH@n!V+k!6}81EB{f6_Dmr$0u_TAElI*6tCt&Y7 z)0_SU{S98UH?;Pmmv*MVsnh9mvM^%Jbex^pbIyC-eLtS(dH1h>e*Xi&3aSZ21TNNH ztGN_-yUN;a2X@D?y2@z!{lT(V5w8fmqpV$RwgTVUfphO+rFdE$Hti2a{_@&)&K8+)eJSIDz_Zzs!B)T)(k7& zw|!+>f%FerQdxUSb*weMwnD?E{H`klwLJT7Zw5vM1|JtUrQIr4HimEx=Mxwcn10Wo zCdP4rAz0Izv>VbFn9>!UAbgBrpVUc^E)yT(5?gYDd%L@&!Z{#5BmDwAN#Zg-O5n;{ z1cu>FT*VZjCtq!W+)STr24+ab$0$a5x&m=}l#ot8sIO!uqd zn|B*Cu)w$*zW40=Vn_;MG_XjPA61M0v1@ogHt~rrHbulXW!qD7rP1(p3D-O4|LFiQD*``Xjq`i_&=uwouv2v;2OA^pqB_%`fmNF}xqj zK|sUwe##MuIMiBdOWF1Pb-Qz{+043BdtPJ1_U*P*(hqc9YbGk1(@a=brRjRUEZYHz zO>TKzzb;oDJq70ROwMbuphPu9ImiO%5yt@61Wyqdv_|wG(PGlF#8q&O=YK`&m!3&vu z#_7|>bRj!?ghF&Nyt7Wn>uAbF+>~Y!mQraRoc{a4-dhX&fStA5g%L zRJ6uoH0&35Q06IvXSmw~_#RJb7>U1;OW^W&E;k$*!YYk%L0^q2XEQ_%HLe==@%(F? z%d?pm7|t5pOdjFO7l_ARMqlzeY(%pMGWv#y@m@+mr;I|3ous+Tv%pt;M{xgNyh}=2 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils$TokenClaims.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils$TokenClaims.class deleted file mode 100644 index e8ad63659962fcd84fa088a263843fca02203037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1642 zcmb7ETT|0O6#kad3nf@u3yLCm0c}$tC@Ny{0yqwJDma2X=u_G*CD3MTHpTHj`5-eg z&hX$5@JBhGO;H#R0e1YNl0}QS>tm@0*9FQ8VqT@t&83Q(=fSC3gyRNEJJmTdrf-)jUI3 zI8}8yAi0#5u+=%8$#ygCUlSER00vD%7!ig<(X#nQvtHuPwppri6+)EF+K%a1>f2K) zz_5lWBI=aV5L3{YEBq8vRPBg{%NS)?$rLY8Z@z1iu{~4nsYDqVEpIM^TToV!KF+5-x^_i3RD3U)V zNP=OIo&-HfB16Hpx#NZB#K9-jr2i~2!Ozf^SUBD3YnLS3EsEk9!$faW+9AK6#IX%7 z-E|>d()m9F+$Rc#XlX-8DGJjmrI_hS;w8x_S%jge8mF&ml8j_n|AE2pbm+qny(6A- z6PG*<=quV4lIR7Ab%i9)ha~AQ(N63hWug*`>L*A8|AN?QYDwb$RWeo81VLlKH!u56 zJweboZnQudiquDzF+F#JiC!p1q`OVFD%3-g{Up=+Pu$US#~9RSj*-x3kC8k&H||}! z846MV)f^}!Jz>gPwLOC@$ze)ro^*^Rxj;c4;W24bbkDGeC5+)ImhqhA3lFu3mn73P MZ-3hUti4J91?VVml>h($ diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/JwtUtils.class deleted file mode 100644 index 6b2812aabc47fe24f15b80ca360974f428de73cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4694 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

de(9ayp?IRNFYtusy z&?;^vhJL{t-;^PbdXV|_tqSa|1S~ZO5K53xLfo#GYV5=g7k*6TEyIs^@VOVp@ebh! z7`q?Gh(HoiC5U)LRMZ5cB&Bxvo+6~dzscp)>1UMEf83qr`BUa~!sWH<@rt{=rV@(R zADFy>j>LUTPTwrkODlRq_0;wd;9gRTkXno+dex`vvJ zmkv^Mr#L66(Xxu#hNtM%c!)L>?KGr~RngA4petg7PA3nw>y!J9+ Wk-eOCe@*XqnKSb3l|vo{Z21S}DIY}u diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/StringUtils.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/StringUtils.class deleted file mode 100644 index b485b1350273cfaee3e44f868d2aa6b35c444648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmaiw&rZTX5XQfyEtLv_DE_?}55U33aKxC1i6>AKlmoY=EU-{o(r$SepMi@PO+0w? z;6oXwg#?WUv&qiP&bQzGc0Rw}-T_?U*hGrq#PRH5E%XP<9!x_%lXj$}8`^CZNN@NU z=O%Q9!kEvw?Q(Bu-}T1AQ4Hw|=}C3Tpp`2f2L0Oa3kw=DSr|w&*_XA~p0D3Ne*sX%!xRz>w=CCaR|4-iG>)CXJQYSK z6n0?jb;QyB+H>x5-wZuJ1%)AZV!kpB+jQH;&fy8SLWZH;>h{)7gJG&3JqFzB_#*5Y zO=<95(>?N>b%ykYWeZn?j~SBXg?$F)sdvOv$S_R&J5hs%5gnsQQ>Tq6e;C9=hl(MF zY+bl~yW<>kzhxfUoMF7~S*E>j`a=2KDEg0Yka|fAdPpE!}z{!pda4MOhdn8FQ)F%rP%ZrBnIZwT9#?P>O!3Jjtnr<>6+D}$qE zb=r%WhbG4?|@h$#LNImm^{RYdj7glHoNuofzlZzlLi8PT(6EaNR zA`%h7%muWAbLbzCeMdk7WAq)OAdqDOyx-5()_`)ATq9 zd0ZuL7zJFrEbxZPOFoZ2p_s>XZ*w}A>%K?!BT9M9_4-x1=6iYE?pJ@H3*;{L*OUt^ z9h3^nIgGbdAm&=2@qnAeuY@9IXjQYghq;JEDH?i}{0hYsF^~IXCCJZUl`MrQJ%}o; FeFv_iz@7jA diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IIdGenerator.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IIdGenerator.class deleted file mode 100644 index 2ea9b9227b71994230baa21dd06050c912657ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmb7c8wicDDw|U=J zkLT?UV2X}Fg)r7uCL{0SAmgJ~r&N|9&As&2UE*9FjMUDCLg^rv%l*PwQ>fqyff}Kk zsk4%~vWeX6GNS`QSaVrBn-Hq~!HN*guG*YJ>Z})N5hj1&zO+vX7j9iyXfsc9L+Je~ c4c|5m0;BmqfY`8(24}&k#=FTA@m)dt1+cP7cmMzZ diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/ISnowWorker.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/ISnowWorker.class deleted file mode 100644 index 9a5ea458403a76aba968e62ae2f0d64ab91457d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmb79Y|_xf>S!kEa%_Gx&yfckwAa1 zE=tzQ?Bsg8CmjT0L${C>0?om2C6LZTnif?} foc{wf`mn?ToXq6_!F(;mtP@rd?>0}$cLUuwzQIVL diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IdGeneratorException.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/contract/IdGeneratorException.class deleted file mode 100644 index 39db69089f464cc0970e4869cd887ada7d96ce35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmbu7Pj3=I7{;HWz{(b(LZPMptF|ho#y#|8YKX>I(*(7#4Hr+tGAvu!-DY;MUj0a( zFdqB>ekkKRyOTn2O-wxO{M%=K&ol4L&tKnv0C<76g&afI4IS?wjz-EE1u?(yovHFC zu@i^Uh ziqHJeS6zmc_FkVM|1ug18!IT4Q9zNQ+Vey4b{Y(XJmZ6jV5s#Xmrwd!`g(2_^J?tJ z49|Q2m-mpN(eBOjo+{~w-r-(fM_SX7DhyU2;+T6$ls}{lYj1=aN5c~?c_5UK6l-&l zc{Y~OrH*c}O^sb=D7btY6ST45Ki4vJ79l2BrZi1^Q)62U?Tl?77WTaxoC{YaS?*xl z!d*JS@~O(Whx>F_qeuo^F+BZ8=7Nn0%uotq@5pfSTzXWVdPW`w`!t$LR~-5J(py=t z>xs@u(dhBelLeiZs)!=B7R?T*XL_|W!?mw8$ib%8rXD29lW3Jj7IJ^YQBE|`~|>M+{+@tu;u#BuokL;b_SDB zOg(3&y>aM-zB(R^#i4XuyRzZ8JJ>`d4q!_FNaU`6v@P|&jcOYHO zkZDOhQhf&2VaU}*D7)T7Qn*XuOBEc-V27&3pKjgLP3aHyh_2Kbct^fImEtY&hB7Z^ zlb#Hy+VcEUq19E>_K^%4D%1@%^G*9L&-e5;L$b25&yZ@UzAPY#B@PS4JQ!9u(#WI% zHhuNs{hmo(fiXxO$W0TEWqS#$b6l{KbChf=Gsoq~UNwobotxu^UCe%)3ePA!m*I$q^&W*ShT?7Enw$z%7fr$2Je)ABeBk2lJ4>hPqQ}27 zm~R3Rs1pXO+&Zh%Q|T}mHQD1?B(Z8^32O|=a;0N|pzCy(#U94vSA^s)rO6G zv+Sk~d!`=SxDS(Ixe*Bdc{=Ixu$k+QKpt$Wio%s_3syogY|n zk~hdZ)(whUt!wj8n@8GgIR!(fw{?0$rwb{aFPQp3Ax$T~Q=tU5$-bs5fL$2Wiba<# zA&)hbu#PQkVh2yLhcfnYMD_(Lcm)S1IKVp`(rCa(8itypb35dzBrglI!fx~}WR=6<$ diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM1.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM1.class deleted file mode 100644 index 06a6e87724d608ba6d42e8d18147b89914775186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4383 zcmbtW{c}`T8GdeZv%A?`LPFCosU*l(a?-tFzt)~QdB(=|ReU|5t0QKB<$ z=CR7c$yE1o!)i^Y?bhVDX)9PAkz>=gK9=eojt`Pk9O<1jqaDfUsDgsWc}#hvb=xi3%8;-C( zkYI4v&@DaDr(1EEXPKVHteWPH9k-Cb7!5Qm-A-EFDLbAt(>piy`B8|C8fs7}b_6us z0iTTS*KnshdO*Wn(1f>H!`=9tjJ9Z4i`6oEP{Td$=phZCm(j!6;l*|ZjsK5j8oclo z0ZQuV^xHjh&<@eOTSJL!%Wj#rXefqXR$FAcPs1vAb)QTRXef18+hydK)}f)y<#mWi zw}x_e`b8Nz9`$Ni<7#qVWnQ-L?>23tYXN)+UpZE3O;tm?H{ zubp}-TL)#GhCQ5&_2`y9X4r;BBUkNBGRvV@b5t^{V9%{oNUpTq&CS*j3xu_*TSE$V z-GcE;^(eTl#Tbg43s)H0jqP$o$+!z9+1A`=#uf{@+jA|O^RAqdi+QD8#)O^QE`Y>d zYxlE8;u=OkPuA==>?}UyT3?nE8luo;WNJtvrNGmwC!(T3taMaZ8q%U-HC4zlx&7os zUBsE^Xd=*+w8r#==4agV{CEjxym(o`y7@~dWU@l7@sw@E=Dg7G3Mv`AlocmfOL2#J)e!bd zX-_H_OXqGNv#R62Yh$x{Oa|Qz!M8OGVn~8I+T#>Py(()3AYX<*gBL@>retMX(^@Gp^{cradsc6{CNvM^!*&`-{r6X z_wws;7V1##aEPfy`!8^sDS*R2HwYgf#M7{$)`3@m_eO3Ce)a_ zYkvkIS$QObPN7{H^aLoeN2L1CW^hnuof(A1xkAUec7ipqow3}^Y}7L*TNvF3d1W>5 zI(i5ju#J(~fhO$4K{VnBcERNAGMmvqk&3ko@{+CZXJ=F!Pqou zJ%2sl!)A9A6&+jIzA*QNE@4~XFm?I${7tI#DcSXEzcedHTV=FWtZ|QB%Ayx;1C2Nk z^8`JMuzC8~JOgZ=DE*BQCkzCLqCpI^-bdLc2^?Vi^zeRs3@KLUF-lvEkImT$-bNF= zLnev-C-Ew07w{CD>uEO8Gx!BB9zh_t!LDUXwFn<^uN0Rwm=A^5@vyqBiPW}cKbsf-3k=C+)cVg|K#k+D-w*(!$91Y;Mjcn{yqDk$FidqKQ9FZ4$wX~2 zlUJ7IJmuhCE~R%b%qE3%>C2{}QPTIcoYEknZjjM(S>c)Wa&TTQa?0j1FvwRm@GN~h z%?v!xclQgtZeGOwc$q+UhT!%FLFytN!FSP%w;B0&Sl^eJm+vzdQ;f}z7~3D?IZWd$ zf$UAj`yKoYKg7G_yvP5`xPtfdqCYzq{i}J=*HCmF+g0D~>;B117swkZ+eJ^(Ha^Bt zBk?&n$xrJke%dB=e#58q7I8nU_P<7GUO!Di_u^T{dlEd_gAe)YzQUXHBc}ff%j+t! z``3;^RZc_I%pq5epez%97oYN9m4e7&n2S1m?__N{nYF2UIh*RTHq|=Cu*9TUn)C@x znx#pf(4<)&_Zwanzs)nLdd{TkIg_-dCaLnKbm4(PQyp(gKEN{$I_xs$gW;#$!0##Y zhrCRbWKU5Us%IU?Re51%6`rTG%3ak?y-%US{{fzxg0HJ?2H(u$K0X^( zv-{l6-oQEVN5<(>j{d~8Khx*G@ageaR@|rb_ixMiTf_&&S;vwxp8YCbqc-VH4eE9H z)HW|(Ql%r$%~@$vLVR2I9@Zc3xWu8I_>8N6C-*bQCXFXhV>UW+KBcb93-0w+wZ+ShP>3#4Xm9-+>o%A9 diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM2.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/core/SnowWorkerM2.class deleted file mode 100644 index 0d4a11dcffb7ac6ce801a3f1c2bb9e29138de2ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1476 zcmbVM&2Jk;6#tFA^(M|H&PPe1A&DFM;n<~H(m-BD! z9k&SxsRt~2rzgY_i4zAZRPoq9R=adn$MfUc0(y_hty9)*%Y!eW5RfqymuH<=e)pE z^9&2Q@;=@Tl;p0mOVwo&2+36_SGSZG22pYPDub~URz(^~^jbK86ho%$1>#D(wJGEp z-}D8;a5;3jf0av5>$^rnHN1#nc0UMS=)A~ahFu5@^ZP0A@)j5dD?&BG>L*cdRIyI=gg@Oi^Ay8MSmnVo!yiJU~(l@`b?TVQ59@q?%x?)yH8Om&peqWvb zI@|Jm-;0DB2Gz&}&Dr2}euLXS59;>n=5^t!G|u2%6SE8h&s^m&s9SgsbM#ejaK9~9 zYYZc~mFe>HF~u}a;sZToXBl$2JzhsiFQ^xgKD_Xe`6XJDWbMd#rhq^-DZVv z#S?B~)WiyP@~n%sh750ZS0e3%ZRv`Op5Bk4y=#3+$KwbgNYeiUkf0mw6`dw&^K>TY zOyvs?(DO^|Pm@f?)?SKCqmT5_ZWJu^lSc6vK!z#}()|F@PY1n=VUkpq6(}u5w%fmA zWWD@%{yq*Zo?pLXNOvL*jgg#NrMoInm*B#;8$v^mF0SLxP{e zH|P+i4!(`gBw+;3#@GkQo1sRBaFBX9ff3kro29nra0usd7?&`HO-!JUN!%hjJCvu1 z$;Pza-X*3FU*ZDB>9t!#-9@??Sf;2k82@6<#3jR=`X5tBm|&!7Q6kDNQ%C~k$6DBI AbpQYW diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/DefaultIdGenerator.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/DefaultIdGenerator.class deleted file mode 100644 index 3679d9f8171227923e3c26ad104223f52a3b1071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3116 zcmbVOYfltc7=8}BFv~i?au)@=Dhd>2Wf84hq=2AHL9n}`)}ju(2N+mp)|puZd$adj z`k{$w8cj`YNKBjdgKe$Xv>%(azo0*%pZcXqlg8A(XJ?jOghuIPcV^Ce-t(OI`keXY zpSwQ-=)s2)av1hUwZK%XsZUyg$vIO=sDY%V#?64K>E|co$}A74u_>+v4)RGQ8Mi{Q zLtNvAV(EqiH-m3RnO6dFMVktYOw918B_WSt?_)uux@H+l)Cz>M5E(X{3DdsEbz_zr z4Eu)GfsekgD+`$+-z`M3jj*XDAuc zqe^^CF;p>jgn69~Oi%rKjLAf4Bw?w#W_Ac8y!{JNZjU9DF&tQjdl|%K5HDP)kl};Z zgN+P@x()5;hM^nHUX)^!nBB}!UO$w{Q`j<8ZHf%aM-85mu!W)Xe;MMqCc}@d6!Koh zAfrWYnX9p*Wf}46a#X>987)t7a-^gB~QV!f(0#I-4Fns)B>poO7s)s(Zo-k?h5?WbCr{K1y-1_9S9 zV~>E7!~EPbk_USknp1)N$qx7)0=52nngaB*M}NbXUT(S8Md$3%ucUA?Mg7?O0SGQvAaC1EYK3W zx=X0&JB4inG7j0Zs+KjIW6uuCcuvgvB6?zEo*R9-Y4zzz&GKNFq2W=f6VGKUb~pK3 zcGER3b{df}DzNf~xiziFBs|X$e1Z})cp%fo!$B{OA|fidSORs=`Vm^ZIEIL*MY`CZ zUYx?Xgcn!TVr1IjN=(LSoMFf{MJX3Dbd*oQ5*Gv+nN^D-0^tk_%DtnDwCYHCc1b$PKH)9e351#>XErO(dxsA4E{oT5aYOBz2vq-#?fV1P~r zlC(WR8Kh5!OfASr3aZG{_yV0kM5JLoX+-&eDtNnc_0iNU5=Lq6)pg6Hb0%S%W_ob} zFH3ldp*E9JRh!r8n6qioZp{HYnRH`O^z17PpJubCqiq8oRRnfmtn`MXs#6>3Gc7yr4uuCty6Vi6a%#TmGe@vH zEg;R{SzpDHBX1LOHwl{-+_A3e%gFO}chPX)6>JcX>LqLvJ62zXRDB(}zV5r|035Vn z?ls5)(N~@Z>`ns)3GhHo3h)4_^w@wsHA^TKfHik@@xG42dpIUW$7w_`N8F#IvQFgDD>Y>c?nmCDX1lr~Uq+>{j$<)sAW^c_%vAU4s_xtR{I8lwFzMAh4f zR<~oCteC}4YTP=!N}3m9s@4^Z_l_4hhd diff --git a/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/IdGenerator.class b/code/fms/fms-api/target/classes/cn/g3soft/fmsapi/utils/snowflake/idgen/IdGenerator.class deleted file mode 100644 index a289499c28406bfddc9fa7488580986b128a9109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1346 zcmbtTZBG+H5Pp`vTzfsBq9EW41wjjH&!{m9goLP=k|HD+5$lX?m|H;Ic z4@61yqlrJtID1zq_>zX$f?(o;#^|@-gt6Mw5(+s`R_*7M-x$*?V z<62j2FHkzd85Yau0qb;SbzjRsMRP_i`}v_K65GNE!@@Zl(Lp=`v2caqNmq!!g%cx-p5JV~lQ6@~dYk+e96duRz%h z?SzAa>lh=eL{Em1Vd#uwf}GESFUK+gBSh>QdXF)@IdJ0$Q(wvcgfhch3Qfi0^u?}Y XBvJ`Qg8C)W-PnT_iDZS2J#c>l0zOR( diff --git a/code/fms/fms-api/tools/migration/rename-impact-out.txt b/code/fms/fms-api/tools/migration/rename-impact-out.txt new file mode 100644 index 00000000..38409375 --- /dev/null +++ b/code/fms/fms-api/tools/migration/rename-impact-out.txt @@ -0,0 +1,29 @@ +=== 1. 视图 / 过程 / 函数中引用 b_othercompany_bmfl 的对象 === +name | type_desc +(共 0 行) + +=== 2. s_module 模块配置中的表名引用 === +b_id | b_module_type | b_view_table | b_save_table +(共 0 行) + +=== 3. v_b_othercompany 定义(确认是否 join 分类表) === +definition +create view dbo.v_b_othercompany as +select o.b_id, o.b_ywid, o.b_pycode, o.b_type, o.b_name, o.b_shortname, + o.b_linkman, o.b_phone, o.b_addr, o.b_firstlinkdate, + o.b_htno, o.b_htdate, o.b_htexpiredate, o.b_black, o.b_canuse, + o.b_zl, o.b_tel, o.b_fax, o.b_www, o.b_email, + o.b_bankacount, o.b_invaccount, o.b_cate_id, + o.b_bz1, o.b_bz2, o.b_bz3, o.b_bz4, + o.b_province, o.b_city, o.b_area, o.b_country, + o.b_edicode, o.b_showcolor, o.b_type_id, o.b_from_id, + o.b_type1_id, o.b_type2_id, o.b_type3_id, o.b_type4_id, o.b_type5_id, + o.b_owner_id, ...(截断) +(共 1 行) + +=== 4. 表与索引现状 === +index_name | type_desc +PK__b_otherc__4E29C30D79EECCD3 | CLUSTERED +ix_b_othercompany_bmfl_parent | NONCLUSTERED +ix_b_othercompany_bmfl_path | NONCLUSTERED +(共 3 行) diff --git a/code/fms/fms-vue/src/components/fms-file/composables/useFileCategory.js b/code/fms/fms-vue/src/components/fms-file/composables/useFileCategory.js index a8232e7a..c35e49a9 100644 --- a/code/fms/fms-vue/src/components/fms-file/composables/useFileCategory.js +++ b/code/fms/fms-vue/src/components/fms-file/composables/useFileCategory.js @@ -2,7 +2,7 @@ import { ref } from 'vue' import { loadDataApi } from '@/services/api' /** - * 文件分类逻辑 —— 加载 bf_files_cateid 扁平表,供 FmsTree 展示(分类为平铺列表,无层级)。 + * 文件分类逻辑 —— 加载 bf_files_category 扁平表,供 FmsTree 展示(分类为平铺列表,无层级)。 * 「全部分类」虚拟根由 FmsTree 的 showRoot 注入,本组合式函数只负责取数与选中状态。 */ export function useFileCategory() { @@ -16,11 +16,7 @@ export function useFileCategory() { loading.value = true error.value = null try { - const res = await loadDataApi( - 'bf_files_cateid', - 'b_canuse = 1', - 'b_xh ASC, b_id ASC', - ) + const res = await loadDataApi('bf_files_category', 'b_canuse = 1', 'b_xh ASC, b_id ASC') categories.value = res.data || [] } catch (e) { error.value = e?.message || String(e) diff --git a/code/fms/fms-vue/src/views/base/othercompany/index.vue b/code/fms/fms-vue/src/views/base/othercompany/index.vue index 97971e2f..47731883 100644 --- a/code/fms/fms-vue/src/views/base/othercompany/index.vue +++ b/code/fms/fms-vue/src/views/base/othercompany/index.vue @@ -2,7 +2,7 @@ /** * 往来单位(合作伙伴)—— 左侧分类树 + 右侧模块列表。 * - * 左树是 b_othercompany_bmfl(b_parent_id 是权威关系,b_depth / b_path 为派生字段), + * 左树是 b_othercompany_category(b_parent_id 是权威关系,b_depth / b_path 为派生字段), * 右表由 FmsModuleListPage 按模块 v_b_othercompany 的配置驱动。页面负责三件事: * 选中分类 → 固定查询条件(含全部下级)、b_cate_id 列显示分类名称、分类树的维护 * (新增 / 修改 / 删除 / 刷新 / 拖拽调层级与顺序)。 @@ -30,7 +30,7 @@ import { usePermissionStore } from '@/stores/permissions' import { buildTree, collectAllKeys, filterTreeByText, findTreeNode, sortTree } from '@/utils/tree' const MODULE_CODE = 'v_b_othercompany' // 右侧列表模块 -const CATEGORY_TABLE = 'b_othercompany_bmfl' // 左侧分类树表 +const CATEGORY_TABLE = 'b_othercompany_category' // 左侧分类树表 /** 必须与 FmsTree 的 rootKey 默认值一致 */ const ALL_CATEGORY_KEY = '__fms_tree_root__' diff --git a/code/fms/fms-vue/tests/views/othercompany.spec.js b/code/fms/fms-vue/tests/views/othercompany.spec.js index b1282c31..787560f3 100644 --- a/code/fms/fms-vue/tests/views/othercompany.spec.js +++ b/code/fms/fms-vue/tests/views/othercompany.spec.js @@ -1,5 +1,5 @@ /** - * 回归用例:往来单位分类树(b_othercompany_bmfl)的新增 / 修改 / 删除 / 拖拽排序。 + * 回归用例:往来单位分类树(b_othercompany_category)的新增 / 修改 / 删除 / 拖拽排序。 * * 1) b_path 为 not null 且无默认值(b_depth / b_xh / b_canuse 才有默认值),新增分类时 * 必须按父级派生 b_depth / b_path 一起写入,否则插入直接失败; @@ -77,7 +77,7 @@ beforeEach(() => { Message.warning.mockClear() modalConfirm.mockReset() loadDataApi.mockImplementation((view) => { - if (view === 'b_othercompany_bmfl') + if (view === 'b_othercompany_category') return Promise.resolve({ data: CATEGORIES.map((row) => ({ ...row })) }) return Promise.resolve({ data: [] }) }) @@ -110,7 +110,7 @@ describe('往来单位:新增分类写派生树字段', () => { await wrapper.vm.onCategorySubmit({ b_id: 'newcat', b_name: '新分类', b_xh: 30 }) await flushPromises() - const request = lastRequestOf('b_othercompany_bmfl') + const request = lastRequestOf('b_othercompany_category') expect(request.key_field).toBe('b_id') expect(request.inserts).toHaveLength(1) expect(request.inserts[0]).toMatchObject({ @@ -131,7 +131,7 @@ describe('往来单位:新增分类写派生树字段', () => { await wrapper.vm.onCategorySubmit({ b_id: 'child2', b_name: '三级分类', b_xh: 20 }) await flushPromises() - expect(lastRequestOf('b_othercompany_bmfl').inserts[0]).toMatchObject({ + expect(lastRequestOf('b_othercompany_category').inserts[0]).toMatchObject({ b_id: 'child2', b_parent_id: 'root1', b_depth: 1, @@ -148,7 +148,7 @@ describe('往来单位:修改分类', () => { await wrapper.vm.onCategorySubmit({ b_id: 'child1', b_name: '改过的名字', b_xh: 99 }) await flushPromises() - const request = lastRequestOf('b_othercompany_bmfl') + const request = lastRequestOf('b_othercompany_category') expect(request.inserts).toBeUndefined() expect(request.updates).toHaveLength(1) expect(request.updates[0]).toEqual({ b_id: 'child1', b_name: '改过的名字', b_xh: 99 }) @@ -190,7 +190,7 @@ describe('往来单位:删除分类的两条守卫', () => { await modalConfirm.mock.calls[0][0].onOk() await flushPromises() - const request = lastRequestOf('b_othercompany_bmfl') + const request = lastRequestOf('b_othercompany_category') expect(request.deletes).toEqual([{ b_id: 'child1' }]) }) }) diff --git a/code/fms/sql/fms_business_othercompany.sql b/code/fms/sql/fms_business_othercompany.sql index 00aefc79..9e6010fb 100644 --- a/code/fms/sql/fms_business_othercompany.sql +++ b/code/fms/sql/fms_business_othercompany.sql @@ -22,7 +22,7 @@ GO drop table if exists dbo.b_othercompany_accountbank; GO -drop table if exists dbo.b_othercompany_bmfl; +drop table if exists dbo.b_othercompany_category; GO drop table if exists dbo.b_othercompany_partner_type; @@ -126,7 +126,7 @@ GO 分类树 ============================================================================ */ -create table dbo.b_othercompany_bmfl ( +create table dbo.b_othercompany_category ( b_id varchar(150) not null primary key, -- 节点编码(创建后不可改) b_parent_id varchar(150) null, -- 父节点编码,NULL 表示根节点 b_depth int not null default 0, -- 树层级,根节点为 0 @@ -142,12 +142,12 @@ create table dbo.b_othercompany_bmfl ( ); GO -create index ix_b_othercompany_bmfl_parent - on dbo.b_othercompany_bmfl (b_parent_id, b_canuse, b_depth, b_xh, b_id); +create index ix_b_othercompany_category_parent + on dbo.b_othercompany_category (b_parent_id, b_canuse, b_depth, b_xh, b_id); GO -create index ix_b_othercompany_bmfl_path - on dbo.b_othercompany_bmfl (b_path, b_canuse, b_id); +create index ix_b_othercompany_category_path + on dbo.b_othercompany_category (b_path, b_canuse, b_id); GO /* ============================================================================ diff --git a/code/fms/sql/fms_files.sql b/code/fms/sql/fms_files.sql new file mode 100644 index 00000000..bb9f6bce --- /dev/null +++ b/code/fms/sql/fms_files.sql @@ -0,0 +1,70 @@ +/* ============================================================================ + 文件表:bf_files(文件记录)/ bf_files_category(文件分类) + ---------------------------------------------------------------------------- + 文件统一由文件服务托管:本地模式由后端写盘后落库,OSS 模式由前端取号直传后 + 回调落库;业务表不存文件二进制,只通过 father 关联宿主业务主键。 + 主键为应用层雪花(subid),不使用 identity —— OSS 直传链路由前端先取号。 + 结构说明见《FMS新系统核心表结构设计.md》第 15 节。 + ============================================================================ */ + +/* ---------------------------------------------------------------------------- + 1. 文件分类(先建,被 bf_files.mx_cate_id 引用) + ---------------------------------------------------------------------------- */ + +drop table if exists dbo.bf_files_category; +GO + +create table dbo.bf_files_category ( + b_id bigint not null primary key, -- 主键(雪花,新增行由前端 nextIdApi 生成) + b_module_id varchar(50) null, -- 归属模块(s_module.b_id);NULL = 通用分类 + b_name nvarchar(50) not null, -- 分类名称 + b_i18n varchar(150) null, -- 多语言资源键(s_i18n.b_key) + b_files_type varchar(50) null, -- 允许的扩展名(逗号分隔,空 = 不限;预留) + b_xh int not null default 0, -- 显示顺序 + b_canuse tinyint not null default 1, -- 是否启用(0/1) + b_bz nvarchar(200) null, -- 备注 + b_created_by varchar(50) null, -- 创建人(用户账号) + b_created_at datetime2 null, -- 创建时间 + b_updated_by varchar(50) null, -- 最后修改人 + b_updated_at datetime2 null -- 最后修改时间 +); +GO + +create index ix_bf_files_category_module + on dbo.bf_files_category (b_module_id, b_canuse, b_xh, b_id); +GO + +/* ---------------------------------------------------------------------------- + 2. 文件记录 + ---------------------------------------------------------------------------- */ + +drop table if exists dbo.bf_files; +GO + +create table dbo.bf_files ( + subid bigint not null primary key, -- 文件主键(雪花,应用层取号:本地由后端、OSS 直传由前端先取号) + father bigint null, -- 宿主业务主键(业务表 b_id),列表按它聚合 + mx_filename nvarchar(500) null, -- 原始文件名(含扩展名,展示与下载用) + mx_filesize varchar(50) null, -- 文件大小(字节,字符串存储) + mx_fileext varchar(50) null, -- 扩展名(小写、不含点) + mx_mapfilename nvarchar(500) null, -- 访问地址:本地为 {url-prefix}/{org}/{yyyy}/{MM}/{dd}/{uuid}.{ext},OSS 为完整 URL + mx_moduleid varchar(50) null, -- 业务模块编码(s_module.b_id) + mx_cate_id bigint null, -- 文件分类(bf_files_category.b_id) + mx_xh int not null default 0, -- 排序号(保留;当前实现固定 0,列表按 subid 倒序) + mx_sh tinyint not null default 0, -- 审核标识(保留;当前实现固定 0) + mx_shuser_id varchar(50) null, -- 审核人(保留) + mx_shdatetime datetime2 null, -- 审核时间(保留) + mx_cutfilename nvarchar(500) null, -- 缩略图地址(保留) + mx_cutfilesize varchar(50) null, -- 缩略图大小(保留) + mx_orderid varchar(50) null, -- 排序组(保留) + mx_bz nvarchar(500) null, -- 备注(保留) + mx_inputuser_id varchar(50) null, -- 上传人(用户账号) + mx_inputdatetime datetime2 null, -- 上传时间 + mx_updateuser_id varchar(50) null, -- 最后修改人 + mx_updatedatetime datetime2 null -- 最后修改时间 +); +GO + +create index ix_bf_files_host + on dbo.bf_files (father, mx_moduleid, mx_cate_id, mx_xh, subid); +GO diff --git a/code/fms/sql/fms_rename_othercompany_category.sql b/code/fms/sql/fms_rename_othercompany_category.sql new file mode 100644 index 00000000..d04975d0 --- /dev/null +++ b/code/fms/sql/fms_rename_othercompany_category.sql @@ -0,0 +1,18 @@ +/* ============================================================================ + 分类表改名:b_othercompany_bmfl → b_othercompany_category + ---------------------------------------------------------------------------- + 分类表命名统一为 <域>_category(去掉拼音缩写 bmfl)。 + 原地改名(sp_rename),数据不动;同步改两个自定义索引名。 + 已确认库内无视图 / 存储过程 / 模块配置引用旧表名,无需连带重建。 + ============================================================================ */ + +exec sp_rename 'dbo.b_othercompany_bmfl', 'b_othercompany_category'; +GO + +exec sp_rename 'dbo.b_othercompany_category.ix_b_othercompany_bmfl_parent', + 'ix_b_othercompany_category_parent', 'INDEX'; +GO + +exec sp_rename 'dbo.b_othercompany_category.ix_b_othercompany_bmfl_path', + 'ix_b_othercompany_category_path', 'INDEX'; +GO diff --git a/code/fms/test.html b/code/fms/test.html deleted file mode 100644 index e7ea45c3..00000000 --- a/code/fms/test.html +++ /dev/null @@ -1,971 +0,0 @@ -```html - - - - - -FMS Advanced Search Demo - - - - - - -

- - -
-
订舱管理
-
Booking Orders
- -
- - - - -
- - -
- - -
- -
- -
-
订舱号
- -
- -
-
客户
- -
- -
-
业务员
- -
- -
-
状态
- -
- -
- -
- - -
- -
- - -
- 当前条件: - - - 客户 = ABC Logistics - × - - - - 金额 > 10000 - × - - - - 日期 ≥ 2026-09-01 - × - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
订舱号客户业务员金额开船日期状态
BK202609001ABC Logistics张三25,800.002026-09-05已确认
BK202609002XYZ Shipping李四18,600.002026-09-08已完成
BK202609003ABC Logistics王五12,500.002026-09-12已确认
- -
-
-
- - -
- - -
- -
-
高级搜索
-
- -
- -
- - -
- - 查询方案 - - - - -
- - -
- -
- - - 满足以下全部条件 - - -
- - -
- -
- -
- - -
- - - - - - - - - -
- - -
- AND -
- - -
- - - - - - - - - -
- - -
- AND -
- - -
- - - - - - - - - -
- -
- -
- -
- -
- - -
- -
- - 满足以下任一条件 - - -
- -
-
- -
- -
- - - - - - - - - -
- -
- OR -
- -
- - - - - - - - - -
- -
- -
- -
- -
- -
- - - -
- - - - - -```