- 在 ShipmentSearch 结构体中添加 EstSailingDateStart 和 EstSailingDateEnd 字段 - 用于筛选预计船期在指定范围内的出舱记录
		
			
				
	
	
		
			264 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			264 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package erp
 | ||
| 
 | ||
| import (
 | ||
| 	"context"
 | ||
| 	"git.kumo.work/shama/service/client"
 | ||
| 	bean2 "git.kumo.work/shama/service/erp/bean"
 | ||
| 	shipment2 "git.kumo.work/shama/service/erp/shipment"
 | ||
| 	"git.kumo.work/shama/service/lib/bean"
 | ||
| 	"github.com/shopspring/decimal"
 | ||
| 	"time"
 | ||
| )
 | ||
| 
 | ||
| type shipment struct {
 | ||
| 	shipment2.Shipment
 | ||
| }
 | ||
| type ArgsShipmentList struct {
 | ||
| 	Page   bean.Page
 | ||
| 	Search ShipmentSearch
 | ||
| }
 | ||
| type ShipmentSearch struct {
 | ||
| 	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 // 合同日期
 | ||
| 	EstSailingDateStart *time.Time // 预计船期
 | ||
| 	EstSailingDateEnd   *time.Time // 预计船期
 | ||
| 	BanFlag             int64      // 是否有效
 | ||
| 	ShipmentNo          string     // shipmentNo
 | ||
| }
 | ||
| type ReplyShipmentList struct {
 | ||
| 	List  []ShipmentItem `json:"list"`
 | ||
| 	Total int64          `json:"total"`
 | ||
| }
 | ||
| type ShipmentItem struct {
 | ||
| 	Id               int64      `json:"id"`
 | ||
| 	PiSerials        string     `json:"piSerials"`
 | ||
| 	InvoiceSerial    string     `json:"invoiceSerial"`
 | ||
| 	ContractDate     *time.Time `json:"contractDate"`
 | ||
| 	InvoiceDate      *time.Time `json:"invoiceDate"`
 | ||
| 	CustomName       string     `json:"customName"`
 | ||
| 	CustomShortName  string     `json:"customShortName"`
 | ||
| 	EstSailingDate   *time.Time `json:"estSailingDate"`
 | ||
| 	ShipPort         string     `json:"shipPort"`
 | ||
| 	DischargePort    string     `json:"dischargePort"`
 | ||
| 	DischargePortEng string     `json:"dischargePortEng"`
 | ||
| 	WorkflowStatus   int64      `json:"workflowStatus"`
 | ||
| 	CreatedStaffId   int64      `json:"createdStaffId"`
 | ||
| 	CreatedAt        *time.Time `json:"createdAt"`
 | ||
| 	UpdatedAt        *time.Time `json:"updatedAt"`
 | ||
| }
 | ||
| 
 | ||
| // List @TITLE 列表
 | ||
