Dockerfile

This commit is contained in:
2026-03-18 10:18:03 +08:00
parent 5c5dbc7420
commit b65f3439f3
189 changed files with 19027 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type inventoryCountAdjustHistory struct{}
var InventoryCountAdjustHistory = new(inventoryCountAdjustHistory)
func init() {}
// CreateInventoryCountAdjustHistory 创建盘点调整历史记录
func (c *inventoryCountAdjustHistory) CreateInventoryCountAdjustHistory(ctx context.Context, req *dto.CreateInventoryCountAdjustHistoryReq) (res *dto.CreateInventoryCountAdjustHistoryRes, err error) {
res, err = service.InventoryCountAdjustHistory.Create(ctx, req)
return
}
// GetInventoryCountAdjustHistory 获取盘点调整历史记录详情
func (c *inventoryCountAdjustHistory) GetInventoryCountAdjustHistory(ctx context.Context, req *dto.GetInventoryCountAdjustHistoryReq) (res *dto.GetInventoryCountAdjustHistoryRes, err error) {
res, err = service.InventoryCountAdjustHistory.GetOne(ctx, req)
return
}
// DeleteInventoryCountAdjustHistory 删除盘点调整历史记录
func (c *inventoryCountAdjustHistory) DeleteInventoryCountAdjustHistory(ctx context.Context, req *dto.DeleteInventoryCountAdjustHistoryReq) (res *beans.ResponseEmpty, err error) {
err = service.InventoryCountAdjustHistory.Delete(ctx, req)
return
}
// ListInventoryCountAdjustHistories 分页查询盘点调整历史列表
func (c *inventoryCountAdjustHistory) ListInventoryCountAdjustHistories(ctx context.Context, req *dto.ListInventoryCountAdjustHistoryReq) (res *dto.ListInventoryCountAdjustHistoryRes, err error) {
res, err = service.InventoryCountAdjustHistory.List(ctx, req)
return
}

View File

@@ -0,0 +1,76 @@
// 盘点任务控制器
// 职责盘点任务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.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)
}

View File

@@ -0,0 +1,47 @@
// 盘点明细控制器
// 职责盘点明细CRUD、相似商品查询
// 调用服务service.InventoryCountDetail
// 注意Update/Delete返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type inventoryCountDetail struct{}
var InventoryCountDetail = new(inventoryCountDetail)
func init() {
}
func (c *inventoryCountDetail) CreateInventoryCountDetail(ctx context.Context, req *dto.CreateInventoryCountDetailReq) (res *dto.CreateInventoryCountDetailRes, err error) {
return service.InventoryCountDetail.Create(ctx, req)
}
func (c *inventoryCountDetail) UpdateInventoryCountDetail(ctx context.Context, req *dto.UpdateInventoryCountDetailReq) (res *beans.ResponseEmpty, err error) {
err = service.InventoryCountDetail.Update(ctx, req)
return
}
func (c *inventoryCountDetail) DeleteInventoryCountDetail(ctx context.Context, req *dto.DeleteInventoryCountDetailReq) (res *beans.ResponseEmpty, err error) {
err = service.InventoryCountDetail.Delete(ctx, req)
return
}
func (c *inventoryCountDetail) GetInventoryCountDetail(ctx context.Context, req *dto.GetInventoryCountDetailReq) (res *dto.GetInventoryCountDetailRes, err error) {
return service.InventoryCountDetail.GetOne(ctx, req)
}
func (c *inventoryCountDetail) ListInventoryCountDetails(ctx context.Context, req *dto.ListInventoryCountDetailReq) (res *dto.ListInventoryCountDetailRes, err error) {
return service.InventoryCountDetail.List(ctx, req)
}
// SearchSimilarAssets 查询相似商品
func (c *inventoryCountDetail) SearchSimilarAssets(ctx context.Context, req *dto.SearchSimilarAssetsReq) (res *dto.SearchSimilarAssetsRes, err error) {
return service.InventoryCountDetail.SearchSimilarAssets(ctx, req)
}

View File

