263 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			263 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package shipment
 | ||
| 
 | ||
| import (
 | ||
| 	"context"
 | ||
| 	"git.kumo.work/shama/service/client"
 | ||
| 	bean2 "git.kumo.work/shama/service/erp/bean"
 | ||
| 	modify2 "git.kumo.work/shama/service/erp/shipment/modify"
 | ||
| 	"git.kumo.work/shama/service/lib/bean"
 | ||
| 	"github.com/shopspring/decimal"
 | ||
| 	"time"
 | ||
| )
 | ||
| 
 | ||
| type modify struct {
 | ||
| 	Modify modify2.Modify
 | ||
| }
 | ||
| 
 | ||
| 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
 | ||
| 	ModifyIds         []int64    // 订舱修改单id
 | ||
| 	InvoiceDateStart  *time.Time // 发票日期
 | ||
| 	InvoiceDateEnd    *time.Time // 发票日期
 | ||
| 	ContractDateStart *time.Time // 合同日期
 | ||
| 	ContractDateEnd   *time.Time // 合同日期
 | ||
| 	BanFlag           int64      // 是否有效
 | ||
| 	ShipmentId        int64      // 出运id
 | ||
| }
 | ||
| type ReplyShipmentList struct {
 | ||
| 	List  []ShipmentItem `json:"list"`
 | ||
| 	Total int64          `json:"total"`
 | ||
| }
 | ||
