daShangDao_psiServer/service/sorting_settings.go
2026-06-15 13:47:39 +08:00

82 lines
2.5 KiB
Go

package service
import (
"psi/database"
"psi/models"
systemReq "psi/models/request"
systemRes "psi/models/response"
"psi/utils"
"time"
"gorm.io/gorm"
)
type SortingSettingsService struct{}
// GetSortingSettings 获取分拣设置
func (s *SortingSettingsService) GetSortingSettings(db ...*gorm.DB) *systemRes.SortingSettingsResponse {
databaseConn := database.OptionalDB(db...)
var settings models.SortingSettings
databaseConn.First(&settings)
response := systemRes.ConvertSortingSettingsToResponse(settings)
return &response
}
// SaveSortingSettings 保存分拣设置(新增或更新)
func (s *SortingSettingsService) SaveSortingSettings(req systemReq.SaveSortingSettingsRequest, db ...*gorm.DB) error {
databaseConn := database.OptionalDB(db...)
now := time.Now().Unix()
var settings models.SortingSettings
result := databaseConn.First(&settings)
if result.Error == nil {
updateData := map[string]interface{}{
"purchase_order_remark": req.PurchaseOrderRemark,
"classify_by_condition": req.ClassifyByCondition,
"wangdiantong_effect": req.WangdiantongEffect,
"warehouse_number": req.WarehouseNumber,
"shelf_store": req.ShelfStore,
"container": req.Container,
"capacity_weight": req.CapacityWeight,
"quick_picking": req.QuickPicking,
"block_hk_macau_taiwan": req.BlockHkMacauTaiwan,
"block_magazine": req.BlockMagazine,
"block_speed_install": req.BlockSpeedInstall,
"take_photo": req.TakePhoto,
"updated_at": now,
}
if err := databaseConn.Model(&settings).Updates(updateData).Error; err != nil {
return utils.NewError("更新分拣设置失败: " + err.Error())
}
} else {
settings := models.SortingSettings{
PurchaseOrderRemark: req.PurchaseOrderRemark,
ClassifyByCondition: *req.ClassifyByCondition,
WangdiantongEffect: req.WangdiantongEffect,
WarehouseNumber: req.WarehouseNumber,
ShelfStore: req.ShelfStore,
Container: req.Container,
CapacityWeight: *req.CapacityWeight,
QuickPicking: *req.QuickPicking,
BlockHkMacauTaiwan: *req.BlockHkMacauTaiwan,
BlockMagazine: *req.BlockMagazine,
BlockSpeedInstall: *req.BlockSpeedInstall,
TakePhoto: *req.TakePhoto,
CreatedAt: now,
UpdatedAt: now,
}
if err := databaseConn.Create(&settings).Error; err != nil {
return utils.NewError("创建分拣设置失败: " + err.Error())
}
}
return nil
}