|
|
|
@ -9,6 +9,7 @@ import (
|
|
|
|
|
"github.com/fonchain_enterprise/fonchain-approval/pkg/common/page"
|
|
|
|
|
msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
"gorm.io/gorm/clause"
|
|
|
|
|
"gorm.io/plugin/soft_delete"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
@ -69,6 +70,7 @@ const (
|
|
|
|
|
TypeShow = "show"
|
|
|
|
|
TypeBundle = "bundle"
|
|
|
|
|
TypeBundlePayPrice = "bundlePayPrice"
|
|
|
|
|
TypeArtExhibitionReward = "artExhibitionReward"
|
|
|
|
|
)
|
|
|
|
|
const (
|
|
|
|
|
StatusDoing = 1
|
|
|
|
@ -172,7 +174,7 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
|
|
|
|
|
fmt.Println("1-----", terr, setting)
|
|
|
|
|
|
|
|
|
|
if terr != nil || setting == nil {
|
|
|
|
|
return errors.New("抄送人没有配置")
|
|
|
|
|
return errors.New("审批人员没有配置")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
approvalUsers := setting.GetCombineApproveUsers(FormatApproveUsers(in.ApprovalUsers))
|
|
|
|
@ -213,7 +215,11 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fmt.Println(5)
|
|
|
|
|
return BatchSave(approvalUsers, entity.ID)
|
|
|
|
|
err = BatchSave(approvalUsers, entity.ID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
return BatchCopySave(setting.CopyUsers, entity.ID)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
//fmt.Println("nil", entity)
|
|
|
|
@ -254,8 +260,14 @@ func Viewed(in *approval.ViewedRequest) error {
|
|
|
|
|
if isView == false {
|
|
|
|
|
return errors.New(msg.ErrorSettingView)
|
|
|
|
|
}
|
|
|
|
|
err = DB.Model(&Approval{}).Where(&Approval{ID: in.ID}).Updates(&Approval{CopyUsers: copyUsers}).Error
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return DB.Model(&Approval{}).Where(&Approval{ID: in.ID}).Updates(&Approval{CopyUsers: copyUsers}).Error
|
|
|
|
|
DB.Model(&ApprovalCopy{}).Where(&ApprovalCopy{ApprovalID: in.ID, UserId: in.UserID}).Updates(&ApprovalCopy{Status: StatusOk})
|
|
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -328,7 +340,7 @@ func approvalCalc(filter *Approval) *approval.Information {
|
|
|
|
|
func approvalCalcJsonV2(domain string, userId uint64) *approval.Information {
|
|
|
|
|
|
|
|
|
|
var num int64
|
|
|
|
|
var jsonStr = "json_contains(approval_users,json_object('id', ?))"
|
|
|
|
|
var jsonStr = "json_contains(approval_users,json_object('ID', ?))"
|
|
|
|
|
|
|
|
|
|
info := &approval.Information{
|
|
|
|
|
Total: 0,
|
|
|
|
@ -456,6 +468,101 @@ func (m *Approval) UpdateContent(in *approval.CreateRequest) error {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//MyAllWorkApprovals 待阅读的和待我操作的
|
|
|
|
|
func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
var list []*Approval
|
|
|
|
|
var ids []string
|
|
|
|
|
var count int64
|
|
|
|
|
|
|
|
|
|
//list
|
|
|
|
|
modelObj := DB.Model(&Approval{}).
|
|
|
|
|
Preload("Show").
|
|
|
|
|
Preload("Work.ApprovalWorks").
|
|
|
|
|
Preload("Bundle").
|
|
|
|
|
Preload("ApprovalType").
|
|
|
|
|
Preload("BundlePayPrice").
|
|
|
|
|
Preload("ApprovalType.ApprovalTypeGroup").
|
|
|
|
|
Preload("ApprovalWorkFlows").
|
|
|
|
|
Preload("Exhibition.ApprovalExhibitions")
|
|
|
|
|
|
|
|
|
|
//我未阅读的和我未操作的
|
|
|
|
|
DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids)
|
|
|
|
|
s1 := DB.Model(&ApprovalCopy{}).Where(&ApprovalCopy{UserId: in.UserID}).Select("approval_id")
|
|
|
|
|
|
|
|
|
|
modelObj = modelObj.Where(&Approval{Type: in.Type}).Where(
|
|
|
|
|
DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的
|
|
|
|
|
Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的
|
|
|
|
|
modelObj.Count(&count)
|
|
|
|
|
|
|
|
|
|
if len(ids) > 0 { //根据具体id排序
|
|
|
|
|
modelObj = modelObj.Clauses(clause.OrderBy{
|
|
|
|
|
Expression: clause.Expr{SQL: "FIELD(id,?) desc", Vars: []interface{}{ids}, WithoutParentheses: true},
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
modelObj = modelObj.Order("id desc")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
modelObj.Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
|
|
|
|
|
|
|
|
|
|
return list, count
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
var list []*Approval
|
|
|
|
|
var count int64
|
|
|
|
|
|
|
|
|
|
//list
|
|
|
|
|
modelObj := DB.Model(&Approval{}).
|
|
|
|
|
Preload("Show").
|
|
|
|
|
Preload("Work.ApprovalWorks").
|
|
|
|
|
Preload("Bundle").
|
|
|
|
|
Preload("ApprovalType").
|
|
|
|
|
Preload("BundlePayPrice").
|
|
|
|
|
Preload("ApprovalType.ApprovalTypeGroup").
|
|
|
|
|
Preload("ApprovalWorkFlows").
|
|
|
|
|
Preload("Exhibition.ApprovalExhibitions")
|
|
|
|
|
|
|
|
|
|
if in.Type != "" {
|
|
|
|
|
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 审批展示(抄送在此不表)
|
|
|
|
|
/ \
|
|
|
|
|
进行中 通过或者拒绝
|
|
|
|
|
/ \
|
|
|
|
|
当前是我审批 我参与审批的
|
|
|
|
|
*/
|
|
|
|
|
if in.UserID != 0 {
|
|
|
|
|
modelObj = modelObj.Where(
|
|
|
|
|
DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID).
|
|
|
|
|
Where("status != ?", StatusDoing). //完成,我参与审批
|
|
|
|
|
Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我,
|
|
|
|
|
Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if in.ApprovedBossId != 0 {
|
|
|
|
|
|
|
|
|
|
fmt.Println("---------1--------查看我已经审批过的")
|
|
|
|
|
subQuery2 := DB.Model(&ApprovalWorkFlow{}).
|
|
|
|
|
Where("status in (?)", []uint8{StatusOk, StatusFail}).
|
|
|
|
|
Where(&ApprovalWorkFlow{UserId: in.ApprovedBossId}).
|
|
|
|
|
Select("approval_id")
|
|
|
|
|
|
|
|
|
|
modelObj = modelObj.Where("id in (?)", subQuery2)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if in.Status != 0 {
|
|
|
|
|
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
modelObj.Count(&count)
|
|
|
|
|
|
|
|
|
|
modelObj.Order("id desc").Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
|
|
|
|
|
|
|
|
|
|
return list, count
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
var list []*Approval
|
|
|
|
|
var count int64
|
|
|
|
@ -465,6 +572,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
Preload("Show").
|
|
|
|
|
Preload("Work.ApprovalWorks").
|
|
|
|
|
Preload("Bundle").
|
|
|
|
|
Preload("ApprovalType").
|
|
|
|
|
Preload("BundlePayPrice").
|
|
|
|
|
Preload("ApprovalType.ApprovalTypeGroup").
|
|
|
|
|
Preload("ApprovalWorkFlows").
|
|
|
|
|
Preload("Exhibition.ApprovalExhibitions")
|
|
|
|
@ -505,7 +614,7 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
|
|
|
|
|
modelObj.Count(&count)
|
|
|
|
|
|
|
|
|
|
modelObj.Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Order("id desc").Find(&list)
|
|
|
|
|
modelObj.Order("id desc").Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
|
|
|
|
|
|
|
|
|
|
return list, count
|
|
|
|
|
}
|
|
|
|
@ -519,6 +628,7 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|
|
|
|
Preload("Show").
|
|
|
|
|
Preload("Work.ApprovalWorks").
|
|
|
|
|
Preload("Bundle").
|
|
|
|
|
Preload("BundlePayPrice").
|
|
|
|
|
Preload("ApprovalWorkFlows").
|
|
|
|
|
Preload("ApprovalType.ApprovalTypeGroup").
|
|
|
|
|
Preload("Exhibition.ApprovalExhibitions")
|
|
|
|
|