广汽安道拓Acura项目MES后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

367 lines
14 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package implments
import (
dal "LAPP_ACURA_MOM_BACKEND/dao/wm"
"LAPP_ACURA_MOM_BACKEND/db"
"LAPP_ACURA_MOM_BACKEND/global"
"LAPP_ACURA_MOM_BACKEND/grmi"
meta "LAPP_ACURA_MOM_BACKEND/meta/wm"
model "LAPP_ACURA_MOM_BACKEND/models/wm"
)
/******************************************************************************
*
* @Description : Warehouse的默认查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-06-29 10:57:04
*
******************************************************************************/
var DefaultConditionOfWarehouse = grmi.NewCondition(
map[string]grmi.ConditionItem{
meta.Warehouse_WarehouseId.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseId, grmi.Equal, true),
meta.Warehouse_Descr.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_Descr, grmi.Equal, false),
meta.Warehouse_Status.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_Status, grmi.Equal, false),
meta.Warehouse_WarehouseType.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseType, grmi.Equal, false),
meta.Warehouse_StorageMethod.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_StorageMethod, grmi.Equal, false),
meta.Warehouse_Comment.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_Comment, grmi.Equal, false),
meta.Warehouse_AllocationStrategy.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_AllocationStrategy, grmi.Equal, false),
meta.Warehouse_RuleSetId.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_RuleSetId, grmi.Equal, false),
meta.Warehouse_CompleteStockRemoval.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_CompleteStockRemoval, grmi.Equal, false),
meta.Warehouse_TransportSystemNr.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_TransportSystemNr, grmi.Equal, false),
meta.Warehouse_TransportPoint.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_TransportPoint, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara1, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara2, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara3.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara3, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara4.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara4, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara5.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara5, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara6.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara6, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara7.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara7, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara8.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara8, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara9.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara9, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara10.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara10, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara11.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara11, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara12.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara12, grmi.Equal, false),
meta.Warehouse_WarehouseCtrlPara13.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara13, grmi.Approximate, false),
meta.Warehouse_WarehouseCtrlPara14.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara14, grmi.Approximate, false),
meta.Warehouse_WarehouseCtrlPara15.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara15, grmi.Approximate, false),
meta.Warehouse_WarehouseCtrlPara16.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_WarehouseCtrlPara16, grmi.Approximate, false),
meta.Warehouse_LastModify.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_LastModify, grmi.Approximate, false),
meta.Warehouse_LastUser.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_LastUser, grmi.Equal, false),
meta.Warehouse_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.Warehouse_CreateTime, grmi.Approximate, false),
},
nil,
)
/******************************************************************************
*
* @Description : Warehouse的默认分页查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-06-29 10:57:04
*
******************************************************************************/
var DefaultConditionOfWarehouseAndPaging = grmi.NewCondition(
DefaultConditionOfWarehouse.Items,
grmi.NewPaging(),
)
/******************************************************************************
*
* @Struct Name : WarehouseServiceImplement
*-----------------------------------------------------------------------------
*
* @Description : Warehouse的服务实现
*
* @Author : 代码生成器创建
*
* @Date : 2021-06-29 10:57:04
*
******************************************************************************/
type WarehouseServiceImplement struct {
}
/******************************************************************************
*
* @Function Name : NewWarehouseDAOImplement
*-----------------------------------------------------------------------------
*
* @Description : 创建一个WarehouseDAOImplement实例
*
* @Return Value : WarehouseDAOImplement实例
*
* @Author : 代码生成器创建
*
* @Date : 2021-06-29 10:57:04
*
******************************************************************************/
func NewWarehouseServiceImplement() *WarehouseServiceImplement {
return &WarehouseServiceImplement{}
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.InsertOne
*
******************************************************************************/
func (impl *WarehouseServiceImplement) InsertOne(user *global.User, entity *model.Warehouse) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "InsertOneWarehouse", "插入一个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
record, err := dao.SelectOne(entity.WarehouseId)
if err != nil {
return err
}
if record != nil {
return grmi.NewBusinessError("已经存在相同主键的记录!")
}
err = dao.InsertOne(entity)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.DeleteOne
*
******************************************************************************/
func (impl *WarehouseServiceImplement) DeleteOne(user *global.User, warehouseId string) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "DeleteOneWarehouse", "删除一个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
if err := session.Begin(); err != nil {
return err
}
dao := dal.NewWarehouseDAO(session, user.UserId)
workAreaDao := dal.NewWorkAreaDAO(session, user.UserId)
areaDao := dal.NewStorageAreaDAO(session, user.UserId)
rackDao := dal.NewStorageRackDAO(session, user.UserId)
binDao := dal.NewStorageBinDAO(session, user.UserId)
record, err := dao.SelectOne(warehouseId)
if err != nil {
_ = session.Rollback()
return err
}
if record == nil {
_ = session.Rollback()
return grmi.NewBusinessError("不存在指定记录!")
}
err = workAreaDao.DeleteWorkAreaLst(model.WORK_AREA_TYPE_WARE_HOUSE, warehouseId, "")
if err != nil {
_ = session.Rollback()
return err
}
err = workAreaDao.DeleteWhere([]grmi.Predicate{meta.WorkArea_WorkAreaType.NewPredicate(grmi.Equal, model.WORK_AREA_TYPE_WARE_HOUSE), meta.WorkArea_RelevanceId.NewPredicate(grmi.Equal, warehouseId)})
if err != nil {
_ = session.Rollback()
return err
}
err = areaDao.DeleteWhere([]grmi.Predicate{meta.StorageArea_WarehouseId.NewPredicate(grmi.Equal, warehouseId)})
if err != nil {
_ = session.Rollback()
return err
}
err = rackDao.DeleteWhere([]grmi.Predicate{meta.StorageRack_WarehouseId.NewPredicate(grmi.Equal, warehouseId)})
if err != nil {
_ = session.Rollback()
return err
}
err = binDao.DeleteWhere([]grmi.Predicate{meta.StorageBin_WarehouseId.NewPredicate(grmi.Equal, warehouseId)})
if err != nil {
_ = session.Rollback()
return err
}
err = dao.DeleteOne(warehouseId)
if err != nil {
_ = session.Rollback()
return err
}
_ = session.Commit()
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.SelectOne
*
******************************************************************************/
func (impl *WarehouseServiceImplement) SelectOne(user *global.User, warehouseId string) (*model.Warehouse, error) {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "SelectOneWarehouse", "查询一个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
result, err := dao.SelectOne(warehouseId)
if err != nil {
return nil, err
}
return result, nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.UpdateOne
*
******************************************************************************/
func (impl *WarehouseServiceImplement) UpdateOne(user *global.User, entity *model.Warehouse) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "UpdateOneWarehouse", "修改一个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
record, err := dao.SelectOne(entity.WarehouseId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
err = dao.UpdateOne(entity)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.Insert
*
******************************************************************************/
func (impl *WarehouseServiceImplement) Insert(user *global.User, entities *[]model.Warehouse) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "InsertWarehouse", "插入多个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.WarehouseId)
if err != nil {
return err
}
if record != nil {
return grmi.NewBusinessError("已经存在相同主键的记录!")
}
}
err := dao.Insert(entities)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.Delete
*
******************************************************************************/
func (impl *WarehouseServiceImplement) Delete(user *global.User, entities *[]model.Warehouse) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "DeleteWarehouse", "删除多个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.WarehouseId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
}
err := dao.Delete(entities)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.Select
*
******************************************************************************/
func (impl *WarehouseServiceImplement) Select(user *global.User, urlParameters map[string]string) (interface{}, error) {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "SelectWarehouse", "查询Warehouse")
condition := DefaultConditionOfWarehouseAndPaging
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
predicates, err := condition.BuildPredicates(urlParameters)
if err != nil {
return nil, err
}
dao := dal.NewWarehouseDAO(session, user.UserId)
if condition.Fill(urlParameters) {
result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields)
if err != nil {
return nil, err
}
return result, nil
} else {
result, err := dao.Select(predicates, condition.OrderByFields)
if err != nil {
return nil, err
}
return result, nil
}
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/WarehouseService.Update
*
******************************************************************************/
func (impl *WarehouseServiceImplement) Update(user *global.User, entities *[]model.Warehouse) error {
grmi.Log(user, "/services/wm/implments/Warehouse.service.impl.go", "UpdateWarehouse", "修改多个Warehouse")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewWarehouseDAO(session, user.UserId)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.WarehouseId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
}
err := dao.Update(entities)
if err != nil {
return err
}
return nil
}