Merge branch 'oa' into dev

main
jhc 1 year ago
commit 4fca4a1f98

@ -198,35 +198,37 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) {
func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error {
if err := oa.copyOAToModel(in, a); err != nil {
approvalOA, err := oa.copyOAToModel(in, a)
if err != nil {
return err
}
return DB.Create(&oa).Error
return DB.Create(&approvalOA).Error
}
func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) error {
copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true})
oa.ApprovalID = a.ID
func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) {
if err := oa.addOtherInfoToModel(in, a); err != nil {
return err
copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true})
approvalOA.ApprovalID = a.ID
if err := oa.addOtherInfoToModel(in, a, approvalOA); err != nil {
return nil, err
}
return nil
return approvalOA, nil
}
func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval) error {
func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval, appprovalOA *ApprovalOA) error {
if v, ok := sonMap[a.ApprovalType.KeyWord]; ok {
switch v {
case "leave":
oa.Leave.ApprovalUsers = a.ApprovalUsers
oa.Leave.CopyUsers = a.CopyUsers
if oa.Leave.ApplyType != "" {
oa.Leave.ApplyType = a.ApprovalType.KeyWord
appprovalOA.Leave.ApprovalUsers = a.ApprovalUsers
appprovalOA.Leave.CopyUsers = a.CopyUsers
if appprovalOA.Leave.ApplyType != "" {
appprovalOA.Leave.ApplyType = a.ApprovalType.KeyWord
}
oa.Leave.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.Leave.Status = int32(a.Status)
appprovalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.Leave.Status = int32(a.Status)
applyTimes := make([]ApplyTime, 0)
for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ {
@ -236,13 +238,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva
M: in.ApprovalOA.Leave.ApplyTimes[i].M,
})
}
oa.Leave.ApplyTimes = applyTimes
appprovalOA.Leave.ApplyTimes = applyTimes
case "makeUp":
oa.MakeUp.ApprovalUsers = a.ApprovalUsers
oa.MakeUp.CopyUsers = a.CopyUsers
oa.MakeUp.ApplyType = a.ApprovalType.KeyWord
oa.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.MakeUp.Status = int32(a.Status)
appprovalOA.MakeUp.ApprovalUsers = a.ApprovalUsers
appprovalOA.MakeUp.CopyUsers = a.CopyUsers
appprovalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord
appprovalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.MakeUp.Status = int32(a.Status)
applyTimes := make([]ApplyTime, 0)
for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ {
@ -252,13 +254,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva
M: in.ApprovalOA.MakeUp.ApplyTimes[i].M,
})
}
oa.MakeUp.ApplyTimes = applyTimes
appprovalOA.MakeUp.ApplyTimes = applyTimes
case "overTime":
oa.OverTime.ApprovalUsers = a.ApprovalUsers
oa.OverTime.CopyUsers = a.CopyUsers
oa.OverTime.ApplyType = a.ApprovalType.KeyWord
oa.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.OverTime.Status = int32(a.Status)
appprovalOA.OverTime.ApprovalUsers = a.ApprovalUsers
appprovalOA.OverTime.CopyUsers = a.CopyUsers
appprovalOA.OverTime.ApplyType = a.ApprovalType.KeyWord
appprovalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.OverTime.Status = int32(a.Status)
applyTimes := make([]ApplyTime, 0)
for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ {
@ -268,13 +270,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva
M: in.ApprovalOA.OverTime.ApplyTimes[i].M,
})
}
oa.OverTime.ApplyTimes = applyTimes
appprovalOA.OverTime.ApplyTimes = applyTimes
case "outWork":
oa.OutWork.ApprovalUsers = a.ApprovalUsers
oa.OutWork.CopyUsers = a.CopyUsers
oa.OutWork.ApplyType = a.ApprovalType.KeyWord
oa.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.OutWork.Status = int32(a.Status)
appprovalOA.OutWork.ApprovalUsers = a.ApprovalUsers
appprovalOA.OutWork.CopyUsers = a.CopyUsers
appprovalOA.OutWork.ApplyType = a.ApprovalType.KeyWord
appprovalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.OutWork.Status = int32(a.Status)
applyTimes := make([]ApplyTime, 0)
for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ {
@ -284,13 +286,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva
M: in.ApprovalOA.OutWork.ApplyTimes[i].M,
})
}
oa.OutWork.ApplyTimes = applyTimes
appprovalOA.OutWork.ApplyTimes = applyTimes
case "turnover":
oa.Turnover.ApprovalUsers = a.ApprovalUsers
oa.Turnover.CopyUsers = a.CopyUsers
oa.Turnover.ApplyType = a.ApprovalType.KeyWord
oa.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.Turnover.Status = int32(a.Status)
appprovalOA.Turnover.ApprovalUsers = a.ApprovalUsers
appprovalOA.Turnover.CopyUsers = a.CopyUsers
appprovalOA.Turnover.ApplyType = a.ApprovalType.KeyWord
appprovalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.Turnover.Status = int32(a.Status)
applyTimes := make([]ApplyTime, 0)
for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ {
@ -300,13 +302,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva
M: in.ApprovalOA.Turnover.ApplyTimes[i].M,
})
}
oa.Turnover.ApplyTimes = applyTimes
appprovalOA.Turnover.ApplyTimes = applyTimes
case "leaveApply":
oa.LeaveApply.ApprovalUsers = a.ApprovalUsers
oa.LeaveApply.CopyUsers = a.CopyUsers
oa.LeaveApply.ApplyType = a.ApprovalType.KeyWord
oa.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10)
oa.LeaveApply.Status = int32(a.Status)
appprovalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers
appprovalOA.LeaveApply.CopyUsers = a.CopyUsers
appprovalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord
appprovalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10)
appprovalOA.LeaveApply.Status = int32(a.Status)
default:
return errors.New("未找到相关审批类型")
}
@ -324,11 +326,12 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro
oa.ID = entity.ID
if err := oa.copyOAToModel(in, a); err != nil {
approvalOA, err := oa.copyOAToModel(in, a)
if err != nil {
return err
}
return DB.Model(&oa).Updates(oa).Error
return DB.Model(&oa).Updates(approvalOA).Error
}
func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) {

Loading…
Cancel
Save