广汽安道拓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.
 
 

349 lines
13 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 : InventoryCheckDetail的默认查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-07-08 10:08:33
*
******************************************************************************/
var DefaultConditionOfInventoryCheckDetail = grmi.NewCondition(
map[string]grmi.ConditionItem{
meta.InventoryCheckDetail_InventoryCheckId.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_InventoryCheckId, grmi.Equal, true),
meta.InventoryCheckDetail_ICDPos.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICDPos, grmi.Equal, true),
meta.InventoryCheckDetail_Descr.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_Descr, grmi.Equal, false),
meta.InventoryCheckDetail_StorageBinId.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_StorageBinId, grmi.Equal, false),
meta.InventoryCheckDetail_WarehouseId.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_WarehouseId, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara1, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara2, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara3.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara3, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara4.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara4, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara5.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara5, grmi.Equal, false),
meta.InventoryCheckDetail_ICCtrlPara6.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_ICCtrlPara6, grmi.Equal, false),
meta.InventoryCheckDetail_LastModify.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_LastModify, grmi.Approximate, false),
meta.InventoryCheckDetail_LastUser.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_LastUser, grmi.Equal, false),
meta.InventoryCheckDetail_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.InventoryCheckDetail_CreateTime, grmi.Approximate, false),
},
nil,
)
/******************************************************************************
*
* @Description : InventoryCheckDetail的默认分页查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-07-08 10:08:33
*
******************************************************************************/
var DefaultConditionOfInventoryCheckDetailAndPaging = grmi.NewCondition(
DefaultConditionOfInventoryCheckDetail.Items,
grmi.NewPaging(),
)
/******************************************************************************
*
* @Struct Name : InventoryCheckDetailServiceImplement
*-----------------------------------------------------------------------------
*
* @Description : InventoryCheckDetail的服务实现
*
* @Author : 代码生成器创建
*
* @Date : 2021-07-08 10:08:33
*
******************************************************************************/
type InventoryCheckDetailServiceImplement struct {
}
/******************************************************************************
*
* @Function Name : NewInventoryCheckDetailDAOImplement
*-----------------------------------------------------------------------------
*
* @Description : 创建一个InventoryCheckDetailDAOImplement实例
*
* @Return Value : InventoryCheckDetailDAOImplement实例
*
* @Author : 代码生成器创建
*
* @Date : 2021-07-08 10:08:33
*
******************************************************************************/
func NewInventoryCheckDetailServiceImplement() *InventoryCheckDetailServiceImplement {
return &InventoryCheckDetailServiceImplement{}
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/InventoryCheckDetailService.InsertOne
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) InsertOne(user *global.User, entity *model.InventoryCheckDetail) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "InsertOneInventoryCheckDetail", "插入一个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
record, err := dao.SelectOne(entity.InventoryCheckId, entity.ICDPos)
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/InventoryCheckDetailService.DeleteOne
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) DeleteOne(user *global.User, inventoryCheckId string, iCDPos int) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "DeleteOneInventoryCheckDetail", "删除一个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
record, err := dao.SelectOne(inventoryCheckId, iCDPos)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
err = dao.DeleteOne(inventoryCheckId, iCDPos)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/InventoryCheckDetailService.SelectOne
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) SelectOne(user *global.User, inventoryCheckId string, iCDPos int) (*model.InventoryCheckDetail, error) {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "SelectOneInventoryCheckDetail", "查询一个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
result, err := dao.SelectOne(inventoryCheckId, iCDPos)
if err != nil {
return nil, err
}
return result, nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/InventoryCheckDetailService.UpdateOne
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) UpdateOne(user *global.User, entity *model.InventoryCheckDetail) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "UpdateOneInventoryCheckDetail", "修改一个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
record, err := dao.SelectOne(entity.InventoryCheckId, entity.ICDPos)
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/InventoryCheckDetailService.Insert
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) Insert(user *global.User, entities *[]model.InventoryCheckDetail) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "InsertInventoryCheckDetail", "插入多个InventoryCheckDetail")
//engine := db.Eloquent.Master()
//session := engine.NewSession()
//defer session.Close()
//if err := session.Begin(); err != nil {
// return err
//}
//dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
//artDao := dal.NewArticleDAO(session, user.UserId)
////binDao := dal.NewStorageBinDAO(session, user.UserId)
//lstLi := *entities
//if len(lstLi) == 0 {
// return grmi.NewBusinessError("插入数据为空")
//}
//headId := lstLi[0].InventoryCheckId
//err := dao.DeleteWhere([]grmi.Predicate{meta.InventoryCheckDetail_InventoryCheckId.NewPredicate(grmi.Equal, headId)})
//if err != nil {
// _ = session.Rollback()
// return err
//}
//var pos int
//for index, detail := range lstLi {
// detail.Pos = pos + 1
// pos++
// if detail.InventoryCheckId != headId {
// _ = session.Rollback()
// return grmi.NewBusinessError("InventoryCheckId不一致")
// }
// article, err := artDao.SelectOne(detail.ArtId)
// if err != nil {
// _ = session.Rollback()
// return err
// }
// if article == nil {
// _ = session.Rollback()
// return grmi.NewBusinessError("备件主数据不存在")
// }
// //binLocation, err := binDao.SelectOne(detail.WarehouseId, detail.StorageBinId)
// //if err != nil {
// // _ = session.Rollback()
// // return err
// //}
// //if binLocation == nil {
// // _ = session.Rollback()
// // return grmi.NewBusinessError("不存在该库位")
// //}
// lstLi[index] = detail
//}
//err = dao.Insert(entities)
//if err != nil {
// _ = session.Rollback()
// return err
//}
//_ = session.Commit()
return nil
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/wm/InventoryCheckDetailService.Delete
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) Delete(user *global.User, entities *[]model.InventoryCheckDetail) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "DeleteInventoryCheckDetail", "删除多个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.InventoryCheckId, entity.ICDPos)
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/InventoryCheckDetailService.Select
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) Select(user *global.User, urlParameters map[string]string) (interface{}, error) {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "SelectInventoryCheckDetail", "查询InventoryCheckDetail")
condition := DefaultConditionOfInventoryCheckDetailAndPaging
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
predicates, err := condition.BuildPredicates(urlParameters)
if err != nil {
return nil, err
}
dao := dal.NewInventoryCheckDetailDAO(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/InventoryCheckDetailService.Update
*
******************************************************************************/
func (impl *InventoryCheckDetailServiceImplement) Update(user *global.User, entities *[]model.InventoryCheckDetail) error {
grmi.Log(user, "/services/wm/implments/InventoryCheckDetail.service.impl.go", "UpdateInventoryCheckDetail", "修改多个InventoryCheckDetail")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewInventoryCheckDetailDAO(session, user.UserId)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.InventoryCheckId, entity.ICDPos)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
}
err := dao.Update(entities)
if err != nil {
return err
}
return nil
}