2.在商品管理下的商品列表接口里 分别统计:已落位 locatedCount, 未落位 unlocatedCount, 启用中 enabledCount, 已禁用 disabledCount 4个字段并进行返回 3.新增一个接口 对商品名称字段进行修改,对实拍图字段修改,实拍图可以为单图或者多图 4.波次任务列表- 缺少统计信息:分别为今日入库波次数 today_inbound_waves, 昨日入库波次数 ,yesterday_inbound_waves 今日入库数量,today_inbound_qty 昨日入库数量,yesterday_inbound_qty 今日出库数量,today_outbound_qty 昨日出库数量 yesterday_outbound_qty 5.采购单列表- 缺少导出到旺店通功能
186 lines
6.4 KiB
Go
186 lines
6.4 KiB
Go
package response
|
|
|
|
import (
|
|
"gorm.io/datatypes"
|
|
"psi/models"
|
|
)
|
|
|
|
type TaskWithWave struct {
|
|
models.WaveTask
|
|
WaveNo string `gorm:"column:wave_no"`
|
|
OutOrderId int64 `gorm:"column:out_order_id"`
|
|
ReceivingOrderId int64 `gorm:"column:receiving_order_id"`
|
|
BatchNo string `gorm:"column:wave_task_batch_no"`
|
|
}
|
|
|
|
type DetailWithInfo struct {
|
|
models.WaveTaskDetail
|
|
ProductName string `gorm:"column:product_name"`
|
|
ProductCode string `gorm:"column:product_code"`
|
|
LocationCode string `gorm:"column:location_code"`
|
|
SalePrice int64 `gorm:"column:sale_price"`
|
|
LiveImage datatypes.JSON `gorm:"column:live_image"`
|
|
}
|
|
|
|
// WaveTaskListResponse 波次任务列表响应
|
|
type WaveTaskListResponse struct {
|
|
List []WaveTaskItem `json:"list"`
|
|
Total int64 `json:"total"`
|
|
Page int `json:"page"`
|
|
PageSize int `json:"pageSize"`
|
|
TodayInboundWaves int64 `json:"today_inbound_waves"` // 今日入库波次数
|
|
YesterdayInboundWaves int64 `json:"yesterday_inbound_waves"` // 昨日入库波次数
|
|
TodayInboundQty int64 `json:"today_inbound_qty"` // 今日入库数量
|
|
YesterdayInboundQty int64 `json:"yesterday_inbound_qty"` // 昨日入库数量
|
|
TodayOutboundQty int64 `json:"today_outbound_qty"` // 今日出库数量
|
|
YesterdayOutboundQty int64 `json:"yesterday_outbound_qty"` // 昨日出库数量
|
|
}
|
|
|
|
// WaveTaskItem 波次任务列表项
|
|
type WaveTaskItem struct {
|
|
ID int64 `json:"id"`
|
|
CarID int64 `json:"car_id"`
|
|
CarCode int64 `json:"car_code"`
|
|
OutOrderId int64 `json:"out_order_id"`
|
|
ReceivingOrderId int64 `json:"receiving_order_id"`
|
|
WaveTaskBatchNo string `json:"wave_task_batch_no"`
|
|
WaveID int64 `json:"wave_id"`
|
|
WaveNo string `json:"wave_no"`
|
|
TaskNo string `json:"task_no"`
|
|
Type int8 `json:"type"`
|
|
TypeText string `json:"type_text"`
|
|
Assignee string `json:"assignee"`
|
|
AssigneeID int64 `json:"assignee_id"`
|
|
Status int8 `json:"status"`
|
|
StatusText string `json:"status_text"`
|
|
StartedAt int64 `json:"started_at"`
|
|
CompletedAt int64 `json:"completed_at"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
}
|
|
|
|
// WaveTaskDetailResponse 波次任务详情响应
|
|
type WaveTaskDetailResponse struct {
|
|
ID int64 `json:"id"`
|
|
WaveID int64 `json:"wave_id"`
|
|
WaveNo string `json:"wave_no"`
|
|
TaskNo string `json:"task_no"`
|
|
Type int8 `json:"type"`
|
|
TypeText string `json:"type_text"`
|
|
Assignee string `json:"assignee"`
|
|
AssigneeID int64 `json:"assignee_id"`
|
|
Status int8 `json:"status"`
|
|
StatusText string `json:"status_text"`
|
|
StartedAt int64 `json:"started_at"`
|
|
CompletedAt int64 `json:"completed_at"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
Details []WaveTaskDetailItem `json:"details"`
|
|
}
|
|
|
|
// WaveTaskDetailItem 波次任务明细项
|
|
type WaveTaskDetailItem struct {
|
|
ID int64 `json:"id"`
|
|
WaveTaskID int64 `json:"wave_task_id"`
|
|
ProductID int64 `json:"product_id"`
|
|
ProductName string `json:"product_name"`
|
|
ProductCode string `json:"product_code"`
|
|
SalePrice int64 `json:"sale_price"`
|
|
LiveImage []string `json:"live_image"`
|
|
LocationID int64 `json:"location_id"`
|
|
LocationCode string `json:"location_code"`
|
|
BatchNo string `json:"batch_no"`
|
|
PlannedQuantity int64 `json:"planned_quantity"`
|
|
ActualQuantity int64 `json:"actual_quantity"`
|
|
Status int8 `json:"status"`
|
|
StatusText string `json:"status_text"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
}
|
|
|
|
// ConvertWaveTaskToItem 将波次任务模型转换为响应项
|
|
func ConvertWaveTaskToItem(task models.WaveTask, waveNo string, outOrderId, receivingOrderId int64, batchNo string) WaveTaskItem {
|
|
return WaveTaskItem{
|
|
ID: task.ID,
|
|
OutOrderId: outOrderId,
|
|
ReceivingOrderId: receivingOrderId,
|
|
WaveTaskBatchNo: batchNo,
|
|
WaveID: task.WaveID,
|
|
WaveNo: waveNo,
|
|
TaskNo: task.TaskNo,
|
|
Type: task.Type,
|
|
TypeText: GetWaveTaskTypeText(task.Type),
|
|
Assignee: task.Assignee,
|
|
AssigneeID: task.AssigneeID,
|
|
Status: task.Status,
|
|
StatusText: GetWaveTaskStatusText(task.Status),
|
|
StartedAt: task.StartedAt,
|
|
CompletedAt: task.CompletedAt,
|
|
CreatedAt: task.CreatedAt,
|
|
UpdatedAt: task.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
// ConvertWaveTaskToDetail 将波次任务模型转换为详情响应
|
|
func ConvertWaveTaskToDetail(task models.WaveTask, waveNo string, details []WaveTaskDetailItem) WaveTaskDetailResponse {
|
|
return WaveTaskDetailResponse{
|
|
ID: task.ID,
|
|
WaveID: task.WaveID,
|
|
WaveNo: waveNo,
|
|
TaskNo: task.TaskNo,
|
|
Type: task.Type,
|
|
TypeText: GetWaveTaskTypeText(task.Type),
|
|
Assignee: task.Assignee,
|
|
AssigneeID: task.AssigneeID,
|
|
Status: task.Status,
|
|
StatusText: GetWaveTaskStatusText(task.Status),
|
|
StartedAt: task.StartedAt,
|
|
CompletedAt: task.CompletedAt,
|
|
CreatedAt: task.CreatedAt,
|
|
UpdatedAt: task.UpdatedAt,
|
|
Details: details,
|
|
}
|
|
}
|
|
|
|
// GetWaveTaskTypeText 获取波次任务类型文本
|
|
func GetWaveTaskTypeText(taskType int8) string {
|
|
typeMap := map[int8]string{
|
|
1: "出库",
|
|
2: "补货",
|
|
3: "移库",
|
|
4: "入库",
|
|
}
|
|
if text, ok := typeMap[taskType]; ok {
|
|
return text
|
|
}
|
|
return "未知"
|
|
}
|
|
|
|
// GetWaveTaskStatusText 获取波次任务状态文本
|
|
func GetWaveTaskStatusText(status int8) string {
|
|
statusMap := map[int8]string{
|
|
1: "待指派",
|
|
2: "已指派",
|
|
3: "拣货中",
|
|
4: "已完成",
|
|
5: "已取消",
|
|
}
|
|
if text, ok := statusMap[status]; ok {
|
|
return text
|
|
}
|
|
return "未知"
|
|
}
|
|
|
|
// GetWaveTaskDetailStatusText 获取波次任务明细状态文本
|
|
func GetWaveTaskDetailStatusText(status int8) string {
|
|
statusMap := map[int8]string{
|
|
1: "待处理",
|
|
2: "已完成",
|
|
3: "缺货",
|
|
}
|
|
if text, ok := statusMap[status]; ok {
|
|
return text
|
|
}
|
|
return "未知"
|
|
}
|