完成坐席业绩查询代码

This commit is contained in:
Kane Wang 2023-08-26 19:26:13 +08:00
parent 83be988941
commit 42c2e8bdf7
9 changed files with 376 additions and 28 deletions

View File

@ -194,7 +194,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
--每月业绩
OPEN A_MENSUAL_CUR FOR
SELECT CF.月份 MM,
ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费) / 10000,
ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费),
0),
0) BF
FROM 坐席车非每日保费 CF

View File

@ -23,7 +23,165 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class CallerArchievement
{
private static Logger logger = LoggerFactory.getLogger(CallerArchievement.class);
private static Logger logger = LoggerFactory.getLogger( CallerArchievement.class );
}
/**
* 构造函数
* @param callerCode
* @param totalArchievement
* @param mensualArchievementList
* @param insuranceRenewalRate
* @param attachingRate
*/
public CallerArchievement( String callerCode, long totalArchievement,
ArrayList<MensualArchievementItem> mensualArchievementList, String insuranceRenewalRate,
String attachingRate)
{
this.callerCode = callerCode;
this.totalArchievement = totalArchievement;
this.mensualArchievementList = mensualArchievementList;
this.insuranceRenewalRate = insuranceRenewalRate;
this.attachingRate = attachingRate;
}
public CallerArchievement()
{
this.totalArchievement = 0;
this.mensualArchievementList = null;
this.insuranceRenewalRate = "";
this.attachingRate = "";
this.callerCode = "";
}
public static CallerArchievement getCallerArchievement( String callerCode ) throws IOException
{
CallerArchievement archievement = null;
SqlSession session = MybatisUtils.getSqlSession();
ArchievementMapper mapper = session.getMapper( ArchievementMapper.class );
HashMap<String,Object> params = new HashMap<String,Object>();
Integer totalArchievement = null;
String attachingRate = null;
String renewalRate = null;
ArrayList<MensualArchievementItem> mensual = null;
params.put("a_caller_code", callerCode );
mapper.getCallerArchievement(params);
// 总业绩
if ( params.get("a_total") instanceof Integer )
{
totalArchievement = (Integer)params.get("a_total");
}
else
{
totalArchievement = Integer.valueOf(0);
}
// 车非融合
if ( params.get("a_attaching_rate") instanceof String )
{
attachingRate = (String)params.get("a_attaching_rate");
}
else
{
attachingRate = "0.0";
}
// 续保率
if ( params.get("a_renewal_rate") instanceof String )
{
renewalRate = (String)params.get("a_renewal_rate");
}
else
{
renewalRate = "0.0";
}
// 每月业绩
mensual = (ArrayList<MensualArchievementItem>)params.get("a_mensual_cur");
archievement =new CallerArchievement(callerCode, totalArchievement, mensual, renewalRate, attachingRate);
return archievement;
}
public static Logger getLogger()
{
return logger;
}
public static void setLogger( Logger logger )
{
CallerArchievement.logger = logger;
}
public String getCallerCode()
{
return callerCode;
}
public void setCallerCode( String callerCode )
{
this.callerCode = callerCode;
}
public long getTotalArchievement()
{
return totalArchievement;
}
public void setTotalArchievement( long totalArchievement )
{
this.totalArchievement = totalArchievement;
}
public ArrayList<MensualArchievementItem> getMensualArchievementList()
{
return mensualArchievementList;
}
public void setMensualArchievementList(
ArrayList<MensualArchievementItem> mensualArchievementList )
{
this.mensualArchievementList = mensualArchievementList;
}
public String getInsuranceRenewalRate()
{
return insuranceRenewalRate;
}
public void setInsuranceRenewalRate( String insuranceRenewalRate )
{
this.insuranceRenewalRate = insuranceRenewalRate;
}
public String getAttachingRate()
{
return attachingRate;
}
public void setAttachingRate( String attachingRate )
{
this.attachingRate = attachingRate;
}
@JsonProperty( "caller_code" )
private String callerCode;
@JsonProperty( "total_archievement" )
private long totalArchievement; // 总业绩
// 每月业绩列表
// 要保证数据是按照月份排序
@JsonProperty( "mensual_archievement_list" )
private ArrayList<MensualArchievementItem> mensualArchievementList;
@JsonProperty( "insurance_renewal_rate" )
private String insuranceRenewalRate; // 续保率
@JsonProperty( "attaching_rate" )
private String attachingRate; // 车非渗透率
}

