PhotoDelMgr.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #pragma once
  2. #include "afxcmn.h"
  3. #include <vector>
  4. #include "afxdtctl.h"
  5. #include "Lock.h"
  6. class CSC_DelfilesFactory;
  7. interface ISC_DelFilesInterface;
  8. typedef struct SPickupInfo
  9. {
  10. CString strName; // 分店名
  11. CString strBranchid; // 分店id
  12. CString strOrder; // 订单号
  13. BOOL bTakestatus; // 取件状态:false未取,true已取
  14. CString strTaketime; // 整个订单的取件时间
  15. BOOL bOpdel; // 原片删除状态
  16. BOOL bOpNeedDel; // 原片是否需要删除
  17. BOOL bEpdel; // 初修删除状态
  18. BOOL bEpNeedDel; // 初修是否需要删除
  19. BOOL bFpdel; // 精修删除状态
  20. BOOL bFpNeedDel; // 精修是否需要删除
  21. BOOL bDpdel; // 设计删除状态
  22. BOOL bDpNeedDel; // 设计是否需要删除
  23. BOOL bOpbdel; // 原片备份删除状态
  24. BOOL bOpbNeedDel; // 原片备份是否需要删除
  25. BOOL bEpbdel; // 初修备份删除状态
  26. BOOL bEpbNeedDel; // 初修备份是否需要删除
  27. BOOL bFpbdel; // 精修备份删除状态
  28. BOOL bFpbNeedDel; // 精修备份是否需要删除
  29. BOOL bDpbdel; // 设计备份删除状态
  30. BOOL bDpbNeedDel; // 设计备份是否需要删除
  31. CString strOpdeltm; // 原片删除时间
  32. CString strEpdeltm; // 初修删除时间
  33. CString strFpdeltm; // 精修删除时间
  34. CString strDpdeltm; // 设计删除时间
  35. CString strOpbdeltm; // 原片备份删除时间
  36. CString strEpbdeltm; // 初修备份删除时间
  37. CString strFpbdeltm; // 精修备份删除时间
  38. CString strDpbdeltm; // 设计备份删除时间
  39. SPickupInfo()
  40. {
  41. strName = _T("");
  42. strBranchid = _T("");
  43. strOrder = _T("");
  44. bTakestatus = FALSE;
  45. strTaketime = _T("");
  46. bOpdel = FALSE; // 原片删除状态
  47. bOpNeedDel = FALSE; // 原片是否需要删除
  48. bEpdel = FALSE; // 初修删除状态
  49. bEpNeedDel = FALSE; // 初修是否需要删除
  50. bFpdel = FALSE; // 精修删除状态
  51. bFpNeedDel = FALSE; // 精修是否需要删除
  52. bDpdel = FALSE; // 设计删除状态
  53. bDpNeedDel = FALSE; // 设计是否需要删除
  54. bOpbdel = FALSE; // 原片备份删除状态
  55. bOpbNeedDel = FALSE; // 原片备份是否需要删除
  56. bEpbdel = FALSE; // 初修备份删除状态
  57. bEpbNeedDel = FALSE; // 初修备份是否需要删除
  58. bFpbdel = FALSE; // 精修备份删除状态
  59. bFpbNeedDel = FALSE; // 精修备份是否需要删除
  60. bDpbdel = FALSE; // 设计备份删除状态
  61. bDpbNeedDel = FALSE; // 设计备份是否需要删除
  62. strOpdeltm = _T("");
  63. strEpdeltm = _T("");
  64. strFpdeltm = _T("");
  65. strDpdeltm = _T("");
  66. strOpbdeltm = _T("");
  67. strEpbdeltm = _T("");
  68. strFpbdeltm = _T("");
  69. strDpbdeltm = _T("");
  70. }
  71. }SPICKUPINFO, *LPSPICKUPINFO;
  72. typedef struct _SBakDirInfo
  73. {
  74. BYTE byPhotoType;
  75. CString strDir;
  76. }SBAKDIRINFO, *LPSBAKDIRINFO;
  77. // CPhotoDelMgr 对话框
  78. class CPhotoDelMgr : public CDialog
  79. {
  80. DECLARE_DYNAMIC(CPhotoDelMgr)
  81. public:
  82. CPhotoDelMgr(CWnd* pParent = NULL); // 标准构造函数
  83. virtual ~CPhotoDelMgr();
  84. // 对话框数据
  85. enum { IDD = IDD_PHOTODELMGR_DLG };
  86. virtual BOOL OnInitDialog();
  87. protected:
  88. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
  89. afx_msg void OnDestroy();
  90. afx_msg void OnBnClickedStartdelBtn();
  91. afx_msg void OnBnClickedSelectallBtn();
  92. afx_msg void OnBnClickedDeletelogBtn();
  93. afx_msg void OnBnClickedUnallselBtn();
  94. afx_msg void OnBnClickedSetAutodelBtn();
  95. afx_msg void OnBnClickedRefreshBtn();
  96. afx_msg void OnNMClickDelinfoList(NMHDR *pNMHDR, LRESULT *pResult);
  97. afx_msg void OnNMClickDeltypeList(NMHDR *pNMHDR, LRESULT *pResult);
  98. afx_msg LRESULT ShowPrompting(WPARAM wParam,LPARAM lParam);
  99. DECLARE_MESSAGE_MAP()
  100. public:
  101. void FillData();
  102. void GetShareBackupDir();
  103. void LoadListData();
  104. int OpenDb(IN LPCTSTR lpConnect);
  105. void CleareLog(IN std::vector<LPSPICKUPINFO>& vLog);
  106. int LoadDelPhotoModule(IN HINSTANCE hInstance);
  107. void FillPhotoType(IN const int nIdx);
  108. void FillPhotoType(IN const LPSPICKUPINFO lp);
  109. int GetTimeField(OUT CString& strField);
  110. void AddDelData(IN LPCTSTR lpDomain, IN LPCTSTR lpOrder, IN const BYTE nType);
  111. void GetBranchInfo(OUT CArray<CStringArray, CStringArray>& arr);
  112. void ClearBakDirInfo();
  113. static CString GetBranchNameForDomain(IN CArray<CStringArray, CStringArray>* pArr, IN const CString& strDomain);
  114. static CString GetDomainForBranchName(IN CArray<CStringArray, CStringArray>* pArr, IN const CString& strName);
  115. //删除相片完成回调函数
  116. static int WINAPI DelFinish(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6);
  117. int WINAPI DelFinishPro(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6);
  118. void MakeBackupDir(IN CONST int nType, IN CONST CString& str, OUT CString& strPath);
  119. public:
  120. CListCtrl m_DelList; //已取件列表
  121. CListCtrl m_PhotoTypeList; //相片类型
  122. CDateTimeCtrl m_StartTime; //起始时间(以结束时间算起前一个月时间)
  123. CDateTimeCtrl m_EndTime; //结束时间(当天为结束时间)
  124. std::vector<LPSPICKUPINFO> m_vPickupLog; //已取件的记录
  125. std::vector<LPSPICKUPINFO> m_vCurrSelLog; //当前选择并且勾选的记录集
  126. LPSPICKUPINFO m_lpCurrSel; //当前选择并且勾选的记录
  127. CSC_DelfilesFactory* m_pFactory;
  128. ISC_DelFilesInterface* m_pInterface;
  129. CArray<CStringArray, CStringArray> m_BranchArr; //分店信息
  130. std::vector<LPSBAKDIRINFO> m_vBackupDirInfos; //备份目录
  131. TCHAR m_szConnect[MAX_PATH]; //数据库连接
  132. CLock m_lock;
  133. CDatabase* m_pdb;
  134. CRichEditCtrl m_DelTips;
  135. };