Supported BreakCodeDetails,FirstCheckInTime, LastCheckoutTime .

This commit is contained in:
sdk-team
2023-05-23 12:05:54 +00:00
parent ebee82abfa
commit 00eafdf174
7 changed files with 106 additions and 26 deletions

View File

@@ -1 +1 @@
1.36.1579 1.36.1580

View File

@@ -35,10 +35,12 @@ namespace AlibabaCloud
struct DataItem struct DataItem
{ {
std::string state; std::string state;
std::string breakCode;
long startTime; long startTime;
std::string stateCode; std::string stateCode;
bool outboundScenario; bool outboundScenario;
long duration; long duration;
std::string workMode;
}; };

View File

@@ -97,28 +97,42 @@ namespace AlibabaCloud
}; };
struct Overall struct Overall
{ {
long totalReadyTime; struct BreakCodeDetail
long totalBreakTime; {
long totalCalls; std::string breakCode;
long duration;
long count;
};
long totalWorkTime; long totalWorkTime;
long totalHoldTime; long totalHoldTime;
long satisfactionSurveysOffered;
float averageHoldTime; float averageHoldTime;
float satisfactionIndex; float satisfactionIndex;
float averageBreakTime; float averageBreakTime;
long satisfactionSurveysResponded; long totalOutboundScenarioTime;
long firstCheckInTime;
long lastCheckOutTime;
long totalOffSiteOnlineTime;
long totalTalkTime; long totalTalkTime;
float averageReadyTime; float averageReadyTime;
long totalLoggedInTime;
long maxTalkTime; long maxTalkTime;
float satisfactionRate; float satisfactionRate;
float averageWorkTime;
long maxReadyTime; long maxReadyTime;
long maxWorkTime;
long maxBreakTime; long maxBreakTime;
float occupancyRate;
long maxHoldTime; long maxHoldTime;
float averageTalkTime; float averageTalkTime;
long totalReadyTime;
long totalBreakTime;
long totalCalls;
long satisfactionSurveysOffered;
long totalOfficePhoneOnlineTime;
long satisfactionSurveysResponded;
long totalOutboundScenarioReadyTime;
long totalLoggedInTime;
float averageWorkTime;
std::vector<BreakCodeDetail> breakCodeDetailList;
long totalOnSiteOnlineTime;
long maxWorkTime;
float occupancyRate;
}; };
Outbound outbound; Outbound outbound;
Overall overall; Overall overall;

View File

@@ -95,30 +95,42 @@ namespace AlibabaCloud
}; };
struct Overall struct Overall
{ {
struct BreakCodeDetail
{
std::string breakCode;
long duration;
long count;
};
long totalWorkTime;
long totalHoldTime;
float averageHoldTime;
float satisfactionIndex;
float averageBreakTime;
long totalOutboundScenarioTime;
long firstCheckInTime;
long totalOffSiteOnlineTime;
long totalTalkTime;
float averageReadyTime;
long maxTalkTime;
long maxReadyTime;
float satisfactionRate;
long maxBreakTime;
long maxHoldTime;
float averageTalkTime;
long totalReadyTime; long totalReadyTime;
long lastCheckoutTime; long lastCheckoutTime;
long totalCalls; long totalCalls;
long totalBreakTime; long totalBreakTime;
long totalWorkTime;
long totalHoldTime;
long satisfactionSurveysOffered; long satisfactionSurveysOffered;
float averageHoldTime; long totalOfficePhoneOnlineTime;
float satisfactionIndex;
float averageBreakTime;
long firstCheckInTime;
long satisfactionSurveysResponded; long satisfactionSurveysResponded;
long totalTalkTime; long totalOutboundScenarioReadyTime;
float averageReadyTime;
long totalLoggedInTime; long totalLoggedInTime;
long maxTalkTime;
float averageWorkTime; float averageWorkTime;
long maxReadyTime; std::vector<BreakCodeDetail> breakCodeDetailList;
float satisfactionRate; long totalOnSiteOnlineTime;
long maxWorkTime; long maxWorkTime;
long maxBreakTime;
float occupancyRate; float occupancyRate;
long maxHoldTime;
float averageTalkTime;
}; };
Outbound outbound; Outbound outbound;
Overall overall; Overall overall;

View File

