修改冲突

main
jhc 1 year ago
commit 007da446bd

File diff suppressed because it is too large Load Diff

@ -329,6 +329,7 @@ message CreateRequest {
string TypeName = 28 [json_name = "typeName"]; string TypeName = 28 [json_name = "typeName"];
string GroupName = 29 [json_name = "groupName"]; string GroupName = 29 [json_name = "groupName"];
BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"]; BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"];
FinancialFrom FinancialFrom = 31 [json_name = "financialFrom"];
} }
message WorkFlow { message WorkFlow {
@ -429,3 +430,41 @@ message GetNameRequest {
message GetNameResponse { message GetNameResponse {
repeated string Name = 1 [json_name = "name"]; repeated string Name = 1 [json_name = "name"];
} }
message FinancialFrom {
uint64 ID=1 [json_name = "ID"];
uint64 DeletedAt=2 [json_name = "deletedAt"];
string CreatedAt=3 [json_name = "createdAt"];
string UpdatedAt=4 [json_name = "updatedAt"];
uint64 ApprovalID=5 [json_name = "approvalID"];
string PaymentCompany = 6 [json_name = "paymentCompany"];
string TransactionDepartment = 7 [json_name = "transactionDepartment"];
string Payee = 8 [json_name = "payee"];
string BeneficiaryBank = 9 [json_name = "beneficiaryBank"];
string BankNo = 10 [json_name = "bankNo"];
CostInfo CostInfo = 11 [json_name = "costInfo"];
string PaymentMethod = 12 [json_name = "paymentMethod"];
InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"];
}
message CostInfo {
string Description = 1 [json_name = "description"];
string UnitPrice = 2 [json_name = "unitPrice"];
string CostUnit = 3 [json_name = "costUnit"];
int64 CostNum = 4 [json_name = "costNum"];
string TotalPrice = 5 [json_name = "totalPrice"];
string UsedDepartment = 6 [json_name = "usedDepartment"];
}
message InvoiceInfo {
string InvoiceDate = 1 [json_name = "invoiceDate"];
string InvoiceNo = 2 [json_name = "invoiceNo"];
string InvoiceProvider = 3 [json_name = "invoiceProvider"];
string Amount = 4 [json_name = "amount"];
string UseTo = 5 [json_name = "useTo"];
string Applicant = 6 [json_name = "applicant"];
string PaymentMethod = 7 [json_name = "paymentMethod"];
string PaymentObj = 8 [json_name = "paymentObj"];
string InvoiceType = 9 [json_name = "invoiceType"];
string Notes = 10 [json_name = "notes"];
}

@ -263,6 +263,11 @@ func (this *CreateRequest) Validate() error {
return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err) return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err)
} }
} }
if this.FinancialFrom != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.FinancialFrom); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("FinancialFrom", err)
}
}
return nil return nil
} }
func (this *WorkFlow) Validate() error { func (this *WorkFlow) Validate() error {
@ -331,3 +336,22 @@ func (this *GetNameRequest) Validate() error {
func (this *GetNameResponse) Validate() error { func (this *GetNameResponse) Validate() error {
return nil return nil
} }
func (this *FinancialFrom) Validate() error {
if this.CostInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.CostInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("CostInfo", err)
}
}
if this.InvoiceInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.InvoiceInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("InvoiceInfo", err)
}
}
return nil
}
func (this *CostInfo) Validate() error {
return nil
}
func (this *InvoiceInfo) Validate() error {
return nil
}

