SmsManager/DLG_C_TDSet_Signature_Upload.cpp

763 lines
27 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_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);
}
}