Browse Source

修正了保存缺陷分组发生的错误

pull/62/head
allanwei 3 years ago
parent
commit
fdc7972afe
1 changed files with 16 additions and 36 deletions
  1. +16
    -36
      services/qm/implments/DefectGrp.service.impl.go

+ 16
- 36
services/qm/implments/DefectGrp.service.impl.go View File

@ -103,31 +103,11 @@ func (impl *DefectGrpServiceImplement) InsertOne(user *models.Usertab, entity *m
if record != nil {
return grmi.NewBusinessError("已经存在相同主键的记录!")
}
if entity.Reasons != nil {
links := make([]model.DefectGrpReasonLst, len(entity.Reasons))
for index, reason := range entity.Reasons {
links[index] = model.DefectGrpReasonLst{
DefectGrpId: entity.DefectGrpId,
DefectReasonId: reason.DefectReasonId,
Pos: index + 1,
}
}
defectGrpReasonLstDAO := dal.NewDefectGrpReasonLstDAO(session, user.Pid, user.Userid)
err = defectGrpReasonLstDAO.Insert(&links)
if err != nil {
return err
}
defectReasonDAO := dal.NewDefectReasonDAO(session, user.Pid, user.Userid)
err = defectReasonDAO.Insert(&entity.Reasons)
if err != nil {
return err
}
}
err = dao.InsertOne(entity)
if err != nil {
return err
}
err = impl.saveReasons(user, session, entity.DefectGrpId)
err = impl.saveReasons(user, session, entity)
if err != nil {
return err
}
@ -229,7 +209,7 @@ func (impl *DefectGrpServiceImplement) UpdateOne(user *models.Usertab, entity *m
if err != nil {
return err
}
err = impl.saveReasons(user, session, entity.DefectGrpId)
err = impl.saveReasons(user, session, entity)
if err != nil {
return err
}
@ -251,7 +231,7 @@ func (impl *DefectGrpServiceImplement) UpdateOne(user *models.Usertab, entity *m
*
* @Function Parameters : xorm会话
*
* @Function Parameters : 缺陷分组标识
* @Function Parameters : 缺陷分组
*
* @Return Value : 执行时发生的错误
*
@ -260,24 +240,24 @@ func (impl *DefectGrpServiceImplement) UpdateOne(user *models.Usertab, entity *m
* @Date : 2021-03-25
*
******************************************************************************/
func (impl *DefectGrpServiceImplement) saveReasons(user *models.Usertab, session *xorm.Session, defectGrpId string) error {
func (impl *DefectGrpServiceImplement) saveReasons(user *models.Usertab, session *xorm.Session, entity *model.DefectGrp) error {
defectGrpReasonLstDAO := dal.NewDefectGrpReasonLstDAO(session, user.Pid, user.Userid)
links, err := defectGrpReasonLstDAO.Select([]grmi.Predicate{meta.DefectGrpReasonLst_DefectGrpId.NewPredicate(grmi.Equal, defectGrpId)}, nil)
if err != nil {
return err
}
if links != nil {
err = defectGrpReasonLstDAO.Delete(&links)
if entity.Reasons != nil {
links := make([]model.DefectGrpReasonLst, len(entity.Reasons))
for index, reason := range entity.Reasons {
links[index] = model.DefectGrpReasonLst{
DefectGrpId: entity.DefectGrpId,
DefectReasonId: reason.DefectReasonId,
Pos: index + 1,
}
}
defectGrpReasonLstDAO := dal.NewDefectGrpReasonLstDAO(session, user.Pid, user.Userid)
err := defectGrpReasonLstDAO.Insert(&links)
if err != nil {
return err
}
reasonIds := make([]string, len(links))
for index, link := range links {
reasonIds[index] = link.DefectReasonId
}
defectReasonDAO := dal.NewDefectReasonDAO(session, user.Pid, user.Userid)
err = defectReasonDAO.DeleteWhere([]grmi.Predicate{meta.DefectReason_DefectReasonId.NewPredicate(grmi.Include, reasonIds)})
err = defectReasonDAO.Insert(&entity.Reasons)
if err != nil {
return err
}


Loading…
Cancel
Save