Quellcode durchsuchen

fix(合同、用印操作按钮):调整按钮权限的校验

Roc vor 3 Jahren
Ursprung
Commit
a7a85506aa

+ 5 - 37
controllers/contract.go

@@ -10,7 +10,6 @@ import (
 	contractService "hongze/hongze_mobile_admin/services/contract"
 	"hongze/hongze_mobile_admin/utils"
 	"rdluck_tools/paging"
-	"strings"
 )
 
 //合同模块
@@ -85,44 +84,13 @@ func (this *ContractCommon) Detail() {
 		}
 	}
 	if lastApprovalInfo != nil {
-		flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-		//审批流
-		approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(lastApprovalInfo.ContractApprovalId)
+		//审批操作权限,上传签回文件权限
+		tmpContractOpButton, tmpFlowNodeListResp, err := contractService.GetOpButton(contractInfo, lastApprovalInfo, this.AdminWx)
 		if err != nil {
-			this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
-			return
-		}
-		keySort := make([]int, 0)
-		for _, approvalRecord := range approvalRecordList {
-			//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-			if lastApprovalInfo.CurrNodeId == approvalRecord.NodeId && lastApprovalInfo.Status == "待审批" {
-				if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-					contractOpButton.Approval = true
-				}
-			}
-			if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-				flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-			} else {
-				tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-				tmpFlowNodeList[0] = *approvalRecord
-				flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
-
-				keySort = append(keySort, approvalRecord.NodeId)
-			}
-		}
-		for _, key := range keySort {
-			flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-		}
-
-		uploadStatus := []string{"已审批", "已签回"}
-		if this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), contractInfo.Status) {
-			contractOpButton.UploadFile = true
-		}
-
-		//作废权限
-		if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == contractInfo.SellerId) && contractInfo.Status == "已审批" {
-			contractOpButton.Invalid = true
+			this.FailWithMessage("获取合同详情失败!", "获取合同详情失败,ERR:"+err.Error())
 		}
+		contractOpButton = tmpContractOpButton
+		flowNodeListResp = tmpFlowNodeListResp
 	}
 	resp := contractResp.ContractDetailResp{
 		ContractDetail: contractInfo,

+ 3 - 84
controllers/contract_approval.go

@@ -232,7 +232,7 @@ func (this *ContractApprovalCommon) Detail() {
 	}
 
 	//合同详情
-	contractInfo, err := contract.GetContractById(contractApprovalInfo.ContractId)
+	contractInfo, err := contract.GetContractDetailById(contractApprovalInfo.ContractId)
 	if err != nil {
 		this.FailWithMessage("获取合同详情失败!", "获取合同详情失败,Err:"+err.Error())
 		return
@@ -244,48 +244,8 @@ func (this *ContractApprovalCommon) Detail() {
 	contractDetail.CheckBackFileUrl = contractInfo.CheckBackFileUrl
 
 	//审批操作权限,上传签回文件权限
-	var contractOpButton contractResp.OpButton
-
-	//审批流
-	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalId)
-	if err != nil {
-		this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
-		return
-	}
-	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-	keySort := make([]int, 0)
-	for _, approvalRecord := range approvalRecordList {
-		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
-			if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-				contractOpButton.Approval = true
-			}
-		}
-		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-		} else {
-			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-			tmpFlowNodeList[0] = *approvalRecord
-			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
+	contractOpButton, flowNodeListResp, err := contractService.GetOpButton(contractInfo, contractApprovalInfo, this.AdminWx)
 
-			keySort = append(keySort, approvalRecord.NodeId)
-		}
-	}
-	flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
-	for _, key := range keySort {
-		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-	}
-
-	//是否具有签回合同权限
-	uploadStatus := []string{"已审批", "已签回"}
-	if this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), contractInfo.Status) {
-		contractOpButton.UploadFile = true
-	}
-
-	//作废权限
-	if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == contractInfo.SellerId) && contractInfo.Status == "已审批" {
-		contractOpButton.Invalid = true
-	}
 	resp := contractResp.ContractDetailResp{
 		ContractDetail: contractDetail,
 		FlowNodeList:   flowNodeListResp,
@@ -326,48 +286,7 @@ func (this *ContractApprovalCommon) detailByApprovalRecordId(approvalRecordId in
 	detail.Status = contractInfo.Status
 
 	//审批操作权限,上传签回文件权限
-	var opButton contractResp.OpButton
-
-	//审批流
-	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(approvalRecordInfo.ContractApprovalId)
-	if err != nil {
-		this.FailWithMessage("获取审批失败", "获取审批失败,Err:"+err.Error())
-		return
-	}
-	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-	keySort := make([]int, 0)
-	for _, approvalRecord := range approvalRecordList {
-		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
-			if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-				opButton.Approval = true
-			}
-		}
-		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-		} else {
-			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-			tmpFlowNodeList[0] = *approvalRecord
-			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
-
-			keySort = append(keySort, approvalRecord.NodeId)
-		}
-	}
-	flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
-	for _, key := range keySort {
-		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-	}
-
-	//上传签回文件权限
-	uploadStatus := []string{"已审批", "已签回"}
-	if this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), contractInfo.Status) {
-		opButton.UploadFile = true
-	}
-
-	//作废权限
-	if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == contractInfo.SellerId) && contractInfo.Status == "已审批" {
-		opButton.Invalid = true
-	}
+	opButton, flowNodeListResp, err := contractService.GetOpButton(contractInfo, contractApprovalInfo, this.AdminWx)
 	resp := contractResp.ContractDetailResp{
 		ContractDetail: detail,
 		FlowNodeList:   flowNodeListResp,

+ 5 - 31
controllers/seal.go

@@ -139,39 +139,13 @@ func (this *SealCommon) Detail() {
 		}
 	}
 	if lastApprovalInfo != nil {
-		flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-		//审批流
-		approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(lastApprovalInfo.ContractApprovalId)
+		//获取审批操作和审批流数据
+		tmpSealOpButton, tmpFlowNodeListResp, err := sealService.GetOpButton(sealInfo, lastApprovalInfo, this.AdminWx)
 		if err != nil {
-			this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
-			return
-		}
-		keySort := make([]int, 0)
-		for _, approvalRecord := range approvalRecordList {
-			//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-			if lastApprovalInfo.CurrNodeId == approvalRecord.NodeId && lastApprovalInfo.Status == "待审批" {
-				if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-					opButton.Approval = true
-				}
-			}
-			if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-				flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-			} else {
-				tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-				tmpFlowNodeList[0] = *approvalRecord
-				flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
-
-				keySort = append(keySort, approvalRecord.NodeId)
-			}
-		}
-		for _, key := range keySort {
-			flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-		}
-
-		//作废权限
-		if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == sealInfo.UserId) && sealInfo.Status == "已审批" {
-			opButton.Invalid = true
+			this.FailWithMessage("获取用印详情失败", "获取用印详情失败,Err:"+err.Error())
 		}
