Преглед изворни кода

fix(消息列表):调整合同审批列表页接口返回数据

Roc пре 3 година
родитељ
комит
f6d75d9ba6

+ 55 - 0
controllers/approval.go

@@ -12,6 +12,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/company_product"
 	"hongze/hongze_mobile_admin/models/tables/company_product_log"
 	"hongze/hongze_mobile_admin/models/tables/company_report_permission"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/services"
 	"hongze/hongze_mobile_admin/services/flow"
 	"hongze/hongze_mobile_admin/utils"
@@ -243,6 +244,60 @@ func (this *ApprovalCommon) Detail() {
 
 	}
 
+	//审批流
+	flowId := 1
+	if item.ProductId == 2 {
+		flowId = 2
+	}
+	flowItem, err := flow.GetApprovalFlow(flowId)
+	if err != nil {
+		this.FailWithMessage("获取失败", "获取数据失败,Err:"+err.Error())
+		return
+	}
+	approveTime, err := time.Parse(utils.FormatDateTime, item.ApproveTime)
+	if err != nil {
+		this.FailWithMessage("获取失败", "审批时间转换失败,Err:"+err.Error())
+		return
+	}
+	approvalTime, err := time.Parse(utils.FormatDateTime, item.ApprovalTime)
+	if err != nil {
+		this.FailWithMessage("获取失败", "发起时间转换失败,Err:"+err.Error())
+		return
+	}
+	//当前审批流程id
+	flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
+	for _, node := range flowItem.NodeList {
+		flowNodeResp := make([]contract_approval_record.ContractApprovalRecord, 0)
+		for _, user := range node.UserList {
+			approvalRecord := contract_approval_record.ContractApprovalRecord{
+				//ContractApprovalRecordId int       `orm:"column(contract_approval_record_id);pk"`
+				//ContractApprovalId       int       `orm:"column(contract_approval_id)";description:"审批单id"`
+				Status:              item.ApproveStatus,
+				ApproveRemark:       item.ApproveRemark,
+				ApproveRoleTypeCode: user.RoleTypeCode,
+				ApproveUserId:       user.AdminId,
+				ApproveUserName:     user.Name,
+				NodeId:              node.NodeId,
+				NodeType:            node.NodeType,
+				//PrevNodeId               int       `description:"上级节点id"`
+				//NextNodeId               int       `description:"下级节点id"`
+				AuditType:   node.AuditType,
+				ApproveTime: approveTime,
+				//ModifyTime               time.Time `description:"发起申请时间"`
+				CreateTime: approvalTime,
+			}
+			flowNodeResp = append(flowNodeResp, approvalRecord)
+
+			if user.AdminId == item.ApproveUserId {
+				resp.CompanyApprovalDetail.CurrNodeId = node.NodeId
+			}
+		}
+
+		flowNodeListResp = append(flowNodeListResp, flowNodeResp)
+	}
+
+	resp.FlowNodeList = flowNodeListResp
+
 	this.OkDetailed(resp, "获取成功")
 }
 

+ 2 - 0
models/response/approval/approval.go

@@ -3,6 +3,7 @@ package approval
 import (
 	"hongze/hongze_mobile_admin/models/tables/company_approval"
 	"hongze/hongze_mobile_admin/models/tables/company_report_permission"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"rdluck_tools/paging"
 )
 
