瀏覽代碼

Merge branch 'feature/crm14.9_contract_change' of hongze/hz_crm_api into master

xyxie 1 年之前
父節點
當前提交
9d95bed270

+ 16 - 1
controllers/statistic_report.go

@@ -5404,7 +5404,7 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
 	tmpAllExpireIdMap := make(map[int]string)
 	tmpAllRenewIdMap := make(map[int]string)
 	tmpAllUnusualRenewIdMap := make(map[int]string) // 续约异常客户id汇总
-
+	tmpAllUnusualRenewIdSlice := make(map[int][]string, 0)
 	for _, v := range group {
 		v.ResearcherList = groupMap[v.GroupId]
 		tmpGroupAdminRenewRecord := make([]statistic_report.AdminRenewRecord, 0)
@@ -5535,6 +5535,8 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
 				}
 				if tmpUnusualRenewId != "" {
 					tmpGroupUnusualRenewIdSliceMap[index] = append(tmpGroupUnusualRenewIdSliceMap[index], tmpUnusualRenewId)
+					tmpSlice := strings.Split(tmpUnusualRenewId, ",")
+					tmpAllUnusualRenewIdSlice[index] = append(tmpAllUnusualRenewIdSlice[index], tmpSlice...)
 				}
 
 				//总数据汇总
@@ -5598,8 +5600,21 @@ func (this *StatisticReportController) RenewCompanyStatistics() {
 		groupRenewRecordList = append(groupRenewRecordList, groupRenewRecord)
 	}
 
