From 2c467a3aece7243689d80becf4276d171e189c39 Mon Sep 17 00:00:00 2001 From: kanade Date: Fri, 18 Oct 2024 16:37:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp/accounting.go | 2 + erp/constant.go | 8 ++ erp/product.go | 2 + erp/purchase.go | 51 ++++++----- erp/purchase/product.go | 1 + erp/sale.go | 44 ++++++++-- erp/sale/audit.go | 11 +++ erp/sale/benefit.go | 1 + erp/sale/product.go | 20 +++++ erp/shipment.go | 17 ++-- erp/shipment/exchangeSettlement.go | 1 + erp/shipment/saleProduct.go | 130 +++++++++++++++-------------- erp/workflow.go | 1 + erp/workflow/node.go | 7 +- 14 files changed, 194 insertions(+), 102 deletions(-) diff --git a/erp/accounting.go b/erp/accounting.go index 652fb33..c506037 100644 --- a/erp/accounting.go +++ b/erp/accounting.go @@ -18,12 +18,14 @@ type ArgsAccountingList struct { } type AccountingSearch struct { AccountingSerial string // 做账单号 + CustomId int64 // 客户id CustomName string // 客户名称 CustomShortName string // 客户简称 WorkflowStatus []int64 // 审批状态 CreatedAtStart *time.Time // 创建开始时间 CreatedAtEnd *time.Time // 创建结束时间 CreatedStaffIds []int64 // 创建人 + StaffIds []int64 // 业务员 AccountingIds []int64 // 做账id } diff --git a/erp/constant.go b/erp/constant.go index 7e3067c..4e3f4c7 100644 --- a/erp/constant.go +++ b/erp/constant.go @@ -3,6 +3,7 @@ package erp type BusinessType = string // 业务类型 const ( BusinessTypeSaleAudit BusinessType = "saleAudit" // 销售合同审核 + BusinessTypeSaleAuditClose BusinessType = "saleAuditClose" // 销售合同关单审核 BusinessTypePurchaseAudit BusinessType = "purchaseAudit" // 采购合同审核 BusinessTypeShipmentAudit BusinessType = "shipmentAudit" // 订舱单审核 BusinessTypeAccountingAudit BusinessType = "accountingAudit" // 做账合同审核 @@ -10,6 +11,7 @@ const ( var BusinessTypeName = map[BusinessType]string{ BusinessTypeSaleAudit: "销售合同审核", + BusinessTypeSaleAuditClose: "销售合同关单审核", BusinessTypePurchaseAudit: "采购合同审核", BusinessTypeShipmentAudit: "订舱单审核", BusinessTypeAccountingAudit: "做账合同审核", @@ -24,6 +26,12 @@ const ( AuditStatusCancel AuditStatus = 5 // 审核撤回 ) +type ProductMold = int64 // 产品类型 +const ( + ProductMoldSingle ProductMold = 1 // 单件 + ProductMoldSuite ProductMold = 2 // 套件 +) + type IsOpen = int64 // 开启状态 const ( IsOpenTrue IsOpen = 1 // 开启 diff --git a/erp/product.go b/erp/product.go index 0087c74..d5e4c8c 100644 --- a/erp/product.go +++ b/erp/product.go @@ -86,6 +86,7 @@ type ProductAdd struct { SalePrice *decimal.Decimal // 销售单价 BanFlag int64 // 禁用标记 1=禁用,2=可用 Mold int64 // 组成类型 1=单件 2=套件 + MoldCount int64 // 子组件数量 ParentId int64 // 子套件父级ID Type string // 产品类型 Barcode string // 条形码 @@ -155,6 +156,7 @@ type ProductCustomsInfo struct { type ReplyProductInfo struct { Id int64 `json:"id"` Mold int64 `json:"mold"` + MoldCount int64 `json:"moldCount"` Serial string `json:"serial"` CustomSerial string `json:"customSerial"` Name string `json:"name"` diff --git a/erp/purchase.go b/erp/purchase.go index 6225899..8434772 100644 --- a/erp/purchase.go +++ b/erp/purchase.go @@ -17,34 +17,41 @@ type ArgsPurchaseList struct { Search PurchaseSearch } type PurchaseSearch struct { - PiSerial string // 采购合同编号 - PoSerial string // po - CustomShortName string // 客户简称 - CreatedStaffIds []int64 // 创建人筛选 - FactoryName string // 采购工厂 - PurchaseIds []int64 // 采购id + PiSerial string // 采购合同编号 + PoSerial string // po + CustomId int64 // 客户id + CustomShortName string // 客户简称 + CreatedStaffIds []int64 // 创建人筛选 + StaffIds []int64 // 业务员 + FactoryName string // 采购工厂 + PurchaseIds []int64 // 采购id + OrderDateStart *time.Time // 下单日期 + OrderDateEnd *time.Time // 下单日期 + WorkflowStatus []int64 // 状态 } type ReplyPurchaseList struct { List []PurchaseItem `json:"list"` Total int64 `json:"total"` } type PurchaseItem struct { - Id int64 `json:"id"` - SaleId int64 `json:"saleId"` - PiSerial string `json:"piSerial"` - PoSerial string `json:"poSerial"` - CustomName string `json:"customName"` - CustomShortName string `json:"customShortName"` - DeliveryDate *time.Time `json:"deliveryDate"` - DeliveryDateEnd *time.Time `json:"deliveryDateEnd"` - OrderDate time.Time `json:"orderDate"` - CreatedStaffId int64 `json:"createdStaffId"` - WorkflowId int64 `json:"workflowId"` - WorkflowStatus int64 `json:"workflowStatus"` - FactoryName string `json:"factoryName"` - FactoryId int64 `json:"factoryId"` - CreatedAt *time.Time `json:"createdAt"` - UpdatedAt *time.Time `json:"updatedAt"` + Id int64 `json:"id"` + SaleId int64 `json:"saleId"` + PiSerial string `json:"piSerial"` + PoSerial string `json:"poSerial"` + CustomName string `json:"customName"` + CustomShortName string `json:"customShortName"` + DeliveryDate *time.Time `json:"deliveryDate"` + DeliveryDateEnd *time.Time `json:"deliveryDateEnd"` + OrderDate time.Time `json:"orderDate"` + CreatedStaffId int64 `json:"createdStaffId"` + WorkflowId int64 `json:"workflowId"` + WorkflowStatus int64 `json:"workflowStatus"` + FactoryName string `json:"factoryName"` + FactoryId int64 `json:"factoryId"` + ProductAmount decimal.Decimal `json:"productAmount"` + CostAmount decimal.Decimal `json:"costAmount"` + CreatedAt *time.Time `json:"createdAt"` + UpdatedAt *time.Time `json:"updatedAt"` } // List @TITLE 采购合同列表 diff --git a/erp/purchase/product.go b/erp/purchase/product.go index 85da6b6..9cd9703 100644 --- a/erp/purchase/product.go +++ b/erp/purchase/product.go @@ -11,6 +11,7 @@ type product struct { } type ProductItem struct { Id int64 `json:"id"` + SaleProductId int64 `json:"saleProductId"` PurchasePrice decimal.Decimal `json:"purchasePrice"` PurchaseCount int64 `json:"purchaseCount"` BoxCount int64 `json:"boxCount"` diff --git a/erp/sale.go b/erp/sale.go index 133d44d..c1cdc30 100644 --- a/erp/sale.go +++ b/erp/sale.go @@ -17,14 +17,19 @@ type ArgsSaleList struct { Search SaleSearch } type SaleSearch struct { - PiSerial string // pi - PoSerial string // po - CustomIds []int64 // 客户 - PurchaseStatus []int64 // 采购状态 - ShipmentStatus []int64 // 出舱状态 - CreatedStaffIds []int64 // 业务员 - SaleIds []int64 // 销售id - BanFlag int64 // 禁用标记 1=禁用,2=可用 + PiSerial string // pi + PoSerial string // po + CustomIds []int64 // 客户 + CustomShortName string // 客户简称 + PurchaseStatus []int64 // 采购状态 + ShipmentStatus []int64 // 出舱状态 + CreatedStaffIds []int64 // 业务员 + StaffIds []int64 // 业务员 + SaleIds []int64 // 销售id + ContractDateStart *time.Time // 合同日期 + ContractDateEnd *time.Time // 合同日期 + BanFlag int64 // 禁用标记 1=禁用,2=可用 + WorkflowStatus []int64 // 审批状态 } type ReplySaleList struct { List []SaleItem `json:"list"` @@ -88,6 +93,9 @@ type SaleItem struct { CreatedStaffId int64 `json:"createdStaffId"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` + CloseWorkflowId int64 `json:"closeWorkflowId"` + CloseWorkflowStatus int64 `json:"closeWorkflowStatus"` + BanFlag int64 `json:"banFlag"` } // List @TITLE 销售合同列表 @@ -224,6 +232,10 @@ type ReplySaleInfo struct { CreatedStaffId int64 `json:"createdStaffId"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` + BanFlag int64 `json:"banFlag"` + CloseWorkflowId int64 `json:"closeWorkflowId"` + CloseWorkflowStatus int64 `json:"closeWorkflowStatus"` + CloseWorkflowReason string `json:"closeWorkflowReason"` } // Info @TITLE 销售合同详情 @@ -250,3 +262,19 @@ func (s *sale) Edit(ctx context.Context, args ArgsSaleEdit) (err error) { reply := 0 return xClient.Call(ctx, "Edit", args, &reply) } + +type ArgsSaleClone struct { + StaffId int64 // 员工id + SaleId int64 // saleId + PiSerial string // PI number +} + +// Clone @TITLE 销售合同克隆 +func (s *sale) Clone(ctx context.Context, args ArgsSaleClone) (reply int64, err error) { + xClient, err := client.GetClient(s) + if err != nil { + return + } + err = xClient.Call(ctx, "Clone", args, &reply) + return +} diff --git a/erp/sale/audit.go b/erp/sale/audit.go index 3ac342d..55b0b98 100644 --- a/erp/sale/audit.go +++ b/erp/sale/audit.go @@ -23,3 +23,14 @@ func (a *audit) Submit(ctx context.Context, args ArgsAuditSubmit) (err error) { err = xClient.Call(ctx, "Submit", args, &reply) return } + +// Cancel @TITLE 提交审核 +func (a *audit) Cancel(ctx context.Context, args ArgsAuditSubmit) (err error) { + xClient, err := client.GetClient(a) + if err != nil { + return + } + reply := 0 + err = xClient.Call(ctx, "Cancel", args, &reply) + return +} diff --git a/erp/sale/benefit.go b/erp/sale/benefit.go index e76c13e..1bb0009 100644 --- a/erp/sale/benefit.go +++ b/erp/sale/benefit.go @@ -19,6 +19,7 @@ type BenefitProductItem struct { Name string `json:"name"` EngName string `json:"engName"` Mold int64 `json:"mold"` + MoldCount int64 `json:"moldCount"` FactoryId int64 `json:"factoryId"` FactoryName string `json:"factoryName"` FactorySerial string `json:"factorySerial"` diff --git a/erp/sale/product.go b/erp/sale/product.go index e8f7845..7d1139a 100644 --- a/erp/sale/product.go +++ b/erp/sale/product.go @@ -24,6 +24,7 @@ type ProductSearch struct { Serial string // 货号 CreatedStaffIds []int64 // 录入人 SaleIds []int64 // 销售合同id + ParentIds []int64 // 父id } type ReplyProductList struct { Total int64 `json:"total"` @@ -89,6 +90,7 @@ func (p *product) List(ctx context.Context, args ArgsProductList) (reply ReplyPr type ProductItem struct { Id int64 `json:"id"` Mold int64 `json:"mold"` + MoldCount int64 `json:"moldCount"` ParentId int64 `json:"parentId"` Serial string `json:"serial"` Po string `json:"po"` @@ -155,6 +157,7 @@ type ProductAdd struct { SalePrice decimal.Decimal // 销售单价 BanFlag int64 // 禁用标记 1=禁用,2=可用 Mold int64 // 组成类型 1=单件 2=套件 + MoldCount int64 // 子组件数量 Type string // 产品类型 Barcode string // 条形码 SellCountry string // 销售国家 @@ -240,6 +243,7 @@ type ReplyProductInfo struct { Id int64 `json:"id"` ProductId int64 `json:"productId"` Mold int64 `json:"mold"` + MoldCount int64 `json:"moldCount"` Serial string `json:"serial"` CustomSerial string `json:"customSerial"` Name string `json:"name"` @@ -336,6 +340,7 @@ type ProductEdit struct { SalePrice decimal.Decimal // 销售单价 BanFlag int64 // 禁用标记 1=禁用,2=可用 Mold int64 // 组成类型 1=单件 2=套件 + MoldCount int64 // 子组件数量 Type string // 产品类型 Barcode string // 条形码 SellCountry string // 销售国家 @@ -380,6 +385,21 @@ func (p *product) MultiEdit(ctx context.Context, args []MultiData) (err error) { return xClient.Call(ctx, "MultiEdit", args, &reply) } +type ChangeCount struct { + SaleProductId int64 // 产品id + SaleCount int64 // 销售数量 +} + +// ChangeCount @TITLE 修改数量 +func (p *product) ChangeCount(ctx context.Context, args []ChangeCount) (err error) { + xClient, err := client.GetClient(p) + if err != nil { + return + } + reply := 0 + return xClient.Call(ctx, "ChangeCount", args, &reply) +} + // Delete @TITLE 删除产品 func (p *product) Delete(ctx context.Context, saleProductIds []int64) (err error) { xClient, err := client.GetClient(p) diff --git a/erp/shipment.go b/erp/shipment.go index 986c07a..0d22159 100644 --- a/erp/shipment.go +++ b/erp/shipment.go @@ -18,12 +18,17 @@ type ArgsShipmentList struct { Search ShipmentSearch } type ShipmentSearch struct { - InvoiceSerial string // 出运发票号 - CustomIds []int64 // 客户筛选 - StaffIds []int64 // 业务员筛选 - WorkflowStatus []int64 // 审核状态 - IsAudit int64 // 审核状态 是否审核 1=是 2=否 - ShipmentIds []int64 // 出舱id + InvoiceSerial string // 出运发票号 + CustomIds []int64 // 客户筛选 + StaffIds []int64 // 业务员筛选 + CreatedStaffIds []int64 // 业务员筛选 + WorkflowStatus []int64 // 审核状态 + IsAudit int64 // 审核状态 是否审核 1=是 2=否 + ShipmentIds []int64 // 出舱id + InvoiceDateStart *time.Time // 发票日期 + InvoiceDateEnd *time.Time // 发票日期 + ContractDateStart *time.Time // 合同日期 + ContractDateEnd *time.Time // 合同日期 } type ReplyShipmentList struct { List []ShipmentItem `json:"list"` diff --git a/erp/shipment/exchangeSettlement.go b/erp/shipment/exchangeSettlement.go index fcdc8d8..5ddf08e 100644 --- a/erp/shipment/exchangeSettlement.go +++ b/erp/shipment/exchangeSettlement.go @@ -29,6 +29,7 @@ type ReplyExchangeSettlementList struct { type ExchangeSettlementItem struct { Id int64 `json:"id"` + ShipmentId int64 `json:"shipmentId"` InvoiceSerial string `json:"invoiceSerial"` ExchangeSettlementNo string `json:"exchangeSettlementNo"` ContractDate *time.Time `json:"contractDate"` diff --git a/erp/shipment/saleProduct.go b/erp/shipment/saleProduct.go index f4804e0..50b4683 100644 --- a/erp/shipment/saleProduct.go +++ b/erp/shipment/saleProduct.go @@ -11,69 +11,73 @@ type saleProduct struct { } type SaleProductItem struct { - Id int64 `json:"id"` - PiSerial string `json:"piSerial"` - Sort int64 `json:"sort"` - Po string `json:"po"` - Serial string `json:"serial"` - ImgFilePaths []string `json:"imgFilePaths"` - CustomSerial string `json:"customSerial"` - PackageDescription string `json:"packageDescription"` - PackageEngDescription string `json:"packageEngDescription"` - EngName string `json:"engName"` - Name string `json:"name"` - CustomsName string `json:"customsName"` - CustomsSerial string `json:"customsSerial"` - CustomsMeasureUnit string `json:"customsMeasureUnit"` - CustomsInvoiceUnit string `json:"customsInvoiceUnit"` - CustomsDetail string `json:"customsDetail"` - BlEngName string `json:"blEngName"` - BoxCount int64 `json:"boxCount"` - InnerNum int64 `json:"innerNum"` - InnerBoxCount *int64 `json:"innerBoxCount"` - BoxNumUnit string `json:"boxNumUnit"` - OuterNum int64 `json:"outerNum"` - ShipmentCount int64 `json:"shipmentCount"` - ShipmentCountUnit string `json:"shipmentCountUnit"` - Length decimal.Decimal `json:"length"` - Width decimal.Decimal `json:"width"` - Height decimal.Decimal `json:"height"` - Volume decimal.Decimal `json:"volume"` - TotalVolume decimal.Decimal `json:"totalVolume"` - NetGrossVolume int64 `json:"netGrossVolume"` - GrossWeight decimal.Decimal `json:"grossWeight"` - TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"` - NetWeight decimal.Decimal `json:"netWeight"` - TotalNetWeight decimal.Decimal `json:"totalNetWeight"` - CustomsVolume decimal.Decimal `json:"customsVolume"` - TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"` - CustomsNetWeight decimal.Decimal `json:"customsNetWeight"` - TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"` - CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"` - TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"` - SalePrice decimal.Decimal `json:"salePrice"` - CurrencyRate decimal.Decimal `json:"currencyRate"` - Brand string `json:"brand"` - DomesticSupply string `json:"domesticSupply"` - EpmNo string `json:"epmNo"` - HsSerial int64 `json:"hsSerial"` - TaxExemption string `json:"taxExemption"` - ItemNumber string `json:"itemNumber"` - Texture string `json:"texture"` - Remark1 string `json:"remark1"` - Remark2 string `json:"remark2"` - Remark3 string `json:"remark3"` - Remark4 string `json:"remark4"` - Remark5 string `json:"remark5"` - Remark6 string `json:"remark6"` - ContainerNumber string `json:"containerNumber"` - SealNumber string `json:"sealNumber"` - PurchasePrice decimal.Decimal `json:"purchasePrice"` - PurchaseAmount decimal.Decimal `json:"purchaseAmount"` - IsSerial int64 `json:"isSerial"` - IsCustoms int64 `json:"isCustoms"` - CreatedAt *time.Time `json:"createdAt"` - UpdatedAt *time.Time `json:"updatedAt"` + Id int64 `json:"id"` + Mold int64 `json:"mold"` + ParentSaleProductId int64 `json:"parentSaleProductId"` + SaleProductId int64 `json:"saleProductId"` + PiSerial string `json:"piSerial"` + Sort int64 `json:"sort"` + Po string `json:"po"` + Serial string `json:"serial"` + ImgFilePaths []string `json:"imgFilePaths"` + CustomSerial string `json:"customSerial"` + PackageDescription string `json:"packageDescription"` + PackageEngDescription string `json:"packageEngDescription"` + EngName string `json:"engName"` + Name string `json:"name"` + CustomsName string `json:"customsName"` + CustomsSerial string `json:"customsSerial"` + CustomsMeasureUnit string `json:"customsMeasureUnit"` + CustomsInvoiceUnit string `json:"customsInvoiceUnit"` + CustomsDetail string `json:"customsDetail"` + BlEngName string `json:"blEngName"` + BoxCount int64 `json:"boxCount"` + InnerNum int64 `json:"innerNum"` + InnerBoxCount *int64 `json:"innerBoxCount"` + BoxNumUnit string `json:"boxNumUnit"` + OuterNum int64 `json:"outerNum"` + ShipmentCount int64 `json:"shipmentCount"` + ShipmentCountUnit string `json:"shipmentCountUnit"` + Length decimal.Decimal `json:"length"` + Width decimal.Decimal `json:"width"` + Height decimal.Decimal `json:"height"` + Volume decimal.Decimal `json:"volume"` + TotalVolume decimal.Decimal `json:"totalVolume"` + NetGrossVolume int64 `json:"netGrossVolume"` + GrossWeight decimal.Decimal `json:"grossWeight"` + TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"` + NetWeight decimal.Decimal `json:"netWeight"` + TotalNetWeight decimal.Decimal `json:"totalNetWeight"` + CustomsVolume decimal.Decimal `json:"customsVolume"` + TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"` + CustomsNetWeight decimal.Decimal `json:"customsNetWeight"` + TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"` + CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"` + TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"` + SalePrice decimal.Decimal `json:"salePrice"` + CurrencyRate decimal.Decimal `json:"currencyRate"` + Brand string `json:"brand"` + DomesticSupply string `json:"domesticSupply"` + EpmNo string `json:"epmNo"` + HsSerial int64 `json:"hsSerial"` + TaxExemption string `json:"taxExemption"` + ItemNumber string `json:"itemNumber"` + Texture string `json:"texture"` + Remark1 string `json:"remark1"` + Remark2 string `json:"remark2"` + Remark3 string `json:"remark3"` + Remark4 string `json:"remark4"` + Remark5 string `json:"remark5"` + Remark6 string `json:"remark6"` + ContainerNumber string `json:"containerNumber"` + SealNumber string `json:"sealNumber"` + PurchasePrice decimal.Decimal `json:"purchasePrice"` + PurchaseAmount decimal.Decimal `json:"purchaseAmount"` + IsSerial int64 `json:"isSerial"` + IsCustoms int64 `json:"isCustoms"` + CreatedAt *time.Time `json:"createdAt"` + UpdatedAt *time.Time `json:"updatedAt"` + Children []*SaleProductItem `json:"children"` } type ArgsSaleProductSearch struct { ShipmentId int64 // 出舱单 diff --git a/erp/workflow.go b/erp/workflow.go index e43bd32..148595a 100644 --- a/erp/workflow.go +++ b/erp/workflow.go @@ -19,6 +19,7 @@ type ArgsWorkflowList struct { type WorkflowSearch struct { BusinessId int64 // 业务id BusinessType string + BusinessTypes []string Status AuditStatus AuditStaffIds []int64 // 审核人 } diff --git a/erp/workflow/node.go b/erp/workflow/node.go index 7f54776..cf6d33d 100644 --- a/erp/workflow/node.go +++ b/erp/workflow/node.go @@ -35,9 +35,10 @@ type ArgsNodeList struct { Search NodeSearch } type NodeSearch struct { - StaffIds []int64 // 员工筛选 - Status []int64 // 状态筛选 - BusinessType string // 业务类型 + StaffIds []int64 // 员工筛选 + Status []int64 // 状态筛选 + BusinessType string // 业务类型 + BusinessTypes []string // 业务类型 } type ReplyNodeList struct { List []NodeItem `json:"list"`