保存进度!
This commit is contained in:
parent
4e74bff380
commit
484b8a78e9
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
import { service as instance } from "./api/request.js";
|
import { service as instance, service } from "./api/request.js";
|
||||||
import { API_URL } from "./api/config.js";
|
import { API_URL } from "./api/config.js";
|
||||||
import { type AxiosResponse } from "axios";
|
import { type AxiosResponse } from "axios";
|
||||||
interface BIReportType
|
interface BIReportType
|
||||||
@ -16,6 +16,9 @@ interface BIReportType
|
|||||||
reportTypeName: string;
|
reportTypeName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入报表的请求对象
|
||||||
|
*/
|
||||||
interface ImportBIReportRequest
|
interface ImportBIReportRequest
|
||||||
{
|
{
|
||||||
filePath: string,
|
filePath: string,
|
||||||
@ -24,33 +27,59 @@ interface ImportBIReportRequest
|
|||||||
sheetIndex: number,
|
sheetIndex: number,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入报表的相应对象
|
||||||
|
*/
|
||||||
interface ImportBIReportResponse
|
interface ImportBIReportResponse
|
||||||
{
|
{
|
||||||
success: boolean,
|
success: boolean, // 请求成功标志
|
||||||
message: string,
|
message: string, // 请求结果说明
|
||||||
importedCount: number,
|
importedCount: number, // 导入记录的数量
|
||||||
}
|
}
|
||||||
|
|
||||||
// BI坐席渗透率报表记录
|
// BI坐席渗透率报表记录
|
||||||
interface BITelsalerAttachingRateReportRecord
|
interface BITelsalerAttachingRateRecord
|
||||||
{
|
{
|
||||||
departmentName: string;
|
departmentName: string; // 部门
|
||||||
telsalerName: string;
|
telsalerName: string; // 经办人
|
||||||
motoPremium: number;
|
motoPremium: number; // 车险保费
|
||||||
nomotoPremium: number;
|
nomotoPremium: number; // 非车险保费
|
||||||
attachingRatePresentMonth: number;
|
motoPremiumProportion: number; // 车险保费占比
|
||||||
attachingRateChange: number;
|
attachingRate: number; // 保费渗透率
|
||||||
|
attachingRateChange: number; // 渗透率环比上月
|
||||||
|
customerHandleRate: number; // 当月客户渗透率
|
||||||
|
customerHandleRateChange: number; // 客户渗透率环比上月
|
||||||
|
noMotoPremiumPerCustomer: number; // 当月车非客均保费
|
||||||
|
noMotoPremiumPerCustomerChange: number; // 客均保费环比上月
|
||||||
}
|
}
|
||||||
|
|
||||||
interface QueryBITelsalerAttachingRateReportResponse
|
interface QueryBITelsalerAttachingRateReportResponse
|
||||||
{
|
{
|
||||||
success: boolean,
|
success: boolean,
|
||||||
message: string,
|
message: string,
|
||||||
records: BITelsalerAttachingRateReportRecord[];
|
records: BITelsalerAttachingRateRecord[];
|
||||||
}
|
}
|
||||||
|
|
||||||
type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error?: any ) => void;
|
/**
|
||||||
|
* BI坐席续保率报表记录
|
||||||
|
*/
|
||||||
|
interface BITelsalerRenewalRateRecord
|
||||||
|
{
|
||||||
|
责任部门: string;
|
||||||
|
责任人: string;
|
||||||
|
机构目标值: number;
|
||||||
|
到期数全月: number;
|
||||||
|
序时到期数占比: number;
|
||||||
|
个车续保率序时: number;
|
||||||
|
个车续保率全月: number;
|
||||||
|
环比昨日: number;
|
||||||
|
环比上月: number;
|
||||||
|
平均提前签单天数: number;
|
||||||
|
环比: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error: any ) => void;
|
||||||
|
type QueryBITelsalerAttachingRateDataHandler = ( response: QueryBITelsalerAttachingRateReportResponse, error: any ) => void;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param request 请求参数
|
* @param request 请求参数
|
||||||
@ -88,12 +117,49 @@ function importBIReport( request: ImportBIReportRequest, handler: any ): void
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function queryBITelsalerAttachingRateData( handler: QueryBITelsalerAttachingRateDataHandler ): void
|
||||||
|
{
|
||||||
|
const queryResponse: QueryBITelsalerAttachingRateReportResponse = {
|
||||||
|
success: false,
|
||||||
|
message: "",
|
||||||
|
records: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
instance.request({
|
||||||
|
url: API_URL.URL_BI_TELSALER_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 ?? [];
|
||||||
|
|
||||||
|
console.log( "请求BI坐席渗透率数据", queryResponse );
|
||||||
|
handler( queryResponse, null );
|
||||||
|
})
|
||||||
|
.catch(( error ): void =>
|
||||||
|
{
|
||||||
|
queryResponse.message = "请求BI坐席渗漏率报表数据时出现错误,请查看控制台消息!";
|
||||||
|
queryResponse.success = false;
|
||||||
|
|
||||||
|
console.log( error );
|
||||||
|
|
||||||
|
handler( queryResponse, error );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
type BIReportType,
|
type BIReportType,
|
||||||
type ImportBIReportRequest,
|
type ImportBIReportRequest,
|
||||||
type ImportBIReportResponse,
|
type ImportBIReportResponse,
|
||||||
type ImportBIReportResponseHandler,
|
type ImportBIReportResponseHandler,
|
||||||
type BITelsalerAttachingRateReportRecord,
|
type BITelsalerAttachingRateRecord,
|
||||||
type QueryBITelsalerAttachingRateReportResponse,
|
type QueryBITelsalerAttachingRateReportResponse,
|
||||||
importBIReport
|
type QueryBITelsalerAttachingRateDataHandler,
|
||||||
|
type BITelsalerRenewalRateRecord,
|
||||||
|
importBIReport,
|
||||||
|
queryBITelsalerAttachingRateData
|
||||||
};
|
};
|
||||||
|
@ -50,6 +50,13 @@ const API_URL = {
|
|||||||
// 导入报表
|
// 导入报表
|
||||||
URL_IMPORT_REPORT: "http://10.39.0.41:8081/desktop_archievement_backend/import_bi_data/excel.do",
|
URL_IMPORT_REPORT: "http://10.39.0.41:8081/desktop_archievement_backend/import_bi_data/excel.do",
|
||||||
// URL_IMPORT_REPORT: "http://222.76.244.118:11101/desktop_archievement_backend/import_bi_data/excel.do",
|
// URL_IMPORT_REPORT: "http://222.76.244.118:11101/desktop_archievement_backend/import_bi_data/excel.do",
|
||||||
|
|
||||||
|
// 请求BI报表数据
|
||||||
|
// URL_BI_TELSALER_ATTACHINGRATE: "http://localhost:8080/desktop_archievement_backend/archievement/bi_telsaler_attachingrate.do",
|
||||||
|
URL_BI_TELSALER_ATTACHINGRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_telsaler_attachingrate.do",
|
||||||
|
URL_BI_TELSALER_RENEWALRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_telsaler_renewalrate.do",
|
||||||
|
URL_BI_DEPARTMENT_ATTACHINGRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_department_attachingrate.do",
|
||||||
|
URL_BI_DEPARTMENT_RENEWALRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_department_renewalrate.do",
|
||||||
};
|
};
|
||||||
|
|
||||||
export { API_URL };
|
export { API_URL };
|
||||||
|
@ -18,43 +18,71 @@
|
|||||||
>
|
>
|
||||||
上传
|
上传
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="refresh"
|
||||||
|
@click="refresh"
|
||||||
|
>
|
||||||
|
刷新
|
||||||
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table
|
<el-table
|
||||||
border
|
border
|
||||||
stripe
|
stripe
|
||||||
style="width:100%;"
|
style="width:100%;"
|
||||||
|
:data="tableData"
|
||||||
>
|
>
|
||||||
<el-table-column
|
|
||||||
type="selection"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="部门"
|
label="部门"
|
||||||
align="center"
|
align="center"
|
||||||
width="200"
|
width="300"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ telsaler.row.departmentName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="名称"
|
label="名称"
|
||||||
align="center"
|
align="center"
|
||||||
width="200"
|
width="200"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ telsaler.row.telsalerName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="车险保费(万)"
|
label="车险保费"
|
||||||
align="center"
|
align="center"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ Math.trunc( telsaler.row.motoPremium * 10000) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="非车险保费(万)"
|
label="非车险保费"
|
||||||
align="center"
|
align="center"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ Math.trunc( telsaler.row.nomotoPremium * 10000) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="当月保费渗透率"
|
label="当月保费渗透率"
|
||||||
align="center"
|
align="center"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ telsaler.row.attachingRate.toFixed(2) + "%" }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="渗透率环比上月"
|
label="渗透率环比上月"
|
||||||
align="center"
|
align="center"
|
||||||
/>
|
>
|
||||||
|
<template #default="telsaler">
|
||||||
|
<span>{{ telsaler.row.attachingRateChange.toFixed(2) + "%" }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="pagination_wrapper">
|
<div class="pagination_wrapper">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
@ -65,7 +93,7 @@
|
|||||||
:page-size="ui.tablePageSize"
|
:page-size="ui.tablePageSize"
|
||||||
:page-sizes="[10, 20, 50, 100]"
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
:total="0"
|
:total="tableCount"
|
||||||
@current-change="onCurrentPageIndexChange"
|
@current-change="onCurrentPageIndexChange"
|
||||||
@size-change="onTablePageSizeChange"
|
@size-change="onTablePageSizeChange"
|
||||||
/>
|
/>
|
||||||
@ -87,19 +115,36 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { reactive } from "vue";
|
import { reactive, onBeforeMount, computed } from "vue";
|
||||||
|
import {
|
||||||
|
type BITelsalerAttachingRateRecord,
|
||||||
|
type QueryBITelsalerAttachingRateReportResponse,
|
||||||
|
type QueryBITelsalerAttachingRateDataHandler,
|
||||||
|
queryBITelsalerAttachingRateData
|
||||||
|
} from "@/utils/BIReport.js";
|
||||||
import BiDataUploadView from "@/views/data/bi/BiDataUploadView.vue";
|
import BiDataUploadView from "@/views/data/bi/BiDataUploadView.vue";
|
||||||
|
import { ElMessageBox } from "element-plus";
|
||||||
|
|
||||||
|
interface UI
|
||||||
|
{
|
||||||
|
showUI: boolean,
|
||||||
|
showUploadDialog: boolean,
|
||||||
|
tableCurrentPageIndex: number,
|
||||||
|
tablePageSize: number,
|
||||||
|
BITelsalerAttachingRateData: BITelsalerAttachingRateRecord[],
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TelsalerAttachingRateView",
|
name: "TelsalerAttachingRateView",
|
||||||
components: { BiDataUploadView, },
|
components: { BiDataUploadView, },
|
||||||
setup()
|
setup()
|
||||||
{
|
{
|
||||||
const ui = reactive({
|
const ui: UI = reactive({
|
||||||
showUI: true,
|
showUI: true,
|
||||||
showUploadDialog: false,
|
showUploadDialog: false,
|
||||||
tableCurrentPageIndex: 1,
|
tableCurrentPageIndex: 1,
|
||||||
tablePageSize: 10,
|
tablePageSize: 10,
|
||||||
|
BITelsalerAttachingRateData: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const showUploadFileDialog = (): void =>
|
const showUploadFileDialog = (): void =>
|
||||||
@ -110,6 +155,8 @@ export default {
|
|||||||
const onCurrentPageIndexChange = ( index: number ): void =>
|
const onCurrentPageIndexChange = ( index: number ): void =>
|
||||||
{
|
{
|
||||||
ui.tableCurrentPageIndex = index;
|
ui.tableCurrentPageIndex = index;
|
||||||
|
|
||||||
|
console.log( "表格数据", tableData );
|
||||||
};
|
};
|
||||||
|
|
||||||
const onTablePageSizeChange = ( pageSize: number ): void =>
|
const onTablePageSizeChange = ( pageSize: number ): void =>
|
||||||
@ -117,11 +164,71 @@ export default {
|
|||||||
ui.tablePageSize = pageSize;
|
ui.tablePageSize = pageSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** 请求处理handler ********/
|
||||||
|
const queryBITelsalerAttachingRateDataHandler: QueryBITelsalerAttachingRateDataHandler = ( response: QueryBITelsalerAttachingRateReportResponse, error: any ): void =>
|
||||||
|
{
|
||||||
|
// 判断调用成功标志位
|
||||||
|
if ( response.success )
|
||||||
|
{
|
||||||
|
ui.BITelsalerAttachingRateData = response.records;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 错误处理
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
response.message,
|
||||||
|
"请求BI坐席续保率数据错误",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
type: "warning",
|
||||||
|
center: true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((): void => {})
|
||||||
|
.catch((): void => {});
|
||||||
|
|
||||||
|
if ( error !== null )
|
||||||
|
{
|
||||||
|
console.log( error );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const tableCount = computed((): number =>
|
||||||
|
{
|
||||||
|
return ui.BITelsalerAttachingRateData.length;
|
||||||
|
});
|
||||||
|
|
||||||
|
const tableData = computed((): BITelsalerAttachingRateRecord[] =>
|
||||||
|
{
|
||||||
|
const tableCount = ui.BITelsalerAttachingRateData.length;
|
||||||
|
const startIndex = ui.tablePageSize * ( ui.tableCurrentPageIndex - 1 ) > tableCount ? tableCount - ui.tablePageSize : ui.tablePageSize * ( ui.tableCurrentPageIndex - 1 );
|
||||||
|
const endIndex = ui.tablePageSize * ui.tableCurrentPageIndex;
|
||||||
|
|
||||||
|
return ui.BITelsalerAttachingRateData.slice( startIndex, endIndex );
|
||||||
|
});
|
||||||
|
|
||||||
|
onBeforeMount((): void =>
|
||||||
|
{
|
||||||
|
queryBITelsalerAttachingRateData( queryBITelsalerAttachingRateDataHandler );
|
||||||
|
});
|
||||||
|
|
||||||
|
const refresh = (): void =>
|
||||||
|
{
|
||||||
|
queryBITelsalerAttachingRateData( queryBITelsalerAttachingRateDataHandler );
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
ui,
|
ui,
|
||||||
showUploadFileDialog,
|
showUploadFileDialog,
|
||||||
onCurrentPageIndexChange,
|
onCurrentPageIndexChange,
|
||||||
onTablePageSizeChange,
|
onTablePageSizeChange,
|
||||||
|
// 计算变量
|
||||||
|
tableData,
|
||||||
|
tableCount,
|
||||||
|
// 函数
|
||||||
|
queryBITelsalerAttachingRateDataHandler,
|
||||||
|
refresh,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
package com.cpic.xim.mybatis.mapper;
|
package com.cpic.xim.mybatis.mapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord;
|
||||||
import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord;
|
import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord;
|
||||||
import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord;
|
import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord;
|
||||||
|
|
||||||
@ -18,4 +20,8 @@ public interface QueryBIArchievementDataMapper
|
|||||||
public ArrayList<BITelsalerAttachingRateRecord> queryBITelsalerAttachingRate();
|
public ArrayList<BITelsalerAttachingRateRecord> queryBITelsalerAttachingRate();
|
||||||
|
|
||||||
public ArrayList<BITelsalerRenewalRateRecord> queryBITesalerRenewalRate();
|
public ArrayList<BITelsalerRenewalRateRecord> queryBITesalerRenewalRate();
|
||||||
|
|
||||||
|
public ArrayList<BIDepartmentAttachingRateRecord> queryBIDepartmentAttachingRate();
|
||||||
|
|
||||||
|
public ArrayList<BIDepartmentRenewalRateRecord> queryBIDepartmentRenewalRate();
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.cpic.xim.mybatis.pojo;
|
package com.cpic.xim.mybatis.pojo;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
public class BITelsalerAttachingRateRecord
|
public class BITelsalerAttachingRateRecord
|
||||||
@ -18,10 +17,6 @@ public class BITelsalerAttachingRateRecord
|
|||||||
@JsonProperty( "departmentName" )
|
@JsonProperty( "departmentName" )
|
||||||
private String departmentName;
|
private String departmentName;
|
||||||
|
|
||||||
// 统计日期
|
|
||||||
@JsonProperty( "summaryDate" )
|
|
||||||
private LocalDate summaryDate;
|
|
||||||
|
|
||||||
// 坐席名称
|
// 坐席名称
|
||||||
@JsonProperty( "telsalerName" )
|
@JsonProperty( "telsalerName" )
|
||||||
private String telsalerName;
|
private String telsalerName;
|
||||||
@ -62,14 +57,13 @@ public class BITelsalerAttachingRateRecord
|
|||||||
@JsonProperty( "noMotoPremiumPerCustomerChange" )
|
@JsonProperty( "noMotoPremiumPerCustomerChange" )
|
||||||
private double noMotoPremiumPerCustomerChange;
|
private double noMotoPremiumPerCustomerChange;
|
||||||
|
|
||||||
public BITelsalerAttachingRateRecord( String departmentName, LocalDate summaryDate,
|
public BITelsalerAttachingRateRecord( String departmentName,
|
||||||
String telsalerName, double motoPremium, double nomotoPremium,
|
String telsalerName, double motoPremium, double nomotoPremium,
|
||||||
double motoPremiumProportion, double attachingRate, double attachingRateChange,
|
double motoPremiumProportion, double attachingRate, double attachingRateChange,
|
||||||
double customerHandleRate, double customerHandleRateChange,
|
double customerHandleRate, double customerHandleRateChange,
|
||||||
double noMotoPremiumPerCustomer, double noMotoPremiumPerCustomerChange )
|
double noMotoPremiumPerCustomer, double noMotoPremiumPerCustomerChange )
|
||||||
{
|
{
|
||||||
this.departmentName = departmentName;
|
this.departmentName = departmentName;
|
||||||
this.summaryDate = summaryDate;
|
|
||||||
this.telsalerName = telsalerName;
|
this.telsalerName = telsalerName;
|
||||||
this.motoPremium = motoPremium;
|
this.motoPremium = motoPremium;
|
||||||
this.nomotoPremium = nomotoPremium;
|
this.nomotoPremium = nomotoPremium;
|
||||||
@ -129,7 +123,7 @@ public class BITelsalerAttachingRateRecord
|
|||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "BITelsalerAttachingRateRecord [departmentName=" + departmentName + ", summaryDate="
|
return "BITelsalerAttachingRateRecord [departmentName=" + departmentName + ", summaryDate="
|
||||||
+ summaryDate + ", telsalerName=" + telsalerName + ", motoPremium=" + motoPremium
|
+ ", telsalerName=" + telsalerName + ", motoPremium=" + motoPremium
|
||||||
+ ", nomotoPremium=" + nomotoPremium + ", motoPremiumProportion="
|
+ ", nomotoPremium=" + nomotoPremium + ", motoPremiumProportion="
|
||||||
+ motoPremiumProportion + ", attachingRate=" + attachingRate
|
+ motoPremiumProportion + ", attachingRate=" + attachingRate
|
||||||
+ ", attachingRateChange=" + attachingRateChange + ", customerHandleRate="
|
+ ", attachingRateChange=" + attachingRateChange + ", customerHandleRate="
|
||||||
@ -144,7 +138,6 @@ public class BITelsalerAttachingRateRecord
|
|||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = 1;
|
int result = 1;
|
||||||
result = prime * result + ((departmentName == null) ? 0 : departmentName.hashCode());
|
result = prime * result + ((departmentName == null) ? 0 : departmentName.hashCode());
|
||||||
result = prime * result + ((summaryDate == null) ? 0 : summaryDate.hashCode());
|
|
||||||
result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode());
|
result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode());
|
||||||
long temp;
|
long temp;
|
||||||
temp = Double.doubleToLongBits( motoPremium );
|
temp = Double.doubleToLongBits( motoPremium );
|
||||||
@ -185,13 +178,6 @@ public class BITelsalerAttachingRateRecord
|
|||||||
}
|
}
|
||||||
else if ( !departmentName.equals( other.departmentName ) )
|
else if ( !departmentName.equals( other.departmentName ) )
|
||||||
return false;
|
return false;
|
||||||
if ( summaryDate == null )
|
|
||||||
{
|
|
||||||
if ( other.summaryDate != null )
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if ( !summaryDate.equals( other.summaryDate ) )
|
|
||||||
return false;
|
|
||||||
if ( telsalerName == null )
|
if ( telsalerName == null )
|
||||||
{
|
{
|
||||||
if ( other.telsalerName != null )
|
if ( other.telsalerName != null )
|
||||||
@ -229,16 +215,6 @@ public class BITelsalerAttachingRateRecord
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDate getSummaryDate()
|
|
||||||
{
|
|
||||||
return summaryDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSummaryDate( LocalDate summaryDate )
|
|
||||||
{
|
|
||||||
this.summaryDate = summaryDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTelsalerName()
|
public String getTelsalerName()
|
||||||
{
|
{
|
||||||
return telsalerName;
|
return telsalerName;
|
||||||
|
@ -208,7 +208,7 @@ public final class ImportBIExcelData
|
|||||||
MyPOIUtils.getNumbericCellValue( row, 10 ) * 100;
|
MyPOIUtils.getNumbericCellValue( row, 10 ) * 100;
|
||||||
|
|
||||||
BITelsalerAttachingRateRecord record = new BITelsalerAttachingRateRecord(
|
BITelsalerAttachingRateRecord record = new BITelsalerAttachingRateRecord(
|
||||||
departmentName, LocalDate.now(), name, motoPremium, nomotoPremium,
|
departmentName, name, motoPremium, nomotoPremium,
|
||||||
motoPremiumProPortion, attachingRate, attachingRateChange,
|
motoPremiumProPortion, attachingRate, attachingRateChange,
|
||||||
customerHandleRateCell, customerHandleRateChangeCell,
|
customerHandleRateCell, customerHandleRateChangeCell,
|
||||||
noMotoPremiumPerCustomerCell, noMotoPremiumPerCustomerChangeCell );
|
noMotoPremiumPerCustomerCell, noMotoPremiumPerCustomerChangeCell );
|
||||||
|
@ -22,7 +22,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import com.cpic.xim.mybatis.mapper.QueryBIArchievementDataMapper;
|
import com.cpic.xim.mybatis.mapper.QueryBIArchievementDataMapper;
|
||||||
import com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord;
|
import com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord;
|
||||||
import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord;
|
import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord;
|
||||||
import com.cpic.xim.mybatis.utils.MybatisUtils;
|
import com.cpic.xim.mybatis.utils.MybatisUtils;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@ -33,7 +35,7 @@ public class BIReportController
|
|||||||
|
|
||||||
@PostMapping( path = "/bi_telsaler_attachingrate.do" )
|
@PostMapping( path = "/bi_telsaler_attachingrate.do" )
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
QueryTelsalerAttachingRateReportResponse queryTelsalerAttachingRateRepor()
|
public QueryTelsalerAttachingRateReportResponse queryTelsalerAttachingRateRepor()
|
||||||
{
|
{
|
||||||
QueryTelsalerAttachingRateReportResponse response =
|
QueryTelsalerAttachingRateReportResponse response =
|
||||||
new QueryTelsalerAttachingRateReportResponse();
|
new QueryTelsalerAttachingRateReportResponse();
|
||||||
@ -71,4 +73,125 @@ public class BIReportController
|
|||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping( path="/bi_telsaler_renewalrate.do" )
|
||||||
|
@ResponseBody
|
||||||
|
public QueryTelsalerRenewalRateReportResponse queryTelsalerRenewalRateReport()
|
||||||
|
{
|
||||||
|
QueryTelsalerRenewalRateReportResponse response = new QueryTelsalerRenewalRateReportResponse();
|
||||||
|
SqlSession session = null;
|
||||||
|
QueryBIArchievementDataMapper mapper = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
session = MybatisUtils.getSqlSession();
|
||||||
|
mapper = session.getMapper(QueryBIArchievementDataMapper.class);
|
||||||
|
|
||||||
|
ArrayList<BITelsalerRenewalRateRecord> records = mapper.queryBITesalerRenewalRate();
|
||||||
|
|
||||||
|
response.setSuccess( true );
|
||||||
|
response.setMessage("查询成功");
|
||||||
|
response.setRecords(records);
|
||||||
|
}
|
||||||
|
catch ( IOException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI坐席续保率报表出现IOException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
catch ( PersistenceException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI坐席续保率报表出现PersistenceException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping( path = "/bi_department_attachingrate.do" )
|
||||||
|
@ResponseBody
|
||||||
|
public QueryDepartmentAttachingRateReportResponse queryDepartmentAttachingRateRepor()
|
||||||
|
{
|
||||||
|
QueryDepartmentAttachingRateReportResponse response =
|
||||||
|
new QueryDepartmentAttachingRateReportResponse();
|
||||||
|
SqlSession session = null;
|
||||||
|
QueryBIArchievementDataMapper mapper = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
session = MybatisUtils.getSqlSession();
|
||||||
|
mapper = session.getMapper( QueryBIArchievementDataMapper.class );
|
||||||
|
|
||||||
|
ArrayList<BIDepartmentAttachingRateRecord> records =
|
||||||
|
mapper.queryBIDepartmentAttachingRate();
|
||||||
|
|
||||||
|
response.setSuccess( true );
|
||||||
|
response.setMessage( "查询成功" );
|
||||||
|
response.setRecords( records );
|
||||||
|
}
|
||||||
|
catch ( IOException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI机构渗透率报表出现IOException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
catch ( PersistenceException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI机构渗透率报表出现PersistenceException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping( path = "/bi_department_renewalrate.do" )
|
||||||
|
@ResponseBody
|
||||||
|
public QueryDepartmentRenewalRateReportResponse queryDepartmentRenewalRateRepor()
|
||||||
|
{
|
||||||
|
QueryDepartmentRenewalRateReportResponse response =
|
||||||
|
new QueryDepartmentRenewalRateReportResponse();
|
||||||
|
SqlSession session = null;
|
||||||
|
QueryBIArchievementDataMapper mapper = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
session = MybatisUtils.getSqlSession();
|
||||||
|
mapper = session.getMapper( QueryBIArchievementDataMapper.class );
|
||||||
|
|
||||||
|
ArrayList<BIDepartmentRenewalRateRecord> records =
|
||||||
|
mapper.queryBIDepartmentRenewalRate();
|
||||||
|
|
||||||
|
response.setSuccess( true );
|
||||||
|
response.setMessage( "查询成功" );
|
||||||
|
response.setRecords( records );
|
||||||
|
}
|
||||||
|
catch ( IOException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI机构渗透率报表出现IOException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
catch ( PersistenceException error )
|
||||||
|
{
|
||||||
|
logger.error("查询BI机构渗透率报表出现PersistenceException异常,异常内容:", error);
|
||||||
|
|
||||||
|
response.setSuccess( false );
|
||||||
|
response.setMessage( "查询失败,原因" + error.getMessage() );
|
||||||
|
response.setRecords( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,91 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-02 11:21:03
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryDepartmentAttachingRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-01 16:51:53
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryTelsalerAttachingRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.web.controllers.archievement.bi;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import com.cpic.xim.mybatis.pojo.*;
|
||||||
|
import com.cpic.xim.web.controllers.QueryResponse;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class QueryDepartmentAttachingRateReportResponse extends QueryResponse
|
||||||
|
{
|
||||||
|
@JsonProperty("records")
|
||||||
|
ArrayList<BIDepartmentAttachingRateRecord> records;
|
||||||
|
|
||||||
|
public QueryDepartmentAttachingRateReportResponse( boolean success, String message,
|
||||||
|
ArrayList<BIDepartmentAttachingRateRecord> records )
|
||||||
|
{
|
||||||
|
super( success, message );
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QueryDepartmentAttachingRateReportResponse()
|
||||||
|
{
|
||||||
|
super( false, "" );
|
||||||
|
|
||||||
|
this.records = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<BIDepartmentAttachingRateRecord> getRecords()
|
||||||
|
{
|
||||||
|
return records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecords( ArrayList<BIDepartmentAttachingRateRecord> records )
|
||||||
|
{
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "QueryTelsalerAttachingRateReportResponse [records=" + records + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
final int prime = 31;
|
||||||
|
int result = super.hashCode();
|
||||||
|
result = prime * result + ((records == null) ? 0 : records.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
if ( this == obj )
|
||||||
|
return true;
|
||||||
|
if ( !super.equals( obj ) )
|
||||||
|
return false;
|
||||||
|
if ( getClass() != obj.getClass() )
|
||||||
|
return false;
|
||||||
|
QueryDepartmentAttachingRateReportResponse other =
|
||||||
|
(QueryDepartmentAttachingRateReportResponse) obj;
|
||||||
|
if ( records == null )
|
||||||
|
{
|
||||||
|
if ( other.records != null )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if ( !records.equals( other.records ) )
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-02 16:56:50
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryDepartmentRenewalRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-02 11:21:03
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryDepartmentAttachingRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-01 16:51:53
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryTelsalerAttachingRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.web.controllers.archievement.bi;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import com.cpic.xim.mybatis.pojo.*;
|
||||||
|
import com.cpic.xim.web.controllers.QueryResponse;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class QueryDepartmentRenewalRateReportResponse extends QueryResponse
|
||||||
|
{
|
||||||
|
@JsonProperty("records")
|
||||||
|
ArrayList<BIDepartmentRenewalRateRecord> records;
|
||||||
|
|
||||||
|
public QueryDepartmentRenewalRateReportResponse( boolean success, String message,
|
||||||
|
ArrayList<BIDepartmentRenewalRateRecord> records )
|
||||||
|
{
|
||||||
|
super( success, message );
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QueryDepartmentRenewalRateReportResponse()
|
||||||
|
{
|
||||||
|
super( false, "" );
|
||||||
|
|
||||||
|
this.records = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<BIDepartmentRenewalRateRecord> getRecords()
|
||||||
|
{
|
||||||
|
return records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecords( ArrayList<BIDepartmentRenewalRateRecord> records )
|
||||||
|
{
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "QueryTelsalerAttachingRateReportResponse [records=" + records + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
final int prime = 31;
|
||||||
|
int result = super.hashCode();
|
||||||
|
result = prime * result + ((records == null) ? 0 : records.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
if ( this == obj )
|
||||||
|
return true;
|
||||||
|
if ( !super.equals( obj ) )
|
||||||
|
return false;
|
||||||
|
if ( getClass() != obj.getClass() )
|
||||||
|
return false;
|
||||||
|
QueryDepartmentRenewalRateReportResponse other =
|
||||||
|
(QueryDepartmentRenewalRateReportResponse) obj;
|
||||||
|
if ( records == null )
|
||||||
|
{
|
||||||
|
if ( other.records != null )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if ( !records.equals( other.records ) )
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-02 16:54:42
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryTelsalerRenewalRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-11-01 16:51:53
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryTelsalerAttachingRateReportResponse.java
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2023} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package com.cpic.xim.web.controllers.archievement.bi;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord;
|
||||||
|
import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord;
|
||||||
|
import com.cpic.xim.web.controllers.QueryResponse;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class QueryTelsalerRenewalRateReportResponse extends QueryResponse
|
||||||
|
{
|
||||||
|
@JsonProperty("records")
|
||||||
|
ArrayList<BITelsalerRenewalRateRecord> records;
|
||||||
|
|
||||||
|
public QueryTelsalerRenewalRateReportResponse( boolean success, String message,
|
||||||
|
ArrayList<BITelsalerRenewalRateRecord> records )
|
||||||
|
{
|
||||||
|
super( success, message );
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QueryTelsalerRenewalRateReportResponse()
|
||||||
|
{
|
||||||
|
super( false, "" );
|
||||||
|
|
||||||
|
this.records = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<BITelsalerRenewalRateRecord> getRecords()
|
||||||
|
{
|
||||||
|
return records;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecords( ArrayList<BITelsalerRenewalRateRecord> records )
|
||||||
|
{
|
||||||
|
this.records = records;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "QueryTelsalerAttachingRateReportResponse [records=" + records + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
final int prime = 31;
|
||||||
|
int result = super.hashCode();
|
||||||
|
result = prime * result + ((records == null) ? 0 : records.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
if ( this == obj )
|
||||||
|
return true;
|
||||||
|
if ( !super.equals( obj ) )
|
||||||
|
return false;
|
||||||
|
if ( getClass() != obj.getClass() )
|
||||||
|
return false;
|
||||||
|
QueryTelsalerRenewalRateReportResponse other =
|
||||||
|
(QueryTelsalerRenewalRateReportResponse) obj;
|
||||||
|
if ( records == null )
|
||||||
|
{
|
||||||
|
if ( other.records != null )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if ( !records.equals( other.records ) )
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -33,6 +33,7 @@
|
|||||||
<result property="noMotoPremiumPerCustomerChange" column="客均保费环比上月" javaType="double" jdbcType="DOUBLE" />
|
<result property="noMotoPremiumPerCustomerChange" column="客均保费环比上月" javaType="double" jdbcType="DOUBLE" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 坐席续保率 -->
|
||||||
<select id="queryBITesalerRenewalRate" resultMap="BITelsalerRenewalRate">
|
<select id="queryBITesalerRenewalRate" resultMap="BITelsalerRenewalRate">
|
||||||
select t.责任部门,
|
select t.责任部门,
|
||||||
t.责任人,
|
t.责任人,
|
||||||
@ -60,4 +61,64 @@
|
|||||||
<result property="平均提前签单天数" column="平均提前签单天数" javaType="int" jdbcType="DOUBLE" />
|
<result property="平均提前签单天数" column="平均提前签单天数" javaType="int" jdbcType="DOUBLE" />
|
||||||
<result property="环比" column="环比" javaType="int" jdbcType="DOUBLE" />
|
<result property="环比" column="环比" javaType="int" jdbcType="DOUBLE" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 机构渗透率 -->
|
||||||
|
<select id="queryBIDepartmentAttachingRate" resultMap="BIDepartmentAttachingRate">
|
||||||
|
select t.部门,
|
||||||
|
t."目标值-机构" as 目标值机构,
|
||||||
|
t.目标差距,
|
||||||
|
t.车险保费,
|
||||||
|
t.车险保费占比,
|
||||||
|
t.非车保费,
|
||||||
|
t.当月保费渗透率,
|
||||||
|
t.保费渗透率环比上月,
|
||||||
|
t.当月客户渗透率,
|
||||||
|
t.客户渗透率环比上月,
|
||||||
|
t.当月车非客均保费,
|
||||||
|
t.客均保费环比上月,
|
||||||
|
t.车险客户数
|
||||||
|
from BI机构渗透率跟踪表 t
|
||||||
|
</select>
|
||||||
|
<resultMap id="BIDepartmentAttachingRate" type="com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord">
|
||||||
|
<result column="部门" property="departmentName" jdbcType="VARCHAR" javaType="String" />
|
||||||
|
<result column="目标值机构" property="departmentObject" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="目标差距" property="objectGap" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="车险保费" property="motoPremium" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="车险保费占比" property="motoPremiumProPortion" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="非车保费" property="nomotoPremium" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="当月保费渗透率" property="attachingRate" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="保费渗透率环比上月" property="attachingRateChange" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="当月客户渗透率" property="customerHandleRate" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="客户渗透率环比上月" property="customerHandleRateChange" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="当月车非客均保费" property="premiumPerCustomer" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="客均保费环比上月" property="premiumPerCustomerChange" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="车险客户数" property="motoInsuranceCustomerCount" jdbcType="INTEGER" javaType="int" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 机构续保率 -->
|
||||||
|
<select id="queryBIDepartmentRenewalRate" resultMap="BIDepartmentRenewalRate">
|
||||||
|
select t.责任部门,
|
||||||
|
t."机构目标值1(%)" as 机构目标值,
|
||||||
|
t."到期数-全月" as 到期数全月,
|
||||||
|
t."序时到期数占比(%)" as 序时到期数占比,
|
||||||
|
t."个车续保率(序时)(%)" as 个车续保率序时,
|
||||||
|
t."个车续保率(全月)(%)" as 个车续保率全月,
|
||||||
|
t."环比昨日(%)" as 环比昨日,
|
||||||
|
t."环比上月(%)" as 环比上月,
|
||||||
|
t.平均提前签单天数,
|
||||||
|
t.环比
|
||||||
|
from BI机构当月个车续保率跟踪表 t
|
||||||
|
</select>
|
||||||
|
<resultMap id="BIDepartmentRenewalRate" type="com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord">
|
||||||
|
<result column="责任部门" property="责任部门" jdbcType="VARCHAR" javaType="String" />
|
||||||
|
<result column="机构目标值" property="机构目标值" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="到期数全月" property="到期数全月" jdbcType="INTEGER" javaType="int" />
|
||||||
|
<result column="序时到期数占比" property="序时到期数占比" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="个车续保率序时" property="个车续保率序时" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="个车续保率全月" property="个车续保率全月" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="环比昨日" property="环比昨日" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="环比上月" property="环比上月" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
<result column="平均提前签单天数" property="平均提前签单天数" jdbcType="INTEGER" javaType="int" />
|
||||||
|
<result column="环比" property="环比" jdbcType="DOUBLE" javaType="double" />
|
||||||
|
</resultMap>
|
||||||
</mapper>
|
</mapper>
|
Loading…
x
Reference in New Issue
Block a user