@ -51,6 +51,7 @@ type Approval struct {
BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type
ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type
ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"` ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"`
FinancialFrom []*FinancialFrom `gorm:"foreignKey:ApprovalID" json:"financialFrom"`
} }
func (j *KeyInfos) Scan(src interface{}) error { func (j *KeyInfos) Scan(src interface{}) error {
@ -72,6 +73,7 @@ const (
TypeBundle = "bundle" TypeBundle = "bundle"
TypeBundlePayPrice = "bundlePayPrice" TypeBundlePayPrice = "bundlePayPrice"
TypeArtExhibitionReward = "artExhibitionReward" TypeArtExhibitionReward = "artExhibitionReward"
TypeFinancialForm = "financialFormApply"
) )
const ( const (
StatusDoing = 1 StatusDoing = 1
@ -532,10 +534,9 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("BundlePayPrice"). Preload("BundlePayPrice").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ExhibitionReward.ApprovalExhibitions").
Preload("ApprovalWorkFlows", func(db *gorm.DB) *gorm.DB { Preload("ApprovalWorkFlows").
return db.Order("level asc") Preload("Exhibition.ApprovalExhibitions").
}). Preload("FinancialFrom")
Preload("Exhibition.ApprovalExhibitions")
//我未阅读的和我未操作的 //我未阅读的和我未操作的
DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids) DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids)
@ -572,7 +573,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("BundlePayPrice"). Preload("BundlePayPrice").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("ApprovalWorkFlows"). Preload("ApprovalWorkFlows").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions").
Preload("FinancialFrom")
if in.Type != "" { if in.Type != "" {
modelObj = modelObj.Where(&Approval{Type: in.Type}) modelObj = modelObj.Where(&Approval{Type: in.Type})
@ -629,7 +631,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ExhibitionReward.ApprovalExhibitions").
Preload("ApprovalWorkFlows"). Preload("ApprovalWorkFlows").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions").
Preload("FinancialFrom")
if in.Type != "" { if in.Type != "" {
modelObj = modelObj.Where(&Approval{Type: in.Type}) modelObj = modelObj.Where(&Approval{Type: in.Type})
@ -682,12 +685,11 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("Work.ApprovalWorks"). Preload("Work.ApprovalWorks").
Preload("Bundle"). Preload("Bundle").
Preload("BundlePayPrice"). Preload("BundlePayPrice").
Preload("ApprovalWorkFlows", func(db *gorm.DB) *gorm.DB { Preload("ApprovalWorkFlows").
return db.Order("level asc")
}).
Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ExhibitionReward.ApprovalExhibitions").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions").
Preload("FinancialFrom")
if in.Status != 0 { if in.Status != 0 {
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
@ -719,7 +721,8 @@ func MyReadApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("ApprovalWorkFlows"). Preload("ApprovalWorkFlows").
Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ExhibitionReward.ApprovalExhibitions").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions").
Preload("FinancialFrom")
if in.Type != "" { if in.Type != "" {
modelObj = modelObj.Where(&Approval{Type: in.Type}) modelObj = modelObj.Where(&Approval{Type: in.Type})
@ -807,6 +810,8 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro
return &BundlePayPrice{}, nil return &BundlePayPrice{}, nil
case TypeArtExhibitionReward: case TypeArtExhibitionReward:
return &ExhibitionReward{}, nil return &ExhibitionReward{}, nil
case TypeFinancialForm:
return &FinancialFrom{}, nil
default: default:
return &Approval{}, nil return &Approval{}, nil
} }

@ -1,6 +1,10 @@
package model package model
import ( import (
"errors"
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
"github.com/jinzhu/copier"
"gorm.io/plugin/soft_delete" "gorm.io/plugin/soft_delete"
"time" "time"
) )
@ -10,4 +14,87 @@ type FinancialFrom struct {
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
ApprovalID uint64 `gorm:"primaryKey;column:approval_id" json:"approvalId"` // 关联申请的ID
PaymentCompany string `json:"paymentCompany" gorm:"column:payment_company;type:varchar(2048);comment:付款公司别"`
TransactionDepartment string `json:"transactionDepartment" gorm:"column:transaction_department;type:varchar(255);comment:经办部门"`
Payee string `json:"payee" gorm:"column:payee;type:varchar(2048);comment:收款人全称"`
BeneficiaryBank string `json:"beneficiaryBank" gorm:"column:beneficiary_bank;type:varchar(1024);comment:收款人开户行"`
BankNo string `json:"bankNo" gorm:"column:bank_no;type:varchar(1024);comment:收款人账号"`
CostInfo []*CostInfo `json:"costInfo" gorm:"column:cost_info;type:json;comment:费用说明"`
PaymentMethod string `json:"paymentMethod" gorm:"column:payment_method;type:varchar(255);comment:付款方式"`
InvoiceInfo []*InvoiceInfo `json:"invoiceInfo" gorm:"column:invoice_info;type:json;comment:发票信息"`
}
type CostInfo struct {
Description string `json:"description" gorm:"column:description;type:text;comment:说明"`
UnitPrice string `json:"unitPrice" gorm:"column:unit_price;type:varchar(255);comment:费用单价"`
CostUnit string `json:"costUnit" gorm:"column:cost_unit;type:varchar(255);comment:费用单位"`
CostNum int64 `json:"costNum" gorm:"column:cost_num;type:int;comment:费用数量"`
TotalPrice string `json:"totalPrice" gorm:"column:total_price;type:varchar(255);comment:费用总额"`
UsedDepartment string `json:"usedDepartment" gorm:"column:used_department;type:varchar(2048);comment:使用部门"`
}
type InvoiceInfo struct {
InvoiceDate string `json:"invoiceDate" gorm:"column:invoice_date;type:varchar(255);comment:发票日期"`
InvoiceNo string `json:"invoiceNo" gorm:"column:invoice_no;type:varchar(255);comment:发票号码"`
InvoiceProvider string `json:"invoiceProvider" gorm:"column:invoice_provider;type:varchar(1024);comment:发票提供者"`
Amount string `json:"amount" gorm:"column:amount;type:varchar(255);comment:发票或付款金额"`
UseTo string `json:"useTo" gorm:"column:use_to;type:varchar(1024);comment:用途"`
Applicant string `json:"applicant" gorm:"column:applicant;varchar(255);comment:申请人"`
PaymentMethod string `json:"paymentMethod" gorm:"column:payment_method;type:varchar(255);comment:付款方式"`
PaymentObj string `json:"paymentObj" gorm:"column:payment_obj;type:varchar(255);comment:付款或报销对象"`
InvoiceType string `json:"invoiceType" gorm:"column:invoice_type;type:varchar(255);comment:发票类型"`
Notes string `json:"notes" gorm:"column:notes;type:text;comment:备注"`
}
// TableName get sql table name.获取数据库表名
func (m *FinancialFrom) TableName() string {
return "financial_from"
}
func (m *FinancialFrom) GetApproval(id uint64) (*Approval, error) {
var entity *Approval
if err := DB.
Preload("ApprovalWorkFlows").
Preload("ApprovalType").
Preload("FinancialFrom").
First(&entity, id).Error; err != nil {
return entity, err
}
return entity, nil
}
func (m *FinancialFrom) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error {
copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true})
m.ApprovalID = a.ID
return DB.Create(&m).Error
}
func (m *FinancialFrom) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error {
var entity *FinancialFrom
if err := DB.Where(&FinancialFrom{ApprovalID: a.ID}).First(&entity).Error; err != nil {
return errors.New(m2.ErrorNotFound)
}
copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true})
m.ID = entity.ID
return DB.Model(&m).Updates(m).Error
}
func (m *FinancialFrom) BuildResContent(a *Approval, request *approval.CreateRequest) {
if a.FinancialFrom != nil {
copier.CopyWithOption(&request.FinancialFrom, a.FinancialFrom, copier.Option{DeepCopy: true})
}
}
func (m *FinancialFrom) DeleteApproval(p *Approval) error {
return DB.Where(&FinancialFrom{ApprovalID: p.ID}).Delete(&FinancialFrom{}).Error
} }

@ -14,6 +14,7 @@ func migration() {
addTable(&ApprovalReward{}) addTable(&ApprovalReward{})
addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息 addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息
addTable(&FinancialFrom{}) // 财务报表审批 设置信息
//增加字段 //增加字段
addColumn(&ApprovalType{}, "is_normal") addColumn(&ApprovalType{}, "is_normal")

@ -13,6 +13,7 @@ func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateReques
var exhibition *approval.Exhibition var exhibition *approval.Exhibition
var bundle *approval.Bundle var bundle *approval.Bundle
var workFlows []*approval.WorkFlow var workFlows []*approval.WorkFlow
var financialFrom *approval.FinancialFrom
canViewed := false canViewed := false
canApproval := false canApproval := false
allStatus := uint64(entity.Status) allStatus := uint64(entity.Status)
@ -71,6 +72,7 @@ func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateReques
Show: show, Show: show,
Exhibition: exhibition, Exhibition: exhibition,
Bundle: bundle, Bundle: bundle,
FinancialFrom: financialFrom,
CustomizeInfo: BuildKeyInfo(entity.ValueJson), CustomizeInfo: BuildKeyInfo(entity.ValueJson),
CreatedAt: entity.CreatedAt.Format("2006-01-02 15:04:05"), CreatedAt: entity.CreatedAt.Format("2006-01-02 15:04:05"),
AllStatus: allStatus, //0-未处理 1-通过 2-拒绝 3-已阅读 4-待阅读 AllStatus: allStatus, //0-未处理 1-通过 2-拒绝 3-已阅读 4-待阅读

Loading…
Cancel
Save