保存进度!

This commit is contained in:
Kane Wang 2023-11-10 15:53:23 +08:00
parent 492239f269
commit d202d976a3
8 changed files with 157 additions and 21 deletions

View File

@ -19,7 +19,7 @@
"vuex": "^4.1.0" "vuex": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.22.15", "@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.5.1",
"@typescript-eslint/eslint-plugin": "^6.10.0", "@typescript-eslint/eslint-plugin": "^6.10.0",
"@vitejs/plugin-vue": "^4.4.1", "@vitejs/plugin-vue": "^4.4.1",
@ -126,9 +126,9 @@
} }
}, },
"node_modules/@babel/eslint-parser": { "node_modules/@babel/eslint-parser": {
"version": "7.22.15", "version": "7.23.3",
"resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz",
"integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",

View File

@ -20,7 +20,7 @@
"vuex": "^4.1.0" "vuex": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.22.15", "@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.5.1",
"@typescript-eslint/eslint-plugin": "^6.10.0", "@typescript-eslint/eslint-plugin": "^6.10.0",
"@vitejs/plugin-vue": "^4.4.1", "@vitejs/plugin-vue": "^4.4.1",

View File

@ -85,9 +85,62 @@ interface QueryBITelsalerRenewalRateReportResponse
records: BITelsalerRenewalRateRecord[]; records: BITelsalerRenewalRateRecord[];
} }
/** 机构 ***/
// 机构渗透率
/**
*
*/
interface BIDepartmentAttachingRateRecord
{
departmentName: string;
departmentObject: number;
objectGap: number;
motoPremium: number;
motoPremiumProPortion: number;
nomotoPremium: number;
attachingRate: number;
attachingRateChange: number;
motoInsuranceCustomerCount: number;
customerHandleRate: number;
customerHandleRateChange: number;
premiumPerCustomer: number;
premiumPerCustomerChange: number;
}
interface QueryBIDepartmentAttachingRateResponse
{
success: boolean;
message: string;
records: BIDepartmentAttachingRateRecord[];
}
// 机构续保率
interface BIDepartmentRenewalRateRecord
{
责任部门: string;
机构目标值: number;
到期数全月: number;
序时到期数占比: number;
个车续保率序时: number;
个车续保率全月: number;
环比昨日: number;
环比上月: number;
平均提前签单天数: number;
环比: number;
}
interface QueryBIDepartmentRenewalRateResponse
{
success: boolean;
message: string;
records: BIDepartmentRenewalRateRecord[];
}
type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error: any ) => void; type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error: any ) => void;
type QueryBITelsalerAttachingRateDataHandler = ( response: QueryBITelsalerAttachingRateReportResponse, error: any ) => void; type QueryBITelsalerAttachingRateDataHandler = ( response: QueryBITelsalerAttachingRateReportResponse, error: any ) => void;
type QueryBITelsalerRenewalRateDataHandler = ( response: QueryBITelsalerRenewalRateReportResponse, error: any ) => void; type QueryBITelsalerRenewalRateDataHandler = ( response: QueryBITelsalerRenewalRateReportResponse, error: any ) => void;
type QueryBIDepartmentAttachingRateDataHandler = ( response: QueryBIDepartmentAttachingRateResponse, error: any ) => void;
type QueryBIDepartmentRenewalRateDataHandler = ( response: QueryBIDepartmentRenewalRateResponse, error: any ) => void;
/** /**
* *
@ -198,6 +251,74 @@ function queryBITelsalerRenewalData( handler: QueryBITelsalerRenewalRateDataHand
}); });
} }
function queryDepartmentAttachingRateData( handler: QueryBIDepartmentAttachingRateDataHandler ): void
{
const queryResponse: QueryBIDepartmentAttachingRateResponse = {
success: false,
message: "",
records: [],
};
instance.request({
url: API_URL.URL_BI_DEPARTMENT_ATTACHINGRATE,
method: "post",
})
.then(( response: AxiosResponse<any, any> ): void =>
{
const data = response.data ?? {};
queryResponse.success = data.success ?? false;
queryResponse.message = data.message ?? "请求完成,但结果未知!";
queryResponse.records = data.records ?? [];
handler( queryResponse, null );
})
.catch(( error: any ): void =>
{
queryResponse.success = false;
queryResponse.message = "查询BI机构续渗透失败请查看控制台";
queryResponse.records = [];
console.log( "查询BI机构渗透率失败:", error );
handler( queryResponse, error );
});
}
function queryDepartmentRenewalRateData( handler: QueryBIDepartmentRenewalRateDataHandler ): void
{
const queryResponse: QueryBIDepartmentRenewalRateResponse = {
success: false,
message: "",
records: [],
};
instance.request({
url: API_URL.URL_BI_DEPARTMENT_RENEWALRATE,
method: "post",
})
.then(( response: AxiosResponse<any, any> ): void =>
{
const data = response.data ?? {};
queryResponse.success = data.success ?? false;
queryResponse.message = data.message ?? "请求完成,但结果未知!";
queryResponse.records = data.records ?? [];
handler( queryResponse, null );
})
.catch(( error: any ): void =>
{
queryResponse.success = false;
queryResponse.message = "查询BI机构续保率失败请查看控制台";
queryResponse.records = [];
console.log( "查询BI机构续保率失败:", error );
handler( queryResponse, error );
});
}
export { export {
type BIReportType, type BIReportType,
type ImportBIReportRequest, type ImportBIReportRequest,
@ -209,7 +330,15 @@ export {
type QueryBITelsalerRenewalRateDataHandler, type QueryBITelsalerRenewalRateDataHandler,
type BITelsalerRenewalRateRecord, type BITelsalerRenewalRateRecord,
type QueryBITelsalerRenewalRateReportResponse, type QueryBITelsalerRenewalRateReportResponse,
type BIDepartmentAttachingRateRecord,
type QueryBIDepartmentAttachingRateResponse,
type QueryBIDepartmentAttachingRateDataHandler,
type BIDepartmentRenewalRateRecord,
type QueryBIDepartmentRenewalRateResponse,
type QueryBIDepartmentRenewalRateDataHandler,
importBIReport, importBIReport,
queryBITelsalerAttachingRateData, queryBITelsalerAttachingRateData,
queryBITelsalerRenewalData queryBITelsalerRenewalData,
queryDepartmentAttachingRateData,
queryDepartmentRenewalRateData
}; };

View File

@ -22,7 +22,8 @@ public class BIDepartmentRenewalRateRecord
private int 平均提前签单天数; private int 平均提前签单天数;
private double 环比; private double 环比;
public BIDepartmentRenewalRateRecord() {} public BIDepartmentRenewalRateRecord()
{}
public BIDepartmentRenewalRateRecord( String 责任部门, double 机构目标值, int 到期数全月, double 序时到期数占比, public BIDepartmentRenewalRateRecord( String 责任部门, double 机构目标值, int 到期数全月, double 序时到期数占比,
double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月, int 平均提前签单天数, double 环比 ) double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月, int 平均提前签单天数, double 环比 )

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cpic.xim.mybatis.mapper.ArchievementMapper"> <mapper namespace="com.cpic.xim.mybatis.mapper.ArchievementMapper">
<select id="getDepartmentArchievement" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> <select id="getDepartmentArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap">
call telsale_archievement_pkg.department_archievement( call telsale_archievement_pkg.department_archievement(
#{a_department_code, mode=IN, jdbcType=VARCHAR}, #{a_department_code, mode=IN, jdbcType=VARCHAR},
#{a_attaching_rate, mode=OUT, jdbcType=VARCHAR}, #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},
@ -9,7 +9,7 @@
#{a_total, mode=OUT, jdbcType=INTEGER, javaType=Integer}, #{a_total, mode=OUT, jdbcType=INTEGER, javaType=Integer},
#{a_mensual_cur, mode=OUT, jdbcType=CURSOR, resultMap=MensualArchievementMapper}) #{a_mensual_cur, mode=OUT, jdbcType=CURSOR, resultMap=MensualArchievementMapper})
</select> </select>
<select id="getCallerArchievement" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> <select id="getCallerArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap">
call telsale_archievement_pkg.caller_archievement( call telsale_archievement_pkg.caller_archievement(
#{a_caller_code, mode=IN, jdbcType=VARCHAR}, #{a_caller_code, mode=IN, jdbcType=VARCHAR},
#{a_attaching_rate, mode=OUT, jdbcType=VARCHAR}, #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},

View File

@ -3,7 +3,7 @@
<mapper namespace="com.cpic.xim.mybatis.mapper.QueryBIArchievementDataMapper"> <mapper namespace="com.cpic.xim.mybatis.mapper.QueryBIArchievementDataMapper">
<!-- 查询坐席车非渗透率报表 --> <!-- 查询坐席车非渗透率报表 -->
<select id="queryBITelsalerAttachingRate" resultMap="BITelsalerAttachingRate"> <select id="queryBITelsalerAttachingRate" statementType="STATEMENT" resultMap="BITelsalerAttachingRate" useCache="false" flushCache="true">
SELECT t.部门, SELECT t.部门,
t.经办, t.经办,
t."车险保费(万)" as 车险保费, t."车险保费(万)" as 车险保费,
@ -34,7 +34,7 @@
</resultMap> </resultMap>
<!-- 坐席续保率 --> <!-- 坐席续保率 -->
<select id="queryBITesalerRenewalRate" resultMap="BITelsalerRenewalRate"> <select id="queryBITesalerRenewalRate" statementType="STATEMENT" resultMap="BITelsalerRenewalRate" useCache="false" flushCache="true">
select t.责任部门, select t.责任部门,
t.责任人, t.责任人,
t."机构目标值1(%)" as 机构目标值, t."机构目标值1(%)" as 机构目标值,
@ -63,7 +63,7 @@
</resultMap> </resultMap>
<!-- 机构渗透率 --> <!-- 机构渗透率 -->
<select id="queryBIDepartmentAttachingRate" resultMap="BIDepartmentAttachingRate"> <select id="queryBIDepartmentAttachingRate" statementType="STATEMENT" resultMap="BIDepartmentAttachingRate" useCache="false" flushCache="true">
select t.部门, select t.部门,
t."目标值-机构" as 目标值机构, t."目标值-机构" as 目标值机构,
t.目标差距, t.目标差距,
@ -96,7 +96,7 @@
</resultMap> </resultMap>
<!-- 机构续保率 --> <!-- 机构续保率 -->
<select id="queryBIDepartmentRenewalRate" resultMap="BIDepartmentRenewalRate"> <select id="queryBIDepartmentRenewalRate" statementType="STATEMENT" resultMap="BIDepartmentRenewalRate" useCache="false" flushCache="true">
select t.责任部门, select t.责任部门,
t."机构目标值1(%)" as 机构目标值, t."机构目标值1(%)" as 机构目标值,
t."到期数-全月" as 到期数全月, t."到期数-全月" as 到期数全月,

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cpic.xim.mybatis.mapper.RewardsMapper"> <mapper namespace="com.cpic.xim.mybatis.mapper.RewardsMapper">
<select id="queryRewardProjects" resultMap="RewardProjectMap"> <select id="queryRewardProjects" statementType="STATEMENT" resultMap="RewardProjectMap" useCache="false" flushCache="true">
select reward_index, reward_name from reward_projects order by reward_index desc select reward_index, reward_name from reward_projects order by reward_index desc
</select> </select>
<resultMap id="RewardProjectMap" type="com.cpic.xim.mybatis.pojo.RewardProject"> <resultMap id="RewardProjectMap" type="com.cpic.xim.mybatis.pojo.RewardProject">
@ -9,7 +9,7 @@
<result property="rewardName" column="reward_name" javaType="String"/> <result property="rewardName" column="reward_name" javaType="String"/>
</resultMap> </resultMap>
<select id="queryRewardTelsaler" flushCache="true" resultMap="RewardGainerMapper"> <select id="queryRewardTelsaler" statementType="STATEMENT" resultMap="RewardGainerMapper" useCache="false" flushCache="true">
SELECT hjr.rec_id rec_id, SELECT hjr.rec_id rec_id,
hjr.telsaler_name telsaler_name, hjr.telsaler_name telsaler_name,
hjr.telsaler_code telsaler_code, hjr.telsaler_code telsaler_code,
@ -28,20 +28,20 @@
<result column="reward_index" property="rewardProjectCode" /> <result column="reward_index" property="rewardProjectCode" />
</resultMap> </resultMap>
<select id="addRewardTelSaler" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> <select id="addRewardTelSaler" statementType="CALLABLE" parameterType="java.util.HashMap" useCache="false" flushCache="true" >
call telsaler_reward_pkg.add_telsaler_reward( call telsaler_reward_pkg.add_telsaler_reward(
#{a_reward_index,mode=IN,jdbcType=VARCHAR}, #{a_reward_index,mode=IN,jdbcType=VARCHAR},
#{a_telsaler_name,mode=IN,jdbcType=VARCHAR}) #{a_telsaler_name,mode=IN,jdbcType=VARCHAR})
</select> </select>
<!-- 删除获奖坐席记录 --> <!-- 删除获奖坐席记录 -->
<select id="deleteRewardTelSaler" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> <select id="deleteRewardTelSaler" statementType="CALLABLE" parameterType="java.util.HashMap" useCache="false" flushCache="true" >
call telsaler_reward_pkg.delete_telsaler_reward( call telsaler_reward_pkg.delete_telsaler_reward(
#{a_rec_id,mode=IN,jdbcType=INTEGER}) #{a_rec_id,mode=IN,jdbcType=INTEGER})
</select> </select>
<!-- 更新获奖坐席 --> <!-- 更新获奖坐席 -->
<select id="updateRewardTelSaler" statementType="CALLABLE" flushCache="true" parameterType="java.util.HashMap" > <select id="updateRewardTelSaler" statementType="CALLABLE" parameterType="java.util.HashMap" useCache="false" flushCache="true" >
call telsaler_reward_pkg.update_telsaler_reward( call telsaler_reward_pkg.update_telsaler_reward(
#{a_rec_id,mode=IN,jdbcType=INTEGER}, #{a_rec_id,mode=IN,jdbcType=INTEGER},
#{a_telsaler_name,mode=IN,jdbcType=VARCHAR}, #{a_telsaler_name,mode=IN,jdbcType=VARCHAR},

View File

@ -3,6 +3,11 @@
<configuration> <configuration>
<properties resource="mybatis/jdbc.properties" /> <properties resource="mybatis/jdbc.properties" />
<settings>
<!-- 二级缓存开启 -->
<setting name="cacheEnabled" value="false" />
</settings>
<!-- 类型别名 --> <!-- 类型别名 -->
<typeAliases> <typeAliases>
<package name="com.cpic.xim.mybatis.pojo" /> <package name="com.cpic.xim.mybatis.pojo" />
@ -29,4 +34,5 @@
<mapper resource="mybatis/mapper/ImportBIArchievementDataMapper.xml" /> <mapper resource="mybatis/mapper/ImportBIArchievementDataMapper.xml" />
<mapper resource="mybatis/mapper/QueryBIArchievementDataMapper.xml" /> <mapper resource="mybatis/mapper/QueryBIArchievementDataMapper.xml" />
</mappers> </mappers>
</configuration> </configuration>