Browse Source

Merge branch 'crm/crm_16.8' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

zhangchuanxing 1 week ago
parent
commit
063b008581
1 changed files with 144 additions and 1 deletions
  1. 144 1
      services/seal/seal.go

+ 144 - 1
services/seal/seal.go

@@ -571,7 +571,6 @@ func reapply(sealInfo *seal.Seal, opUser *system.Admin) (err error) {
 	return
 }
 
-// GetSealApprovalPageList 获取用印审批分页列表
 func GetSealApprovalPageList(condition, joinCondition string, pars []interface{}, startSize, pageSize int, sysUser *system.Admin) (newList []*response.SealApprovalList, total int, err error) {
 	// 1.列表数据
 	list, total, err := seal.GetSealApprovalListByWhere(condition, joinCondition, pars, startSize, pageSize)
@@ -708,6 +707,150 @@ func GetSealApprovalPageList(condition, joinCondition string, pars []interface{}
 	return
 }
 
+// GetSealApprovalPageList 获取用印审批分页列表
+//func GetSealApprovalPageList(condition, joinCondition string, pars []interface{}, startSize, pageSize int, sysUser *system.Admin) (newList []*response.SealApprovalList, total int, err error) {
+//	// 1.列表数据
+//	list, total, err := seal.GetSealApprovalListByWhere(condition, joinCondition, pars, startSize, pageSize)
+//	if err != nil {
+//		err = errors.New(fmt.Sprint("获取用印审批列表失败,Err:"+err.Error(), err))
+//		return
+//	}
+//
+//	// 2.操作权限
+//	if len(list) > 0 {
+//		// 取出所有列表最新的审批IDs
+//		approvalIdSlice := make([]string, 0)
+//		// 取出所有列表的关联合同id
+//		contractIdSlice := make([]string, 0)
+//		for i := 0; i < len(list); i++ {
+//			approvalIdSlice = append(approvalIdSlice, strconv.Itoa(list[i].ContractApprovalId))
+//			contractIdSlice = append(contractIdSlice, strconv.Itoa(list[i].ContractId))
+//		}
+//		approvalIdStr := strings.Join(approvalIdSlice, ",")
+//
+//		// 通过审批IDs获取所有的审批流
+//		approvalRecordList, tempErr := contract.GetContractApprovalRecordListByContractApprovalIds(approvalIdStr)
+//		//approvalRecordList, tempErr := contract.GetContractApprovalRecordList(approvalIdStr, sysUser.AdminId)
+//		if tempErr != nil {
+//			err = errors.New(fmt.Sprint("获取审批流失败,Err:"+tempErr.Error(), err))
+//			return
+//		}
+//
+//		// 获取自己的审批流列表数据
+//		selfContractApprovalRecordList, tempErr := contract.GetSelfContractApprovalRecordList(approvalIdStr, sysUser.AdminId)
+//		if tempErr != nil {
+//			err = errors.New(fmt.Sprint("获取审批列表失败,Err:"+tempErr.Error(), err))
+//			return
+//		}
+//		selfContractApprovalRecordMap := make(map[int]*contract.ContractApprovalRecord)
+//		for i := 0; i < len(selfContractApprovalRecordList); i++ {
+//			selfContractApprovalRecordMap[selfContractApprovalRecordList[i].ContractApprovalId] = selfContractApprovalRecordList[i]
+//		}
+//
+//		// 获取所有关联的合同列表
+//		selfContractMap := make(map[int]*contract.ContractList)
+//		{
+//			if len(contractIdSlice) > 0 {
+//				contractIdStr := strings.Join(contractIdSlice, ",")
+//				contractList, tempErr := contract.GetContractListByContractIds(contractIdStr)
+//				if tempErr != nil {
+//					err = errors.New(fmt.Sprint("获取合同失败,Err:"+tempErr.Error(), err))
+//					return
+//				}
+//				for i := 0; i < len(contractList); i++ {
+//					selfContractMap[contractList[i].ContractId] = contractList[i]
+//				}
+//			}
+//		}
+//
+//		for i := 0; i < len(list); i++ {
+//			item := list[i]
+//			list[i].CreateTimeStr = item.CreateTime.Format(utils.FormatDateTime)
+//			list[i].ModifyTimeStr = item.ModifyTime.Format(utils.FormatDateTime)
+//			list[i].ApproveTimeStr = item.ApproveTime.Format(utils.FormatDateTime)
+//			list[i].InvalidTimeStr = item.InvalidTime.Format(utils.FormatDateTime)
+//			list[i].CheckBackFileTimeStr = item.CheckBackFileTime.Format(utils.FormatDateTime)
+//
+//			if item.ApproveStatus == "已审批" || item.ApproveStatus == "已驳回" {
+//				list[i].ApproveTime = item.ModifyTime
+//				list[i].ApproveTimeStr = item.ModifyTime.Format(utils.FormatDateTime)
+//			}
+//
+//			// 如果当前状态是待审批的话,那么校验自己的审批流数据,然后去返回对应的状态
+//			if item.Status == "待审批" {
+//				// 如果是自己发起的审批单,同时已经经过了一轮审批,那么标记为处理中
+//				if item.ApplyUserId == sysUser.AdminId && item.CurrNodeId > item.StartNodeId {
+//					list[i].Status = "处理中"
+//				} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN && item.CurrNodeId > item.StartNodeId {
+//					// 如果是超管角色,同时已经经过了一轮审批,那么标记为处理中
+//					list[i].Status = "处理中"
+//				} else {
+//					// 此处可能出现同一审批人同时有权限处理一级二级的情况
+//					maxNodeId := 0
+//					tempStatus := "待审批"
+//					for _, selfRecord := range selfContractApprovalRecordList {
+//						if item.ContractApprovalId == selfRecord.ContractApprovalId {
+//							if selfRecord.NodeId > maxNodeId {
+//								maxNodeId = selfRecord.NodeId
+//							}
+//							if maxNodeId < item.CurrNodeId && selfRecord.NodeType != "cc" {
+//								tempStatus = "处理中"
+//							} else if maxNodeId == item.CurrNodeId && selfRecord.NodeType != "cc" {
+//								tempStatus = "待审批"
+//							}
+//						}
+//					}
+//					list[i].Status = tempStatus
+//					/*if contractApprovalRecord, has := selfContractApprovalRecordMap[item.ContractApprovalId]; has {
+//						if contractApprovalRecord.NodeId < item.CurrNodeId && contractApprovalRecord.NodeType != "cc" {
+//							list[i].Status = "处理中"
+//						}
+//					}*/
+//				}
+//			}
+//			// 合同编码
+//
+//			//if selfContract, has := selfContractMap[item.ContractId]; has {
+//			//	list[i].ContractCode = selfContract.ContractCode
+//			//} else {
+//			//	if item.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+//			//		list[i].ContractCode = item.Code
+//			//	}
+//			//}
+//
+//			if selfContract, has := selfContractMap[item.ContractId]; has {
+//				list[i].ContractCode = selfContract.ContractCode
+//			} else {
+//				if item.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+//					list[i].ContractCode = item.Code
+//				}
+//			}
+//
+//			// 取出item对应approval_id的审批流
+//			var tempApprovalRecordMap []*contract.ContractApprovalRecord
+//			for _, recordItem := range approvalRecordList {
+//				if item.ContractApprovalId == recordItem.ContractApprovalId {
+//					tempApprovalRecordMap = append(tempApprovalRecordMap, recordItem)
+//				}
+//			}
+//			// 获取对该条数据的操作权限
+//			opButton, tempErr := handleListOpButton(item, tempApprovalRecordMap, sysUser)
+//			if tempErr != nil {
+//				err = errors.New(fmt.Sprint("获取操作权限失败,Err:"+tempErr.Error(), err))
+//				return
+//			}
+//
+//			tempNewList := &response.SealApprovalList{
+//				SealApprovalItem: item,
+//				OpButton:         opButton,
+//			}
+//			newList = append(newList, tempNewList)
+//		}
+//	}
+//
+//	return
+//}
+
 // handleOpButton 列表数据操作权限
 func handleListOpButton(approvalItem *seal.SealApprovalItem, recordList []*contract.ContractApprovalRecord, sysUser *system.Admin) (opButton response.SealApprovalOpButton, err error) {
 	// 待审批状态下,如果是自己发起的审批单,同时已经经过了一轮审批,那么标记为处理中