#ifndef RVC_MODULE_MATERIALMGR_CNN_H_ #define RVC_MODULE_MATERIALMGR_CNN_H_ #pragma once #include "SpSecureClient.h" #include "GUIConsole_def_g.h" using namespace GUIConsole; #pragma pack(1) // 部署位置调整 // [StructName("ModInfoR")] struct ModifyEnrollInfoReq { //char UserID[16]; // 登录用户 //BYTE Password[16]; // 登录密码(Hash) char TerminalNo[16]; // 终端号码 BYTE EnrolGPS[8]; // 终端GPS坐标点 char EnrolAddr[128]; // 终端部署地址 }; // 递增物料使用计数 //[StructName("AddMCR")] struct AddMaterialCounterReq { //TerminalNo 终端号 字符数字 16 char TerminalNo[16]; //Materiel 物料代码 字符 16 char Material[16]; }; // [StructName("AddTMR")] struct AddTradeManageReq { char TerminalNo[16]; char AgentID[16]; char Time[32]; }; //查询物料数据 //[StructName("QryMCR")] struct QueryMaterialInfoReq { char DeviceNo[16]; }; //[StructName("QryMCA2")] struct QueryMaterialInfoRetDate { char DeviceNo[16]; //发卡器编号或终端号 char Materiel[16]; //物料类型 char CardGroove[2]; //卡槽号 char CardBoxNo[20]; //卡箱号 char PsbCode[4]; //凭证种类 char PsbName[128]; //凭证种类名称 unsigned int CardInit; unsigned int CardRemains; unsigned int CardIssued; unsigned int CardMixed; unsigned int CardPercent; char TerminalNo[16]; //如果是发卡器物料数据,这个是对应的Pad终端号 char Maintainer[16]; //物料维护人员 char MaintainTime[32]; //物料维护时间 char UpdateTime[32]; //同步时间 }; // struct QueryMaterialInfoRet2 // { // char InfoResult[2048]; // }; //[StructName("QryMCA1")] struct QueryMaterialInfoRet1 { unsigned int count; }; // 获取后台物料计数 // [StructName("GetMCR")] struct GetMaterialCounterReq { //TerminalNo 终端号 字符数字 16 char TerminalNo[16]; //Materiel 物料代码 字符 16 char Material[16]; //Maintainer 维护人 字符 16 char Maintainer[16]; }; // [StructName("GetMCA")] struct GetMaterialCounterRet { //Materiel 物料代码 字符 16 char Material[16]; //Capacity 放置数量 整数 4 int Capacity; //Counter 使用计数 整数 4 int Counter; //Maintainer 上次物料添加维护人 字符 16 char Maintainer[16]; //维护时间 格式:年年月月日日时时分分 字符 10 char MaintainTime[32]; }; // 物料重置 // [StructName("ResetMCR")] struct ResetMaterialCounterReq { //TerminalNo 终端号 字符数字 16 char TerminalNo[16]; //Materiel 物料代码 字符 16 char Material[16]; //ResetCapacity 重置数量 整数 4 int ResetCapacity; //TerminalCounter 终端对应计数 整数 4 int TerminalCounter; // 实际剩余计数 int RemainCounter; //Maintainer 维护人 字符 16 char Maintainer[16]; // 不符意见 char Comment[128]; }; // 终端用户登录 //[StructName("LOGINREQ")] struct UserLoginReq { char User[16]; // 用户 char Password[16]; // 密码,Hash后 }; // 吞卡登记 // [StructName("RegCardR")] struct RegistSwallowedCardReq { char TerminalType[16]; //TerminalNo 终端号 字符数字 16 char TerminalNo[16]; //TerminalNo 终端号 字符数字 16 char CardNo[20]; //Materiel 物料代码 字符 4 char ReasonCode[4]; // 吞卡日期 char SwallowDate[8]; // 吞卡时间 char SwallowTime[6]; }; // 吞卡登记 (xkm@20160419) // [StructName("RegCard2")] struct RegistSwallowedCardReqV2 { char TerminalType[16]; //TerminalNo 终端号 字符数字 16 char TerminalNo[16]; //TerminalNo 终端号 字符数字 16 char CardNo[20]; //Materiel 物料代码 字符 4 char ReasonCode[4]; // 吞卡日期 char SwallowDate[8]; // 吞卡时间 char SwallowTime[6]; // 发卡器编号 char DeviceSciNo[20]; // 保留字段 char Reserved[64]; }; // 同步计数到数据库 // [StructName("SyncMC1")] struct SyncMaterialCountReq1 { char TerminalNo[16]; char DeviceNo[16]; char Material[16]; DWORD CardBoxNum; }; // [StructName("SyncMC2")] struct SyncMaterialCountReq2 { bool bMaintain; char Maintainer[16]; DWORD MaintainTime; char CardBoxNo[20]; char PsbCode[8]; char PsbName[128]; DWORD CardInit; DWORD CardRemains; DWORD CardIssued; DWORD CardMixed; DWORD CardPercent; }; #pragma pack() class CMaterialMgrCnn: public SpSecureClient { public: CMaterialMgrCnn(CEntityBase *pEntity); // 全部实现成同步版本 ErrorCodeEnum ModifyEnrolInfo(const char *pszUserID, const char *pszPwd, const char *pszAddr, const char *pszGPS); ErrorCodeEnum AddMaterialCounter(const char *pszTerminalNo, const char *pszMaterial); ErrorCodeEnum AddTradeManage(const char *pszTerminalNo, const char *pszAgentID, const char *pszTime); //查询物料信息 ErrorCodeEnum QueryMaterialInfo(const char *pszDeviceNo, unsigned int &count, CAutoArray &arrDeviceNo, CAutoArray &arrMateriel, CAutoArray &CardGroove, CAutoArray &CardBoxNo, CAutoArray &PsbCode, CAutoArray &PsbName, CAutoArray &CardInit, CAutoArray &CardRemains, CAutoArray &CardIssued, CAutoArray &CardMixed, CAutoArray &CardPercent, CAutoArray &TerminalNo, CAutoArray &Maintainer, CAutoArray &MaintainTime, CAutoArray &UpdateTime); ErrorCodeEnum GetMaterialCounter(const char *pszMaterial, const char *pszTerminalNo, const char *pszUserID, unsigned int &nLastCapacity, unsigned int &nUsedCount); ErrorCodeEnum ResetMaterialCounter(const char *pszMaterial, const char *pszTerminalNo, const char *pszUserID, int nResetCapacity, int nTerminalCount, int nRemainCount, const char *pszComment); ErrorCodeEnum MaintainerLogin(const char* pszMaintainerID, const char *pszPassword); ErrorCodeEnum RegistSwallowedCard(const char *pszTerminalType, const char *pszTerminalNo, const char *pszCardNo, const char *pszReasonCode, const char *pszDate, const char *pszTime, const char *pszDeviceSciNo); ErrorCodeEnum SyncMaterialCount(const char *pszDeviceNo, DWORD dwCardBoxNum, CAutoArray &arrMaintainFlag, CAutoArray &arrMaintainer, CAutoArray &arrMaintainTime, CAutoArray &arrCardBoxNo, CAutoArray &arrPsbCode, CAutoArray &arrPsbName, CAutoArray &arrCardInit, CAutoArray &arrCardRemains, CAutoArray &arrCardIssued, CAutoArray &arrCardMixed, CAutoArray &arrCardPercent); private: ~CMaterialMgrCnn(); void OnDisconnect(); void OnPkgAnswer(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleModifyEnrollInfoRet(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleAddMaterialCounterRet(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleAddTradeManageRet(const CSmartPointer &pRecvPkg); //查询物料信息 ErrorCodeEnum HandleQueryMaterialInfoRet(const CSmartPointer &pRecvPkg, unsigned int &count, CAutoArray &arrDeviceNo, CAutoArray &arrMateriel, CAutoArray &CardGroove, CAutoArray &CardBoxNo, CAutoArray &PsbCode, CAutoArray &PsbName, CAutoArray &CardInit, CAutoArray &CardRemains, CAutoArray &CardIssued, CAutoArray &CardMixed, CAutoArray &CardPercent, CAutoArray &TerminalNo, CAutoArray &Maintainer, CAutoArray &MaintainTime, CAutoArray &UpdateTime); ErrorCodeEnum HandleGetMaterialCounterRet(const CSmartPointer &pRecvPkg, unsigned int &nLastCapacity, unsigned int &nUsedCount); ErrorCodeEnum HandleResetMaterialCounterRet(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleMaintainerLoginRet(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleRegistSwallowedCardRet(const CSmartPointer &pRecvPkg); ErrorCodeEnum HandleSyncMaterialCount(const CSmartPointer &pRecvPkg); ErrorCodeEnum GetMD5(char *pStr, BYTE md5[16]); }; #endif //RVC_MODULE_MATERIALMGR_CNN_H_