按2025年新的激励政策,修改了显示模式,同时支持上传么么哒数据
This commit is contained in:
parent
bddc05e3b9
commit
88a4cb449f
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1406,9 +1406,12 @@ try
|
||||
case SMSFUNC_GZMSG_JL_PARA: //取激励参数
|
||||
lRet = Process_GZMsg_JL_Para((REQ_GZMsg_JL_PARA*)pFrame);
|
||||
break;
|
||||
case SMSFUNC_GZMSG_JL: //取手机号码地归属数据
|
||||
case SMSFUNC_GZMSG_JL: //查询激励结果
|
||||
lRet = Process_GZMsg_JL((REQ_GZMsg_JL*)pFrame);
|
||||
break;
|
||||
case SMSFUNC_GZMSG_JL_MMDCOUNT: //激励中的么么哒数据处理
|
||||
lRet = Process_GZMsg_JL_MMDCount((REQ_GZMsg_JL_MMDCount*)pFrame);
|
||||
break;
|
||||
|
||||
case SMSFUNC_CORP_USERMODIFY2: //修改企业用户
|
||||
lRet = Process_Corp_UserModify2((REQ_Corp_UserModify2*)pFrame);
|
||||
|
@ -123,6 +123,7 @@ public:
|
||||
long Process_GZMsg_JL_GetYZKH(CAdoRecordSet *pAdoRSP1, CAdoRecordSet *pAdoRSP2, CAdoRecordSet *pAdoRSP3, long lYWYID, long lYear, long lMon, double & fTotalYZ, long & lTotalKH);
|
||||
long Process_GZMsg_JL_Para(REQ_GZMsg_JL_PARA* pPara);
|
||||
long Process_GZMsg_JL(REQ_GZMsg_JL* pJL);
|
||||
long Process_GZMsg_JL_MMDCount(REQ_GZMsg_JL_MMDCount* pReq);
|
||||
long Process_GAddress_Place(REQ_GAddress_Place* pPlace);
|
||||
long Process_YWY_Analyse(REQ_YWY_Analyse * pAnalyse);
|
||||
long Process_Corp_Analyse(REQ_Corp_Analyse * pAnalyse);
|
||||
|
@ -25622,6 +25622,324 @@ long CProcessSocket::Process_GZMsg_JL(REQ_GZMsg_JL *pJL)
|
||||
bConnectOtherSql = false;
|
||||
}
|
||||
}
|
||||
|
||||
//2025年新的激励规则
|
||||
if (pJL->lType == 0) //月度冠军,计算
|
||||
{
|
||||
|
||||
long lMaxPara = 512;
|
||||
long lYWYIndex = 0;
|
||||
ANS_GZMsg_JL_Data* pYWYData = new ANS_GZMsg_JL_Data[lMaxPara];
|
||||
memset((BYTE*)pYWYData, 0, sizeof(ANS_GZMsg_JL_Data) * lMaxPara);
|
||||
|
||||
strSelect = _T("select * from YWY_Group where Name like '%市场%' order by Name desc");
|
||||
m_AdoRS.Open(strSelect);
|
||||
while (!m_AdoRS.IsEOF())
|
||||
{
|
||||
long lYWYID = 0;
|
||||
CString strGroupName;
|
||||
m_AdoRS.GetCollect(_T("GroupID"), lYWYID);
|
||||
m_AdoRS.GetCollect(_T("Name"), strGroupName);
|
||||
strSelect.Format(_T("select * from YWY where groupID=%d and GZ_JBRW>0 order by YWYID"), lYWYID);
|
||||
m_AdoRS2.Open(strSelect);
|
||||
while (!m_AdoRS2.IsEOF())
|
||||
{
|
||||
long lYWYID = 0;
|
||||
CString strYWYName;
|
||||
//取前半年平均业绩与平均客户数
|
||||
m_AdoRS2.GetCollect(_T("YWYID"), lYWYID);
|
||||
m_AdoRS2.GetCollect(_T("Name"), strYWYName);
|
||||
m_AdoRS2.GetCollect(_T("MMDCount"), pYWYData[lYWYIndex].lMMDCount); //读取么么哒计数
|
||||
pYWYData[lYWYIndex].lYWYID = lYWYID;
|
||||
_tcscpy(pYWYData[lYWYIndex].szGroupName, strGroupName);
|
||||
_tcscpy(pYWYData[lYWYIndex].szYWYName, strYWYName);
|
||||
|
||||
//取客户经理当月的业绩。
|
||||
//先从工资表中取业绩
|
||||
double fYZ = 0.0f;
|
||||
double fKH = 0.0f;
|
||||
strSelect.Format(_T("select * from YWY_GZJS where YWYID=%d and GZ_Mon='%04d.%02d.01'"), lYWYID, lYear, lMon);
|
||||
if (m_AdoRS3.Open(strSelect) && !m_AdoRS3.IsEOF())
|
||||
{
|
||||
long lMMDCount = 0;
|
||||
m_AdoRS3.GetCollect(_T("GZ_TotalYZ"), fYZ);
|
||||
m_AdoRS3.GetCollect(_T("GZ_NEWSL"), fKH);
|
||||
m_AdoRS3.GetCollect(_T("MMDCount"), lMMDCount);
|
||||
pYWYData[lYWYIndex].lMMDCount = lMMDCount;
|
||||
}
|
||||
//当月工资为0的,从充值记录中读取
|
||||
if (fYZ == 0.0f && bConnectOtherSql)
|
||||
{
|
||||
long lKH = 0;
|
||||
Process_GZMsg_JL_GetYZKH(&m_AdoRS3, &AdoRS2, &AdoRS3, lYWYID, lYear, lMon, fYZ, lKH);
|
||||
fKH = (float)lKH;
|
||||
pYWYData[lYWYIndex].bUnconfirmed = true;
|
||||
}
|
||||
//计算A、B值及总数。
|
||||
float fA = 0.0f;
|
||||
float fB = 0.0f;
|
||||
if (fYZ != 0.0f)
|
||||
{
|
||||
fA = fYZ / 160000.0f * 90.0f;
|
||||
}
|
||||
if (pYWYData[lYWYIndex].lMMDCount > 0)
|
||||
{
|
||||
fB = pYWYData[lYWYIndex].lMMDCount / 8.0f * 10.0f;
|
||||
}
|
||||
pYWYData[lYWYIndex].tMon1.wYear = lYear;
|
||||
pYWYData[lYWYIndex].tMon1.wMonth = lMon;
|
||||
pYWYData[lYWYIndex].fYZ1 = fYZ;
|
||||
pYWYData[lYWYIndex].fKH1 = fKH;
|
||||
pYWYData[lYWYIndex].fA1 = fA;
|
||||
pYWYData[lYWYIndex].fB1 = fB;
|
||||
pYWYData[lYWYIndex].fT1 = fA + fB;
|
||||
pYWYData[lYWYIndex].fAvg = pYWYData[lYWYIndex].fT1;
|
||||
|
||||
|
||||
lYWYIndex++;
|
||||
m_AdoRS2.MoveNext();
|
||||
}
|
||||
m_AdoRS.MoveNext();
|
||||
}
|
||||
|
||||
|
||||
long lSize = sizeof(ANS_GZMsg_JL) + sizeof(ANS_GZMsg_JL_Data) * lYWYIndex;
|
||||
BYTE* pDataSend = new BYTE[lSize];
|
||||
memset(pDataSend, 0, lSize);
|
||||
|
||||
ANS_GZMsg_JL* pRetJL = (ANS_GZMsg_JL*)pDataSend;
|
||||
ANS_GZMsg_JL_Data* pJLData = (ANS_GZMsg_JL_Data*)(pDataSend + sizeof(ANS_GZMsg_JL));
|
||||
|
||||
pRetJL->bOK = true;
|
||||
pRetJL->lType = pJL->lType; //评比类型
|
||||
_tcscpy(pRetJL->szMon, pJL->szMon); //评比月份
|
||||
pRetJL->lPK1 = pJL->lPK1; //挑战者
|
||||
pRetJL->lPK2 = pJL->lPK2; //被挑战者
|
||||
pRetJL->lPKRatio = pJL->lPKRatio; //比例
|
||||
pRetJL->lCount = lYWYIndex;
|
||||
|
||||
memcpy(pJLData, pYWYData, sizeof(ANS_GZMsg_JL_Data) * lYWYIndex);
|
||||
|
||||
// 使用 std::sort 对数组排序
|
||||
std::sort(pJLData, pJLData + lYWYIndex, [](const ANS_GZMsg_JL_Data& a, const ANS_GZMsg_JL_Data& b) {
|
||||
return a.fAvg > b.fAvg; // 倒序排列
|
||||
});
|
||||
|
||||
|
||||
delete pYWYData;
|
||||
|
||||
SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pDataSend, lSize); //发送返回
|
||||
}
|
||||
|
||||
|
||||
if (pJL->lType == 1) //PK计算
|
||||
{
|
||||
|
||||
long lSize = sizeof(ANS_GZMsg_JL) + sizeof(ANS_GZMsg_JL_Data2);
|
||||
BYTE* pDataSend = new BYTE[lSize];
|
||||
memset(pDataSend, 0, lSize);
|
||||
|
||||
ANS_GZMsg_JL* pRetJL = (ANS_GZMsg_JL*)pDataSend;
|
||||
ANS_GZMsg_JL_Data2* pJLData = (ANS_GZMsg_JL_Data2*)(pDataSend + sizeof(ANS_GZMsg_JL));
|
||||
|
||||
pRetJL->bOK = true;
|
||||
pRetJL->lType = pJL->lType; //评比类型
|
||||
_tcscpy(pRetJL->szMon, pJL->szMon); //评比月份
|
||||
pRetJL->lPK1 = pJL->lPK1; //挑战者
|
||||
pRetJL->lPK2 = pJL->lPK2; //应战者
|
||||
pRetJL->lPKRatio = pJL->lPKRatio; //比例
|
||||
pRetJL->lCount = 0;
|
||||
|
||||
//循环,取2个PK者的业绩
|
||||
for (int b = 0; b < 2; b++)
|
||||
{
|
||||
double fAvgScore = 0.0f;
|
||||
double fAvgYZ = 0.0f;
|
||||
double fAvgMMDCount = 0.0f;
|
||||
long lYWYCount = 0;
|
||||
BOOL bUnconfirmed = false; //未确认业绩
|
||||
|
||||
long lGetYWYID = pJL->lPK1;
|
||||
if (b > 0) lGetYWYID = pJL->lPK2;
|
||||
CString strPKName;
|
||||
if (lGetYWYID >= 500000) //用户组
|
||||
{
|
||||
//取用户组名称
|
||||
strSelect.Format(_T("select * from YWY_Group where groupID=%d "), lGetYWYID - 500000);
|
||||
if (m_AdoRS2.Open(strSelect) && !m_AdoRS2.IsEOF())
|
||||
{
|
||||
//m_AdoRS2.GetCollect(_T("Name"), strPKName);
|
||||
m_AdoRS2.GetCollect(_T("BZ"), strPKName);
|
||||
}
|
||||
|
||||
//分别取PK者业绩与么么哒数量
|
||||
strSelect.Format(_T("select * from YWY where Branch='%s' and GZ_JBRW>0 order by YWYID"), strPKName);
|
||||
m_AdoRS2.Open(strSelect);
|
||||
double fTotalScore = 0.0f;
|
||||
double fTotalYZ = 0.0f;
|
||||
long lTotalMMDCount = 0;
|
||||
while (!m_AdoRS2.IsEOF())
|
||||
{
|
||||
long lYWYID = 0;
|
||||
long lMMDCount = 0;
|
||||
CString strName;
|
||||
m_AdoRS2.GetCollect(_T("YWYID"), lYWYID);
|
||||
m_AdoRS2.GetCollect(_T("Name"), strName);
|
||||
m_AdoRS2.GetCollect(_T("MMDCount"), lMMDCount);
|
||||
if (lYWYCount == 0)
|
||||
strPKName = strPKName + CString(_T("(")) + strName;
|
||||
else
|
||||
strPKName = strPKName + CString(_T(",")) + strName;
|
||||
|
||||
double fYZ = 0.0f;
|
||||
double fKH = 0.0f;
|
||||
strSelect.Format(_T("select * from YWY_GZJS where YWYID=%d and GZ_Mon='%04d.%02d.01'"), lYWYID, lYear, lMon);
|
||||
if (m_AdoRS3.Open(strSelect) && !m_AdoRS3.IsEOF())
|
||||
{
|
||||
m_AdoRS3.GetCollect(_T("GZ_TotalYZ"), fYZ);
|
||||
m_AdoRS3.GetCollect(_T("GZ_NEWSL"), fKH);
|
||||
m_AdoRS3.GetCollect(_T("MMDCount"), lMMDCount);
|
||||
}
|
||||
if (fYZ == 0.0f && bConnectOtherSql) //当月工资为0的,从充值记录中读取
|
||||
{
|
||||
long lKH = 0;
|
||||
Process_GZMsg_JL_GetYZKH(&m_AdoRS3, &AdoRS2, &AdoRS3, lYWYID, lYear, lMon, fYZ, lKH);
|
||||
fKH = (float)lKH;
|
||||
bUnconfirmed = true;
|
||||
}
|
||||
//计算A、B值及总数。
|
||||
float fA = 0.0f;
|
||||
float fB = 0.0f;
|
||||
if (fYZ != 0.0f)
|
||||
{
|
||||
fA = fYZ / 160000.0f * 90.0f;
|
||||
}
|
||||
if (lMMDCount > 0)
|
||||
{
|
||||
fB = lMMDCount / 8.0f * 10.0f;
|
||||
}
|
||||
fTotalScore = fTotalScore + fA + fB; //所有选手的总分
|
||||
lTotalMMDCount = lTotalMMDCount + lMMDCount;
|
||||
fTotalYZ = fTotalYZ + fYZ;
|
||||
|
||||
lYWYCount++;
|
||||
m_AdoRS2.MoveNext();
|
||||
}
|
||||
strPKName = strPKName + CString(_T(")"));
|
||||
if (fTotalScore > 0 && lYWYCount > 0)
|
||||
{
|
||||
fAvgScore = fTotalScore / (float)lYWYCount;
|
||||
}
|
||||
if (fTotalYZ > 0 && lYWYCount > 0)
|
||||
{
|
||||
fAvgYZ = fTotalYZ / (float)lYWYCount;
|
||||
}
|
||||
if (lTotalMMDCount > 0 && lYWYCount > 0)
|
||||
{
|
||||
fAvgMMDCount = (float)lTotalMMDCount / (float)lYWYCount;
|
||||
}
|
||||
//if (fYZPre3 > 0 && lYWYCount > 0) fYZPre3 = fYZPre3 / (float)lYWYCount;
|
||||
//if (fYZNow > 0 && lYWYCount > 0) fYZNow = fYZNow / (float)lYWYCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
//单独用户
|
||||
//取用户组名称
|
||||
long lMMDCount = 0;
|
||||
strSelect.Format(_T("select * from YWY where YWYID=%d "), lGetYWYID);
|
||||
if (m_AdoRS2.Open(strSelect) && !m_AdoRS2.IsEOF())
|
||||
{
|
||||
m_AdoRS2.GetCollect(_T("Name"), strPKName);
|
||||
m_AdoRS2.GetCollect(_T("MMDCount"), lMMDCount);
|
||||
}
|
||||
strSelect.Format(_T("select * from YWY_GZJS where YWYID=%d and GZ_Mon='%04d.%02d.01'"), lGetYWYID, lYear, lMon);
|
||||
fAvgYZ = 0.0f;
|
||||
double fAvegKH = 0.0f;
|
||||
if (m_AdoRS3.Open(strSelect) && !m_AdoRS3.IsEOF())
|
||||
{
|
||||
m_AdoRS3.GetCollect(_T("GZ_TotalYZ"), fAvgYZ);
|
||||
m_AdoRS3.GetCollect(_T("GZ_NEWSL"), fAvegKH);
|
||||
m_AdoRS3.GetCollect(_T("MMDCount"), lMMDCount);
|
||||
}
|
||||
if (fAvgYZ == 0.0f && bConnectOtherSql) //当月工资为0的,从充值记录中读取
|
||||
{
|
||||
long lKH = 0;
|
||||
Process_GZMsg_JL_GetYZKH(&m_AdoRS3, &AdoRS2, &AdoRS3, lGetYWYID, lYear, lMon, fAvgYZ, lKH);
|
||||
fAvegKH = (float)lKH;
|
||||
}
|
||||
//计算A、B值及总数。
|
||||
float fA = 0.0f;
|
||||
float fB = 0.0f;
|
||||
if (fAvgYZ != 0.0f)
|
||||
{
|
||||
fA = fAvgYZ / 160000.0f * 90.0f;
|
||||
}
|
||||
if (lMMDCount > 0)
|
||||
{
|
||||
fB = lMMDCount / 8.0f * 10.0f;
|
||||
}
|
||||
fAvgScore = fA + fB; //计算总分
|
||||
lYWYCount = 1;
|
||||
fAvgMMDCount = lMMDCount;
|
||||
}
|
||||
|
||||
if (b == 0) //挑战者业绩
|
||||
{
|
||||
_tcscpy(pJLData->szPK1, strPKName); //战队名称
|
||||
pJLData->fPK1Pre3 = fAvgYZ; //平均业绩
|
||||
pJLData->fPK1Now = fAvgScore; //平均分数
|
||||
pJLData->fPK1YWYCount = lYWYCount; //战队队员数量
|
||||
pJLData->fPK1MMDCount = fAvgMMDCount; //平均么么哒数量
|
||||
pJLData->bPK1Unconfirmed = bUnconfirmed; //含未确认业绩
|
||||
}
|
||||
if (b == 1) //被挑战者业绩
|
||||
{
|
||||
_tcscpy(pJLData->szPK2, strPKName); //战队名称
|
||||
pJLData->fPK2Pre3 = fAvgYZ; //平均业绩
|
||||
pJLData->fPK2Now = fAvgScore; //平均分数
|
||||
pJLData->fPK2YWYCount = lYWYCount;//战队队员数量
|
||||
pJLData->fPK2MMDCount = fAvgMMDCount;//平均么么哒数量
|
||||
pJLData->bPK2Unconfirmed = bUnconfirmed;
|
||||
}
|
||||
}
|
||||
//当月业绩+挑战比例
|
||||
pJLData->fAddRatio = 0.02f;
|
||||
switch (pJL->lPKRatio)
|
||||
{
|
||||
case 1:
|
||||
pJLData->fAddRatio = 0.05f;
|
||||
break;
|
||||
case 2:
|
||||
pJLData->fAddRatio = 0.08f;
|
||||
break;
|
||||
}
|
||||
|
||||
if (pJLData->fPK1Now > 0.0f && pJLData->fPK2Now > 0.0f) //分数
|
||||
{
|
||||
if ((pJLData->fPK1Now - pJLData->fPK2Now) / pJLData->fPK1Now >= pJLData->fAddRatio)
|
||||
{
|
||||
pJLData->bWin = true;
|
||||
}
|
||||
//分数差
|
||||
pJLData->fWin1Score = pJLData->fPK1Now - pJLData->fPK2Now / (1.0f - pJLData->fAddRatio);
|
||||
pJLData->fWin2Score = pJLData->fPK2Now - pJLData->fPK1Now * (1.0f - pJLData->fAddRatio);
|
||||
|
||||
//将分数差换算成业绩
|
||||
pJLData->fWin1YZ = pJLData->fWin1Score * (160000.0f / 90.0f) * pJLData->fPK1YWYCount;
|
||||
pJLData->fWin2YZ = pJLData->fWin2Score * (160000.0f / 90.0f) * pJLData->fPK2YWYCount;
|
||||
|
||||
//将分数差换算成么么哒数量
|
||||
pJLData->fWin1MMDCount = pJLData->fWin1Score * (8.0f / 10.0f) * pJLData->fPK1YWYCount;
|
||||
pJLData->fWin2MMDCount = pJLData->fWin2Score * (8.0f / 10.0f) * pJLData->fPK2YWYCount;
|
||||
}
|
||||
|
||||
SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pDataSend, lSize); //发送返回
|
||||
}
|
||||
|
||||
|
||||
|
||||
//以下为2024年之前的旧激励规则
|
||||
/*
|
||||
if (pJL->lType == 0) //月度冠军,计算
|
||||
{
|
||||
|
||||
@ -25702,12 +26020,6 @@ long CProcessSocket::Process_GZMsg_JL(REQ_GZMsg_JL *pJL)
|
||||
{
|
||||
fA1 = (fYZ - fAvegYZ) / fAvegYZ * 100.0f;
|
||||
}
|
||||
/*
|
||||
if (fAvegKH>=1 && fYZ > 0)
|
||||
{
|
||||
fB1 = (fKH - fAvegKH) / fAvegKH * 20.0f;
|
||||
}
|
||||
*/
|
||||
fB1 = 0; //暂时取消B值
|
||||
|
||||
if (j == 0)
|
||||
@ -25955,7 +26267,7 @@ long CProcessSocket::Process_GZMsg_JL(REQ_GZMsg_JL *pJL)
|
||||
SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pDataSend, lSize); //发送返回
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
return 1;
|
||||
}
|
||||
catch (...)
|
||||
@ -25968,6 +26280,94 @@ long CProcessSocket::Process_GZMsg_JL(REQ_GZMsg_JL *pJL)
|
||||
|
||||
|
||||
|
||||
long CProcessSocket::Process_GZMsg_JL_MMDCount(REQ_GZMsg_JL_MMDCount* pReq)
|
||||
{
|
||||
try
|
||||
{
|
||||
ANS_GZMsg_JL_MMDCount* pRetTemp = new ANS_GZMsg_JL_MMDCount;
|
||||
memset((BYTE*)pRetTemp, 0, sizeof(ANS_GZMsg_JL_MMDCount));
|
||||
|
||||
pRetTemp->lErrCode = 0;
|
||||
pRetTemp->lType = pReq->lType;
|
||||
_tcscpy(pRetTemp->szMon, pReq->szMon);
|
||||
|
||||
CString str;
|
||||
if (!(m_ulPurview & PURVIEW_LIST)) //没有取清单的权限不能继续
|
||||
{
|
||||
pRetTemp->lErrCode = -1;
|
||||
_tcscpy(pRetTemp->szErrMsg, _T("权限不足"));
|
||||
SendFrame(SMSFUNC_GZMSG_JL_MMDCOUNT, (BYTE*)pRetTemp, sizeof(ANS_GZMsg_JL_MMDCount)); //发送返回
|
||||
return 1;
|
||||
}
|
||||
|
||||
//取请求数据
|
||||
ANS_GZMsg_JL_MMDCount_Data* pReqData = (ANS_GZMsg_JL_MMDCount_Data*)(((BYTE*)pReq) + sizeof(REQ_GZMsg_JL_MMDCount));
|
||||
//生成临时保存数据
|
||||
long lMaxYWY = 128;
|
||||
long lYWYCount = 0;
|
||||
ANS_GZMsg_JL_MMDCount_Data * pYWYData = new ANS_GZMsg_JL_MMDCount_Data[lMaxYWY];
|
||||
memset((BYTE*)pYWYData, 0, sizeof(ANS_GZMsg_JL_MMDCount_Data) * lMaxYWY);
|
||||
|
||||
//生成日期
|
||||
CString strMon = pReq->szMon;
|
||||
long lYear = _ttol(strMon.Left(4));
|
||||
long lMon = _ttol(strMon.Mid(5, 2));
|
||||
long lDay = 1;
|
||||
CString strGZMon;
|
||||
strGZMon.Format(_T("%04d%02d%02d"), lYear, lMon, lDay);
|
||||
//保存么么哒数据
|
||||
for (int i = 0; i < pReq->lCount && i < lMaxYWY; i++)
|
||||
{
|
||||
str.Format(_T("select * from YWY where Name='%s'"), pReqData[i].szYWYName); //根据客户经理名称取ID
|
||||
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
|
||||
{
|
||||
long lYWYID = 0;
|
||||
m_AdoRS.GetCollect(_T("YWYID"), lYWYID);
|
||||
|
||||
//更新客户经理表中的么么哒数据
|
||||
str.Format(_T("update YWY set MMDCount=%d where YWYID=%d"), pReqData[i].lMMDCount, lYWYID);
|
||||
m_AdoRS.Open(str);
|
||||
|
||||
//更新工资表中的么么哒数据
|
||||
str.Format(_T("update YWY_GZJS set MMDCount=%d where YWYID=%d and GZ_Mon='%s'"), pReqData[i].lMMDCount, lYWYID, strGZMon);
|
||||
m_AdoRS.Open(str);
|
||||
|
||||
pYWYData[lYWYCount] = pReqData[i];
|
||||
lYWYCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pRetTemp->lCount = lYWYCount; //返回的记录数
|
||||
long lSize = sizeof(ANS_GZMsg_JL_MMDCount) + sizeof(ANS_GZMsg_JL_MMDCount_Data) * lYWYCount;
|
||||
BYTE* pDataRet = new BYTE[lSize];
|
||||
memset(pDataRet, 0, lSize);
|
||||
|
||||
ANS_GZMsg_JL_MMDCount* pRet = (ANS_GZMsg_JL_MMDCount*)pDataRet;
|
||||
ANS_GZMsg_JL_MMDCount_Data* pRetData = (ANS_GZMsg_JL_MMDCount_Data*)(((BYTE*)pDataRet) + sizeof(ANS_GZMsg_JL_MMDCount));
|
||||
|
||||
*pRet = *pRetTemp; //复制返回数据
|
||||
delete pRetTemp; //临时返回数据,删除
|
||||
|
||||
//复制返回数据
|
||||
memcpy((BYTE*)pRetData, (BYTE*)pYWYData, sizeof(ANS_GZMsg_JL_MMDCount_Data) * lYWYCount);
|
||||
delete[] pYWYData; //临时返回数据,删除
|
||||
|
||||
|
||||
SendFrame(SMSFUNC_GZMSG_JL_MMDCOUNT, (BYTE*)pDataRet, lSize); //发送返回
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
LOG_APPERROR(_T("T"));
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
long CProcessSocket::Process_GZMsg_JL_GetYZKH(CAdoRecordSet *pAdoRSP1, CAdoRecordSet *pAdoRSP2, CAdoRecordSet *pAdoRSP3, long lYWYID, long lYear, long lMon, double & fTotalYZ, long & lTotalKH)
|
||||
{
|
||||
CString str;
|
||||
|
Loading…
Reference in New Issue
Block a user