SmsManager/DLG_C_TDSet_Signature_Upload.cpp

763 lines
27 KiB
C++
Raw Permalink Normal View History

// DLG_C_TDSet_Signature_Upload.cpp: 实现文件
//
#include "StdAfx.h"
#include "SmsManager.h"
#include "afxdialogex.h"
#include "DLG_C_TDSet_Signature_Upload.h"
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_DoubleConfirm.h"
// DLG_C_TDSet_Signature_Upload 对话框
IMPLEMENT_DYNAMIC(DLG_C_TDSet_Signature_Upload, CDialogEx)
DLG_C_TDSet_Signature_Upload::DLG_C_TDSet_Signature_Upload(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_C_TDSET_SIGNATURE_UPLOAD, pParent)
, m_lConflct(0)
, m_strFileName(_T(""))
, m_strInfo(_T(""))
, m_lType(0)
{
m_pMainFrame = NULL;
m_pTitleData = NULL;
m_TitleCurPos = NULL;
m_bUploading = false;
m_lNeedUploadCount = 0;
m_lExcelType = 0;
m_lExcelDataBegin = 0;
}
DLG_C_TDSet_Signature_Upload::~DLG_C_TDSet_Signature_Upload()
{
}
void DLG_C_TDSet_Signature_Upload::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_TD, m_L_TD);
DDX_CBIndex(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_CONFLICT, m_lConflct);
DDX_Text(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_FILE, m_strFileName);
DDX_Text(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_INFO, m_strInfo);
DDX_CBIndex(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_TYPE, m_lType);
DDX_Control(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_UPLOAD, m_B_Upload);
DDX_Control(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_AUTOPORT, m_B_AutoPort);
DDX_Control(pDX, IDD_C_TDSET_SIGNATURE_UPLOAD_PROCESS, m_P_GDT);
}
BEGIN_MESSAGE_MAP(DLG_C_TDSet_Signature_Upload, CDialogEx)
ON_BN_CLICKED(IDCANCEL, &DLG_C_TDSet_Signature_Upload::OnBnClickedCancel)
ON_WM_CLOSE()
ON_BN_CLICKED(IDD_C_TDSET_SIGNATURE_UPLOAD_FILE_SEL, &DLG_C_TDSet_Signature_Upload::OnBnClickedCTdsetSignatureUploadFileSel)
ON_BN_CLICKED(IDD_C_TDSET_SIGNATURE_UPLOAD_UPLOAD, &DLG_C_TDSet_Signature_Upload::OnBnClickedCTdsetSignatureUploadUpload)
ON_CBN_SELCHANGE(IDD_C_TDSET_SIGNATURE_UPLOAD_TYPE, &DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadType)
ON_CBN_SELCHANGE(IDD_C_TDSET_SIGNATURE_UPLOAD_TD, &DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadTd)
ON_CBN_SELCHANGE(IDD_C_TDSET_SIGNATURE_UPLOAD_CONFLICT, &DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadConflict)
ON_BN_CLICKED(IDD_C_TDSET_SIGNATURE_UPLOAD_AUTOPORT, &DLG_C_TDSet_Signature_Upload::OnClickedIddCTdsetSignatureUploadAutoport)
END_MESSAGE_MAP()
// DLG_C_TDSet_Signature_Upload 消息处理程序
void DLG_C_TDSet_Signature_Upload::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnCancel();
}
void DLG_C_TDSet_Signature_Upload::SetParam(CMainFrame* pFrame, CTD2SignatureTitle_Data * titleData, POSITION TitleCurPos)
{
m_pMainFrame = pFrame;
m_pTitleData = titleData;
m_TitleCurPos = TitleCurPos;
}
BOOL DLG_C_TDSet_Signature_Upload::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
int iCurSel = -1;
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 (pos2 == m_TitleCurPos)
{
iCurSel = iItem;
}
}
m_L_TD.SetCurSel(iCurSel);
m_B_Upload.EnableWindow(false); //上传按扭不给按
UpdateData(true);
m_lConflct = 0; //冲突处理
m_lType = 0; //上传类型
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void DLG_C_TDSet_Signature_Upload::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialogEx::OnClose();
}
BOOL DLG_C_TDSet_Signature_Upload::ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame)
{
CString strTemp;
CString str;
//查看签名报备信息
if (pHead->lFuncType == SMSFUNC_TD2SIGNATURE_UPLOAD)
{
ANS_TD2Signature_Upload* pUpload = (ANS_TD2Signature_Upload*)pFrame;
ANS_TD2Signature_Data* pData = (ANS_TD2Signature_Data*)(pFrame + sizeof(ANS_TD2Signature_Upload));
UploadNext(pUpload);
return true;
}
return false;
}
void DLG_C_TDSet_Signature_Upload::OnBnClickedCTdsetSignatureUploadFileSel()
{
UpdateData(true);
CString str;
int iCurSel = m_L_TD.GetCurSel();
if (iCurSel < 0)
{
MessageBox(_T("请先选择一个通道再进行签名上传!"), _T("错误"), MB_ICONERROR);
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);
return;
}
m_TDSmsNum = pTitle->szSmsNum;
m_TDID = pTitle->iTDID;
m_bAutoPort = m_B_AutoPort.GetCheck();
if (m_lType == 1) //存量签名
{
if (m_lConflct == 3) //换端口号申请
{
MessageBox(_T("注意,你选择的是上传存量签名,不能再选择换端口申请选项!"), _T("错误"), MB_ICONERROR);
return;
}
m_bAutoPort = false; //存量签名,不存在自动端口功能
}
#define FILE_FILTER_TEXT \
TEXT("Excel 文件 (*.xls,*.xlsx)\0*.xls\0*.xlsx\0")\
TEXT("所有文件 (*.*)\0*.*;\0\0")
TCHAR szFile[256];
TCHAR szFileB[256];
*szFileB = NULL;
_stprintf(szFile, _T("*.xls"));
OPENFILENAME sOpen;
sOpen.lStructSize = sizeof(sOpen);
sOpen.hwndOwner = this->m_hWnd;
sOpen.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;
sOpen.lpstrFilter = FILE_FILTER_TEXT;
sOpen.lpstrDefExt = _T("签名文件.xls");
sOpen.lpstrCustomFilter = NULL;
sOpen.nMaxCustFilter = 0;
sOpen.lpstrFile = szFile;
sOpen.nMaxFile = sizeof(szFile);
sOpen.lpstrFileTitle = szFileB;
sOpen.nMaxFileTitle = sizeof(szFileB);
sOpen.lpstrInitialDir = NULL;
sOpen.lpstrTitle = _T("选择上传的签名文件");
if (::GetOpenFileName(&sOpen))
{
CString strFileName = sOpen.lpstrFile;
long lAllCount = 0;
long lCorpNameError = 0; //企业名称有误数量
long lSignatureError = 0; //签名有误数量
long lSmsNumError = 0; //端口号有误数量
long lSucessCount = 0; //有效数量
m_lExcelType = 0; //0-未知类型1-移动2-联通
//第一步连接到Excel数据库判断文件类型
CAdoRecordSet adoRSX3;
if (m_AdoConnectX.ConnectExcel(strFileName))
{
m_AdoRSX.SetAdoConnection(&m_AdoConnectX);
m_AdoRSX2.SetAdoConnection(&m_AdoConnectX);
//查找第一个工作区
BOOL bYDExcel = 0;
CString strTableName = _T("Sheet1$");
CString strTableName2;
adoRSX3 = m_AdoConnectX.OpenSchema(adSchemaColumns);
long lColumnsCount = adoRSX3.GetRecordCount();
BOOL bFirst = true;
for (int i = 0; i < lColumnsCount && !adoRSX3.IsEOF(); i++)
{
adoRSX3.GetCollect(_T("TABLE_NAME"), strTableName2);
if (bFirst)
{
bFirst = false;
strTableName = strTableName2;
}
if (strTableName2 == _T("真实发送端口报送模板$"))
{
strTableName = strTableName2;
bYDExcel = 1; //疑似移动表格
break;
}
adoRSX3.MoveNext();
}
str.Format(_T("select * from [%sA1:IV65536]"), strTableName);
//adoRSX.Open(_T("select * from [Sheet1$A1:IV65536]"));
m_AdoRSX.Open(str);
lAllCount = m_AdoRSX.GetRecordCount();
m_AdoRSX.MoveFirst();
for (int i = 0; i < 10 && !m_AdoRSX.IsEOF(); i++)
{
CString strTemp;
m_AdoRSX.GetCollect(_T("短信子端口号"), strTemp); strTemp.Trim();
if (strTemp.GetLength() >= 8 && IsAllDigits(strTemp))
{
m_lExcelType = 2; //联通
m_lExcelDataBegin = i; //数据开始的记录
break;
}
m_AdoRSX.MoveNext();
}
m_AdoRSX.MoveFirst();
if (m_lExcelType == 0 && !m_AdoRSX.IsEOF()) //未知类型,继续判断
{
for (int i = 0; i < 10 && !m_AdoRSX.IsEOF(); i++)
{
CString strTemp;
//m_AdoRSX.GetCollect(7, strTemp); strTemp.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号"), strTemp); strTemp.Trim();
//if (strTemp == CString(_T("实际使用端口")))
if (strTemp.GetLength()>3) //能取到内容,说明这个字段存在
{
m_lExcelType = 1; //移动
}
if (strTemp.GetLength() >= 8 && IsAllDigits(strTemp)) //记录从取到端口号的第一条开始
{
strTemp = _T("");
//m_AdoRSX.GetCollect(8, strTemp); strTemp.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号的单位名称"), strTemp); strTemp.Trim();
if (strTemp.GetLength()>3 && strTemp.Find(_T("XXX")) < 0) //XXX的为样例数据
{
m_lExcelDataBegin = i; //数据开始的记录
break;
}
}
m_AdoRSX.MoveNext();
}
}
}
if (m_lExcelType !=0) //找到文件,读取内容
{
int iRet = IDYES;
m_L_TD.GetWindowText(str);
if (str.Find(_T("联通")) >= 0 && m_lExcelType != 2) //通道是联通,但格式不是联通
{
iRet = MessageBox(_T("你选择导入的是联通通道,但文件格式是移动的,请确认是否继续?"), _T("提问"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
}
if (str.Find(_T("移动")) >= 0 && m_lExcelType != 1) //通道是移动,但格式不是移动
{
iRet = MessageBox(_T("你选择导入的是移动通道,但文件格式是联通的,请确认是否继续?"), _T("提问"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
}
if (iRet != IDYES)
return;
m_AdoRSX.Move(m_lExcelDataBegin); //从第一条有数据开始的记录读
for (int i = 0; i < lAllCount && !m_AdoRSX.IsEOF(); i++)
{
CString strCorpName;
CString strSignature;
CString strSmsNum;
if (m_lExcelType == 1) //移动
{
//m_AdoRSX.GetCollect(7, strSmsNum); strSmsNum.Trim();
//m_AdoRSX.GetCollect(8, strCorpName); strCorpName.Trim();
//m_AdoRSX.GetCollect(12, strSignature); strSignature.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号"), strSmsNum); strSmsNum.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号的单位名称"), strCorpName); strCorpName.Trim();
m_AdoRSX.GetCollect(_T("企业签名"), strSignature); strSignature.Trim();
}
if (m_lExcelType == 2) //联通
{
m_AdoRSX.GetCollect(_T("企业名称"), strCorpName); strCorpName.Trim();
m_AdoRSX.GetCollect(_T("短信签名"), strSignature); strSignature.Trim();
m_AdoRSX.GetCollect(_T("短信子端口号"), strSmsNum); strSmsNum.Trim();
}
if (strCorpName.GetLength() < 4) //企业名称<4认为是失败
{
lCorpNameError++;
}
else
{
if (strSignature.GetLength() < 2) //签名<2认为是失败
{
lCorpNameError++;
}
else
{
if (strSmsNum.GetLength() > 0)
{
if (strSmsNum.Find(m_TDSmsNum) == 0) //以主端口号开始的子端口号
{
lSucessCount++; //正常的记录
}
else
{
lSmsNumError++;
}
}
else
{
if (m_bAutoPort) //端口号为空的,可以选择自动生成端口号
{
lSucessCount++; //正常的记录
}
else
{
lSmsNumError++;
}
}
}
}
m_AdoRSX.MoveNext();
}
UpdateData(true);
m_strInfo.Format(_T("%s\r\n总记录数:%d\r\n企业名称有误:%d\r\n签名有误:%d\r\n端口号有误:%d\r\n有效记录数:%d\r\n"), strFileName, lAllCount, lCorpNameError, lSignatureError, lSmsNumError, lSucessCount);
m_strFileName = strFileName;
UpdateData(false);
if (lSucessCount>0)
{
m_bUploading = false;
m_B_Upload.EnableWindow(true);
m_lNeedUploadCount = lSucessCount;
}
}
else
{
str.Format(_T("打开文件失败或格式不对:%s"), strFileName);
MessageBox(str, _T("错误"), MB_ICONWARNING);
return;
}
return;
}
}
void DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadType()
{
UpdateData(true);
if (m_lType == 0) //已审核签名,不用新生成端口号
{
m_B_AutoPort.EnableWindow(true);
}
else
{
m_B_AutoPort.EnableWindow(false);
m_B_AutoPort.SetCheck(false);
}
ReSelFile();
}
void DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadTd()
{
ReSelFile();
}
void DLG_C_TDSet_Signature_Upload::OnSelchangeIddCTdsetSignatureUploadConflict()
{
ReSelFile();
}
void DLG_C_TDSet_Signature_Upload::OnClickedIddCTdsetSignatureUploadAutoport()
{
ReSelFile();
}
void DLG_C_TDSet_Signature_Upload::ReSelFile()
{
UpdateData(true);
m_strInfo = _T("");
//m_strFileName = _T("");
UpdateData(false);
m_B_Upload.EnableWindow(false);
m_P_GDT.ShowWindow(SW_HIDE);
m_TDSmsNum = _T("");
m_TDID = 0;
m_bAutoPort = false;
m_lNeedUploadCount = 0;
m_bUploading = false;
}
void DLG_C_TDSet_Signature_Upload::EnableSel(BOOL bEnable)
{
GetDlgItem(IDD_C_TDSET_SIGNATURE_UPLOAD_TD)->EnableWindow(bEnable);
GetDlgItem(IDD_C_TDSET_SIGNATURE_UPLOAD_TYPE)->EnableWindow(bEnable);
GetDlgItem(IDD_C_TDSET_SIGNATURE_UPLOAD_AUTOPORT)->EnableWindow(bEnable);
GetDlgItem(IDD_C_TDSET_SIGNATURE_UPLOAD_CONFLICT)->EnableWindow(bEnable);
GetDlgItem(IDD_C_TDSET_SIGNATURE_UPLOAD_FILE_SEL)->EnableWindow(bEnable);
}
void DLG_C_TDSet_Signature_Upload::OnBnClickedCTdsetSignatureUploadUpload()
{
CString str;
if (!m_bUploading)
{
if (m_lType == 1) //存量签名,无需要审核
{
m_L_TD.GetWindowText(str);
if (str.Find(_T("联通")) >= 0)
{
MessageBox(_T("联通已实现自动上传,不再允许上传已审核数据!"), _T("警告"), MB_ICONWARNING);
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 (m_lNeedUploadCount > 0 && m_AdoRSX.GetRecordCount()>= m_lNeedUploadCount )
{
m_B_Upload.SetWindowText(_T("取消上传"));
m_B_Upload.EnableWindow(true);
EnableSel(false); //正在上传中,不允许更改选项
m_bUploading = true;
m_P_GDT.SetRange(0, m_lNeedUploadCount); //设置滚动条位置
m_P_GDT.ShowWindow(SW_SHOW);
ANS_TD2Signature_Upload SignatureUpload = { 0 };
SignatureUpload.iAllCount = m_lNeedUploadCount;
SignatureUpload.iCount = 0;
SignatureUpload.iType = m_lType;
SignatureUpload.iConflict = m_lConflct;
SignatureUpload.iAutoPort = m_bAutoPort;
SignatureUpload.iTDID = m_TDID;
SignatureUpload.iStatus = 0;
//m_AdoRSX.MoveFirst();
m_AdoRSX.Move(m_lExcelDataBegin); //从第一条有数据开始的记录读
UploadNext(&SignatureUpload);
}
}
else
{
//停止
m_B_Upload.SetWindowText(_T("上传签名"));
m_B_Upload.EnableWindow(false);
EnableSel(true); //取消后可以重新选择上传
ReSelFile(); //可以重新选择文件
m_bUploading = false;
}
}
void DLG_C_TDSet_Signature_Upload::UploadNext(ANS_TD2Signature_Upload * pAnsUpload)
{
CString str;
if (pAnsUpload->iUpCount >= pAnsUpload->iAllCount || m_AdoRSX.IsEOF() || !m_bUploading || pAnsUpload->iStatus!=0 ) //上传已完成
{
//上传已完成
m_P_GDT.SetPos(pAnsUpload->iUpCount); //设置滚动条位置
m_B_Upload.SetWindowText(_T("上传签名"));
m_B_Upload.EnableWindow(false);
EnableSel(true); //取消后可以重新选择上传
m_bUploading = false;
ReSelFile(); //可以重新选择文件
//显示上传记录数
UpdateData(true);
m_strInfo.Format(_T("%s\r\n有效总记录数:%d\r\n已上传记录数:%d\r\n覆盖数:%d\r\n新增数:%d\r\n删除数:%d\r\n忽略数:%d\r\n失败数:%d\r\n"), m_strFileName, pAnsUpload->iAllCount, pAnsUpload->iUpCount, pAnsUpload->iCover, pAnsUpload->iAdd, pAnsUpload->iDel,pAnsUpload->iIgnore, pAnsUpload->iFail);
if (pAnsUpload->iStatus != 0)
{
m_strInfo.Append(_T("\r\n上传异常:"));
m_strInfo.Append(pAnsUpload->szErrMsg);
}
UpdateData(false);
str.Format(_T("上传%s签名数据成功\r\n共上传%d条记录"), m_strFileName, pAnsUpload->iUpCount);
MessageBox(str, _T("信息"), MB_ICONINFORMATION);
}
else
{
m_P_GDT.SetPos(pAnsUpload->iUpCount); //设置滚动条位置
//上传下一个数据包
//先取20条记录看能不能取到
long lMaxCount = 50;
#ifdef _DEBUG
lMaxCount = 10;
#endif
ANS_TD2Signature_Data* pData = new ANS_TD2Signature_Data[lMaxCount];
memset(pData, 0, sizeof(ANS_TD2Signature_Data) * lMaxCount);
int i = 0;
while( !m_AdoRSX.IsEOF() && i< lMaxCount)
{
CString strCorpName;
CString strSignature;
CString strSmsNum;
BOOL bNeedUpload = false;
if (m_lExcelType == 1) //移动
{
//m_AdoRSX.GetCollect(7, strSmsNum); strSmsNum.Trim();
//m_AdoRSX.GetCollect(8, strCorpName); strCorpName.Trim();
//m_AdoRSX.GetCollect(12, strSignature); strSignature.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号"), strSmsNum); strSmsNum.Trim();
m_AdoRSX.GetCollect(_T("真实发送端口号的单位名称"), strCorpName); strCorpName.Trim();
m_AdoRSX.GetCollect(_T("企业签名"), strSignature); strSignature.Trim();
}
if (m_lExcelType == 2) //联通
{
m_AdoRSX.GetCollect(_T("企业名称"), strCorpName); strCorpName.Trim();
m_AdoRSX.GetCollect(_T("短信签名"), strSignature); strSignature.Trim();
m_AdoRSX.GetCollect(_T("短信子端口号"), strSmsNum); strSmsNum.Trim();
}
if (strCorpName.GetLength() < 4) //企业名称<4认为是失败
{
//lCorpNameError++;
}
else
{
if (strSignature.GetLength() < 2) //签名<2认为是失败
{
//lCorpNameError++;
}
else
{
if (strSmsNum.GetLength() > 0)
{
if (strSmsNum.Find(m_TDSmsNum) == 0) //以主端口号开始的子端口号
{
//lSucessCount++; //正常的记录
bNeedUpload = true;
}
else
{
//lSmsNumError++;
}
}
else
{
if (m_bAutoPort) //端口号为空的,可以选择自动生成端口号
{
//lSucessCount++; //正常的记录
bNeedUpload = true;
}
else
{
//lSmsNumError++;
}
}
}
}
if (bNeedUpload)
{
pData[i].iTDID = m_TDID;
strCorpName.Replace(_T("'"), _T(""));
strSignature.Replace(_T("'"), _T(""));
strSmsNum.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szCorpanyName, strCorpName);
_tcscpy(pData[i].szSignature, strSignature);
_tcscpy(pData[i].szSmsNum, strSmsNum);
if (m_lExcelType == 1) //移动
{
//m_AdoRSX.GetCollect(2, str); str.Trim(); str.Replace(_T("'"), _T(""));
str = _T(""); m_AdoRSX.GetCollect(_T("操作类型"), str); str.Trim(); str.Replace(_T("'"), _T(""));
pData[i].iOperType = 0; //默认操作类型为新增
if (str.Find(_T("变更"))>=0 || str.Find(_T("修改")) >= 0) { pData[i].iOperType = 1; } //修改
if (str.Find(_T("删除")) >= 0) { pData[i].iOperType = 2; } //删除
//m_AdoRSX.GetCollect(3, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信主端口号")
str = _T(""); m_AdoRSX.GetCollect(_T("局数据端口"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信主端口号")
_tcscpy(pData[i].szMainSmsNum, str);
//m_AdoRSX.GetCollect(5, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("接入省")
str = _T(""); m_AdoRSX.GetCollect(_T("接入省"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("接入省")
_tcscpy(pData[i].szProvvince, str);
//m_AdoRSX.GetCollect(6, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("接入地市")
str = _T(""); m_AdoRSX.GetCollect(_T("接入地市"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("接入地市")
_tcscpy(pData[i].szCity, str);
//m_AdoRSX.GetCollect(10 , str); str.Trim(); str.Replace(_T("'"), _T(""));//_T("企业统一社会信用代码")
str = _T(""); m_AdoRSX.GetCollect(_T("真实发送端口号的单位证件号码(统一社会信用代码)"), str); str.Trim(); str.Replace(_T("'"), _T(""));//_T("企业统一社会信用代码")
_tcscpy(pData[i].szCorpanyNum, str);
//m_AdoRSX.GetCollect( 14, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("法人")
str = _T(""); m_AdoRSX.GetCollect(_T("法人"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("法人")
_tcscpy(pData[i].szLegalName, str);
//m_AdoRSX.GetCollect(16, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("责任人证件类型")
//_tcscpy(pData[i].szLegalCertType, str);
//m_AdoRSX.GetCollect(17, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("责任人证件号码")
//_tcscpy(pData[i].szLegalCertID, str);
//m_AdoRSX.GetCollect(19, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人名称")
str = _T(""); m_AdoRSX.GetCollect(_T("经办人姓名"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人名称")
_tcscpy(pData[i].szAgencyName, str);
//m_AdoRSX.GetCollect(20, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人证件类型")
str = _T(""); m_AdoRSX.GetCollect(_T("经办人证件名称"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人证件类型")
if ( str== CString(_T("1-营业执照")) )
str = _T("1-居民身份证");
_tcscpy(pData[i].szAgencyCertType, str);
//m_AdoRSX.GetCollect(21, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人证件号码")
str = _T(""); m_AdoRSX.GetCollect(_T("经办人证件号码"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("经办人证件号码")
_tcscpy(pData[i].szAgencyCertID, str);
//m_AdoRSX.GetCollect(26, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("端口类型")
str = _T(""); m_AdoRSX.GetCollect(_T("短信端口服务类型"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("端口类型")
_tcscpy(pData[i].szPortType, str);
//m_AdoRSX.GetCollect(27, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("用途类别")
str = _T(""); m_AdoRSX.GetCollect(_T("广告营销类短信行业类别"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("用途类别")
_tcscpy(pData[i].szPortUsageCategory, str);
//m_AdoRSX.GetCollect(30, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("具体用途")
str = _T(""); m_AdoRSX.GetCollect(_T("短信端口具体用途"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("具体用途")
_tcscpy(pData[i].szPortUsage, str);
//m_AdoRSX.GetCollect(32, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信端口企业接入机房及设备")
str = _T(""); m_AdoRSX.GetCollect(_T("短信端口企业商接入机房位置与设备位置"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信端口企业接入机房及设备")
_tcscpy(pData[i].szLocationServerRoom, str);
//m_AdoRSX.GetCollect(34, str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信模板")
str = _T(""); m_AdoRSX.GetCollect(_T("内容模板实例"), str); str.Trim(); str.Replace(_T("'"), _T("")); //_T("短信模板")
_tcscpy(pData[i].szContentTemplate, str);
}
if (m_lExcelType == 2) //联通
{
str = _T(""); m_AdoRSX.GetCollect(_T("操作类型"), str); str.Trim(); str.Replace(_T("'"), _T(""));
pData[i].iOperType = 0; //默认操作类型为新增
if (str == CString(_T("修改"))) { pData[i].iOperType = 1; } //修改
if (str == CString(_T("删除"))) { pData[i].iOperType = 2; } //删除
str = _T(""); m_AdoRSX.GetCollect(_T("短信主端口号"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szMainSmsNum, str);
str = _T(""); m_AdoRSX.GetCollect(_T("接入省"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szProvvince, str);
str = _T(""); m_AdoRSX.GetCollect(_T("接入地市"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szCity, str);
str = _T(""); m_AdoRSX.GetCollect(_T("端口类型"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szPortType, str);
str = _T(""); m_AdoRSX.GetCollect(_T("用途类别"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szPortUsageCategory, str);
str = _T(""); m_AdoRSX.GetCollect(_T("企业统一社会信用代码"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szCorpanyNum, str);
str = _T(""); m_AdoRSX.GetCollect(_T("责任人名称"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szLegalName, str);
str = _T(""); m_AdoRSX.GetCollect(_T("责任人证件类型"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szLegalCertType, str);
str = _T(""); m_AdoRSX.GetCollect(_T("责任人证件号码"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szLegalCertID, str);
str = _T(""); m_AdoRSX.GetCollect(_T("经办人名称"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szAgencyName, str);
str = _T(""); m_AdoRSX.GetCollect(_T("经办人证件类型"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szAgencyCertType, str);
str = _T(""); m_AdoRSX.GetCollect(_T("经办人证件号码"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szAgencyCertID, str);
str = _T(""); m_AdoRSX.GetCollect(_T("具体用途"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szPortUsage, str);
str = _T(""); m_AdoRSX.GetCollect(_T("签名来源"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szSignatureSource, str);
str = _T(""); m_AdoRSX.GetCollect(_T("短信端口企业接入机房及设备"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szLocationServerRoom, str);
str = _T(""); m_AdoRSX.GetCollect(_T("短信模板"), str); str.Trim(); str.Replace(_T("'"), _T(""));
_tcscpy(pData[i].szContentTemplate, str);
}
i++;
}
m_AdoRSX.MoveNext();
}
long lSize = sizeof(REQ_TD2Signature_Upload) + sizeof(ANS_TD2Signature_Data) * i;
BYTE* pDataByte = new BYTE[lSize];
memset(pDataByte, 0, lSize);
REQ_TD2Signature_Upload* pUpload = (REQ_TD2Signature_Upload * )pDataByte;
ANS_TD2Signature_Data * pUploadData = (ANS_TD2Signature_Data*)(pDataByte+sizeof(REQ_TD2Signature_Upload));
memcpy((BYTE*)pUploadData, (BYTE*)pData, sizeof(ANS_TD2Signature_Data)* i); //复制数据
delete [] pData;
pUpload->iTDID = pAnsUpload->iTDID;
pUpload->iType = pAnsUpload->iType;
pUpload->iConflict = pAnsUpload->iConflict;
pUpload->iAutoPort = pAnsUpload->iAutoPort;
pUpload->iAllCount = pAnsUpload->iAllCount;
pUpload->iCount = i;
pUpload->iUpCount = pAnsUpload->iUpCount;
pUpload->iCover = pAnsUpload->iCover;
pUpload->iAdd = pAnsUpload->iAdd;
pUpload->iDel = pAnsUpload->iDel;
pUpload->iIgnore = pAnsUpload->iIgnore;
pUpload->iFail = pAnsUpload->iFail;
m_pMainFrame->SendFrame(SMSFUNC_TD2SIGNATURE_UPLOAD, pDataByte, lSize);
}
}