| type ShipmentItem struct {
 | ||
| 	Id               int64      `json:"id"`
 | ||
| 	ShipmentId       int64      `json:"shipmentId"`
 | ||
| 	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 (m *modify) List(ctx context.Context, args ArgsShipmentList) (reply ReplyShipmentList, err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "List", args, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ArgsShipmentAdd struct {
 | ||
| 	ShipmentId int64 // 订舱id
 | ||
| }
 | ||
| 
 | ||
| // Add @TITLE 添加
 | ||
| func (m *modify) Add(ctx context.Context, args ArgsShipmentAdd) (modifyId int64, err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Add", args, &modifyId)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ReplyModifyInfo struct {
 | ||
| 	Id                           int64            `json:"id"`
 | ||
| 	ShipmentId                   int64            `json:"shipmentId"`
 | ||
| 	VouchingClerkId              int64            `json:"vouchingClerkId"`
 | ||
| 	CustomId                     int64            `json:"customId"`
 | ||
| 	CustomName                   string           `json:"customName"`
 | ||
| 	CustomShortName              string           `json:"customShortName"`
 | ||
| 	EstSailingDate               *time.Time       `json:"estSailingDate"`
 | ||
| 	InvoiceSerial                string           `json:"invoiceSerial"`
 | ||
| 	InvoiceDate                  *time.Time       `json:"invoiceDate"`
 | ||
| 	ContractDate                 *time.Time       `json:"contractDate"`
 | ||
| 	TradeType                    string           `json:"tradeType"`
 | ||
| 	OurCompany                   string           `json:"ourCompany"`
 | ||
| 	PaymentType                  string           `json:"paymentType"`
 | ||
| 	PaymentDepositRate           *decimal.Decimal `json:"paymentDepositRate"`
 | ||
| 	PaymentDepositAmount         *decimal.Decimal `json:"paymentDepositAmount"`
 | ||
| 	PaymentCycle                 *int64           `json:"paymentCycle"`
 | ||
| 	PaymentTerms                 string           `json:"paymentTerms"`
 | ||
| 	CommissionRate               *decimal.Decimal `json:"commissionRate"`
 | ||
| 	TradeCountry                 string           `json:"tradeCountry"`
 | ||
| 	RecBank                      string           `json:"recBank"`
 | ||
| 	RecBankEng                   string           `json:"recBankEng"`
 | ||
| 	RecBankName                  string           `json:"recBankName"`
 | ||
| 	RecBankNameEng               string           `json:"recBankNameEng"`
 | ||
| 	RecBankCardNo                string           `json:"recBankCardNo"`
 | ||
| 	RecBankCardName              string           `json:"recBankCardName"`
 | ||
| 	RecBankAddress               string           `json:"recBankAddress"`
 | ||
| 	Shipper                      string           `json:"shipper"`
 | ||
| 	Consignee                    string           `json:"consignee"`
 | ||
| 	Notifier                     string           `json:"notifier"`
 | ||
| 	DueRecDate                   *time.Time       `json:"dueRecDate"`
 | ||
| 	ShipMode                     string           `json:"shipMode"`
 | ||
| 	ContainerType                string           `json:"containerType"`
 | ||
| 	ReadyDate                    *time.Time       `json:"readyDate"`
 | ||
| 	ShipPort                     string           `json:"shipPort"`
 | ||
| 	DischargePort                string           `json:"dischargePort"`
 | ||
| 	DischargePortEng             string           `json:"dischargePortEng"`
 | ||
| 	DeliveryCountry              string           `json:"deliveryCountry"`
 | ||
| 	DeliveryCountryEng           string           `json:"deliveryCountryEng"`
 | ||
| 	Destination                  string           `json:"destination"`
 | ||
| 	FactoryHaulAdress            string           `json:"factoryHaulAdress"`
 | ||
| 	LogisticsCompanyId           int64            `json:"logisticsCompanyId"`
 | ||
| 	LogisticsCompany             string           `json:"logisticsCompany"`
 | ||
| 	LogisticsCompanyContactName  string           `json:"logisticsCompanyContactName"`
 | ||
| 	LogisticsCompanyContactPhone string           `json:"logisticsCompanyContactPhone"`
 | ||
| 	LogisticsCompanyContactTel   string           `json:"logisticsCompanyContactTel"`
 | ||
| 	LogisticsCompanyContactEmail string           `json:"logisticsCompanyContactEmail"`
 | ||
| 	SeparableFlag                int64            `json:"separableFlag"`
 | ||
| 	CopyCount                    *int64           `json:"copyCount"`
 | ||
| 	InsuranceRatio               *int64           `json:"insuranceRatio"`
 | ||
| 	CreditSerial                 string           `json:"creditSerial"`
 | ||
| 	CreditDate                   *time.Time       `json:"creditDate"`
 | ||
| 	InlandShipWay                string           `json:"inlandShipWay"`
 | ||
| 	PackagingType                string           `json:"packagingType"`
 | ||
| 	ShipmentNo                   string           `json:"shipmentNo"`
 | ||
| 	CnoSno                       string           `json:"cnoSno"`
 | ||
| 	Declare1                     string           `json:"declare1"`
 | ||
| 	Declare2                     string           `json:"declare2"`
 | ||
| 	Info                         string           `json:"info"`
 | ||
| 	RegulatoryMethods            string           `json:"regulatoryMethods"`
 | ||
| 	TaxExemptionNature           string           `json:"taxExemptionNature"`
 | ||
| 	MarkText                     string           `json:"markText"`
 | ||
| 	MarkImg                      string           `json:"markImg"`
 | ||
| 	WorkflowId                   int64            `json:"workflowId"`
 | ||
| 	WorkflowStatus               int64            `json:"workflowStatus"`
 | ||
| 	WorkflowReason               string           `json:"workflowReason"`
 | ||
| 	CreatedStaffId               int64            `json:"createdStaffId"`
 | ||
| 	CreatedAt                    *time.Time       `json:"createdAt"`
 | ||
| 	SaleCurrency                 string           `json:"saleCurrency"`
 | ||
| 	SaleCurrencyName             string           `json:"saleCurrencyName"`
 | ||
| 	SaleCurrencySymbol           string           `json:"saleCurrencySymbol"`
 | ||
| 	SaleCurrencyRate             decimal.Decimal  `json:"saleCurrencyRate"`
 | ||
| 	BanFlag                      int64            `json:"banFlag"`
 | ||
| }
 | ||
| 
 | ||
| // Info @TITLE 详情
 | ||
| func (m *modify) Info(ctx context.Context, modifyId int64) (reply ReplyModifyInfo, err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Info", modifyId, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| type ArgsShipmentEdit struct {
 | ||
| 	ModifyId 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 (m *modify) Edit(ctx context.Context, args ArgsShipmentEdit) (err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	reply := 0
 | ||
| 	err = xClient.Call(ctx, "Edit", args, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| // Customs @TITLE 报关信息
 | ||
| func (m *modify) Customs(ctx context.Context, modifyId int64) (reply bean2.ReplyCustoms, err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	err = xClient.Call(ctx, "Customs", modifyId, &reply)
 | ||
| 	return
 | ||
| }
 | ||
| 
 | ||
| // Cancel @TITLE 作废
 | ||
| func (m *modify) Cancel(ctx context.Context, modifyId int64) (err error) {
 | ||
| 	xClient, err := client.GetClient(m)
 | ||
| 	if err != nil {
 | ||
| 		return
 | ||
| 	}
 | ||
| 	reply := 0
 | ||
| 	err = xClient.Call(ctx, "Cancel", modifyId, &reply)
 | ||
| 	return
 | ||
| }
 |