// DLG_C_TDSet_Signature_Modify.cpp: 实现文件 // #include "StdAfx.h" #include "SmsManager.h" #include "afxdialogex.h" #include "DLG_C_TDSet_Signature_Modify.h" #include "DLG_DoubleConfirm.h" // DLG_C_TDSet_Signature_Modify 对话框 IMPLEMENT_DYNAMIC(DLG_C_TDSet_Signature_Modify, CDialogEx) DLG_C_TDSet_Signature_Modify::DLG_C_TDSet_Signature_Modify(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_C_TDSET_SIGNATURE_MODIFY, pParent) , m_iStatus(0) , m_strUpdateTime(_T("")) , m_strAddTime(_T("")) , m_strAuditTime(_T("")) , m_strSmsNum(_T("")) , m_strMainSmsNum(_T("")) , m_strBZ(_T("")) , m_strCorpanyName(_T("")) , m_iOperType(0) , m_strAgencyCertID(_T("")) , m_strAgencyCertType(_T("")) , m_strAgencyName(_T("")) , m_strCorpanyNum(_T("")) , m_strConentTemplate(_T("")) , m_strErrData(_T("")) , m_strErrType(_T("")) , m_strLegalCertID(_T("")) , m_strLegalCertType(_T("")) , m_strLegalName(_T("")) , m_strLocationServerRoom(_T("")) , m_strPortType(_T("")) , m_strPortUsage(_T("")) , m_strPortUsageCategory(_T("")) , m_strSignature(_T("")) , m_strSignatureSource(_T("")) , m_iConflict(0) , m_strSendCount(_T("")) { m_pMainFrame = NULL; memset((BYTE*)&m_Data, 0, sizeof(ANS_TD2Signature_Data)); m_iModifyType = 0; //默认只是查看,不能修改 m_pTitleData = NULL; } DLG_C_TDSet_Signature_Modify::~DLG_C_TDSet_Signature_Modify() { } void DLG_C_TDSet_Signature_Modify::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_CBIndex(pDX, IDC_TDSET_SIGNATURE_MODIFY_STATUS, m_iStatus); // DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_TDTITLE, m_strTDTitle); // DDV_MaxChars(pDX, m_strTDTitle, 30); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_UPDATETIME, m_strUpdateTime); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_ADDTIME, m_strAddTime); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_AUDITTIME, m_strAuditTime); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_SMSNUM, m_strSmsNum); DDV_MaxChars(pDX, m_strSmsNum, 24); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_MAINSMSNUM, m_strMainSmsNum); DDV_MaxChars(pDX, m_strMainSmsNum, 24); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_BZ, m_strBZ); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_CORPANYNAME, m_strCorpanyName); DDV_MaxChars(pDX, m_strCorpanyName, 120); DDX_CBIndex(pDX, IDC_TDSET_SIGNATURE_MODIFY_OPERTYPE, m_iOperType); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_AGENCYCERTID, m_strAgencyCertID); DDV_MaxChars(pDX, m_strAgencyCertID, 60); DDX_CBString(pDX, IDC_TDSET_SIGNATURE_MODIFY_AGENCYCERTTYPE, m_strAgencyCertType); DDV_MaxChars(pDX, m_strAgencyCertType, 30); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_AGENCYNAME, m_strAgencyName); DDV_MaxChars(pDX, m_strAgencyName, 60); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_CORPANYNUM, m_strCorpanyNum); DDV_MaxChars(pDX, m_strCorpanyNum, 60); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_COTENTTEMPLATE, m_strConentTemplate); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_ERRDATA, m_strErrData); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_ERRTYPE, m_strErrType); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_LEGALCERTID, m_strLegalCertID); DDV_MaxChars(pDX, m_strLegalCertID, 60); DDX_CBString(pDX, IDC_TDSET_SIGNATURE_MODIFY_LEGALCERTTYPE, m_strLegalCertType); DDV_MaxChars(pDX, m_strLegalCertType, 30); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_LEGALNAME, m_strLegalName); DDV_MaxChars(pDX, m_strLegalName, 60); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_LOCATIONSERVERROOM, m_strLocationServerRoom); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_PORTTYPE, m_strPortType); DDV_MaxChars(pDX, m_strPortType, 60); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_PORTUSAGE, m_strPortUsage); DDV_MaxChars(pDX, m_strPortUsage, 100); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_PORTUSAGECATEGORY, m_strPortUsageCategory); DDV_MaxChars(pDX, m_strPortUsageCategory, 60); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_SIGNATURE, m_strSignature); DDV_MaxChars(pDX, m_strSignature, 20); DDX_CBString(pDX, IDC_TDSET_SIGNATURE_MODIFY_SIGNATURESOURCE, m_strSignatureSource); DDV_MaxChars(pDX, m_strSignatureSource, 20); DDX_Control(pDX, IDC_TDSET_SIGNATURE_MODIFY_TDTITLE, m_L_TD); DDX_CBIndex(pDX, IDC_TDSET_SIGNATURE_MODIFY_CONFLICT, m_iConflict); DDX_Text(pDX, IDC_TDSET_SIGNATURE_MODIFY_SENDCOUNT, m_strSendCount); } BEGIN_MESSAGE_MAP(DLG_C_TDSet_Signature_Modify, CDialogEx) ON_BN_CLICKED(IDOK, &DLG_C_TDSet_Signature_Modify::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &DLG_C_TDSet_Signature_Modify::OnBnClickedCancel) ON_CBN_SELCHANGE(IDC_TDSET_SIGNATURE_MODIFY_TDTITLE, &DLG_C_TDSet_Signature_Modify::OnSelchangeTdsetSignatureModifyTdtitle) END_MESSAGE_MAP() // DLG_C_TDSet_Signature_Modify 消息处理程序 BOOL DLG_C_TDSet_Signature_Modify::OnInitDialog() { CDialogEx::OnInitDialog(); m_iStatus = m_Data.iStatus; m_iOperType = m_Data.iOperType; if (m_iModifyType == 1) //新增 m_iConflict = 2; //随机主端口 else m_iConflict = 1; //默认参数//覆盖;忽略-操作失败;换随机端口; m_strMainSmsNum = m_Data.szMainSmsNum; m_strSmsNum = m_Data.szSmsNum; m_strCorpanyName = m_Data.szCorpanyName; //m_strTDTitle = m_strTDSignatureTitle; m_strSignature = m_Data.szSignature; m_strCorpanyNum = m_Data.szCorpanyNum; m_strSignatureSource = m_Data.szSignatureSource; m_strLegalName = m_Data.szLegalName; m_strLegalCertType = m_Data.szLegalCertType; m_strLegalCertID = m_Data.szLegalCertID; m_strAgencyName = m_Data.szAgencyName; m_strAgencyCertType = m_Data.szAgencyCertType; m_strAgencyCertID = m_Data.szAgencyCertID; m_strPortType = m_Data.szPortType; m_strPortUsage = m_Data.szPortUsage; m_strPortUsageCategory = m_Data.szPortUsageCategory; m_strLocationServerRoom = m_Data.szLocationServerRoom; m_strConentTemplate = m_Data.szContentTemplate; m_strSendCount.Format(_T("%d"), m_Data.iSendCount); m_strAddTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tAddTime.wYear, m_Data.tAddTime.wMonth, m_Data.tAddTime.wDay, m_Data.tAddTime.wHour, m_Data.tAddTime.wMinute, m_Data.tAddTime.wSecond); m_strUpdateTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tUploadTime.wYear, m_Data.tUploadTime.wMonth, m_Data.tUploadTime.wDay, m_Data.tUploadTime.wHour, m_Data.tUploadTime.wMinute, m_Data.tUploadTime.wSecond); m_strAuditTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tAuditTime.wYear, m_Data.tAuditTime.wMonth, m_Data.tAuditTime.wDay, m_Data.tAuditTime.wHour, m_Data.tAuditTime.wMinute, m_Data.tAuditTime.wSecond); m_strErrData = m_Data.szerrData; m_strErrType = m_Data.szerrType; m_strBZ = m_Data.szBZ; int iCurSel = -1; if (m_pTitleData) { POSITION pos = m_pTitleData->GetHeadPosition(); while (pos != NULL) { POSITION pos2 = pos; ANS_TD2SignatureTitle_Data* pTitle = m_pTitleData->GetNext(pos); CString str; str.Format(_T("%s - %s"), pTitle->szSignatureTitle, pTitle->szSmsNum); int iItem = m_L_TD.AddString(str); m_L_TD.SetItemData(iItem, (DWORD_PTR)pos2); if (pTitle->iTDID == m_Data.iTDID) { iCurSel = iItem; if (m_iModifyType == 1) //新增签名,自动关联主通道号 { m_strMainSmsNum = pTitle->szSmsNum; } } } } m_L_TD.SetCurSel(iCurSel); if (m_iModifyType ==0) //只是查看,不能修改数据 { GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_STATUS)->EnableWindow(false); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_OPERTYPE)->EnableWindow(false); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SIGNATURESOURCE)->EnableWindow(false); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_TDTITLE)->EnableWindow(false); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SMSNUM))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SIGNATURE))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_CORPANYNAME))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_CORPANYNUM))->SetReadOnly(true); //((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SIGNATURESOURCE))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_LEGALNAME))->SetReadOnly(true); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_LEGALCERTTYPE)->EnableWindow(false); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_LEGALCERTID))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_AGENCYNAME))->SetReadOnly(true); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_AGENCYCERTTYPE)->EnableWindow(false); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_AGENCYCERTID))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_PORTTYPE))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_PORTUSAGE))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_PORTUSAGECATEGORY))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_LOCATIONSERVERROOM))->SetReadOnly(true); ((CEdit*)GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_COTENTTEMPLATE))->SetReadOnly(true); } CString str; switch (m_iModifyType) { case 1: str = _T("新增签名报备"); break; case 2: str = _T("修改签名报备数据"); break; case 0: default: str = _T("查看签名报备数据"); break; } this->SetWindowText(str); UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void DLG_C_TDSet_Signature_Modify::SetParam(CMainFrame* pMainFrame, CTD2SignatureTitle_Data * pTDTitle, ANS_TD2Signature_Data* pData, int iOperType) { m_pMainFrame = pMainFrame; //m_strTDSignatureTitle = strTDSignatureTitle; //CString strTDSignatureTitle = this->GetTD2SignatureTitle(pData->iTDID, this->m_TitleData); m_pTitleData = pTDTitle; m_Data = *pData; m_iModifyType = iOperType; // 0-查看,1-新增,2-修改 } void DLG_C_TDSet_Signature_Modify::OnBnClickedOk() { if (m_iModifyType==0) //只是查看,不能修改数据 { CDialogEx::OnCancel(); return; } if (!UpdateData(true)) { return; } //先取通道ID CString str; int iCurSel = m_L_TD.GetCurSel(); if (iCurSel < 0) { MessageBox(_T("请先选择一个通道再进行签名数据处理!"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_TDTITLE)->SetFocus(); return; } ANS_TD2SignatureTitle_Data* pTitle = NULL; POSITION pos = (POSITION)m_L_TD.GetItemData(iCurSel); if (pos) { pTitle = m_pTitleData->GetNext(pos); } if (!pTitle) { MessageBox(_T("请先选择一个通道再进行签名数据处理2!"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_TDTITLE)->SetFocus(); return; } if (m_strMainSmsNum.GetLength() <= 0) { MessageBox(_T("主端口号有误,请重新选择一个通道!"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_TDTITLE)->SetFocus(); return; } if (m_strSmsNum.GetLength()>0 && m_strSmsNum.Find(m_strMainSmsNum) != 0) { MessageBox(_T("端口号与主端口号不匹配!"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SMSNUM)->SetFocus(); return; } if (m_strSmsNum.GetLength() <= 0 && m_iConflict!=2) //随机端口号 { MessageBox(_T("没有录入端口号,如果没端口号,\"如端口冲突\"选择\"换随机端口\"!"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SMSNUM)->SetFocus(); return; } if (m_strSignature.GetLength() < 2 || m_strSignature.GetLength()>20 ) //签名不对 { MessageBox(_T("请录入短信签名"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_SIGNATURE)->SetFocus(); return; } if (m_strCorpanyName.GetLength() < 2 ) //企业名称不对 { MessageBox(_T("请录入企业名称"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_CORPANYNAME)->SetFocus(); return; } if (m_strCorpanyNum.GetLength() != 18 ) //企业号码不对 { MessageBox(_T("企业统一信用代码位数不对"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_CORPANYNUM)->SetFocus(); return; } ANS_TD2Signature_Data data = { 0 }; data = m_Data; data.iStatus = m_iStatus; data.iOperType = m_iOperType; data.iTDID = pTitle->iTDID; _tcscpy(data.szMainSmsNum, m_strMainSmsNum); _tcscpy(data.szSmsNum, m_strSmsNum); _tcscpy(data.szCorpanyName, m_strCorpanyName); _tcscpy(data.szSignature, m_strSignature); _tcscpy(data.szCorpanyNum, m_strCorpanyNum); _tcscpy(data.szSignatureSource, m_strSignatureSource); _tcscpy(data.szLegalName, m_strLegalName); _tcscpy(data.szLegalCertType, m_strLegalCertType); _tcscpy(data.szLegalCertID, m_strLegalCertID); _tcscpy(data.szAgencyName, m_strAgencyName); _tcscpy(data.szAgencyCertType, m_strAgencyCertType); _tcscpy(data.szAgencyCertID, m_strAgencyCertID); _tcscpy(data.szPortType, m_strPortType); _tcscpy(data.szPortUsage, m_strPortUsage); _tcscpy(data.szPortUsageCategory, m_strPortUsageCategory); _tcscpy(data.szLocationServerRoom, m_strLocationServerRoom); _tcscpy(data.szContentTemplate, m_strConentTemplate); /* _tcscpy(data.szerrData, m_strErrData); _tcscpy(data.szerrType, m_strErrType); _tcscpy(data.szBZ, m_strBZ); m_strAddTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tAddTime.wYear, m_Data.tAddTime.wMonth, m_Data.tAddTime.wDay, m_Data.tAddTime.wHour, m_Data.tAddTime.wMinute, m_Data.tAddTime.wSecond); m_strUpdateTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tUploadTime.wYear, m_Data.tUploadTime.wMonth, m_Data.tUploadTime.wDay, m_Data.tUploadTime.wHour, m_Data.tUploadTime.wMinute, m_Data.tUploadTime.wSecond); m_strAuditTime.Format(_T("%04d.%02d.%02d %02d:%02d:%02d"), m_Data.tAuditTime.wYear, m_Data.tAuditTime.wMonth, m_Data.tAuditTime.wDay, m_Data.tAuditTime.wHour, m_Data.tAuditTime.wMinute, m_Data.tAuditTime.wSecond); */ //如果内容都没有修改过,直接返回 if (memcmp((BYTE*)&m_Data, (BYTE*)&data, sizeof(m_Data)) == 0) //判断内容是否有修改过 { CDialogEx::OnCancel(); return; } if ((m_Data.iStatus == 1 || m_Data.iStatus == 2) && (data.iStatus == 1 || data.iStatus == 2)) //原来状态是审核中或已审核成功的 { MessageBox(_T("原状态为待审核或审核通过,修改后必须重新上传审核!\r\n请将状态修改为0-待上传。"), _T("错误"), MB_ICONERROR); GetDlgItem(IDC_TDSET_SIGNATURE_MODIFY_STATUS)->SetFocus(); return; /* DLG_DoubleConfirm dlg(this); CString strConfirmTitle = _T("修改数据二次确认"); CString strConfirmTip = _T("请复核所修改的签名已上传并审核通过,输入以下内容确认:"); CString strConfirmText = _T("已确认审核通过"); dlg.SetParam(strConfirmText, strConfirmTip, strConfirmTitle); if (dlg.DoModal() != IDOK) { return; } */ } if (data.iStatus == 1 || data.iStatus == 2 ) //原来状态是审核中或已审核成功的 { DLG_DoubleConfirm dlg(this); CString strConfirmTitle = _T("签名状态二次确认"); CString strConfirmTip = _T("请确认此签名与端口号对应,并且已审核通过,输入以下内容确认:"); CString strConfirmText = _T("已确认审核通过"); dlg.SetParam(strConfirmText, strConfirmTip, strConfirmTitle); if (dlg.DoModal() != IDOK) { return; } } memcpy((BYTE*)&m_Data, (BYTE*)&data, sizeof(m_Data)); //复制新数据 // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnOK(); } void DLG_C_TDSet_Signature_Modify::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel(); } void DLG_C_TDSet_Signature_Modify::OnSelchangeTdsetSignatureModifyTdtitle() { if (!UpdateData(true)) return; int iCurSel = m_L_TD.GetCurSel(); if (iCurSel < 0) { return; } ANS_TD2SignatureTitle_Data* pTitle = NULL; POSITION pos = (POSITION)m_L_TD.GetItemData(iCurSel); if (pos) { pTitle = m_pTitleData->GetNext(pos); } if (!pTitle) { return; } m_strMainSmsNum = pTitle->szSmsNum; //取主端口号 UpdateData(false); }