|
|
@ -116,6 +116,25 @@ func (impl *WorkLineServiceImplement) InsertOne(user *models.Usertab, entity *mo |
|
|
|
if record != nil { |
|
|
|
return grmi.NewBusinessError("已经存在相同主键的记录!") |
|
|
|
} |
|
|
|
weekModelDao := dal.NewWeekModelDAO(session, user.Pid, user.Userid) |
|
|
|
weekModel, err := weekModelDao.SelectOne(entity.WeekModelNr) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if weekModel == nil { |
|
|
|
return grmi.NewBusinessError("不存在对应的周模型,请检查") |
|
|
|
} |
|
|
|
if entity.WorkCalendarNr != 0 { |
|
|
|
calendarDao := dal.NewWorkCalendarDAO(session, user.Pid, user.Userid) |
|
|
|
calendar, err := calendarDao.SelectOne(entity.WorkCalendarNr) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if calendar == nil { |
|
|
|
return grmi.NewBusinessError("不存在对应的日历模型") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
err = dao.InsertOne(entity) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
@ -135,6 +154,10 @@ func (impl *WorkLineServiceImplement) DeleteOne(user *models.Usertab, workLineid |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
err := session.Begin() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
dao := dal.NewWorkLineDAO(session, user.Pid, user.Userid) |
|
|
|
record, err := dao.SelectOne(workLineid) |
|
|
|
if err != nil { |
|
|
@ -143,10 +166,24 @@ func (impl *WorkLineServiceImplement) DeleteOne(user *models.Usertab, workLineid |
|
|
|
if record == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定记录!") |
|
|
|
} |
|
|
|
specialDayDao := dal.NewWorkLineSpecialDayDAO(session, user.Pid, user.Userid) |
|
|
|
err = specialDayDao.DeleteWhere([]grmi.Predicate{meta.WorkLineSpecialDay_WorkLineid.NewPredicate(grmi.Equal, workLineid)}) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
workLineShiftDao := dal.NewWorkLineWorkShiftLstDAO(session, user.Pid, user.Userid) |
|
|
|
err = workLineShiftDao.DeleteWhere([]grmi.Predicate{meta.WorkLineWorkShiftLst_WorkLineId.NewPredicate(grmi.Equal, workLineid)}) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = dao.DeleteOne(workLineid) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
session.Commit() |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
@ -190,6 +227,28 @@ func (impl *WorkLineServiceImplement) UpdateOne(user *models.Usertab, entity *mo |
|
|
|
if record == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定记录!") |
|
|
|
} |
|
|
|
if record.WeekModelNr != entity.WeekModelNr { |
|
|
|
weekModelDao := dal.NewWeekModelDAO(session, user.Pid, user.Userid) |
|
|
|
weekModel, err := weekModelDao.SelectOne(entity.WeekModelNr) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if weekModel == nil { |
|
|
|
return grmi.NewBusinessError("不存在对应的周模型,请检查") |
|
|
|
} |
|
|
|
} |
|
|
|
if record.WorkCalendarNr != entity.WorkCalendarNr && entity.WorkCalendarNr != 0 { |
|
|
|
calendarDao := dal.NewWorkCalendarDAO(session, user.Pid, user.Userid) |
|
|
|
calendar, err := calendarDao.SelectOne(entity.WorkCalendarNr) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if calendar == nil { |
|
|
|
return grmi.NewBusinessError("不存在对应的日历模型,请检查") |
|
|
|
} |
|
|
|
} |
|
|
|
entity.WorkLineid = record.WorkLineid |
|
|
|
entity.Pos = record.Pos |
|
|
|
err = dao.UpdateOne(entity) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|