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.
 
 

387 lines
13 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package implments
import (
artDal "LAPP_LF_MOM_BACKEND/dao/base"
dal "LAPP_LF_MOM_BACKEND/dao/log"
"LAPP_LF_MOM_BACKEND/db"
"LAPP_LF_MOM_BACKEND/grmi"
meta "LAPP_LF_MOM_BACKEND/meta/log"
model "LAPP_LF_MOM_BACKEND/models/log"
"LAPP_LF_MOM_BACKEND/web/models"
)
/******************************************************************************
*
* @Description : VendorArtLst的默认查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-03-25 10:13:02
*
******************************************************************************/
var DefaultConditionOfVendorArtLst = grmi.NewCondition(
map[string]grmi.ConditionItem{
meta.VendorArtLst_VendorId.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_VendorId, grmi.Equal, true),
meta.VendorArtLst_ArtId.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_ArtId, grmi.Equal, true),
meta.VendorArtLst_Pos.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_Pos, grmi.Equal, false),
meta.VendorArtLst_CtrlLevel.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CtrlLevel, grmi.Equal, false),
meta.VendorArtLst_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CtrlPara1, grmi.Equal, false),
meta.VendorArtLst_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CtrlPara2, grmi.Equal, false),
meta.VendorArtLst_CtrlPara3.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CtrlPara3, grmi.Equal, false),
meta.VendorArtLst_CtrlPara4.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CtrlPara4, grmi.Equal, false),
meta.VendorArtLst_LastModify.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_LastModify, grmi.Approximate, false),
meta.VendorArtLst_LastUser.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_LastUser, grmi.Equal, false),
meta.VendorArtLst_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.VendorArtLst_CreateTime, grmi.Approximate, false),
},
nil,
)
/******************************************************************************
*
* @Description : VendorArtLst的默认分页查询条件
*
* @Author : 代码生成器创建
*
* @Date : 2021-03-25 10:13:02
*
******************************************************************************/
var DefaultConditionOfVendorArtLstAndPaging = grmi.NewCondition(
DefaultConditionOfVendorArtLst.Items,
grmi.NewPaging(),
)
/******************************************************************************
*
* @Struct Name : VendorArtLstServiceImplement
*-----------------------------------------------------------------------------
*
* @Description : VendorArtLst的服务实现
*
* @Author : 代码生成器创建
*
* @Date : 2021-03-25 10:13:02
*
******************************************************************************/
type VendorArtLstServiceImplement struct {
}
/******************************************************************************
*
* @Function Name : NewVendorArtLstDAOImplement
*-----------------------------------------------------------------------------
*
* @Description : 创建一个VendorArtLstDAOImplement实例
*
* @Return Value : VendorArtLstDAOImplement实例
*
* @Author : 代码生成器创建
*
* @Date : 2021-03-25 10:13:02
*
******************************************************************************/
func NewVendorArtLstServiceImplement() *VendorArtLstServiceImplement {
return &VendorArtLstServiceImplement{}
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.InsertOne
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) InsertOne(user *models.Usertab, entity *model.VendorArtLst) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "InsertOneVendorArtLst", "插入一个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
record, err := dao.SelectOne(entity.VendorId, entity.ArtId)
if err != nil {
return err
}
if record != nil {
return grmi.NewBusinessError("已经存在相同主键的记录!")
}
vendorDao := dal.NewVendorDAO(session, user.Pid, user.Userid)
vendor, err := vendorDao.SelectOne(entity.VendorId)
if err != nil {
return err
}
if vendor == nil {
return grmi.NewBusinessError("不存在对应的供应商,请检查")
}
articleDao := artDal.NewArticleDAO(session, user.Pid, user.Userid)
article, err := articleDao.SelectOne(entity.ArtId)
if err != nil {
return err
}
if article == nil {
return grmi.NewBusinessError("不存在对应的物料,请检查")
}
pos, err := dao.GetMaxPos(entity.VendorId)
if err != nil {
return err
}
entity.Pos = pos + 1
err = dao.InsertOne(entity)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.DeleteOne
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) DeleteOne(user *models.Usertab, vendorId string, artId string) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "DeleteOneVendorArtLst", "删除一个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
record, err := dao.SelectOne(vendorId, artId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
err = dao.DeleteOne(vendorId, artId)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.SelectOne
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) SelectOne(user *models.Usertab, vendorId string, artId string) (*model.VendorArtLst, error) {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "SelectOneVendorArtLst", "查询一个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
result, err := dao.SelectOne(vendorId, artId)
if err != nil {
return nil, err
}
return result, nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.UpdateOne
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) UpdateOne(user *models.Usertab, entity *model.VendorArtLst) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "UpdateOneVendorArtLst", "修改一个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
record, err := dao.SelectOne(entity.VendorId, entity.ArtId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
entity.Pos = record.Pos
entity.VendorId = record.VendorId
entity.ArtId = record.ArtId
err = dao.UpdateOne(entity)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.Insert
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) Insert(user *models.Usertab, insertItem *model.VendorArtLstInsert) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "InsertVendorArtLst", "插入多个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
err := session.Begin()
if err != nil {
return err
}
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
vendorDao := dal.NewVendorDAO(session, user.Pid, user.Userid)
articleDao := artDal.NewArticleDAO(session, user.Pid, user.Userid)
entities := make([]model.VendorArtLst, len(insertItem.Records))
for index, entity := range insertItem.Records {
vendor, err := vendorDao.SelectOne(entity.VendorId)
if err != nil {
return err
}
if vendor == nil {
return grmi.NewBusinessError("不存在对应的供应商,请检查")
}
article, err := articleDao.SelectOne(entity.ArtId)
if err != nil {
return err
}
if article == nil {
return grmi.NewBusinessError("不存在对应的物料,请检查")
}
if entity.VendorId != insertItem.VendorId {
return grmi.NewBusinessError("插入的数据与设置的VendorId不相符")
}
entity.Pos = index + 1
entities[index] = entity
}
//fmt.Println("entity:", entities)
err = dao.DeleteWhere([]grmi.Predicate{
meta.VendorArtLst_VendorId.NewPredicate(grmi.Equal, insertItem.VendorId),
})
if err != nil {
session.Rollback()
return err
}
err = dao.Insert(&entities)
if err != nil {
session.Rollback()
return err
}
err = session.Commit()
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.Delete
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) Delete(user *models.Usertab, entities *[]model.VendorArtLst) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "DeleteVendorArtLst", "删除多个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
err := session.Begin()
if err != nil {
return err
}
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.VendorId, entity.ArtId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
}
err = dao.Delete(entities)
if err != nil {
session.Rollback()
return err
}
err = session.Commit()
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Reference LAPP_LF_MOM_BACKEND/services/log/VendorArtLstService.Select
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) Select(user *models.Usertab, urlParameters map[string]string) (interface{}, error) {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "SelectVendorArtLst", "查询VendorArtLst")
condition := DefaultConditionOfVendorArtLstAndPaging
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
predicates, err := condition.BuildPredicates(urlParameters)
if err != nil {
return nil, err
}
dao := dal.NewVendorArtLstDAO(session, user.Pid, 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_LF_MOM_BACKEND/services/log/VendorArtLstService.Update
*
******************************************************************************/
func (impl *VendorArtLstServiceImplement) Update(user *models.Usertab, entities *[]model.VendorArtLst) error {
grmi.Log(user, "/services/log/implments/LOG_VendorArtLst.service.impl.go", "UpdateVendorArtLst", "修改多个VendorArtLst")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
err := session.Begin()
if err != nil {
return err
}
dao := dal.NewVendorArtLstDAO(session, user.Pid, user.Userid)
for _, entity := range *entities {
record, err := dao.SelectOne(entity.VendorId, entity.ArtId)
if err != nil {
return err
}
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
entity.Pos = record.Pos
entity.VendorId = record.VendorId
entity.ArtId = record.ArtId
}
err = dao.Update(entities)
if err != nil {
session.Rollback()
return err
}
err = session.Commit()
if err != nil {
return err
}
return nil
}