@@ -53,6 +53,10 @@ void ListAgentStateLogsResult::parse(const std::string &payload)
dataObject.state = valueDataDataItem["State"].asString(); dataObject.state = valueDataDataItem["State"].asString();
if(!valueDataDataItem["OutboundScenario"].isNull()) if(!valueDataDataItem["OutboundScenario"].isNull())
dataObject.outboundScenario = valueDataDataItem["OutboundScenario"].asString() == "true"; dataObject.outboundScenario = valueDataDataItem["OutboundScenario"].asString() == "true";
if(!valueDataDataItem["BreakCode"].isNull())
dataObject.breakCode = valueDataDataItem["BreakCode"].asString();
if(!valueDataDataItem["WorkMode"].isNull())
dataObject.workMode = valueDataDataItem["WorkMode"].asString();
data_.push_back(dataObject); data_.push_back(dataObject);
} }
if(!value["Code"].isNull()) if(!value["Code"].isNull())

View File

@@ -213,6 +213,32 @@ void ListHistoricalAgentReportResult::parse(const std::string &payload)
itemsObject.overall.maxTalkTime = std::stol(overallNode["MaxTalkTime"].asString()); itemsObject.overall.maxTalkTime = std::stol(overallNode["MaxTalkTime"].asString());
if(!overallNode["TotalCalls"].isNull()) if(!overallNode["TotalCalls"].isNull())
itemsObject.overall.totalCalls = std::stol(overallNode["TotalCalls"].asString()); itemsObject.overall.totalCalls = std::stol(overallNode["TotalCalls"].asString());
if(!overallNode["TotalOnSiteOnlineTime"].isNull())
itemsObject.overall.totalOnSiteOnlineTime = std::stol(overallNode["TotalOnSiteOnlineTime"].asString());
if(!overallNode["TotalOffSiteOnlineTime"].isNull())
itemsObject.overall.totalOffSiteOnlineTime = std::stol(overallNode["TotalOffSiteOnlineTime"].asString());
if(!overallNode["TotalOfficePhoneOnlineTime"].isNull())
itemsObject.overall.totalOfficePhoneOnlineTime = std::stol(overallNode["TotalOfficePhoneOnlineTime"].asString());
if(!overallNode["FirstCheckInTime"].isNull())
itemsObject.overall.firstCheckInTime = std::stol(overallNode["FirstCheckInTime"].asString());
if(!overallNode["LastCheckOutTime"].isNull())
itemsObject.overall.lastCheckOutTime = std::stol(overallNode["LastCheckOutTime"].asString());
if(!overallNode["TotalOutboundScenarioTime"].isNull())
itemsObject.overall.totalOutboundScenarioTime = std::stol(overallNode["TotalOutboundScenarioTime"].asString());
if(!overallNode["TotalOutboundScenarioReadyTime"].isNull())
itemsObject.overall.totalOutboundScenarioReadyTime = std::stol(overallNode["TotalOutboundScenarioReadyTime"].asString());
auto allBreakCodeDetailListNode = overallNode["BreakCodeDetailList"]["BreakCodeDetail"];
for (auto overallNodeBreakCodeDetailListBreakCodeDetail : allBreakCodeDetailListNode)
{
Data::Items::Overall::BreakCodeDetail breakCodeDetailObject;
if(!overallNodeBreakCodeDetailListBreakCodeDetail["BreakCode"].isNull())
breakCodeDetailObject.breakCode = overallNodeBreakCodeDetailListBreakCodeDetail["BreakCode"].asString();
if(!overallNodeBreakCodeDetailListBreakCodeDetail["Count"].isNull())
breakCodeDetailObject.count = std::stol(overallNodeBreakCodeDetailListBreakCodeDetail["Count"].asString());
if(!overallNodeBreakCodeDetailListBreakCodeDetail["Duration"].isNull())
breakCodeDetailObject.duration = std::stol(overallNodeBreakCodeDetailListBreakCodeDetail["Duration"].asString());
itemsObject.overall.breakCodeDetailList.push_back(breakCodeDetailObject);
}
data_.list.push_back(itemsObject); data_.list.push_back(itemsObject);
} }
if(!value["Code"].isNull()) if(!value["Code"].isNull())

View File

