77 lines
2.8 KiB
Go
77 lines
2.8 KiB
Go
// 盘点任务控制器
|
||
// 职责:盘点任务CRUD、完成/取消、导出模板、导入Excel
|
||
// 调用服务:service.InventoryCount
|
||
// 注意:ImportInventoryCount从multipart form读取文件,Update/Delete返回*beans.ResponseEmpty
|
||
package controller
|
||
|
||
import (
|
||
dto "assets/model/dto/stock"
|
||
service "assets/service/stock"
|
||
"context"
|
||
"fmt"
|
||
"io"
|
||
|
||
"gitea.redpowerfuture.com/red-future/common/beans"
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
)
|
||
|
||
type inventoryCount struct{}
|
||
|
||
var InventoryCount = new(inventoryCount)
|
||
|
||
func init() {
|
||
}
|
||
|
||
func (c *inventoryCount) CreateInventoryCount(ctx context.Context, req *dto.CreateInventoryCountReq) (res *dto.CreateInventoryCountRes, err error) {
|
||
g.Log().Debugf(ctx, "[CreateInventoryCount] req: %+v", req)
|
||
return service.InventoryCount.Create(ctx, req)
|
||
}
|
||
|
||
func (c *inventoryCount) UpdateInventoryCount(ctx context.Context, req *dto.UpdateInventoryCountReq) (res *beans.ResponseEmpty, err error) {
|
||
err = service.InventoryCount.Update(ctx, req)
|
||
return
|
||
}
|
||
|
||
func (c *inventoryCount) DeleteInventoryCount(ctx context.Context, req *dto.DeleteInventoryCountReq) (res *beans.ResponseEmpty, err error) {
|
||
err = service.InventoryCount.Delete(ctx, req)
|
||
return
|
||
}
|
||
|
||
func (c *inventoryCount) GetInventoryCount(ctx context.Context, req *dto.GetInventoryCountReq) (res *dto.GetInventoryCountRes, err error) {
|
||
return service.InventoryCount.GetOne(ctx, req)
|
||
}
|
||
|
||
func (c *inventoryCount) ListInventoryCounts(ctx context.Context, req *dto.ListInventoryCountReq) (res *dto.ListInventoryCountRes, err error) {
|
||
return service.InventoryCount.List(ctx, req)
|
||
}
|
||
|
||
func (c *inventoryCount) CompleteInventoryCount(ctx context.Context, req *dto.CompleteInventoryCountReq) (res *dto.CompleteInventoryCountRes, err error) {
|
||
return service.InventoryCount.Complete(ctx, req)
|
||
}
|
||
|
||
func (c *inventoryCount) CancelInventoryCount(ctx context.Context, req *dto.CancelInventoryCountReq) (res *dto.CancelInventoryCountRes, err error) {
|
||
return service.InventoryCount.Cancel(ctx, req)
|
||
}
|
||
|
||
func (c *inventoryCount) ExportInventoryCountTemplate(ctx context.Context, req *dto.ExportInventoryCountTemplateReq) (res *dto.ExportInventoryCountTemplateRes, err error) {
|
||
return service.InventoryCount.ExportTemplate(ctx, req)
|
||
}
|
||
|
||
// ImportInventoryCount 上传盘点Excel
|
||
// 从multipart form读取文件数据并调用Service层解析导入
|
||
func (c *inventoryCount) ImportInventoryCount(ctx context.Context, req *dto.ImportInventoryCountReq) (res *dto.ImportInventoryCountRes, err error) {
|
||
r := g.RequestFromCtx(ctx)
|
||
file, _, err := r.Request.FormFile("file")
|
||
if err != nil {
|
||
return nil, fmt.Errorf("读取上传文件失败: %v", err)
|
||
}
|
||
defer file.Close()
|
||
|
||
fileData, err := io.ReadAll(file)
|
||
if err != nil {
|
||
return nil, fmt.Errorf("读取文件内容失败: %v", err)
|
||
}
|
||
|
||
return service.InventoryCount.ImportInventoryCount(ctx, req, fileData)
|
||
}
|