+		opButton = tmpSealOpButton
+		flowNodeListResp = tmpFlowNodeListResp
 	}
 	resp := sealResp.SealDetailResp{
 		SealDetail:   sealInfo,

+ 6 - 82
controllers/seal_approval.go

@@ -252,54 +252,10 @@ func (this *SealApprovalCommon) Detail() {
 	//替换快照数据
 	sealDetail.Status = sealInfo.Status
 
-	//审批操作权限,上传签回文件权限
-	var sealOpButton sealResp.OpButton
-
-	//审批流
-	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalId)
+	//获取审批操作和审批流数据
+	sealOpButton, flowNodeListResp, err := sealService.GetOpButton(sealInfo, contractApprovalInfo, this.AdminWx)
 	if err != nil {
-		this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
-		return
-	}
-	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-	keySort := make([]int, 0)
-	for _, approvalRecord := range approvalRecordList {
-		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
-			//审核权限
-			if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-				sealOpButton.Approval = true
-			}
-
-			//合规在审批过程中具有 部分修改权限
-			if this.AdminWx.AdminId == approvalRecord.ApproveUserId && this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && approvalRecord.NodeType == "check" {
-				sealOpButton.CheckEdit = true
-			}
-		}
-		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-		} else {
-			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-			tmpFlowNodeList[0] = *approvalRecord
-			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
-
-			keySort = append(keySort, approvalRecord.NodeId)
-		}
-	}
-	flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
-	for _, key := range keySort {
-		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-	}
-
-	//作废权限
-	if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == sealInfo.UserId) && sealInfo.Status == "已审批" {
-		sealOpButton.Invalid = true
-	}
-
-	//编辑权限
-	editStatus := []string{"已驳回", "待提交", "已撤回"}
-	if this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(editStatus, ","), sealInfo.Status) {
-		sealOpButton.Edit = true
+		this.FailWithMessage("获取用印详情失败", "获取用印详情失败,Err:"+err.Error())
 	}
 
 	resp := sealResp.SealDetailResp{
@@ -341,42 +297,10 @@ func (this *SealApprovalCommon) detailByApprovalRecordId(approvalRecordId int) {
 	//替换快照数据
 	sealDetail.Status = sealInfo.Status
 
-	//审批操作权限,上传签回文件权限
-	var sealOpButton sealResp.OpButton
-
-	//审批流
-	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(approvalRecordInfo.ContractApprovalId)
+	//获取审批操作和审批流数据
+	sealOpButton, flowNodeListResp, err := sealService.GetOpButton(sealInfo, contractApprovalInfo, this.AdminWx)
 	if err != nil {
-		this.FailWithMessage("获取审批失败", "获取审批失败,Err:"+err.Error())
-		return
-	}
-	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
-	keySort := make([]int, 0)
-	for _, approvalRecord := range approvalRecordList {
-		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
-		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
-			if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
-				sealOpButton.Approval = true
-			}
-		}
-		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
-			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
-		} else {
-			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
-			tmpFlowNodeList[0] = *approvalRecord
-			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
-
-			keySort = append(keySort, approvalRecord.NodeId)
-		}
-	}
-	flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
-	for _, key := range keySort {
-		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
-	}
-
-	//作废权限
-	if (this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || this.AdminWx.AdminId == sealInfo.UserId) && sealInfo.Status == "已审批" {
-		sealOpButton.Invalid = true
+		this.FailWithMessage("获取用印详情失败", "获取用印详情失败,Err:"+err.Error())
 	}
 	resp := sealResp.SealDetailResp{
 		SealDetail:   sealDetail,

+ 49 - 0
services/contract/contract.go

@@ -5,10 +5,14 @@ import (
 	"fmt"
 	"hongze/hongze_mobile_admin/models/custom"
 	contractCustom "hongze/hongze_mobile_admin/models/custom/contract"
+	contractResp "hongze/hongze_mobile_admin/models/response/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/models/tables/contract_operation_record"
 	"hongze/hongze_mobile_admin/models/tables/contract_service_detail"
 	"hongze/hongze_mobile_admin/utils"
+	"strings"
 )
 
 //作废合同
@@ -97,3 +101,48 @@ func UploadCheckBackFile(contractId int, fileUrl string, opUser *custom.AdminWx)
 	_ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUser.AdminId, 0, "upload", opUser.RealName, remark)
 	return
 }
