编写坐席排行榜接口
This commit is contained in:
parent
490e0e0e93
commit
6f65e18672
@ -61,7 +61,7 @@ SELECT
|
|||||||
2) 车非渗透率
|
2) 车非渗透率
|
||||||
FROM 坐席车非每日保费
|
FROM 坐席车非每日保费
|
||||||
WHERE 部门代码 = 'QDI'
|
WHERE 部门代码 = 'QDI'
|
||||||
AND 月份 = '06月'
|
AND 月份 = '06'
|
||||||
GROUP BY 坐席名称
|
GROUP BY 坐席名称
|
||||||
ORDER BY 车非渗透率 DESC;
|
ORDER BY 车非渗透率 DESC;
|
||||||
|
|
||||||
|
@ -11,11 +11,8 @@ package com.cpic.xim.utils.archievement;
|
|||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.CallableStatement;
|
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import oracle.jdbc.OracleCallableStatement;
|
import oracle.jdbc.OracleCallableStatement;
|
||||||
@ -80,7 +77,6 @@ public class DepartmentArchievement
|
|||||||
connection = DriverManager.getConnection( jdbcURL, userName, password );
|
connection = DriverManager.getConnection( jdbcURL, userName, password );
|
||||||
statement = connection.prepareCall( sql );
|
statement = connection.prepareCall( sql );
|
||||||
|
|
||||||
|
|
||||||
statement.setString( 1, departmentCode );
|
statement.setString( 1, departmentCode );
|
||||||
statement.registerOutParameter( 2, java.sql.Types.VARCHAR );
|
statement.registerOutParameter( 2, java.sql.Types.VARCHAR );
|
||||||
statement.registerOutParameter( 3, java.sql.Types.VARCHAR );
|
statement.registerOutParameter( 3, java.sql.Types.VARCHAR );
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-06-05 10:36:30
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/DepartmentCodeNotFoundException.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.utils.exception;
|
||||||
|
|
||||||
|
public class DepartmentCodeNotFoundException extends Exception
|
||||||
|
{
|
||||||
|
public DepartmentCodeNotFoundException()
|
||||||
|
{
|
||||||
|
super("部门代码无效!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public DepartmentCodeNotFoundException( String message )
|
||||||
|
{
|
||||||
|
super( message );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-06-05 10:56:33
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/ParameterExecption.java
|
||||||
|
* @Description: 用于表示参数错误的异常对象。
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.utils.exception;
|
||||||
|
|
||||||
|
public class ParameterExecption extends Exception
|
||||||
|
{
|
||||||
|
public ParameterExecption()
|
||||||
|
{
|
||||||
|
super("参数错误!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParameterExecption(String message )
|
||||||
|
{
|
||||||
|
super( message );
|
||||||
|
}
|
||||||
|
}
|
@ -2,18 +2,19 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-06-03 20:02:28
|
* @Date: 2023-06-03 20:02:28
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/CallerRanking.java
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRanking.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.RankingList;
|
package com.cpic.xim.utils.ranking;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
public class CallerRanking
|
public class CallerRankingItem
|
||||||
{
|
{
|
||||||
public CallerRanking() {}
|
|
||||||
|
public CallerRankingItem() {}
|
||||||
|
|
||||||
public int getIndex()
|
public int getIndex()
|
||||||
{
|
{
|
@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-06-05 08:55:06
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingList.java
|
||||||
|
* @Description: 坐席排行榜对象
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.utils.ranking;
|
||||||
|
|
||||||
|
import java.util.Vector;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.CallableStatement;
|
||||||
|
|
||||||
|
import java.util.Vector;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import oracle.jdbc.OracleCallableStatement;
|
||||||
|
import oracle.jdbc.OracleTypes;
|
||||||
|
|
||||||
|
public class CallerRankingList
|
||||||
|
{
|
||||||
|
// 以后要改
|
||||||
|
private static String jdbcURL = "jdbc:oracle:thin:@10.39.0.86:1521:xmcx1";
|
||||||
|
private static String userName = "desktop_archievement_admin";
|
||||||
|
private static String password = "Cpic123456";
|
||||||
|
|
||||||
|
private CallerRankingList( Vector<CallerRankingItem> attachingRateRankingList,
|
||||||
|
Vector<CallerRankingItem> renewalRateRankingList)
|
||||||
|
{
|
||||||
|
this.attachingRateRankingList = attachingRateRankingList;
|
||||||
|
this.renewalRateRankingList = renewalRateRankingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief static方法,用于查询部门坐席排行榜
|
||||||
|
* @param departmentCode 部门代码
|
||||||
|
* @param year 排行榜年份
|
||||||
|
* @param month 排行榜月份
|
||||||
|
* @return CallerRankingList的实例对象
|
||||||
|
*/
|
||||||
|
public static CallerRankingList getCallerRankingList( String departmentCode, String year,
|
||||||
|
String month ) throws ClassNotFoundException, SQLException
|
||||||
|
{
|
||||||
|
CallerRankingList rankingList = null;
|
||||||
|
|
||||||
|
Connection connection = null;
|
||||||
|
CallableStatement statement = null;
|
||||||
|
ResultSet result = null;
|
||||||
|
String sql = """
|
||||||
|
{call telsale_archievement_pkg.caller_arch_ranking_list(?,?,?)}
|
||||||
|
""";
|
||||||
|
String monthRegx = "(0[1-9])|(1[0-2])";
|
||||||
|
String yearRegx = "20[0-2][0-0]";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Class.forName( "oracle.jdbc.driver.OracleDriver" );
|
||||||
|
connection = DriverManager.getConnection( jdbcURL, userName, password );
|
||||||
|
statement = connection.prepareCall(sql);
|
||||||
|
|
||||||
|
statement.setString( 1, departmentCode );
|
||||||
|
statement.registerOutParameter(2, OracleTypes.CURSOR );
|
||||||
|
statement.registerOutParameter(3, OracleTypes.CURSOR );
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if ( result != null )
|
||||||
|
{
|
||||||
|
result.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( Exception exception )
|
||||||
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if ( statement != null )
|
||||||
|
{
|
||||||
|
statement.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( Exception exception )
|
||||||
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if ( connection != null )
|
||||||
|
{
|
||||||
|
connection.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( Exception exception )
|
||||||
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return rankingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 部门代码
|
||||||
|
private String departmentCode;
|
||||||
|
|
||||||
|
// 排行榜年份
|
||||||
|
private String year;
|
||||||
|
|
||||||
|
// 排行榜统计月份
|
||||||
|
private String month;
|
||||||
|
|
||||||
|
// 车非融合率排行
|
||||||
|
@JsonProperty( "attachingRateRankingList" )
|
||||||
|
private Vector<CallerRankingItem> attachingRateRankingList;
|
||||||
|
|
||||||
|
// 续保率排行
|
||||||
|
@JsonProperty( "renewalRateRankingList" )
|
||||||
|
private Vector<CallerRankingItem> renewalRateRankingList;
|
||||||
|
|
||||||
|
}
|
@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import com.cpic.xim.utils.archievement.DepartmentArchievement;
|
import com.cpic.xim.utils.archievement.DepartmentArchievement;
|
||||||
|
import com.cpic.xim.web.controllers.archievement.RankingList.RankingListRequest;
|
||||||
|
import com.cpic.xim.web.controllers.archievement.RankingList.RankingListResponse;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping( "/archievement" )
|
@RequestMapping( "/archievement" )
|
||||||
@ -80,8 +82,11 @@ public class ArchievementQueryController
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/query_ranking_list.do")
|
@RequestMapping("/query_ranking_list.do")
|
||||||
public void queryCallerArchievementRankingList( )
|
@ResponseBody
|
||||||
|
public RankingListResponse queryCallerArchievementRankingList( @RequestBody RankingListRequest request )
|
||||||
{
|
{
|
||||||
|
RankingListResponse response = new RankingListResponse();
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
package com.cpic.xim.web.controllers.archievement.RankingList;
|
package com.cpic.xim.web.controllers.archievement.RankingList;
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.cpic.xim.utils.ranking.CallerRankingItem;
|
||||||
|
|
||||||
import com.cpic.xim.web.controllers.QueryResult;
|
import com.cpic.xim.web.controllers.QueryResult;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
public class RankingListResponse extends QueryResult
|
public class RankingListResponse extends QueryResult
|
||||||
{
|
{
|
||||||
@ -38,22 +38,22 @@ public class RankingListResponse extends QueryResult
|
|||||||
this.month = month;
|
this.month = month;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector<CallerRanking> getAttachingRateRankingList()
|
public Vector<CallerRankingItem> getAttachingRateRankingList()
|
||||||
{
|
{
|
||||||
return attachingRateRankingList;
|
return attachingRateRankingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAttachingRateRankingList( Vector<CallerRanking> attachingRateRankingList )
|
public void setAttachingRateRankingList( Vector<CallerRankingItem> attachingRateRankingList )
|
||||||
{
|
{
|
||||||
this.attachingRateRankingList = attachingRateRankingList;
|
this.attachingRateRankingList = attachingRateRankingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector<CallerRanking> getRenewalRateRankingList()
|
public Vector<CallerRankingItem> getRenewalRateRankingList()
|
||||||
{
|
{
|
||||||
return renewalRateRankingList;
|
return renewalRateRankingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRenewalRateRankingList( Vector<CallerRanking> renewalRateRankingList )
|
public void setRenewalRateRankingList( Vector<CallerRankingItem> renewalRateRankingList )
|
||||||
{
|
{
|
||||||
this.renewalRateRankingList = renewalRateRankingList;
|
this.renewalRateRankingList = renewalRateRankingList;
|
||||||
}
|
}
|
||||||
@ -67,11 +67,11 @@ public class RankingListResponse extends QueryResult
|
|||||||
private String month;
|
private String month;
|
||||||
|
|
||||||
// 车非融合率排行
|
// 车非融合率排行
|
||||||
@JsonProperty("attachingRateRankingList")
|
@JsonProperty( "attachingRateRankingList" )
|
||||||
private Vector<CallerRanking> attachingRateRankingList;
|
private Vector<CallerRankingItem> attachingRateRankingList;
|
||||||
|
|
||||||
// 续保率排行
|
// 续保率排行
|
||||||
@JsonProperty("renewalRateRankingList")
|
@JsonProperty( "renewalRateRankingList" )
|
||||||
private Vector<CallerRanking> renewalRateRankingList;
|
private Vector<CallerRankingItem> renewalRateRankingList;
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user