feat(erp): 添加采购商品关联信息- 在产品详情中增加采购商品列表字段

- 扩展出舱单产品与采购商品的关联结构
- 新增采购商品详情信息结构体定义
- 支持在出运产品中关联多个采购商品- 完善产品添加和编辑时的采购商品数据处理
This commit is contained in:
守护自己的云 2025-09-28 15:40:39 +08:00
parent 9aba2baa8c
commit 0593a556e4
3 changed files with 435 additions and 356 deletions

View File

@ -2,12 +2,13 @@ package sale
import ( import (
"context" "context"
"time"
"git.kumo.work/shama/service/client" "git.kumo.work/shama/service/client"
bean2 "git.kumo.work/shama/service/erp/bean" bean2 "git.kumo.work/shama/service/erp/bean"
product2 "git.kumo.work/shama/service/erp/product" product2 "git.kumo.work/shama/service/erp/product"
"git.kumo.work/shama/service/lib/bean" "git.kumo.work/shama/service/lib/bean"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"time"
) )
type product struct { type product struct {
@ -281,6 +282,7 @@ type ReplyProductInfo struct {
Quote ProductQuoteInfo `json:"quote"` Quote ProductQuoteInfo `json:"quote"`
Children []ReplyProductInfo `json:"children"` Children []ReplyProductInfo `json:"children"`
CreatedStaffId int64 `json:"createdStaffId"` CreatedStaffId int64 `json:"createdStaffId"`
PurchaseProducts []PurchaseProduct `json:"purchaseProducts"`
} }
type ProductPackageInfo struct { type ProductPackageInfo struct {
@ -311,6 +313,23 @@ type ProductQuoteInfo struct {
CreatedAt *time.Time `json:"createdAt"` CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"` UpdatedAt *time.Time `json:"updatedAt"`
} }
type PurchaseProduct struct {
Id int64 `json:"id"`
PurchaseId int64 `json:"purchaseId"`
PiSerial string `json:"piSerial"`
PoSerial string `json:"poSerial"`
BatchNo int64 `json:"batchNo"`
FactoryId int64 `json:"factoryId"`
FactoryName string `json:"factoryName"`
DeliveryDate *time.Time `json:"deliveryDate"`
DeliveryDateEnd *time.Time `json:"deliveryDateEnd"`
PurchaseCount int64 `json:"purchaseCount"`
PurchasePrice decimal.Decimal `json:"purchasePrice"`
ShipmentCount int64 `json:"shipmentCount"`
ShippedCount int64 `json:"shippedCount"`
AccountingCount int64 `json:"accountingCount"`
AccountedCount int64 `json:"accountedCount"`
}
// Info @TITLE 产品详情 // Info @TITLE 产品详情
func (p *product) Info(ctx context.Context, saleProductId int64) (reply ReplyProductInfo, err error) { func (p *product) Info(ctx context.Context, saleProductId int64) (reply ReplyProductInfo, err error) {

View File

@ -12,81 +12,104 @@ type saleProduct struct {
} }
type SaleProductItem struct { type SaleProductItem struct {
Id int64 `json:"id"` Id int64 `json:"id"`
Mold int64 `json:"mold"` Mold int64 `json:"mold"`
ParentSaleProductId int64 `json:"parentSaleProductId"` ParentSaleProductId int64 `json:"parentSaleProductId"`
SaleProductId int64 `json:"saleProductId"` SaleProductId int64 `json:"saleProductId"`
PiSerial string `json:"piSerial"` PiSerial string `json:"piSerial"`
Sort int64 `json:"sort"` Sort int64 `json:"sort"`
Po string `json:"po"` Po string `json:"po"`
Serial string `json:"serial"` Serial string `json:"serial"`
ImgFilePaths []string `json:"imgFilePaths"` ImgFilePaths []string `json:"imgFilePaths"`
CustomSerial string `json:"customSerial"` CustomSerial string `json:"customSerial"`
PackageDescription string `json:"packageDescription"` PackageDescription string `json:"packageDescription"`
PackageEngDescription string `json:"packageEngDescription"` PackageEngDescription string `json:"packageEngDescription"`
PackageWeight decimal.Decimal `json:"packageWeight"` PackageWeight decimal.Decimal `json:"packageWeight"`
EngName string `json:"engName"` EngName string `json:"engName"`
Name string `json:"name"` Name string `json:"name"`
CustomsName string `json:"customsName"` CustomsName string `json:"customsName"`
CustomsSerial string `json:"customsSerial"` CustomsSerial string `json:"customsSerial"`
CustomsMeasureUnit string `json:"customsMeasureUnit"` CustomsMeasureUnit string `json:"customsMeasureUnit"`
CustomsInvoiceUnit string `json:"customsInvoiceUnit"` CustomsInvoiceUnit string `json:"customsInvoiceUnit"`
CustomsDetail string `json:"customsDetail"` CustomsDetail string `json:"customsDetail"`
BlEngName string `json:"blEngName"` BlEngName string `json:"blEngName"`
BoxCount int64 `json:"boxCount"` BoxCount int64 `json:"boxCount"`
InnerNum int64 `json:"innerNum"` InnerNum int64 `json:"innerNum"`
InnerBoxCount *int64 `json:"innerBoxCount"` InnerBoxCount *int64 `json:"innerBoxCount"`
BoxNumUnit string `json:"boxNumUnit"` BoxNumUnit string `json:"boxNumUnit"`
OuterNum int64 `json:"outerNum"` OuterNum int64 `json:"outerNum"`
ShipmentCount int64 `json:"shipmentCount"` ShipmentCount int64 `json:"shipmentCount"`
ShipmentCountUnit string `json:"shipmentCountUnit"` ShipmentCountUnit string `json:"shipmentCountUnit"`
Length decimal.Decimal `json:"length"` Length decimal.Decimal `json:"length"`
Width decimal.Decimal `json:"width"` Width decimal.Decimal `json:"width"`
Height decimal.Decimal `json:"height"` Height decimal.Decimal `json:"height"`
Volume decimal.Decimal `json:"volume"` Volume decimal.Decimal `json:"volume"`
TotalVolume decimal.Decimal `json:"totalVolume"` TotalVolume decimal.Decimal `json:"totalVolume"`
NetGrossVolume int64 `json:"netGrossVolume"` NetGrossVolume int64 `json:"netGrossVolume"`
GrossWeight decimal.Decimal `json:"grossWeight"` GrossWeight decimal.Decimal `json:"grossWeight"`
TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"` TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"`
NetWeight decimal.Decimal `json:"netWeight"` NetWeight decimal.Decimal `json:"netWeight"`
TotalNetWeight decimal.Decimal `json:"totalNetWeight"` TotalNetWeight decimal.Decimal `json:"totalNetWeight"`
CustomsVolume decimal.Decimal `json:"customsVolume"` CustomsVolume decimal.Decimal `json:"customsVolume"`
TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"` TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"`
CustomsNetWeight decimal.Decimal `json:"customsNetWeight"` CustomsNetWeight decimal.Decimal `json:"customsNetWeight"`
TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"` TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"`
CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"` CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"`
TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"` TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"`
SalePrice decimal.Decimal `json:"salePrice"` SalePrice decimal.Decimal `json:"salePrice"`
SaleAmount decimal.Decimal `json:"saleAmount"` SaleAmount decimal.Decimal `json:"saleAmount"`
CustomsPrice decimal.Decimal `json:"customsPrice"` CustomsPrice decimal.Decimal `json:"customsPrice"`
CustomsAmount decimal.Decimal `json:"customsAmount"` CustomsAmount decimal.Decimal `json:"customsAmount"`
FactoryName string `json:"factoryName"` FactoryName string `json:"factoryName"`
CurrencyRate decimal.Decimal `json:"currencyRate"` CurrencyRate decimal.Decimal `json:"currencyRate"`
Brand string `json:"brand"` Brand string `json:"brand"`
DomesticSupply string `json:"domesticSupply"` DomesticSupply string `json:"domesticSupply"`
EpmNo string `json:"epmNo"` EpmNo string `json:"epmNo"`
HsSerial int64 `json:"hsSerial"` HsSerial int64 `json:"hsSerial"`
TaxExemption string `json:"taxExemption"` TaxExemption string `json:"taxExemption"`
ItemNumber string `json:"itemNumber"` ItemNumber string `json:"itemNumber"`
Texture string `json:"texture"` Texture string `json:"texture"`
EngTexture string `json:"engTexture"` EngTexture string `json:"engTexture"`
Remark1 string `json:"remark1"` Remark1 string `json:"remark1"`
Remark2 string `json:"remark2"` Remark2 string `json:"remark2"`
Remark3 string `json:"remark3"` Remark3 string `json:"remark3"`
Remark4 string `json:"remark4"` Remark4 string `json:"remark4"`
Remark5 string `json:"remark5"` Remark5 string `json:"remark5"`
Remark6 string `json:"remark6"` Remark6 string `json:"remark6"`
ExchangeSettlementRemark string `json:"exchangeSettlementRemark"` ExchangeSettlementRemark string `json:"exchangeSettlementRemark"`
RemarkImg string `json:"remarkImg"` RemarkImg string `json:"remarkImg"`
ContainerNumber string `json:"containerNumber"` ContainerNumber string `json:"containerNumber"`
SealNumber string `json:"sealNumber"` SealNumber string `json:"sealNumber"`
PurchasePrice decimal.Decimal `json:"purchasePrice"` PurchasePrice decimal.Decimal `json:"purchasePrice"`
PurchaseAmount decimal.Decimal `json:"purchaseAmount"` PurchaseAmount decimal.Decimal `json:"purchaseAmount"`
IsSerial int64 `json:"isSerial"` IsSerial int64 `json:"isSerial"`
IsCustoms int64 `json:"isCustoms"` IsCustoms int64 `json:"isCustoms"`
CreatedAt *time.Time `json:"createdAt"` CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"` UpdatedAt *time.Time `json:"updatedAt"`
Children []*SaleProductItem `json:"children"` Children []*SaleProductItem `json:"children"`
PurchaseProducts []PurchaseProductItem `json:"purchaseProducts"`
}
type PurchaseProductItem struct {
ShipmentPurchaseProductId int64 `json:"shipmentPurchaseProductId"`
ShipmentCount int64 `json:"shipmentCount"`
PurchaseProduct PurchaseProductInfo `json:"purchaseProduct"`
}
type PurchaseProductInfo struct {
Id int64 `json:"id"`
PurchaseId int64 `json:"purchaseId"`
PiSerial string `json:"piSerial"`
PoSerial string `json:"poSerial"`
BatchNo int64 `json:"batchNo"`
FactoryId int64 `json:"factoryId"`
FactoryName string `json:"factoryName"`
DeliveryDate *time.Time `json:"deliveryDate"`
DeliveryDateEnd *time.Time `json:"deliveryDateEnd"`
PurchaseCount int64 `json:"purchaseCount"`
PurchasePrice decimal.Decimal `json:"purchasePrice"`
ShipmentCount int64 `json:"shipmentCount"`
ShippedCount int64 `json:"shippedCount"`
AccountingCount int64 `json:"accountingCount"`
AccountedCount int64 `json:"accountedCount"`
} }
type ArgsSaleProductSearch struct { type ArgsSaleProductSearch struct {
ModifyId int64 // 订舱单修改id ModifyId int64 // 订舱单修改id
@ -110,53 +133,58 @@ type ArgsSaleProductAdd struct {
Products []SaleProductAdd // 产品信息 Products []SaleProductAdd // 产品信息
} }
type SaleProductAdd struct { type SaleProductAdd struct {
SaleProductId int64 // 销售商品id SaleProductId int64 // 销售商品id
CustomSerial string // 客户货号 CustomSerial string // 客户货号
PackageDescription string // 包装描述 PackageDescription string // 包装描述
PackageEngDescription string // 包装英文描述 PackageEngDescription string // 包装英文描述
Name string // 中文品名 Name string // 中文品名
EngName string // 英文品名 EngName string // 英文品名
CustomsSerial string // 海关编码 CustomsSerial string // 海关编码
CustomsName string // 中文报关名称 CustomsName string // 中文报关名称
CustomsMeasureUnit string // 报关单位 CustomsMeasureUnit string // 报关单位
CustomsInvoiceUnit string // 开票单位 CustomsInvoiceUnit string // 开票单位
CustomsDetail string // 申报要素 CustomsDetail string // 申报要素
BlEngName string // 提单英文名 BlEngName string // 提单英文名
InnerNum *int64 // 内盒入数 InnerNum *int64 // 内盒入数
BoxNumUnit string // 箱数单位 BoxNumUnit string // 箱数单位
OuterNum *int64 // 装箱单数 OuterNum *int64 // 装箱单数
ShipmentCount int64 // 出运数量 ShipmentCount int64 // 出运数量
ShipmentCountUnit string // 数量单位 ShipmentCountUnit string // 数量单位
Length *decimal.Decimal // 长 Length *decimal.Decimal // 长
Width *decimal.Decimal // 宽 Width *decimal.Decimal // 宽
Height *decimal.Decimal // 高 Height *decimal.Decimal // 高
NetWeight *decimal.Decimal // 净重 NetWeight *decimal.Decimal // 净重
GrossWeight *decimal.Decimal // 毛重 GrossWeight *decimal.Decimal // 毛重
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱 NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
CustomsVolume decimal.Decimal // 报关体积 CustomsVolume decimal.Decimal // 报关体积
TotalCustomsVolume decimal.Decimal // 报关总体积 TotalCustomsVolume decimal.Decimal // 报关总体积
CustomsNetWeight decimal.Decimal // 报关净重 CustomsNetWeight decimal.Decimal // 报关净重
TotalCustomsNetWeight decimal.Decimal // 报关总净重 TotalCustomsNetWeight decimal.Decimal // 报关总净重
CustomsGrossWeight decimal.Decimal // 报关毛重 CustomsGrossWeight decimal.Decimal // 报关毛重
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重 TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
CustomsBrand string // 品牌 CustomsBrand string // 品牌
DomesticSupply string // 货源地 DomesticSupply string // 货源地
FactoryName string // 工厂名称 FactoryName string // 工厂名称
HsSerial int64 // 是否商检 1=商检 2=未商检 HsSerial int64 // 是否商检 1=商检 2=未商检
Texture string // 材质 Texture string // 材质
EngTexture string // 英文材质 EngTexture string // 英文材质
EpmNo string // EPM NO EpmNo string // EPM NO
TaxExemption string // 免征税 TaxExemption string // 免征税
ItemNumber string // 项号 ItemNumber string // 项号
Remark1 string // 备注1 Remark1 string // 备注1
Remark2 string // 备注2 Remark2 string // 备注2
Remark3 string // 备注3 Remark3 string // 备注3
Remark4 string // 备注4 Remark4 string // 备注4
Remark5 string // 备注5 Remark5 string // 备注5
Remark6 string // 备注6 Remark6 string // 备注6
RemarkImg string // 图片备注 RemarkImg string // 图片备注
ContainerNumber string // 箱号 ContainerNumber string // 箱号
SealNumber string // 封号 SealNumber string // 封号
PurchaseProducts []PurchaseProduct // 采购商品
}
type PurchaseProduct struct {
PurchaseProductId int64 // 采购商品id
ShipmentCount int64 // 出运数量
} }
// Add @TITLE 添加 // Add @TITLE 添加
@ -174,60 +202,61 @@ type ArgsSaleProductEdit struct {
Products []SaleProductEdit Products []SaleProductEdit
} }
type SaleProductEdit struct { type SaleProductEdit struct {
ShipmentSaleProductId int64 // 出舱单商品id ShipmentSaleProductId int64 // 出舱单商品id
Sort int64 // 排序 Sort int64 // 排序
Po string // Po Po string // Po
CustomSerial string // 客户货号 CustomSerial string // 客户货号
PackageDescription string // 包装 PackageDescription string // 包装
PackageEngDescription string // 包装英文描述 PackageEngDescription string // 包装英文描述
PackageWeight decimal.Decimal // 包装重量 PackageWeight decimal.Decimal // 包装重量
Name string // 中文品名 Name string // 中文品名
EngName string // 英文品名 EngName string // 英文品名
CustomsSerial string // 海关编码 CustomsSerial string // 海关编码
CustomsName string // 中文报关名称 CustomsName string // 中文报关名称
CustomsMeasureUnit string // 报关单位 CustomsMeasureUnit string // 报关单位
CustomsInvoiceUnit string // 开票单位 CustomsInvoiceUnit string // 开票单位
CustomsDetail string // 申报要素 CustomsDetail string // 申报要素
BlEngName string // 提单英文名 BlEngName string // 提单英文名
InnerNum *int64 // 内盒入数 InnerNum *int64 // 内盒入数
BoxNumUnit string // 箱数单位 BoxNumUnit string // 箱数单位
OuterNum *int64 // 装箱单数 OuterNum *int64 // 装箱单数
ShipmentCount int64 // 出运数量 ShipmentCount int64 // 出运数量
ShipmentCountUnit string // 数量单位 ShipmentCountUnit string // 数量单位
Length *decimal.Decimal // 长 Length *decimal.Decimal // 长
Width *decimal.Decimal // 宽 Width *decimal.Decimal // 宽
Height *decimal.Decimal // 高 Height *decimal.Decimal // 高
NetWeight *decimal.Decimal // 净重 NetWeight *decimal.Decimal // 净重
GrossWeight *decimal.Decimal // 毛重 GrossWeight *decimal.Decimal // 毛重
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱 NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
CustomsVolume decimal.Decimal // 报关体积 CustomsVolume decimal.Decimal // 报关体积
TotalCustomsVolume decimal.Decimal // 报关总体积 TotalCustomsVolume decimal.Decimal // 报关总体积
CustomsNetWeight decimal.Decimal // 报关净重 CustomsNetWeight decimal.Decimal // 报关净重
TotalCustomsNetWeight decimal.Decimal // 报关总净重 TotalCustomsNetWeight decimal.Decimal // 报关总净重
CustomsGrossWeight decimal.Decimal // 报关毛重 CustomsGrossWeight decimal.Decimal // 报关毛重
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重 TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
SalePrice decimal.Decimal // 销售单价 SalePrice decimal.Decimal // 销售单价
CustomsPrice decimal.Decimal // 报关单价 CustomsPrice decimal.Decimal // 报关单价
CustomsAmount decimal.Decimal // 报关总价 CustomsAmount decimal.Decimal // 报关总价
CustomsBrand string // 品牌 CustomsBrand string // 品牌
DomesticSupply string // 货源地 DomesticSupply string // 货源地
FactoryName string // 工厂名称 FactoryName string // 工厂名称
HsSerial int64 // 是否商检 1=商检 2=未商检 HsSerial int64 // 是否商检 1=商检 2=未商检
Texture string // 材质 Texture string // 材质
EngTexture string // 英文材质 EngTexture string // 英文材质
EpmNo string // EPM NO EpmNo string // EPM NO
TaxExemption string // 免征税 TaxExemption string // 免征税
ItemNumber string // 项号 ItemNumber string // 项号
Remark1 string // 备注1 Remark1 string // 备注1
Remark2 string // 备注2 Remark2 string // 备注2
Remark3 string // 备注3 Remark3 string // 备注3
Remark4 string // 备注4 Remark4 string // 备注4
Remark5 string // 备注5 Remark5 string // 备注5
Remark6 string // 备注6 Remark6 string // 备注6
ExchangeSettlementRemark string // 结汇备注 ExchangeSettlementRemark string // 结汇备注
RemarkImg string // 图片备注 RemarkImg string // 图片备注
ContainerNumber string // 箱号 ContainerNumber string // 箱号
SealNumber string // 封号 SealNumber string // 封号
PurchaseProducts []PurchaseProduct // 采购商品
} }
// Edit @TITLE 编辑 // Edit @TITLE 编辑

View File

@ -2,91 +2,116 @@ package shipment
import ( import (
"context" "context"
"time"
"git.kumo.work/shama/service/client" "git.kumo.work/shama/service/client"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"time"
) )
type saleProduct struct { type saleProduct struct {
} }
type SaleProductItem struct { type SaleProductItem struct {
Id int64 `json:"id"` Id int64 `json:"id"`
Mold int64 `json:"mold"` Mold int64 `json:"mold"`
ParentSaleProductId int64 `json:"parentSaleProductId"` ParentSaleProductId int64 `json:"parentSaleProductId"`
SaleProductId int64 `json:"saleProductId"` SaleProductId int64 `json:"saleProductId"`
PiSerial string `json:"piSerial"` PiSerial string `json:"piSerial"`
Sort int64 `json:"sort"` Sort int64 `json:"sort"`
Po string `json:"po"` Po string `json:"po"`
Serial string `json:"serial"` Serial string `json:"serial"`
ImgFilePaths []string `json:"imgFilePaths"` ImgFilePaths []string `json:"imgFilePaths"`
CustomSerial string `json:"customSerial"` CustomSerial string `json:"customSerial"`
PackageDescription string `json:"packageDescription"` PackageDescription string `json:"packageDescription"`
PackageEngDescription string `json:"packageEngDescription"` PackageEngDescription string `json:"packageEngDescription"`
PackageWeight decimal.Decimal `json:"packageWeight"` PackageWeight decimal.Decimal `json:"packageWeight"`
EngName string `json:"engName"` EngName string `json:"engName"`
Name string `json:"name"` Name string `json:"name"`
CustomsName string `json:"customsName"` CustomsName string `json:"customsName"`
CustomsSerial string `json:"customsSerial"` CustomsSerial string `json:"customsSerial"`
CustomsMeasureUnit string `json:"customsMeasureUnit"` CustomsMeasureUnit string `json:"customsMeasureUnit"`
CustomsInvoiceUnit string `json:"customsInvoiceUnit"` CustomsInvoiceUnit string `json:"customsInvoiceUnit"`
CustomsDetail string `json:"customsDetail"` CustomsDetail string `json:"customsDetail"`
BlEngName string `json:"blEngName"` BlEngName string `json:"blEngName"`
BoxCount int64 `json:"boxCount"` BoxCount int64 `json:"boxCount"`
InnerNum int64 `json:"innerNum"` InnerNum int64 `json:"innerNum"`
InnerBoxCount *int64 `json:"innerBoxCount"` InnerBoxCount *int64 `json:"innerBoxCount"`
BoxNumUnit string `json:"boxNumUnit"` BoxNumUnit string `json:"boxNumUnit"`
OuterNum int64 `json:"outerNum"` OuterNum int64 `json:"outerNum"`
ShipmentCount int64 `json:"shipmentCount"` ShipmentCount int64 `json:"shipmentCount"`
ShipmentCountUnit string `json:"shipmentCountUnit"` ShipmentCountUnit string `json:"shipmentCountUnit"`
Length decimal.Decimal `json:"length"` Length decimal.Decimal `json:"length"`
Width decimal.Decimal `json:"width"` Width decimal.Decimal `json:"width"`
Height decimal.Decimal `json:"height"` Height decimal.Decimal `json:"height"`
Volume decimal.Decimal `json:"volume"` Volume decimal.Decimal `json:"volume"`
TotalVolume decimal.Decimal `json:"totalVolume"` TotalVolume decimal.Decimal `json:"totalVolume"`
NetGrossVolume int64 `json:"netGrossVolume"` NetGrossVolume int64 `json:"netGrossVolume"`
GrossWeight decimal.Decimal `json:"grossWeight"` GrossWeight decimal.Decimal `json:"grossWeight"`
TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"` TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"`
NetWeight decimal.Decimal `json:"netWeight"` NetWeight decimal.Decimal `json:"netWeight"`
TotalNetWeight decimal.Decimal `json:"totalNetWeight"` TotalNetWeight decimal.Decimal `json:"totalNetWeight"`
CustomsVolume decimal.Decimal `json:"customsVolume"` CustomsVolume decimal.Decimal `json:"customsVolume"`
TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"` TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"`
CustomsNetWeight decimal.Decimal `json:"customsNetWeight"` CustomsNetWeight decimal.Decimal `json:"customsNetWeight"`
TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"` TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"`
CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"` CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"`
TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"` TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"`
SalePrice decimal.Decimal `json:"salePrice"` SalePrice decimal.Decimal `json:"salePrice"`
SaleAmount decimal.Decimal `json:"saleAmount"` SaleAmount decimal.Decimal `json:"saleAmount"`
CustomsPrice decimal.Decimal `json:"customsPrice"` CustomsPrice decimal.Decimal `json:"customsPrice"`
CustomsAmount decimal.Decimal `json:"customsAmount"` CustomsAmount decimal.Decimal `json:"customsAmount"`
FactoryName string `json:"factoryName"` FactoryName string `json:"factoryName"`
CurrencyRate decimal.Decimal `json:"currencyRate"` CurrencyRate decimal.Decimal `json:"currencyRate"`
Brand string `json:"brand"` Brand string `json:"brand"`
DomesticSupply string `json:"domesticSupply"` DomesticSupply string `json:"domesticSupply"`
EpmNo string `json:"epmNo"` EpmNo string `json:"epmNo"`
HsSerial int64 `json:"hsSerial"` HsSerial int64 `json:"hsSerial"`
TaxExemption string `json:"taxExemption"` TaxExemption string `json:"taxExemption"`
ItemNumber string `json:"itemNumber"` ItemNumber string `json:"itemNumber"`
Texture string `json:"texture"` Texture string `json:"texture"`
EngTexture string `json:"engTexture"` EngTexture string `json:"engTexture"`
Remark1 string `json:"remark1"` Remark1 string `json:"remark1"`
Remark2 string `json:"remark2"` Remark2 string `json:"remark2"`
Remark3 string `json:"remark3"` Remark3 string `json:"remark3"`
Remark4 string `json:"remark4"` Remark4 string `json:"remark4"`
Remark5 string `json:"remark5"` Remark5 string `json:"remark5"`
Remark6 string `json:"remark6"` Remark6 string `json:"remark6"`
ExchangeSettlementRemark string `json:"exchangeSettlementRemark"` ExchangeSettlementRemark string `json:"exchangeSettlementRemark"`
RemarkImg string `json:"remarkImg"` RemarkImg string `json:"remarkImg"`
ContainerNumber string `json:"containerNumber"` ContainerNumber string `json:"containerNumber"`
SealNumber string `json:"sealNumber"` SealNumber string `json:"sealNumber"`
PurchasePrice decimal.Decimal `json:"purchasePrice"` PurchasePrice decimal.Decimal `json:"purchasePrice"`
PurchaseAmount decimal.Decimal `json:"purchaseAmount"` PurchaseAmount decimal.Decimal `json:"purchaseAmount"`
IsSerial int64 `json:"isSerial"` IsSerial int64 `json:"isSerial"`
IsCustoms int64 `json:"isCustoms"` IsCustoms int64 `json:"isCustoms"`
IsExchangeSettlement int64 `json:"isExchangeSettlement"` IsExchangeSettlement int64 `json:"isExchangeSettlement"`
CreatedAt *time.Time `json:"createdAt"` CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"` UpdatedAt *time.Time `json:"updatedAt"`
Children []*SaleProductItem `json:"children"` Children []*SaleProductItem `json:"children"`
PurchaseProducts []PurchaseProductItem `json:"purchaseProducts"`
}
type PurchaseProductItem struct {
ShipmentPurchaseProductId int64 `json:"shipmentPurchaseProductId"`
ShipmentCount int64 `json:"shipmentCount"`
PurchaseProduct PurchaseProductInfo `json:"purchaseProduct"`
}
type PurchaseProductInfo struct {
Id int64 `json:"id"`
PurchaseId int64 `json:"purchaseId"`
PiSerial string `json:"piSerial"`
PoSerial string `json:"poSerial"`
BatchNo int64 `json:"batchNo"`
FactoryId int64 `json:"factoryId"`
FactoryName string `json:"factoryName"`
DeliveryDate *time.Time `json:"deliveryDate"`
DeliveryDateEnd *time.Time `json:"deliveryDateEnd"`
PurchaseCount int64 `json:"purchaseCount"`
PurchasePrice decimal.Decimal `json:"purchasePrice"`
ShipmentCount int64 `json:"shipmentCount"`
ShippedCount int64 `json:"shippedCount"`
AccountingCount int64 `json:"accountingCount"`
AccountedCount int64 `json:"accountedCount"`
} }
type ArgsSaleProductSearch struct { type ArgsSaleProductSearch struct {
ShipmentId int64 // 出舱单 ShipmentId int64 // 出舱单
@ -110,54 +135,59 @@ type ArgsSaleProductAdd struct {
Products []SaleProductAdd // 产品信息 Products []SaleProductAdd // 产品信息
} }
type SaleProductAdd struct { type SaleProductAdd struct {
SaleProductId int64 // 销售商品id SaleProductId int64 // 销售商品id
CustomSerial string // 客户货号 CustomSerial string // 客户货号
Po string // po Po string // po
PackageDescription string // 包装描述 PackageDescription string // 包装描述
PackageEngDescription string // 包装英文描述 PackageEngDescription string // 包装英文描述
Name string // 中文品名 Name string // 中文品名
EngName string // 英文品名 EngName string // 英文品名
CustomsSerial string // 海关编码 CustomsSerial string // 海关编码
CustomsName string // 中文报关名称 CustomsName string // 中文报关名称
CustomsMeasureUnit string // 报关单位 CustomsMeasureUnit string // 报关单位
CustomsInvoiceUnit string // 开票单位 CustomsInvoiceUnit string // 开票单位
CustomsDetail string // 申报要素 CustomsDetail string // 申报要素
BlEngName string // 提单英文名 BlEngName string // 提单英文名
InnerNum *int64 // 内盒入数 InnerNum *int64 // 内盒入数
BoxNumUnit string // 箱数单位 BoxNumUnit string // 箱数单位
OuterNum *int64 // 装箱单数 OuterNum *int64 // 装箱单数
ShipmentCount int64 // 出运数量 ShipmentCount int64 // 出运数量
ShipmentCountUnit string // 数量单位 ShipmentCountUnit string // 数量单位
Length *decimal.Decimal // 长 Length *decimal.Decimal // 长
Width *decimal.Decimal // 宽 Width *decimal.Decimal // 宽
Height *decimal.Decimal // 高 Height *decimal.Decimal // 高
NetWeight *decimal.Decimal // 净重 NetWeight *decimal.Decimal // 净重
GrossWeight *decimal.Decimal // 毛重 GrossWeight *decimal.Decimal // 毛重
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱 NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
CustomsVolume decimal.Decimal // 报关体积 CustomsVolume decimal.Decimal // 报关体积
TotalCustomsVolume decimal.Decimal // 报关总体积 TotalCustomsVolume decimal.Decimal // 报关总体积
CustomsNetWeight decimal.Decimal // 报关净重 CustomsNetWeight decimal.Decimal // 报关净重
TotalCustomsNetWeight decimal.Decimal // 报关总净重 TotalCustomsNetWeight decimal.Decimal // 报关总净重
CustomsGrossWeight decimal.Decimal // 报关毛重 CustomsGrossWeight decimal.Decimal // 报关毛重
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重 TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
CustomsBrand string // 品牌 CustomsBrand string // 品牌
DomesticSupply string // 货源地 DomesticSupply string // 货源地
FactoryName string // 工厂名称 FactoryName string // 工厂名称
HsSerial int64 // 是否商检 1=商检 2=未商检 HsSerial int64 // 是否商检 1=商检 2=未商检
Texture string // 材质 Texture string // 材质
EngTexture string // 英文材质 EngTexture string // 英文材质
EpmNo string // EPM NO EpmNo string // EPM NO
TaxExemption string // 免征税 TaxExemption string // 免征税
ItemNumber string // 项号 ItemNumber string // 项号
Remark1 string // 备注1 Remark1 string // 备注1
Remark2 string // 备注2 Remark2 string // 备注2
Remark3 string // 备注3 Remark3 string // 备注3
Remark4 string // 备注4 Remark4 string // 备注4
Remark5 string // 备注5 Remark5 string // 备注5
Remark6 string // 备注6 Remark6 string // 备注6
RemarkImg string // 图片备注 RemarkImg string // 图片备注
ContainerNumber string // 箱号 ContainerNumber string // 箱号
SealNumber string // 封号 SealNumber string // 封号
PurchaseProducts []PurchaseProduct // 采购商品
}
type PurchaseProduct struct {
PurchaseProductId int64 // 采购商品id
ShipmentCount int64 // 出运数量
} }
// Add @TITLE 添加 // Add @TITLE 添加
@ -175,60 +205,61 @@ type ArgsSaleProductEdit struct {
Products []SaleProductEdit Products []SaleProductEdit
} }
type SaleProductEdit struct { type SaleProductEdit struct {
ShipmentSaleProductId int64 // 出舱单商品id ShipmentSaleProductId int64 // 出舱单商品id
Sort int64 // 排序 Sort int64 // 排序
Po string // Po Po string // Po
CustomSerial string // 客户货号 CustomSerial string // 客户货号
PackageDescription string // 包装 PackageDescription string // 包装
PackageEngDescription string // 包装英文描述 PackageEngDescription string // 包装英文描述
PackageWeight decimal.Decimal // 包装重量 PackageWeight decimal.Decimal // 包装重量
Name string // 中文品名 Name string // 中文品名
EngName string // 英文品名 EngName string // 英文品名
CustomsSerial string // 海关编码 CustomsSerial string // 海关编码
CustomsName string // 中文报关名称 CustomsName string // 中文报关名称
CustomsMeasureUnit string // 报关单位 CustomsMeasureUnit string // 报关单位
CustomsInvoiceUnit string // 开票单位 CustomsInvoiceUnit string // 开票单位
CustomsDetail string // 申报要素 CustomsDetail string // 申报要素
BlEngName string // 提单英文名 BlEngName string // 提单英文名
InnerNum *int64 // 内盒入数 InnerNum *int64 // 内盒入数
BoxNumUnit string // 箱数单位 BoxNumUnit string // 箱数单位
OuterNum *int64 // 装箱单数 OuterNum *int64 // 装箱单数
ShipmentCount int64 // 出运数量 ShipmentCount int64 // 出运数量
ShipmentCountUnit string // 数量单位 ShipmentCountUnit string // 数量单位
Length *decimal.Decimal // 长 Length *decimal.Decimal // 长
Width *decimal.Decimal // 宽 Width *decimal.Decimal // 宽
Height *decimal.Decimal // 高 Height *decimal.Decimal // 高
NetWeight *decimal.Decimal // 净重 NetWeight *decimal.Decimal // 净重
GrossWeight *decimal.Decimal // 毛重 GrossWeight *decimal.Decimal // 毛重
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱 NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
CustomsVolume decimal.Decimal // 报关体积 CustomsVolume decimal.Decimal // 报关体积
TotalCustomsVolume decimal.Decimal // 报关总体积 TotalCustomsVolume decimal.Decimal // 报关总体积
CustomsNetWeight decimal.Decimal // 报关净重 CustomsNetWeight decimal.Decimal // 报关净重
TotalCustomsNetWeight decimal.Decimal // 报关总净重 TotalCustomsNetWeight decimal.Decimal // 报关总净重
CustomsGrossWeight decimal.Decimal // 报关毛重 CustomsGrossWeight decimal.Decimal // 报关毛重
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重 TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
SalePrice decimal.Decimal // 销售单价 SalePrice decimal.Decimal // 销售单价
CustomsBrand string // 品牌 CustomsBrand string // 品牌
CustomsPrice decimal.Decimal // 报关价格 CustomsPrice decimal.Decimal // 报关价格
CustomsAmount decimal.Decimal // 报关总价 CustomsAmount decimal.Decimal // 报关总价
DomesticSupply string // 货源地 DomesticSupply string // 货源地
FactoryName string // 工厂名称 FactoryName string // 工厂名称
HsSerial int64 // 是否商检 1=商检 2=未商检 HsSerial int64 // 是否商检 1=商检 2=未商检
Texture string // 材质 Texture string // 材质
EngTexture string // 英文材质 EngTexture string // 英文材质
EpmNo string // EPM NO EpmNo string // EPM NO
TaxExemption string // 免征税 TaxExemption string // 免征税
ItemNumber string // 项号 ItemNumber string // 项号
Remark1 string // 备注1 Remark1 string // 备注1
Remark2 string // 备注2 Remark2 string // 备注2
Remark3 string // 备注3 Remark3 string // 备注3
Remark4 string // 备注4 Remark4 string // 备注4
Remark5 string // 备注5 Remark5 string // 备注5
Remark6 string // 备注6 Remark6 string // 备注6
ExchangeSettlementRemark string // 结汇备注 ExchangeSettlementRemark string // 结汇备注
RemarkImg string // 图片备注 RemarkImg string // 图片备注
ContainerNumber string // 箱号 ContainerNumber string // 箱号
SealNumber string // 封号 SealNumber string // 封号
PurchaseProducts []PurchaseProduct // 采购商品
} }
// Edit @TITLE 编辑 // Edit @TITLE 编辑