#pragma once #include "afxcmn.h" #include #include "afxdtctl.h" #include "Lock.h" class CSC_DelfilesFactory; interface ISC_DelFilesInterface; typedef struct SPickupInfo { CString strName; // 分店名 CString strBranchid; // 分店id CString strOrder; // 订单号 BOOL bTakestatus; // 取件状态:false未取,true已取 CString strTaketime; // 整个订单的取件时间 BOOL bOpdel; // 原片删除状态 BOOL bOpNeedDel; // 原片是否需要删除 BOOL bEpdel; // 初修删除状态 BOOL bEpNeedDel; // 初修是否需要删除 BOOL bFpdel; // 精修删除状态 BOOL bFpNeedDel; // 精修是否需要删除 BOOL bDpdel; // 设计删除状态 BOOL bDpNeedDel; // 设计是否需要删除 BOOL bOpbdel; // 原片备份删除状态 BOOL bOpbNeedDel; // 原片备份是否需要删除 BOOL bEpbdel; // 初修备份删除状态 BOOL bEpbNeedDel; // 初修备份是否需要删除 BOOL bFpbdel; // 精修备份删除状态 BOOL bFpbNeedDel; // 精修备份是否需要删除 BOOL bDpbdel; // 设计备份删除状态 BOOL bDpbNeedDel; // 设计备份是否需要删除 CString strOpdeltm; // 原片删除时间 CString strEpdeltm; // 初修删除时间 CString strFpdeltm; // 精修删除时间 CString strDpdeltm; // 设计删除时间 CString strOpbdeltm; // 原片备份删除时间 CString strEpbdeltm; // 初修备份删除时间 CString strFpbdeltm; // 精修备份删除时间 CString strDpbdeltm; // 设计备份删除时间 SPickupInfo() { strName = _T(""); strBranchid = _T(""); strOrder = _T(""); bTakestatus = FALSE; strTaketime = _T(""); bOpdel = FALSE; // 原片删除状态 bOpNeedDel = FALSE; // 原片是否需要删除 bEpdel = FALSE; // 初修删除状态 bEpNeedDel = FALSE; // 初修是否需要删除 bFpdel = FALSE; // 精修删除状态 bFpNeedDel = FALSE; // 精修是否需要删除 bDpdel = FALSE; // 设计删除状态 bDpNeedDel = FALSE; // 设计是否需要删除 bOpbdel = FALSE; // 原片备份删除状态 bOpbNeedDel = FALSE; // 原片备份是否需要删除 bEpbdel = FALSE; // 初修备份删除状态 bEpbNeedDel = FALSE; // 初修备份是否需要删除 bFpbdel = FALSE; // 精修备份删除状态 bFpbNeedDel = FALSE; // 精修备份是否需要删除 bDpbdel = FALSE; // 设计备份删除状态 bDpbNeedDel = FALSE; // 设计备份是否需要删除 strOpdeltm = _T(""); strEpdeltm = _T(""); strFpdeltm = _T(""); strDpdeltm = _T(""); strOpbdeltm = _T(""); strEpbdeltm = _T(""); strFpbdeltm = _T(""); strDpbdeltm = _T(""); } }SPICKUPINFO, *LPSPICKUPINFO; typedef struct _SBakDirInfo { BYTE byPhotoType; CString strDir; }SBAKDIRINFO, *LPSBAKDIRINFO; // CPhotoDelMgr 对话框 class CPhotoDelMgr : public CDialog { DECLARE_DYNAMIC(CPhotoDelMgr) public: CPhotoDelMgr(CWnd* pParent = NULL); // 标准构造函数 virtual ~CPhotoDelMgr(); // 对话框数据 enum { IDD = IDD_PHOTODELMGR_DLG }; virtual BOOL OnInitDialog(); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 afx_msg void OnDestroy(); afx_msg void OnBnClickedStartdelBtn(); afx_msg void OnBnClickedSelectallBtn(); afx_msg void OnBnClickedDeletelogBtn(); afx_msg void OnBnClickedUnallselBtn(); afx_msg void OnBnClickedSetAutodelBtn(); afx_msg void OnBnClickedRefreshBtn(); afx_msg void OnNMClickDelinfoList(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnNMClickDeltypeList(NMHDR *pNMHDR, LRESULT *pResult); afx_msg LRESULT ShowPrompting(WPARAM wParam,LPARAM lParam); DECLARE_MESSAGE_MAP() public: void FillData(); void GetShareBackupDir(); void LoadListData(); int OpenDb(IN LPCTSTR lpConnect); void CleareLog(IN std::vector& vLog); int LoadDelPhotoModule(IN HINSTANCE hInstance); void FillPhotoType(IN const int nIdx); void FillPhotoType(IN const LPSPICKUPINFO lp); int GetTimeField(OUT CString& strField); void AddDelData(IN LPCTSTR lpDomain, IN LPCTSTR lpOrder, IN const BYTE nType); void GetBranchInfo(OUT CArray& arr); void ClearBakDirInfo(); static CString GetBranchNameForDomain(IN CArray* pArr, IN const CString& strDomain); static CString GetDomainForBranchName(IN CArray* pArr, IN const CString& strName); //删除相片完成回调函数 static int WINAPI DelFinish(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6); int WINAPI DelFinishPro(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6); void MakeBackupDir(IN CONST int nType, IN CONST CString& str, OUT CString& strPath); public: CListCtrl m_DelList; //已取件列表 CListCtrl m_PhotoTypeList; //相片类型 CDateTimeCtrl m_StartTime; //起始时间(以结束时间算起前一个月时间) CDateTimeCtrl m_EndTime; //结束时间(当天为结束时间) std::vector m_vPickupLog; //已取件的记录 std::vector m_vCurrSelLog; //当前选择并且勾选的记录集 LPSPICKUPINFO m_lpCurrSel; //当前选择并且勾选的记录 CSC_DelfilesFactory* m_pFactory; ISC_DelFilesInterface* m_pInterface; CArray m_BranchArr; //分店信息 std::vector m_vBackupDirInfos; //备份目录 TCHAR m_szConnect[MAX_PATH]; //数据库连接 CLock m_lock; CDatabase* m_pdb; CRichEditCtrl m_DelTips; };