完成坐席业绩查询代码

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 OPEN A_MENSUAL_CUR FOR
SELECT CF.月份 MM, SELECT CF.月份 MM,
ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费) / 10000, ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费),
0), 0),
0) BF 0) BF
FROM 坐席车非每日保费 CF FROM 坐席车非每日保费 CF

View File

@ -25,5 +25,163 @@ 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,11 +22,16 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; 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.archievement.DepartmentArchievement;
import com.cpic.xim.utils.ranking.CallerRankingItem; import com.cpic.xim.utils.ranking.CallerRankingItem;
import com.cpic.xim.utils.ranking.CallerRankingList; import com.cpic.xim.utils.ranking.CallerRankingList;
import com.cpic.xim.web.controllers.archievement.RankingList.RankingListRequest; 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.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 @Controller
@RequestMapping( "/archievement" ) @RequestMapping( "/archievement" )
@ -38,11 +43,11 @@ public class ArchievementQueryController
/** /**
* 查询坐席业绩 * 查询坐席业绩
*/ */
@PostMapping( "/query_caller_archievement.do" ) // @PostMapping( "/query_caller_archievement.do" )
public void queryCallerArchievement() // public void queryCallerArchievement()
{ // {
} // }
/** /**
* 查询部门业绩 * 查询部门业绩
@ -60,8 +65,8 @@ public class ArchievementQueryController
try try
{ {
// 查询业绩 // 查询业绩
departmentArch = DepartmentArchievement departmentArch =
.getDepartmentArchievement( request.getDepartmentCode() ); DepartmentArchievement.getDepartmentArchievement( request.getDepartmentCode() );
result.setTotalArchievement( departmentArch.getTotalArchievement() ); result.setTotalArchievement( departmentArch.getTotalArchievement() );
result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() ); result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() );
@ -83,6 +88,31 @@ public class ArchievementQueryController
return result; 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" ) @RequestMapping( "/query_ranking_list.do" )
@ResponseBody @ResponseBody
public RankingListResponse queryCallerArchievementRankingList( public RankingListResponse queryCallerArchievementRankingList(

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. * 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; import com.fasterxml.jackson.annotation.JsonProperty;

View File

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

View File

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