154 lines
5.7 KiB
Go
Executable File
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)
|
|
}
|