prod_cc/include/business_manager.hpp

154 lines
4.7 KiB
C++
Raw Normal View History

2026-07-13 03:03:59 +00:00
#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