@@ -192,8 +192,6 @@ void ListIntervalAgentReportResult::parse(const std::string &payload)
dataObject.overall.satisfactionRate = std::stof(overallNode["SatisfactionRate"].asString()); dataObject.overall.satisfactionRate = std::stof(overallNode["SatisfactionRate"].asString());
if(!overallNode["SatisfactionSurveysOffered"].isNull()) if(!overallNode["SatisfactionSurveysOffered"].isNull())
dataObject.overall.satisfactionSurveysOffered = std::stol(overallNode["SatisfactionSurveysOffered"].asString()); dataObject.overall.satisfactionSurveysOffered = std::stol(overallNode["SatisfactionSurveysOffered"].asString());
if(!overallNode["FirstCheckInTime"].isNull())
dataObject.overall.firstCheckInTime = std::stol(overallNode["FirstCheckInTime"].asString());
if(!overallNode["SatisfactionSurveysResponded"].isNull()) if(!overallNode["SatisfactionSurveysResponded"].isNull())
dataObject.overall.satisfactionSurveysResponded = std::stol(overallNode["SatisfactionSurveysResponded"].asString()); dataObject.overall.satisfactionSurveysResponded = std::stol(overallNode["SatisfactionSurveysResponded"].asString());
if(!overallNode["AverageHoldTime"].isNull()) if(!overallNode["AverageHoldTime"].isNull())
@@ -202,6 +200,30 @@ void ListIntervalAgentReportResult::parse(const std::string &payload)
dataObject.overall.averageReadyTime = std::stof(overallNode["AverageReadyTime"].asString()); dataObject.overall.averageReadyTime = std::stof(overallNode["AverageReadyTime"].asString());
if(!overallNode["TotalBreakTime"].isNull()) if(!overallNode["TotalBreakTime"].isNull())
dataObject.overall.totalBreakTime = std::stol(overallNode["TotalBreakTime"].asString()); dataObject.overall.totalBreakTime = std::stol(overallNode["TotalBreakTime"].asString());
if(!overallNode["TotalOnSiteOnlineTime"].isNull())
dataObject.overall.totalOnSiteOnlineTime = std::stol(overallNode["TotalOnSiteOnlineTime"].asString());
if(!overallNode["TotalOffSiteOnlineTime"].isNull())
dataObject.overall.totalOffSiteOnlineTime = std::stol(overallNode["TotalOffSiteOnlineTime"].asString());
if(!overallNode["TotalOfficePhoneOnlineTime"].isNull())
dataObject.overall.totalOfficePhoneOnlineTime = std::stol(overallNode["TotalOfficePhoneOnlineTime"].asString());
if(!overallNode["TotalOutboundScenarioTime"].isNull())
dataObject.overall.totalOutboundScenarioTime = std::stol(overallNode["TotalOutboundScenarioTime"].asString());
if(!overallNode["TotalOutboundScenarioReadyTime"].isNull())
dataObject.overall.totalOutboundScenarioReadyTime = std::stol(overallNode["TotalOutboundScenarioReadyTime"].asString());
if(!overallNode["FirstCheckInTime"].isNull())
dataObject.overall.firstCheckInTime = std::stol(overallNode["FirstCheckInTime"].asString());
auto allBreakCodeDetailListNode = overallNode["BreakCodeDetailList"]["BreakCodeDetail"];
for (auto overallNodeBreakCodeDetailListBreakCodeDetail : allBreakCodeDetailListNode)
{
DataItem::Overall::BreakCodeDetail breakCodeDetailObject;
if(!overallNodeBreakCodeDetailListBreakCodeDetail["BreakCode"].isNull())
breakCodeDetailObject.breakCode = overallNodeBreakCodeDetailListBreakCodeDetail["BreakCode"].asString();
if(!overallNodeBreakCodeDetailListBreakCodeDetail["Count"].isNull())
breakCodeDetailObject.count = std::stol(overallNodeBreakCodeDetailListBreakCodeDetail["Count"].asString());
if(!overallNodeBreakCodeDetailListBreakCodeDetail["Duration"].isNull())
breakCodeDetailObject.duration = std::stol(overallNodeBreakCodeDetailListBreakCodeDetail["Duration"].asString());
dataObject.overall.breakCodeDetailList.push_back(breakCodeDetailObject);
}
data_.push_back(dataObject); data_.push_back(dataObject);
} }
if(!value["Code"].isNull()) if(!value["Code"].isNull())