| | |
| | | #include <mutex> |
| | | #include <unordered_map> |
| | | #include "Database.h" |
| | | #include "CParam.h" |
| | | |
| | | |
| | | // 单个设备配方映射信息 |
| | | struct DeviceRecipe { |
| | | int nDeviceID; // 设备ID |
| | | int nRecipeID; // 该设备对应的子配方ID |
| | | std::string strPPID; // 配方ID(主键) |
| | | int nRecipeID; // 子配方ID |
| | | std::string strRecipeName; // 子配方名称 |
| | | std::string strDeviceName; // 设备名称 |
| | | }; |
| | | |
| | |
| | | std::string strDescription; // 配方描述 |
| | | std::string strCreateTime; // 创建时间 |
| | | std::vector<DeviceRecipe> vecDeviceList; // 关联的设备信息列表 |
| | | std::vector<CParam*> m_params; // 出站时记录参数 |
| | | void RecipeInfo::addIntParam(const char* pszName, const char* pszId, const char* pszUnit, int value) |
| | | { |
| | | CParam* pParam = new CParam(pszName, pszId, pszUnit, value); |
| | | m_params.push_back(pParam); |
| | | } |
| | | |
| | | void RecipeInfo::addDoubleParam(const char* pszName, const char* pszId, const char* pszUnit, double value) |
| | | { |
| | | CParam* pParam = new CParam(pszName, pszId, pszUnit, value); |
| | | m_params.push_back(pParam); |
| | | } |
| | | |
| | | std::vector<CParam*>& RecipeInfo::getParams() |
| | | { |
| | | return m_params; |
| | | } |
| | | }; |
| | | |
| | | using RecipeMap = std::unordered_map<std::string, RecipeInfo>; // 按 PPID 映射的配方表 |
| | |
| | | // 查询所有配方 |
| | | std::vector<RecipeInfo> getAllRecipes(); |
| | | |
| | | // 根据 PPID 或描述查询配方 |
| | | std::vector<RecipeInfo> getRecipesByKeyword(const std::string& keyword); |
| | | |
| | | // 获取所有 PPID |
| | | std::vector<std::string> getAllPPID() const; |
| | | |
| | | // 按 PPID 查询配方 |
| | | RecipeInfo getRecipeByPPID(const std::string& ppid); |
| | | |
| | |
| | | // 更新指定 PPID 的配方 |
| | | bool updateRecipe(const RecipeInfo& recipe); |
| | | |
| | | // 更新 PPID(通过旧 PPID 和新 PPID) |
| | | bool updatePPID(const std::string& oldPPID, const std::string& newPPID); |
| | | |
| | | // 更新配方描述(通过 PPID) |
| | | bool updateDescription(const std::string& ppid, const std::string& newDescription); |
| | | |
| | | // 更新设备配方ID(通过 PPID 和设备ID) |
| | | bool updateDeviceRecipeIDByID(const std::string& ppid, int nDeviceID, int nNewRecipeID); |
| | | |