|
@@ -4,6 +4,7 @@ import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
+ "github.com/shopspring/decimal"
|
|
|
"hongze/hz_crm_api/models/company"
|
|
|
statisticModels "hongze/hz_crm_api/models/statistic_report"
|
|
|
"hongze/hz_crm_api/models/system"
|
|
@@ -106,6 +107,12 @@ func CompanyList(sysUser *system.Admin, req statisticModels.IncrementalCompanyLi
|
|
|
} else {
|
|
|
sortStr = " ORDER BY sort_todo_end_time asc, b.view_total desc, a.created_time desc"
|
|
|
}
|
|
|
+ } else if sortParam == "sellerName" {
|
|
|
+ sortStr = " ORDER BY b.seller_name "
|
|
|
+ } else if sortParam == "shareSellerName" {
|
|
|
+ sortStr = " ORDER BY b.share_seller_name "
|
|
|
+ } else if sortParam == "status" {
|
|
|
+ sortStr = " ORDER BY b.status "
|
|
|
} else {
|
|
|
errMsg = "排序字段传入数据异常:" + sortParam
|
|
|
err = errors.New("获取失败")
|
|
@@ -500,6 +507,17 @@ func CompanyList(sysUser *system.Admin, req statisticModels.IncrementalCompanyLi
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 计算合同开始日期和结束日期之间的小时差
|
|
|
+ duration := time.Since(v.FirstDate).Hours()
|
|
|
+ hoursDiff := decimal.NewFromFloat(duration)
|
|
|
+
|
|
|
+ // 计算总小时数
|
|
|
+ const hoursPerYear = 24 * 365
|
|
|
+ totalHours := decimal.NewFromInt(hoursPerYear)
|
|
|
+
|
|
|
+ // 计算相差的年数,保留一位小数
|
|
|
+ numYearDecimal := hoursDiff.Div(totalHours).Round(1)
|
|
|
+
|
|
|
companyList := &CompanyListItem{
|
|
|
CompanyId: v.CompanyId,
|
|
|
CompanyName: v.CompanyName,
|
|
@@ -558,6 +576,7 @@ func CompanyList(sysUser *system.Admin, req statisticModels.IncrementalCompanyLi
|
|
|
ShareSellerId: v.ShareSellerId,
|
|
|
ShareSeller: v.ShareSeller,
|
|
|
LatestServiceRecord: v.LatestServiceRecord.Format(utils.FormatDate2),
|
|
|
+ ServiceYears: numYearDecimal.String(),
|
|
|
}
|
|
|
if strings.Contains(companyList.ApproveStatus, "已审批") {
|
|
|
companyList.ApproveStatus = ""
|