SmsManager/DLG_C_TDSet_Signature_Modify.cpp

439 lines
15 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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);
}