@@ -14,6 +15,7 @@ type CompanyApprovalListResp struct {
 //审批单详情
 type CompanyApprovalDetailResp struct {
 	CompanyApprovalDetail *company_approval.CompanyApprovalList
+	FlowNodeList          [][]contract_approval_record.ContractApprovalRecord
 	CompanyPermissionResp
 }
 

+ 2 - 0
models/tables/company_approval/company_approval.go

@@ -91,6 +91,7 @@ type CompanyApprovalList struct {
 	SellerName          string `description:"销售名称"`
 	CreateTime          string `description:"创建时间"`
 	ApprovalTime        string `description:"提交申请时间"`
+	ApproveUserId       int    `description:"审批人"`
 	ApproveTime         string `description:"审批时间"`
 	Status              string `description:"客户状态"`
 	ApproveContent      string `description:"待审内容"`
@@ -113,6 +114,7 @@ type CompanyApprovalList struct {
 	ApplyRealName       string `description:"申请人姓名"`
 	ApproveRoleTypeCode string `description:"审批人角色类型",json:"-"`
 	OpButton            bool   `description:"是否审批操作权限"`
+	CurrNodeId          int    `description:"当前审批操作节点"`
 }
 
 func GetApprovalList(condition string, pars []interface{}, startSize, pageSize int) (items []*CompanyApprovalList, err error) {

+ 12 - 3
models/tables/contract_approval_record/contract_approval_record.go

@@ -18,9 +18,10 @@ type ContractApprovalRecord struct {
 	NodeType                 string    `description:"节点类型,审批人:check;抄送人:cc(Carbon Copy)"`
 	PrevNodeId               int       `description:"上级节点id"`
 	NextNodeId               int       `description:"下级节点id"`
+	AuditType                int       `description:"多人审批时,1:或签(一名审批人同意即可),2:会签(需所有审批人同意)"`
 	ApproveTime              time.Time `description:"审批时间"`
-	ModifyTime               time.Time `description:"发起申请时间"`
-	CreateTime               time.Time `description:"最近一次审批单修改时间"`
+	ModifyTime               time.Time `description:"最近一次审批单修改时间"`
+	CreateTime               time.Time `description:"发起申请时间"`
 }
 
 //根据合同审批记录id获取合同流程记录信息
@@ -31,6 +32,14 @@ func GetContractApprovalRecordById(contractApprovalRecordId int) (contractApprov
 	return
 }
 
+//根据审批单id获取所有审批流列表信息
+func GetContractApprovalRecordListByContractApprovalId(contractApprovalId int) (contractApprovalRecordList []*ContractApprovalRecord, err error) {
+	o := orm.NewOrm()
+	sql := `select * from contract_approval_record where contract_approval_id=? order by node_id asc`
+	_, err = o.Raw(sql, contractApprovalId).QueryRows(&contractApprovalRecordList)
+	return
+}
+
 //根据审批单id获取当前待审批的合同审批流信息
 func GetCurrContractApprovalRecordByContractId(contractApprovalId int) (contractApprovalRecordInfo *ContractApprovalRecord, err error) {
 	o := orm.NewOrm()
@@ -65,7 +74,7 @@ func GetContractApprovalRecordListByContractIdAndNode(contractApprovalId, nodeId
 }
 
 //根据审批单id和节点id获取当前节点的合同审批流信息列表
-func GetContractApprovalRecordListByContractApprovalId(contractApprovalId int) (contractApprovalRecordList []*ContractApprovalRecord, err error) {
+func GetCcContractApprovalRecordListByContractApprovalId(contractApprovalId int) (contractApprovalRecordList []*ContractApprovalRecord, err error) {
 	o := orm.NewOrm()
 	sql := `select a.* from contract_approval_record a 
   join contract_approval b on a.contract_approval_id=b.contract_approval_id

+ 23 - 0
services/flow/flow.go

@@ -5,6 +5,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/admin"
 	"hongze/hongze_mobile_admin/models/tables/approval_flow"
 	"hongze/hongze_mobile_admin/models/tables/approval_flow_node"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"strings"
 )
 
@@ -75,3 +76,25 @@ func getAdminListByUserType(userType, user string, productId int) (adminList []*
 	err = errors.New("查找审批人信息异常")
 	return
 }
+
+//获取审批单的审批流程
+func GetNewApprovalFlow(contractApprovalId int) (flowNodeListResp [][]*contract_approval_record.ContractApprovalRecord, err error) {
+	list, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalId)
+	nodeMap := make(map[int][]*contract_approval_record.ContractApprovalRecord)
+	nodeIdList := make([]int, 0)
+	for _, contractApprovalRecord := range list {
+		if _, ok := nodeMap[contractApprovalRecord.NodeId]; ok {
+			nodeMap[contractApprovalRecord.NodeId] = append(nodeMap[contractApprovalRecord.NodeId], contractApprovalRecord)
+		} else {
+			tmp := make([]*contract_approval_record.ContractApprovalRecord, 0)
+			tmp = append(tmp, contractApprovalRecord)
+			nodeMap[contractApprovalRecord.NodeId] = tmp
+			nodeIdList = append(nodeIdList, contractApprovalRecord.NodeId)
+		}
+	}
+	for _, nodeId := range nodeIdList {
+		flowNodeListResp = append(flowNodeListResp, nodeMap[nodeId])
+	}
+
+	return
+}