Files
zsp-project/backend/internal/service/delivery_service.go
2026-06-03 20:59:39 +08:00

154 lines
5.7 KiB
Go
Executable File

package service
import (
"time"
"github.com/rovina/zsp-backend/internal/model"
"github.com/rovina/zsp-backend/internal/repository"
"gorm.io/gorm"
)
type DeliveryService interface {
// 我要提货
ListApply(page, pageSize int, orderNumber, blNumber, status string) ([]model.DeliveryApply, int64, error)
GetApplyByID(id uint) (*model.DeliveryApply, error)
CreateApply(e *model.DeliveryApply) error
UpdateApply(e *model.DeliveryApply) error
DeleteApply(id uint) error
// 出库单
ListOutbound(page, pageSize int, outboundNumber, blNumber, status string) ([]model.DeliveryOutbound, int64, error)
GetOutboundByID(id uint) (*model.DeliveryOutbound, error)
CreateOutbound(e *model.DeliveryOutbound) error
UpdateOutbound(e *model.DeliveryOutbound) error
DeleteOutbound(id uint) error
// 仓库
ListWarehouses() ([]model.Warehouse, error)
GetWarehouseByID(id uint) (*model.Warehouse, error)
CreateWarehouse(e *model.Warehouse) error
UpdateWarehouse(e *model.Warehouse) error
DeleteWarehouse(id uint) error
// 入库
ListInbound(page, pageSize int, warehouse, commodity string) ([]model.InventoryInbound, int64, error)
GetInboundByID(id uint) (*model.InventoryInbound, error)
CreateInbound(e *model.InventoryInbound) error
UpdateInbound(e *model.InventoryInbound) error
DeleteInbound(id uint) error
// 货权转移
ListOwnership(page, pageSize int, transferNumber, blNumber, status string) ([]model.OwnershipTransfer, int64, error)
GetOwnershipByID(id uint) (*model.OwnershipTransfer, error)
CreateOwnership(e *model.OwnershipTransfer) error
DeleteOwnership(id uint) error
CreateOwnershipFiles(files []model.OwnershipTransferFile) error
// DB for complex queries (InventorySummary)
DB() *gorm.DB
}
type deliveryService struct {
repo *repository.DeliveryRepository
}
func NewDeliveryService(repo *repository.DeliveryRepository) DeliveryService {
return &deliveryService{repo: repo}
}
func (s *deliveryService) DB() *gorm.DB { return s.repo.DB() }
func (s *deliveryService) ListApply(page, pageSize int, orderNumber, blNumber, status string) ([]model.DeliveryApply, int64, error) {
return s.repo.ListDeliveryApply(page, pageSize, orderNumber, blNumber, status)
}
func (s *deliveryService) GetApplyByID(id uint) (*model.DeliveryApply, error) {
return s.repo.GetDeliveryApplyByID(id)
}
func (s *deliveryService) CreateApply(e *model.DeliveryApply) error {
e.CreateTime = time.Now()
e.UpdateTime = time.Now()
return s.repo.CreateDeliveryApply(e)
}
func (s *deliveryService) UpdateApply(e *model.DeliveryApply) error {
e.UpdateTime = time.Now()
return s.repo.UpdateDeliveryApply(e)
}
func (s *deliveryService) DeleteApply(id uint) error {
return s.repo.DeleteDeliveryApply(id)
}
func (s *deliveryService) ListOutbound(page, pageSize int, outboundNumber, blNumber, status string) ([]model.DeliveryOutbound, int64, error) {
return s.repo.ListDeliveryOutbound(page, pageSize, outboundNumber, blNumber, status)
}
func (s *deliveryService) GetOutboundByID(id uint) (*model.DeliveryOutbound, error) {
return s.repo.GetDeliveryOutboundByID(id)
}
func (s *deliveryService) CreateOutbound(e *model.DeliveryOutbound) error {
e.CreateTime = time.Now()
e.UpdateTime = time.Now()
return s.repo.CreateDeliveryOutbound(e)
}
func (s *deliveryService) UpdateOutbound(e *model.DeliveryOutbound) error {
e.UpdateTime = time.Now()
return s.repo.UpdateDeliveryOutbound(e)
}
func (s *deliveryService) DeleteOutbound(id uint) error {
return s.repo.DeleteDeliveryOutbound(id)
}
func (s *deliveryService) ListWarehouses() ([]model.Warehouse, error) {
return s.repo.ListWarehouses()
}
func (s *deliveryService) GetWarehouseByID(id uint) (*model.Warehouse, error) {
return s.repo.GetWarehouseByID(id)
}
func (s *deliveryService) CreateWarehouse(e *model.Warehouse) error {
e.CreateTime = time.Now()
e.UpdateTime = time.Now()
return s.repo.CreateWarehouse(e)
}
func (s *deliveryService) UpdateWarehouse(e *model.Warehouse) error {
e.UpdateTime = time.Now()
return s.repo.UpdateWarehouse(e)
}
func (s *deliveryService) DeleteWarehouse(id uint) error {
return s.repo.DeleteWarehouse(id)
}
func (s *deliveryService) ListInbound(page, pageSize int, warehouse, commodity string) ([]model.InventoryInbound, int64, error) {
return s.repo.ListInventoryInbound(page, pageSize, warehouse, commodity)
}
func (s *deliveryService) GetInboundByID(id uint) (*model.InventoryInbound, error) {
return s.repo.GetInventoryInboundByID(id)
}
func (s *deliveryService) CreateInbound(e *model.InventoryInbound) error {
e.CreateTime = time.Now()
e.UpdateTime = time.Now()
return s.repo.CreateInventoryInbound(e)
}
func (s *deliveryService) UpdateInbound(e *model.InventoryInbound) error {
e.UpdateTime = time.Now()
return s.repo.UpdateInventoryInbound(e)
}
func (s *deliveryService) DeleteInbound(id uint) error {
return s.repo.DeleteInventoryInbound(id)
}
func (s *deliveryService) ListOwnership(page, pageSize int, transferNumber, blNumber, status string) ([]model.OwnershipTransfer, int64, error) {
return s.repo.ListOwnershipTransfer(page, pageSize, transferNumber, blNumber, status)
}
func (s *deliveryService) GetOwnershipByID(id uint) (*model.OwnershipTransfer, error) {
return s.repo.GetOwnershipTransferByID(id)
}
func (s *deliveryService) CreateOwnership(e *model.OwnershipTransfer) error {
e.CreateTime = time.Now()
e.UpdateTime = time.Now()
return s.repo.CreateOwnershipTransfer(e)
}
func (s *deliveryService) DeleteOwnership(id uint) error {
return s.repo.DeleteOwnershipTransfer(id)
}
func (s *deliveryService) CreateOwnershipFiles(files []model.OwnershipTransferFile) error {
return s.repo.CreateOwnershipTransferFiles(files)
}