ziwen 2 سال پیش
والد
کامیت
e315c497de
4فایلهای تغییر یافته به همراه78 افزوده شده و 73 حذف شده
  1. 9 57
      controller/contract/pre_payment.go
  2. 1 1
      controller/statistic.go
  3. 67 14
      models/fms/contract_pre_payment.go
  4. 1 1
      routers/contract.go

+ 9 - 57
controller/contract/pre_payment.go

@@ -17,8 +17,8 @@ type PrePaymentController struct{}
 // @Title 到款预登记列表
 // @Description 到款预登记列表
 // @Param   Keyword			query	string	false	"关键词"
-// @Param   StartDate		query	string	false	"合同开始日期"
-// @Param   EndDate			query	string	false	"合同结束日期"
+// @Param   StartDate		query	string	false	"约定开始时间"
+// @Param   EndDate			query	string	false	"约定结束时间"
 // @Param   SortType   		query   string  true       "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`"
 // @Success 200 {object} fms.ContractRegisterItem
 // @router /contract/pre_pay/list [get]
@@ -39,8 +39,8 @@ func (rg *PrePaymentController) 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 seller_name LIKE ? )`
+		pars = append(pars, kw, kw)
 	}
 	if req.StartDate != "" && req.EndDate != "" {
 		st := fmt.Sprint(req.StartDate, " 00:00:00")
@@ -53,11 +53,12 @@ func (rg *PrePaymentController) List(c *gin.Context) {
 	page := new(base.Page)
 	page.SetPageSize(req.PageSize)
 	page.SetCurrent(req.Current)
-	page.AddOrderItem(base.OrderItem{Column: "create_time", Asc: false})
+	sortTypeMap := map[int]bool{0: false, 1: true, 2: false}
+	page.AddOrderItem(base.OrderItem{Column: "create_time", Asc: sortTypeMap[req.SortType]})
 
-	total, list, e := fms.GetContractRegisterItemPageList(page, cond, pars)
+	total, list, e := fms.GetPrePayItemPageList(page, cond, pars)
 	if e != nil {
-		resp.FailMsg("获取失败", "获取合同登记列表失败, Err: "+e.Error(), c)
+		resp.FailMsg("获取失败", "获取登记列表失败, Err: "+e.Error(), c)
 		return
 	}
 	registerIds := make([]int, 0)
@@ -65,58 +66,9 @@ func (rg *PrePaymentController) List(c *gin.Context) {
 		registerIds = append(registerIds, list[i].ContractRegisterId)
 	}
 
-	serviceMap := make(map[int]string, 0)
-	invoiceMap := make(map[int][]*fms.ContractInvoiceItem, 0)
-	paymentMap := make(map[int][]*fms.ContractInvoiceItem, 0)
-	if len(registerIds) > 0 {
-		// 获取服务套餐
-		servicesNameList, e := fms.GetContractRegisterServicesNameByRegisterIds(registerIds)
-		if e != nil {
-			resp.FailMsg("获取失败", "获取套餐拼接字符串失败, Err: "+e.Error(), c)
-			return
-		}
-		for i := range servicesNameList {
-			serviceMap[servicesNameList[i].ContractRegisterId] = servicesNameList[i].ServicesName
-		}
-
-		// 获取开票/到款列表
-		invoiceCond := `contract_register_id IN ?`
-		invoicePars := make([]interface{}, 0)
-		invoicePars = append(invoicePars, registerIds)
-		invoiceList, e := fms.GetContractInvoiceItemList(invoiceCond, invoicePars)
-		if e != nil {
-			resp.FailMsg("获取失败", "获取开票/到款列表失败, Err: "+e.Error(), c)
-			return
-		}
-		for i := range invoiceList {
-			if invoiceMap[invoiceList[i].ContractRegisterId] == nil {
-				invoiceMap[invoiceList[i].ContractRegisterId] = make([]*fms.ContractInvoiceItem, 0)
-			}
-			if paymentMap[invoiceList[i].ContractRegisterId] == nil {
-				paymentMap[invoiceList[i].ContractRegisterId] = make([]*fms.ContractInvoiceItem, 0)
-			}
-			if invoiceList[i].InvoiceType == fms.ContractInvoiceTypeMake {
-				invoiceMap[invoiceList[i].ContractRegisterId] = append(invoiceMap[invoiceList[i].ContractRegisterId], invoiceList[i])
-			}
-			if invoiceList[i].InvoiceType == fms.ContractInvoiceTypePay {
-				paymentMap[invoiceList[i].ContractRegisterId] = append(paymentMap[invoiceList[i].ContractRegisterId], invoiceList[i])
-			}
-		}
-	}
-
-	respList := make([]*fms.ContractRegisterList, 0)
-	for i := range list {
-		v := new(fms.ContractRegisterList)
-		v.ContractRegisterItem = list[i]
-		v.ServicesName = serviceMap[list[i].ContractRegisterId]
-		v.InvoiceList = invoiceMap[list[i].ContractRegisterId]
-		v.PaymentList = paymentMap[list[i].ContractRegisterId]
-		respList = append(respList, v)
-	}
-
 	page.SetTotal(total)
 	baseData := new(base.BaseData)
 	baseData.SetPage(page)
-	baseData.SetList(respList)
+	baseData.SetList(list)
 	resp.OkData("获取成功", baseData, c)
 }

+ 1 - 1
controller/statistic.go

@@ -99,7 +99,7 @@ func getIncomeList(ch chan models.IncomeChartResp) (incomeChart models.IncomeCha
 	} else {
 		err = json.Unmarshal([]byte(redisJsonData), &incomeChart)
 		if err != nil {
-			fmt.Println("近6个月的收入统计数据,json转换失败")
+			fmt.Println("近两年的收入统计数据,json转换失败")
 		}
 	}
 

+ 67 - 14
models/fms/contract_pre_payment.go

@@ -1,34 +1,48 @@
 package fms
 
 import (
+	"hongze/fms_api/global"
 	"hongze/fms_api/models/base"
+	"hongze/fms_api/utils"
 	"time"
 )
 
 // ContractInvoice 合同开票表
 type ContractPrePayment struct {
-	ContractInvoiceId  int       `gorm:"primaryKey;column:contract_invoice_id" json:"contract_invoice_id" description:"开票ID"`
+	PrePayId           int       `gorm:"primaryKey;column:pre_pay_id" json:"pre_pay_id" description:"预付款ID"`
 	ContractRegisterId int       `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
 	ContractCode       string    `gorm:"column:contract_code" json:"contract_code" description:"合同编号"`
 	Amount             float64   `gorm:"column:amount" json:"amount" description:"换算后的金额(人民币)"`
