86 lines
2.9 KiB
Go
86 lines
2.9 KiB
Go
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
|
|
}
|