View File

@ -22,27 +22,32 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.cpic.xim.utils.archievement.CallerArchievement;
import com.cpic.xim.utils.archievement.DepartmentArchievement;
import com.cpic.xim.utils.ranking.CallerRankingItem;
import com.cpic.xim.utils.ranking.CallerRankingList;
import com.cpic.xim.web.controllers.archievement.RankingList.RankingListRequest;
import com.cpic.xim.web.controllers.archievement.RankingList.RankingListResponse;
import com.cpic.xim.web.controllers.archievement.caller.CallerArchievementQueryRequest;
import com.cpic.xim.web.controllers.archievement.caller.CallerArchievementQueryResult;
import com.cpic.xim.web.controllers.archievement.department.DepartmentArchievementQueryRequest;
import com.cpic.xim.web.controllers.archievement.department.DepartmentArchievementQueryResult;
@Controller
@RequestMapping( "/archievement" )
public class ArchievementQueryController
{
//日志
private static Logger logger = LoggerFactory.getLogger(ArchievementQueryController.class);
// 日志
private static Logger logger = LoggerFactory.getLogger( ArchievementQueryController.class );
/**
* 查询坐席业绩
*/
@PostMapping( "/query_caller_archievement.do" )
public void queryCallerArchievement()
{
// @PostMapping( "/query_caller_archievement.do" )
// public void queryCallerArchievement()
// {
}
// }
/**
* 查询部门业绩
@ -60,8 +65,8 @@ public class ArchievementQueryController
try
{
// 查询业绩
departmentArch = DepartmentArchievement
.getDepartmentArchievement( request.getDepartmentCode() );
departmentArch =
DepartmentArchievement.getDepartmentArchievement( request.getDepartmentCode() );
result.setTotalArchievement( departmentArch.getTotalArchievement() );
result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() );
@ -74,7 +79,7 @@ public class ArchievementQueryController
}
catch ( IOException error )
{
}
result.setSuccess( true );
@ -83,6 +88,31 @@ public class ArchievementQueryController
return result;
}
@ResponseBody
@PostMapping( "/query_caller_archievement.do" )
public CallerArchievementQueryResult queryCallerArchievement(
@RequestBody CallerArchievementQueryRequest request )
{
CallerArchievementQueryResult result = null;
try
{
CallerArchievement archievement =
CallerArchievement.getCallerArchievement( request.getCallerCode() );
result = new CallerArchievementQueryResult( true, "查询成功", archievement.getCallerCode(),
request.getCallName(), archievement.getTotalArchievement(),
archievement.getMensualArchievementList(),
archievement.getInsuranceRenewalRate(), archievement.getAttachingRate() );
}
catch ( IOException error )
{
result = new CallerArchievementQueryResult(false, error.getMessage(), null, null, 0, null, null, null);
}
return result;
}
@RequestMapping( "/query_ranking_list.do" )
@ResponseBody
public RankingListResponse queryCallerArchievementRankingList(
@ -115,7 +145,7 @@ public class ArchievementQueryController
success = false;
message = "获取排行榜失败,原因:" + error.getMessage();
logger.error(message, error);
logger.error( message, error );
}
RankingListResponse response = new RankingListResponse( success, message, departmentCode,

View File

@ -1,8 +0,0 @@
package com.cpic.xim.web.controllers.archievement;
public class CallerArchievementQueryResult
{
}

View File

@ -0,0 +1,43 @@
/*
* @Author: Kane
* @Date: 2023-08-26 13:20:32
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryRequest.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.archievement.caller;
import com.fasterxml.jackson.annotation.JsonProperty;
public class CallerArchievementQueryRequest
{
public CallerArchievementQueryRequest() {}
public String getCallerCode()
{
return callerCode;
}
public void setCallerCode( String callerCode )
{
this.callerCode = callerCode;
}
public String getCallName()
{
return callName;
}
public void setCallName( String callName )
{
this.callName = callName;
}
@JsonProperty("callerCode")
private String callerCode;
@JsonProperty("callerName")
private String callName;
}

View File

@ -0,0 +1,123 @@
/*
* @Author: Kane
* @Date: 2023-06-06 17:35:54
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResult.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.archievement.caller;
import com.cpic.xim.mybatis.pojo.MensualArchievementItem;
import com.cpic.xim.web.controllers.QueryResult;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
public class CallerArchievementQueryResult extends QueryResult
{
/**
*
* @param success
* @param message
* @param callerCode
* @param callerName
* @param totalArchievement
* @param mensualArchievementList
* @param insuranceRenewalRate
* @param attachingRate
*/
public CallerArchievementQueryResult( boolean success, String message, String callerCode,
String callerName, long totalArchievement,
ArrayList<MensualArchievementItem> mensualArchievementList, String insuranceRenewalRate,
String attachingRate)
{
super( success, message );
this.callerCode = callerCode;
this.callerName = callerName;
this.totalArchievement = totalArchievement;
this.mensualArchievementList = mensualArchievementList;
this.insuranceRenewalRate = insuranceRenewalRate;
this.attachingRate = attachingRate;
}
@JsonProperty("callerCode")
String callerCode;
public String getCallerCode()
{
return callerCode;
}
public void setCallerCode( String callerCode )
{
this.callerCode = callerCode;
}
public String getCallerName()
{
return callerName;
}
public void setCallerName( String callerName )
{
this.callerName = callerName;
}
public long getTotalArchievement()
{
return totalArchievement;
}
public void setTotalArchievement( long totalArchievement )
{
this.totalArchievement = totalArchievement;
}
public ArrayList<MensualArchievementItem> getMensualArchievementList()
{
return mensualArchievementList;
}
public void setMensualArchievementList( ArrayList<MensualArchievementItem> mensualArchievementList )
{
this.mensualArchievementList = mensualArchievementList;
}
public String getInsuranceRenewalRate()
{
return insuranceRenewalRate;
}
public void setInsuranceRenewalRate( String insuranceRenewalRate )
{
this.insuranceRenewalRate = insuranceRenewalRate;
}
public String getAttachingRate()
{
return attachingRate;
}
public void setAttachingRate( String attachingRate )
{
this.attachingRate = attachingRate;
}
@JsonProperty("callerName")
String callerName;
@JsonProperty( "total_archievement" )
private long totalArchievement; // 总业绩
// 每月业绩列表
// 要保证数据是按照月份排序
@JsonProperty( "mensual_archievement_list" )
private ArrayList<MensualArchievementItem> mensualArchievementList;
@JsonProperty( "insurance_renewal_rate" )
private String insuranceRenewalRate; // 续保率
@JsonProperty( "attaching_rate" )
private String attachingRate; // 车非渗透率
}

