MaterialMgrCnn.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. #ifndef RVC_MODULE_MATERIALMGR_CNN_H_
  2. #define RVC_MODULE_MATERIALMGR_CNN_H_
  3. #pragma once
  4. #include "SpSecureClient.h"
  5. #include "GUIConsole_def_g.h"
  6. using namespace GUIConsole;
  7. #pragma pack(1)
  8. // 部署位置调整
  9. // [StructName("ModInfoR")]
  10. struct ModifyEnrollInfoReq
  11. {
  12. //char UserID[16]; // 登录用户
  13. //BYTE Password[16]; // 登录密码(Hash)
  14. char TerminalNo[16]; // 终端号码
  15. BYTE EnrolGPS[8]; // 终端GPS坐标点
  16. char EnrolAddr[128]; // 终端部署地址
  17. };
  18. // 递增物料使用计数
  19. //[StructName("AddMCR")]
  20. struct AddMaterialCounterReq
  21. {
  22. //TerminalNo 终端号 字符数字 16
  23. char TerminalNo[16];
  24. //Materiel 物料代码 字符 16
  25. char Material[16];
  26. };
  27. // [StructName("AddTMR")]
  28. struct AddTradeManageReq
  29. {
  30. char TerminalNo[16];
  31. char AgentID[16];
  32. char Time[32];
  33. };
  34. //查询物料数据
  35. //[StructName("QryMCR")]
  36. struct QueryMaterialInfoReq
  37. {
  38. char DeviceNo[16];
  39. };
  40. //[StructName("QryMCA2")]
  41. struct QueryMaterialInfoRetDate
  42. {
  43. char DeviceNo[16]; //发卡器编号或终端号
  44. char Materiel[16]; //物料类型
  45. char CardGroove[2]; //卡槽号
  46. char CardBoxNo[20]; //卡箱号
  47. char PsbCode[4]; //凭证种类
  48. char PsbName[128]; //凭证种类名称
  49. unsigned int CardInit;
  50. unsigned int CardRemains;
  51. unsigned int CardIssued;
  52. unsigned int CardMixed;
  53. unsigned int CardPercent;
  54. char TerminalNo[16]; //如果是发卡器物料数据,这个是对应的Pad终端号
  55. char Maintainer[16]; //物料维护人员
  56. char MaintainTime[32]; //物料维护时间
  57. char UpdateTime[32]; //同步时间
  58. };
  59. // struct QueryMaterialInfoRet2
  60. // {
  61. // char InfoResult[2048];
  62. // };
  63. //[StructName("QryMCA1")]
  64. struct QueryMaterialInfoRet1
  65. {
  66. unsigned int count;
  67. };
  68. // 获取后台物料计数
  69. // [StructName("GetMCR")]
  70. struct GetMaterialCounterReq
  71. {
  72. //TerminalNo 终端号 字符数字 16
  73. char TerminalNo[16];
  74. //Materiel 物料代码 字符 16
  75. char Material[16];
  76. //Maintainer 维护人 字符 16
  77. char Maintainer[16];
  78. };
  79. // [StructName("GetMCA")]
  80. struct GetMaterialCounterRet
  81. {
  82. //Materiel 物料代码 字符 16
  83. char Material[16];
  84. //Capacity 放置数量 整数 4
  85. int Capacity;
  86. //Counter 使用计数 整数 4
  87. int Counter;
  88. //Maintainer 上次物料添加维护人 字符 16
  89. char Maintainer[16];
  90. //维护时间 格式:年年月月日日时时分分 字符 10
  91. char MaintainTime[32];
  92. };
  93. // 物料重置
  94. // [StructName("ResetMCR")]
  95. struct ResetMaterialCounterReq
  96. {
  97. //TerminalNo 终端号 字符数字 16
  98. char TerminalNo[16];
  99. //Materiel 物料代码 字符 16
  100. char Material[16];
  101. //ResetCapacity 重置数量 整数 4
  102. int ResetCapacity;
  103. //TerminalCounter 终端对应计数 整数 4
  104. int TerminalCounter;
  105. // 实际剩余计数
  106. int RemainCounter;
  107. //Maintainer 维护人 字符 16
  108. char Maintainer[16];
  109. // 不符意见
  110. char Comment[128];
  111. };
  112. // 终端用户登录
  113. //[StructName("LOGINREQ")]
  114. struct UserLoginReq
  115. {
  116. char User[16]; // 用户
  117. char Password[16]; // 密码,Hash后
  118. };
  119. // 吞卡登记
  120. // [StructName("RegCardR")]
  121. struct RegistSwallowedCardReq
  122. {
  123. char TerminalType[16];
  124. //TerminalNo 终端号 字符数字 16
  125. char TerminalNo[16];
  126. //TerminalNo 终端号 字符数字 16
  127. char CardNo[20];
  128. //Materiel 物料代码 字符 4
  129. char ReasonCode[4];
  130. // 吞卡日期
  131. char SwallowDate[8];
  132. // 吞卡时间
  133. char SwallowTime[6];
  134. };
  135. // 吞卡登记 (xkm@20160419)
  136. // [StructName("RegCard2")]
  137. struct RegistSwallowedCardReqV2
  138. {
  139. char TerminalType[16];
  140. //TerminalNo 终端号 字符数字 16
  141. char TerminalNo[16];
  142. //TerminalNo 终端号 字符数字 16
  143. char CardNo[20];
  144. //Materiel 物料代码 字符 4
  145. char ReasonCode[4];
  146. // 吞卡日期
  147. char SwallowDate[8];
  148. // 吞卡时间
  149. char SwallowTime[6];
  150. // 发卡器编号
  151. char DeviceSciNo[20];
  152. // 保留字段
  153. char Reserved[64];
  154. };
  155. // 同步计数到数据库
  156. // [StructName("SyncMC1")]
  157. struct SyncMaterialCountReq1
  158. {
  159. char TerminalNo[16];
  160. char DeviceNo[16];
  161. char Material[16];
  162. DWORD CardBoxNum;
  163. };
  164. // [StructName("SyncMC2")]
  165. struct SyncMaterialCountReq2
  166. {
  167. bool bMaintain;
  168. char Maintainer[16];
  169. DWORD MaintainTime;
  170. char CardBoxNo[20];
  171. char PsbCode[8];
  172. char PsbName[128];
  173. DWORD CardInit;
  174. DWORD CardRemains;
  175. DWORD CardIssued;
  176. DWORD CardMixed;
  177. DWORD CardPercent;
  178. };
  179. #pragma pack()
  180. class CMaterialMgrCnn: public SpSecureClient
  181. {
  182. public:
  183. CMaterialMgrCnn(CEntityBase *pEntity);
  184. // 全部实现成同步版本
  185. ErrorCodeEnum ModifyEnrolInfo(const char *pszUserID, const char *pszPwd, const char *pszAddr, const char *pszGPS);
  186. ErrorCodeEnum AddMaterialCounter(const char *pszTerminalNo, const char *pszMaterial);
  187. ErrorCodeEnum AddTradeManage(const char *pszTerminalNo, const char *pszAgentID, const char *pszTime);
  188. //查询物料信息
  189. ErrorCodeEnum QueryMaterialInfo(const char *pszDeviceNo, unsigned int &count, CAutoArray<CSimpleStringA> &arrDeviceNo, CAutoArray<CSimpleStringA> &arrMateriel,
  190. CAutoArray<CSimpleStringA> &CardGroove, CAutoArray<CSimpleStringA> &CardBoxNo, CAutoArray<CSimpleStringA> &PsbCode, CAutoArray<CSimpleStringA> &PsbName,
  191. CAutoArray<unsigned int> &CardInit, CAutoArray<unsigned int> &CardRemains, CAutoArray<unsigned int> &CardIssued, CAutoArray<unsigned int> &CardMixed, CAutoArray<unsigned int> &CardPercent,
  192. CAutoArray<CSimpleStringA> &TerminalNo, CAutoArray<CSimpleStringA> &Maintainer, CAutoArray<CSimpleStringA> &MaintainTime, CAutoArray<CSimpleStringA> &UpdateTime);
  193. ErrorCodeEnum GetMaterialCounter(const char *pszMaterial, const char *pszTerminalNo, const char *pszUserID,
  194. unsigned int &nLastCapacity, unsigned int &nUsedCount);
  195. ErrorCodeEnum ResetMaterialCounter(const char *pszMaterial, const char *pszTerminalNo, const char *pszUserID,
  196. int nResetCapacity, int nTerminalCount, int nRemainCount, const char *pszComment);
  197. ErrorCodeEnum MaintainerLogin(const char* pszMaintainerID, const char *pszPassword);
  198. ErrorCodeEnum RegistSwallowedCard(const char *pszTerminalType, const char *pszTerminalNo, const char *pszCardNo, const char *pszReasonCode,
  199. const char *pszDate, const char *pszTime, const char *pszDeviceSciNo);
  200. ErrorCodeEnum SyncMaterialCount(const char *pszDeviceNo, DWORD dwCardBoxNum,
  201. CAutoArray<bool> &arrMaintainFlag, CAutoArray<CSimpleStringA> &arrMaintainer, CAutoArray<unsigned int> &arrMaintainTime,
  202. CAutoArray<CSimpleStringA> &arrCardBoxNo, CAutoArray<CSimpleStringA> &arrPsbCode,
  203. CAutoArray<CSimpleStringA> &arrPsbName, CAutoArray<unsigned int> &arrCardInit, CAutoArray<unsigned int> &arrCardRemains,
  204. CAutoArray<unsigned int> &arrCardIssued, CAutoArray<unsigned int> &arrCardMixed, CAutoArray<unsigned int> &arrCardPercent);
  205. private:
  206. ~CMaterialMgrCnn();
  207. void OnDisconnect();
  208. void OnPkgAnswer(const CSmartPointer<IPackage> &pRecvPkg);
  209. ErrorCodeEnum HandleModifyEnrollInfoRet(const CSmartPointer<IPackage> &pRecvPkg);
  210. ErrorCodeEnum HandleAddMaterialCounterRet(const CSmartPointer<IPackage> &pRecvPkg);
  211. ErrorCodeEnum HandleAddTradeManageRet(const CSmartPointer<IPackage> &pRecvPkg);
  212. //查询物料信息
  213. ErrorCodeEnum HandleQueryMaterialInfoRet(const CSmartPointer<IPackage> &pRecvPkg, unsigned int &count, CAutoArray<CSimpleStringA> &arrDeviceNo, CAutoArray<CSimpleStringA> &arrMateriel,
  214. CAutoArray<CSimpleStringA> &CardGroove, CAutoArray<CSimpleStringA> &CardBoxNo, CAutoArray<CSimpleStringA> &PsbCode, CAutoArray<CSimpleStringA> &PsbName,
  215. CAutoArray<unsigned int> &CardInit, CAutoArray<unsigned int> &CardRemains, CAutoArray<unsigned int> &CardIssued, CAutoArray<unsigned int> &CardMixed, CAutoArray<unsigned int> &CardPercent,
  216. CAutoArray<CSimpleStringA> &TerminalNo, CAutoArray<CSimpleStringA> &Maintainer, CAutoArray<CSimpleStringA> &MaintainTime, CAutoArray<CSimpleStringA> &UpdateTime);
  217. ErrorCodeEnum HandleGetMaterialCounterRet(const CSmartPointer<IPackage> &pRecvPkg, unsigned int &nLastCapacity, unsigned int &nUsedCount);
  218. ErrorCodeEnum HandleResetMaterialCounterRet(const CSmartPointer<IPackage> &pRecvPkg);
  219. ErrorCodeEnum HandleMaintainerLoginRet(const CSmartPointer<IPackage> &pRecvPkg);
  220. ErrorCodeEnum HandleRegistSwallowedCardRet(const CSmartPointer<IPackage> &pRecvPkg);
  221. ErrorCodeEnum HandleSyncMaterialCount(const CSmartPointer<IPackage> &pRecvPkg);
  222. ErrorCodeEnum GetMD5(char *pStr, BYTE md5[16]);
  223. };
  224. #endif //RVC_MODULE_MATERIALMGR_CNN_H_