|
@@ -6,6 +6,7 @@ import (
|
|
"hongze/hz_crm_api/controllers"
|
|
"hongze/hz_crm_api/controllers"
|
|
"hongze/hz_crm_api/models"
|
|
"hongze/hz_crm_api/models"
|
|
"hongze/hz_crm_api/models/company"
|
|
"hongze/hz_crm_api/models/company"
|
|
|
|
+ "hongze/hz_crm_api/models/cygx"
|
|
"hongze/hz_crm_api/models/fms"
|
|
"hongze/hz_crm_api/models/fms"
|
|
"hongze/hz_crm_api/models/statistic_report"
|
|
"hongze/hz_crm_api/models/statistic_report"
|
|
"hongze/hz_crm_api/models/system"
|
|
"hongze/hz_crm_api/models/system"
|
|
@@ -144,7 +145,6 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
if !developButton && serverButton && adminId == "" && serviceAdminId == "" { //服务组筛选条件
|
|
if !developButton && serverButton && adminId == "" && serviceAdminId == "" { //服务组筛选条件
|
|
condition += " AND real_name LIKE '%6%' "
|
|
condition += " AND real_name LIKE '%6%' "
|
|
}
|
|
}
|
|
-
|
|
|
|
sellerList, err := system.GetSysUserItemsOrderByCreated(condition, pars)
|
|
sellerList, err := system.GetSysUserItemsOrderByCreated(condition, pars)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "获取管理账号失败"
|
|
br.Msg = "获取管理账号失败"
|
|
@@ -269,6 +269,8 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
confirmedNoRenewalContractCompanyNumServer := make(map[string]int) // 确认不续约公司(数量)_服务组
|
|
confirmedNoRenewalContractCompanyNumServer := make(map[string]int) // 确认不续约公司(数量)_服务组
|
|
mapSignedClientNumServer := make(map[string]int) // 签约客户(数量)
|
|
mapSignedClientNumServer := make(map[string]int) // 签约客户(数量)
|
|
mapSignedClientMoneyServer := make(map[string]float64) // 签约客户(金额)
|
|
mapSignedClientMoneyServer := make(map[string]float64) // 签约客户(金额)
|
|
|
|
+ ShareTotalServeCountRed := make(map[string]float64) // 当时标红总数量
|
|
|
|
+ ShareTotalServeCount := make(map[string]float64) // 当时服务客户总数
|
|
|
|
|
|
var keyMap string
|
|
var keyMap string
|
|
var keyMapTtoal string
|
|
var keyMapTtoal string
|
|
@@ -671,14 +673,33 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
mapAddTrialNum[keyMapTtoal]++
|
|
mapAddTrialNum[keyMapTtoal]++
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ listCoverageRate, err := cygx.GetCygxRaiServeCompanyCoverageRateListByStartDate(startDate, endDate) // 覆盖率数据
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取失败"
|
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //服务组财务系统数据
|
|
|
|
+ for _, v := range listCoverageRate {
|
|
|
|
+ yearStr := getYearStar(utils.StrDateToDate(v.EndDate), dataType, isCustomizeDate)
|
|
|
|
+ keyMap = fmt.Sprint(yearStr, "_Server_", v.ShareSellerId)
|
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Server_")
|
|
|
|
+ ShareTotalServeCountRed[keyMap] = float64(v.ShareSellerServeCountRed)
|
|
|
|
+ ShareTotalServeCountRed[keyMapTtoal] = float64(v.ShareTotalServeCountRed)
|
|
|
|
+
|
|
|
|
+ ShareTotalServeCount[keyMap] = float64(v.ShareSellerServeCount)
|
|
|
|
+ ShareTotalServeCount[keyMapTtoal] = float64(v.ShareTotalServeCount)
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
resp := new(statistic_report.RaiDataSummaryListResp)
|
|
resp := new(statistic_report.RaiDataSummaryListResp)
|
|
var items []*statistic_report.RaiDataSummaryResp
|
|
var items []*statistic_report.RaiDataSummaryResp
|
|
|
|
|
|
mapSortDateService := make(map[int]float64)
|
|
mapSortDateService := make(map[int]float64)
|
|
mapSortDateDevelop := make(map[int]float64)
|
|
mapSortDateDevelop := make(map[int]float64)
|
|
|
|
|
|
- fmt.Println("mapExpiredContractMoneyServer2", mapExpiredContractMoneyServer2)
|
|
|
|
-
|
|
|
|
|
|
+ lastDayOfLastQuarter := utils.GetLastDayOfLastQuarter(time.Now()) //当前时间上一个季度的最后一天
|
|
for i := startYear; i <= endYear; i++ {
|
|
for i := startYear; i <= endYear; i++ {
|
|
for _, Dv := range dataTypeArr {
|
|
for _, Dv := range dataTypeArr {
|
|
item := new(statistic_report.RaiDataSummaryResp)
|
|
item := new(statistic_report.RaiDataSummaryResp)
|
|
@@ -687,6 +708,30 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
} else {
|
|
} else {
|
|
item.DataType = fmt.Sprint(i, Dv)
|
|
item.DataType = fmt.Sprint(i, Dv)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ var haveShowCoverageRate bool //当前时间上一个季度的最后一天 之后的不展示
|
|
|
|
+ if item.DataType != "" {
|
|
|
|
+ var dataEndDate string
|
|
|
|
+ dataEndDate = strconv.Itoa(i)
|
|
|
|
+ if strings.Contains(item.DataType, "Q1") {
|
|
|
|
+ dataEndDate += "-03-31"
|
|
|
|
+ } else if strings.Contains(item.DataType, "Q2") {
|
|
|
|
+ dataEndDate += "-06-30"
|
|
|
|
+ } else if strings.Contains(item.DataType, "Q3") {
|
|
|
|
+ dataEndDate += "-09-30"
|
|
|
|
+ } else if strings.Contains(item.DataType, "Q4") {
|
|
|
|
+ dataEndDate += "-12-31"
|
|
|
|
+ } else if strings.Contains(item.DataType, "H1") {
|
|
|
|
+ dataEndDate += "-06-30"
|
|
|
|
+ } else {
|
|
|
|
+ dataEndDate += "-12-31"
|
|
|
|
+ }
|
|
|
|
+ dataEndTime := utils.StrDateToDate(dataEndDate)
|
|
|
|
+ if dataEndTime.Before(lastDayOfLastQuarter) {
|
|
|
|
+ haveShowCoverageRate = true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
keyMapTtoal = fmt.Sprint(item.DataType, "_Develop")
|
|
keyMapTtoal = fmt.Sprint(item.DataType, "_Develop")
|
|
keyMapTtoalServer = fmt.Sprint(item.DataType, "_Server_")
|
|
keyMapTtoalServer = fmt.Sprint(item.DataType, "_Server_")
|
|
|
|
|
|
@@ -746,6 +791,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
}
|
|
}
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMap], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMap], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMap], 2) // "新客到款-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMap], 2) // "新客到款-(数据)"
|
|
|
|
+ sellerItem.CoverageRate = "--" //
|
|
if developButton || serverButton || adminId != "" {
|
|
if developButton || serverButton || adminId != "" {
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
dataListDevelop = append(dataListDevelop, sellerItem)
|
|
dataListDevelop = append(dataListDevelop, sellerItem)
|
|
@@ -856,6 +902,9 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
}
|
|
}
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMapTtoal], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMapTtoal], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMapTtoal], 2) // "新客到款-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMapTtoal], 2) // "新客到款-(数据)"
|
|
|
|
+
|
|
|
|
+ sellerItem.CoverageRate = "--" //
|
|
|
|
+ sellerItem.IsAmountTo = true // 是否属于合计
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -921,6 +970,16 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
dataListService = append(dataListService, sellerItem)
|
|
dataListService = append(dataListService, sellerItem)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if !haveShowCoverageRate {
|
|
|
|
+ sellerItem.CoverageRate = "--"
|
|
|
|
+ } else {
|
|
|
|
+ if ShareTotalServeCountRed[keyMap] == 0 || ShareTotalServeCount[keyMap] == 0 {
|
|
|
|
+ sellerItem.CoverageRate = "0%"
|
|
|
|
+ } else {
|
|
|
|
+ sellerItem.CoverageRate = utils.SubFloatToString((ShareTotalServeCountRed[keyMap])/ShareTotalServeCount[keyMap]*100, 2) + "%" //"覆盖率"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
//处理要排序的值
|
|
//处理要排序的值
|
|
switch sortParam {
|
|
switch sortParam {
|
|
case "AddTrialCount": //新增试用
|
|
case "AddTrialCount": //新增试用
|
|
@@ -1027,6 +1086,18 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
}
|
|
}
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMapTtoalServer], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerInvoicingCount = utils.FormatNumberWithCommas(mapNewCustomerInvoicingMoney[keyMapTtoalServer], 2) // "新客开票-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMapTtoalServer], 2) // "新客到款-(数据)"
|
|
sellerItem.NewCustomerPaymentsReceivedCount = utils.FormatNumberWithCommas(mapNewCustomerPaymentsReceivedMoney[keyMapTtoalServer], 2) // "新客到款-(数据)"
|
|
|
|
+
|
|
|
|
+ if !haveShowCoverageRate {
|
|
|
|
+ sellerItem.CoverageRate = "--"
|
|
|
|
+ } else {
|
|
|
|
+ if ShareTotalServeCountRed[keyMapTtoalServer] == 0 || ShareTotalServeCount[keyMapTtoalServer] == 0 {
|
|
|
|
+ sellerItem.CoverageRate = "0%"
|
|
|
|
+ } else {
|
|
|
|
+ sellerItem.CoverageRate = utils.SubFloatToString((ShareTotalServeCountRed[keyMapTtoalServer])/ShareTotalServeCount[keyMapTtoalServer]*100, 2) + "%" //"覆盖率"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ sellerItem.IsAmountTo = true // 是否属于合计
|
|
|
|
+
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
}
|
|
}
|
|
items = append(items, item)
|
|
items = append(items, item)
|
|
@@ -1109,6 +1180,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryDetail() {
|
|
sellerId := this.GetString("SellerId")
|
|
sellerId := this.GetString("SellerId")
|
|
popupType := this.GetString("PopupType")
|
|
popupType := this.GetString("PopupType")
|
|
isServerSeller, _ := this.GetBool("IsServerSeller")
|
|
isServerSeller, _ := this.GetBool("IsServerSeller")
|
|
|
|
+ isAmountTo, _ := this.GetBool("IsAmountTo")
|
|
startDate := this.GetString("StartDate")
|
|
startDate := this.GetString("StartDate")
|
|
endDate := this.GetString("EndDate")
|
|
endDate := this.GetString("EndDate")
|
|
|
|
|
|
@@ -1953,6 +2025,34 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryDetail() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ case "标红覆盖率":
|
|
|
|
+
|
|
|
|
+ if sellerId != "" && !isAmountTo {
|
|
|
|
+ condition += ` AND share_seller_id IN (` + sellerId + `) `
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ condition += ` AND end_date = ? `
|
|
|
|
+ pars = append(pars, endDate)
|
|
|
|
+
|
|
|
|
+ listCoverageRateData, err := cygx.GetCygxRaiServeCompanyCoverageRateLast(condition, pars, 0, 1)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取数据信息失败"
|
|
|
|
+ br.ErrMsg = "获取数据信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if len(listCoverageRateData) > 0 {
|
|
|
|
+ for _, v := range listCoverageRateData {
|
|
|
|
+ item := new(statistic_report.RaiDataSummaryDetailResp)
|
|
|
|
+ if isAmountTo {
|
|
|
|
+ item.SellerServeCountRed = v.ShareTotalServeCountRed
|
|
|
|
+ item.TotalServeCount = v.ShareTotalServeCount
|
|
|
|
+ } else {
|
|
|
|
+ item.SellerServeCountRed = v.ShareSellerServeCountRed
|
|
|
|
+ item.TotalServeCount = v.ShareSellerServeCount
|
|
|
|
+ }
|
|
|
|
+ listResp = append(listResp, item)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if len(listResp) == 0 {
|
|
if len(listResp) == 0 {
|