@@ -0,0 +1,26 @@
// 库存预警控制器
// 职责:预警查询接口(无Create/Update/Delete由系统自动生成)
// 调用服务service.InventoryWarning
// 注意:只读接口,无写操作
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
)
type inventoryWarning struct{}
var InventoryWarning = new(inventoryWarning)
func init() {
}
func (c *inventoryWarning) GetInventoryWarning(ctx context.Context, req *dto.GetInventoryWarningReq) (res *dto.GetInventoryWarningRes, err error) {
return service.InventoryWarning.GetOne(ctx, req)
}
func (c *inventoryWarning) ListInventoryWarnings(ctx context.Context, req *dto.ListInventoryWarningReq) (res *dto.ListInventoryWarningRes, err error) {
return service.InventoryWarning.List(ctx, req)
}

View File

@@ -0,0 +1,33 @@
// 库存预警历史控制器
// 职责:预警历史查询、删除(无Create/Update由系统自动归档)
// 调用服务service.InventoryWarningHistory
// 注意Delete返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type inventoryWarningHistory struct{}
var InventoryWarningHistory = new(inventoryWarningHistory)
func init() {
}
func (c *inventoryWarningHistory) GetInventoryWarningHistory(ctx context.Context, req *dto.GetInventoryWarningHistoryReq) (res *dto.GetInventoryWarningHistoryRes, err error) {
return service.InventoryWarningHistory.GetOne(ctx, req)
}
func (c *inventoryWarningHistory) ListInventoryWarningHistories(ctx context.Context, req *dto.ListInventoryWarningHistoryReq) (res *dto.ListInventoryWarningHistoryRes, err error) {
return service.InventoryWarningHistory.List(ctx, req)
}
func (c *inventoryWarningHistory) DeleteInventoryWarningHistory(ctx context.Context, req *dto.DeleteInventoryWarningHistoryReq) (res *beans.ResponseEmpty, err error) {
err = service.InventoryWarningHistory.Delete(ctx, req)
return
}

View File

@@ -0,0 +1,47 @@
// 库位控制器
// 职责库位CRUD接口、状态更新接口
// 调用服务service.Location
// 注意Update/Delete/UpdateStatus返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type location struct{}
var Location = new(location)
func init() {
}
func (c *location) CreateLocation(ctx context.Context, req *dto.CreateLocationReq) (res *dto.CreateLocationRes, err error) {
return service.Location.Create(ctx, req)
}
func (c *location) UpdateLocation(ctx context.Context, req *dto.UpdateLocationReq) (res *beans.ResponseEmpty, err error) {
err = service.Location.Update(ctx, req)
return
}
func (c *location) DeleteLocation(ctx context.Context, req *dto.DeleteLocationReq) (res *beans.ResponseEmpty, err error) {
err = service.Location.Delete(ctx, req)
return
}
func (c *location) UpdateLocationStatus(ctx context.Context, req *dto.UpdateLocationStatusReq) (res *beans.ResponseEmpty, err error) {
err = service.Location.UpdateStatus(ctx, req)
return
}
func (c *location) GetLocation(ctx context.Context, req *dto.GetLocationReq) (res *dto.GetLocationRes, err error) {
return service.Location.GetOne(ctx, req)
}
func (c *location) ListLocations(ctx context.Context, req *dto.ListLocationReq) (res *dto.ListLocationRes, err error) {
return service.Location.List(ctx, req)
}

View File

@@ -0,0 +1,57 @@
// 实物库存批次控制器
// 职责CRUD接口、移库(MoveStock)、调拨(TransferStock)、出库(Outbound)
// 调用服务service.PrivateStock
// 注意Update/Delete/MoveStock/TransferStock/Outbound返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type privateStockController struct{}
var PrivateStock = new(privateStockController)
func init() {
}
func (c *privateStockController) CreatePrivateStock(ctx context.Context, req *dto.CreatePrivateStockReq) (res *dto.CreatePrivateStockRes, err error) {
return service.PrivateStock.Create(ctx, req)
}
func (c *privateStockController) UpdatePrivateStock(ctx context.Context, req *dto.UpdatePrivateStockReq) (res *beans.ResponseEmpty, err error) {
err = service.PrivateStock.Update(ctx, req)
return
}
func (c *privateStockController) DeletePrivateStock(ctx context.Context, req *dto.DeletePrivateStockReq) (res *beans.ResponseEmpty, err error) {
err = service.PrivateStock.Delete(ctx, req)
return
}
func (c *privateStockController) GetPrivateStock(ctx context.Context, req *dto.GetPrivateStockReq) (res *dto.GetPrivateStockRes, err error) {
return service.PrivateStock.GetOne(ctx, req)
}
func (c *privateStockController) ListPrivateStocks(ctx context.Context, req *dto.ListPrivateStockReq) (res *dto.ListPrivateStockRes, err error) {
return service.PrivateStock.List(ctx, req)
}
func (c *privateStockController) MoveStock(ctx context.Context, req *dto.MoveStockReq) (res *beans.ResponseEmpty, err error) {
err = service.PrivateStock.MoveStock(ctx, req)
return
}
func (c *privateStockController) TransferStock(ctx context.Context, req *dto.TransferStockReq) (res *beans.ResponseEmpty, err error) {
err = service.PrivateStock.TransferStock(ctx, req)
return
}
func (c *privateStockController) OutboundPrivateStock(ctx context.Context, req *dto.OutboundPrivateStockReq) (res *beans.ResponseEmpty, err error) {
err = service.PrivateStock.Outbound(ctx, req)
return
}