-	OriginAmount       float64   `gorm:"column:origin_amount" json:"origin_amount" description:"开票/到款金额"`
+	OriginAmount       float64   `gorm:"column:origin_amount" json:"origin_amount" description:"到款金额"`
 	CurrencyUnit       string    `gorm:"column:currency_unit" json:"currency_unit" description:"货币国际代码"`
-	InvoiceType        int       `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记"`
-	InvoiceDate        time.Time `gorm:"column:invoice_time" json:"invoice_time" description:"开票日期/到款月"`
 	SellerId           int       `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
 	SellerName         string    `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
-	SellerGroupId      int       `gorm:"column:seller_group_id" json:"seller_group_id" description:"销售分组ID"`
-	SellerGroupName    string    `gorm:"column:seller_group_name" json:"seller_group_name" description:"销售分组名称"`
-	SellerTeamId       int       `gorm:"column:seller_team_id" json:"seller_team_id" description:"销售小组ID"`
-	SellerTeamName     string    `gorm:"column:seller_team_name" json:"seller_team_name" description:"销售小组名称"`
-	PayType            int       `gorm:"column:pay_type" json:"pay_type" description:"付款方式:0-无;1-年付;2-半年付;3-季付;4-次付;5-异常"`
 	AdminId            int       `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
 	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-已删除"`
+	StartDate          time.Time `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
+	EndDate            time.Time `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
 	base.TimeBase
 }
 
