Sfoglia il codice sorgente

fix(列表数据):处理中数据展示调整返回

Roc 3 anni fa
parent
commit
bd47626dea

+ 16 - 7
controllers/contract_approval.go

@@ -71,14 +71,15 @@ func (this *ContractApprovalCommon) List() {
 	}
 	//审批状态
 	if status != "" {
-		//childCondition += ` AND status = ? `
-		//childPars = append(childPars, status)
-
 		if status == "已审批" {
 			condition += ` AND c.status in ("已审批","已驳回")  `
 		} else {
 			condition += ` AND c.status = ? `
-			pars = append(pars, status)
+			if status == "处理中" {
+				pars = append(pars, "待审批")
+			} else {
+				pars = append(pars, status)
+			}
 		}
 	} else {
 		//childCondition += ` AND status != "已撤回" `
@@ -126,6 +127,11 @@ func (this *ContractApprovalCommon) List() {
 	var total int
 	var list []*contract_approval.ContractApprovalList
 
+	//join表字段
+	joinCondition := " and a.curr_node_id=d.node_id"
+	if status == "处理中" {
+		joinCondition = " and a.curr_node_id!=d.node_id"
+	}
 	if status != "待审批" && status != "处理中" {
 		tmpTotal, err := contract_approval.GetContractApprovalListCountV2(childCondition, condition, childPars, pars)
 		if err != nil {
@@ -141,13 +147,13 @@ func (this *ContractApprovalCommon) List() {
 		total = tmpTotal
 		list = tmpList
 	} else {
-		tmpTotal, err := contract_approval.GetContractApprovalListCount(childCondition, condition, childPars, pars)
+		tmpTotal, err := contract_approval.GetContractApprovalListCount(childCondition, condition, joinCondition, childPars, pars)
 		if err != nil {
 			this.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
 			return
 		}
 
-		tmpList, err := contract_approval.GetContractApprovalList(childCondition, condition, childPars, pars, startSize, pageSize)
+		tmpList, err := contract_approval.GetContractApprovalList(childCondition, condition, joinCondition, childPars, pars, startSize, pageSize)
 		if err != nil {
 			this.FailWithMessage("获取审批列表失败!", "获取审批列表失败,Err:"+err.Error())
 			return
@@ -214,7 +220,10 @@ func (this *ContractApprovalCommon) List() {
 			//}
 
 			//合同状态(突然说要改成展示合同状态,那就根据业务需求,改成返回:合同状态咯)
-			list[i].Status = item.ContractStatus
+			//list[i].Status = item.ContractStatus
+			if item.Status == "待审批" && status == "处理中" {
+				list[i].Status = "处理中"
+			}
 		}
 	}
 

+ 16 - 4
controllers/seal_approval.go

@@ -87,7 +87,11 @@ func (this *SealApprovalCommon) List() {
 			condition += ` AND c.status in ("已审批","已驳回")  `
 		} else {
 			condition += ` AND c.status = ? `
-			pars = append(pars, status)
+			if status == "处理中" {
+				pars = append(pars, "待审批")
+			} else {
+				pars = append(pars, status)
+			}
 		}
 	} else {
 		//childCondition += ` AND status != "已撤回" `
@@ -135,6 +139,11 @@ func (this *SealApprovalCommon) List() {
 	var total int
 	var list []*contract_approval.SealApprovalList
 
+	//join表字段
+	joinCondition := " and a.curr_node_id=d.node_id"
+	if status == "处理中" {
+		joinCondition = " and a.curr_node_id!=d.node_id"
+	}
 	if status != "待审批" && status != "处理中" {
 		tmpTotal, err := contract_approval.GetSealApprovalListCountV2(childCondition, condition, childPars, pars)
 		if err != nil {
@@ -150,13 +159,13 @@ func (this *SealApprovalCommon) List() {
 		total = tmpTotal
 		list = tmpList
 	} else {
-		tmpTotal, err := contract_approval.GetSealApprovalListCount(childCondition, condition, childPars, pars)
+		tmpTotal, err := contract_approval.GetSealApprovalListCount(childCondition, condition, joinCondition, childPars, pars)
 		if err != nil {
 			this.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
 			return
 		}
 
-		tmpList, err := contract_approval.GetSealApprovalList(childCondition, condition, childPars, pars, startSize, pageSize)
+		tmpList, err := contract_approval.GetSealApprovalList(childCondition, condition, joinCondition, childPars, pars, startSize, pageSize)
 		if err != nil {
 			this.FailWithMessage("获取审批列表失败!", "获取审批列表失败,Err:"+err.Error())
 			return
@@ -224,7 +233,10 @@ func (this *SealApprovalCommon) List() {
 			//}
 
 			//合同状态(突然说要改成展示合同状态,那就根据业务需求,改成返回:合同状态咯)
-			list[i].Status = item.SealStatus
+			//list[i].Status = item.SealStatus
+			if item.Status == "待审批" && status == "处理中" {
+				list[i].Status = "处理中"
+			}
 		}
 	}
 

+ 8 - 0
models/tables/admin/admin.go

@@ -56,6 +56,14 @@ func GetAdminListByRoleCode(roleTypeCode string) (items []*Admin, err error) {
 	return
 }
 
+//根据权限id获取系统用户列表
+func GetAdminListByRoleId(roleId string) (items []*Admin, err error) {
+	sql := `SELECT * FROM admin WHERE role_id=? `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, roleId).QueryRows(&items)
+	return
+}
+
 //根据用户id字符串获取系统用户列表
 func GetAdminListByIds(ids string) (items []*Admin, err error) {
 	sql := `SELECT * FROM admin WHERE admin_id in (` + ids + `)`

+ 8 - 8
models/tables/contract_approval/contract_approval.go

@@ -59,7 +59,7 @@ func GetRejectContractCountByContractId(contractId int) (total int64, err error)
 }
 
 //获取合同审批列表数据数量
-func GetContractApprovalListCount(childCondition, condition string, childPars, pars []interface{}) (count int, err error) {
+func GetContractApprovalListCount(childCondition, condition, joinCondition string, childPars, pars []interface{}) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `
 SELECT
@@ -70,7 +70,7 @@ c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.sel
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
 	JOIN contract c ON a.contract_id = c.contract_id 
-	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id
+	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
 WHERE c.is_delete = 0  AND a.approval_type="contract" `
 	sql += condition
 	sql += ` group by contract_id `
@@ -118,7 +118,7 @@ type ContractApprovalList struct {
 }
 
 //获取合同审批列表数据
-func GetContractApprovalList(childCondition, condition string, childPars, pars []interface{}, startSize, pageSize int) (list []*ContractApprovalList, err error) {
+func GetContractApprovalList(childCondition, condition, joinCondition string, childPars, pars []interface{}, startSize, pageSize int) (list []*ContractApprovalList, err error) {
 	o := orm.NewOrm()
 	sql := `
 SELECT
@@ -129,7 +129,7 @@ c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.sel
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
 	JOIN contract c ON a.contract_id = c.contract_id 
-	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id
+	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
 WHERE c.is_delete = 0  AND a.approval_type="contract" `
 	sql += condition
 	sql += ` group by contract_id order by modify_time desc LIMIT ?,? `
@@ -485,7 +485,7 @@ func GetContractApprovalByIds(contractApprovalIds string) (contractApprovalList
 }
 
 //获取用印审批列表数据数量
-func GetSealApprovalListCount(childCondition, condition string, childPars, pars []interface{}) (count int, err error) {
+func GetSealApprovalListCount(childCondition, condition, joinCondition string, childPars, pars []interface{}) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT a.contract_approval_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status,c.status seal_status,
 c.seal_type,c.company_name,c.user_id,c.user_name,c.file_url,c.code from contract_approval a
@@ -494,7 +494,7 @@ c.seal_type,c.company_name,c.user_id,c.user_name,c.file_url,c.code from contract
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
 	JOIN seal c ON c.seal_id = a.contract_id 
-	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id and a.curr_node_id=d.node_id
+	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
 WHERE c.is_delete = 0  AND a.approval_type="seal" `
 	sql += condition
 	sql += ` group by contract_id `
@@ -534,7 +534,7 @@ type SealApprovalList struct {
 }
 
 //获取合同审批列表数据
-func GetSealApprovalList(childCondition, condition string, childPars, pars []interface{}, startSize, pageSize int) (list []*SealApprovalList, err error) {
+func GetSealApprovalList(childCondition, condition, joinCondition string, childPars, pars []interface{}, startSize, pageSize int) (list []*SealApprovalList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT a.contract_approval_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status,c.status seal_status,c.seal_type,c.company_name,c.user_id,c.user_name,c.file_url,c.approve_time,c.invalid_time,c.code from contract_approval a
 	join 
@@ -542,7 +542,7 @@ func GetSealApprovalList(childCondition, condition string, childPars, pars []int
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
 	JOIN seal c ON c.seal_id = a.contract_id 
-	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id and a.curr_node_id=d.node_id
+	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
 WHERE c.is_delete = 0 AND a.approval_type="seal" `
 	sql += condition
 	sql += ` group by contract_id order by modify_time desc LIMIT ?,? `

+ 5 - 5
services/flow/flow.go

@@ -23,7 +23,7 @@ func GetApprovalFlow(flowId int) (approvalFlow *approval_flow.ApprovalFlowItem,
 		return
 	}
 	for _, approvalFlowNode := range approvalFlowNodeList {
-		userList, tmpErr := getAdminListByUserType(approvalFlowNode.User, approvalFlow.ProductId)
+		userList, tmpErr := getAdminListByUser(approvalFlowNode.User, approvalFlow.ProductId)
 		if tmpErr != nil {
 			err = errors.New("获取审批人失败:Err:" + tmpErr.Error())
 			return
@@ -74,9 +74,9 @@ type NodeUser struct {
 }
 
 //获取审批人信息
-func getAdminListByUserType(userList string, productId int) (adminList []*admin.Admin, err error) {
+func getAdminListByUser(userStrList string, productId int) (adminList []*admin.Admin, err error) {
 	nodeUserList := make([]NodeUser, 0)
-	err = json.Unmarshal([]byte(userList), &nodeUserList)
+	err = json.Unmarshal([]byte(userStrList), &nodeUserList)
 	if err != nil {
 		return
 	}
@@ -102,8 +102,8 @@ func getAdminListByUserType(userList string, productId int) (adminList []*admin.
 			tmpAdminList, err = admin.GetAdminListByRoleCode(roleTypeCode)
 		case "role": //角色类型
 			roleSlice := strings.Split(user, ",")
-			for _, roleTypeCode := range roleSlice {
-				list, tmpErr := admin.GetAdminListByRoleCode(roleTypeCode)
+			for _, roleId := range roleSlice {
+				list, tmpErr := admin.GetAdminListByRoleId(roleId)
 				if tmpErr != nil {
 					err = tmpErr
 					return