2.从系统导出的excel数据,在外部对excel某一列进行更改时,新增的要回传到原来的地方;并对改动的地方进行覆盖。
3.销售单管理、出库管理、发货单三个接口里面展示第三方订单编号和快递单号
4.选择多个仓库时,只要选择发货单子就会报错
5.在这个/api/split-account-deduction-log/create接口里,当传参时,如果参数 total_amount 是0,则会报错 {"code":204,"data":{},"msg":"TotalAmount不能为空"} 0是金额数字,不能当空值进行判断(T)
传递参数created_by,没有往数据表里写入
6.商品销毁的同时写入日志,也能通过读取这个日志,还原销毁的商品。传出这个新增的接口
7.新增一个不需要签名认证的分帐扣钱日志列表接口,新增一个返回字段buniness_no,并对这个字段进行模糊查询。
测试接口:/open/split-account-deduction-log/list
8.增加个新接口:首先 调用 /api/sales-order/create 创建销售订单的时候会锁定库存,
现在我需要一个解锁库存的接口,传递参数是订单编号
POST /api/sales-order/unlock-inventory // 解锁销售订单库存
/api/split-account-deduction-log/update /api/sales-order/unlock-inventory 在这两个接口里不需要签名认证
/api/sales-order/unlock-inventory 在这个接口里面返回解锁的所有商品信息
/api/split-account-deduction-log/update 在这个接口里面的status也需要更改,status没有变化
231 lines
10 KiB
Go
231 lines
10 KiB
Go
package response
|
||
|
||
import (
|
||
"psi/models"
|
||
)
|
||
|
||
type ShippingOrderWithInfo struct {
|
||
models.ShippingOrder
|
||
CustomerName string `gorm:"column:customer_name"`
|
||
}
|
||
|
||
type ShippingOrderItemWithProduct struct {
|
||
models.ShippingOrderItem
|
||
SalesOrderItemID int64 `gorm:"column:sales_order_item_id"`
|
||
ProductID int64 `gorm:"column:product_id"`
|
||
ProductName string `gorm:"column:product_name"`
|
||
ProductCode string `gorm:"column:product_code"`
|
||
CategoryID int64 `gorm:"column:category_id"`
|
||
CategoryName string `gorm:"column:category_name"`
|
||
LocationID int64 `gorm:"column:location_id"`
|
||
LocationName string `gorm:"column:location_name"`
|
||
WarehouseName string `gorm:"column:warehouse_name"`
|
||
WarehouseCode string `gorm:"column:warehouse_code"`
|
||
WarehouseContactPerson string `json:"warehouse_contact_person"`
|
||
WarehouseContactPhone string `json:"warehouse_contact_phone"`
|
||
WarehouseProvince string `json:"warehouse_province"`
|
||
WarehouseCity string `json:"warehouse_city"`
|
||
WarehouseDistrict string `json:"warehouse_district"`
|
||
WarehouseAddress string `json:"warehouse_address"`
|
||
SalesOrderNo string `gorm:"column:sales_order_no"`
|
||
OutboundOrderNo string `gorm:"column:outbound_order_no"`
|
||
UnitPrice int64 `gorm:"column:unit_price"`
|
||
SalesOrderCreatedAt int64 `gorm:"column:sales_order_created_at"`
|
||
SalesPersonID string `gorm:"column:sales_person_id"`
|
||
AssociationOrderID int64 `gorm:"column:association_order_id"`
|
||
AssociationOrderNo string `gorm:"column:association_order_no"`
|
||
SoItemCreatedAt int64 `gorm:"column:so_item_created_at"`
|
||
ReceiverName string `gorm:"column:receiver_name"`
|
||
ReceiverPhone string `gorm:"column:receiver_phone"`
|
||
ReceiverAddress string `gorm:"column:receiver_address"`
|
||
LogisticsCompany string `gorm:"column:logistics_company"`
|
||
LogisticsNo string `gorm:"column:logistics_no"`
|
||
}
|
||
|
||
// ShippingOrderListResponse 发货单列表响应
|
||
type ShippingOrderListResponse struct {
|
||
List []ShippingOrderItem `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
}
|
||
|
||
// ShippingOrderItem 发货单项
|
||
type ShippingOrderItem struct {
|
||
ID int64 `json:"id"`
|
||
ShippingNo string `json:"shipping_no"`
|
||
CustomerID int64 `json:"customer_id"`
|
||
CustomerName string `json:"customer_name"`
|
||
Status int8 `json:"status"`
|
||
StatusText string `json:"status_text"`
|
||
ShippingTime *int64 `json:"shipping_time"`
|
||
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
|
||
ActualArriveTime *int64 `json:"actual_arrive_time"`
|
||
Operator string `json:"operator"`
|
||
CreatedAt int64 `json:"created_at"`
|
||
UpdatedAt *int64 `json:"updated_at"`
|
||
Remark string `json:"remark"`
|
||
ShopList []OutboundShopInfo `json:"shop_list"`
|
||
AssociationOrderNo string `json:"association_order_no"`
|
||
LogisticsNo string `json:"logistics_no"`
|
||
}
|
||
|
||
// ShippingOrderDetailResponse 发货单详情响应
|
||
type ShippingOrderDetailResponse struct {
|
||
ID int64 `json:"id"`
|
||
ShippingNo string `json:"shipping_no"`
|
||
CustomerID int64 `json:"customer_id"`
|
||
CustomerName string `json:"customer_name"`
|
||
Status int8 `json:"status"`
|
||
StatusText string `json:"status_text"`
|
||
ShippingTime *int64 `json:"shipping_time"`
|
||
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
|
||
ActualArriveTime *int64 `json:"actual_arrive_time"`
|
||
Operator string `json:"operator"`
|
||
CreatedAt int64 `json:"created_at"`
|
||
UpdatedAt *int64 `json:"updated_at"`
|
||
Remark string `json:"remark"`
|
||
Items []ShippingOrderDetailItem `json:"items"`
|
||
}
|
||
|
||
// ShippingOrderDetailItem 发货单明细项
|
||
type ShippingOrderDetailItem struct {
|
||
ID int64 `json:"id"`
|
||
ShippingOrderID int64 `json:"shipping_order_id"`
|
||
OutboundOrderItemID *int64 `json:"outbound_order_item_id"`
|
||
SalesOrderItemID int64 `json:"sales_order_item_id"`
|
||
SalesOrderNo string `json:"sales_order_no"`
|
||
OutboundOrderNo string `json:"outbound_order_no"`
|
||
ProductID int64 `json:"product_id"`
|
||
ProductName string `json:"product_name"`
|
||
ProductCode string `json:"product_code"`
|
||
CategoryID int64 `json:"category_id"`
|
||
CategoryName string `json:"category_name"`
|
||
LocationID int64 `json:"location_id"`
|
||
LocationName string `json:"location_name"`
|
||
WarehouseName string `json:"warehouse_name"`
|
||
WarehouseCode string `json:"warehouse_code"`
|
||
WarehouseContactPerson string `json:"warehouse_contact_person"`
|
||
WarehouseContactPhone string `json:"warehouse_contact_phone"`
|
||
WarehouseProvince string `json:"warehouse_province"`
|
||
WarehouseCity string `json:"warehouse_city"`
|
||
WarehouseDistrict string `json:"warehouse_district"`
|
||
WarehouseAddress string `json:"warehouse_address"`
|
||
Quantity int64 `json:"quantity"`
|
||
UnitPrice int64 `json:"unit_price"`
|
||
SalesOrderCreatedAt int64 `json:"sales_order_created_at"`
|
||
SalesPersonID string `json:"sales_person_id"`
|
||
AssociationOrderID int64 `json:"association_order_id"`
|
||
AssociationOrderNo string `json:"association_order_no"`
|
||
SoItemCreatedAt int64 `json:"so_item_created_at"`
|
||
ReceiverName string `json:"receiver_name"`
|
||
ReceiverPhone string `json:"receiver_phone"`
|
||
ReceiverAddress string `json:"receiver_address"`
|
||
LogisticsCompany string `json:"logistics_company"`
|
||
LogisticsNo string `json:"logistics_no"`
|
||
}
|
||
|
||
// ConvertShippingOrderToItem 将发货单模型转换为响应项
|
||
func ConvertShippingOrderToItem(order models.ShippingOrder, customerName string, shopList []OutboundShopInfo, associationOrderNo string, logisticsNo string) ShippingOrderItem {
|
||
return ShippingOrderItem{
|
||
ID: order.ID,
|
||
ShippingNo: order.ShippingNo,
|
||
CustomerID: order.CustomerID,
|
||
CustomerName: customerName,
|
||
ShopList: shopList,
|
||
Status: order.Status,
|
||
StatusText: GetShippingOrderStatusText(order.Status),
|
||
ShippingTime: order.ShippingTime,
|
||
ExpectedArriveTime: order.ExpectedArriveTime,
|
||
ActualArriveTime: order.ActualArriveTime,
|
||
Operator: order.Operator,
|
||
CreatedAt: order.CreatedAt,
|
||
UpdatedAt: order.UpdatedAt,
|
||
Remark: order.Remark,
|
||
AssociationOrderNo: associationOrderNo,
|
||
LogisticsNo: logisticsNo,
|
||
}
|
||
}
|
||
|
||
// ConvertShippingOrderToDetail 将发货单模型转换为详情响应
|
||
func ConvertShippingOrderToDetail(order models.ShippingOrder, customerName string, items []ShippingOrderDetailItem) ShippingOrderDetailResponse {
|
||
return ShippingOrderDetailResponse{
|
||
ID: order.ID,
|
||
ShippingNo: order.ShippingNo,
|
||
CustomerID: order.CustomerID,
|
||
CustomerName: customerName,
|
||
Status: order.Status,
|
||
StatusText: GetShippingOrderStatusText(order.Status),
|
||
ShippingTime: order.ShippingTime,
|
||
ExpectedArriveTime: order.ExpectedArriveTime,
|
||
ActualArriveTime: order.ActualArriveTime,
|
||
Operator: order.Operator,
|
||
CreatedAt: order.CreatedAt,
|
||
UpdatedAt: order.UpdatedAt,
|
||
Remark: order.Remark,
|
||
Items: items,
|
||
}
|
||
}
|
||
|
||
// ShippingOrderDetailListItem 发货单详情列表项(综合list和detail的所有字段)
|
||
type ShippingOrderDetailListItem struct {
|
||
ID int64 `json:"id"`
|
||
ShippingNo string `json:"shipping_no"`
|
||
CustomerID int64 `json:"customer_id"`
|
||
CustomerName string `json:"customer_name"`
|
||
Status int8 `json:"status"`
|
||
StatusText string `json:"status_text"`
|
||
ShippingTime *int64 `json:"shipping_time"`
|
||
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
|
||
ActualArriveTime *int64 `json:"actual_arrive_time"`
|
||
Operator string `json:"operator"`
|
||
CreatedAt int64 `json:"created_at"`
|
||
UpdatedAt *int64 `json:"updated_at"`
|
||
Remark string `json:"remark"`
|
||
ShopList []OutboundShopInfo `json:"shop_list"`
|
||
Items []ShippingOrderDetailItem `json:"items"`
|
||
}
|
||
|
||
// ShippingOrderDetailListResponse 发货单详情列表响应
|
||
type ShippingOrderDetailListResponse struct {
|
||
List []ShippingOrderDetailListItem `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
}
|
||
|
||
// ConvertShippingOrderToDetailListItem 将发货单模型转换为详情列表项
|
||
func ConvertShippingOrderToDetailListItem(order models.ShippingOrder, customerName string, shopList []OutboundShopInfo, items []ShippingOrderDetailItem) ShippingOrderDetailListItem {
|
||
return ShippingOrderDetailListItem{
|
||
ID: order.ID,
|
||
ShippingNo: order.ShippingNo,
|
||
CustomerID: order.CustomerID,
|
||
CustomerName: customerName,
|
||
Status: order.Status,
|
||
StatusText: GetShippingOrderStatusText(order.Status),
|
||
ShippingTime: order.ShippingTime,
|
||
ExpectedArriveTime: order.ExpectedArriveTime,
|
||
ActualArriveTime: order.ActualArriveTime,
|
||
Operator: order.Operator,
|
||
CreatedAt: order.CreatedAt,
|
||
UpdatedAt: order.UpdatedAt,
|
||
Remark: order.Remark,
|
||
ShopList: shopList,
|
||
Items: items,
|
||
}
|
||
}
|
||
|
||
// GetShippingOrderStatusText 获取发货单状态文本
|
||
func GetShippingOrderStatusText(status int8) string {
|
||
statusMap := map[int8]string{
|
||
1: "待发货",
|
||
2: "已发货",
|
||
3: "已签收",
|
||
4: "已取消",
|
||
}
|
||
if text, ok := statusMap[status]; ok {
|
||
return text
|
||
}
|
||
return "未知"
|
||
}
|