feat(open-api): 新增对外开放接口及项目日报同步功能
- 新增项目日报表及其防重唯一索引,支持外部系统同步日报数据 - 添加项目日报实体类及对应 Mapper 和 XML 配置 - 新增对外开放接口控制器 OpenApiController,实现项目列表查询及日报同步接口 - 实现 OpenApiService 服务及其实现类,包含用户项目查询和日报防重同步逻辑 - 扩展 ProjectMapper,支持根据用户名查询用户关联项目列表 - 配置 SaToken 过滤白名单,放行 /api/open/** 路径无登录验证 - 引入 spring-boot-starter-validation 依赖,支持请求参数校验 - 创建数据传输对象 DailyReportSyncDTO,带参数校验注解 - 日志记录和异常处理增强,保证数据同步和查询的健壮性
This commit is contained in:
@@ -1337,4 +1337,30 @@ INSERT INTO sys_config (config_key, config_value, config_type, description) VALU
|
||||
('ai.embedding.model', 'text-embedding-v4', 'ai', '向量嵌入模型'),
|
||||
('ai.embedding.dimension', '1024', 'ai', '向量维度'),
|
||||
('ai.rag.top_k', '5', 'ai', 'RAG检索返回数量'),
|
||||
('ai.rag.similarity_threshold', '0.7', 'ai', 'RAG相似度阈值');
|
||||
('ai.rag.similarity_threshold', '0.7', 'ai', 'RAG相似度阈値');
|
||||
|
||||
-- =====================================================
|
||||
-- 项目日报表(供外部系统同步日报数据)
|
||||
-- 防重键: (project_id, report_date, submitter_username)
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS project_daily_report (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
project_id BIGINT NOT NULL,
|
||||
submitter_username VARCHAR(100) NOT NULL,
|
||||
submitter_id BIGINT,
|
||||
report_date DATE NOT NULL,
|
||||
work_content TEXT,
|
||||
tomorrow_plan TEXT,
|
||||
work_intensity INTEGER CHECK (work_intensity BETWEEN 1 AND 5),
|
||||
need_help BOOLEAN DEFAULT FALSE,
|
||||
help_content TEXT,
|
||||
create_time TIMESTAMP DEFAULT NOW(),
|
||||
update_time TIMESTAMP DEFAULT NOW(),
|
||||
deleted INTEGER DEFAULT 0,
|
||||
CONSTRAINT uq_daily_report UNIQUE (project_id, report_date, submitter_username)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE project_daily_report IS '项目日报(外部同步)';
|
||||
COMMENT ON COLUMN project_daily_report.submitter_username IS '提交人用户名 (对应 sys_user.username)';
|
||||
COMMENT ON COLUMN project_daily_report.work_intensity IS '工作强度: 1-轻松 2-较轻 3-适中 4-繁忙 5-非常繁忙';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user