更新若干功能

This commit is contained in:
hero920103 committed 2026-10-21 17:45:50 +08:00
1 parent 892ba5886d
commit 79d5ae6b66
45 files changed
+6755 -38

No files matched your search

+66
View File
@@ -0,0 +1,66 @@
-- =============================================================
-- OA 工作日报 —— 表结构
--
-- 对应代码:
-- models/oa_daily_report.go
-- services/oauth/dailyreport_service.go
-- controllers/backend_oa_dailyreport.go(后台 PC 端)
-- controllers/app_oa_dailyreport.go(小程序端)
--
-- 设计要点:
-- 1. 每人每天一条日报,用 (tid, user_id, report_date, is_deleted) 唯一键约束;
-- user_id 存 SystemTenantUser.uid(不是 JWT 里的 identity_id)。
-- 2. 删除为软删除:is_deleted=0 表示未删除;删除时写入记录 ID 作为删除批次标记,
-- 使唯一键在「删除后同一天重新填写」时不与历史软删记录冲突。
-- 评论同步软删除(is_deleted=1)。
-- 3. 同一天允许先存草稿(status=0)后提交(status=1)。
-- 4. 不显式指定 COLLATE,沿用数据库默认排序规则,避免与其他表
-- JOIN 字符串时出现 Illegal mix of collations。
-- =============================================================
SET NAMES utf8mb4;
-- ---------------- 1. 工作日报主表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_oa_daily_report` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
`user_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '作者uid(yz_system_tenant_user.uid)',
`user_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '作者姓名快照',
`org_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '作者部门ID(yz_backend_organization.id)',
`org_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '部门名称快照',
`report_date` DATE NOT NULL COMMENT '日报日期',
`today_done` TEXT COMMENT '今日完成',
`tomorrow_plan` TEXT COMMENT '明日计划',
`issues` TEXT COMMENT '问题与建议',
`attachments` TEXT COMMENT '附件JSON数组:[{"id":1,"url":"","name":"","size":0}]',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '0草稿 1已提交',
`submit_time` DATETIME DEFAULT NULL COMMENT '提交时间',
`is_deleted` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '软删除标记:0=未删除;删除时写入记录ID(避免唯一键冲突)',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tid_user_date` (`tid`, `user_id`, `report_date`, `is_deleted`),
KEY `idx_tid_date` (`tid`, `report_date`),
KEY `idx_tid_org_date` (`tid`, `org_id`, `report_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-工作日报';
-- ---------------- 2. 日报评论表 ----------------
-- reply_to_id 指向同表评论ID,用于两级回复(0 表示直接评论日报)。
CREATE TABLE IF NOT EXISTS `yz_backend_oa_daily_report_comment` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
`report_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '日报ID',
`user_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '评论人uid',
`user_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '评论人姓名快照',
`content` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '评论内容',
`reply_to_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '回复的评论ID,0=直接评论',
`reply_to_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '被回复人姓名快照',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除标记:0=未删除 1=已删除',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_report` (`report_id`, `id`),
KEY `idx_tid` (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-工作日报评论';