|
@ -9,6 +9,7 @@ import ( |
|
|
meta "LAPP_LF_MOM_BACKEND/meta/base" |
|
|
meta "LAPP_LF_MOM_BACKEND/meta/base" |
|
|
model "LAPP_LF_MOM_BACKEND/models/base" |
|
|
model "LAPP_LF_MOM_BACKEND/models/base" |
|
|
"LAPP_LF_MOM_BACKEND/web/models" |
|
|
"LAPP_LF_MOM_BACKEND/web/models" |
|
|
|
|
|
"strconv" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
/****************************************************************************** |
|
@ -186,29 +187,58 @@ func (impl *ProcessWorkPlaceLstServiceImplement) UpdateOne(user *models.Usertab, |
|
|
* @Reference LAPP_LF_MOM_BACKEND/services/base/ProcessWorkPlaceLstService.Insert |
|
|
* @Reference LAPP_LF_MOM_BACKEND/services/base/ProcessWorkPlaceLstService.Insert |
|
|
* |
|
|
* |
|
|
******************************************************************************/ |
|
|
******************************************************************************/ |
|
|
func (impl *ProcessWorkPlaceLstServiceImplement) Insert(user *models.Usertab, entities *[]model.ProcessWorkPlaceLst) error { |
|
|
|
|
|
|
|
|
func (impl *ProcessWorkPlaceLstServiceImplement) Insert(user *models.Usertab, entities model.ProcessWPInsert) error { |
|
|
|
|
|
|
|
|
grmi.Log(user, "/services/base/implments/ProcessWorkPlaceLst.service.impl.go", "InsertProcessWorkPlaceLst", "插入多个ProcessWorkPlaceLst") |
|
|
grmi.Log(user, "/services/base/implments/ProcessWorkPlaceLst.service.impl.go", "InsertProcessWorkPlaceLst", "插入多个ProcessWorkPlaceLst") |
|
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
engine := db.Eloquent.Master() |
|
|
session := engine.NewSession() |
|
|
session := engine.NewSession() |
|
|
defer session.Close() |
|
|
defer session.Close() |
|
|
|
|
|
if err := session.Begin(); err != nil { |
|
|
|
|
|
return err |
|
|
|
|
|
} |
|
|
dao := dal.NewProcessWorkPlaceLstDAO(session, user.Pid, user.Userid) |
|
|
dao := dal.NewProcessWorkPlaceLstDAO(session, user.Pid, user.Userid) |
|
|
|
|
|
|
|
|
for _, entity := range *entities { |
|
|
|
|
|
record, err := dao.SelectOne(entity.PO, entity.WorkPlaceNr, entity.WorkLineId) |
|
|
|
|
|
|
|
|
poDao := dal.NewProcessDAO(session, user.Pid, user.Userid) |
|
|
|
|
|
wpDao := dal.NewWorkPlaceDAO(session, user.Pid, user.Userid) |
|
|
|
|
|
po := entities.PO |
|
|
|
|
|
workLineId := entities.WorkLineId |
|
|
|
|
|
process, err := poDao.SelectOne(po, workLineId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return err |
|
|
|
|
|
} |
|
|
|
|
|
if process == nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return grmi.NewBusinessError("不存在对应的工序数据") |
|
|
|
|
|
} |
|
|
|
|
|
li := entities.ProcessWorkPlaceLstLi |
|
|
|
|
|
for _, entity := range li { |
|
|
|
|
|
if entity.PO != po || entity.WorkLineId != workLineId { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return grmi.NewBusinessError("关联工序不一致") |
|
|
|
|
|
} |
|
|
|
|
|
workPlace, err := wpDao.SelectOne(entity.WorkPlaceNr) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
if record != nil { |
|
|
|
|
|
return grmi.NewBusinessError("已经存在相同主键的记录!") |
|
|
|
|
|
|
|
|
if workPlace == nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return grmi.NewBusinessError("不存在对应的工位,workPlaceNr:" + strconv.Itoa(entity.WorkPlaceNr)) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
err := dao.Insert(entities) |
|
|
|
|
|
|
|
|
err = dao.DeleteWhere([]grmi.Predicate{meta.ProcessWorkPlaceLst_PO.NewPredicate(grmi.Equal, po), meta.ProcessWorkPlaceLst_WorkLineId.NewPredicate(grmi.Equal, workLineId)}) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return err |
|
|
|
|
|
} |
|
|
|
|
|
err = dao.Insert(&li) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
|
|
|
_ = session.Commit() |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|