SmsManager/DLG_C_TDSet_Signature_Modify.cpp

439 lines
15 KiB
C++
Raw Normal View History

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