+	// 总体数据汇总,去掉重复销售的公司个数
+
 	//总体汇总数据
 	for i := 0; i < len(tmpAllRenewFollowNumMap); i++ {
+		// 未续约统计数据去重
+		unusualRenewIdsFinal := make([]string, 0)
+		unusualRenewIdsMap := make(map[string]struct{})
+		for _, id := range tmpAllUnusualRenewIdSlice[i] {
+			if _, ok := unusualRenewIdsMap[id]; !ok {
+				unusualRenewIdsFinal = append(unusualRenewIdsFinal, id)
+				unusualRenewIdsMap[id] = struct{}{}
+			}
+		}
+		tmpAllUnusualRenewNumMap[i] = len(unusualRenewIdsFinal)
+		tmpAllUnusualRenewIdMap[i] = strings.Join(unusualRenewIdsFinal, ",")
 		unusualRate := ``
 		if tmpAllUnusualRenewNumMap[i] > 0 && tmpAllFormalCompanyNumMap[i] > 0 {
 			unusualRate = decimal.NewFromInt(int64(tmpAllUnusualRenewNumMap[i])*100).Div(decimal.NewFromInt(int64(tmpAllFormalCompanyNumMap[i]))).Round(2).String() + "%"

+ 19 - 1
models/company/company_renewal_record.go

@@ -29,7 +29,25 @@ type UnusualRenewCompanyGroup struct {
 }
 
 // GetUnusualRenewCompanyList 获取销售未续约数据
-func GetUnusualRenewCompanyList(startDate, endDate time.Time, productId int) (list []*UnusualRenewCompanyGroup, err error) {
+func GetUnusualRenewCompanyList(startDate, endDate time.Time, productId int) (list []*CompanyRenewalRecord, err error) {
+	o := orm.NewOrm()
+	sql := `	SELECT
+	*
+	FROM
+	company_renewal_record 
+WHERE
+	modify_time BETWEEN ? 
+	AND ? 
+    AND source = 1 
+	AND product_id = ?;
+`
+	_, err = o.Raw(sql, startDate, endDate, productId).QueryRows(&list)
+
+	return
+}
+
+// GetUnusualRenewCompanyByShareSellerList 获取销售未续约数据
+func GetUnusualRenewCompanyByShareSellerList(startDate, endDate time.Time, productId int) (list []*UnusualRenewCompanyGroup, err error) {
 	o := orm.NewOrm()
 	sql := `	SELECT
 	a.seller_id,a.share_seller_id,

+ 16 - 16
services/statistic_report/renew_company.go

@@ -129,8 +129,8 @@ func getRenewSectionData(productId int, startDate, endDate time.Time, ch chan Co
 	renewFollowIdMap := make(map[int]string)
 	expireIdMap := make(map[int]string)
 	renewIdMap := make(map[int]string)
-	unusualRenewCompanyIdMap := make(map[int]string)     // 续约异常客户
-	var unusualRenewCompanyTotal, formalCompanyTotal int //续约异常客户总数  , 当前正式的客户数
+	unusualRenewCompanyIdMap := make(map[int]string) // 续约异常客户
+	var formalCompanyTotal int                       //续约异常客户总数  , 当前正式的客户数
 	formalCompanyTotal, err = contract.GetCountFormalCompany(endDate, productId)
 	if err != nil {
 		return
@@ -298,15 +298,15 @@ func getRenewSectionData(productId int, startDate, endDate time.Time, ch chan Co
 			if !ok {
 				tmpCompanyIdList = make([]string, 0)
 			}
-			unusualRenewCompanyIdListMap[v.SellerId] = append(tmpCompanyIdList, fmt.Sprint(v.CompanyIds))
+			unusualRenewCompanyIdListMap[v.SellerId] = append(tmpCompanyIdList, fmt.Sprint(v.CompanyId))
 
 			tmpCompanyIdList2, ok := unusualRenewCompanyIdListMap[v.ShareSellerId]
 			if !ok {
 				tmpCompanyIdList2 = make([]string, 0)
 			}
-			unusualRenewCompanyIdListMap[v.ShareSellerId] = append(tmpCompanyIdList2, fmt.Sprint(v.CompanyIds))
+			unusualRenewCompanyIdListMap[v.ShareSellerId] = append(tmpCompanyIdList2, fmt.Sprint(v.CompanyId))
 
-			unusualRenewCompanyTotal++
+			//unusualRenewCompanyTotal++
 		}
 
 		for sellerId, tmpCompanyIdList := range unusualRenewCompanyIdListMap {
@@ -315,17 +315,17 @@ func getRenewSectionData(productId int, startDate, endDate time.Time, ch chan Co
 	}
 
 	adminDataMap = CompanyRenewDataMap{
-		NotRenewMap:        notRenewMap,
-		NotRenewIdMap:      notRenewIdMap,
-		RenewFollowMap:     renewFollowMap,
-		RenewFollowIdMap:   renewFollowIdMap,
-		ExpireMap:          expireMap,
-		ExpireIdMap:        expireIdMap,
-		RenewMap:           renewMap,
-		RenewIdMap:         renewIdMap,
-		UnusualRenewMap:    unusualRenewMap,
-		UnusualRenewIdMap:  unusualRenewCompanyIdMap,
-		UnusualRenewTotal:  unusualRenewCompanyTotal,
+		NotRenewMap:       notRenewMap,
+		NotRenewIdMap:     notRenewIdMap,
+		RenewFollowMap:    renewFollowMap,
+		RenewFollowIdMap:  renewFollowIdMap,
+		ExpireMap:         expireMap,
+		ExpireIdMap:       expireIdMap,
+		RenewMap:          renewMap,
+		RenewIdMap:        renewIdMap,
+		UnusualRenewMap:   unusualRenewMap,
+		UnusualRenewIdMap: unusualRenewCompanyIdMap,
+		//UnusualRenewTotal:  unusualRenewCompanyTotal,
 		FormalCompanyTotal: formalCompanyTotal,
 		StartDate:          startDate.Format(utils.FormatDate),
 		EndDate:            endDate.Format(utils.FormatDate),

+ 1 - 1
services/statistic_report/unusual_renew_company.go

@@ -117,7 +117,7 @@ func getUnusualRenewSectionData(productId int, startDate, endDate time.Time, ch
 	// 续约异常
 	{
 
-		data, tmpErr := company.GetUnusualRenewCompanyList(startDate, endDate, productId)
+		data, tmpErr := company.GetUnusualRenewCompanyByShareSellerList(startDate, endDate, productId)
 
 		if tmpErr != nil {
 			err = tmpErr