|
@@ -5,6 +5,7 @@ import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
+ "github.com/shopspring/decimal"
|
|
|
"github.com/tealeg/xlsx"
|
|
|
"hongze/hz_crm_api/models"
|
|
|
"hongze/hz_crm_api/models/company"
|
|
@@ -5394,12 +5395,15 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
tmpAllRenewFollowNumMap := make(map[int]int)
|
|
|
tmpAllExpireNumMap := make(map[int]int)
|
|
|
tmpAllRenewNumMap := make(map[int]int)
|
|
|
+ tmpAllUnusualRenewNumMap := make(map[int]int) // 续约异常客户数量汇总
|
|
|
+ tmpAllFormalCompanyNumMap := make(map[int]int) // 当期正式客户数量汇总
|
|
|
|
|
|
//id集合汇总
|
|
|
tmpAllNotRenewIdMap := make(map[int]string)
|
|
|
tmpAllRenewFollowIdMap := make(map[int]string)
|
|
|
tmpAllExpireIdMap := make(map[int]string)
|
|
|
tmpAllRenewIdMap := make(map[int]string)
|
|
|
+ tmpAllUnusualRenewIdMap := make(map[int]string) // 续约异常客户id汇总
|
|
|
|
|
|
for _, v := range group {
|
|
|
v.ResearcherList = groupMap[v.GroupId]
|
|
@@ -5411,18 +5415,21 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
tmpGroupRenewFollowNumMap := make(map[int]int)
|
|
|
tmpGroupExpireNumMap := make(map[int]int)
|
|
|
tmpGroupRenewNumMap := make(map[int]int)
|
|
|
+ tmpGroupUnusualRenewNumMap := make(map[int]int) //组内续约异常客户数
|
|
|
|
|
|
//id集合
|
|
|
tmpGroupNotRenewIdSliceMap := make(map[int][]string)
|
|
|
tmpGroupRenewFollowIdSliceMap := make(map[int][]string)
|
|
|
tmpGroupExpireIdSliceMap := make(map[int][]string)
|
|
|
tmpGroupRenewIdSliceMap := make(map[int][]string)
|
|
|
+ tmpGroupUnusualRenewIdSliceMap := make(map[int][]string) // 组内续约异常客户id汇总
|
|
|
|
|
|
//id集合
|
|
|
tmpGroupNotRenewIdMap := make(map[int]string)
|
|
|
tmpGroupRenewFollowIdMap := make(map[int]string)
|
|
|
tmpGroupExpireIdMap := make(map[int]string)
|
|
|
tmpGroupRenewIdMap := make(map[int]string)
|
|
|
+ tmpGroupUnusualRenewIdMap := make(map[int]string) // 组内续约异常客户id汇总
|
|
|
|
|
|
for _, researcher := range groupMap[v.GroupId] {
|
|
|
//组内研究员数据
|
|
@@ -5433,10 +5440,10 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
startDateIndexList[index] = adminData.StartDate
|
|
|
endDateIndexList[index] = adminData.EndDate
|
|
|
|
|
|
- var tmpNotRenewNum, tmpRenewFollowNum, tmpExpireStatus, tmpRenewStatus int
|
|
|
+ var tmpNotRenewNum, tmpRenewFollowNum, tmpExpireStatus, tmpRenewStatus, tmpUnusualRenewStatus int
|
|
|
//var tmpNotRenewIds, tmpRenewFollowIds, tmpExpireIds string
|
|
|
- var tmpNotRenewIdSlice, tmpRenewFollowIdSlice, tmpExpireIdSlice, tmpRenewIdSlice []string
|
|
|
- var tmpNotRenewId, tmpRenewFollowId, tmpExpireId, tmpRenewId string
|
|
|
+ var tmpNotRenewIdSlice, tmpRenewFollowIdSlice, tmpExpireIdSlice, tmpRenewIdSlice, tmpUnusualRenewIdSlice []string
|
|
|
+ var tmpNotRenewId, tmpRenewFollowId, tmpExpireId, tmpRenewId, tmpUnusualRenewId string
|
|
|
|
|
|
if num, ok := adminData.NotRenewMap[researcher.AdminId]; ok {
|
|
|
tmpNotRenewNum = num
|
|
@@ -5458,18 +5465,26 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
tmpRenewIdSlice = append(tmpRenewIdSlice, adminData.RenewIdMap[researcher.AdminId])
|
|
|
tmpRenewId = strings.Join(tmpRenewIdSlice, ",")
|
|
|
}
|
|
|
+ // 续约异常客户
|
|
|
+ if num, ok := adminData.UnusualRenewMap[researcher.AdminId]; ok {
|
|
|
+ tmpUnusualRenewStatus = num
|
|
|
+ tmpUnusualRenewIdSlice = append(tmpUnusualRenewIdSlice, adminData.UnusualRenewIdMap[researcher.AdminId])
|
|
|
+ tmpUnusualRenewId = strings.Join(tmpUnusualRenewIdSlice, ",")
|
|
|
+ }
|
|
|
|
|
|
tmpAdminRsRenewRecordNum := statistic_report.CompanyRenewRecordNum{
|
|
|
- NotRenewNum: tmpNotRenewNum,
|
|
|
- NotRenewIds: tmpNotRenewId,
|
|
|
- RenewFollowNum: tmpRenewFollowNum,
|
|
|
- RenewFollowIds: tmpRenewFollowId,
|
|
|
- ExpireNum: tmpExpireStatus,
|
|
|
- ExpireIds: tmpExpireId,
|
|
|
- RenewNum: tmpRenewStatus,
|
|
|
- RenewIds: tmpRenewId,
|
|
|
- StartDate: adminData.StartDate,
|
|
|
- EndDate: adminData.EndDate,
|
|
|
+ NotRenewNum: tmpNotRenewNum,
|
|
|
+ NotRenewIds: tmpNotRenewId,
|
|
|
+ RenewFollowNum: tmpRenewFollowNum,
|
|
|
+ RenewFollowIds: tmpRenewFollowId,
|
|
|
+ ExpireNum: tmpExpireStatus,
|
|
|
+ ExpireIds: tmpExpireId,
|
|
|
+ RenewNum: tmpRenewStatus,
|
|
|
+ RenewIds: tmpRenewId,
|
|
|
+ UnusualRenewNum: tmpUnusualRenewStatus,
|
|
|
+ UnusualRenewIds: tmpUnusualRenewId,
|
|
|
+ StartDate: adminData.StartDate,
|
|
|
+ EndDate: adminData.EndDate,
|
|
|
}
|
|
|
tmpCompanyRenewRecordNumList = append(tmpCompanyRenewRecordNumList, tmpAdminRsRenewRecordNum)
|
|
|
|
|
@@ -5486,11 +5501,15 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
if _, ok := tmpGroupRenewNumMap[index]; !ok {
|
|
|
tmpGroupRenewNumMap[index] = 0
|
|
|
}
|
|
|
+ if _, ok := tmpGroupUnusualRenewNumMap[index]; !ok {
|
|
|
+ tmpGroupUnusualRenewNumMap[index] = 0
|
|
|
+ }
|
|
|
|
|
|
tmpGroupNotRenewNumMap[index] += tmpNotRenewNum
|
|
|
tmpGroupRenewFollowNumMap[index] += tmpRenewFollowNum
|
|
|
tmpGroupExpireNumMap[index] += tmpExpireStatus
|
|
|
tmpGroupRenewNumMap[index] += tmpRenewStatus
|
|
|
+ tmpGroupUnusualRenewNumMap[index] += tmpUnusualRenewStatus
|
|
|
|
|
|
//组内数据汇总
|
|
|
if _, ok := tmpGroupNotRenewIdMap[index]; !ok {
|
|
@@ -5514,6 +5533,9 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
if tmpRenewId != "" {
|
|
|
tmpGroupRenewIdSliceMap[index] = append(tmpGroupRenewIdSliceMap[index], tmpRenewId)
|
|
|
}
|
|
|
+ if tmpUnusualRenewId != "" {
|
|
|
+ tmpGroupUnusualRenewIdSliceMap[index] = append(tmpGroupUnusualRenewIdSliceMap[index], tmpUnusualRenewId)
|
|
|
+ }
|
|
|
|
|
|
//总数据汇总
|
|
|
if _, ok := tmpAllNotRenewNumMap[index]; !ok {
|
|
@@ -5533,20 +5555,8 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
tmpAllRenewFollowNumMap[index] += tmpRenewFollowNum
|
|
|
tmpAllExpireNumMap[index] += tmpExpireStatus
|
|
|
tmpAllRenewNumMap[index] += tmpRenewStatus
|
|
|
-
|
|
|
- ////总数据汇总
|
|
|
- //if _, ok := tmpAllNotRenewIdMap[index]; !ok {
|
|
|
- // tmpAllNotRenewIdMap[index] = ""
|
|
|
- //}
|
|
|
- //if _, ok := tmpAllRenewFollowIdMap[index]; !ok {
|
|
|
- // tmpAllRenewFollowIdMap[index] = ""
|
|
|
- //}
|
|
|
- //if _, ok := tmpAllExpireIdMap[index]; !ok {
|
|
|
- // tmpAllExpireIdMap[index] = ""
|
|
|
- //}
|
|
|
- //tmpAllNotRenewIdMap[index] += tmpNotRenewId
|
|
|
- //tmpAllRenewFollowIdMap[index] += tmpRenewFollowId
|
|
|
- //tmpAllExpireIdMap[index] += tmpExpireId
|
|
|
+ tmpAllUnusualRenewNumMap[index] = adminData.UnusualRenewTotal
|
|
|
+ tmpAllFormalCompanyNumMap[index] = adminData.FormalCompanyTotal
|
|
|
}
|
|
|
tmpAdminRenewRecord := statistic_report.AdminRenewRecord{
|
|
|
Name: researcher.RealName,
|
|
@@ -5561,18 +5571,21 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
tmpGroupRenewFollowIdMap[i] = strings.Join(tmpGroupRenewFollowIdSliceMap[i], ",")
|
|
|
tmpGroupExpireIdMap[i] = strings.Join(tmpGroupExpireIdSliceMap[i], ",")
|
|
|
tmpGroupRenewIdMap[i] = strings.Join(tmpGroupRenewIdSliceMap[i], ",")
|
|
|
+ tmpGroupUnusualRenewIdMap[i] = strings.Join(tmpGroupUnusualRenewIdSliceMap[i], ",")
|
|
|
|
|
|
tmpGroupCompanyRenewRecordNum := statistic_report.CompanyRenewRecordNum{
|
|
|
- NotRenewNum: tmpGroupNotRenewNumMap[i],
|
|
|
- NotRenewIds: tmpGroupNotRenewIdMap[i],
|
|
|
- RenewFollowNum: tmpGroupRenewFollowNumMap[i],
|
|
|
- RenewFollowIds: tmpGroupRenewFollowIdMap[i],
|
|
|
- ExpireNum: tmpGroupExpireNumMap[i],
|
|
|
- ExpireIds: tmpGroupExpireIdMap[i],
|
|
|
- RenewNum: tmpGroupRenewNumMap[i],
|
|
|
- RenewIds: tmpGroupRenewIdMap[i],
|
|
|
- StartDate: startDateIndexList[i],
|
|
|
- EndDate: endDateIndexList[i],
|
|
|
+ NotRenewNum: tmpGroupNotRenewNumMap[i],
|
|
|
+ NotRenewIds: tmpGroupNotRenewIdMap[i],
|
|
|
+ RenewFollowNum: tmpGroupRenewFollowNumMap[i],
|
|
|
+ RenewFollowIds: tmpGroupRenewFollowIdMap[i],
|
|
|
+ ExpireNum: tmpGroupExpireNumMap[i],
|
|
|
+ ExpireIds: tmpGroupExpireIdMap[i],
|
|
|
+ RenewNum: tmpGroupRenewNumMap[i],
|
|
|
+ RenewIds: tmpGroupRenewIdMap[i],
|
|
|
+ UnusualRenewNum: tmpGroupUnusualRenewNumMap[i],
|
|
|
+ UnusualRenewIds: tmpGroupUnusualRenewIdMap[i],
|
|
|
+ StartDate: startDateIndexList[i],
|
|
|
+ EndDate: endDateIndexList[i],
|
|
|
}
|
|
|
tmpGroupCompanyRenewRecordNumList = append(tmpGroupCompanyRenewRecordNumList, tmpGroupCompanyRenewRecordNum)
|
|
|
}
|
|
@@ -5587,17 +5600,24 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
|
|
|
|
|
|
//总体汇总数据
|
|
|
for i := 0; i < len(tmpAllRenewFollowNumMap); i++ {
|
|
|
+ unusualRate := ``
|
|
|
+ if tmpAllUnusualRenewNumMap[i] > 0 && tmpAllFormalCompanyNumMap[i] > 0 {
|
|
|
+ unusualRate = decimal.NewFromInt(int64(tmpAllUnusualRenewNumMap[i])).Div(decimal.NewFromInt(int64(tmpAllFormalCompanyNumMap[i]))).Round(2).String()
|
|
|
+ }
|
|
|
tmpGroupCompanyRenewRecordNum := statistic_report.CompanyRenewRecordNum{
|
|
|
- NotRenewNum: tmpAllNotRenewNumMap[i],
|
|
|
- NotRenewIds: tmpAllNotRenewIdMap[i],
|
|
|
- RenewFollowNum: tmpAllRenewFollowNumMap[i],
|
|
|
- RenewFollowIds: tmpAllRenewFollowIdMap[i],
|
|
|
- ExpireNum: tmpAllExpireNumMap[i],
|
|
|
- ExpireIds: tmpAllExpireIdMap[i],
|
|
|
- RenewNum: tmpAllRenewNumMap[i],
|
|
|
- RenewIds: tmpAllRenewIdMap[i],
|
|
|
- StartDate: startDateIndexList[i],
|
|
|
- EndDate: endDateIndexList[i],
|
|
|
+ NotRenewNum: tmpAllNotRenewNumMap[i],
|
|
|
+ NotRenewIds: tmpAllNotRenewIdMap[i],
|
|
|
+ RenewFollowNum: tmpAllRenewFollowNumMap[i],
|
|
|
+ RenewFollowIds: tmpAllRenewFollowIdMap[i],
|
|
|
+ ExpireNum: tmpAllExpireNumMap[i],
|
|
|
+ ExpireIds: tmpAllExpireIdMap[i],
|
|
|
+ RenewNum: tmpAllRenewNumMap[i],
|
|
|
+ RenewIds: tmpAllRenewIdMap[i],
|
|
|
+ UnusualRenewNum: tmpAllUnusualRenewNumMap[i],
|
|
|
+ UnusualRenewIds: tmpAllUnusualRenewIdMap[i],
|
|
|
+ UnusualRate: unusualRate, // 异常率
|
|
|
+ StartDate: startDateIndexList[i],
|
|
|
+ EndDate: endDateIndexList[i],
|
|
|
}
|
|
|
allCompanyRenewRecordNum = append(allCompanyRenewRecordNum, tmpGroupCompanyRenewRecordNum)
|
|
|
}
|