|
@@ -123,7 +123,7 @@ func ApplySeal(sysUser *system.Admin, req request.SealApprovalApplyReq) (err err
|
|
|
}()
|
|
|
|
|
|
// 添加用印
|
|
|
- sealInfo, err := addSeal(sysUser.AdminId, req.ContractId, req.FileNum, sysUser.RealName, req.Use, req.CompanyName, req.UseCompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrls, req.AffiliatedCompany)
|
|
|
+ sealInfo, err := addSeal(sysUser.AdminId, req.ContractId, req.FileNum, req.CompanyId, sysUser.RealName, req.Use, req.CompanyName, req.UseCompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrls, req.AffiliatedCompany, req.StartDate, req.EndDate, req.Money)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -140,7 +140,7 @@ func ApplySeal(sysUser *system.Admin, req request.SealApprovalApplyReq) (err err
|
|
|
}
|
|
|
|
|
|
// addSeal 新增用印
|
|
|
-func addSeal(userId, contractId, fileNum int, userName, use, companyName, useCompanyName, creditCode, serviceType, sealType, remark string, fileUrls []string, affiliatedCompany string) (sealInfo *seal.Seal, err error) {
|
|
|
+func addSeal(userId, contractId, fileNum, companyId int, userName, use, companyName, useCompanyName, creditCode, serviceType, sealType, remark string, fileUrls []string, affiliatedCompany, startDate, endDate string, money float64) (sealInfo *seal.Seal, err error) {
|
|
|
if !strings.Contains(strings.Join(seal.EnumUse, ","), use) {
|
|
|
err = errors.New("用印用途异常")
|
|
|
return
|
|
@@ -149,8 +149,27 @@ func addSeal(userId, contractId, fileNum int, userName, use, companyName, useCom
|
|
|
err = errors.New("业务类型异常")
|
|
|
return
|
|
|
}
|
|
|
+ adminAll, err := system.GetAdminList()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //adminMap := make(map[int]*system.AdminView)
|
|
|
+ mapRaiSllerId := make(map[int]bool) // 是否为权益销售
|
|
|
+ for _, v := range adminAll {
|
|
|
+ //adminMap[v.AdminId] = v
|
|
|
+ if v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
|
|
|
+ mapRaiSllerId[v.AdminId] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- sealCode, err := seal.GetSealCode()
|
|
|
+ var sealCode string
|
|
|
+ var productId int
|
|
|
+ if mapRaiSllerId[userId] {
|
|
|
+ sealCode, err = seal.GetSealCodeRai()
|
|
|
+ productId = utils.COMPANY_PRODUCT_RAI_ID
|
|
|
+ } else {
|
|
|
+ sealCode, err = seal.GetSealCode()
|
|
|
+ }
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -160,6 +179,7 @@ func addSeal(userId, contractId, fileNum int, userName, use, companyName, useCom
|
|
|
if len(fileUrls) == 1 {
|
|
|
fileUrl = fileUrls[0]
|
|
|
}
|
|
|
+
|
|
|
sealInfo = &seal.Seal{
|
|
|
Code: sealCode,
|
|
|
UserId: userId,
|
|
@@ -178,7 +198,13 @@ func addSeal(userId, contractId, fileNum int, userName, use, companyName, useCom
|
|
|
ModifyTime: now,
|
|
|
CreateTime: now,
|
|
|
AffiliatedCompany: affiliatedCompany,
|
|
|
+ ProductId: productId,
|
|
|
+ CompanyId: companyId,
|
|
|
+ StartDate: startDate,
|
|
|
+ EndDate: endDate,
|
|
|
+ Money: money,
|
|
|
}
|
|
|
+
|
|
|
err = seal.AddSeal(sealInfo)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -214,7 +240,7 @@ func EditApply(sysUser *system.Admin, req request.SealApprovalEditReq) (err erro
|
|
|
}()
|
|
|
|
|
|
// 编辑用印
|
|
|
- sealInfo, err := editSeal(req.SealId, sysUser.AdminId, req.ContractId, req.FileNum, req.Use, req.CompanyName, req.UseCompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrls, req.AffiliatedCompany)
|
|
|
+ sealInfo, err := editSeal(req.SealId, sysUser.AdminId, req.ContractId, req.FileNum, req.Use, req.CompanyName, req.UseCompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrls, req.AffiliatedCompany, req.StartDate, req.EndDate, req.Money)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -231,7 +257,7 @@ func EditApply(sysUser *system.Admin, req request.SealApprovalEditReq) (err erro
|
|
|
}
|
|
|
|
|
|
// editSeal 编辑用印申请
|
|
|
-func editSeal(sealId, userId, contractId, fileNum int, use, companyName, userCompanyName, creditCode, serviceType, sealType, remark string, fileUrls []string, affiliatedCompany string) (sealInfo *seal.Seal, err error) {
|
|
|
+func editSeal(sealId, userId, contractId, fileNum int, use, companyName, userCompanyName, creditCode, serviceType, sealType, remark string, fileUrls []string, affiliatedCompany, startDate, endDate string, money float64) (sealInfo *seal.Seal, err error) {
|
|
|
if !strings.Contains(strings.Join(seal.EnumUse, ","), use) {
|
|
|
err = errors.New("用印用途异常")
|
|
|
return
|
|
@@ -278,7 +304,10 @@ func editSeal(sealId, userId, contractId, fileNum int, use, companyName, userCom
|
|
|
sealInfo.CreateTime = now // 更新提交时间
|
|
|
sealInfo.Status = "待提交"
|
|
|
sealInfo.AffiliatedCompany = affiliatedCompany
|
|
|
- err = sealInfo.Update([]string{"Use", "CompanyName", "UseCompanyName", "CreditCode", "ServiceType", "SealType", "Remark", "FileUrl", "FileNum", "ContractId", "ModifyTime", "CreateTime", "Status", "AffiliatedCompany"})
|
|
|
+ sealInfo.StartDate = startDate
|
|
|
+ sealInfo.EndDate = endDate
|
|
|
+ sealInfo.Money = money
|
|
|
+ err = sealInfo.Update([]string{"Use", "CompanyName", "UseCompanyName", "CreditCode", "ServiceType", "SealType", "Remark", "FileUrl", "FileNum", "ContractId", "ModifyTime", "CreateTime", "Status", "AffiliatedCompany", "StartDate", "EndDate", "Money"})
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -485,7 +514,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)
|
|
@@ -588,6 +616,15 @@ func GetSealApprovalPageList(condition, joinCondition string, pars []interface{}
|
|
|
}
|
|
|
|
|
|
// 合同编码
|
|
|
+
|
|
|
+ //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
|
|
|
}
|
|
@@ -617,6 +654,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) {
|
|
|
// 待审批状态下,如果是自己发起的审批单,同时已经经过了一轮审批,那么标记为处理中
|