View File

@ -8,7 +8,7 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.archievement;
package com.cpic.xim.web.controllers.archievement.department;
import com.fasterxml.jackson.annotation.JsonProperty;

View File

@ -2,13 +2,13 @@
* @Author: Kane
* @Date: 2023-03-16 09:32:53
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/DepartmentArchievementQueryResult.java
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/department/DepartmentArchievementQueryResult.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.archievement;
package com.cpic.xim.web.controllers.archievement.department;
import java.util.ArrayList;
import java.util.List;
@ -23,7 +23,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
*/
public class DepartmentArchievementQueryResult extends QueryResult
{
DepartmentArchievementQueryResult()
public DepartmentArchievementQueryResult()
{
mensualArchievementList = new ArrayList<MensualArchievementItem>();
advanceRewardGainers = new Vector<String>();

View File

@ -100,10 +100,12 @@ public class DesktopArchievementTest
mapper.getCallerArchievement( params );
mensual = (ArrayList<MensualArchievementItem>) params.get( "a_mensual_cur" );
Object obj = params.get( "a_mensual_cur" );
mensual = (ArrayList<MensualArchievementItem>)params.get( "a_mensual_cur" );
System.out.println( params.toString() );
System.out.println( mensual.toString() );
System.out.println( obj.getClass());
assertTrue( params.size() > 1 );
}