#ifndef IMS_BUSINESS_MANAGER_HPP #define IMS_BUSINESS_MANAGER_HPP #include "ims_types.hpp" #include namespace ims { /// @brief 业务数据全生命周期管理与统计分析引擎。 /// /// 涵盖业务数据的增删改查、提交/审核/驳回/归档工作流, /// 以及数据汇总、图表数据生成、自定义查询、报表导出、台账生成等功能。 class BusinessManager { public: BusinessManager(); ~BusinessManager(); // ==================== 业务新增 (SRS-IMS_F-010) ==================== /** * @brief 创建新的业务数据。 * * @requirement(name="业务新增", id="SRS-IMS_F-010") * 新增一条业务记录,初始状态为 DRAFT。 */ int64_t createBusiness(const BusinessData& data); // ==================== 业务编辑 (SRS-IMS_F-011) ==================== /** * @brief 编辑业务数据(仅草稿或驳回状态可编辑)。 * * @requirement(name="业务编辑", id="SRS-IMS_F-011") */ bool editBusiness(const BusinessData& data); // ==================== 业务删除 (SRS-IMS_F-012) ==================== /** * @brief 删除业务数据。 * * @requirement(name="业务删除", id="SRS-IMS_F-012") */ bool deleteBusiness(int64_t biz_id); // ==================== 业务提交 (SRS-IMS_F-013) ==================== /** * @brief 提交业务至审核流程(DRAFT/PENDING -> PENDING)。 * * @requirement(name="业务提交", id="SRS-IMS_F-013") */ bool submitBusiness(int64_t biz_id); // ==================== 业务审核 (SRS-IMS_F-014) ==================== /** * @brief 审核通过业务(PENDING -> APPROVED)。 * * @requirement(name="业务审核", id="SRS-IMS_F-014") */ bool approveBusiness(int64_t biz_id); // ==================== 业务驳回 (SRS-IMS_F-015) ==================== /** * @brief 驳回业务(PENDING -> REJECTED)。 * * @requirement(name="业务驳回", id="SRS-IMS_F-015") */ bool rejectBusiness(int64_t biz_id); // ==================== 业务归档 (SRS-IMS_F-016) ==================== /** * @brief 归档已审核业务(APPROVED -> ARCHIVED)。 * * @requirement(name="业务归档", id="SRS-IMS_F-016") */ bool archiveBusiness(int64_t biz_id); // ==================== 查询筛选 (SRS-IMS_F-017) ==================== /** * @brief 多条件组合查询业务数据。 * * @requirement(name="查询筛选", id="SRS-IMS_F-017") * 支持按标题、状态、创建者、时间范围等多条件组合筛选。 */ PageResult queryBusiness( const std::vector& conditions, const PageRequest& page); // ==================== 数据汇总 (SRS-IMS_F-018) ==================== /** * @brief 按分类汇总业务数据。 * * @requirement(name="数据汇总", id="SRS-IMS_F-018") * 对业务数据进行分组汇总,返回各分类的总值和计数。 */ std::vector summarizeData(const std::string& group_field); // ==================== 图表展示 (SRS-IMS_F-019) ==================== /** * @brief 生成图表展示所需的数据点。 * * @requirement(name="图表展示", id="SRS-IMS_F-019") * 将统计数据转换为前端可消费的 label/value 序列。 */ std::vector generateChartData(const std::string& metric); // ==================== 自定义查询 (SRS-IMS_F-020) ==================== /** * @brief 执行用户自定义查询。 * * @requirement(name="自定义查询", id="SRS-IMS_F-020") * 允许用户传入任意查询条件组合进行灵活检索。 */ std::vector customQuery( const std::vector& conditions); // ==================== 报表导出 (SRS-IMS_F-021) ==================== /** * @brief 导出数据报表。 * * @requirement(name="报表导出", id="SRS-IMS_F-021") * 根据查询条件导出业务数据为指定格式(Excel/PDF)。 */ std::string exportReport(const std::vector& conditions, ExportFormat format); // ==================== 数据台账生成 (SRS-IMS_F-022) ==================== /** * @brief 生成数据台账文档。 * * @requirement(name="数据台账生成", id="SRS-IMS_F-022") * 汇总指定时间范围内的业务数据,生成结构化的台账文本。 */ std::string generateLedger(const std::string& date_range); private: struct Impl; std::unique_ptr pImpl_; }; } // namespace ims #endif // IMS_BUSINESS_MANAGER_HPP