View File

@@ -0,0 +1,42 @@
// 批次库存控制器(逻辑库存)
// 职责批次CRUD接口
// 调用服务service.StockBatch
// 注意Update/Delete返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type stockBatchController struct{}
var StockBatch = new(stockBatchController)
func init() {
}
func (c *stockBatchController) CreateBatch(ctx context.Context, req *dto.CreateBatchReq) (res *dto.CreateBatchRes, err error) {
return service.StockBatch.Create(ctx, req)
}
func (c *stockBatchController) UpdateBatch(ctx context.Context, req *dto.UpdateBatchReq) (res *beans.ResponseEmpty, err error) {
err = service.StockBatch.Update(ctx, req)
return
}
func (c *stockBatchController) DeleteBatch(ctx context.Context, req *dto.DeleteBatchReq) (res *beans.ResponseEmpty, err error) {
err = service.StockBatch.Delete(ctx, req)
return
}
func (c *stockBatchController) GetBatch(ctx context.Context, req *dto.GetBatchReq) (res *dto.GetBatchRes, err error) {
return service.StockBatch.GetOne(ctx, req)
}
func (c *stockBatchController) ListBatches(ctx context.Context, req *dto.ListBatchReq) (res *dto.ListBatchRes, err error) {
return service.StockBatch.List(ctx, req)
}

View File

@@ -0,0 +1,27 @@
// 库存明细控制器(逻辑库存)
// 职责:库存明细查询接口(无Create/Update/Delete由StockManage管理)
// 调用服务service.StockDetails
// 注意:只读接口,无写操作
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
)
type stockDetails struct{}
// StockDetails 库存控制器
var StockDetails = new(stockDetails)
func init() {
}
func (c *stockDetails) GetStockDetails(ctx context.Context, req *dto.GetStockDetailsReq) (res *dto.GetStockDetailsRes, err error) {
return service.StockDetails.GetOne(ctx, req)
}
func (c *stockDetails) ListStockDetails(ctx context.Context, req *dto.ListStockDetailsReq) (res *dto.ListStockDetailsRes, err error) {
return service.StockDetails.List(ctx, req)
}

View File

@@ -0,0 +1,31 @@
// 库存管理控制器(Stock公共库存)
// 职责:获取库存操作表单字段、入库/出库操作(StockOperation)
// 调用服务service.StockManage
// 注意StockOperation返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type stockManage struct{}
// StockManage 库存控制器
var StockManage = new(stockManage)
func init() {
}
// GetStockFormFields 获取库存操作表单字段
func (c *stockManage) GetStockFormFields(ctx context.Context, req *dto.GetStockFormFieldsReq) (res *dto.GetStockFormFieldsRes, err error) {
return service.StockManage.GetStockFormFields(ctx, req)
}
func (c *stockManage) StockOperation(ctx context.Context, req *dto.StockOperationReq) (res *beans.ResponseEmpty, err error) {
err = service.StockManage.StockOperation(ctx, req)
return
}

View File

