Parcourir la source

开票登记,到款登记相关调整

xiexiaoyuan il y a 2 ans
Parent
commit
627b6e4c1a

+ 25 - 10
controller/contract/register.go

@@ -57,8 +57,8 @@ func (rg *RegisterController) List(c *gin.Context) {
 	// 合同编号/客户姓名/销售/实际使用方
 	if req.Keyword != "" {
 		kw := "%" + req.Keyword + "%"
-		cond += ` AND (company_name LIKE ? OR contract_code LIKE ? OR seller_name LIKE ? OR actual_company_name LIKE ?)`
-		pars = append(pars, kw, kw, kw, kw)
+		cond += ` AND (company_name LIKE ? OR contract_code LIKE ? OR seller_name LIKE ? OR rai_seller_name LIKE ? OR actual_company_name LIKE ?)`
+		pars = append(pars, kw, kw, kw, kw, kw)
 	}
 	if req.StartDate != "" && req.EndDate != "" {
 		st := fmt.Sprint(req.StartDate, " 00:00:00")
@@ -109,16 +109,12 @@ func (rg *RegisterController) List(c *gin.Context) {
 	invoiceMap := make(map[int][]*fms.ContractInvoiceItem, 0)
 	paymentMap := make(map[int][]*fms.ContractInvoiceItem, 0)
 	if len(registerIds) > 0 {
-		// 获取服务套餐
-		servicesNameList, e := fms.GetContractRegisterServicesNameByRegisterIds(registerIds)
+		// 获取所有的服务套餐
+		serviceMap, e = fmsService.GetContractServiceNameFormat(registerIds)
 		if e != nil {
-			resp.FailMsg("获取失败", "获取套餐拼接字符串失败, Err: "+e.Error(), c)
+			resp.FailMsg("获取失败", e.Error(), c)
 			return
 		}
-		for i := range servicesNameList {
-			serviceMap[servicesNameList[i].ContractRegisterId] = servicesNameList[i].ServicesName
-		}
-
 		// 获取开票/到款列表
 		invoiceCond := `contract_register_id IN ?`
 		invoicePars := make([]interface{}, 0)
@@ -621,6 +617,24 @@ func (rg *RegisterController) Detail(c *gin.Context) {
 	result.ContractRegisterItem = item
 
 	// 套餐信息
+	serviceAmountTempList, e := fms.GetContractServiceAmountByRegisterId(req.ContractRegisterId)
+	if e != nil {
+		resp.FailData("获取失败", "获取合同套餐信息失败, Err: "+e.Error(), c)
+		return
+	}
+	serviceAmountList := make([]*fms.ContractServiceAmountItem, 0)
+	for _, v := range serviceAmountTempList {
+		tmp := &fms.ContractServiceAmountItem{
+			ContractRegisterId: v.ContractRegisterId,
+			ProductId:          v.ProductId,
+			ServiceAmount:      v.ServiceAmount,
+			CurrencyUnit:       v.CurrencyUnit,
+		}
+		serviceAmountList = append(serviceAmountList, tmp)
+	}
+	result.ServiceAmountList = serviceAmountList
+
+	// 套餐金额信息
 	serviceList, e := fmsService.GetContractServiceAndDetail(req.ContractRegisterId)
 	if e != nil {
 		resp.FailData("获取失败", "获取合同套餐信息失败, Err: "+e.Error(), c)
@@ -815,6 +829,7 @@ func (rg *RegisterController) Invoice(c *gin.Context) {
 					OriginAmount:       req.AmountList[i].OriginAmount,
 					CurrencyUnit:       item.CurrencyUnit,
 					InvoiceType:        req.InvoiceType,
+					ServiceProductId:   req.AmountList[i].ServiceProductId,
 					InvoiceDate:        t,
 					AdminId:            int(adminInfo.AdminId),
 					AdminName:          adminInfo.RealName,
@@ -845,7 +860,7 @@ func (rg *RegisterController) Invoice(c *gin.Context) {
 	}
 
 	// 获取原有的登记信息
-	invoiceCond := `contract_register_id = ? AND invoice_type = ?`
+	invoiceCond := `contract_register_id = ? AND invoice_type = ? `
 	invoicePars := make([]interface{}, 0)
 	invoicePars = append(invoicePars, req.ContractRegisterId, req.InvoiceType)
 	originInvoiceList, e := fms.GetContractInvoiceItemList(invoiceCond, invoicePars)

+ 10 - 6
models/fms/contract_invoice.go

@@ -29,6 +29,7 @@ type ContractInvoice struct {
 	AdminName          string    `gorm:"column:admin_name" json:"admin_name" description:"操作人姓名"`
 	Remark             string    `gorm:"column:remark" json:"remark" description:"备注信息"`
 	IsDeleted          int       `gorm:"column:is_deleted" json:"is_deleted" description:"是否已删除: 0-正常; 1-已删除"`
+	ServiceProductId   int       `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
 	base.TimeBase
 }
 
@@ -51,6 +52,7 @@ type ContractInvoiceItem struct {
 	SellerName         string  `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
 	PayType            int     `gorm:"column:pay_type" json:"pay_type" description:"付款方式:0-无;1-年付;2-半年付;3-季付;4-次付;5-异常"`
 	Remark             string  `gorm:"column:remark" json:"remark" description:"备注信息"`
+	ServiceProductId   int     `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
 	CreateTime         string  `gorm:"column:create_time" json:"create_time" description:"创建时间"`
 }
 
@@ -150,12 +152,13 @@ type ContractInvoiceSaveReq struct {
 
 // ContractInvoiceSaveItem 合同开票数据
 type ContractInvoiceSaveItem struct {
-	InvoiceId    int     `json:"invoice_id" description:"开票ID"`
-	OriginAmount float64 `json:"origin_amount" description:"开票(到款)金额"`
-	Amount       float64 `json:"amount" description:"换算后的金额"`
-	InvoiceDate  string  `json:"invoice_date" description:"开票日期/到款月"`
-	Remark       string  `json:"remark" description:"备注"`
-	SellerId     int     `json:"seller_id" description:"销售ID"`
+	ServiceProductId int     `json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
+	InvoiceId        int     `json:"invoice_id" description:"开票ID"`
+	OriginAmount     float64 `json:"origin_amount" description:"开票(到款)金额"`
+	Amount           float64 `json:"amount" description:"换算后的金额"`
+	InvoiceDate      string  `json:"invoice_date" description:"开票日期/到款月"`
+	Remark           string  `json:"remark" description:"备注"`
+	SellerId         int     `json:"seller_id" description:"销售ID"`
 }
 
 // GetContractInvoiceItemList 获取开票到款列表
@@ -191,6 +194,7 @@ func formatContractInvoice2ItemList(list []*ContractInvoice) (itemList []*Contra
 			PayType:            list[i].PayType,
 			Remark:             list[i].Remark,
 			CreateTime:         utils.TimeTransferString(utils.FormatDateTime, list[i].CreateTime),
+			ServiceProductId:   list[i].ServiceProductId,
 		})
 	}
 	return

+ 17 - 10
models/fms/contract_register.go

@@ -19,8 +19,8 @@ type ContractRegister struct {
 	ProductIds         string    `gorm:"column:product_ids" json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
 	SellerId           int       `gorm:"column:seller_id" json:"seller_id" description:"CRM系统-销售ID"`
 	SellerName         string    `gorm:"column:seller_name" json:"seller_name" description:"CRM系统-销售名称"`
-	RaiSellerId        int       `gorm:"column:rai_seller_id" json:"rai_seller_id" binding:"required" description:"CRM系统-权益销售ID"`
-	RaiSellerName      string    `gorm:"column:rai_seller_name" json:"rai_seller_name" binding:"required" description:"CRM系统-权益销售名称"`
+	RaiSellerId        int       `gorm:"column:rai_seller_id" json:"rai_seller_id"  description:"CRM系统-权益销售ID"`
+	RaiSellerName      string    `gorm:"column:rai_seller_name" json:"rai_seller_name" description:"CRM系统-权益销售名称"`
 	ContractType       int       `gorm:"column:contract_type" json:"contract_type" description:"合同类型: 1-新签; 2-续约; 3-代付; 4-补充协议"`
 	ContractAmount     float64   `gorm:"column:contract_amount" json:"contract_amount" description:"合同金额"`
 	InvoicedAmount     float64   `gorm:"column:invoiced_amount" json:"invoiced_amount" description:"开票金额"`
@@ -115,8 +115,11 @@ type ContractRegisterItem struct {
 	ContractSource     int     `json:"contract_source" description:"合同来源: 0-非系统合同导入; 1-CRM合同导入"`
 	CompanyName        string  `json:"company_name" description:"客户名称"`
 	ActualCompanyName  string  `json:"actual_company_name" description:"实际使用方"`
+	ProductIds         string  `json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
 	SellerId           int     `json:"seller_id" description:"CRM系统-销售ID"`
 	SellerName         string  `json:"seller_name" description:"CRM系统-销售名称"`
+	RaiSellerId        int     `json:"rai_seller_id"  description:"CRM系统-权益销售ID"`
+	RaiSellerName      string  `json:"rai_seller_name" description:"CRM系统-权益销售名称"`
 	ContractType       int     `json:"contract_type" description:"合同类型: 1-新签; 2-续约"`
 	ContractAmount     float64 `json:"contract_amount" description:"合同金额"`
 	InvoicedAmount     float64 `json:"invoiced_amount" description:"开票金额"`
@@ -163,10 +166,10 @@ type ContractRegisterAddReq struct {
 	ContractSource     int                           `json:"contract_source" binding:"oneof=0 1" description:"合同来源: 0-非系统合同导入; 1-CRM合同导入"`
 	CompanyName        string                        `json:"company_name" binding:"required" description:"客户名称"`
 	ActualCompanyName  string                        `json:"actual_company_name" description:"实际使用方"`
-	SellerId           int                           `json:"seller_id" binding:"required" description:"CRM系统-销售ID"`
-	SellerName         string                        `json:"seller_name" binding:"required" description:"CRM系统-销售名称"`
-	RaiSellerId        int                           `json:"rai_seller_id" binding:"required" description:"CRM系统-权益销售ID"`
-	RaiSellerName      string                        `json:"rai_seller_name" binding:"required" description:"CRM系统-权益销售名称"`
+	SellerId           int                           `json:"seller_id" description:"CRM系统-销售ID"`
+	SellerName         string                        `json:"seller_name" description:"CRM系统-销售名称"`
+	RaiSellerId        int                           `json:"rai_seller_id" description:"CRM系统-权益销售ID"`
+	RaiSellerName      string                        `json:"rai_seller_name" description:"CRM系统-权益销售名称"`
 	ContractType       int                           `json:"contract_type" binding:"oneof=1 2 3 4" description:"合同类型: 1-新签; 2-续约; 3-代付; 4-补充协议"`
 	ContractAmount     float64                       `json:"contract_amount" binding:"required" description:"合同金额"`
 	CurrencyUnit       string                        `json:"currency_unit" binding:"required" description:"货币单位"`
@@ -346,10 +349,11 @@ type ContractRegisterDetailReq struct {
 // ContractRegisterDetail-合同登记详情
 type ContractRegisterDetail struct {
 	*ContractRegisterItem
-	ServiceList []*ContractServiceAndDetail `json:"service_list" description:"合同服务及详情"`
-	InvoiceList []*ContractInvoiceItem      `json:"invoice_list" description:"开票信息"`
-	PaymentList []*ContractInvoiceItem      `json:"payment_list" description:"到款信息"`
-	Logs        []*ContractRegisterLogItem  `json:"logs" description:"登记日志"`
+	ServiceList       []*ContractServiceAndDetail `json:"service_list" description:"合同服务及详情"`
+	InvoiceList       []*ContractInvoiceItem      `json:"invoice_list" description:"开票信息"`
+	PaymentList       []*ContractInvoiceItem      `json:"payment_list" description:"到款信息"`
+	Logs              []*ContractRegisterLogItem  `json:"logs" description:"登记日志"`
+	ServiceAmountList []*ContractServiceAmountItem    `json:"service_amount_list" description:"合同套餐金额"`
 }
 
 // GetContractRegisterItemById 获取合同登记信息
@@ -395,8 +399,11 @@ func formatContractRegister2Item(item *ContractRegister) (formatItem *ContractRe
 	formatItem.ContractSource = item.ContractSource
 	formatItem.CompanyName = item.CompanyName
 	formatItem.ActualCompanyName = item.ActualCompanyName
+	formatItem.ProductIds = item.ProductIds
 	formatItem.SellerId = item.SellerId
 	formatItem.SellerName = item.SellerName
+	formatItem.RaiSellerId = item.RaiSellerId
+	formatItem.RaiSellerName = item.RaiSellerName
 	formatItem.ContractType = item.ContractType
 	formatItem.ContractAmount = item.ContractAmount
 	formatItem.InvoicedAmount = item.InvoicedAmount

+ 10 - 1
models/fms/contract_service.go

@@ -126,8 +126,17 @@ func GetContractRegisterServicesNameByRegisterIds(registerIds []int) (list []*Co
 	list = make([]*ContractRegisterServicesName, 0)
 	err = global.DEFAULT_MYSQL.Model(ContractService{}).
 		Select("contract_register_id, GROUP_CONCAT(title) AS services_name").
-		Where("contract_register_id IN ?", registerIds).
+		Where("contract_register_id IN ? ", registerIds).
 		Group("contract_register_id").
 		Find(&list).Error
 	return
 }
+
+// GetContractRegisterServicesByRegisterIds 合同登记IDs获取套餐拼接字符串
+func GetContractRegisterServicesByRegisterIds(registerIds []int) (list []*ContractService, err error) {
+	err = global.DEFAULT_MYSQL.Model(ContractService{}).
+		Select("*").
+		Where("contract_register_id IN ?", registerIds).
+		Find(&list).Error
+	return
+}

+ 14 - 0
models/fms/contract_service_amount.go

@@ -35,6 +35,12 @@ func (c *ContractServiceAmount) AddInBatches(list []*ContractServiceAmount) (err
 	return
 }
 
+type ContractServiceAmountItem struct {
+	ContractRegisterId int     `gorm:"column:contract_register_id" json:"contract_register_id"` //登记ID
+	ProductId          int     `gorm:"column:product_id" json:"product_id"`                     //产品ID
+	ServiceAmount      float64 `gorm:"column:service_amount" json:"service_amount"`             //套餐总金额
+	CurrencyUnit       string  `gorm:"column:currency_unit" json:"currency_unit"`               //货币国际代码
+}
 // GetContractServiceAmountByContractRegisterIds 根据登记id获取套餐金额列表数据
 func GetContractServiceAmountByContractRegisterIds(contractRegisterIds []int) (list []*ContractServiceAmount, err error) {
 	err = global.DEFAULT_MYSQL.Model(ContractServiceAmount{}).
@@ -44,3 +50,11 @@ func GetContractServiceAmountByContractRegisterIds(contractRegisterIds []int) (l
 }
 
 
+// GetContractServiceAmountByRegisterId 根据id获取合同套餐金额数据
+func GetContractServiceAmountByRegisterId(contractRegisterId int) (list []*ContractServiceAmount, err error) {
+	err = global.DEFAULT_MYSQL.Model(ContractServiceAmount{}).
+		Where("contract_register_id = ?", contractRegisterId).
+		Find(&list).Error
+	return
+}
+

+ 15 - 0
models/fms/contract_service_template.go

@@ -108,3 +108,18 @@ func GetContractServiceTemplateSecond() (items []*ContractServiceTemplateItem, e
 		Find(&items).Error
 	return
 }
+
+type ContractServiceTemplateFullName struct {
+	ContractServiceTemplateItem
+	ParentTitle string
+}
+
+func GetContractServiceTemplateFullName() (items []*ContractServiceTemplateFullName, err error) {
+	err = global.DEFAULT_MYSQL.Table("contract_service_template as t1").
+		Select("t1.*, t2.title as parent_title").
+		Joins(" left join contract_service_template as t2 on t1.pid = t2.service_template_id").
+		Where("t1.is_delete = 0").
+		Order("t1.service_template_id ASC").
+		Find(&items).Error
+	return
+}

+ 5 - 4
models/fms/invoice_payment_summary.go

@@ -10,10 +10,11 @@ import (
 
 // InvoicePaymentSummary 开票到款汇总表
 type InvoicePaymentSummary struct {
-	Id         int `gorm:"primaryKey;column:id" json:"id" description:"汇总ID"`
-	RegisterId int `gorm:"column:register_id" json:"register_id" description:"登记ID"`
-	InvoiceId  int `gorm:"column:invoice_id" json:"invoice_id" description:"开票ID"`
-	PaymentId  int `gorm:"column:payment_id" json:"payment_id" description:"到款ID"`
+	Id               int `gorm:"primaryKey;column:id" json:"id" description:"汇总ID"`
+	RegisterId       int `gorm:"column:register_id" json:"register_id" description:"登记ID"`
+	InvoiceId        int `gorm:"column:invoice_id" json:"invoice_id" description:"开票ID"`
+	PaymentId        int `gorm:"column:payment_id" json:"payment_id" description:"到款ID"`
+	ServiceProductId int `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
 	base.TimeBase
 }
 

+ 67 - 0
services/fms/contract_register.go

@@ -302,3 +302,70 @@ func FixContractSummaryData() {
 	fmt.Println("end 修复")
 	return
 }
+
+func GetContractServiceNameFormat(registerIds []int) (serviceNameMap map[int]string, err error) {
+	serviceNameMap = make(map[int]string)
+	serviceMap := make(map[int][]string, 0)
+	serviceIndustryStr := "医药,消费,科技,智造"
+	serviceIdMap := make(map[int]*fms.ContractServiceTemplateFullName, 0)
+	serviceIndustryMap := make(map[int]map[string][]string, 0)
+	allServiceList, e := fms.GetContractServiceTemplateFullName()
+	if e != nil {
+		err = fmt.Errorf("获取所有套餐失败, Err: "+e.Error())
+		return
+	}
+	for _, v := range allServiceList {
+		serviceIdMap[v.ServiceTemplateId] = v
+	}
+	// 获取服务套餐
+	servicesList, e := fms.GetContractRegisterServicesByRegisterIds(registerIds)
+	if e != nil {
+		err = fmt.Errorf("获取套餐字符串失败, Err: "+e.Error())
+		return
+	}
+	for i := range servicesList {
+		item := servicesList[i]
+		if item.Title == "行业套餐" || item.Title == "权益大套餐" {
+			continue
+		}
+		if fullItem, ok := serviceIdMap[item.ServiceTemplateId]; ok {
+			if fullItem.ParentTitle == "行业套餐" {
+				continue
+			}
+			if fullItem.ParentTitle != "" {
+				if strings.Contains(serviceIndustryStr, fullItem.ParentTitle) {
+					if _, ok1 := serviceIndustryMap[item.ContractRegisterId]; !ok1 {
+						serviceIndustryMap[item.ContractRegisterId] = make(map[string][]string)
+					}
+					serviceIndustryMap[item.ContractRegisterId][fullItem.ParentTitle] = append(serviceIndustryMap[item.ContractRegisterId][fullItem.ParentTitle], item.Title)
+				} else {
+					if fullItem.ParentTitle == "策略" {
+						serviceMap[item.ContractRegisterId] = append(serviceMap[item.ContractRegisterId], fullItem.Title)
+					}else{
+						serviceMap[item.ContractRegisterId] = append(serviceMap[item.ContractRegisterId], fullItem.ParentTitle+"("+fullItem.Title+")")
+					}
+
+				}
+			}else{
+				serviceMap[item.ContractRegisterId] = append(serviceMap[item.ContractRegisterId], fullItem.Title)
+			}
+		}
+	}
+	for k, v := range serviceIndustryMap {
+		for sk, sv := range v {
+			if len(sv) >= 2 {
+				serviceMap[k] = append(serviceMap[k], sk)
+			}else{
+				serviceMap[k] = append(serviceMap[k], sk+"("+sv[0]+")")
+			}
+		}
+	}
+
+	for k, v := range serviceMap {
+		for _, sv := range v {
+			serviceNameMap[k] += sv+","
+		}
+		serviceNameMap[k] = strings.Trim(serviceNameMap[k], ",")
+	}
+	return
+}

+ 65 - 16
services/fms/invoice_payment.go

@@ -3,6 +3,7 @@ package fms
 import (
 	"fmt"
 	"github.com/shopspring/decimal"
+	"hongze/fms_api/models/crm"
 	"hongze/fms_api/models/fms"
 	"hongze/fms_api/services/alarm_msg"
 	"hongze/fms_api/utils"
@@ -176,51 +177,99 @@ func SummaryInvoicePaymentByContractRegisterId(registerId int) {
 		err = fmt.Errorf("获取开票到款列表失败, Err: %s", e.Error())
 		return
 	}
-	invoiceIds := make([]int, 0)
-	paymentIds := make([]int, 0)
+	ficcInvoiceIds := make([]int, 0)
+	ficcPaymentIds := make([]int, 0)
+	raiInvoiceIds := make([]int, 0)
+	raiPaymentIds := make([]int, 0)
 	for i := range list {
 		if list[i].InvoiceType == fms.ContractInvoiceTypeMake {
-			invoiceIds = append(invoiceIds, list[i].ContractInvoiceId)
+			if list[i].ServiceProductId == crm.CompanyProductFicc {
+				ficcInvoiceIds = append(ficcInvoiceIds, list[i].ContractInvoiceId)
+			}else if list[i].ServiceProductId == crm.CompanyProductRai {
+				raiInvoiceIds = append(raiInvoiceIds, list[i].ContractInvoiceId)
+			}
 			continue
 		}
 		if list[i].InvoiceType == fms.ContractInvoiceTypePay {
-			paymentIds = append(paymentIds, list[i].ContractInvoiceId)
+			if list[i].ServiceProductId == crm.CompanyProductFicc {
+				ficcPaymentIds = append(ficcPaymentIds, list[i].ContractInvoiceId)
+			}else if list[i].ServiceProductId == crm.CompanyProductRai {
+				raiPaymentIds = append(raiPaymentIds, list[i].ContractInvoiceId)
+			}
 		}
 	}
-	invoiceLen := len(invoiceIds)
-	paymentLen := len(paymentIds)
+	ficcInvoiceLen := len(ficcInvoiceIds)
+	raiInvoiceLen := len(raiInvoiceIds)
+	ficcPaymentLen := len(ficcPaymentIds)
+	raiPaymentLen := len(raiPaymentIds)
 
 	// 汇总数据
 	nowTime := time.Now().Local()
 	summaryList := make([]*fms.InvoicePaymentSummary, 0)
-	if invoiceLen >= paymentLen {
-		for i := range invoiceIds {
+	// ficc
+	if ficcInvoiceLen >= ficcPaymentLen {
+		for i := range ficcInvoiceIds {
 			v := new(fms.InvoicePaymentSummary)
 			v.RegisterId = registerId
-			v.InvoiceId = invoiceIds[i]
+			v.InvoiceId = ficcInvoiceIds[i]
+			v.ServiceProductId = crm.CompanyProductFicc
 			v.CreateTime = nowTime
 			v.ModifyTime = nowTime
 			// 取对应key的到款ID
-			if i+1 <= paymentLen {
-				v.PaymentId = paymentIds[i]
+			if i+1 <= ficcPaymentLen {
+				v.PaymentId = ficcPaymentIds[i]
 			}
 			summaryList = append(summaryList, v)
 		}
 	}
-	if paymentLen > invoiceLen {
-		for i := range paymentIds {
+	if ficcPaymentLen > ficcInvoiceLen {
+		for i := range ficcPaymentIds {
 			v := new(fms.InvoicePaymentSummary)
 			v.RegisterId = registerId
-			v.PaymentId = paymentIds[i]
+			v.PaymentId = ficcPaymentIds[i]
+			v.ServiceProductId = crm.CompanyProductFicc
 			v.CreateTime = nowTime
 			v.ModifyTime = nowTime
 			// 取对应key的开票ID
-			if i+1 <= invoiceLen {
-				v.InvoiceId = invoiceIds[i]
+			if i+1 <= ficcInvoiceLen {
+				v.InvoiceId = ficcInvoiceIds[i]
+			}
+			summaryList = append(summaryList, v)
+		}
+	}
+
+	// rai
+	if raiInvoiceLen >= raiPaymentLen {
+		for i := range raiInvoiceIds {
+			v := new(fms.InvoicePaymentSummary)
+			v.RegisterId = registerId
+			v.InvoiceId = raiInvoiceIds[i]
+			v.ServiceProductId = crm.CompanyProductRai
+			v.CreateTime = nowTime
+			v.ModifyTime = nowTime
+			// 取对应key的到款ID
+			if i+1 <= raiPaymentLen {
+				v.PaymentId = raiPaymentIds[i]
 			}
 			summaryList = append(summaryList, v)
 		}
 	}
+	if raiPaymentLen > raiInvoiceLen {
+		for i := range raiPaymentIds {
+			v := new(fms.InvoicePaymentSummary)
+			v.RegisterId = registerId
+			v.PaymentId = raiPaymentIds[i]
+			v.ServiceProductId = crm.CompanyProductRai
+			v.CreateTime = nowTime
+			v.ModifyTime = nowTime
+			// 取对应key的开票ID
+			if i+1 <= raiInvoiceLen {
+				v.InvoiceId = raiInvoiceIds[i]
+			}
+			summaryList = append(summaryList, v)
+		}
+	}
+
 
 	// 删除并新增汇总数据
 	summaryOB := new(fms.InvoicePaymentSummary)