feat(contract): 新增合同余额功能及重构文件管理
重构合同文件管理逻辑,增加错误处理和日志记录 新增ContractBalance实体、Repository和VO类 完善Voable接口文档和实现规范 更新项目架构文档和数据库设计 修复SmbFileService的连接问题 移动合同相关TabSkin类到contract包 添加合同文件重建任务的WebSocket支持
This commit is contained in:
95
docs/db/CONTRACT_BALANCE.sql
Normal file
95
docs/db/CONTRACT_BALANCE.sql
Normal file
@@ -0,0 +1,95 @@
|
||||
-- ContractBalance 实体对应的数据库表 DDL
|
||||
-- 生成时间: 2024年12月
|
||||
-- 实体类位置: d:\idea-workspace\Contract-Manager\server\src\main\java\com\ecep\contract\ds\contract\model\ContractBalance.java
|
||||
|
||||
-- 删除已存在的表(如果存在)
|
||||
DROP TABLE IF EXISTS `supplier_ms`.`CONTRACT_BALANCE`;
|
||||
|
||||
-- 创建 CONTRACT_BALANCE 表
|
||||
CREATE TABLE `supplier_ms`.`CONTRACT_BALANCE` (
|
||||
-- 主键字段
|
||||
`ID` INT AUTO_INCREMENT COMMENT '主键,自增ID',
|
||||
`REF_ID` VARCHAR(255) COMMENT '余额ID',
|
||||
|
||||
-- 基本信息字段
|
||||
`GUID` CHAR(36) NOT NULL COMMENT 'GUID,余额在系统中的唯一标识',
|
||||
`INVOICE_NUMBER` VARCHAR(255) COMMENT '发票号码,对应 balanceDetails 字段',
|
||||
`JSD_TYPE` VARCHAR(255) NOT NULL COMMENT 'JSD类型',
|
||||
|
||||
-- 关联字段
|
||||
`CONTRACT_ID` INT COMMENT '关联合同ID,外键指向 CONTRACT 表',
|
||||
`BM_EMPLOYEE_ID` INT COMMENT '业务员ID,外键指向 EMPLOYEE 表',
|
||||
`SETUP_PERSON_ID` INT COMMENT '创建人ID,外键指向 EMPLOYEE 表',
|
||||
`AUDITER_ID` INT COMMENT '审核人ID,外键指向 EMPLOYEE 表',
|
||||
`MODIFER_ID` INT COMMENT '修改人ID,外键指向 EMPLOYEE 表',
|
||||
`ADMIN_ID` INT COMMENT '管理员ID,外键指向 EMPLOYEE 表',
|
||||
|
||||
-- 时间字段
|
||||
`SETUP_DATE_TIME` DATETIME COMMENT '创建日期',
|
||||
`AUDITE_DATE` DATE COMMENT '审核日期',
|
||||
`MODIFY_DATE_TIME` DATETIME COMMENT '修改时间',
|
||||
`ADMIN_DATE` DATE COMMENT '管理员日期',
|
||||
`EFFECT_DATE_TIME` DATETIME COMMENT '生效时间',
|
||||
|
||||
-- 凭证相关字段
|
||||
`PZ_ID` VARCHAR(255) COMMENT '凭证ID',
|
||||
`PZ_NUM` VARCHAR(255) COMMENT '凭证编号',
|
||||
|
||||
-- 复合主键
|
||||
PRIMARY KEY (`ID`, `REF_ID`),
|
||||
|
||||
-- 外键约束(可选,需要根据实际情况创建)
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_CONTRACT` FOREIGN KEY (`CONTRACT_ID`)
|
||||
REFERENCES `supplier_ms`.`CONTRACT` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_BM_EMPLOYEE` FOREIGN KEY (`BM_EMPLOYEE_ID`)
|
||||
REFERENCES `supplier_ms`.`EMPLOYEE` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_SETUP_PERSON` FOREIGN KEY (`SETUP_PERSON_ID`)
|
||||
REFERENCES `supplier_ms`.`EMPLOYEE` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_AUDITER` FOREIGN KEY (`AUDITER_ID`)
|
||||
REFERENCES `supplier_ms`.`EMPLOYEE` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_MODIFER` FOREIGN KEY (`MODIFER_ID`)
|
||||
REFERENCES `supplier_ms`.`EMPLOYEE` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `FK_CONTRACT_BALANCE_ADMIN` FOREIGN KEY (`ADMIN_ID`)
|
||||
REFERENCES `supplier_ms`.`EMPLOYEE` (`ID`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
|
||||
-- 索引优化
|
||||
INDEX `IDX_CONTRACT_BALANCE_GUID` (`GUID`),
|
||||
INDEX `IDX_CONTRACT_BALANCE_CONTRACT_ID` (`CONTRACT_ID`),
|
||||
INDEX `IDX_CONTRACT_BALANCE_EMPLOYEE_ID` (`BM_EMPLOYEE_ID`),
|
||||
INDEX `IDX_CONTRACT_BALANCE_SETUP_DATE` (`SETUP_DATE_TIME`),
|
||||
INDEX `IDX_CONTRACT_BALANCE_AUDITE_DATE` (`AUDITE_DATE`),
|
||||
|
||||
-- 唯一约束
|
||||
UNIQUE KEY `UK_CONTRACT_BALANCE_GUID` (`GUID`)
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同余额表';
|
||||
|
||||
-- 插入测试数据(可选)
|
||||
INSERT INTO `supplier_ms`.`CONTRACT_BALANCE` (
|
||||
`ID`, `REF_ID`, `GUID`, `INVOICE_NUMBER`, `JSD_TYPE`,
|
||||
`CONTRACT_ID`, `BM_EMPLOYEE_ID`, `SETUP_DATE_TIME`, `EFFECT_DATE_TIME`
|
||||
) VALUES (
|
||||
1, 'REF001', UUID(), 'INV-2024-001', 'NORMAL',
|
||||
1001, 5001, NOW(), NOW()
|
||||
);
|
||||
|
||||
-- 字段映射说明:
|
||||
-- Java 实体类字段 → MySQL 字段类型映射
|
||||
-- Integer id → INT AUTO_INCREMENT
|
||||
-- String refId → VARCHAR(255)
|
||||
-- UUID guid → CHAR(36) (MySQL 不支持 UUID,转换为 CHAR(36))
|
||||
-- String invoiceNumber → VARCHAR(255)
|
||||
-- String jsdType → VARCHAR(255)
|
||||
-- Integer contractId → INT (外键)
|
||||
-- Integer employeeId → INT (外键)
|
||||
-- LocalDateTime → DATETIME
|
||||
-- LocalDate → DATE
|
||||
-- @ManyToOne → INT (外键关联)
|
||||
|
||||
-- 注意事项:
|
||||
-- 1. 复合主键:使用了 ID 和 REF_ID 作为复合主键
|
||||
-- 2. UUID 处理:MySQL 不支持 UUID 原生类型,使用 CHAR(36) 存储
|
||||
-- 3. 外键约束:如果 EMPLOYEE 表和 CONTRACT 表不存在,需要先创建
|
||||
-- 4. 字符集:使用 utf8mb4 支持完整Unicode
|
||||
-- 5. 引擎:使用 InnoDB 支持事务和外键
|
||||
-- 6. 注释:每个字段都添加了中文注释,便于维护
|
||||
Reference in New Issue
Block a user