1.新增采购需求相关接口;

This commit is contained in:
chenlin 2024-02-23 18:06:21 +08:00
parent 3a44010235
commit ed3d037a6e
11 changed files with 2713 additions and 334 deletions

View File

@ -362,6 +362,18 @@ func CommodityDel(c *gin.Context) {
return
}
// 检查商品是否存在
if !models.IsExistingCommodity(req.ErpCommodityId) {
app.Error(c, http.StatusInternalServerError, errors.New("该商品不存在"), "该商品不存在")
return
}
// 删除商品之前需要判断该商品是否有库存
if models.CheckCommodityIsHavaStock(req.ErpCommodityId) {
app.Error(c, http.StatusInternalServerError, errors.New("该商品有库存不可删除"), "该商品有库存不可删除")
return
}
err := orm.Eloquent.Table("erp_commodity").Where("id=?", req.ErpCommodityId).Delete(&models.ErpCommodity{}).Error
if err != nil {
//logger.Error("erp commodity err:", err)

View File

@ -2,6 +2,7 @@ package purchasemanage
import (
"errors"
"fmt"
"github.com/gin-gonic/gin"
model "go-admin/app/admin/models"
orm "go-admin/common/global"
@ -154,6 +155,12 @@ func ErpPurchaseDetail(c *gin.Context) {
app.Error(c, http.StatusBadRequest, err, "获取失败")
return
}
if purchaseOrder.ID == 0 {
logger.Error("purchase commodities err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, err, fmt.Sprintf("未查询到采购订单[%d]", req.ErpPurchaseOrderId))
return
}
var purchaseCommodities []model.ErpPurchaseCommodity
err = orm.Eloquent.Table("erp_purchase_commodity").Where("erp_purchase_order_id=?", req.ErpPurchaseOrderId).
Find(&purchaseCommodities).Error
@ -162,9 +169,26 @@ func ErpPurchaseDetail(c *gin.Context) {
app.Error(c, http.StatusBadRequest, err, "获取失败")
return
}
purchaseOrder.Commodities = purchaseCommodities
// todo 需要添加实际采购入库信息
// 添加实际采购入库信息
var commodityList []model.ErpPurchaseCommodity
for _, v := range purchaseCommodities {
result, err := model.GetTotalsAndAveragesByCommodityID(v.ErpCommodityId)
if err != nil {
logger.Error("GetTotalsAndAveragesByCommodityID err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, err, "获取失败")
return
}
v.ExecutionCount = result.TotalCount
v.ExecutionAmount = result.TotalAmount
v.ExecutionEmployeePrice = result.AvgEmployeePrice
v.ExecutionPrice = result.AvgImplementationPrice
commodityList = append(commodityList, v)
}
purchaseOrder.Commodities = commodityList
app.OK(c, purchaseOrder, "")
return
}
@ -355,7 +379,7 @@ func ErpPurchaseInventory(c *gin.Context) {
return
}
app.OK(c, nil, "")
app.OK(c, nil, "操作成功")
return
}
@ -437,6 +461,101 @@ func ErpPurchaseExecute(c *gin.Context) {
return
}
app.OK(c, resp, "")
app.OK(c, resp, "执行成功")
return
}
// ErpPurchaseDemandCreate 创建采购需求
// @Summary 创建采购需求
// @Tags 采购需求, V1.3.0
// @Produce json
// @Accept json
// @Param request body models.CreateErpPurchaseDemandReq true "创建采购需求模型"
// @Success 200 {object} app.Response
// @Router /api/v1/erp_purchase/demand/create [post]
func ErpPurchaseDemandCreate(c *gin.Context) {
req := new(model.CreateErpPurchaseDemandReq)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error("ShouldBindJSON err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
sysUser, err := model.GetSysUserByCtx(c)
if err != nil {
logger.Error("sys user err:", logger.Field("err", err))
app.Error(c, http.StatusInternalServerError, err, "操作失败")
return
}
err = model.CreateErpPurchaseDemand(req, sysUser)
if err != nil {
logger.Error("CreateErpPurchaseDemand err:", logger.Field("err", err))
app.Error(c, http.StatusInternalServerError, err, "创建失败:"+err.Error())
return
}
app.OK(c, nil, "创建成功")
return
}
// ErpPurchaseDemandGet 获取采购需求
// @Summary 获取采购需求
// @Tags 采购需求, V1.3.0
// @Produce json
// @Accept json
// @Param request body models.GetErpPurchaseDemandReq true "获取采购需求模型"
// @Success 200 {object} models.GetErpPurchaseDemandResp
// @Router /api/v1/erp_purchase/demand/get [post]
func ErpPurchaseDemandGet(c *gin.Context) {
req := new(model.GetErpPurchaseDemandReq)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error("ShouldBindJSON err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
resp, err := model.GetErpPurchaseDemand(req)
if err != nil {
logger.Error("GetErpPurchaseDemand err:", logger.Field("err", err))
app.Error(c, http.StatusInternalServerError, err, "获取失败:"+err.Error())
return
}
app.OK(c, resp, "获取成功")
return
}
// ErpPurchaseDemandFinish 完成采购需求
// @Summary 完成采购需求
// @Tags 采购需求, V1.3.0
// @Produce json
// @Accept json
// @Param request body models.FinishErpPurchaseDemandReq true "完成采购需求模型"
// @Success 200 {object} app.Response
// @Router /api/v1/erp_purchase/demand/finish [post]
func ErpPurchaseDemandFinish(c *gin.Context) {
req := new(model.FinishErpPurchaseDemandReq)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error("ShouldBindJSON err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
sysUser, err := model.GetSysUserByCtx(c)
if err != nil {
logger.Error("sys user err:", logger.Field("err", err))
app.Error(c, http.StatusInternalServerError, err, "操作失败")
return
}
err = model.FinishErpPurchaseDemand(req, sysUser)
if err != nil {
logger.Error("CreateErpPurchaseDemand err:", logger.Field("err", err))
app.Error(c, http.StatusInternalServerError, err, "操作失败:"+err.Error())
return
}
app.OK(c, nil, "操作成功")
return
}

View File

@ -183,6 +183,7 @@ func InsertSysUser(c *gin.Context) {
CooperativeBusinessId: req.CooperativeBusinessId,
CooperativeName: req.CooperativeName,
SalesCommRate: SalesCommRateFloat,
Uid: req.Uid,
},
}
@ -241,6 +242,7 @@ func UpdateSysUser(c *gin.Context) {
CooperativeBusinessId: req.CooperativeBusinessId,
CooperativeName: req.CooperativeName,
SalesCommRate: SalesCommRateFloat,
Uid: req.Uid,
},
}

View File

@ -1400,8 +1400,10 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq) (*ErpOrderStoreManage
logger.Error("QueryStoreManageData count err:", logger.Field("err", err))
return nil, err
}
resp.Total = len(storeManageDataList)
storeManageDataList = nil
finalStoreManageDataList := constructFinalStoreManageDataList(storeManageDataList, req)
resp.Total = len(finalStoreManageDataList)
finalStoreManageDataList = nil
if req.IsExport == 1 { //导出excel
// 查询数据
@ -1426,7 +1428,8 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq) (*ErpOrderStoreManage
storeName = storeInfo.Name
}
filePath, err := storeManageDataExport(storeManageDataList, storeName)
finalStoreManageDataList = constructFinalStoreManageDataList(storeManageDataList, req)
filePath, err := storeManageDataExport(finalStoreManageDataList, storeName)
if err != nil {
logger.Error("StoreManageDataExport err:", logger.Field("err", err))
return nil, err
@ -1448,7 +1451,8 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq) (*ErpOrderStoreManage
return nil, err
}
resp.List = storeManageDataList
finalStoreManageDataList = constructFinalStoreManageDataList(storeManageDataList, req)
resp.List = finalStoreManageDataList
resp.PageIndex = req.PageIndex
resp.PageSize = req.PageSize
}
@ -1456,6 +1460,46 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq) (*ErpOrderStoreManage
return resp, nil
}
// 查询门店经营数据为空的日期默认填充数据为0
func constructFinalStoreManageDataList(storeManageDataList []StoreManageData, req *ErpOrderStoreManageDataReq) []StoreManageData {
// Create a map to store data by date for easier processing
storeDataMap := make(map[string]StoreManageData)
for _, data := range storeManageDataList {
storeDataMap[data.Date] = data
}
// Construct the final response with consecutive dates and defaulting to 0 for missing data
var finalStoreManageDataList []StoreManageData
startDate, err := time.Parse(QueryTimeFormat, req.StartTime)
if err != nil {
logger.Error("constructFinalStoreManageDataList time Parse err:", logger.Field("err", err))
return storeManageDataList
}
endDate, err := time.Parse(QueryTimeFormat, req.EndTime)
if err != nil {
logger.Error("constructFinalStoreManageDataList time Parse err:", logger.Field("err", err))
return storeManageDataList
}
for d := startDate; d.Before(endDate) || d.Equal(endDate); d = d.AddDate(0, 0, 1) {
dateStr := d.Format("2006-01-02")
data, found := storeDataMap[dateStr]
if !found {
data = StoreManageData{
Date: dateStr,
TotalSalesAmount: 0,
PromotionFee: 0,
SalesProfit: 0,
StaffProfit: 0,
Count: 0,
}
}
finalStoreManageDataList = append(finalStoreManageDataList, data)
}
return finalStoreManageDataList
}
// StoreManageDataExport 导出门店经营数据
func storeManageDataExport(list []StoreManageData, storeName string) (string, error) {
file := excelize.NewFile()
@ -2054,17 +2098,17 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq) (*ErpOrderRetailDetai
qs = qs.Where("erp_order.store_id=?", req.StoreId)
}
if req.Salesman != 0 { // 销售员
qs = qs.Where("erp_order.salesman1 = ? or erp_order.salesman2 = ?", req.Salesman, req.Salesman)
qs = qs.Where("JSON_CONTAINS(erp_order.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
}
if req.StartTime != "" { // 审核开始时间
parse, err := time.Parse(DateTimeFormat, req.StartTime)
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
if err != nil {
logger.Errorf("err:", err)
}
qs = qs.Where("erp_order.audit_time > ?", parse)
}
if req.EndTime != "" { // 审核结束时间
parse, err := time.Parse(DateTimeFormat, req.EndTime)
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
if err != nil {
logger.Errorf("err:", err)
}
@ -2304,7 +2348,7 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq) (*ErpOrderRetailDetai
qs = qs.Where("retail_type=?", req.RetailType)
}
if req.Uid != 0 { // 用户ID
qs = qs.Where("uid=?", req.Uid)
qs = qs.Where("erp_order.uid=?", req.Uid)
}
if req.Tel != "" { // 用户手机号
qs = qs.Where("tel=?", req.Tel)
@ -2313,17 +2357,17 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq) (*ErpOrderRetailDetai
qs = qs.Where("store_id=?", req.StoreId)
}
if req.Salesman != 0 { // 销售员
qs = qs.Where("salesman1 = ? or salesman2 = ?", req.Salesman, req.Salesman)
qs = qs.Where("JSON_CONTAINS(salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
}
if req.StartTime != "" { // 审核开始时间
parse, err := time.Parse(DateTimeFormat, req.StartTime)
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
if err != nil {
logger.Errorf("err:", err)
}
qs = qs.Where("audit_time > ?", parse)
}
if req.EndTime != "" { // 审核结束时间
parse, err := time.Parse(DateTimeFormat, req.EndTime)
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
if err != nil {
logger.Errorf("err:", err)
}

View File

@ -5,10 +5,10 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/codinl/go-logger"
"github.com/xuri/excelize/v2"
"go-admin/app/admin/models/tools"
orm "go-admin/common/global"
"go-admin/logger"
"gorm.io/gorm"
"reflect"
"strconv"
@ -132,11 +132,11 @@ func FileExcelReader(d []byte, cols []string) ([]byte, []map[string]interface{},
}
}
logger.Info("columnMap:", columnMap)
logger.Info("columnMap:", logger.Field("columnMap", columnMap))
colsMap = append(colsMap, columnMap)
}
logger.Info("colsMap:", colsMap)
logger.Info("colsMap:", logger.Field("colsMap", colsMap))
mCols, err := json.Marshal(colsMap)
if err != nil {
return mCols, nil, fmt.Errorf("marshal error: %v", err)
@ -232,11 +232,11 @@ func FileExcelImport(d []byte, cols []string, nType int) ([]byte, []map[string]i
}
}
logger.Info("columnMap:", columnMap)
logger.Info("columnMap:", logger.Field("columnMap", columnMap))
colsMap = append(colsMap, columnMap)
}
logger.Info("colsMap:", colsMap)
logger.Info("colsMap:", logger.Field("colsMap", colsMap))
mCols, err := json.Marshal(colsMap)
if err != nil {
return mCols, nil, fmt.Errorf("marshal err: %v", err)
@ -1053,3 +1053,27 @@ func UpdateErpStockAmountInfo(begin *gorm.DB, commodityId, retailPrice, minRetai
return nil
}
// CheckCommodityIsHavaStock 检查某个商品是否还有库存
func CheckCommodityIsHavaStock(commodityId uint32) bool {
var count int64
err := orm.Eloquent.Table("erp_stock").Where("erp_commodity_id = ? and count > 0", commodityId).
Count(&count).Error
if err != nil {
logger.Error("CheckCommodityIsHavaStock err:", logger.Field("err", err))
}
return count > 0
}
// IsExistingCommodity 检查是否存在某个商品
func IsExistingCommodity(commodityId uint32) bool {
var count int64
err := orm.Eloquent.Table("erp_commodity").Where("id = ?", commodityId).
Count(&count).Error
if err != nil {
logger.Error("IsExistingCommodity err:", logger.Field("err", err))
}
return count > 0
}

File diff suppressed because it is too large Load Diff

View File

@ -103,6 +103,7 @@ type InsertSysUserReq struct {
AccountType uint32 `json:"account_type"` // 账号类型:1-管理端
SalesCommRate string `json:"sales_comm_rate"` // 销售提成比例
StoreList []StoreInfo `json:"store_list"` // 有效门店
Uid uint32 `json:"uid"` // 用户uid
}
func (SysUser) TableName() string {

View File

@ -10,13 +10,16 @@ import (
func registerErpPurchaseManageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
r := v1.Group("/erp_purchase").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
r.POST("create", purchasemanage.ErpPurchaseCreate) // 创建采购订单(入库/退货)
r.POST("edit", purchasemanage.ErpPurchaseEdit) // 编辑采购订单
r.POST("list", purchasemanage.ErpPurchaseList) // 查询采购订单列表
r.POST("detail", purchasemanage.ErpPurchaseDetail) // 查询采购订单详情
r.POST("audit", purchasemanage.ErpPurchaseAudit) // 审核采购订单
r.POST("delete", purchasemanage.ErpPurchaseDelete) // 删除采购订单
r.POST("inventory", purchasemanage.ErpPurchaseInventory) // 入库(退货)
r.POST("terminate", purchasemanage.ErpPurchaseTerminate) // 终止
r.POST("execute", purchasemanage.ErpPurchaseExecute) // 执行
r.POST("create", purchasemanage.ErpPurchaseCreate) // 创建采购订单(入库/退货)
r.POST("edit", purchasemanage.ErpPurchaseEdit) // 编辑采购订单
r.POST("list", purchasemanage.ErpPurchaseList) // 查询采购订单列表
r.POST("detail", purchasemanage.ErpPurchaseDetail) // 查询采购订单详情
r.POST("audit", purchasemanage.ErpPurchaseAudit) // 审核采购订单
r.POST("delete", purchasemanage.ErpPurchaseDelete) // 删除采购订单
r.POST("inventory", purchasemanage.ErpPurchaseInventory) // 入库(退货)
r.POST("terminate", purchasemanage.ErpPurchaseTerminate) // 终止
r.POST("execute", purchasemanage.ErpPurchaseExecute) // 执行
r.POST("demand/create", purchasemanage.ErpPurchaseDemandCreate) // 创建采购需求
r.POST("demand/get", purchasemanage.ErpPurchaseDemandGet) // 获取采购需求
r.POST("demand/finish", purchasemanage.ErpPurchaseDemandFinish) // 完成采购需求
}

View File

@ -2220,6 +2220,108 @@ const docTemplate = `{
}
}
},
"/api/v1/erp_purchase/demand/create": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "创建采购需求",
"parameters": [
{
"description": "创建采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.CreateErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/erp_purchase/demand/finish": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "完成采购需求",
"parameters": [
{
"description": "完成采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.FinishErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/erp_purchase/demand/get": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "获取采购需求",
"parameters": [
{
"description": "获取采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.GetErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.GetErpPurchaseDemandResp"
}
}
}
}
},
"/api/v1/erp_purchase/detail": {
"post": {
"consumes": [
@ -2288,6 +2390,40 @@ const docTemplate = `{
}
}
},
"/api/v1/erp_purchase/execute": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购管理",
"V1.3.0"
],
"summary": "执行(入库/退货)",
"parameters": [
{
"description": "执行(入库/退货)模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ErpPurchaseInventoryReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ErpPurchaseExecuteResp"
}
}
}
}
},
"/api/v1/erp_purchase/inventory": {
"post": {
"consumes": [
@ -5868,6 +6004,116 @@ const docTemplate = `{
}
}
},
"models.CreateErpPurchaseDemandReq": {
"type": "object",
"properties": {
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
},
"erp_commodity_name": {
"description": "商品名称",
"type": "string"
},
"erp_commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"need_count": {
"description": "需采购数",
"type": "integer"
},
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
}
},
"remark": {
"description": "备注",
"type": "string"
}
}
},
"models.DemandData": {
"type": "object",
"properties": {
"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_commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"last_wholesale_price": {
"description": "最近采购价",
"type": "number"
},
"retail_price": {
"description": "指导零售价",
"type": "integer"
},
"store_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"last_month_sales": {
"description": "上月销售数",
"type": "integer"
},
"need_count": {
"description": "需采购数",
"type": "integer"
},
"stock_count": {
"description": "库存数量",
"type": "integer"
},
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
}
},
"total_amount": {
"description": "需采购总金额",
"type": "number"
},
"total_count": {
"description": "需采购总数量",
"type": "integer"
}
}
},
"models.DictType": {
"type": "object",
"properties": {
@ -7170,7 +7416,7 @@ const docTemplate = `{
"properties": {
"amount": {
"description": "计划采购金额",
"type": "integer"
"type": "number"
},
"commodity_serial_number": {
"description": "商品编号",
@ -7198,7 +7444,7 @@ const docTemplate = `{
},
"execute_amount": {
"description": "执行金额",
"type": "integer"
"type": "number"
},
"execute_count": {
"description": "执行数量",
@ -7206,11 +7452,11 @@ const docTemplate = `{
},
"execute_employee_price": {
"description": "平均员工成本价",
"type": "integer"
"type": "number"
},
"execute_price": {
"description": "平均采购单价",
"type": "integer"
"type": "number"
},
"id": {
"description": "数据库记录编号",
@ -7225,28 +7471,32 @@ const docTemplate = `{
"type": "integer"
},
"inventory_count": {
"description": "入库数量(执行数量)",
"description": "入库数量(=执行数量)",
"type": "integer"
},
"price": {
"description": "计划采购单价",
"type": "integer"
"type": "number"
},
"rejected_amount": {
"description": "计划退货金额",
"type": "integer"
"type": "number"
},
"rejected_count": {
"description": "计划退货数量",
"type": "integer"
"type": "number"
},
"rejected_price": {
"description": "计划退货单价",
"type": "integer"
"type": "number"
},
"remark": {
"description": "备注",
"type": "string"
},
"retail_price": {
"description": "指导零售价",
"type": "integer"
}
}
},
@ -7259,7 +7509,6 @@ const docTemplate = `{
"erp_cashier_id",
"erp_purchase_commodities",
"erp_supplier_id",
"maker_id",
"opening_bank",
"purchase_type",
"store_id"
@ -7296,10 +7545,14 @@ const docTemplate = `{
"description": "供应商id",
"type": "integer"
},
"maker_id": {
"description": "经手人",
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"opening_bank": {
"description": "开户行",
"type": "string"
@ -7344,7 +7597,6 @@ const docTemplate = `{
"erp_purchase_commodities",
"erp_purchase_order_id",
"erp_supplier_id",
"maker_id",
"opening_bank",
"purchase_type",
"store_id"
@ -7385,10 +7637,14 @@ const docTemplate = `{
"description": "供应商id",
"type": "integer"
},
"maker_id": {
"description": "经手人",
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"opening_bank": {
"description": "开户行",
"type": "string"
@ -7411,19 +7667,37 @@ const docTemplate = `{
}
}
},
"models.ErpPurchaseInventory": {
"models.ErpPurchaseExecuteResp": {
"type": "object",
"properties": {
"amount": {
"description": "入库金额",
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ExecuteData"
}
},
"total": {
"description": "总条数",
"type": "integer"
}
}
},
"models.ErpPurchaseInventory": {
"type": "object",
"required": [
"purchase_type"
],
"properties": {
"amount": {
"description": "执行金额",
"type": "number"
},
"commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"count": {
"description": "数量",
"description": "执行数量",
"type": "integer"
},
"createdAt": {
@ -7432,7 +7706,7 @@ const docTemplate = `{
},
"employee_price": {
"description": "员工成本价",
"type": "integer"
"type": "number"
},
"erp_commodity_id": {
"description": "商品id",
@ -7460,22 +7734,10 @@ const docTemplate = `{
},
"implementation_price": {
"description": "执行单价",
"type": "integer"
"type": "number"
},
"inventory_count": {
"description": "入库数量",
"type": "integer"
},
"inventory_type": {
"description": "采购类型procure-采购 reject-退货",
"type": "string"
},
"price": {
"description": "采购单价",
"type": "integer"
},
"remark": {
"description": "备注",
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
},
"serial_number": {
@ -7488,8 +7750,7 @@ const docTemplate = `{
"type": "object",
"required": [
"erp_purchase_order_id",
"inventories",
"inventory_type"
"inventories"
],
"properties": {
"erp_purchase_order_id": {
@ -7497,15 +7758,11 @@ const docTemplate = `{
"type": "integer"
},
"inventories": {
"description": "采购信息",
"description": "采购入库执行信息",
"type": "array",
"items": {
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"inventory_type": {
"description": "采购类型procure-采购 reject-退货",
"type": "string"
}
}
},
@ -7562,6 +7819,14 @@ const docTemplate = `{
"description": "供应商名称",
"type": "string"
},
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
@ -8062,6 +8327,59 @@ const docTemplate = `{
}
}
},
"models.ExecuteData": {
"type": "object",
"properties": {
"commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"count": {
"description": "数量",
"type": "integer"
},
"employee_price": {
"description": "员工成本价",
"type": "number"
},
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
},
"erp_commodity_name": {
"description": "商品名称",
"type": "string"
},
"erp_purchase_order_id": {
"description": "商品采购订单id",
"type": "integer"
},
"imei": {
"description": "商品串码",
"type": "string"
},
"imei_type": {
"description": "1-无串码 2-串码",
"type": "integer"
},
"implementation_price": {
"description": "执行单价",
"type": "number"
}
}
},
"models.FinishErpPurchaseDemandReq": {
"type": "object",
"required": [
"erp_commodity_id"
],
"properties": {
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
}
}
},
"models.GameCard": {
"type": "object",
"properties": {
@ -8147,6 +8465,61 @@ const docTemplate = `{
}
}
},
"models.GetErpPurchaseDemandReq": {
"type": "object",
"required": [
"erp_category_id"
],
"properties": {
"erp_category_id": {
"description": "商品分类id",
"type": "integer"
},
"hide_flag": {
"description": "隐藏标记默认关闭ON-开启隐藏无采购需求的商品OFF-关闭,展示所有",
"type": "string"
},
"is_export": {
"description": "1-导出",
"type": "integer"
},
"pageIndex": {
"description": "页码",
"type": "integer"
},
"pageSize": {
"description": "每页展示数据条数",
"type": "integer"
}
}
},
"models.GetErpPurchaseDemandResp": {
"type": "object",
"properties": {
"export_url": {
"description": "文件路径",
"type": "string"
},
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/models.DemandData"
}
},
"pageIndex": {
"description": "页码",
"type": "integer"
},
"pageSize": {
"description": "每页展示条数",
"type": "integer"
},
"total": {
"description": "数据总条数",
"type": "integer"
}
}
},
"models.InsertSysUserReq": {
"type": "object",
"properties": {
@ -8229,6 +8602,10 @@ const docTemplate = `{
"description": "门店名称",
"type": "string"
},
"uid": {
"description": "用户uid",
"type": "integer"
},
"userId": {
"description": "编码",
"type": "integer"

View File

@ -2209,6 +2209,108 @@
}
}
},
"/api/v1/erp_purchase/demand/create": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "创建采购需求",
"parameters": [
{
"description": "创建采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.CreateErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/erp_purchase/demand/finish": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "完成采购需求",
"parameters": [
{
"description": "完成采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.FinishErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/erp_purchase/demand/get": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购需求",
"V1.3.0"
],
"summary": "获取采购需求",
"parameters": [
{
"description": "获取采购需求模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.GetErpPurchaseDemandReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.GetErpPurchaseDemandResp"
}
}
}
}
},
"/api/v1/erp_purchase/detail": {
"post": {
"consumes": [
@ -2277,6 +2379,40 @@
}
}
},
"/api/v1/erp_purchase/execute": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"采购管理",
"V1.3.0"
],
"summary": "执行(入库/退货)",
"parameters": [
{
"description": "执行(入库/退货)模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ErpPurchaseInventoryReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ErpPurchaseExecuteResp"
}
}
}
}
},
"/api/v1/erp_purchase/inventory": {
"post": {
"consumes": [
@ -5857,6 +5993,116 @@
}
}
},
"models.CreateErpPurchaseDemandReq": {
"type": "object",
"properties": {
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
},
"erp_commodity_name": {
"description": "商品名称",
"type": "string"
},
"erp_commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"need_count": {
"description": "需采购数",
"type": "integer"
},
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
}
},
"remark": {
"description": "备注",
"type": "string"
}
}
},
"models.DemandData": {
"type": "object",
"properties": {
"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_commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"last_wholesale_price": {
"description": "最近采购价",
"type": "number"
},
"retail_price": {
"description": "指导零售价",
"type": "integer"
},
"store_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"last_month_sales": {
"description": "上月销售数",
"type": "integer"
},
"need_count": {
"description": "需采购数",
"type": "integer"
},
"stock_count": {
"description": "库存数量",
"type": "integer"
},
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
}
},
"total_amount": {
"description": "需采购总金额",
"type": "number"
},
"total_count": {
"description": "需采购总数量",
"type": "integer"
}
}
},
"models.DictType": {
"type": "object",
"properties": {
@ -7159,7 +7405,7 @@
"properties": {
"amount": {
"description": "计划采购金额",
"type": "integer"
"type": "number"
},
"commodity_serial_number": {
"description": "商品编号",
@ -7187,7 +7433,7 @@
},
"execute_amount": {
"description": "执行金额",
"type": "integer"
"type": "number"
},
"execute_count": {
"description": "执行数量",
@ -7195,11 +7441,11 @@
},
"execute_employee_price": {
"description": "平均员工成本价",
"type": "integer"
"type": "number"
},
"execute_price": {
"description": "平均采购单价",
"type": "integer"
"type": "number"
},
"id": {
"description": "数据库记录编号",
@ -7214,28 +7460,32 @@
"type": "integer"
},
"inventory_count": {
"description": "入库数量(执行数量)",
"description": "入库数量(=执行数量)",
"type": "integer"
},
"price": {
"description": "计划采购单价",
"type": "integer"
"type": "number"
},
"rejected_amount": {
"description": "计划退货金额",
"type": "integer"
"type": "number"
},
"rejected_count": {
"description": "计划退货数量",
"type": "integer"
"type": "number"
},
"rejected_price": {
"description": "计划退货单价",
"type": "integer"
"type": "number"
},
"remark": {
"description": "备注",
"type": "string"
},
"retail_price": {
"description": "指导零售价",
"type": "integer"
}
}
},
@ -7248,7 +7498,6 @@
"erp_cashier_id",
"erp_purchase_commodities",
"erp_supplier_id",
"maker_id",
"opening_bank",
"purchase_type",
"store_id"
@ -7285,10 +7534,14 @@
"description": "供应商id",
"type": "integer"
},
"maker_id": {
"description": "经手人",
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"opening_bank": {
"description": "开户行",
"type": "string"
@ -7333,7 +7586,6 @@
"erp_purchase_commodities",
"erp_purchase_order_id",
"erp_supplier_id",
"maker_id",
"opening_bank",
"purchase_type",
"store_id"
@ -7374,10 +7626,14 @@
"description": "供应商id",
"type": "integer"
},
"maker_id": {
"description": "经手人",
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"opening_bank": {
"description": "开户行",
"type": "string"
@ -7400,19 +7656,37 @@
}
}
},
"models.ErpPurchaseInventory": {
"models.ErpPurchaseExecuteResp": {
"type": "object",
"properties": {
"amount": {
"description": "入库金额",
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ExecuteData"
}
},
"total": {
"description": "总条数",
"type": "integer"
}
}
},
"models.ErpPurchaseInventory": {
"type": "object",
"required": [
"purchase_type"
],
"properties": {
"amount": {
"description": "执行金额",
"type": "number"
},
"commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"count": {
"description": "数量",
"description": "执行数量",
"type": "integer"
},
"createdAt": {
@ -7421,7 +7695,7 @@
},
"employee_price": {
"description": "员工成本价",
"type": "integer"
"type": "number"
},
"erp_commodity_id": {
"description": "商品id",
@ -7449,22 +7723,10 @@
},
"implementation_price": {
"description": "执行单价",
"type": "integer"
"type": "number"
},
"inventory_count": {
"description": "入库数量",
"type": "integer"
},
"inventory_type": {
"description": "采购类型procure-采购 reject-退货",
"type": "string"
},
"price": {
"description": "采购单价",
"type": "integer"
},
"remark": {
"description": "备注",
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
},
"serial_number": {
@ -7477,8 +7739,7 @@
"type": "object",
"required": [
"erp_purchase_order_id",
"inventories",
"inventory_type"
"inventories"
],
"properties": {
"erp_purchase_order_id": {
@ -7486,15 +7747,11 @@
"type": "integer"
},
"inventories": {
"description": "采购信息",
"description": "采购入库执行信息",
"type": "array",
"items": {
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"inventory_type": {
"description": "采购类型procure-采购 reject-退货",
"type": "string"
}
}
},
@ -7551,6 +7808,14 @@
"description": "供应商名称",
"type": "string"
},
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"handler_name": {
"description": "经手人名称",
"type": "string"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
@ -8051,6 +8316,59 @@
}
}
},
"models.ExecuteData": {
"type": "object",
"properties": {
"commodity_serial_number": {
"description": "商品编号",
"type": "string"
},
"count": {
"description": "数量",
"type": "integer"
},
"employee_price": {
"description": "员工成本价",
"type": "number"
},
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
},
"erp_commodity_name": {
"description": "商品名称",
"type": "string"
},
"erp_purchase_order_id": {
"description": "商品采购订单id",
"type": "integer"
},
"imei": {
"description": "商品串码",
"type": "string"
},
"imei_type": {
"description": "1-无串码 2-串码",
"type": "integer"
},
"implementation_price": {
"description": "执行单价",
"type": "number"
}
}
},
"models.FinishErpPurchaseDemandReq": {
"type": "object",
"required": [
"erp_commodity_id"
],
"properties": {
"erp_commodity_id": {
"description": "商品id",
"type": "integer"
}
}
},
"models.GameCard": {
"type": "object",
"properties": {
@ -8136,6 +8454,61 @@
}
}
},
"models.GetErpPurchaseDemandReq": {
"type": "object",
"required": [
"erp_category_id"
],
"properties": {
"erp_category_id": {
"description": "商品分类id",
"type": "integer"
},
"hide_flag": {
"description": "隐藏标记默认关闭ON-开启隐藏无采购需求的商品OFF-关闭,展示所有",
"type": "string"
},
"is_export": {
"description": "1-导出",
"type": "integer"
},
"pageIndex": {
"description": "页码",
"type": "integer"
},
"pageSize": {
"description": "每页展示数据条数",
"type": "integer"
}
}
},
"models.GetErpPurchaseDemandResp": {
"type": "object",
"properties": {
"export_url": {
"description": "文件路径",
"type": "string"
},
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/models.DemandData"
}
},
"pageIndex": {
"description": "页码",
"type": "integer"
},
"pageSize": {
"description": "每页展示条数",
"type": "integer"
},
"total": {
"description": "数据总条数",
"type": "integer"
}
}
},
"models.InsertSysUserReq": {
"type": "object",
"properties": {
@ -8218,6 +8591,10 @@
"description": "门店名称",
"type": "string"
},
"uid": {
"description": "用户uid",
"type": "integer"
},
"userId": {
"description": "编码",
"type": "integer"

View File

@ -899,6 +899,85 @@ definitions:
- wx_app_mchId
- wx_app_mchSecret
type: object
models.CreateErpPurchaseDemandReq:
properties:
erp_commodity_id:
description: 商品id
type: integer
erp_commodity_name:
description: 商品名称
type: string
erp_commodity_serial_number:
description: 商品编号
type: string
list:
items:
properties:
need_count:
description: 需采购数
type: integer
store_id:
description: 门店id
type: integer
store_name:
description: 门店名称
type: string
type: object
type: array
remark:
description: 备注
type: string
type: object
models.DemandData:
properties:
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_commodity_serial_number:
description: 商品编号
type: string
last_wholesale_price:
description: 最近采购价
type: number
retail_price:
description: 指导零售价
type: integer
store_list:
items:
properties:
last_month_sales:
description: 上月销售数
type: integer
need_count:
description: 需采购数
type: integer
stock_count:
description: 库存数量
type: integer
store_id:
description: 门店id
type: integer
store_name:
description: 门店名称
type: string
type: object
type: array
total_amount:
description: 需采购总金额
type: number
total_count:
description: 需采购总数量
type: integer
type: object
models.DictType:
properties:
createBy:
@ -1844,7 +1923,7 @@ definitions:
properties:
amount:
description: 计划采购金额
type: integer
type: number
commodity_serial_number:
description: 商品编号
type: string
@ -1865,16 +1944,16 @@ definitions:
type: integer
execute_amount:
description: 执行金额
type: integer
type: number
execute_count:
description: 执行数量
type: integer
execute_employee_price:
description: 平均员工成本价
type: integer
type: number
execute_price:
description: 平均采购单价
type: integer
type: number
id:
description: 数据库记录编号
type: integer
@ -1885,23 +1964,26 @@ definitions:
description: 1-无串码 2-串码
type: integer
inventory_count:
description: 入库数量(执行数量)
description: 入库数量(=执行数量)
type: integer
price:
description: 计划采购单价
type: integer
type: number
rejected_amount:
description: 计划退货金额
type: integer
type: number
rejected_count:
description: 计划退货数量
type: integer
type: number
rejected_price:
description: 计划退货单价
type: integer
type: number
remark:
description: 备注
type: string
retail_price:
description: 指导零售价
type: integer
type: object
models.ErpPurchaseCreateReq:
properties:
@ -1928,9 +2010,12 @@ definitions:
erp_supplier_id:
description: 供应商id
type: integer
maker_id:
description: 经手人
handler_id:
description: 经手人id
type: integer
handler_name:
description: 经手人名称
type: string
opening_bank:
description: 开户行
type: string
@ -1953,7 +2038,6 @@ definitions:
- erp_cashier_id
- erp_purchase_commodities
- erp_supplier_id
- maker_id
- opening_bank
- purchase_type
- store_id
@ -1994,9 +2078,12 @@ definitions:
erp_supplier_id:
description: 供应商id
type: integer
maker_id:
description: 经手人
handler_id:
description: 经手人id
type: integer
handler_name:
description: 经手人名称
type: string
opening_bank:
description: 开户行
type: string
@ -2020,28 +2107,37 @@ definitions:
- erp_purchase_commodities
- erp_purchase_order_id
- erp_supplier_id
- maker_id
- opening_bank
- purchase_type
- store_id
type: object
models.ErpPurchaseExecuteResp:
properties:
list:
items:
$ref: '#/definitions/models.ExecuteData'
type: array
total:
description: 总条数
type: integer
type: object
models.ErpPurchaseInventory:
properties:
amount:
description: 入库金额
type: integer
description: 执行金额
type: number
commodity_serial_number:
description: 商品编号
type: string
count:
description: 数量
description: 执行数量
type: integer
createdAt:
description: 创建时间
type: string
employee_price:
description: 员工成本价
type: integer
type: number
erp_commodity_id:
description: 商品id
type: integer
@ -2062,22 +2158,15 @@ definitions:
type: integer
implementation_price:
description: 执行单价
type: integer
inventory_count:
description: 入库数量
type: integer
inventory_type:
description: 采购类型procure-采购 reject-退货
type: string
price:
description: 采购单价
type: integer
remark:
description: 备注
type: number
purchase_type:
description: 采购类型:procure-采购 reject-退货
type: string
serial_number:
description: 入库编号
type: string
required:
- purchase_type
type: object
models.ErpPurchaseInventoryReq:
properties:
@ -2085,17 +2174,13 @@ definitions:
description: 采购订单id
type: integer
inventories:
description: 采购信息
description: 采购入库执行信息
items:
$ref: '#/definitions/models.ErpPurchaseInventory'
type: array
inventory_type:
description: 采购类型procure-采购 reject-退货
type: string
required:
- erp_purchase_order_id
- inventories
- inventory_type
type: object
models.ErpPurchaseOrder:
properties:
@ -2136,6 +2221,12 @@ definitions:
erp_supplier_name:
description: 供应商名称
type: string
handler_id:
description: 经手人id
type: integer
handler_name:
description: 经手人名称
type: string
id:
description: 数据库记录编号
type: integer
@ -2501,6 +2592,44 @@ definitions:
description: 数据总条数
type: integer
type: object
models.ExecuteData:
properties:
commodity_serial_number:
description: 商品编号
type: string
count:
description: 数量
type: integer
employee_price:
description: 员工成本价
type: number
erp_commodity_id:
description: 商品id
type: integer
erp_commodity_name:
description: 商品名称
type: string
erp_purchase_order_id:
description: 商品采购订单id
type: integer
imei:
description: 商品串码
type: string
imei_type:
description: 1-无串码 2-串码
type: integer
implementation_price:
description: 执行单价
type: number
type: object
models.FinishErpPurchaseDemandReq:
properties:
erp_commodity_id:
description: 商品id
type: integer
required:
- erp_commodity_id
type: object
models.GameCard:
properties:
coverImg:
@ -2564,6 +2693,45 @@ definitions:
description: 查看人数
type: integer
type: object
models.GetErpPurchaseDemandReq:
properties:
erp_category_id:
description: 商品分类id
type: integer
hide_flag:
description: 隐藏标记默认关闭ON-开启隐藏无采购需求的商品OFF-关闭,展示所有
type: string
is_export:
description: 1-导出
type: integer
pageIndex:
description: 页码
type: integer
pageSize:
description: 每页展示数据条数
type: integer
required:
- erp_category_id
type: object
models.GetErpPurchaseDemandResp:
properties:
export_url:
description: 文件路径
type: string
list:
items:
$ref: '#/definitions/models.DemandData'
type: array
pageIndex:
description: 页码
type: integer
pageSize:
description: 每页展示条数
type: integer
total:
description: 数据总条数
type: integer
type: object
models.InsertSysUserReq:
properties:
account_type:
@ -2625,6 +2793,9 @@ definitions:
store_name:
description: 门店名称
type: string
uid:
description: 用户uid
type: integer
userId:
description: 编码
type: integer
@ -6002,6 +6173,72 @@ paths:
tags:
- 采购管理
- V1.3.0
/api/v1/erp_purchase/demand/create:
post:
consumes:
- application/json
parameters:
- description: 创建采购需求模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/models.CreateErpPurchaseDemandReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/app.Response'
summary: 创建采购需求
tags:
- 采购需求
- V1.3.0
/api/v1/erp_purchase/demand/finish:
post:
consumes:
- application/json
parameters:
- description: 完成采购需求模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/models.FinishErpPurchaseDemandReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/app.Response'
summary: 完成采购需求
tags:
- 采购需求
- V1.3.0
/api/v1/erp_purchase/demand/get:
post:
consumes:
- application/json
parameters:
- description: 获取采购需求模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/models.GetErpPurchaseDemandReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.GetErpPurchaseDemandResp'
summary: 获取采购需求
tags:
- 采购需求
- V1.3.0
/api/v1/erp_purchase/detail:
post:
consumes:
@ -6046,6 +6283,28 @@ paths:
tags:
- 采购管理
- V1.3.0
/api/v1/erp_purchase/execute:
post:
consumes:
- application/json
parameters:
- description: 执行(入库/退货)模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/models.ErpPurchaseInventoryReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ErpPurchaseExecuteResp'
summary: 执行(入库/退货)
tags:
- 采购管理
- V1.3.0
/api/v1/erp_purchase/inventory:
post:
consumes: