|
@@ -11,6 +11,9 @@ import (
|
|
|
cygxService "hongze/hz_crm_api/services/cygx"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
+
|
|
|
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
|
|
@@ -204,7 +207,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
|
|
|
pars1 := pars
|
|
|
condition1 += ` AND a.start_date >= ? AND a.start_date <= ? `
|
|
|
pars1 = append(pars1, startDate, endDate)
|
|
|
- condition1 += ` AND a.contract_type = ? `
|
|
|
+ condition1 += ` AND a.rai_contract_type = ? `
|
|
|
pars1 = append(pars1, "新签合同")
|
|
|
newCompanyTotal, err = company.GetIncrementalNewCompanyProductMergeCount(condition1, pars1)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -240,7 +243,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
|
|
|
pars1 := pars
|
|
|
condition1 += ` AND a.start_date >= ? AND a.start_date <= ? `
|
|
|
pars1 = append(pars1, startDate, endDate)
|
|
|
- condition1 += ` AND a.contract_type = ? `
|
|
|
+ condition1 += ` AND a.rai_contract_type = ? `
|
|
|
pars1 = append(pars1, "续约合同")
|
|
|
|
|
|
|
|
@@ -1195,3 +1198,339 @@ func PermissionCompanyListListExport(this *StatisticCompanyMergerController, dat
|
|
|
br.Success = true
|
|
|
br.Msg = "导出成功"
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *StatisticCompanyMergerController) CompanyContractPercentageList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ adminId := this.GetString("AdminId")
|
|
|
+ contractDataType := this.GetString("ContractDataType")
|
|
|
+ startDate := this.GetString("StartDate")
|
|
|
+ endDate := this.GetString("EndDate")
|
|
|
+ initendDate := this.GetString("EndDate")
|
|
|
+ if startDate == "" || endDate == "" {
|
|
|
+ br.Msg = "开始时间或结束时间不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ endDateTime, _ := time.Parse(utils.FormatDate, endDate)
|
|
|
+ if endDateTime.After(time.Now()) {
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+
|
|
|
+ if contractDataType == "" {
|
|
|
+ contractDataType = "续约合同"
|
|
|
+ }
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+
|
|
|
+ if adminId != "" {
|
|
|
+ condition += ` AND c.seller_id in (` + adminId + `) `
|
|
|
+ } else {
|
|
|
+
|
|
|
+ condition, pars = getQueryParams(condition, pars, sysUser, "c.")
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ condition += ` AND c.product_id = 2 AND a.status = 1 `
|
|
|
+
|
|
|
+ var list []*models.IncrementalList
|
|
|
+ var renewalRateMoney string
|
|
|
+ var renewalRateMoneyContent string
|
|
|
+ var renewalRateTotal string
|
|
|
+ var renewalRateTotalContent string
|
|
|
+ var renewalContractTotal int
|
|
|
+ var renewalContractMoney int
|
|
|
+ var expireRenewalContractTotal int
|
|
|
+ var expireRenewalContractMoney int
|
|
|
+ var dataTotal int
|
|
|
+
|
|
|
+ conditionRenewal := condition
|
|
|
+ parsRenewal := pars
|
|
|
+ conditionRenewal += ` AND a.start_date >= ? AND a.start_date <= ? `
|
|
|
+ parsRenewal = append(parsRenewal, startDate, endDate)
|
|
|
+ conditionRenewal += ` AND a.rai_contract_type = ? `
|
|
|
+ parsRenewal = append(parsRenewal, "续约合同")
|
|
|
+ totalRenewal, err := company.GetIncrementalRenewalCompanyProductMergeCount(conditionRenewal, parsRenewal)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalMoneyRenewal, err := company.GetIncrementalRenewalCompanyProductMergeSumMoney(conditionRenewal, parsRenewal)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ conditionRenewalEnd := condition
|
|
|
+ parsRenewalEnd := pars
|
|
|
+ conditionRenewalEnd += ` AND a.end_date >= ? AND a.end_date <= ? `
|
|
|
+ parsRenewalEnd = append(parsRenewalEnd, startDate, endDate)
|
|
|
+ conditionRenewalEnd += ` AND a.rai_contract_type = ? `
|
|
|
+ parsRenewalEnd = append(parsRenewalEnd, "续约合同")
|
|
|
+ totalRenewalEnd, err := company.GetIncrementalRenewalCompanyProductMergeCount(conditionRenewalEnd, parsRenewalEnd)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalMoneyRenewalEnd, err := company.GetIncrementalRenewalCompanyProductMergeSumMoney(conditionRenewalEnd, parsRenewalEnd)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ conditionNew := condition
|
|
|
+ parsNew := pars
|
|
|
+ conditionNew += ` AND a.end_date >= ? AND a.end_date <= ? `
|
|
|
+ parsNew = append(parsNew, startDate, endDate)
|
|
|
+ conditionNew += ` AND a.rai_contract_type = ? `
|
|
|
+ parsNew = append(parsNew, "新签合同")
|
|
|
+ totalNew, err := company.GetIncrementalRenewalCompanyProductMergeCount(conditionNew, parsNew)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalMoneyNew, err := company.GetIncrementalRenewalCompanyProductMergeSumMoney(conditionNew, parsNew)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if totalRenewal == 0 || totalNew+totalRenewalEnd == 0 {
|
|
|
+ renewalRateMoney = "0%"
|
|
|
+ renewalRateTotal = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateMoney = fmt.Sprint(utils.SubFloatToString(float64(totalMoneyRenewal)/float64(totalMoneyNew+totalMoneyRenewalEnd)*100, 2), "%")
|
|
|
+ renewalRateTotal = fmt.Sprint(utils.SubFloatToString(float64(totalRenewal)/float64(totalNew+totalRenewalEnd)*100, 2), "%")
|
|
|
+ }
|
|
|
+ renewalRateTotalContent = fmt.Sprint(int(totalMoneyRenewal), "/", int(totalMoneyNew+totalMoneyRenewalEnd))
|
|
|
+ renewalRateMoneyContent = fmt.Sprint(totalRenewal, "份/", totalNew+totalRenewalEnd, "份")
|
|
|
+
|
|
|
+ if contractDataType == "续约合同" {
|
|
|
+ condition1 := condition
|
|
|
+ pars1 := pars
|
|
|
+ condition1 += ` AND a.start_date >= ? AND a.start_date <= ? `
|
|
|
+ pars1 = append(pars1, startDate, endDate)
|
|
|
+ condition1 += ` AND a.rai_contract_type = ? `
|
|
|
+ pars1 = append(pars1, "续约合同")
|
|
|
+
|
|
|
+ total, err := company.GetIncrementalRenewalCompanyProductMergeCount(condition1, pars1)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalMoney, err := company.GetIncrementalRenewalCompanyProductMergeSumMoney(condition1, pars1)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ renewalContractTotal = total
|
|
|
+ renewalContractMoney = int(totalMoney)
|
|
|
+
|
|
|
+
|
|
|
+ tmpList, err := models.GetIncrementalCompanyMergeList(condition1, pars1, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list = tmpList
|
|
|
+ dataTotal = total
|
|
|
+ }
|
|
|
+
|
|
|
+ if contractDataType == "到期合同" {
|
|
|
+ condition1 := condition
|
|
|
+ pars1 := pars
|
|
|
+
|
|
|
+
|
|
|
+ endDateTime, _ := time.Parse(utils.FormatDate, initendDate)
|
|
|
+ if endDateTime.After(time.Now()) {
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ condition1 += ` AND a.end_date >= ? AND a.end_date < ? `
|
|
|
+ } else {
|
|
|
+ condition1 += ` AND a.end_date >= ? AND a.end_date <= ? `
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ pars1 = append(pars1, startDate, endDate)
|
|
|
+
|
|
|
+ total, err := company.GetIncrementalRenewalCompanyProductMergeCount(condition1, pars1)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ totalMoney, err := company.GetIncrementalRenewalCompanyProductMergeSumMoney(condition1, pars1)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ expireRenewalContractTotal = total
|
|
|
+ expireRenewalContractMoney = int(totalMoney)
|
|
|
+
|
|
|
+
|
|
|
+ tmpList, err := models.GetIncrementalCompanyMergeList(condition1, pars1, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list = tmpList
|
|
|
+ dataTotal = total
|
|
|
+ }
|
|
|
+
|
|
|
+ listLen := len(list)
|
|
|
+ if listLen == 0 {
|
|
|
+ list = make([]*models.IncrementalList, 0)
|
|
|
+ }
|
|
|
+ var companyContractIds []int
|
|
|
+ for i := 0; i < listLen; i++ {
|
|
|
+ item := list[i]
|
|
|
+ companyContractIds = append(companyContractIds, item.CompanyContractId)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(companyContractIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ v.PermissionName = mappermissionName[v.CompanyContractId]
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, dataTotal)
|
|
|
+ resp := response.IncrementalCompanyPercentageListResp{
|
|
|
+ Paging: page,
|
|
|
+ RenewalContractTotal: renewalContractTotal,
|
|
|
+ RenewalContractMoney: renewalContractMoney,
|
|
|
+ ExpireRenewalContractTotal: expireRenewalContractTotal,
|
|
|
+ ExpireRenewalContractMoney: expireRenewalContractMoney,
|
|
|
+ RenewalRateMoney: renewalRateMoney,
|
|
|
+ RenewalRateMoneyContent: renewalRateMoneyContent,
|
|
|
+ RenewalRateTotal: renewalRateTotal,
|
|
|
+ RenewalRateTotalContent: renewalRateTotalContent,
|
|
|
+ List: list,
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *StatisticCompanyMergerController) GetYearList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ thisYear := time.Now().Year()
|
|
|
+ startYear := 2022
|
|
|
+
|
|
|
+ resp := new(company.SearchYearListResp)
|
|
|
+ var yearList []int
|
|
|
+ for i := startYear; i <= thisYear; i++ {
|
|
|
+ yearList = append(yearList, i)
|
|
|
+ }
|
|
|
+ resp.List = yearList
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+func init213() {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition = " AND rai_contract_type = '续约合同' AND product_id = 2 "
|
|
|
+
|
|
|
+ var companyContractIds []string
|
|
|
+ companyContractList, e := company.GetCompanyContractList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ fmt.Println(e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range companyContractList {
|
|
|
+ fmt.Println(v.CompanyContractId)
|
|
|
+ startDateTime, _ := time.Parse(utils.FormatDate, v.StartDate)
|
|
|
+ startDateTime = startDateTime.AddDate(-1, 0, 0)
|
|
|
+ totalLastYear, err := company.GetCompanyContractCountRaiByLastYear(v.CompanyId, startDateTime.Format(utils.FormatDate))
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if totalLastYear > 0 {
|
|
|
+ companyContractIds = append(companyContractIds, strconv.Itoa(v.CompanyContractId))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fmt.Println("companyContractIds", len(companyContractIds))
|
|
|
+
|
|
|
+ fmt.Println(strings.Join(companyContractIds, ","))
|
|
|
+ err := company.UpdateCompanyContractRaiContractTypeInit(strings.Join(companyContractIds, ","))
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+}
|