ziwen 1 年之前
父节点
当前提交
6974edfb06
共有 2 个文件被更改,包括 6 次插入7 次删除
  1. 3 3
      controller/census/invoice_payment.go
  2. 3 4
      models/fms/invoice_payment_summary.go

+ 3 - 3
controller/census/invoice_payment.go

@@ -1169,8 +1169,8 @@ func getCensusIncomeListV2(ch chan models.CensusIncomeChartResp, req fms.IncomeL
 					amountCond := `a.id IN ? AND (a.invoice_id <> 0 OR (a.payment_id <> 0 AND a.invoice_id =0))`
 					amountCond := `a.id IN ? AND (a.invoice_id <> 0 OR (a.payment_id <> 0 AND a.invoice_id =0))`
 					amountPars := make([]interface{}, 0)
 					amountPars := make([]interface{}, 0)
 					amountPars = append(amountPars, summaryIds)
 					amountPars = append(amountPars, summaryIds)
-					amountCond += ` AND (b.invoice_time BETWEEN ? AND ?)`
-					amountPars = append(amountPars, st, ed)
+					amountCond += ` AND (b.invoice_time BETWEEN ? AND ?) OR (d.invoice_time BETWEEN ? AND ?)`
+					amountPars = append(amountPars, st, ed, st, ed)
 					results, e := fms.GetContractSummaryIncomeAmount(amountCond, amountPars)
 					results, e := fms.GetContractSummaryIncomeAmount(amountCond, amountPars)
 					if e != nil {
 					if e != nil {
 						err = fmt.Errorf("获取汇总数据失败, Err: %s", e.Error())
 						err = fmt.Errorf("获取汇总数据失败, Err: %s", e.Error())
@@ -1260,7 +1260,7 @@ func getCensusIncomeListV2(ch chan models.CensusIncomeChartResp, req fms.IncomeL
 					amountCond := `a.id IN ? AND (a.invoice_id <> 0 OR (a.payment_id <> 0 AND a.invoice_id =0))`
 					amountCond := `a.id IN ? AND (a.invoice_id <> 0 OR (a.payment_id <> 0 AND a.invoice_id =0))`
 					amountPars := make([]interface{}, 0)
 					amountPars := make([]interface{}, 0)
 					amountPars = append(amountPars, prevSummaryIds)
 					amountPars = append(amountPars, prevSummaryIds)
-					amountCond += ` AND (b.invoice_time BETWEEN ? AND ?)`
+					amountCond += ` AND (b.invoice_time BETWEEN ? AND ?) OR (d.invoice_time BETWEEN ? AND ?)`
 					amountPars = append(amountPars, prevSt, prevEd)
 					amountPars = append(amountPars, prevSt, prevEd)
 					results, e := fms.GetContractSummaryIncomeAmount(amountCond, amountPars)
 					results, e := fms.GetContractSummaryIncomeAmount(amountCond, amountPars)
 					if e != nil {
 					if e != nil {

+ 3 - 4
models/fms/invoice_payment_summary.go

@@ -197,11 +197,10 @@ type IncomeSummaryItem struct {
 
 
 // GetContractSummaryIncomeAmount 获取汇总金额合计信息
 // GetContractSummaryIncomeAmount 获取汇总金额合计信息
 func GetContractSummaryIncomeAmount(condition string, pars []interface{}) (results []*IncomeSummaryItem, err error) {
 func GetContractSummaryIncomeAmount(condition string, pars []interface{}) (results []*IncomeSummaryItem, err error) {
-	joinCond := ` (a.invoice_id = b.contract_invoice_id OR a.payment_id = b.contract_invoice_id) `
-
 	query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
 	query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
-		Select("b.amount,b.invoice_time AS invoice_date , c.contract_type,c.company_name,b.seller_name").
-		Joins(fmt.Sprintf(" JOIN contract_invoice AS b ON %s AND b.is_deleted = 0 ", joinCond)).
+		Select("IF(a.invoice_id=0,d.amount, b.amount) AS amount,IF(a.invoice_id=0,d.invoice_time, b.invoice_time) AS invoice_date, c.contract_type,c.company_name,IF(a.invoice_id=0,d.seller_name, b.seller_name) AS seller_name").
+		Joins("LEFT JOIN contract_invoice AS b ON a.invoice_id = b.contract_invoice_id AND b.is_deleted = 0 ").
+		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("JOIN contract_register AS c ON a.register_id = c.contract_register_id AND c.is_deleted = 0").
 		Where(condition, pars...).Group("id").Order("invoice_date ")
 		Where(condition, pars...).Group("id").Order("invoice_date ")
 	//nq := global.DEFAULT_MYSQL.Table("(?) AS e", query).
 	//nq := global.DEFAULT_MYSQL.Table("(?) AS e", query).