From 6f65e186723f1a151eb8b7d75dfcf96d9c45e52d Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Mon, 5 Jun 2023 11:45:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=86=99=E5=9D=90=E5=B8=AD=E6=8E=92?= =?UTF-8?q?=E8=A1=8C=E6=A6=9C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/db/常用语句.sql | 2 +- .../archievement/DepartmentArchievement.java | 4 - .../DepartmentCodeNotFoundException.java | 23 +++ .../utils/exception/ParameterExecption.java | 23 +++ .../ranking/CallerRankingItem.java} | 11 +- .../xim/utils/ranking/CallerRankingList.java | 131 ++++++++++++++++++ .../ArchievementQueryController.java | 7 +- .../RankingList/RankingListResponse.java | 20 +-- 8 files changed, 200 insertions(+), 21 deletions(-) create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/DepartmentCodeNotFoundException.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/ParameterExecption.java rename code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/{web/controllers/archievement/RankingList/CallerRanking.java => utils/ranking/CallerRankingItem.java} (82%) create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingList.java diff --git a/code/db/常用语句.sql b/code/db/常用语句.sql index 0bb6661..06a05de 100644 --- a/code/db/常用语句.sql +++ b/code/db/常用语句.sql @@ -61,7 +61,7 @@ SELECT 2) ͸ FROM ϯÿձ WHERE Ŵ = 'QDI' - AND · = '06' + AND · = '06' GROUP BY ϯ ORDER BY ͸ DESC; diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/DepartmentArchievement.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/DepartmentArchievement.java index 89f78ac..821749f 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/DepartmentArchievement.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/DepartmentArchievement.java @@ -11,11 +11,8 @@ package com.cpic.xim.utils.archievement; 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; @@ -80,7 +77,6 @@ public class DepartmentArchievement connection = DriverManager.getConnection( jdbcURL, userName, password ); statement = connection.prepareCall( sql ); - statement.setString( 1, departmentCode ); statement.registerOutParameter( 2, java.sql.Types.VARCHAR ); statement.registerOutParameter( 3, java.sql.Types.VARCHAR ); diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/DepartmentCodeNotFoundException.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/DepartmentCodeNotFoundException.java new file mode 100644 index 0000000..6d009e9 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/DepartmentCodeNotFoundException.java @@ -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 ); + } +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/ParameterExecption.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/ParameterExecption.java new file mode 100644 index 0000000..1477608 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/exception/ParameterExecption.java @@ -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 ); + } +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/CallerRanking.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingItem.java similarity index 82% rename from code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/CallerRanking.java rename to code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingItem.java index 446ba37..27eedfa 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/CallerRanking.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingItem.java @@ -2,18 +2,19 @@ * @Author: Kane * @Date: 2023-06-03 20:02:28 * @LastEditors: Kane - * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/CallerRanking.java - * @Description: + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRanking.java + * @Description: 坐席排行榜项目 * * 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; -public class CallerRanking +public class CallerRankingItem { - public CallerRanking() {} + + public CallerRankingItem() {} public int getIndex() { diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingList.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingList.java new file mode 100644 index 0000000..1ca50c2 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/ranking/CallerRankingList.java @@ -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 attachingRateRankingList, + Vector 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 attachingRateRankingList; + + // 续保率排行 + @JsonProperty( "renewalRateRankingList" ) + private Vector renewalRateRankingList; + +} diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java index 03fd9dc..0e09e6b 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java @@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestBody; import java.sql.SQLException; 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 @RequestMapping( "/archievement" ) @@ -80,8 +82,11 @@ public class ArchievementQueryController } @RequestMapping("/query_ranking_list.do") - public void queryCallerArchievementRankingList( ) + @ResponseBody + public RankingListResponse queryCallerArchievementRankingList( @RequestBody RankingListRequest request ) { + RankingListResponse response = new RankingListResponse(); + return response; } } diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/RankingListResponse.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/RankingListResponse.java index 4e8d2fa..31dd06e 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/RankingListResponse.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/RankingList/RankingListResponse.java @@ -10,9 +10,9 @@ package com.cpic.xim.web.controllers.archievement.RankingList; 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.fasterxml.jackson.annotation.JsonProperty; public class RankingListResponse extends QueryResult { @@ -38,22 +38,22 @@ public class RankingListResponse extends QueryResult this.month = month; } - public Vector getAttachingRateRankingList() + public Vector getAttachingRateRankingList() { return attachingRateRankingList; } - public void setAttachingRateRankingList( Vector attachingRateRankingList ) + public void setAttachingRateRankingList( Vector attachingRateRankingList ) { this.attachingRateRankingList = attachingRateRankingList; } - public Vector getRenewalRateRankingList() + public Vector getRenewalRateRankingList() { return renewalRateRankingList; } - public void setRenewalRateRankingList( Vector renewalRateRankingList ) + public void setRenewalRateRankingList( Vector renewalRateRankingList ) { this.renewalRateRankingList = renewalRateRankingList; } @@ -67,11 +67,11 @@ public class RankingListResponse extends QueryResult private String month; // 车非融合率排行 - @JsonProperty("attachingRateRankingList") - private Vector attachingRateRankingList; + @JsonProperty( "attachingRateRankingList" ) + private Vector attachingRateRankingList; // 续保率排行 - @JsonProperty("renewalRateRankingList") - private Vector renewalRateRankingList; + @JsonProperty( "renewalRateRankingList" ) + private Vector renewalRateRankingList; } \ No newline at end of file