新增查询库存列表和详情接口
This commit is contained in:
parent
065a80c343
commit
e156b3d7d5
|
@ -37,6 +37,7 @@ type CommodityCreateRequest struct {
|
|||
// @Param request body CommodityCreateRequest true "商品新增模型"
|
||||
// @Success 200 {object} models.ErpCommodity
|
||||
// @Router /api/v1/commodity/create [post]
|
||||
// 规则:商品名称/商品编号相同则为同一商品,创建的时候由于商品编号不重复,无需判断
|
||||
func CommodityCreate(c *gin.Context) {
|
||||
var req = new(CommodityCreateRequest)
|
||||
|
||||
|
@ -90,19 +91,6 @@ func CommodityCreate(c *gin.Context) {
|
|||
}
|
||||
commodity.IdInit()
|
||||
|
||||
//var catCommodity models.ErpCommodity
|
||||
//err = orm.Eloquent.Table("erp_commodity").Where("erp_category_id=?", req.ErpCategoryId).
|
||||
// Order("id DESC").Limit(1).Find(&catCommodity).Error
|
||||
//if err != nil && err != models.RecordNotFound {
|
||||
// //logger.Error("cat erp commodity err:", err)
|
||||
// app.Error(c, http.StatusInternalServerError, err, "创建失败")
|
||||
// return
|
||||
//}
|
||||
//if catCommodity.Number != 0 {
|
||||
// commodity.Number = catCommodity.Number + 1
|
||||
//}
|
||||
//commodity.SerialNumber = fmt.Sprintf("%06d%04d", commodity.ErpCategory.FullNum, commodity.Number)
|
||||
|
||||
commodity.SerialNumber, err = models.GenerateSerialNumber(req.ErpCategoryId)
|
||||
if err != nil {
|
||||
app.Error(c, http.StatusInternalServerError, err, err.Error())
|
||||
|
@ -224,24 +212,6 @@ func CommodityEdit(c *gin.Context) {
|
|||
brokerage1Float := req.Brokerage1
|
||||
brokerage2Float := req.Brokerage2
|
||||
memberDiscountFloat := req.MemberDiscount
|
||||
//brokerage1Float, err := strconv.ParseFloat(req.Brokerage1, 64)
|
||||
//if err != nil {
|
||||
// logger.Error("brokerage1 err:", err)
|
||||
// app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
||||
// return
|
||||
//}
|
||||
//brokerage2Float, err := strconv.ParseFloat(req.Brokerage2, 64)
|
||||
//if err != nil {
|
||||
// logger.Error("brokerage2 err:", err)
|
||||
// app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
||||
// return
|
||||
//}
|
||||
//memberDiscountFloat, err := strconv.ParseFloat(req.MemberDiscount, 64)
|
||||
//if err != nil {
|
||||
// logger.Error("member discount err:", err)
|
||||
// app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
||||
// return
|
||||
//}
|
||||
|
||||
commodity := &models.ErpCommodity{
|
||||
Name: req.Name,
|
||||
|
|
63
app/admin/apis/inventory/Inventory.go
Normal file
63
app/admin/apis/inventory/Inventory.go
Normal file
|
@ -0,0 +1,63 @@
|
|||
package inventory
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// InventoryList 查询库存列表
|
||||
// @Summary 查询库存列表
|
||||
// @Tags 库存管理
|
||||
// @Produce json
|
||||
// @Accept json
|
||||
// @Param request body models.ErpStockListReq true "查询库存列表模型"
|
||||
// @Success 200 {object} models.ErpStockListResp
|
||||
// @Router /api/v1/inventory/list [post]
|
||||
func GetInventoryList(c *gin.Context) {
|
||||
req := &models.ErpStockListReq{}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
//logger.Error(err)
|
||||
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := req.List()
|
||||
if err != nil {
|
||||
//logger.Error("erp commodity list err:", err)
|
||||
app.Error(c, http.StatusInternalServerError, err, "获取失败")
|
||||
return
|
||||
}
|
||||
|
||||
app.OK(c, resp, "OK")
|
||||
return
|
||||
}
|
||||
|
||||
// InventoryDetail 查询库存详情
|
||||
// @Summary 查询库存详情
|
||||
// @Tags 库存管理
|
||||
// @Produce json
|
||||
// @Accept json
|
||||
// @Param request body models.ErpStockCommodityListReq true "查询库存详情模型"
|
||||
// @Success 200 {object} models.ErpStockCommodityListResp
|
||||
// @Router /api/v1/inventory/detail [post]
|
||||
func GetInventoryDetail(c *gin.Context) {
|
||||
req := &models.ErpStockCommodityListReq{}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
//logger.Error(err)
|
||||
app.Error(c, http.StatusBadRequest, errors.New("param err"), "参数错误")
|
||||
return
|
||||
}
|
||||
|
||||
list, err := req.GetDetailList()
|
||||
if err != nil {
|
||||
//logger.Error("erp stock err:", err)
|
||||
app.Error(c, http.StatusInternalServerError, err, "获取失败")
|
||||
return
|
||||
}
|
||||
|
||||
app.OK(c, list, "OK")
|
||||
return
|
||||
}
|
|
@ -14,71 +14,62 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
// ErpStock 库存表
|
||||
//
|
||||
//go:generate goqueryset -in commodity.go
|
||||
type ErpStock struct {
|
||||
Model
|
||||
|
||||
StoreId uint32 `json:"store_id" gorm:"index"`
|
||||
StoreName string `json:"store_name"`
|
||||
ErpCommodityId uint32 `json:"erp_commodity_id" gorm:"index"`
|
||||
ErpCommodityName string `json:"erp_commodity_name"`
|
||||
ErpCategoryId uint32 `json:"erp_category_id" gorm:"index"`
|
||||
ErpCategoryName string `json:"erp_category_name"`
|
||||
CommoditySerialNumber string `json:"commodity_serial_number" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店编号
|
||||
StoreName string `json:"store_name"` // 门店名称
|
||||
ErpCommodityId uint32 `json:"erp_commodity_id" gorm:"index"` // 商品id
|
||||
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
|
||||
ErpCategoryId uint32 `json:"erp_category_id" gorm:"index"` // 分类id
|
||||
ErpCategoryName string `json:"erp_category_name"` // 分类名称
|
||||
CommoditySerialNumber string `json:"commodity_serial_number" gorm:"index"` // 商品编码/串码
|
||||
IMEIType uint32 `json:"imei_type"` // 1-无串码 2-串码(系统生成) 3-串码(手动添加)
|
||||
RetailPrice uint32 `json:"retail_price"`
|
||||
MinRetailPrice uint32 `json:"min_retail_price"`
|
||||
Count uint32 `json:"count"`
|
||||
DispatchCount uint32 `json:"dispatch_count"`
|
||||
//ErpSupplierId uint32 `json:"erp_supplier_id" gorm:"index"`
|
||||
//ErpSupplierName string `json:"erp_supplier_name"`
|
||||
//IMEI string `json:"imei"`
|
||||
//StockTime time.Time `json:"stock_time"`
|
||||
//StaffCostPrice uint32 `json:"staff_cost_price"`
|
||||
//WholesalePrice uint32 `json:"wholesale_price"`
|
||||
//OriginalSn string `json:"original_sn" gorm:"index"`
|
||||
RetailPrice uint32 `json:"retail_price"` // 指导零售价
|
||||
MinRetailPrice uint32 `json:"min_retail_price"` // 最低零售价
|
||||
Count uint32 `json:"count"` // 数量
|
||||
DispatchCount uint32 `json:"dispatch_count"` // 调拨中数量
|
||||
Commodities []ErpStockCommodity `json:"commodities" gorm:"-"`
|
||||
|
||||
// erp_stock
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
// ErpStockCommodity 库存详情
|
||||
type ErpStockCommodity struct {
|
||||
Model
|
||||
|
||||
ErpStockId uint32 `json:"erp_stock_id" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"`
|
||||
StoreName string `json:"store_name"`
|
||||
ErpCommodityId uint32 `json:"erp_commodity_id" gorm:"index"`
|
||||
ErpCommodityName string `json:"erp_commodity_name"`
|
||||
CommoditySerialNumber string `json:"commodity_serial_number" gorm:"index"`
|
||||
ErpCategoryId uint32 `json:"erp_category_id" gorm:"index"`
|
||||
ErpCategoryName string `json:"erp_category_name"`
|
||||
IMEIType uint32 `json:"imei_type"` // 1-无串码 2-串码(系统生成) 3-串码(手动添加)
|
||||
IMEI string `json:"imei"`
|
||||
ErpSupplierId uint32 `json:"erp_supplier_id" gorm:"index"`
|
||||
ErpSupplierName string `json:"erp_supplier_name"`
|
||||
StockTime time.Time `json:"stock_time"`
|
||||
RetailPrice uint32 `json:"retail_price"`
|
||||
MinRetailPrice uint32 `json:"min_retail_price"`
|
||||
StaffCostPrice uint32 `json:"staff_cost_price"`
|
||||
WholesalePrice uint32 `json:"wholesale_price"`
|
||||
OriginalSn string `json:"original_sn" gorm:"index"`
|
||||
ErpStockId uint32 `json:"erp_stock_id" gorm:"index"` // 库存id
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
StoreName string `json:"store_name"` // 门店名称
|
||||
ErpCommodityId uint32 `json:"erp_commodity_id" gorm:"index"` // 商品id
|
||||
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
|
||||
CommoditySerialNumber string `json:"commodity_serial_number" gorm:"index"` // 商品编号
|
||||
ErpCategoryId uint32 `json:"erp_category_id" gorm:"index"` // 分类id
|
||||
ErpCategoryName string `json:"erp_category_name"` // 分类名称
|
||||
IMEIType uint32 `json:"imei_type"` // 是否串码:1-无串码 2-串码(系统生成) 3-串码(手动添加)
|
||||
IMEI string `json:"imei"` // 商品串码
|
||||
ErpSupplierId uint32 `json:"erp_supplier_id" gorm:"index"` // 供应商id
|
||||
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
|
||||
StockTime time.Time `json:"stock_time"` // 最近入库时间
|
||||
RetailPrice uint32 `json:"retail_price"` // 指导零售价
|
||||
MinRetailPrice uint32 `json:"min_retail_price"` // 最低零售价
|
||||
StaffCostPrice uint32 `json:"staff_cost_price"` // 员工成本价加价
|
||||
WholesalePrice uint32 `json:"wholesale_price"` // 指导采购价
|
||||
State uint32 `json:"state"` // 状态:1-在库 2-已售 3-采购退货 4-调拨中
|
||||
Count uint32 `json:"count"`
|
||||
StockSn string `json:"stock_sn"`
|
||||
StorageType uint32 `json:"storage_type"` //1-系统入库 2-采购入库
|
||||
FirstStockTime time.Time `json:"first_stock_time"`
|
||||
Age uint32 `json:"age" gorm:"-"`
|
||||
AllAge uint32 `json:"all_age" gorm:"-"`
|
||||
Commodity ErpCommodity `json:"commodity" gorm:"-"`
|
||||
//DispatchCount uint32 `json:"dispatch_count"`
|
||||
// erp_stock_commodity
|
||||
Count uint32 `json:"count"` // 数量
|
||||
StorageType uint32 `json:"storage_type"` // 入库方式:1-系统入库 2-采购入库
|
||||
FirstStockTime time.Time `json:"first_stock_time"` // 首次入库时间
|
||||
StockSn string `json:"stock_sn"` // 库存订单编号
|
||||
OriginalSn string `json:"original_sn" gorm:"index"` // 首次入库订单编号
|
||||
StockStartTime time.Time `json:"stock_start_time" gorm:"-"` // 最近入库开始时间
|
||||
StockEndTime time.Time `json:"stock_end_time" gorm:"-"` // 最近入库结束时间
|
||||
Age uint32 `json:"age" gorm:"-"` // 最近库龄
|
||||
AllAge uint32 `json:"all_age" gorm:"-"` // 总库龄
|
||||
//Commodity ErpCommodity `json:"commodity" gorm:"-"`
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
// ErpCommodity 商品表
|
||||
type ErpCommodity struct {
|
||||
Model
|
||||
|
||||
|
@ -102,7 +93,6 @@ type ErpCommodity struct {
|
|||
Remark string `json:"remark" gorm:"type:varchar(512)"` // 备注
|
||||
|
||||
ErpCategory *ErpCategory `json:"erp_category" gorm:"-"`
|
||||
// erp_commodity
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
|
@ -526,122 +516,6 @@ type ErpCategorySub struct {
|
|||
//UnCodeMap map[string]uint32
|
||||
}
|
||||
|
||||
func ErpCommodityFileExcelListProcessing(list []ErpCommodityFileExcel) {
|
||||
allCategoriesMap, err := GetErpCategorySubMap()
|
||||
if err != nil {
|
||||
//logger.Error("all categories map err:", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("allCategoriesMap:", allCategoriesMap)
|
||||
unCodeMap1 := make(map[string]string, 0)
|
||||
unCodeMap2 := make(map[string]string, 0)
|
||||
numberCount := &CommodityNumberCount{}
|
||||
numberCount.NumberMap = make(map[uint32]uint32, 0)
|
||||
|
||||
for i, _ := range list {
|
||||
//if i == 0 {
|
||||
// continue
|
||||
//}
|
||||
list[i].Processing()
|
||||
cat1 := list[i].Category1
|
||||
unCode1, okUc1 := unCodeMap1[cat1]
|
||||
if okUc1 {
|
||||
cat1 = unCode1
|
||||
}
|
||||
catSub, ok := allCategoriesMap[cat1]
|
||||
if ok {
|
||||
if list[i].Category2 != "" {
|
||||
cat2 := list[i].Category2
|
||||
unCode2, okUc2 := unCodeMap2[cat2]
|
||||
if okUc2 {
|
||||
cat2 = unCode2
|
||||
}
|
||||
sub, ok1 := catSub.SubMap[unCode2]
|
||||
//unCodeCat, ok2 := unCodeMap2[list[i].Category2]
|
||||
if ok1 {
|
||||
list[i].ErpCommodity.ErpCategoryId = sub.ID
|
||||
list[i].ErpCommodity.ErpCategory = &sub
|
||||
numberCommodity, err := numberCount.GetErpCommodityNumberByCategoryId(sub.ID)
|
||||
if err != nil {
|
||||
//logger.Error("category2 create err:", err)
|
||||
return
|
||||
}
|
||||
list[i].ErpCommodity.Number = numberCommodity
|
||||
list[i].ErpCommodity.ErpCategoryName = cat2
|
||||
|
||||
} else {
|
||||
category2, err := ErpCategoryCreate(list[i].Category2, catSub.Id)
|
||||
if err != nil {
|
||||
//logger.Error("category2 create err:", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("分类id", category2.ID)
|
||||
list[i].ErpCommodity.ErpCategoryId = category2.ID
|
||||
list[i].ErpCommodity.ErpCategory = category2
|
||||
allCategoriesMap, err = GetErpCategorySubMap()
|
||||
if err != nil {
|
||||
//logger.Error("all categories map err:", err)
|
||||
return
|
||||
}
|
||||
numberCount.NumberMap[category2.ID] = 1
|
||||
list[i].ErpCommodity.Number = 1
|
||||
list[i].ErpCommodity.ErpCategoryName = cat2
|
||||
unCodeMap2[list[i].Category2] = category2.Name
|
||||
}
|
||||
} else {
|
||||
list[i].ErpCommodity.ErpCategoryId = catSub.Id
|
||||
list[i].ErpCommodity.ErpCategory = &ErpCategory{Number: catSub.FullNum} // TODO
|
||||
numberCommodity, err := numberCount.GetErpCommodityNumberByCategoryId(catSub.Id)
|
||||
if err != nil {
|
||||
//logger.Error("category2 create err:", err)
|
||||
return
|
||||
}
|
||||
list[i].ErpCommodity.Number = numberCommodity
|
||||
list[i].ErpCommodity.ErpCategoryName = catSub.Name
|
||||
}
|
||||
|
||||
list[i].ErpCommodity.SerialNumber = fmt.Sprintf("%06d%04d", list[i].ErpCommodity.ErpCategory.FullNum, list[i].ErpCommodity.Number)
|
||||
} else {
|
||||
category1, err := ErpCategoryCreate(list[i].Category1, 0)
|
||||
if err != nil {
|
||||
//logger.Error("category1 create err:", err)
|
||||
return
|
||||
}
|
||||
unCodeMap1[list[i].Category1] = category1.Name
|
||||
if list[i].Category2 != "" {
|
||||
category2, err := ErpCategoryCreate(list[i].Category2, category1.ID)
|
||||
if err != nil {
|
||||
//logger.Error("category2 create err:", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("分类id2", category2.ID)
|
||||
list[i].ErpCommodity.ErpCategoryId = category2.ID
|
||||
list[i].ErpCommodity.ErpCategoryName = list[i].Category2
|
||||
list[i].ErpCommodity.ErpCategory = category2
|
||||
unCodeMap2[list[i].Category2] = category2.Name
|
||||
|
||||
numberCount.NumberMap[category2.ID] = 1
|
||||
list[i].ErpCommodity.Number = 1
|
||||
} else {
|
||||
list[i].ErpCommodity.ErpCategoryId = category1.ID
|
||||
list[i].ErpCommodity.ErpCategoryName = list[i].Category1
|
||||
list[i].ErpCommodity.ErpCategory = category1
|
||||
|
||||
numberCount.NumberMap[category1.ID] = 1
|
||||
list[i].ErpCommodity.Number = 1
|
||||
}
|
||||
|
||||
list[i].ErpCommodity.SerialNumber = fmt.Sprintf("%06d%04d", list[i].ErpCommodity.ErpCategory.FullNum, list[i].ErpCommodity.Number)
|
||||
allCategoriesMap, err = GetErpCategorySubMap()
|
||||
if err != nil {
|
||||
//logger.Error("all categories map err:", err)
|
||||
return
|
||||
}
|
||||
} /**/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
type CommodityNumberCount struct {
|
||||
NumberMap map[uint32]uint32 `json:"number_map"`
|
||||
}
|
||||
|
@ -1196,61 +1070,6 @@ func ErpStockCommodityToInventory(inventoryStockIdMap map[string]uint32, list []
|
|||
return inventoryList
|
||||
}
|
||||
|
||||
func GetErpCommodityMap(ids []uint32) (map[uint32]ErpCommodity, error) {
|
||||
commodityMap := make(map[uint32]ErpCommodity, 0)
|
||||
if len(ids) == 0 {
|
||||
return commodityMap, nil
|
||||
}
|
||||
var commodities []ErpCommodity
|
||||
err := orm.Eloquent.Table("erp_commodity").Where("id IN (?)", ids).Find(&commodities).Error
|
||||
if err != nil {
|
||||
//logger.Error("commodities err:", err)
|
||||
return commodityMap, err
|
||||
}
|
||||
|
||||
for i, _ := range commodities {
|
||||
commodityMap[commodities[i].ID] = commodities[i]
|
||||
}
|
||||
|
||||
return commodityMap, nil
|
||||
}
|
||||
|
||||
func ErpSupplierListExport(list []ErpSupplier) (string, error) {
|
||||
file := excelize.NewFile()
|
||||
streamWriter, err := file.NewStreamWriter("Sheet1")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
url := "http://39.108.188.218:8000/img/export/"
|
||||
fileName := time.Now().Format(TimeFormat) + "供应商" + ".xlsx"
|
||||
|
||||
//title := []interface{}{"门店", "用户ID", "订单编号", "下单时间", "卡带", "说明", "回收价", "闲麦价", "审核时间", "审核人", "操作", "复核时间", "复核状态"}
|
||||
title := []interface{}{"供应商编号", "供应商名称", "联系人", "手机号", "地址", "开户银行", "银行账号", "付款周期/天"}
|
||||
cell, _ := excelize.CoordinatesToCellName(1, 1)
|
||||
if err = streamWriter.SetRow(cell, title); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
var row []interface{}
|
||||
for rowId := 0; rowId < len(list); rowId++ {
|
||||
row = []interface{}{list[rowId].Number, list[rowId].Name, list[rowId].Contact,
|
||||
list[rowId].Tel, list[rowId].Address, list[rowId].OpeningBank,
|
||||
list[rowId].BankAccount, list[rowId].PaymentCycle}
|
||||
cell, _ := excelize.CoordinatesToCellName(1, rowId+2)
|
||||
if err := streamWriter.SetRow(cell, row); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
if err := streamWriter.Flush(); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
if err := file.SaveAs("/www/server/images/export/" + fileName); err != nil {
|
||||
//if err := file.SaveAs("./" + fileName); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
return url + fileName, nil
|
||||
}
|
||||
|
||||
func ErpCommodityListExport(list []ErpCommodity) (string, error) {
|
||||
file := excelize.NewFile()
|
||||
streamWriter, err := file.NewStreamWriter("Sheet1")
|
||||
|
@ -1294,41 +1113,6 @@ func ErpCommodityListExport(list []ErpCommodity) (string, error) {
|
|||
return url + fileName, nil
|
||||
}
|
||||
|
||||
//func ErpStoreCashierListExport(list []ErpStoreCashier) (string, error) {
|
||||
// file := excelize.NewFile()
|
||||
// streamWriter, err := file.NewStreamWriter("Sheet1")
|
||||
// if err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
//
|
||||
// url := "http://39.108.188.218:8000/img/export/"
|
||||
// fileName := time.Now().Format(TimeFormat) + "支付账号" + ".xlsx"
|
||||
//
|
||||
// //title := []interface{}{"门店", "用户ID", "订单编号", "下单时间", "卡带", "说明", "回收价", "闲麦价", "审核时间", "审核人", "操作", "复核时间", "复核状态"}
|
||||
// title := []interface{}{"所属门店", "账号名称", "银行全称", "银行账号"}
|
||||
// cell, _ := excelize.CoordinatesToCellName(1, 1)
|
||||
// if err = streamWriter.SetRow(cell, title); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// var row []interface{}
|
||||
// for rowId := 0; rowId < len(list); rowId++ {
|
||||
// row = []interface{}{list[rowId].StoreName, list[rowId].Name, list[rowId].BankName,
|
||||
// list[rowId].BankAccount}
|
||||
// cell, _ := excelize.CoordinatesToCellName(1, rowId+2)
|
||||
// if err := streamWriter.SetRow(cell, row); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// }
|
||||
// if err := streamWriter.Flush(); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// if err := file.SaveAs("/www/server/images/export/" + fileName); err != nil {
|
||||
// //if err := file.SaveAs("./" + fileName); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// return url + fileName, nil
|
||||
//}
|
||||
|
||||
func ErpCategoryListExport(list []ErpCategory) (string, error) {
|
||||
file := excelize.NewFile()
|
||||
streamWriter, err := file.NewStreamWriter("Sheet1")
|
||||
|
@ -1373,13 +1157,14 @@ func ErpCategoryListExport(list []ErpCategory) (string, error) {
|
|||
}
|
||||
|
||||
type ErpStockListReq struct {
|
||||
SerialNumber string `json:"serial_number"`
|
||||
CommodityName string `json:"commodity_name"`
|
||||
ErpCategoryId uint32 `json:"erp_category_id"`
|
||||
StockType uint32 `json:"stock_type"` // 库存:1-全部 2-有库存 3-无库存
|
||||
PageNum int `json:"page_num"`
|
||||
PageSize int `json:"page_size"`
|
||||
IsExport uint32 `json:"is_export"` // 1-导出
|
||||
SerialNumber string `json:"serial_number"` // 商品编号
|
||||
CommodityName string `json:"commodity_name"` // 商品名称
|
||||
ErpCategoryId uint32 `json:"erp_category_id"` // 商品分类
|
||||
StockType uint32 `json:"stock_type"` // 库存情况:1-全部 2-有库存 3-无库存
|
||||
StoreId uint32 `json:"store_id"` // 门店编号
|
||||
PageNum int `json:"page_num"` // 页面条数
|
||||
PageSize int `json:"page_size"` // 页码
|
||||
//IsExport uint32 `json:"is_export"` // 1-导出
|
||||
}
|
||||
type ErpStockListResp struct {
|
||||
List []ErpStock `json:"list"`
|
||||
|
@ -1411,42 +1196,30 @@ func (m *ErpStockListReq) List() (*ErpStockListResp, error) {
|
|||
if m.ErpCategoryId != 0 {
|
||||
qs = qs.Where("erp_category_id=?", m.ErpCategoryId)
|
||||
}
|
||||
if m.StockType != 0 {
|
||||
if m.StockType == 2 {
|
||||
qs = qs.Where("count>0")
|
||||
} else if m.StockType == 3 {
|
||||
qs = qs.Where("count=0")
|
||||
if m.StoreId != 0 {
|
||||
qs = qs.Where("store_id=?", m.StoreId)
|
||||
}
|
||||
switch m.StockType {
|
||||
case 2:
|
||||
qs = qs.Where("count > 0")
|
||||
case 3:
|
||||
qs = qs.Where("count = 0")
|
||||
}
|
||||
|
||||
var count int64
|
||||
err := qs.Count(&count).Error
|
||||
if err != nil {
|
||||
if err := qs.Count(&count).Error; err != nil {
|
||||
//logger.Error("count err:", err)
|
||||
return resp, err
|
||||
}
|
||||
resp.Total = int(count)/m.PageSize + 1
|
||||
|
||||
var commodities []ErpStock
|
||||
|
||||
if m.IsExport == 1 {
|
||||
err = qs.Order("id DESC").Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
//logger.Error("dailys err:", err)
|
||||
return resp, err
|
||||
}
|
||||
|
||||
//listExport, err := ErpCommodityListExport(commodities)
|
||||
//if err != nil {
|
||||
// logger.Error("list export err:", err)
|
||||
//}
|
||||
//resp.ExportUrl = listExport
|
||||
} else {
|
||||
err = qs.Order("id DESC").Offset(page * m.PageSize).Limit(m.PageSize).Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
err := qs.Order("id DESC").Offset(page * m.PageSize).Limit(m.PageSize).Find(&commodities).Error
|
||||
if err != nil && !errors.Is(err, RecordNotFound) {
|
||||
//logger.Error("erp commodity list err:", err)
|
||||
return resp, err
|
||||
}
|
||||
resp.List = commodities
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
@ -1467,22 +1240,26 @@ func ErpStockCommodityListSetCommodity(commodities []ErpStockCommodity) {
|
|||
}
|
||||
}
|
||||
|
||||
// ErpStockCommodityListReq 库存详情接口请求参数
|
||||
type ErpStockCommodityListReq struct {
|
||||
CommodityName string `json:"commodity_name"`
|
||||
ErpCategoryId uint32 `json:"erp_category_id"`
|
||||
SerialNumber string `json:"serial_number"`
|
||||
StoreId uint32 `json:"store_id"`
|
||||
IMEI string `json:"imei"`
|
||||
State uint32 `json:"state"`
|
||||
Sn string `json:"sn"`
|
||||
StorageType uint32 `json:"storage_type"`
|
||||
StockTimeStart string `json:"stock_time_start"`
|
||||
StockTimeEnd string `json:"stock_time_end"`
|
||||
Age uint32 `json:"age"`
|
||||
AllAge uint32 `json:"all_age"`
|
||||
PageNum int `json:"page_num"`
|
||||
PageSize int `json:"page_size"`
|
||||
IsExport uint32 `json:"is_export"` // 1-导出
|
||||
ErpStockId uint32 `json:"erp_stock_id"` // 库存id
|
||||
ErpCommodityId uint32 `json:"erp_commodity_id"` // 商品id
|
||||
SerialNumber string `json:"serial_number"` // 商品编号
|
||||
CommodityName string `json:"commodity_name"` // 商品名称
|
||||
ErpCategoryId uint32 `json:"erp_category_id"` // 商品分类Id
|
||||
IMEI string `json:"imei"` // 串码
|
||||
StoreId uint32 `json:"store_id"` // 门店编号
|
||||
SupplierId uint32 `json:"supplier_id"` // 供应商id
|
||||
State uint32 `json:"state"` // 库存状态:1-在库 2-已售 3-采购退货 4-调拨中
|
||||
Sn string `json:"sn"` // 首次入库订单编号
|
||||
StorageType uint32 `json:"storage_type"` // 首次入库方式:1-系统入库 2-采购入库
|
||||
StockTimeStart string `json:"stock_time_start"` // 最近入库开始时间
|
||||
StockTimeEnd string `json:"stock_time_end"` // 最近入库结束时间
|
||||
Age uint32 `json:"age"` // 最近库龄
|
||||
AllAge uint32 `json:"all_age"` // 总库龄
|
||||
PageNum int `json:"page_num"` // 页面条数
|
||||
PageSize int `json:"page_size"` // 页码
|
||||
IsExport uint32 `json:"is_export"` // 是否导出excel:1-导出
|
||||
}
|
||||
type ErpStockCommodityListResp struct {
|
||||
List []ErpStockCommodity `json:"list"`
|
||||
|
@ -1492,7 +1269,7 @@ type ErpStockCommodityListResp struct {
|
|||
ExportUrl string `json:"export_url"`
|
||||
}
|
||||
|
||||
func (m *ErpStockCommodityListReq) List() (*ErpStockCommodityListResp, error) {
|
||||
func (m *ErpStockCommodityListReq) GetDetailList() (*ErpStockCommodityListResp, error) {
|
||||
resp := &ErpStockCommodityListResp{
|
||||
PageNum: m.PageNum,
|
||||
PageSize: m.PageSize,
|
||||
|
@ -1504,72 +1281,24 @@ func (m *ErpStockCommodityListReq) List() (*ErpStockCommodityListResp, error) {
|
|||
if m.PageSize == 0 {
|
||||
m.PageSize = 10
|
||||
}
|
||||
qs := orm.Eloquent.Table("erp_stock_commodity")
|
||||
if m.SerialNumber != "" {
|
||||
qs = qs.Where("commodity_serial_number=?", m.SerialNumber)
|
||||
}
|
||||
if m.CommodityName != "" {
|
||||
qs = qs.Where("name Like %" + m.CommodityName + "%")
|
||||
}
|
||||
if m.ErpCategoryId != 0 {
|
||||
qs = qs.Where("erp_category_id=?", m.ErpCategoryId)
|
||||
}
|
||||
if m.IMEI != "" {
|
||||
qs = qs.Where("imei=?", m.IMEI)
|
||||
}
|
||||
if m.StoreId != 0 {
|
||||
qs = qs.Where("store_id=?", m.StoreId)
|
||||
}
|
||||
if m.State != 0 {
|
||||
qs = qs.Where("state=?", m.State)
|
||||
}
|
||||
if m.Sn != "" {
|
||||
qs = qs.Where("stock_sn=?", m.Sn)
|
||||
}
|
||||
if m.StorageType != 0 {
|
||||
qs = qs.Where("storage_type=?", m.StorageType)
|
||||
}
|
||||
if m.StockTimeStart != "" {
|
||||
startTime, err := time.Parse(DateTimeFormat, m.StockTimeStart)
|
||||
if err != nil {
|
||||
//logger.Error("stock time start parse err:", err)
|
||||
} else {
|
||||
qs = qs.Where("first_stock_time>?", startTime)
|
||||
}
|
||||
}
|
||||
if m.StockTimeEnd != "" {
|
||||
endTime, err := time.Parse(DateTimeFormat, m.StockTimeEnd)
|
||||
if err != nil {
|
||||
//logger.Error("stock time end parse err:", err)
|
||||
} else {
|
||||
qs = qs.Where("first_stock_time<?", endTime)
|
||||
}
|
||||
}
|
||||
if m.Age != 0 {
|
||||
qs = qs.Where("stock_time<?", time.Now().AddDate(0, 0, int(m.Age)*(-1)))
|
||||
}
|
||||
if m.AllAge != 0 {
|
||||
qs = qs.Where("first_stock_time<?", time.Now().AddDate(0, 0, int(m.AllAge)*(-1)))
|
||||
}
|
||||
//if m.StockType != 0 {
|
||||
// if m.StockType == 2 {
|
||||
// qs = qs.Where("count>0")
|
||||
// } else if m.StockType == 3 {
|
||||
// qs = qs.Where("count=0")
|
||||
// }
|
||||
//}
|
||||
|
||||
qs := orm.Eloquent.Table("erp_stock_commodity").Order("id DESC")
|
||||
|
||||
// 构建查询条件
|
||||
m.buildQueryConditions(qs)
|
||||
|
||||
var count int64
|
||||
err := qs.Count(&count).Error
|
||||
if err != nil {
|
||||
if err := qs.Count(&count).Error; err != nil {
|
||||
//logger.Error("count err:", err)
|
||||
return resp, err
|
||||
}
|
||||
resp.Total = int(count)/m.PageSize + 1
|
||||
var commodities []ErpStockCommodity
|
||||
|
||||
//获取库存商品列表
|
||||
var commodities []ErpStockCommodity
|
||||
if m.IsExport == 1 {
|
||||
err = qs.Order("id DESC").Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
err := qs.Find(&commodities).Error
|
||||
if err != nil && !errors.Is(err, RecordNotFound) {
|
||||
//logger.Error("dailys err:", err)
|
||||
return resp, err
|
||||
}
|
||||
|
@ -1580,8 +1309,8 @@ func (m *ErpStockCommodityListReq) List() (*ErpStockCommodityListResp, error) {
|
|||
//}
|
||||
//resp.ExportUrl = listExport
|
||||
} else {
|
||||
err = qs.Order("id DESC").Offset(page * m.PageSize).Limit(m.PageSize).Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
err := qs.Offset(page * m.PageSize).Limit(m.PageSize).Find(&commodities).Error
|
||||
if err != nil && !errors.Is(err, RecordNotFound) {
|
||||
//logger.Error("erp commodity list err:", err)
|
||||
return resp, err
|
||||
}
|
||||
|
@ -1592,47 +1321,71 @@ func (m *ErpStockCommodityListReq) List() (*ErpStockCommodityListResp, error) {
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
//func ErpOrderListExport(list []ErpOrder) (string, error) {
|
||||
// file := excelize.NewFile()
|
||||
// streamWriter, err := file.NewStreamWriter("Sheet1")
|
||||
// if err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
//
|
||||
// //url := "http://39.108.188.218:8000/img/export/"
|
||||
// fileName := time.Now().Format(TimeFormat) + "零售订单" + ".xlsx"
|
||||
//
|
||||
// title := []interface{}{"单据编号", "类型", "手机号", "店铺名称", "制单人", "制单时间", "审核时间", "审核人", "状态"}
|
||||
// cell, _ := excelize.CoordinatesToCellName(1, 1)
|
||||
// if err = streamWriter.SetRow(cell, title); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// var row []interface{}
|
||||
// for rowId := 0; rowId < len(list); rowId++ {
|
||||
// row = []interface{}{list[rowId].BillSn, list[rowId].RetailType, list[rowId].Tel, list[rowId].StoreName,
|
||||
// list[rowId].MakerName, list[rowId].MakerId, list[rowId].MakerTime.Format(TimeFormat),
|
||||
// list[rowId].AuditTime.Format(TimeFormat), list[rowId].AuditorName, ErpOrderStateToString(list[rowId].State),
|
||||
// }
|
||||
// cell, _ := excelize.CoordinatesToCellName(1, rowId+2)
|
||||
// if err := streamWriter.SetRow(cell, row); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// }
|
||||
// if err := streamWriter.Flush(); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// //if err := file.SaveAs("/www/server/images/export/" + fileName); err != nil {
|
||||
// if err := file.SaveAs("./" + fileName); err != nil {
|
||||
// fmt.Println(err)
|
||||
// }
|
||||
// return ExportBaseUrl + fileName, nil
|
||||
//}
|
||||
//
|
||||
//func ErpOrderStateToString(state string) string {
|
||||
// if state == ErpOrderStateUnAudit {
|
||||
// return "未审核"
|
||||
// } else if state == ErpOrderStateAudited {
|
||||
// return "已审核"
|
||||
// }
|
||||
// return ""
|
||||
//}
|
||||
// buildQueryConditions 根据请求参数构建查询条件
|
||||
func (m *ErpStockCommodityListReq) buildQueryConditions(qs *gorm.DB) {
|
||||
if m.ErpStockId != 0 { //库存id
|
||||
qs = qs.Where("erp_stock_id=?", m.ErpStockId)
|
||||
}
|
||||
|
||||
if m.ErpCommodityId != 0 { //商品id
|
||||
qs = qs.Where("erp_commodity_id=?", m.ErpCommodityId)
|
||||
}
|
||||
|
||||
if m.SerialNumber != "" { //商品编号
|
||||
qs = qs.Where("commodity_serial_number=?", m.SerialNumber)
|
||||
}
|
||||
|
||||
if m.CommodityName != "" { //商品名称
|
||||
qs = qs.Where("erp_commodity_name LIKE ?", "%"+m.CommodityName+"%")
|
||||
}
|
||||
|
||||
if m.ErpCategoryId != 0 { //商品分类id
|
||||
qs = qs.Where("erp_category_id=?", m.ErpCategoryId)
|
||||
}
|
||||
|
||||
if m.IMEI != "" { //商品串码
|
||||
qs = qs.Where("imei=?", m.IMEI)
|
||||
}
|
||||
|
||||
if m.StoreId != 0 { //门店编号
|
||||
qs = qs.Where("store_id=?", m.StoreId)
|
||||
}
|
||||
|
||||
if m.State != 0 { //库存状态
|
||||
qs = qs.Where("state=?", m.State)
|
||||
}
|
||||
|
||||
if m.Sn != "" { //首次入库订单编号
|
||||
qs = qs.Where("stock_sn=?", m.Sn)
|
||||
}
|
||||
|
||||
if m.StorageType != 0 { //首次入库方式
|
||||
qs = qs.Where("storage_type=?", m.StorageType)
|
||||
}
|
||||
|
||||
if m.StockTimeStart != "" { //最近入库开始时间
|
||||
startTime, err := time.Parse(DateTimeFormat, m.StockTimeStart)
|
||||
if err == nil {
|
||||
qs = qs.Where("first_stock_time>?", startTime)
|
||||
} else {
|
||||
//logger.Error("stock time start parse err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
if m.StockTimeEnd != "" { //最近入库结束时间
|
||||
endTime, err := time.Parse(DateTimeFormat, m.StockTimeEnd)
|
||||
if err == nil {
|
||||
qs = qs.Where("first_stock_time<?", endTime)
|
||||
} else {
|
||||
//logger.Error("stock time end parse err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
if m.Age != 0 { //最近库龄
|
||||
qs = qs.Where("stock_time<?", time.Now().AddDate(0, 0, int(m.Age)*(-1)))
|
||||
}
|
||||
|
||||
if m.AllAge != 0 { //总库龄
|
||||
qs = qs.Where("first_stock_time<?", time.Now().AddDate(0, 0, int(m.AllAge)*(-1)))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ func (s *Supplier) BeforeCreate(tx *gorm.DB) error {
|
|||
logger.Error("get supplier count failed", logger.Field("err", err), logger.Field("s", s))
|
||||
return err
|
||||
}
|
||||
s.Number = fmt.Sprintf("%03d", count)
|
||||
s.Number = fmt.Sprintf("%03d", count+1)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
14
app/admin/router/inventory.go
Normal file
14
app/admin/router/inventory.go
Normal file
|
@ -0,0 +1,14 @@
|
|||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/apis/inventory"
|
||||
"go-admin/app/admin/middleware"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
)
|
||||
|
||||
func registerInventoryManageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
r := v1.Group("/inventory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
r.POST("list", inventory.GetInventoryList)
|
||||
r.POST("detail", inventory.GetInventoryDetail)
|
||||
}
|
|
@ -94,12 +94,14 @@ func examplesCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddle
|
|||
// 回收卡
|
||||
registerRecycleCardManageRouter(v1, authMiddleware)
|
||||
|
||||
//供应商
|
||||
// 供应商
|
||||
registerSupplierRouter(v1, authMiddleware)
|
||||
//商品分类
|
||||
// 商品分类
|
||||
registerCategoryRouter(v1, authMiddleware)
|
||||
//商品资料
|
||||
// 商品资料
|
||||
registerCommodityRouter(v1, authMiddleware)
|
||||
//收付款账号设置
|
||||
// 收付款账号设置
|
||||
registerCashierRouter(v1, authMiddleware)
|
||||
// 库存管理
|
||||
registerInventoryManageRouter(v1, authMiddleware)
|
||||
}
|
||||
|
|
427
docs/docs.go
427
docs/docs.go
|
@ -10,10 +10,6 @@ const docTemplate = `{
|
|||
"description": "{{escape .Description}}",
|
||||
"title": "{{.Title}}",
|
||||
"contact": {},
|
||||
"license": {
|
||||
"name": "MIT",
|
||||
"url": "https://github.com/wenjianzhang/go-admin/blob/master/LICENSE.md"
|
||||
},
|
||||
"version": "{{.Version}}"
|
||||
},
|
||||
"host": "{{.Host}}",
|
||||
|
@ -1466,6 +1462,72 @@ const docTemplate = `{
|
|||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/inventory/detail": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"库存管理"
|
||||
],
|
||||
"summary": "查询库存详情",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "查询库存详情模型",
|
||||
"name": "request",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodityListReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodityListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/inventory/list": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"库存管理"
|
||||
],
|
||||
"summary": "查询库存列表",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "查询库存列表模型",
|
||||
"name": "request",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockListReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/loginlog": {
|
||||
"put": {
|
||||
"security": [
|
||||
|
@ -4331,6 +4393,350 @@ const docTemplate = `{
|
|||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStock": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"commodities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodity"
|
||||
}
|
||||
},
|
||||
"commodity_serial_number": {
|
||||
"description": "商品编码/串码",
|
||||
"type": "string"
|
||||
},
|
||||
"count": {
|
||||
"description": "数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"createdAt": {
|
||||
"description": "创建时间",
|
||||
"type": "string"
|
||||
},
|
||||
"dispatch_count": {
|
||||
"description": "调拨中数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "分类id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_name": {
|
||||
"description": "分类名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "数据库记录编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei_type": {
|
||||
"description": "1-无串码 2-串码(系统生成) 3-串码(手动添加)",
|
||||
"type": "integer"
|
||||
},
|
||||
"min_retail_price": {
|
||||
"description": "最低零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"retail_price": {
|
||||
"description": "指导零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_name": {
|
||||
"description": "门店名称",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"age": {
|
||||
"description": "最近库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"all_age": {
|
||||
"description": "总库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"commodity_serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"count": {
|
||||
"description": "数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"createdAt": {
|
||||
"description": "创建时间",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "分类id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_name": {
|
||||
"description": "分类名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_stock_id": {
|
||||
"description": "库存id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_supplier_id": {
|
||||
"description": "供应商id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_supplier_name": {
|
||||
"description": "供应商名称",
|
||||
"type": "string"
|
||||
},
|
||||
"first_stock_time": {
|
||||
"description": "首次入库时间",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "数据库记录编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei": {
|
||||
"description": "商品串码",
|
||||
"type": "string"
|
||||
},
|
||||
"imei_type": {
|
||||
"description": "是否串码:1-无串码 2-串码(系统生成) 3-串码(手动添加)",
|
||||
"type": "integer"
|
||||
},
|
||||
"min_retail_price": {
|
||||
"description": "最低零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"original_sn": {
|
||||
"description": "首次入库订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"retail_price": {
|
||||
"description": "指导零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"staff_cost_price": {
|
||||
"description": "员工成本价加价",
|
||||
"type": "integer"
|
||||
},
|
||||
"state": {
|
||||
"description": "状态:1-在库 2-已售 3-采购退货 4-调拨中",
|
||||
"type": "integer"
|
||||
},
|
||||
"stock_end_time": {
|
||||
"description": "最近入库结束时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_sn": {
|
||||
"description": "库存订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_start_time": {
|
||||
"description": "最近入库开始时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_time": {
|
||||
"description": "最近入库时间",
|
||||
"type": "string"
|
||||
},
|
||||
"storage_type": {
|
||||
"description": "入库方式:1-系统入库 2-采购入库",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店id",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_name": {
|
||||
"description": "门店名称",
|
||||
"type": "string"
|
||||
},
|
||||
"wholesale_price": {
|
||||
"description": "指导采购价",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodityListReq": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"age": {
|
||||
"description": "最近库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"all_age": {
|
||||
"description": "总库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "商品分类Id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_stock_id": {
|
||||
"description": "库存id",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei": {
|
||||
"description": "串码",
|
||||
"type": "string"
|
||||
},
|
||||
"is_export": {
|
||||
"description": "是否导出excel:1-导出",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_num": {
|
||||
"description": "页面条数",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"description": "页码",
|
||||
"type": "integer"
|
||||
},
|
||||
"serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"sn": {
|
||||
"description": "首次入库订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"state": {
|
||||
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中",
|
||||
"type": "integer"
|
||||
},
|
||||
"stock_time_end": {
|
||||
"description": "最近入库结束时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_time_start": {
|
||||
"description": "最近入库开始时间",
|
||||
"type": "string"
|
||||
},
|
||||
"storage_type": {
|
||||
"description": "首次入库方式:1-系统入库 2-采购入库",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"supplier_id": {
|
||||
"description": "供应商id",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodityListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"export_url": {
|
||||
"type": "string"
|
||||
},
|
||||
"list": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodity"
|
||||
}
|
||||
},
|
||||
"page_num": {
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockListReq": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "商品分类",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_num": {
|
||||
"description": "页面条数",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"description": "页码",
|
||||
"type": "integer"
|
||||
},
|
||||
"serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_type": {
|
||||
"description": "库存情况:1-全部 2-有库存 3-无库存",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"export_url": {
|
||||
"type": "string"
|
||||
},
|
||||
"list": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStock"
|
||||
}
|
||||
},
|
||||
"page_num": {
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.Login": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
|
@ -5493,24 +5899,17 @@ const docTemplate = `{
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securityDefinitions": {
|
||||
"Bearer": {
|
||||
"type": "apiKey",
|
||||
"name": "Authorization",
|
||||
"in": "header"
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
||||
var SwaggerInfo = &swag.Spec{
|
||||
Version: "1.0.1",
|
||||
Version: "",
|
||||
Host: "",
|
||||
BasePath: "",
|
||||
Schemes: []string{},
|
||||
Title: "go-admin API",
|
||||
Description: "基于Gin + Vue + Element UI的前后端分离权限管理系统的接口文档\n添加qq群: 74520518 进入技术交流群 请备注,谢谢!",
|
||||
Title: "",
|
||||
Description: "",
|
||||
InfoInstanceName: "swagger",
|
||||
SwaggerTemplate: docTemplate,
|
||||
LeftDelim: "{{",
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"description": "基于Gin + Vue + Element UI的前后端分离权限管理系统的接口文档\n添加qq群: 74520518 进入技术交流群 请备注,谢谢!",
|
||||
"title": "go-admin API",
|
||||
"contact": {},
|
||||
"license": {
|
||||
"name": "MIT",
|
||||
"url": "https://github.com/wenjianzhang/go-admin/blob/master/LICENSE.md"
|
||||
},
|
||||
"version": "1.0.1"
|
||||
"contact": {}
|
||||
},
|
||||
"paths": {
|
||||
"/api/v1/cashier/create": {
|
||||
|
@ -1458,6 +1451,72 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/inventory/detail": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"库存管理"
|
||||
],
|
||||
"summary": "查询库存详情",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "查询库存详情模型",
|
||||
"name": "request",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodityListReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodityListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/inventory/list": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"库存管理"
|
||||
],
|
||||
"summary": "查询库存列表",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "查询库存列表模型",
|
||||
"name": "request",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockListReq"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/models.ErpStockListResp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/loginlog": {
|
||||
"put": {
|
||||
"security": [
|
||||
|
@ -4323,6 +4382,350 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStock": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"commodities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodity"
|
||||
}
|
||||
},
|
||||
"commodity_serial_number": {
|
||||
"description": "商品编码/串码",
|
||||
"type": "string"
|
||||
},
|
||||
"count": {
|
||||
"description": "数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"createdAt": {
|
||||
"description": "创建时间",
|
||||
"type": "string"
|
||||
},
|
||||
"dispatch_count": {
|
||||
"description": "调拨中数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "分类id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_name": {
|
||||
"description": "分类名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "数据库记录编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei_type": {
|
||||
"description": "1-无串码 2-串码(系统生成) 3-串码(手动添加)",
|
||||
"type": "integer"
|
||||
},
|
||||
"min_retail_price": {
|
||||
"description": "最低零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"retail_price": {
|
||||
"description": "指导零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_name": {
|
||||
"description": "门店名称",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"age": {
|
||||
"description": "最近库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"all_age": {
|
||||
"description": "总库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"commodity_serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"count": {
|
||||
"description": "数量",
|
||||
"type": "integer"
|
||||
},
|
||||
"createdAt": {
|
||||
"description": "创建时间",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "分类id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_category_name": {
|
||||
"description": "分类名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_stock_id": {
|
||||
"description": "库存id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_supplier_id": {
|
||||
"description": "供应商id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_supplier_name": {
|
||||
"description": "供应商名称",
|
||||
"type": "string"
|
||||
},
|
||||
"first_stock_time": {
|
||||
"description": "首次入库时间",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "数据库记录编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei": {
|
||||
"description": "商品串码",
|
||||
"type": "string"
|
||||
},
|
||||
"imei_type": {
|
||||
"description": "是否串码:1-无串码 2-串码(系统生成) 3-串码(手动添加)",
|
||||
"type": "integer"
|
||||
},
|
||||
"min_retail_price": {
|
||||
"description": "最低零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"original_sn": {
|
||||
"description": "首次入库订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"retail_price": {
|
||||
"description": "指导零售价",
|
||||
"type": "integer"
|
||||
},
|
||||
"staff_cost_price": {
|
||||
"description": "员工成本价加价",
|
||||
"type": "integer"
|
||||
},
|
||||
"state": {
|
||||
"description": "状态:1-在库 2-已售 3-采购退货 4-调拨中",
|
||||
"type": "integer"
|
||||
},
|
||||
"stock_end_time": {
|
||||
"description": "最近入库结束时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_sn": {
|
||||
"description": "库存订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_start_time": {
|
||||
"description": "最近入库开始时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_time": {
|
||||
"description": "最近入库时间",
|
||||
"type": "string"
|
||||
},
|
||||
"storage_type": {
|
||||
"description": "入库方式:1-系统入库 2-采购入库",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店id",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_name": {
|
||||
"description": "门店名称",
|
||||
"type": "string"
|
||||
},
|
||||
"wholesale_price": {
|
||||
"description": "指导采购价",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodityListReq": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"age": {
|
||||
"description": "最近库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"all_age": {
|
||||
"description": "总库龄",
|
||||
"type": "integer"
|
||||
},
|
||||
"commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "商品分类Id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_commodity_id": {
|
||||
"description": "商品id",
|
||||
"type": "integer"
|
||||
},
|
||||
"erp_stock_id": {
|
||||
"description": "库存id",
|
||||
"type": "integer"
|
||||
},
|
||||
"imei": {
|
||||
"description": "串码",
|
||||
"type": "string"
|
||||
},
|
||||
"is_export": {
|
||||
"description": "是否导出excel:1-导出",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_num": {
|
||||
"description": "页面条数",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"description": "页码",
|
||||
"type": "integer"
|
||||
},
|
||||
"serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"sn": {
|
||||
"description": "首次入库订单编号",
|
||||
"type": "string"
|
||||
},
|
||||
"state": {
|
||||
"description": "库存状态:1-在库 2-已售 3-采购退货 4-调拨中",
|
||||
"type": "integer"
|
||||
},
|
||||
"stock_time_end": {
|
||||
"description": "最近入库结束时间",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_time_start": {
|
||||
"description": "最近入库开始时间",
|
||||
"type": "string"
|
||||
},
|
||||
"storage_type": {
|
||||
"description": "首次入库方式:1-系统入库 2-采购入库",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
},
|
||||
"supplier_id": {
|
||||
"description": "供应商id",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockCommodityListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"export_url": {
|
||||
"type": "string"
|
||||
},
|
||||
"list": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStockCommodity"
|
||||
}
|
||||
},
|
||||
"page_num": {
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockListReq": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"commodity_name": {
|
||||
"description": "商品名称",
|
||||
"type": "string"
|
||||
},
|
||||
"erp_category_id": {
|
||||
"description": "商品分类",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_num": {
|
||||
"description": "页面条数",
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"description": "页码",
|
||||
"type": "integer"
|
||||
},
|
||||
"serial_number": {
|
||||
"description": "商品编号",
|
||||
"type": "string"
|
||||
},
|
||||
"stock_type": {
|
||||
"description": "库存情况:1-全部 2-有库存 3-无库存",
|
||||
"type": "integer"
|
||||
},
|
||||
"store_id": {
|
||||
"description": "门店编号",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.ErpStockListResp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"export_url": {
|
||||
"type": "string"
|
||||
},
|
||||
"list": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/models.ErpStock"
|
||||
}
|
||||
},
|
||||
"page_num": {
|
||||
"type": "integer"
|
||||
},
|
||||
"page_size": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"models.Login": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
|
@ -5485,12 +5888,5 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securityDefinitions": {
|
||||
"Bearer": {
|
||||
"type": "apiKey",
|
||||
"name": "Authorization",
|
||||
"in": "header"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -779,6 +779,256 @@ definitions:
|
|||
description: 总页数
|
||||
type: integer
|
||||
type: object
|
||||
models.ErpStock:
|
||||
properties:
|
||||
commodities:
|
||||
items:
|
||||
$ref: '#/definitions/models.ErpStockCommodity'
|
||||
type: array
|
||||
commodity_serial_number:
|
||||
description: 商品编码/串码
|
||||
type: string
|
||||
count:
|
||||
description: 数量
|
||||
type: integer
|
||||
createdAt:
|
||||
description: 创建时间
|
||||
type: string
|
||||
dispatch_count:
|
||||
description: 调拨中数量
|
||||
type: integer
|
||||
erp_category_id:
|
||||
description: 分类id
|
||||
type: integer
|
||||
erp_category_name:
|
||||
description: 分类名称
|
||||
type: string
|
||||
erp_commodity_id:
|
||||
description: 商品id
|
||||
type: integer
|
||||
erp_commodity_name:
|
||||
description: 商品名称
|
||||
type: string
|
||||
id:
|
||||
description: 数据库记录编号
|
||||
type: integer
|
||||
imei_type:
|
||||
description: 1-无串码 2-串码(系统生成) 3-串码(手动添加)
|
||||
type: integer
|
||||
min_retail_price:
|
||||
description: 最低零售价
|
||||
type: integer
|
||||
retail_price:
|
||||
description: 指导零售价
|
||||
type: integer
|
||||
store_id:
|
||||
description: 门店编号
|
||||
type: integer
|
||||
store_name:
|
||||
description: 门店名称
|
||||
type: string
|
||||
type: object
|
||||
models.ErpStockCommodity:
|
||||
properties:
|
||||
age:
|
||||
description: 最近库龄
|
||||
type: integer
|
||||
all_age:
|
||||
description: 总库龄
|
||||
type: integer
|
||||
commodity_serial_number:
|
||||
description: 商品编号
|
||||
type: string
|
||||
count:
|
||||
description: 数量
|
||||
type: integer
|
||||
createdAt:
|
||||
description: 创建时间
|
||||
type: string
|
||||
erp_category_id:
|
||||
description: 分类id
|
||||
type: integer
|
||||
erp_category_name:
|
||||
description: 分类名称
|
||||
type: string
|
||||
erp_commodity_id:
|
||||
description: 商品id
|
||||
type: integer
|
||||
erp_commodity_name:
|
||||
description: 商品名称
|
||||
type: string
|
||||
erp_stock_id:
|
||||
description: 库存id
|
||||
type: integer
|
||||
erp_supplier_id:
|
||||
description: 供应商id
|
||||
type: integer
|
||||
erp_supplier_name:
|
||||
description: 供应商名称
|
||||
type: string
|
||||
first_stock_time:
|
||||
description: 首次入库时间
|
||||
type: string
|
||||
id:
|
||||
description: 数据库记录编号
|
||||
type: integer
|
||||
imei:
|
||||
description: 商品串码
|
||||
type: string
|
||||
imei_type:
|
||||
description: 是否串码:1-无串码 2-串码(系统生成) 3-串码(手动添加)
|
||||
type: integer
|
||||
min_retail_price:
|
||||
description: 最低零售价
|
||||
type: integer
|
||||
original_sn:
|
||||
description: 首次入库订单编号
|
||||
type: string
|
||||
retail_price:
|
||||
description: 指导零售价
|
||||
type: integer
|
||||
staff_cost_price:
|
||||
description: 员工成本价加价
|
||||
type: integer
|
||||
state:
|
||||
description: 状态:1-在库 2-已售 3-采购退货 4-调拨中
|
||||
type: integer
|
||||
stock_end_time:
|
||||
description: 最近入库结束时间
|
||||
type: string
|
||||
stock_sn:
|
||||
description: 库存订单编号
|
||||
type: string
|
||||
stock_start_time:
|
||||
description: 最近入库开始时间
|
||||
type: string
|
||||
stock_time:
|
||||
description: 最近入库时间
|
||||
type: string
|
||||
storage_type:
|
||||
description: 入库方式:1-系统入库 2-采购入库
|
||||
type: integer
|
||||
store_id:
|
||||
description: 门店id
|
||||
type: integer
|
||||
store_name:
|
||||
description: 门店名称
|
||||
type: string
|
||||
wholesale_price:
|
||||
description: 指导采购价
|
||||
type: integer
|
||||
type: object
|
||||
models.ErpStockCommodityListReq:
|
||||
properties:
|
||||
age:
|
||||
description: 最近库龄
|
||||
type: integer
|
||||
all_age:
|
||||
description: 总库龄
|
||||
type: integer
|
||||
commodity_name:
|
||||
description: 商品名称
|
||||
type: string
|
||||
erp_category_id:
|
||||
description: 商品分类Id
|
||||
type: integer
|
||||
erp_commodity_id:
|
||||
description: 商品id
|
||||
type: integer
|
||||
erp_stock_id:
|
||||
description: 库存id
|
||||
type: integer
|
||||
imei:
|
||||
description: 串码
|
||||
type: string
|
||||
is_export:
|
||||
description: 是否导出excel:1-导出
|
||||
type: integer
|
||||
page_num:
|
||||
description: 页面条数
|
||||
type: integer
|
||||
page_size:
|
||||
description: 页码
|
||||
type: integer
|
||||
serial_number:
|
||||
description: 商品编号
|
||||
type: string
|
||||
sn:
|
||||
description: 首次入库订单编号
|
||||
type: string
|
||||
state:
|
||||
description: 库存状态:1-在库 2-已售 3-采购退货 4-调拨中
|
||||
type: integer
|
||||
stock_time_end:
|
||||
description: 最近入库结束时间
|
||||
type: string
|
||||
stock_time_start:
|
||||
description: 最近入库开始时间
|
||||
type: string
|
||||
storage_type:
|
||||
description: 首次入库方式:1-系统入库 2-采购入库
|
||||
type: integer
|
||||
store_id:
|
||||
description: 门店编号
|
||||
type: integer
|
||||
supplier_id:
|
||||
description: 供应商id
|
||||
type: integer
|
||||
type: object
|
||||
models.ErpStockCommodityListResp:
|
||||
properties:
|
||||
export_url:
|
||||
type: string
|
||||
list:
|
||||
items:
|
||||
$ref: '#/definitions/models.ErpStockCommodity'
|
||||
type: array
|
||||
page_num:
|
||||
type: integer
|
||||
page_size:
|
||||
type: integer
|
||||
total:
|
||||
type: integer
|
||||
type: object
|
||||
models.ErpStockListReq:
|
||||
properties:
|
||||
commodity_name:
|
||||
description: 商品名称
|
||||
type: string
|
||||
erp_category_id:
|
||||
description: 商品分类
|
||||
type: integer
|
||||
page_num:
|
||||
description: 页面条数
|
||||
type: integer
|
||||
page_size:
|
||||
description: 页码
|
||||
type: integer
|
||||
serial_number:
|
||||
description: 商品编号
|
||||
type: string
|
||||
stock_type:
|
||||
description: 库存情况:1-全部 2-有库存 3-无库存
|
||||
type: integer
|
||||
store_id:
|
||||
description: 门店编号
|
||||
type: integer
|
||||
type: object
|
||||
models.ErpStockListResp:
|
||||
properties:
|
||||
export_url:
|
||||
type: string
|
||||
list:
|
||||
items:
|
||||
$ref: '#/definitions/models.ErpStock'
|
||||
type: array
|
||||
page_num:
|
||||
type: integer
|
||||
page_size:
|
||||
type: integer
|
||||
total:
|
||||
type: integer
|
||||
type: object
|
||||
models.Login:
|
||||
properties:
|
||||
code:
|
||||
|
@ -1605,14 +1855,6 @@ definitions:
|
|||
type: object
|
||||
info:
|
||||
contact: {}
|
||||
description: |-
|
||||
基于Gin + Vue + Element UI的前后端分离权限管理系统的接口文档
|
||||
添加qq群: 74520518 进入技术交流群 请备注,谢谢!
|
||||
license:
|
||||
name: MIT
|
||||
url: https://github.com/wenjianzhang/go-admin/blob/master/LICENSE.md
|
||||
title: go-admin API
|
||||
version: 1.0.1
|
||||
paths:
|
||||
/api/v1/cashier/create:
|
||||
post:
|
||||
|
@ -2527,6 +2769,48 @@ paths:
|
|||
summary: 字典类型列表数据
|
||||
tags:
|
||||
- system/字典类型
|
||||
/api/v1/inventory/detail:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- description: 查询库存详情模型
|
||||
in: body
|
||||
name: request
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/models.ErpStockCommodityListReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/models.ErpStockCommodityListResp'
|
||||
summary: 查询库存详情
|
||||
tags:
|
||||
- 库存管理
|
||||
/api/v1/inventory/list:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- description: 查询库存列表模型
|
||||
in: body
|
||||
name: request
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/models.ErpStockListReq'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/models.ErpStockListResp'
|
||||
summary: 查询库存列表
|
||||
tags:
|
||||
- 库存管理
|
||||
/api/v1/loginlog:
|
||||
post:
|
||||
consumes:
|
||||
|
@ -3670,9 +3954,4 @@ paths:
|
|||
summary: 退出登录
|
||||
tags:
|
||||
- system/用户
|
||||
securityDefinitions:
|
||||
Bearer:
|
||||
in: header
|
||||
name: Authorization
|
||||
type: apiKey
|
||||
swagger: "2.0"
|
||||
|
|
Loading…
Reference in New Issue
Block a user