fonchain-fiee/pkg/service/approval/approval_makeApprovalUser.go

86 lines
2.9 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
package approval
import (
"github.com/fonchain_enterprise/fonchain-main/api/approval"
"github.com/fonchain_enterprise/fonchain-main/pkg/service/approval/model"
)
// OA 相关审批 需要 判断 days
func MakeRetApprovalUser(req *approval.CreateRequest, approvalUsers []*approval.ApprovalUser) (retApprovalUsers []*approval.ApprovalUser) {
if approvalUsers == nil && len(approvalUsers) < 1 {
return nil
}
if model.GetOaType(req.Type) != "" {
if req.Type == "outWork" ||
req.Type == "funeralLeave" ||
req.Type == "paternityLeave" ||
req.Type == "maritalLeave" ||
req.Type == "parentalLeave" ||
req.Type == "nursingLeave" ||
req.Type == "matingCheckLeave" ||
req.Type == "annualLeave" ||
req.Type == "businessTrip" ||
req.Type == "sick" ||
req.Type == "leave" ||
req.Type == "maternityLeave" ||
req.Type == "abortLeave" ||
req.Type == "goOut" {
var days float32
if req.ApprovalOA.Leave != nil {
days = req.ApprovalOA.Leave.Days
}
if req.ApprovalOA.BusinessTrip != nil {
days = req.ApprovalOA.BusinessTrip.TotalDays
}
if req.ApprovalOA.GoOut != nil {
days = req.ApprovalOA.GoOut.Hours / 8
}
if req.ApprovalOA.OutWork != nil {
days = req.ApprovalOA.OutWork.Hours / 8
}
//出纳特殊处理
if req.Domain == "8fa1d8936af32f97aae832a3224bc93d" {
if days <= 1 {
// 获取审批人 的 全部直属 和 剔除 指定岗位的 最后2位
// 获取审批人第一级
retApprovalUser := approvalUsers[0]
retApprovalUser.Level = 1
retApprovalUsers = append(retApprovalUsers, retApprovalUser)
retApprovalUsers = append(retApprovalUsers, approvalUsers[1:len(approvalUsers)-2]...)
} else if days > 1 && days <= 3 {
// 获取审批人 的 全部直属 和 剔除 指定岗位的 最后一位
retApprovalUsers = append(retApprovalUsers, approvalUsers[:len(approvalUsers)-1]...)
} else if days > 3 {
// 获取审批人 全部
retApprovalUsers = approvalUsers
}
} else {
if days <= 1 {
// 获取审批人第一级
retApprovalUser := approvalUsers[0]
retApprovalUser.Level = 1
retApprovalUsers = append(retApprovalUsers, retApprovalUser)
} else if days > 1 && days <= 3 {
// 获取审批人 的 全部直属 和 剔除 指定岗位的 最后一位
retApprovalUsers = append(retApprovalUsers, approvalUsers[:len(approvalUsers)-1]...)
} else if days > 3 {
// 获取审批人 全部
retApprovalUsers = approvalUsers
}
}
return retApprovalUsers
}
}
return approvalUsers
}
func DeleteApprovalUser(userId uint64, approvalUsers []*approval.ApprovalUser) (retApprovalUsers []*approval.ApprovalUser) {
retApprovalUsers = make([]*approval.ApprovalUser, 0)
for i := 0; i < len(approvalUsers); i++ {
if approvalUsers[i].ID != userId {
retApprovalUsers = append(retApprovalUsers, approvalUsers[i])
}
}
return
}