prod_cc/include/business_manager.hpp

154 lines
4.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef IMS_BUSINESS_MANAGER_HPP
#define IMS_BUSINESS_MANAGER_HPP
#include "ims_types.hpp"
#include <memory>
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<BusinessData> queryBusiness(
const std::vector<QueryCondition>& conditions,
const PageRequest& page);
// ==================== 数据汇总 (SRS-IMS_F-018) ====================
/**
* @brief 按分类汇总业务数据。
*
* @requirement(name="数据汇总", id="SRS-IMS_F-018")
* 对业务数据进行分组汇总,返回各分类的总值和计数。
*/
std::vector<SummaryResult> summarizeData(const std::string& group_field);
// ==================== 图表展示 (SRS-IMS_F-019) ====================
/**
* @brief 生成图表展示所需的数据点。
*
* @requirement(name="图表展示", id="SRS-IMS_F-019")
* 将统计数据转换为前端可消费的 label/value 序列。
*/
std::vector<ChartDataPoint> generateChartData(const std::string& metric);
// ==================== 自定义查询 (SRS-IMS_F-020) ====================
/**
* @brief 执行用户自定义查询。
*
* @requirement(name="自定义查询", id="SRS-IMS_F-020")
* 允许用户传入任意查询条件组合进行灵活检索。
*/
std::vector<BusinessData> customQuery(
const std::vector<QueryCondition>& conditions);
// ==================== 报表导出 (SRS-IMS_F-021) ====================
/**
* @brief 导出数据报表。
*
* @requirement(name="报表导出", id="SRS-IMS_F-021")
* 根据查询条件导出业务数据为指定格式Excel/PDF
*/
std::string exportReport(const std::vector<QueryCondition>& 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<Impl> pImpl_;
};
} // namespace ims
#endif // IMS_BUSINESS_MANAGER_HPP