| func (s *shipment) List(ctx context.Context, args ArgsShipmentList) (reply ReplyShipmentList, err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "List", args, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ArgsShipmentAdd struct {
 | ||
| 	StaffId     int64 // 员工id
 | ||
| 	ShipmentAdd ShipmentAdd
 | ||
| }
 | ||
| type ShipmentAdd struct {
 | ||
| 	CustomId                     int64            // 客户id
 | ||
| 	VouchingClerkId              int64            // 单证id
 | ||
| 	EstSailingDate               *time.Time       // 预计船期
 | ||
| 	InvoiceSerial                string           // 发票号
 | ||
| 	InvoiceDate                  *time.Time       // 发票日期
 | ||
| 	ContractDate                 *time.Time       // 合同日期
 | ||
| 	TradeType                    string           // 贸易类型
 | ||
| 	OurCompany                   string           // 我方公司
 | ||
| 	PaymentType                  string           // 付款方式
 | ||
| 	PaymentDepositRate           *decimal.Decimal // 付款定金比例
 | ||
| 	PaymentDepositAmount         *decimal.Decimal // 定价金额
 | ||
| 	PaymentCycle                 *int64           // 付款周期
 | ||
| 	PaymentTerms                 string           // 条款
 | ||
| 	CommissionRate               *decimal.Decimal // 佣金比例
 | ||
| 	TradeCountry                 string           // 贸易国别
 | ||
| 	RecBank                      string           // 收汇银行
 | ||
| 	RecBankEng                   string           // 收汇银行英文
 | ||
| 	RecBankName                  string           // 收汇银行名称
 | ||
| 	RecBankNameEng               string           // 收汇银行名称英文
 | ||
| 	RecBankCardNo                string           // 收汇银行卡号
 | ||
| 	RecBankCardName              string           // 收汇银行户名
 | ||
| 	RecBankAddress               string           // 收汇银行地址
 | ||
| 	Shipper                      string           // 托运人
 | ||
| 	Consignee                    string           // 收货人
 | ||
| 	Notifier                     string           // 通知人
 | ||
| 	ShipMode                     string           // 运输方式
 | ||
| 	ContainerType                string           // 货柜类型
 | ||
| 	ReadyDate                    *time.Time       // 货好时间
 | ||
| 	ShipPort                     string           // 出运口岸
 | ||
| 	DischargePort                string           // 卸货港
 | ||
| 	DischargePortEng             string           // 卸货港英文
 | ||
| 	DeliveryCountry              string           // 运抵国
 | ||
| 	DeliveryCountryEng           string           // 运抵国英文
 | ||
| 	Destination                  string           // 目的地
 | ||
| 	FactoryHaulAdress            string           // 工厂拖柜地址
 | ||
| 	LogisticsCompanyId           int64            // 物流公司id
 | ||
| 	LogisticsCompany             string           // 物流公司
 | ||
| 	LogisticsCompanyContactName  string           // 物流公司联系人
 | ||
| 	LogisticsCompanyContactPhone string           // 物流公司手机号
 | ||
| 	LogisticsCompanyContactTel   string           // 物流公司固定电话
 | ||
| 	LogisticsCompanyContactEmail string           // 物流公司邮箱
 | ||
| 	SeparableFlag                int64            // 可分批标记(1=可分 2=不可分)
 | ||
| 	CopyCount                    *int64           // 提单份数
 | ||
| 	InsuranceRatio               *int64           // 保险比率
 | ||
| 	CreditSerial                 string           // 信用证号
 | ||
| 	CreditDate                   *time.Time       // 开证日期
 | ||
| 	InlandShipWay                string           // 内陆运输
 | ||
| 	PackagingType                string           // 包装种类
 | ||
| 	ShipmentNo                   string           // shipmentNO
 | ||
| 	CnoSno                       string           // CONTAINER NO./SEAL NO.
 | ||
| 	Declare1                     string           // 声明1
 | ||
| 	Declare2                     string           // 声明2
 | ||
| 	Info                         string           // 备注
 | ||
| 	RegulatoryMethods            string           // 监管方式
 | ||
| 	TaxExemptionNature           string           // 征免性质
 | ||
| 	MarkText                     string           // 唛头文字
 | ||
| 	MarkImg                      string           // 唛头图片
 | ||
| 	SaleIds                      []int64          // 销售合同
 | ||
| }
 | ||
| 
 | ||
| // Add @TITLE 添加
 | ||
| func (s *shipment) Add(ctx context.Context, args ArgsShipmentAdd) (shipmentId int64, err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Add", args, &shipmentId)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| // Info @TITLE 详情
 | ||
| func (s *shipment) Info(ctx context.Context, shipmentId int64) (reply shipment2.ReplyShipmentInfo, err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Info", shipmentId, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ArgsShipmentEdit struct {
 | ||
| 	ShipmentId int64 // 订舱单id
 | ||
| 	ArgsShipmentData
 | ||
| }
 | ||
| type ArgsShipmentData struct {
 | ||
| 	EstSailingDate               *time.Time      // 预计发运日期
 | ||
| 	InvoiceSerial                string          // 发票编号
 | ||
| 	InvoiceDate                  *time.Time      // 发票日期
 | ||
| 	ContractDate                 *time.Time      // 合同日期
 | ||
| 	TradeType                    string          // 贸易类型
 | ||
| 	OurCompany                   string          // 我方公司
 | ||
| 	RecBank                      string          // 收款银行
 | ||
| 	RecBankEng                   string          // 收款银行英文
 | ||
| 	RecBankName                  string          // 收款银行名称
 | ||
| 	RecBankNameEng               string          // 收款银行名称英文
 | ||
| 	RecBankCardNo                string          // 收款银行卡号
 | ||
| 	RecBankCardName              string          // 收款银行卡名
 | ||
| 	RecBankAddress               string          // 收汇银行地址
 | ||
| 	PaymentTerms                 string          // 付款条件
 | ||
| 	TradeCountry                 string          // 贸易国
 | ||
| 	PaymentType                  string          // 付款方式
 | ||
| 	PaymentDepositRate           decimal.Decimal // 定金比例
 | ||
| 	PaymentCycle                 int64           // 付款周期
 | ||
| 	CommissionRate               decimal.Decimal // 佣金比例
 | ||
| 	DueRecDate                   *time.Time      // 预计收汇日期日期
 | ||
| 	Shipper                      string          // 发货方
 | ||
| 	Consignee                    string          // 收货方
 | ||
| 	Notifier                     string          // 通知方
 | ||
| 	ShipMode                     string          // 运输方式
 | ||
| 	ContainerType                string          // 柜型
 | ||
| 	ReadyDate                    *time.Time      // 预计发运日期
 | ||
| 	ShipPort                     string          // 港口
 | ||
| 	DischargePort                string          // 卸货港口
 | ||
| 	DischargePortEng             string          // 卸货港口英文
 | ||
| 	DeliveryCountry              string          // 运抵国
 | ||
| 	DeliveryCountryEng           string          // 运抵国英文
 | ||
| 	Destination                  string          // 目的地
 | ||
| 	FactoryHaulAdress            string          // 工厂拖柜地址
 | ||
| 	SeparableFlag                int64           // 可分批标记(1=可分 2=不可分)
 | ||
| 	LogisticsCompanyId           int64           // 物流公司id
 | ||
| 	LogisticsCompany             string          // 物流公司
 | ||
| 	LogisticsCompanyContactName  string          // 物流公司联系人
 | ||
| 	LogisticsCompanyContactPhone string          // 物流公司联系人电话
 | ||
| 	LogisticsCompanyContactTel   string          // 物流公司联系人固定电话
 | ||
| 	LogisticsCompanyContactEmail string          // 物流公司联系人邮箱
 | ||
| 	CopyCount                    int64           // 提单份数
 | ||
| 	InsuranceRatio               int64           // 保险比率
 | ||
| 	CreditSerial                 string          // 信用证号
 | ||
| 	CreditDate                   *time.Time      // 开证日期
 | ||
| 	InlandShipWay                string          // 内陆运输
 | ||
| 	PackagingType                string          // 包装种类
 | ||
| 	ShipmentNo                   string          // shipmentNO
 | ||
| 	CnoSno                       string          // CONTAINER NO./SEAL NO.
 | ||
| 	Declare1                     string          // 声明1
 | ||
| 	Declare2                     string          // 声明2
 | ||
| 	Info                         string          // 备注
 | ||
| 	RegulatoryMethods            string          // 监管方式
 | ||
| 	TaxExemptionNature           string          // 征免性质
 | ||
| 	MarkText                     string          // 唛头文字
 | ||
| 	MarkImg                      string          // 唛头图片
 | ||
| 	VouchingClerkId              int64           // 单证id
 | ||
| }
 | ||
| 
 | ||
| // Edit @TITLE 编辑
 | ||
| func (s *shipment) Edit(ctx context.Context, args ArgsShipmentEdit) (err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	reply := 0
 | ||
| 	err = xClient.Call(ctx, "Edit", args, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| // Customs @TITLE 报关信息
 | ||
| func (s *shipment) Customs(ctx context.Context, shipmentId int64) (reply bean2.ReplyCustoms, err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Customs", shipmentId, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| // Cancel @TITLE 作废
 | ||
| func (s *shipment) Cancel(ctx context.Context, shipmentId int64) (err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	reply := 0
 | ||
| 	err = xClient.Call(ctx, "Cancel", shipmentId, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ArgsShipmentClone struct {
 | ||
| 	StaffId       int64  // 员工id
 | ||
| 	ShipmentId    int64  // shipmentId
 | ||
| 	InvoiceSerial string // 出运发票号
 | ||
| }
 | ||
| 
 | ||
| // Clone @TITLE 克隆
 | ||
| func (s *shipment) Clone(ctx context.Context, args ArgsShipmentClone) (reply int64, err error) {
 | ||
| 	xClient, err := client.GetClient(s)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Clone", args, &reply)
 | ||
| 	return
 | ||
| }
 |