@@ -0,0 +1,41 @@
// 单位换算控制器
// 职责单位换算规则CRUD接口
// 调用服务service.UnitConversion
// 注意Update/Delete返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type unitConversionController struct{}
var UnitConversion = new(unitConversionController)
func init() {}
// Create 创建单位换算规则
func (c *unitConversionController) Create(ctx context.Context, req *dto.CreateUnitConversionReq) (res *dto.CreateUnitConversionRes, err error) {
return service.UnitConversion.Create(ctx, req)
}
// Update 更新单位换算规则
func (c *unitConversionController) Update(ctx context.Context, req *dto.UpdateUnitConversionReq) (res *beans.ResponseEmpty, err error) {
err = service.UnitConversion.Update(ctx, req)
return
}
// Delete 删除单位换算规则
func (c *unitConversionController) Delete(ctx context.Context, req *dto.DeleteUnitConversionReq) (res *beans.ResponseEmpty, err error) {
err = service.UnitConversion.Delete(ctx, req)
return
}
// List 查询单位换算列表
func (c *unitConversionController) List(ctx context.Context, req *dto.ListUnitConversionReq) (res *dto.ListUnitConversionRes, err error) {
return service.UnitConversion.List(ctx, req)
}

View File

@@ -0,0 +1,47 @@
// 仓库控制器
// 职责仓库CRUD接口、状态更新接口
// 调用服务service.Warehouse
// 注意Update/Delete/UpdateStatus返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type warehouse struct{}
var Warehouse = new(warehouse)
func init() {
}
func (c *warehouse) CreateWarehouse(ctx context.Context, req *dto.CreateWarehouseReq) (res *dto.CreateWarehouseRes, err error) {
return service.Warehouse.Create(ctx, req)
}
func (c *warehouse) UpdateWarehouse(ctx context.Context, req *dto.UpdateWarehouseReq) (res *beans.ResponseEmpty, err error) {
err = service.Warehouse.Update(ctx, req)
return
}
func (c *warehouse) DeleteWarehouse(ctx context.Context, req *dto.DeleteWarehouseReq) (res *beans.ResponseEmpty, err error) {
err = service.Warehouse.Delete(ctx, req)
return
}
func (c *warehouse) UpdateWarehouseStatus(ctx context.Context, req *dto.UpdateWarehouseStatusReq) (res *beans.ResponseEmpty, err error) {
err = service.Warehouse.UpdateStatus(ctx, req)
return
}
func (c *warehouse) GetWarehouse(ctx context.Context, req *dto.GetWarehouseReq) (res *dto.GetWarehouseRes, err error) {
return service.Warehouse.GetOne(ctx, req)
}
func (c *warehouse) ListWarehouses(ctx context.Context, req *dto.ListWarehouseReq) (res *dto.ListWarehouseRes, err error) {
return service.Warehouse.List(ctx, req)
}

View File

@@ -0,0 +1,47 @@
// 库区控制器
// 职责库区CRUD接口、状态更新接口
// 调用服务service.Zone
// 注意Update/Delete/UpdateStatus返回*beans.ResponseEmpty直接return
package controller
import (
dto "assets/model/dto/stock"
service "assets/service/stock"
"context"
"gitea.com/red-future/common/beans"
)
type zone struct{}
var Zone = new(zone)
func init() {
}
func (c *zone) CreateZone(ctx context.Context, req *dto.CreateZoneReq) (res *dto.CreateZoneRes, err error) {
return service.Zone.Create(ctx, req)
}
func (c *zone) UpdateZone(ctx context.Context, req *dto.UpdateZoneReq) (res *beans.ResponseEmpty, err error) {
err = service.Zone.Update(ctx, req)
return
}
func (c *zone) DeleteZone(ctx context.Context, req *dto.DeleteZoneReq) (res *beans.ResponseEmpty, err error) {
err = service.Zone.Delete(ctx, req)
return
}
func (c *zone) UpdateZoneStatus(ctx context.Context, req *dto.UpdateZoneStatusReq) (res *beans.ResponseEmpty, err error) {
err = service.Zone.UpdateStatus(ctx, req)
return
}
func (c *zone) GetZone(ctx context.Context, req *dto.GetZoneReq) (res *dto.GetZoneRes, err error) {
return service.Zone.GetOne(ctx, req)
}
func (c *zone) ListZones(ctx context.Context, req *dto.ListZoneReq) (res *dto.ListZoneRes, err error) {
return service.Zone.List(ctx, req)
}