xiziwen 3 months ago
parent
commit
5e4b88ae5a
2 changed files with 42 additions and 26 deletions
  1. 19 11
      controller/census/income_list.go
  2. 23 15
      models/fms/invoice_payment_summary.go

+ 19 - 11
controller/census/income_list.go

@@ -14,7 +14,6 @@ import (
 	"hongze/fms_api/services/alarm_msg"
 	"hongze/fms_api/utils"
 	"net/http"
-	"sort"
 	"strconv"
 	"strings"
 	"time"
@@ -1095,10 +1094,10 @@ func (this *InvoicePaymentController) IncomeList(c *gin.Context) {
 		close(ch)
 	}
 	// 是否导出
-	//if req.IsExport == 1 {
-	//	ExportIncomeList(c, incomeList.DataList)
-	//	return
-	//}
+	if req.IsExport == 1 {
+		ExportIncomeList(c, incomeList.List)
+		return
+	}
 	resp.OkData("获取成功", incomeList, c)
 }
 
@@ -1198,6 +1197,11 @@ func getPaymentIncomeList(ch chan base.BaseData, req fms.IncomeListReq) (baseDat
 			page.SetPageSize(req.PageSize)
 			page.SetCurrent(req.Current)
 
+			if req.IsExport == 1 {
+				page.SetPageSize(10000)
+				page.SetCurrent(1)
+			}
+
 			if req.SortType == "asc" {
 				page.AddOrderItem(base.OrderItem{Column: "d.invoice_time", Asc: true})
 			} else {
@@ -1562,7 +1566,8 @@ func getPaymentIncomeList(ch chan base.BaseData, req fms.IncomeListReq) (baseDat
 //}
 
 // ExportIncomeList 导出业务收入统计列表
-func ExportIncomeList(c *gin.Context, list []*fms.IncomeSummaryItem) {
+func ExportIncomeList(c *gin.Context, results interface{}) {
+	list := results.([]*fms.IncomeSummaryRespItem)
 	// 生成Excel文件
 	xlsxFile := xlsx.NewFile()
 	style := xlsx.NewStyle()
@@ -1589,21 +1594,24 @@ func ExportIncomeList(c *gin.Context, list []*fms.IncomeSummaryItem) {
 		v.SetString(rowTitle[i])
 		v.SetStyle(style)
 	}
-	incomeSummaryItemList := make(fms.IncomeSummaryItemList, 0)
+	incomeSummaryItemList := make([]*fms.IncomeSummaryRespItem, 0)
 	incomeSummaryItemList = list
-	sort.Sort(incomeSummaryItemList)
+	//sort.Sort(incomeSummaryItemList)
 	// 填充数据
 	for _, v := range incomeSummaryItemList {
 		dataRow := sheet.AddRow()
-		dataRow.AddCell().SetString(v.InvoiceDate.Format(utils.FormatDate)) // 开票日期
+		dataRow.AddCell().SetString(v.CompanyName) // 客户名称
 		newCompany := 0
 		if v.ContractType == 1 {
 			newCompany = 1
 		}
 		dataRow.AddCell().SetString(strconv.Itoa(newCompany)) // 新客户
-		dataRow.AddCell().SetString(v.CompanyName)            // 客户名称
-		dataRow.AddCell().SetString(fmt.Sprint(v.Amount))     // 金额
+		dataRow.AddCell().SetString(v.InvoiceDate) // 开票到款日期
+		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.OriginAmount)) // 开票到款金额
+		dataRow.AddCell().SetString(v.UnitName) // 金额单位
+		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.Amount)) // 开票到款金额 换算后
 		dataRow.AddCell().SetString(v.SellerName)             // 销售员
+		dataRow.AddCell().SetString(v.ServicesName)           // 套餐名称
 	}
 
 	// 输出文件

+ 23 - 15
models/fms/invoice_payment_summary.go

@@ -294,19 +294,19 @@ type NotInvoicePaymentCensusResp struct {
 	NotPaymentCurrencyTotal []*InvoiceListCurrencyTotal `json:"not_payment_currency_total" description:"未开票-分币种总金额"`
 }
 
-type IncomeSummaryItemList []*IncomeSummaryItem
-
-func (c IncomeSummaryItemList) Len() int {
-	return len(c)
-}
-
-func (c IncomeSummaryItemList) Less(i, j int) bool {
-	return c[i].InvoiceDate.Before(c[j].InvoiceDate)
-}
-
-func (c IncomeSummaryItemList) Swap(i, j int) {
-	c[i], c[j] = c[j], c[i]
-}
+type IncomeSummaryItemList []*IncomeSummaryRespItem
+
+//func (c IncomeSummaryItemList) Len() int {
+//	return len(c)
+//}
+//
+//func (c IncomeSummaryItemList) Less(i, j int) bool {
+//	return c[i].InvoiceDate.Before(c[j].InvoiceDate)
+//}
+//
+//func (c IncomeSummaryItemList) Swap(i, j int) {
+//	c[i], c[j] = c[j], c[i]
+//}
 
 type NotInvoicePaymentSummaryItem struct {
 	SummaryId                    int       `json:"summary_id" description:"汇总ID"`
@@ -422,14 +422,22 @@ func GetContractSummaryPaymentIncomeAmountPage(condition string, pars []interfac
 	query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
 		Select("d.origin_amount, d.amount AS amount,d.currency_unit, d.invoice_time AS invoice_date,"+
 			" c.contract_type,c.company_name,d.seller_name,"+
-			" d.seller_id AS final_seller_id, GROUP_CONCAT(s.title) AS services_name ").
+			" d.seller_id AS final_seller_id").
 		Joins("LEFT JOIN contract_invoice AS d ON a.payment_id = d.contract_invoice_id AND d.is_deleted = 0").
 		Joins("JOIN contract_register AS c ON a.register_id = c.contract_register_id AND c.is_deleted = 0").
-		Joins("LEFT JOIN contract_service AS s ON s.contract_register_id = c.contract_register_id").
 		Where(condition, pars...).Group("id")
 	//nq := global.DEFAULT_MYSQL.Table("(?) AS e", query).
 	//	Select(" IFNULL( SUM( e.amount ), 0 ) ")
 	query.Count(&count)
+
+	query = global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
+		Select("d.origin_amount, d.amount AS amount,d.currency_unit, d.invoice_time AS invoice_date,"+
+			" c.contract_type,c.company_name,d.seller_name,"+
+			" d.seller_id AS final_seller_id, GROUP_CONCAT(s.title) AS services_name ").
+		Joins("LEFT JOIN contract_invoice AS d ON a.payment_id = d.contract_invoice_id AND d.is_deleted = 0").
+		Joins("JOIN contract_register AS c ON a.register_id = c.contract_register_id AND c.is_deleted = 0").
+		Joins("LEFT JOIN contract_service AS s ON s.contract_register_id = c.contract_register_id").
+		Where(condition, pars...).Group("id")
 	if len(page.GetOrderItemsString()) > 0 {
 		query = query.Order(page.GetOrderItemsString())
 	}