1、查询门店经营入参门店字段改成可以复选;
2、库存调拨编辑查询详情时返回对应商品的库存数量; 3、采购入库优化,入库后不再更新审核时间; 4、查询采购报表(按单)剔除待入库且已入库数量为0的订单; 5、采购报表(按商品)剔除已终止的订单;
This commit is contained in:
parent
95c7fd228e
commit
dc134e138a
|
@ -253,13 +253,13 @@ type ErpOrderAddInvoiceReq struct {
|
||||||
|
|
||||||
// ErpOrderStoreManageDataReq 查询门店经营入参
|
// ErpOrderStoreManageDataReq 查询门店经营入参
|
||||||
type ErpOrderStoreManageDataReq struct {
|
type ErpOrderStoreManageDataReq struct {
|
||||||
StoreId uint32 `json:"store_id"` // 门店ID
|
StoreId []uint32 `json:"store_id"` // 门店ID
|
||||||
StartTime string `json:"start_time"` // 开始时间
|
StartTime string `json:"start_time"` // 开始时间
|
||||||
EndTime string `json:"end_time"` // 结束时间
|
EndTime string `json:"end_time"` // 结束时间
|
||||||
PageIndex int `json:"pageIndex"` // 页码
|
PageIndex int `json:"pageIndex"` // 页码
|
||||||
PageSize int `json:"pageSize"` // 页面条数
|
PageSize int `json:"pageSize"` // 页面条数
|
||||||
IsExport uint32 `json:"is_export"` // 1-导出
|
IsExport uint32 `json:"is_export"` // 1-导出
|
||||||
SortType string `json:"sort_type"` // 排序类型:desc 降序、asc 升序
|
SortType string `json:"sort_type"` // 排序类型:desc 降序、asc 升序
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErpOrderStoreManageDataResp 查询门店经营出参
|
// ErpOrderStoreManageDataResp 查询门店经营出参
|
||||||
|
@ -2398,8 +2398,8 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq, c *gin.Context) (*Erp
|
||||||
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
qs := orm.Eloquent.Model(&ErpOrder{})
|
qs := orm.Eloquent.Model(&ErpOrder{})
|
||||||
if req.StoreId != 0 {
|
if len(req.StoreId) != 0 {
|
||||||
qs = qs.Where("store_id = ?", req.StoreId)
|
qs.Where("erp_order.store_id in ?", req.StoreId)
|
||||||
}
|
}
|
||||||
// 非管理员才判断所属门店
|
// 非管理员才判断所属门店
|
||||||
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
||||||
|
@ -2499,18 +2499,18 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq, c *gin.Context) (*Erp
|
||||||
resp.TotalCount = summary.TotalCount
|
resp.TotalCount = summary.TotalCount
|
||||||
|
|
||||||
if req.IsExport == 1 { //导出excel
|
if req.IsExport == 1 { //导出excel
|
||||||
storeName := "所有门店"
|
//storeName := "所有门店"
|
||||||
if req.StoreId != 0 {
|
//if req.StoreId != 0 {
|
||||||
storeInfo, err := GetStore(req.StoreId)
|
// storeInfo, err := GetStore(req.StoreId)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
logger.Error("GetStore err:", logger.Field("err", err))
|
// logger.Error("GetStore err:", logger.Field("err", err))
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
storeName = storeInfo.Name
|
// storeName = storeInfo.Name
|
||||||
}
|
//}
|
||||||
|
|
||||||
finalStoreManageDataList = constructFinalStoreManageDataList(storeManageDataList, req)
|
finalStoreManageDataList = constructFinalStoreManageDataList(storeManageDataList, req)
|
||||||
filePath, err := storeManageDataExport(finalStoreManageDataList, storeName, summary, c)
|
filePath, err := storeManageDataExport(finalStoreManageDataList, "门店", summary, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("StoreManageDataExport err:", logger.Field("err", err))
|
logger.Error("StoreManageDataExport err:", logger.Field("err", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -787,40 +787,72 @@ func MergeCommodities(commodities []ErpInventoryAllotCommodity) []ErpInventoryAl
|
||||||
return mergedCommodities
|
return mergedCommodities
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateStockCounts 根据传入的 storeId 更新每个商品的库存数量。
|
// UpdateStockCounts 根据商品类型(串码或非串码)以及 storeId 更新每个商品的库存数量。
|
||||||
func UpdateStockCounts(commodities []ErpInventoryAllotCommodity, storeId uint32) ([]ErpInventoryAllotCommodity, error) {
|
func UpdateStockCounts(commodities []ErpInventoryAllotCommodity, storeId uint32) ([]ErpInventoryAllotCommodity, error) {
|
||||||
// 收集商品 ID
|
// 创建映射表,分开存储串码商品和非串码商品
|
||||||
var commodityIDs []uint32
|
imeiMap := make(map[string]*ErpInventoryAllotCommodity) // 串码商品
|
||||||
for _, commodity := range commodities {
|
nonImeiMap := make(map[uint32]*ErpInventoryAllotCommodity) // 非串码商品
|
||||||
commodityIDs = append(commodityIDs, commodity.CommodityId)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询数据库中的库存数量
|
// 将商品按串码和非串码分开
|
||||||
var stockCounts []struct {
|
|
||||||
ErpCommodityID uint32 `gorm:"column:erp_commodity_id"`
|
|
||||||
StockCount int64 `gorm:"column:stock_count"`
|
|
||||||
}
|
|
||||||
err := orm.Eloquent.Table("erp_stock_commodity").
|
|
||||||
Where("erp_commodity_id IN (?) AND state = ? AND store_id = ?", commodityIDs, InStock, storeId).
|
|
||||||
Select("erp_commodity_id, COUNT(*) as stock_count").
|
|
||||||
Group("erp_commodity_id").
|
|
||||||
Scan(&stockCounts).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建库存数量映射
|
|
||||||
stockCountMap := make(map[uint32]int64)
|
|
||||||
for _, stock := range stockCounts {
|
|
||||||
stockCountMap[stock.ErpCommodityID] = stock.StockCount
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新商品的 StockCount 字段
|
|
||||||
for i, commodity := range commodities {
|
for i, commodity := range commodities {
|
||||||
if count, exists := stockCountMap[commodity.CommodityId]; exists {
|
if commodity.IMEIType == 2 {
|
||||||
commodities[i].StockCount = uint32(count)
|
imeiMap[commodity.IMEI] = &commodities[i]
|
||||||
} else {
|
} else if commodity.IMEIType == 1 {
|
||||||
commodities[i].StockCount = 0 // 如果没有库存记录,则默认为 0
|
nonImeiMap[commodity.CommodityId] = &commodities[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询串码商品的库存数量
|
||||||
|
if len(imeiMap) > 0 {
|
||||||
|
var imeiKeys []string
|
||||||
|
for imei := range imeiMap {
|
||||||
|
imeiKeys = append(imeiKeys, imei)
|
||||||
|
}
|
||||||
|
|
||||||
|
var stockCounts []struct {
|
||||||
|
IMEI string `gorm:"column:imei"`
|
||||||
|
StockCount int64 `gorm:"column:stock_count"`
|
||||||
|
}
|
||||||
|
err := orm.Eloquent.Table("erp_stock_commodity").
|
||||||
|
Where("imei IN (?) AND state = ?", imeiKeys, InStock).
|
||||||
|
Select("imei, COUNT(*) as stock_count").
|
||||||
|
Group("imei").
|
||||||
|
Scan(&stockCounts).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, stock := range stockCounts {
|
||||||
|
if commodity, exists := imeiMap[stock.IMEI]; exists {
|
||||||
|
commodity.StockCount = uint32(stock.StockCount)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询非串码商品的库存数量
|
||||||
|
if len(nonImeiMap) > 0 {
|
||||||
|
var commodityIDs []uint32
|
||||||
|
for id := range nonImeiMap {
|
||||||
|
commodityIDs = append(commodityIDs, id)
|
||||||
|
}
|
||||||
|
|
||||||
|
var stockCounts []struct {
|
||||||
|
ErpCommodityID uint32 `gorm:"column:erp_commodity_id"`
|
||||||
|
StockCount int64 `gorm:"column:stock_count"`
|
||||||
|
}
|
||||||
|
err := orm.Eloquent.Table("erp_stock_commodity").
|
||||||
|
Where("erp_commodity_id IN (?) AND store_id = ? AND state = ?", commodityIDs, storeId, InStock).
|
||||||
|
Select("erp_commodity_id, COUNT(*) as stock_count").
|
||||||
|
Group("erp_commodity_id").
|
||||||
|
Scan(&stockCounts).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, stock := range stockCounts {
|
||||||
|
if commodity, exists := nonImeiMap[stock.ErpCommodityID]; exists {
|
||||||
|
commodity.StockCount = uint32(stock.StockCount)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1254,7 +1254,7 @@ func CheckAndUpdatePurchaseOrderState(orderId uint32) error {
|
||||||
if order.PurchaseType == ErpProcureOrder && commodity.Count != uint32(commodity.InventoryCount) {
|
if order.PurchaseType == ErpProcureOrder && commodity.Count != uint32(commodity.InventoryCount) {
|
||||||
if err := orm.Eloquent.Model(&order).Updates(map[string]interface{}{
|
if err := orm.Eloquent.Model(&order).Updates(map[string]interface{}{
|
||||||
"state": ErpPurchaseOrderWaitInventory,
|
"state": ErpPurchaseOrderWaitInventory,
|
||||||
"audit_time": time.Now(),
|
"updated_at": time.Now(),
|
||||||
}).Error; err != nil {
|
}).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1263,7 +1263,7 @@ func CheckAndUpdatePurchaseOrderState(orderId uint32) error {
|
||||||
if order.PurchaseType == ErpRejectOrder && commodity.RejectedCount != uint32(commodity.InventoryCount) {
|
if order.PurchaseType == ErpRejectOrder && commodity.RejectedCount != uint32(commodity.InventoryCount) {
|
||||||
if err := orm.Eloquent.Model(&order).Updates(map[string]interface{}{
|
if err := orm.Eloquent.Model(&order).Updates(map[string]interface{}{
|
||||||
"state": ErpPurchaseOrderWaitReject,
|
"state": ErpPurchaseOrderWaitReject,
|
||||||
"audit_time": time.Now(),
|
"updated_at": time.Now(),
|
||||||
}).Error; err != nil {
|
}).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1275,7 +1275,7 @@ func CheckAndUpdatePurchaseOrderState(orderId uint32) error {
|
||||||
if err := orm.Eloquent.Model(&order).
|
if err := orm.Eloquent.Model(&order).
|
||||||
Updates(map[string]interface{}{
|
Updates(map[string]interface{}{
|
||||||
"state": ErpPurchaseOrderFinished,
|
"state": ErpPurchaseOrderFinished,
|
||||||
"audit_time": time.Now(),
|
"updated_at": time.Now(),
|
||||||
}).Error; err != nil {
|
}).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -3414,32 +3414,35 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context
|
||||||
PageIndex: page + 1,
|
PageIndex: page + 1,
|
||||||
PageSize: req.PageSize,
|
PageSize: req.PageSize,
|
||||||
}
|
}
|
||||||
qs := orm.Eloquent.Table("erp_purchase_order").Where("state != ?", ErpPurchaseOrderUnAudit) // 未审核订单不展示
|
qs := orm.Eloquent.Table("erp_purchase_order").
|
||||||
if req.SerialNumber != "" { // 单据编号
|
Joins("JOIN erp_purchase_commodity ON erp_purchase_order.id = erp_purchase_commodity.erp_purchase_order_id").
|
||||||
qs = qs.Where("serial_number=?", req.SerialNumber)
|
Where("erp_purchase_order.state != ?", ErpPurchaseOrderUnAudit). // 未审核订单不展示
|
||||||
|
Where("NOT (erp_purchase_order.state = 2 AND erp_purchase_commodity.inventory_count = 0)") // 排除 commodity 表中 state=2 且 inventory_count = 0 的记录
|
||||||
|
if req.SerialNumber != "" { // 单据编号
|
||||||
|
qs = qs.Where("erp_purchase_order.serial_number=?", req.SerialNumber)
|
||||||
}
|
}
|
||||||
if req.PurchaseType != "" { // 采购类型
|
if req.PurchaseType != "" { // 采购类型
|
||||||
qs = qs.Where("purchase_type=?", req.PurchaseType)
|
qs = qs.Where("erp_purchase_order.purchase_type=?", req.PurchaseType)
|
||||||
}
|
}
|
||||||
if len(req.ErpSupplierId) > 0 { // 供应商复选
|
if len(req.ErpSupplierId) > 0 { // 供应商复选
|
||||||
var supplierIDs []uint32
|
var supplierIDs []uint32
|
||||||
for _, supplier := range req.ErpSupplierId {
|
for _, supplier := range req.ErpSupplierId {
|
||||||
supplierIDs = append(supplierIDs, supplier)
|
supplierIDs = append(supplierIDs, supplier)
|
||||||
}
|
}
|
||||||
qs = qs.Where("erp_supplier_id IN (?)", supplierIDs)
|
qs = qs.Where("erp_purchase_order.erp_supplier_id IN (?)", supplierIDs)
|
||||||
}
|
}
|
||||||
if len(req.StoreId) > 0 { // 门店复选
|
if len(req.StoreId) > 0 { // 门店复选
|
||||||
var storeIDs []uint32
|
var storeIDs []uint32
|
||||||
for _, store := range req.StoreId {
|
for _, store := range req.StoreId {
|
||||||
storeIDs = append(storeIDs, store)
|
storeIDs = append(storeIDs, store)
|
||||||
}
|
}
|
||||||
qs = qs.Where("store_id IN (?)", storeIDs)
|
qs = qs.Where("erp_purchase_order.store_id IN (?)", storeIDs)
|
||||||
}
|
}
|
||||||
if req.HandlerId != 0 { // 经手人id
|
if req.HandlerId != 0 { // 经手人id
|
||||||
qs = qs.Where("handler_id=?", req.HandlerId)
|
qs = qs.Where("erp_purchase_order.handler_id=?", req.HandlerId)
|
||||||
}
|
}
|
||||||
if req.State != 0 { // 订单状态
|
if req.State != 0 { // 订单状态
|
||||||
qs = qs.Where("state=?", req.State)
|
qs = qs.Where("erp_purchase_order.state=?", req.State)
|
||||||
}
|
}
|
||||||
if req.AuditTimeStart != "" { // 审核开始时间
|
if req.AuditTimeStart != "" { // 审核开始时间
|
||||||
parse, err := time.Parse(QueryTimeFormat, req.AuditTimeStart)
|
parse, err := time.Parse(QueryTimeFormat, req.AuditTimeStart)
|
||||||
|
@ -3447,7 +3450,7 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context
|
||||||
logger.Errorf("erpPurchaseOrderList err:", err)
|
logger.Errorf("erpPurchaseOrderList err:", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
qs = qs.Where("audit_time > ?", parse)
|
qs = qs.Where("erp_purchase_order.audit_time > ?", parse)
|
||||||
}
|
}
|
||||||
if req.AuditTimeEnd != "" { // 审核结束时间
|
if req.AuditTimeEnd != "" { // 审核结束时间
|
||||||
parse, err := time.Parse(QueryTimeFormat, req.AuditTimeEnd)
|
parse, err := time.Parse(QueryTimeFormat, req.AuditTimeEnd)
|
||||||
|
@ -3456,11 +3459,11 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
//parse = parse.AddDate(0, 0, 1)
|
//parse = parse.AddDate(0, 0, 1)
|
||||||
qs = qs.Where("audit_time < ?", parse)
|
qs = qs.Where("erp_purchase_order.audit_time < ?", parse)
|
||||||
}
|
}
|
||||||
|
|
||||||
var count int64
|
var count int64
|
||||||
err := qs.Count(&count).Error
|
err := qs.Distinct("erp_purchase_order.id").Count(&count).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("getReportByOrderFromCommon count err:", logger.Field("err", err))
|
logger.Error("getReportByOrderFromCommon count err:", logger.Field("err", err))
|
||||||
return resp, err
|
return resp, err
|
||||||
|
@ -3468,9 +3471,10 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context
|
||||||
resp.Total = int(count)
|
resp.Total = int(count)
|
||||||
var orders []ErpPurchaseOrder
|
var orders []ErpPurchaseOrder
|
||||||
if req.ErpCategoryID != 0 || req.ErpCommodityName != "" || req.IsExport == 1 {
|
if req.ErpCategoryID != 0 || req.ErpCommodityName != "" || req.IsExport == 1 {
|
||||||
err = qs.Order("id DESC").Find(&orders).Error
|
err = qs.Order("erp_purchase_order.id DESC").Distinct("erp_purchase_order.*").Find(&orders).Error
|
||||||
} else {
|
} else {
|
||||||
err = qs.Order("id DESC").Offset(page * req.PageSize).Limit(req.PageSize).Find(&orders).Error
|
err = qs.Order("erp_purchase_order.id DESC").Distinct("erp_purchase_order.*").
|
||||||
|
Offset(page * req.PageSize).Limit(req.PageSize).Find(&orders).Error
|
||||||
}
|
}
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Error("getReportByOrderFromCommon erp_purchase_order err:", logger.Field("err", err))
|
logger.Error("getReportByOrderFromCommon erp_purchase_order err:", logger.Field("err", err))
|
||||||
|
@ -4175,7 +4179,8 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq, c *gin
|
||||||
PageIndex: page + 1,
|
PageIndex: page + 1,
|
||||||
PageSize: req.PageSize,
|
PageSize: req.PageSize,
|
||||||
}
|
}
|
||||||
qs := orm.Eloquent.Table("erp_purchase_order").Where("state != ?", ErpPurchaseOrderUnAudit)
|
qs := orm.Eloquent.Table("erp_purchase_order").
|
||||||
|
Where("state NOT IN (?, ?)", ErpPurchaseOrderUnAudit, ErpPurchaseOrderEnd)
|
||||||
if req.SerialNumber != "" { // 单据编号
|
if req.SerialNumber != "" { // 单据编号
|
||||||
qs = qs.Where("serial_number=?", req.SerialNumber)
|
qs = qs.Where("serial_number=?", req.SerialNumber)
|
||||||
}
|
}
|
||||||
|
|
49
docs/docs.go
49
docs/docs.go
|
@ -8695,6 +8695,10 @@ const docTemplate = `{
|
||||||
"description": "备注",
|
"description": "备注",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"stock_count": {
|
||||||
|
"description": "库存数量",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"description": "更新时间",
|
"description": "更新时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -10089,7 +10093,10 @@ const docTemplate = `{
|
||||||
},
|
},
|
||||||
"store_id": {
|
"store_id": {
|
||||||
"description": "门店ID",
|
"description": "门店ID",
|
||||||
"type": "integer"
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -10292,9 +10299,25 @@ const docTemplate = `{
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"first_erp_category_name": {
|
||||||
|
"description": "商品一级分类名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"price": {
|
"price": {
|
||||||
"description": "已执行单价",
|
"description": "已执行单价",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"second_erp_category_name": {
|
||||||
|
"description": "商品二级分类名称",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -10862,6 +10885,10 @@ const docTemplate = `{
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"handler_id": {
|
"handler_id": {
|
||||||
"description": "经手人id",
|
"description": "经手人id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -10882,6 +10909,10 @@ const docTemplate = `{
|
||||||
"description": "采购类型:procure-采购 reject-退货",
|
"description": "采购类型:procure-采购 reject-退货",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"serial_number": {
|
"serial_number": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -15352,6 +15383,14 @@ const docTemplate = `{
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"first_erp_category_name": {
|
||||||
|
"description": "商品一级分类名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"non_execution_amount": {
|
"non_execution_amount": {
|
||||||
"description": "未执行金额",
|
"description": "未执行金额",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
@ -15386,6 +15425,14 @@ const docTemplate = `{
|
||||||
"price": {
|
"price": {
|
||||||
"description": "已执行单价",
|
"description": "已执行单价",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"second_erp_category_name": {
|
||||||
|
"description": "商品二级分类名称",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -8684,6 +8684,10 @@
|
||||||
"description": "备注",
|
"description": "备注",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"stock_count": {
|
||||||
|
"description": "库存数量",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"description": "更新时间",
|
"description": "更新时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -10078,7 +10082,10 @@
|
||||||
},
|
},
|
||||||
"store_id": {
|
"store_id": {
|
||||||
"description": "门店ID",
|
"description": "门店ID",
|
||||||
"type": "integer"
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -10281,9 +10288,25 @@
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"first_erp_category_name": {
|
||||||
|
"description": "商品一级分类名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"price": {
|
"price": {
|
||||||
"description": "已执行单价",
|
"description": "已执行单价",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"second_erp_category_name": {
|
||||||
|
"description": "商品二级分类名称",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -10851,6 +10874,10 @@
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"handler_id": {
|
"handler_id": {
|
||||||
"description": "经手人id",
|
"description": "经手人id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -10871,6 +10898,10 @@
|
||||||
"description": "采购类型:procure-采购 reject-退货",
|
"description": "采购类型:procure-采购 reject-退货",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"serial_number": {
|
"serial_number": {
|
||||||
"description": "单据编号",
|
"description": "单据编号",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -15341,6 +15372,14 @@
|
||||||
"description": "商品名称",
|
"description": "商品名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"first_erp_category_id": {
|
||||||
|
"description": "商品一级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"first_erp_category_name": {
|
||||||
|
"description": "商品一级分类名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"non_execution_amount": {
|
"non_execution_amount": {
|
||||||
"description": "未执行金额",
|
"description": "未执行金额",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
@ -15375,6 +15414,14 @@
|
||||||
"price": {
|
"price": {
|
||||||
"description": "已执行单价",
|
"description": "已执行单价",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"second_erp_category_id": {
|
||||||
|
"description": "商品二级分类id",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"second_erp_category_name": {
|
||||||
|
"description": "商品二级分类名称",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1757,6 +1757,9 @@ definitions:
|
||||||
remark:
|
remark:
|
||||||
description: 备注
|
description: 备注
|
||||||
type: string
|
type: string
|
||||||
|
stock_count:
|
||||||
|
description: 库存数量
|
||||||
|
type: integer
|
||||||
updatedAt:
|
updatedAt:
|
||||||
description: 更新时间
|
description: 更新时间
|
||||||
type: string
|
type: string
|
||||||
|
@ -2778,7 +2781,9 @@ definitions:
|
||||||
type: string
|
type: string
|
||||||
store_id:
|
store_id:
|
||||||
description: 门店ID
|
description: 门店ID
|
||||||
type: integer
|
items:
|
||||||
|
type: integer
|
||||||
|
type: array
|
||||||
type: object
|
type: object
|
||||||
models.ErpOrderStoreManageDataResp:
|
models.ErpOrderStoreManageDataResp:
|
||||||
properties:
|
properties:
|
||||||
|
@ -2926,9 +2931,21 @@ definitions:
|
||||||
erp_commodity_name:
|
erp_commodity_name:
|
||||||
description: 商品名称
|
description: 商品名称
|
||||||
type: string
|
type: string
|
||||||
|
first_erp_category_id:
|
||||||
|
description: 商品一级分类id
|
||||||
|
type: integer
|
||||||
|
first_erp_category_name:
|
||||||
|
description: 商品一级分类名称
|
||||||
|
type: string
|
||||||
price:
|
price:
|
||||||
description: 已执行单价
|
description: 已执行单价
|
||||||
type: number
|
type: number
|
||||||
|
second_erp_category_id:
|
||||||
|
description: 商品二级分类id
|
||||||
|
type: integer
|
||||||
|
second_erp_category_name:
|
||||||
|
description: 商品二级分类名称
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
models.ErpPurchaseCreateReq:
|
models.ErpPurchaseCreateReq:
|
||||||
properties:
|
properties:
|
||||||
|
@ -3342,6 +3359,9 @@ definitions:
|
||||||
items:
|
items:
|
||||||
type: integer
|
type: integer
|
||||||
type: array
|
type: array
|
||||||
|
first_erp_category_id:
|
||||||
|
description: 商品一级分类id
|
||||||
|
type: integer
|
||||||
handler_id:
|
handler_id:
|
||||||
description: 经手人id
|
description: 经手人id
|
||||||
type: integer
|
type: integer
|
||||||
|
@ -3357,6 +3377,9 @@ definitions:
|
||||||
purchase_type:
|
purchase_type:
|
||||||
description: 采购类型:procure-采购 reject-退货
|
description: 采购类型:procure-采购 reject-退货
|
||||||
type: string
|
type: string
|
||||||
|
second_erp_category_id:
|
||||||
|
description: 商品二级分类id
|
||||||
|
type: integer
|
||||||
serial_number:
|
serial_number:
|
||||||
description: 单据编号
|
description: 单据编号
|
||||||
type: string
|
type: string
|
||||||
|
@ -6569,6 +6592,12 @@ definitions:
|
||||||
erp_commodity_name:
|
erp_commodity_name:
|
||||||
description: 商品名称
|
description: 商品名称
|
||||||
type: string
|
type: string
|
||||||
|
first_erp_category_id:
|
||||||
|
description: 商品一级分类id
|
||||||
|
type: integer
|
||||||
|
first_erp_category_name:
|
||||||
|
description: 商品一级分类名称
|
||||||
|
type: string
|
||||||
non_execution_amount:
|
non_execution_amount:
|
||||||
description: 未执行金额
|
description: 未执行金额
|
||||||
type: number
|
type: number
|
||||||
|
@ -6595,6 +6624,12 @@ definitions:
|
||||||
price:
|
price:
|
||||||
description: 已执行单价
|
description: 已执行单价
|
||||||
type: number
|
type: number
|
||||||
|
second_erp_category_id:
|
||||||
|
description: 商品二级分类id
|
||||||
|
type: integer
|
||||||
|
second_erp_category_name:
|
||||||
|
description: 商品二级分类名称
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
models.ReportByOrderData:
|
models.ReportByOrderData:
|
||||||
properties:
|
properties:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user