+
+//获取审批流和权限
+func GetOpButton(contractInfo *contract.ContractDetail, contractApprovalInfo *contract_approval.ContractApproval, opUser *custom.AdminWx) (contractOpButton contractResp.OpButton, flowNodeListResp [][]contract_approval_record.ContractApprovalRecord, err error) {
+
+	//审批流
+	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalInfo.ContractApprovalId)
+	if err != nil {
+		err = errors.New("获取审批失败,Err:" + err.Error())
+		return
+	}
+	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
+	keySort := make([]int, 0)
+	for _, approvalRecord := range approvalRecordList {
+		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
+		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
+			if opUser.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
+				contractOpButton.Approval = true
+			}
+		}
+		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
+			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
+		} else {
+			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
+			tmpFlowNodeList[0] = *approvalRecord
+			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
+
+			keySort = append(keySort, approvalRecord.NodeId)
+		}
+	}
+	for _, key := range keySort {
+		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
+	}
+
+	//是否具有签回合同权限
+	uploadStatus := []string{"已审批", "已签回"}
+	if opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), contractInfo.Status) {
+		contractOpButton.UploadFile = true
+	}
+
+	//作废权限
+	if (opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || opUser.AdminId == contractInfo.SellerId) && contractInfo.Status == "已审批" {
+		contractOpButton.Invalid = true
+	}
+	return
+}

+ 52 - 0
services/seal/seal.go

@@ -5,6 +5,9 @@ import (
 	"fmt"
 	"github.com/astaxie/beego/logs"
 	"hongze/hongze_mobile_admin/models/custom"
+	sealResp "hongze/hongze_mobile_admin/models/response/seal"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/models/tables/seal"
 	contractService "hongze/hongze_mobile_admin/services/contract"
 	"hongze/hongze_mobile_admin/utils"
@@ -153,3 +156,52 @@ func Invalid(sealId int, opUser *custom.AdminWx, isInvalidContract bool) (err er
 	//_ = contract_operation_record.AddContractOperationRecord(nowContract.ContractId, opUser.AdminId, 0, "invalid", opUser.RealName, remark)
 	return
 }
+
+//获取审批流和权限
+func GetOpButton(sealInfo *seal.Seal, contractApprovalInfo *contract_approval.ContractApproval, opUser *custom.AdminWx) (sealOpButton sealResp.OpButton, flowNodeListResp [][]contract_approval_record.ContractApprovalRecord, err error) {
+	//审批流
+	approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalInfo.ContractApprovalId)
+	if err != nil {
+		err = errors.New("获取审批失败,Err:" + err.Error())
+		return
+	}
+	flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
+	keySort := make([]int, 0)
+	for _, approvalRecord := range approvalRecordList {
+		//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
+		if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
+			if opUser.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
+				sealOpButton.Approval = true
+			}
+
+			//合规在审批过程中具有 部分修改权限
+			if opUser.AdminId == approvalRecord.ApproveUserId && opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && approvalRecord.NodeType == "check" {
+				sealOpButton.CheckEdit = true
+			}
+		}
+		if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
+			flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
+		} else {
+			tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
+			tmpFlowNodeList[0] = *approvalRecord
+			flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
+
+			keySort = append(keySort, approvalRecord.NodeId)
+		}
+	}
+	for _, key := range keySort {
+		flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
+	}
+
+	//作废权限
+	if (opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || opUser.AdminId == sealInfo.UserId) && sealInfo.Status == "已审批" {
+		sealOpButton.Invalid = true
+	}
+
+	//编辑权限
+	editStatus := []string{"已驳回", "待提交", "已撤回"}
+	if opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(editStatus, ","), sealInfo.Status) {
+		sealOpButton.Edit = true
+	}
+	return
+}