+type ContractPrePaymentRespItem struct {
+	PrePayId           int     `gorm:"primaryKey;column:pre_pay_id" json:"pre_pay_id" description:"预付款ID"`
+	ContractRegisterId int     `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
+	ContractCode       string  `gorm:"column:contract_code" json:"contract_code" description:"合同编号"`
+	Amount             float64 `gorm:"column:amount" json:"amount" description:"换算后的金额(人民币)"`
+	OriginAmount       float64 `gorm:"column:origin_amount" json:"origin_amount" description:"到款金额"`
+	CurrencyUnit       string  `gorm:"column:currency_unit" json:"currency_unit" description:"货币国际代码"`
+	SellerId           int     `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
+	SellerName         string  `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
+	AdminId            int     `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
+	AdminName          string  `gorm:"column:admin_name" json:"admin_name" description:"操作人姓名"`
+	Remark             string  `gorm:"column:remark" json:"remark" description:"备注信息"`
+	StartDate          string  `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
+	EndDate            string  `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
+	CreateTime         string  `gorm:"autoCreateTime;column:create_time" json:"create_time" description:"创建时间"`
+	ModifyTime         string  `gorm:"autoUpdateTime:milli;column:modify_time" json:"modify_time" description:"最后更新时间"`
+}
+
 func (c *ContractPrePayment) TableName() string {
 	return "contract_pre_payment"
 }
@@ -138,12 +152,51 @@ func (c *ContractPrePayment) TableName() string {
 //	return
 //}
 
-
 // ContractRegisterListReq 合同登记列表请求体
 type PrePayListReq struct {
-	Keyword        string `json:"keyword" form:"keyword" binding:"omitempty" description:"关键词"`
-	StartDate      string `json:"start_date" form:"start_date" binding:"omitempty,datetime=2006-01-02" description:"合同开始日期"`
-	EndDate        string `json:"end_date" form:"end_date" binding:"omitempty,datetime=2006-01-02" description:"合同结束日期"`
+	Keyword   string `json:"keyword" form:"keyword" binding:"omitempty" description:"关键词"`
+	StartDate string `json:"start_date" form:"start_date" binding:"omitempty,datetime=2006-01-02" description:"约定开始时间"`
+	EndDate   string `json:"end_date" form:"end_date" binding:"omitempty,datetime=2006-01-02" description:"约定结束时间"`
+	SortType  int    `json:"sort_type" form:"sort_type" description:"排序方式: 1-正序; 2-倒序"`
 	base.PageReq
 }
 
+// GetPrePayItemPageList 获取预登记列表-分页
+func GetPrePayItemPageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*ContractPrePaymentRespItem, err error) {
+	list := make([]*ContractPrePayment, 0)
+	query := global.DEFAULT_MYSQL.Table("contract_pre_payment").
+		Where(condition, pars...)
+	query.Count(&count)
+	if len(page.GetOrderItemsString()) > 0 {
+		query = query.Order(page.GetOrderItemsString())
+	}
+	err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&list).Error
+	if err != nil {
+		return
+	}
+	for i := range list {
+		results = append(results, formatPrePay2Item(list[i]))
+	}
+	return
+}
+
+// formatPrePay2Item 格式化PrePay
+func formatPrePay2Item(item *ContractPrePayment) (formatItem *ContractPrePaymentRespItem) {
+	formatItem = new(ContractPrePaymentRespItem)
+	formatItem.PrePayId = item.PrePayId
+	formatItem.ContractRegisterId = item.ContractRegisterId
+	formatItem.ContractCode = item.ContractCode
+	formatItem.SellerId = item.SellerId
+	formatItem.SellerName = item.SellerName
+	formatItem.Amount = item.Amount
+	formatItem.OriginAmount = item.OriginAmount
+	formatItem.CurrencyUnit = item.CurrencyUnit
+	formatItem.StartDate = utils.TimeTransferString(utils.FormatDate, item.StartDate)
+	formatItem.EndDate = utils.TimeTransferString(utils.FormatDate, item.EndDate)
+	formatItem.AdminId = item.AdminId
+	formatItem.AdminName = item.AdminName
+	formatItem.Remark = item.Remark
+	formatItem.CreateTime = utils.TimeTransferString(utils.FormatDateTime, item.CreateTime)
+	formatItem.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, item.ModifyTime)
+	return
+}

+ 1 - 1
routers/contract.go

@@ -36,6 +36,6 @@ func InitContract(rg *gin.RouterGroup) {
 
 	//到款预登记
 	prepay := new(contract.PrePaymentController)
-	prepayGroup := rg.Group("pre_payment/").Use(middleware.Token())
+	prepayGroup := rg.Group("pre_pay/").Use(middleware.Token())
 	prepayGroup.GET("list", prepay.List)
 }