|
@@ -215,9 +215,17 @@ func (this *SealApprovalCommon) List() {
|
|
|
// @Title 审批单详情
|
|
|
// @Description 审批单详情接口
|
|
|
// @Param ContractApprovalId query int false "审批单id"
|
|
|
-// @Success 200 {object} contract.ContractDetailResp
|
|
|
+// @Param ContractApprovalRecordId query int false "审批流程单id"
|
|
|
+// @Success 200 {object} seal.SealDetailResp
|
|
|
// @router /detail [get]
|
|
|
func (this *SealApprovalCommon) Detail() {
|
|
|
+ //审批流程单id
|
|
|
+ contractApprovalRecordId, _ := this.GetInt("ContractApprovalRecordId")
|
|
|
+ if contractApprovalRecordId > 0 {
|
|
|
+ this.detailByApprovalRecordId(contractApprovalRecordId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
//审批单id
|
|
|
contractApprovalId, _ := this.GetInt("ContractApprovalId")
|
|
|
|
|
@@ -259,7 +267,7 @@ func (this *SealApprovalCommon) Detail() {
|
|
|
//如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
|
|
|
if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
|
|
|
if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
|
|
|
- sealOpButton.ApprovalButton = true
|
|
|
+ sealOpButton.Approval = true
|
|
|
}
|
|
|
}
|
|
|
if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
|
|
@@ -289,6 +297,84 @@ func (this *SealApprovalCommon) Detail() {
|
|
|
this.OkDetailed(resp, "获取成功")
|
|
|
}
|
|
|
|
|
|
+func (this *SealApprovalCommon) detailByApprovalRecordId(approvalRecordId int) {
|
|
|
+ approvalRecordInfo, err := contract_approval_record.GetContractApprovalRecordById(approvalRecordId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取审批流程单失败", "获取审批流程单失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //审批单详情
|
|
|
+ contractApprovalInfo, err := contract_approval.GetContractApprovalById(approvalRecordInfo.ContractApprovalId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取审批单失败", "获取审批单失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var sealDetail *seal.Seal
|
|
|
+ jsonErr := json.Unmarshal([]byte(contractApprovalInfo.ContractDetail), sealDetail)
|
|
|
+ if jsonErr != nil {
|
|
|
+ this.FailWithMessage("获取审批单失败", "审批合同数据转换失败,Err:"+jsonErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //用印详情
|
|
|
+ sealInfo, err := seal.GetSealInfoById(contractApprovalInfo.ContractId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取用印详情失败", "获取用印详情失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //替换快照数据
|
|
|
+ sealDetail.Status = sealInfo.Status
|
|
|
+
|
|
|
+ //审批操作权限,上传签回文件权限
|
|
|
+ var sealOpButton sealResp.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" {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ resp := sealResp.SealDetailResp{
|
|
|
+ SealDetail: sealDetail,
|
|
|
+ FlowNodeList: flowNodeListResp,
|
|
|
+ OpButton: sealOpButton,
|
|
|
+ }
|
|
|
+
|
|
|
+ this.OkDetailed(resp, "获取成功")
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// @Title 驳回审批
|
|
|
// @Description 驳回审批接口
|
|
|
// @Param request body contract.RejectReq true "type json string"
|