82 lines
2.5 KiB
Go
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
|
|
}
|