diff --git a/DLG_GZMsg_JL.cpp b/DLG_GZMsg_JL.cpp index 5ed775b..34b12bb 100644 --- a/DLG_GZMsg_JL.cpp +++ b/DLG_GZMsg_JL.cpp @@ -14,9 +14,10 @@ IMPLEMENT_DYNAMIC(DLG_GZMsg_JL, CDialogEx) DLG_GZMsg_JL::DLG_GZMsg_JL(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_K_GZMSG_JL, pParent) { - m_pMainFrame=NULL; - m_lYWYID=0; + m_pMainFrame = NULL; + m_lYWYID = 0; m_pYWYData = NULL; + m_lShowType = 0; } DLG_GZMsg_JL::~DLG_GZMsg_JL() @@ -50,7 +51,7 @@ END_MESSAGE_MAP() void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery() { - REQ_GZMsg_JL * pJL = new REQ_GZMsg_JL; memset(pJL, 0, sizeof(REQ_GZMsg_JL)); + REQ_GZMsg_JL* pJL = new REQ_GZMsg_JL; memset(pJL, 0, sizeof(REQ_GZMsg_JL)); pJL->lType = m_wndType.GetCurSel(); CString strMon; m_wndMon.GetWindowText(strMon); @@ -63,11 +64,11 @@ void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery() { if (pJL->lPK1 == pJL->lPK2) { - MessageBox(_T("挑战者与被挑战者不能相同!"), _T("错误"), MB_ICONWARNING); + MessageBox(_T("挑战者与应战者不能相同!"), _T("错误"), MB_ICONWARNING); m_wndPK1.SetFocus(); return; } - if (pJL->lPK1>= 500000 && pJL->lPK2< 500000) + if (pJL->lPK1 >= 500000 && pJL->lPK2 < 500000) { MessageBox(_T("部门与个人不能互相挑战!"), _T("错误"), MB_ICONWARNING); m_wndPK1.SetFocus(); @@ -89,17 +90,13 @@ void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery() m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;")); } - } - else - { - } m_pMainFrame->SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pJL, sizeof(REQ_GZMsg_JL)); } -BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) +BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame) { CString str; @@ -110,9 +107,9 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) } if (pHead->lFuncType == SMSFUNC_GZMSG_JL) { - ANS_GZMsg_JL * pJL = (ANS_GZMsg_JL *)pFrame; - ANS_GZMsg_JL_Data * pJLData = (ANS_GZMsg_JL_Data *)(pFrame + sizeof(ANS_GZMsg_JL)); - ANS_GZMsg_JL_Data2 * pJLData2 = (ANS_GZMsg_JL_Data2 *)(pFrame + sizeof(ANS_GZMsg_JL)); + ANS_GZMsg_JL* pJL = (ANS_GZMsg_JL*)pFrame; + ANS_GZMsg_JL_Data* pJLData = (ANS_GZMsg_JL_Data*)(pFrame + sizeof(ANS_GZMsg_JL)); + ANS_GZMsg_JL_Data2* pJLData2 = (ANS_GZMsg_JL_Data2*)(pFrame + sizeof(ANS_GZMsg_JL)); if (!pJL->bOK) //权限不足,返回错误 { @@ -121,11 +118,15 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) if (pJL->lType == 0) { + CString str; m_wndList.DeleteAllItems(); m_wndList.DeleteAllColumns(); - m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A值,100; 上月B值,100; 上月C值,100;上月总分,100; 本月,100; 本月A值,100; 本月B值,100; 本月C值,100;本月总分,100; 平均分,100;")); + //2025年新的评比规则 + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,120; 么么哒,80; A值,80; B值,80;本月得分,100; 备注,120;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,120; 业绩,120; 么么哒,80; A值,80; B值,80;本月得分,100; 备注,120;")); - CString str; for (int i = 0; i < pJL->lCount; i++) { str.Format(_T("%d"), i + 1); @@ -133,33 +134,37 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) int iTemp = 1; m_wndList.SetItemText(i, iTemp++, pJLData->szGroupName); m_wndList.SetItemText(i, iTemp++, pJLData->szYWYName); - str.Format(_T("%04d年%02d月"), pJLData->tMon2.wYear, pJLData->tMon2.wMonth); - m_wndList.SetItemText(i, iTemp++, str); - - str.Format(_T("%10.2f"), pJLData->fA2); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fB2); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fC2); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fT2); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%04d年%02d月"), pJLData->tMon1.wYear, pJLData->tMon1.wMonth); m_wndList.SetItemText(i, iTemp++, str); - - str.Format(_T("%10.2f"), pJLData->fA1); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fB1); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fC1); - m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fT1); + + if (m_lShowType != 1) + { + str.Format(_T("%10.2f"), pJLData->fYZ1); + m_wndList.SetItemText(i, iTemp++, str); + } + str.Format(_T("%8d"), pJLData->lMMDCount); m_wndList.SetItemText(i, iTemp++, str); - str.Format(_T("%10.2f"), pJLData->fAvg); + str.Format(_T("%8.2f"), pJLData->fA1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%8.2f"), pJLData->fB1); m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%9.2f"), pJLData->fAvg); + m_wndList.SetItemText(i, iTemp++, str); + + if (pJLData->bUnconfirmed) + { + m_wndList.SetItemText(i, iTemp++, _T("含未确认业绩")); + } + else + { + if (pJLData->fAvg < 50.0f) + { + m_wndList.SetItemText(i, iTemp++, _T("进步空间巨大")); + } + + } pJLData++; } } @@ -200,6 +205,355 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) m_wndList.SetItemText(lItem, iTemp++, str); } else + { + m_wndList.DeleteAllItems(); + m_wndList.DeleteAllColumns(); + m_wndList.SetHeadings(_T("项目,200; 内容,450;")); + + CString str; + int iTemp = 0; + m_wndList.InsertItem(iTemp++, _T(""), 1); + str.Format(_T(" %s PK结果"), pJL->szMon); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); + m_wndList.InsertItem(iTemp++, _T(""), 1); + + if (pJLData2->bPK1Unconfirmed) + m_wndList.InsertItem(iTemp++, _T("挑战队(含未确认业绩)"), 1); + else + m_wndList.InsertItem(iTemp++, _T("挑战队"), 1); + m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1); + if (pJLData2->bPK1Unconfirmed) + m_wndList.InsertItem(iTemp++, _T("应战队(含未确认业绩)"), 1); + else + m_wndList.InsertItem(iTemp++, _T("应战队"), 1); + m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2); + + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1); + str.Format(_T("%10.0f%%"), pJLData2->fAddRatio * 100.0f); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + if (m_lShowType != 1) + { + m_wndList.InsertItem(iTemp++, _T("挑战队平均业绩"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1Pre3); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均业绩"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2Pre3); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + m_wndList.InsertItem(iTemp++, _T("挑战队平均么么哒"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均么么哒"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + } + + m_wndList.InsertItem(iTemp++, _T("挑战队平均得分"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1Now); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均得分"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2Now); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + if (m_lShowType != 1) + { + m_wndList.InsertItem(iTemp++, _T("挑战队-分数差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1Score); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-分数差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2Score); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + } + + m_wndList.InsertItem(iTemp++, _T("挑战队-业绩差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1YZ); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-业绩差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2YZ); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + m_wndList.InsertItem(iTemp++, _T("挑战队-么么哒差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-么么哒差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + m_wndList.InsertItem(iTemp++, _T(""), 1); //空行 + + + if (pJLData2->bWin) + { + m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0); + str.Format(_T("赢方:%s"), pJLData2->szPK1); + m_wndList.SetItemText(iTemp - 1, 1, str); + } + else + { + m_wndList.InsertItem(iTemp++, _T("挑战失败!!"), 1); + m_wndList.SetItemText(iTemp - 1, 1, _T("挑战失败!!")); + str.Format(_T("赢方:%s"), pJLData2->szPK2); + m_wndList.SetItemText(iTemp - 1, 1, str); + } + } + + //旧模式,分列表显示与表格显示。 + //2025年因为只有战队PK,统一改成只用表格显示 + /* + if (m_lShowType == 1) + { + CString str; + long lItem = m_wndList.GetItemCount(); + + str.Format(_T("%d"), lItem + 1); + m_wndList.InsertItem(lItem, str, 0); + int iTemp = 1; + //m_wndList.SetHeadings(_T("序号,50;月份,100; 挑战队,150; 应战队,150;挑战目标,80;挑战结果,120; 赢方,150;挑战队分数,100;应战队分数,100;挑战业绩差,100;应战业绩差,100;挑战么么哒差,100;应战么么哒差,100;")); + m_wndList.SetItemText(lItem, iTemp++, pJL->szMon); + m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK1); + m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK2); + str.Format(_T("%6.0f%%"), pJLData2->fAddRatio*100.0f); + m_wndList.SetItemText(lItem, iTemp++, str); + CString strResult; + CString strWinner; + if (pJLData2->bWin) + { + strResult = _T("挑战成功!!"); + strWinner = pJLData2->szPK1; + } + else + { + strResult = _T("挑战失败!!"); + strWinner = pJLData2->szPK2; + } + m_wndList.SetItemText(lItem, iTemp++, strResult); + m_wndList.SetItemText(lItem, iTemp++, strWinner); + + str.Format(_T("%10.2f"), pJLData2->fWin1Score); + m_wndList.SetItemText(lItem, iTemp++, str); + str.Format(_T("%10.2f"), pJLData2->fWin2Score); + m_wndList.SetItemText(lItem, iTemp++, str); + + str.Format(_T("%10.2f"), pJLData2->fWin1YZ); + m_wndList.SetItemText(lItem, iTemp++, str); + str.Format(_T("%10.2f"), pJLData2->fWin2YZ); + m_wndList.SetItemText(lItem, iTemp++, str); + + str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount); + m_wndList.SetItemText(lItem, iTemp++, str); + str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount); + m_wndList.SetItemText(lItem, iTemp++, str); + } + else + { + m_wndList.DeleteAllItems(); + m_wndList.DeleteAllColumns(); + m_wndList.SetHeadings(_T("项目,250; 内容,450;")); + + CString str; + int iTemp = 0; + m_wndList.InsertItem(iTemp++, _T(""), 1); + str.Format(_T(" %s PK结果"), pJL->szMon); + m_wndList.SetItemText(iTemp - 1, 1, str); + m_wndList.InsertItem(iTemp++, _T(""), 1); + m_wndList.InsertItem(iTemp++, _T(""), 1); + + m_wndList.InsertItem(iTemp++, _T("挑战队"), 1); + m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1); + m_wndList.InsertItem(iTemp++, _T("应战队"), 1); + m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2); + + m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1); + str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("挑战队平均业绩"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1Pre3); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均业绩"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2Pre3); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("挑战队平均么么哒"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均么么哒"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("挑战队平均得分"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK1Now); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队平均得分"), 1); + str.Format(_T("%10.2f"), pJLData2->fPK2Now); + m_wndList.SetItemText(iTemp - 1, 1, str); + + + m_wndList.InsertItem(iTemp++, _T("挑战队-分数差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1Score); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-分数差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2Score); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("挑战队-业绩差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1YZ); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-业绩差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2YZ); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("挑战队-么么哒差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + m_wndList.InsertItem(iTemp++, _T("应战队-么么哒差"), 1); + str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount); + m_wndList.SetItemText(iTemp - 1, 1, str); + + + if (pJLData2->bWin) + { + m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0); + str.Format(_T("赢方:%s"), pJLData2->szPK1); + m_wndList.SetItemText(iTemp - 1, 1, str); + } + else + { + m_wndList.InsertItem(iTemp++, _T("挑战失败!!"), 1); + m_wndList.SetItemText(iTemp - 1, 1, _T("挑战失败!!")); + str.Format(_T("赢方:%s"), pJLData2->szPK2); + m_wndList.SetItemText(iTemp - 1, 1, str); + } + } + */ + } + + /* 2024年前旧的评比规则 + if (pJL->lType == 0) + { + CString str; + m_wndList.DeleteAllItems(); + m_wndList.DeleteAllColumns(); + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;上月得分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;平均业绩,100;平均客户,80;上月业绩,100;上月客户,80; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100;平均业绩,100;平均客户,80;本月业绩,100;本月客户,80; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + for (int i = 0; i < pJL->lCount; i++) + { + str.Format(_T("%d"), i + 1); + m_wndList.InsertItem(i, str, 0); + int iTemp = 1; + m_wndList.SetItemText(i, iTemp++, pJLData->szGroupName); + m_wndList.SetItemText(i, iTemp++, pJLData->szYWYName); + str.Format(_T("%04d年%02d月"), pJLData->tMon2.wYear, pJLData->tMon2.wMonth); + m_wndList.SetItemText(i, iTemp++, str); + + if (m_lShowType != 1) + { + str.Format(_T("%10.2f"), pJLData->fAvegYZ2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fAvegKH2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fYZ2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%6d"), (long)pJLData->fKH2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fA2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fB2); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fC2); + m_wndList.SetItemText(i, iTemp++, str); + } + str.Format(_T("%10.2f"), pJLData->fT2); + m_wndList.SetItemText(i, iTemp++, str); + + str.Format(_T("%04d年%02d月"), pJLData->tMon1.wYear, pJLData->tMon1.wMonth); + m_wndList.SetItemText(i, iTemp++, str); + if (m_lShowType != 1) + { + str.Format(_T("%10.2f"), pJLData->fAvegYZ1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fAvegKH1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fYZ1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%6d"), (long)pJLData->fKH1); + m_wndList.SetItemText(i, iTemp++, str); + } + str.Format(_T("%10.2f"), pJLData->fA1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fB1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fC1); + m_wndList.SetItemText(i, iTemp++, str); + str.Format(_T("%10.2f"), pJLData->fT1); + m_wndList.SetItemText(i, iTemp++, str); + + str.Format(_T("%10.2f"), pJLData->fAvg); + m_wndList.SetItemText(i, iTemp++, str); + + pJLData++; + } + } + if (pJL->lType == 1) + { + if (m_lShowType == 1) + { + CString str; + long lItem = m_wndList.GetItemCount(); + + str.Format(_T("%d"), lItem + 1); + m_wndList.InsertItem(lItem, str, 0); + int iTemp = 1; + //m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;")); + m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK1); + m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK2); + str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f); + m_wndList.SetItemText(lItem, iTemp++, str); + CString strResult; + CString strWinner; + if (pJLData2->bWin) + { + strResult = _T("挑战成功!!"); + strWinner = pJLData2->szPK1; + } + else + { + strResult = _T("挑战失败!!"); + strWinner = pJLData2->szPK2; + } + m_wndList.SetItemText(lItem, iTemp++, strResult); + m_wndList.SetItemText(lItem, iTemp++, strWinner); + + str.Format(_T("%10.2f"), pJLData2->fWin1YZ); + m_wndList.SetItemText(lItem, iTemp++, str); + str.Format(_T("%10.2f"), pJLData2->fWin2YZ); + m_wndList.SetItemText(lItem, iTemp++, str); + } + else { m_wndList.DeleteAllItems(); m_wndList.DeleteAllColumns(); @@ -217,22 +571,17 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1); m_wndList.InsertItem(iTemp++, _T("被挑战者"), 1); m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2); - /* m_wndList.InsertItem(iTemp++, _T("挑战者-前三月平均业绩"), 1); str.Format(_T("%10.2f"), pJLData2->fPK1Pre3); m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.InsertItem(iTemp++, _T("被挑战者-前三月平均业绩"), 1); str.Format(_T("%10.2f"), pJLData2->fPK2Pre3); m_wndList.SetItemText(iTemp - 1, 1, str); - */ - - m_wndList.InsertItem(iTemp++, _T(""), 1); m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1); - str.Format(_T("%10.0f%%"), pJLData2->fAddRatio * 100.0f); + str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f); m_wndList.SetItemText(iTemp - 1, 1, str); - /* m_wndList.InsertItem(iTemp++, _T("挑战者-当月业绩"), 1); str.Format(_T("%10.2f"), pJLData2->fPK1Now); m_wndList.SetItemText(iTemp - 1, 1, str); @@ -252,9 +601,6 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) m_wndList.InsertItem(iTemp++, _T("挑战者-获胜业绩"), 1); str.Format(_T("%10.2f"), pJLData2->fPKWinYZ); m_wndList.SetItemText(iTemp - 1, 1, str); - */ - - m_wndList.InsertItem(iTemp++, _T(""), 1); m_wndList.InsertItem(iTemp++, _T("挑战者-业绩差"), 1); str.Format(_T("%10.2f"), pJLData2->fWin1YZ); @@ -264,9 +610,6 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) str.Format(_T("%10.2f"), pJLData2->fWin2YZ); m_wndList.SetItemText(iTemp - 1, 1, str); - m_wndList.InsertItem(iTemp++, _T(""), 1); - m_wndList.InsertItem(iTemp++, _T(""), 1); - if (pJLData2->bWin) { m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0); @@ -280,22 +623,65 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) str.Format(_T("赢方:%s"), pJLData2->szPK2); m_wndList.SetItemText(iTemp - 1, 1, str); } + } + } + */ + return true; + } + if (pHead->lFuncType == SMSFUNC_GZMSG_JL_MMDCOUNT) + { + ANS_GZMsg_JL_MMDCount* pRet = (ANS_GZMsg_JL_MMDCount*)pFrame; + ANS_GZMsg_JL_MMDCount_Data* pRetData = (ANS_GZMsg_JL_MMDCount_Data*)(pFrame + sizeof(ANS_GZMsg_JL_MMDCount)); + + if (pRet->lErrCode != 0) + { + str.Format(_T("设置么么哒数据失败:%d - %s"), pRet->lErrCode, pRet->szErrMsg); + MessageBox(str, _T("错误"), MB_ICONERROR); + return true; + } + //生成显示的数据 + CString strShowText; + long lShowTextCount = 0; + for (int i = 0; i < pRet->lCount && i < 16; i++) + { + str.Format(_T("%-10s%6d"), pRetData[i].szYWYName, pRetData[i].lMMDCount); + if (lShowTextCount <= 0) + { + strShowText += str; + lShowTextCount++; + } + else + { + if (lShowTextCount >= 2) + { + strShowText = strShowText + _T(" | ") + str; + strShowText.Append(_T("\r\n")); + lShowTextCount = 0; + } + else + { + strShowText = strShowText + _T(" | ") + str; + lShowTextCount++; + } } } + str.Format(_T("已导入%s的么么哒数据,共导入%d个数据:\r\n\r\n%s"), pRet->szMon, pRet->lCount, strShowText); + MessageBox(str, _T("信息"), MB_ICONINFORMATION); return true; } return false; } -void DLG_GZMsg_JL::SetParam(CMainFrame * pFrame, long lYWYID, CString strName,BYTE * pYWYData) +void DLG_GZMsg_JL::SetParam(CMainFrame* pFrame, long lYWYID, CString strName, BYTE* pYWYData, long lShowType) { m_lYWYID = lYWYID; m_strName = strName; m_pMainFrame = pFrame; m_pYWYData = pYWYData; + m_lShowType = lShowType; } @@ -313,19 +699,35 @@ BOOL DLG_GZMsg_JL::OnInitDialog() m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ)); m_wndList.SubClassWindow2(); - m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + //2025年新的评比规则 + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100;么么哒,80; A值,100; B值,100; 本月得分,100;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100; 业绩,100;么么哒,80; A值,100; B值,100; 本月得分,100;")); + + /* 2024年前旧的评比规则 + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + */ m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image, LVSIL_SMALL); - ANS_GZMsg_JL_PARA * pPara = (ANS_GZMsg_JL_PARA *)m_pYWYData; - ANS_GZMsg_JL_PARA_DATE * pData = (ANS_GZMsg_JL_PARA_DATE *)(m_pYWYData + sizeof(ANS_GZMsg_JL_PARA)); + ANS_GZMsg_JL_PARA* pPara = (ANS_GZMsg_JL_PARA*)m_pYWYData; + ANS_GZMsg_JL_PARA_DATE* pData = (ANS_GZMsg_JL_PARA_DATE*)(m_pYWYData + sizeof(ANS_GZMsg_JL_PARA)); if (pPara->lErrCode != 0) //权限不足,返回错误 { return true; } - m_wndType.SetCurSel(0); - ANS_GZMsg_JL_PARA_DATE * pMon = pData; + + if (m_lShowType == 1) + m_wndType.SetCurSel(1); + else + m_wndType.SetCurSel(0); + + ANS_GZMsg_JL_PARA_DATE* pMon = pData; for (int i = 0; i < pPara->lMonCount; i++) { m_wndMon.AddString(pMon[i].szName); @@ -333,7 +735,7 @@ BOOL DLG_GZMsg_JL::OnInitDialog() m_wndMon.SetCurSel(0); pData += pPara->lMonCount; - ANS_GZMsg_JL_PARA_DATE * pPkRatio = pData; + ANS_GZMsg_JL_PARA_DATE* pPkRatio = pData; for (int i = 0; i < pPara->lPKRatioCount; i++) { m_wndPKRatio.AddString(pPkRatio[i].szName); @@ -341,34 +743,64 @@ BOOL DLG_GZMsg_JL::OnInitDialog() m_wndPKRatio.SetCurSel(0); pData += pPara->lPKRatioCount; - ANS_GZMsg_JL_PARA_DATE * pYWY = pData; + //以下为添加PK的队员信息,并且自动匹配选择对手 + ANS_GZMsg_JL_PARA_DATE* pYWY = pData; + int iPK1Sel = 0; + int iPK2Sel = 0; + int iPK1SelID = 0; + int iPK2SelID = 0; for (int i = 0; i < pPara->lYWYCount; i++) { int iItem = m_wndPK1.AddString(pYWY[i].szName); m_wndPK1.SetItemData(iItem, pYWY[i].lYWYID); - iItem = m_wndPK2.AddString(pYWY[i].szName); m_wndPK2.SetItemData(iItem, pYWY[i].lYWYID); + + if (i == 0) + { + iPK1SelID = pYWY[i].lYWYID; + iPK1Sel = 0; + } + else + { + if (iPK2Sel <= 0 && iPK1SelID < 500000 && pYWY[i].lYWYID < 500000) //同类型的 + { + iPK2Sel = i; + } + if (iPK2Sel <= 0 && iPK1SelID >= 500000 && pYWY[i].lYWYID >= 500000) //同类型的 + { + iPK2Sel = i; + } + + } } - m_wndPK1.SetCurSel(0); - m_wndPK2.SetCurSel(0); - //默认为查询月度之星,隐藏相关参数 - m_wndPK1.ShowWindow(SW_HIDE); - m_wndPK2.ShowWindow(SW_HIDE); - m_wndPKRatio.ShowWindow(SW_HIDE); - m_B_AddList.ShowWindow(SW_HIDE); - GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_HIDE); - GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE); - GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE); + m_wndPK1.SetCurSel(iPK1Sel); + m_wndPK2.SetCurSel(iPK2Sel); + + + OnSelchangeIddKGzmsgJlType(); + + /* + if (m_lShowType != 1) + { + //默认为查询月度之星,隐藏相关参数 + m_wndPK1.ShowWindow(SW_HIDE); + m_wndPK2.ShowWindow(SW_HIDE); + m_wndPKRatio.ShowWindow(SW_HIDE); + m_B_AddList.ShowWindow(SW_HIDE); + GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_HIDE); + GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE); + GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE); + } + */ - return TRUE; // return TRUE unless you set the focus to a control - // 异常: OCX 属性页应返回 FALSE + // 异常: OCX 属性页应返回 FALSE } -void DLG_GZMsg_JL::OnRclickGzmsgJlList(NMHDR *pNMHDR, LRESULT *pResult) +void DLG_GZMsg_JL::OnRclickGzmsgJlList(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 @@ -384,11 +816,7 @@ void DLG_GZMsg_JL::ShowRMenu() menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_COPY, _T(" 复 制 ")); - if (m_wndType.GetCurSel() == 1) - { - menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_DEL, _T(" 删 除 ")); - } - + menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_DEL, _T(" 删 除 ")); //显示菜单 POINT pt; ::GetCursorPos(&pt); @@ -409,7 +837,6 @@ void DLG_GZMsg_JL::On_GZMsg_Del() m_wndList.DeleteItem(iItem); } - void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType() { if (m_wndType.GetCurSel() == 0) @@ -423,6 +850,23 @@ void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType() GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE); + m_wndList.DeleteAllItems(); + m_wndList.DeleteAllColumns(); + + //2025年新的评比规则 + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100;么么哒,80; A值,100; B值,100; 本月得分,100;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100; 业绩,100;么么哒,80; A值,100; B值,100; 本月得分,100;")); + + + /* 2024年前旧的评比规则 + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;上月得分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + else + m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;平均业绩,100;平均客户,80;上月业绩,100;上月客户,80; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100;平均业绩,100;平均客户,80;本月业绩,100;本月客户,80; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); + */ + } else { @@ -434,5 +878,13 @@ void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType() GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_SHOW); GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_SHOW); GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_SHOW); + + m_wndList.DeleteAllItems(); + m_wndList.DeleteAllColumns(); + if (m_lShowType == 1) + m_wndList.SetHeadings(_T("序号,50; 月份,100; 挑战队,150; 应战队,150;挑战目标,80;挑战结果,120; 赢方,150;挑战队分数,100;应战队分数,100;挑战业绩差,120;应战业绩差,120;挑战么么哒差,120;应战么么哒差,120;")); + else + m_wndList.SetHeadings(_T("项目,250; 内容,450;")); + } } diff --git a/DLG_GZMsg_JL.h b/DLG_GZMsg_JL.h index ebd87f1..55357a6 100644 --- a/DLG_GZMsg_JL.h +++ b/DLG_GZMsg_JL.h @@ -14,20 +14,20 @@ class DLG_GZMsg_JL : public CDialogEx DECLARE_DYNAMIC(DLG_GZMsg_JL) public: - CMainFrame * m_pMainFrame; + CMainFrame* m_pMainFrame; long m_lYWYID; CString m_strName; - BYTE * m_pYWYData; + BYTE* m_pYWYData; CImageList m_Image; - + long m_lShowType; public: void ShowRMenu(); - void SetParam(CMainFrame * pFrame, long lYWYID, CString strName,BYTE * pYWYData); - BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame); + void SetParam(CMainFrame* pFrame, long lYWYID, CString strName, BYTE* pYWYData, long lShowType = 0); + BOOL ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame); DLG_GZMsg_JL(CWnd* pParent = nullptr); // 标准构造函数 virtual ~DLG_GZMsg_JL(); -// 对话框数据 + // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_K_GZMSG_JL }; #endif @@ -47,9 +47,9 @@ public: CComboBox m_wndPK2; CComboBox m_wndPKRatio; CComboBox m_wndType; - CButton m_B_AddList; - virtual BOOL OnInitDialog(); - afx_msg void OnRclickGzmsgJlList(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnRclickGzmsgJlList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnSelchangeIddKGzmsgJlType(); + afx_msg void OnBnClickedKGzmsgJlInportmmdcount(); + CButton m_B_AddList; }; diff --git a/Debug_Unicode/AgentManager.exe b/Debug_Unicode/AgentManager.exe index 93a84d3..c1b36e8 100644 Binary files a/Debug_Unicode/AgentManager.exe and b/Debug_Unicode/AgentManager.exe differ diff --git a/Debug_Unicode/SmsManager.dat b/Debug_Unicode/SmsManager.dat index 41f3227..a132cca 100644 Binary files a/Debug_Unicode/SmsManager.dat and b/Debug_Unicode/SmsManager.dat differ diff --git a/Debug_Unicode/SmsManager.res b/Debug_Unicode/SmsManager.res index 7ce16df..4886692 100644 Binary files a/Debug_Unicode/SmsManager.res and b/Debug_Unicode/SmsManager.res differ diff --git a/Debug_Unicode/SmsManager.tlog/CL.read.1.tlog b/Debug_Unicode/SmsManager.tlog/CL.read.1.tlog index bc0b280..d75c8ed 100644 Binary files a/Debug_Unicode/SmsManager.tlog/CL.read.1.tlog and b/Debug_Unicode/SmsManager.tlog/CL.read.1.tlog differ diff --git a/Debug_Unicode/SmsManager.tlog/CL.write.1.tlog b/Debug_Unicode/SmsManager.tlog/CL.write.1.tlog index 3efdb49..58e893f 100644 Binary files a/Debug_Unicode/SmsManager.tlog/CL.write.1.tlog and b/Debug_Unicode/SmsManager.tlog/CL.write.1.tlog differ diff --git a/Debug_Unicode/SmsManager.tlog/link.read.1.tlog b/Debug_Unicode/SmsManager.tlog/link.read.1.tlog index a851f72..7850737 100644 Binary files a/Debug_Unicode/SmsManager.tlog/link.read.1.tlog and b/Debug_Unicode/SmsManager.tlog/link.read.1.tlog differ diff --git a/Debug_Unicode/SmsManager.tlog/link.write.1.tlog b/Debug_Unicode/SmsManager.tlog/link.write.1.tlog index 8dbeb94..33a4152 100644 Binary files a/Debug_Unicode/SmsManager.tlog/link.write.1.tlog and b/Debug_Unicode/SmsManager.tlog/link.write.1.tlog differ diff --git a/Debug_Unicode/vc143.idb b/Debug_Unicode/vc143.idb index 8fdc4b4..a114530 100644 Binary files a/Debug_Unicode/vc143.idb and b/Debug_Unicode/vc143.idb differ diff --git a/K_GZMsg.cpp b/K_GZMsg.cpp index 72f3f64..758ae04 100644 --- a/K_GZMsg.cpp +++ b/K_GZMsg.cpp @@ -870,7 +870,7 @@ if (pHead->lFuncType == SMSFUNC_GZMSG_JL_PARA) DLG_GZMsg_JL dlg(this); BYTE* pData = new BYTE[pHead->lFrameLen]; memcpy(pData, pFrame, pHead->lFrameLen); - dlg.SetParam(this->m_pMainFrame, m_pMainFrame->m_lUserID, _T(""), pData); + dlg.SetParam(this->m_pMainFrame, m_pMainFrame->m_lUserID, _T(""), pData,1); this->m_pDlgJL = &dlg; dlg.DoModal(); delete pData; diff --git a/Release_Unicode/AgentManager.exe b/Release_Unicode/AgentManager.exe index e454841..ccede30 100644 Binary files a/Release_Unicode/AgentManager.exe and b/Release_Unicode/AgentManager.exe differ diff --git a/Release_Unicode/SmsManager.tlog/CL.command.1.tlog b/Release_Unicode/SmsManager.tlog/CL.command.1.tlog index a469ab0..fbdd9f2 100644 Binary files a/Release_Unicode/SmsManager.tlog/CL.command.1.tlog and b/Release_Unicode/SmsManager.tlog/CL.command.1.tlog differ diff --git a/Release_Unicode/SmsManager.tlog/CL.read.1.tlog b/Release_Unicode/SmsManager.tlog/CL.read.1.tlog index 1158188..45e8fd6 100644 Binary files a/Release_Unicode/SmsManager.tlog/CL.read.1.tlog and b/Release_Unicode/SmsManager.tlog/CL.read.1.tlog differ diff --git a/Release_Unicode/SmsManager.tlog/CL.write.1.tlog b/Release_Unicode/SmsManager.tlog/CL.write.1.tlog index f361fb1..b490ec4 100644 Binary files a/Release_Unicode/SmsManager.tlog/CL.write.1.tlog and b/Release_Unicode/SmsManager.tlog/CL.write.1.tlog differ