瀏覽代碼

no message

xingzai 1 年之前
父節點
當前提交
cccdfbacf6
共有 3 個文件被更改,包括 218 次插入36 次删除
  1. 86 34
      controllers/cygx/contract_allocation.go
  2. 3 2
      services/company_apply/company_approval.go
  3. 129 0
      services/cygx/contract_allocation.go

+ 86 - 34
controllers/cygx/contract_allocation.go

@@ -167,9 +167,20 @@ func (this *ContractAllocationController) CompanyContractList() {
 		condition += ` AND c.seller_id in  (` + adminId + `) `
 		//pars = append(pars, adminId)
 	} else {
-
-		//根据当前角色来获取查询条件
-		condition, pars = getQueryParams(condition, pars, sysUser, "c.")
+		//权益申请销售只能看到自己名下的客户的申请
+		companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(sysUser)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
+			return
+		}
+		lencompanyIds := len(companyIds)
+		if lencompanyIds > 0 {
+			condition += ` AND c.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
+			pars = append(pars, companyIds)
+		}
+		////根据当前角色来获取查询条件
+		//condition, pars = getQueryParams(condition, pars, sysUser, "c.")
 
 	}
 
@@ -201,7 +212,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 
 	//默认只查询权益 2023-06-01 之后的合同
 	condition += ` AND c.product_id = ?  AND a.start_date > ? `
-	pars = append(pars, 2, "2023-01-01")
+	pars = append(pars, 2, "2023-06-01")
 
 	mapMoneyPoint := make(map[int]float64)
 	//研究员姓名查询
@@ -253,6 +264,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 	} else {
 
 		var contractCodes []string
+		var companyContractIds []int
 		for _, v := range list {
 			switch v.Source {
 			case "系统合同":
@@ -261,41 +273,49 @@ func (this *ContractAllocationController) CompanyContractList() {
 				v.FormalType = "非标"
 			}
 			contractCodes = append(contractCodes, v.ContractCode)
+			companyContractIds = append(companyContractIds, v.CompanyContractId)
 			mapCompamy[v.CompanyId] = strconv.Itoa(v.CompanyContractId)
+		}
+		lencontractCodes := len(contractCodes)
+		if lencontractCodes > 0 {
+			//获取标准合同的ID,这里上面的查询已经关联了三张表,拆分吧。。。
+			condition = ""
+			joinStr := ""
+			pars = make([]interface{}, 0)
+			condition = " AND  a.contract_code  IN (" + utils.GetOrmInReplace(lencontractCodes) + ") "
+			pars = append(pars, contractCodes)
+			listContract, err := contract.GetContractList(condition, joinStr, pars, 0, lencontractCodes)
+			if err != nil {
+				br.Msg = "获取合同列表失败!"
+				br.ErrMsg = "获取合同列表失败,Err:" + err.Error()
+				return
+			}
 
-			lencontractCodes := len(contractCodes)
-			if lencontractCodes > 0 {
-				//获取标准合同的ID,这里上面的查询已经关联了三张表,拆分吧。。。
-				condition = ""
-				joinStr := ""
-				pars = make([]interface{}, 0)
-				condition = " AND  a.contract_code  IN (" + utils.GetOrmInReplace(lencontractCodes) + ") "
-				pars = append(pars, contractCodes)
-				listContract, err := contract.GetContractList(condition, joinStr, pars, 0, lencontractCodes)
-				if err != nil {
-					br.Msg = "获取合同列表失败!"
-					br.ErrMsg = "获取合同列表失败,Err:" + err.Error()
-					return
-				}
+			mapContractCode := make(map[string]int)
+			for _, v := range listContract {
+				mapContractCode[v.ContractCode] = v.ContractId
+			}
 
-				mapContractCode := make(map[string]int)
-				for _, v := range listContract {
-					mapContractCode[v.ContractCode] = v.ContractId
-				}
+			mapIsGray, err := cygxService.GetMapIsGrayByCompanyContractIds(companyContractIds)
+			if err != nil {
+				br.Msg = "获取合同列表失败!"
+				br.ErrMsg = "获取合同列表失败,GetMapIsGrayByCompanyContractIds Err:" + err.Error()
+				return
+			}
 
-				//合并合同所对应的权限
-				mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(mapCompamy)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取失败,Err:" + err.Error()
-					return
-				}
+			//合并合同所对应的权限
+			mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(mapCompamy)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取失败,Err:" + err.Error()
+				return
+			}
 
-				for _, v := range list {
-					v.ContractId = mapContractCode[v.ContractCode]
-					v.MoneyPoint = mapMoneyPoint[v.CompanyContractId]
-					v.PermissionName = mappermissionName[v.CompanyId]
-				}
+			for _, v := range list {
+				v.ContractId = mapContractCode[v.ContractCode]
+				v.MoneyPoint = mapMoneyPoint[v.CompanyContractId]
+				v.PermissionName = mappermissionName[v.CompanyId]
+				v.IsGray = mapIsGray[v.CompanyContractId]
 			}
 		}
 	}
@@ -621,6 +641,14 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 			respList = append(respList, respItem)
 		}
 	}
+	//处理是否置灰
+	mapIsGray, err := cygxService.GetMapIsGrayByCompanyContractIds([]int{companyContractId})
+	if err != nil {
+		br.Msg = "获取合同列表失败!"
+		br.ErrMsg = "获取合同列表失败,GetMapIsGrayByCompanyContractIds Err:" + err.Error()
+		return
+	}
+	resp.IsGray = mapIsGray[companyContractId]
 	resp.List = respList
 	resp.CompanyContractId = companyContractId
 	br.Ret = 200
@@ -660,6 +688,17 @@ func (this *ContractAllocationController) CompanyContracUpdate() {
 		br.ErrMsg = "参数错误,id不可为空"
 		return
 	}
+	mapIsGray, err := cygxService.GetMapIsGrayByCompanyContractIds([]int{companyContractId})
+	if err != nil {
+		br.Msg = "获取合同列表失败!"
+		br.ErrMsg = "获取合同列表失败,GetMapIsGrayByCompanyContractIds Err:" + err.Error()
+		return
+	}
+	if mapIsGray[companyContractId] {
+		br.Msg = "超过90天,无法修改!"
+		br.ErrMsg = "超过90天,无法修改,companyContractId :" + strconv.Itoa(companyContractId)
+		return
+	}
 
 	contractItem, err := company.GetCompanyContractById(companyContractId)
 	if err != nil {
@@ -807,11 +846,24 @@ func (this *ContractAllocationController) CompanyContractStatistics() {
 	isExport, _ := this.GetBool("IsExport")
 
 	var condition string
+
 	var pars []interface{}
 
 	//根据当前角色来获取查询条件
 	condition, pars = getQueryParams(condition, pars, sysUser, "c.")
 
+	companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(sysUser)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
+		return
+	}
+	lencompanyIds := len(companyIds)
+	if lencompanyIds > 0 {
+		condition += ` AND c.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
+		pars = append(pars, companyIds)
+	}
+
 	//关键字搜索
 	if keyword != "" {
 		condition += ` and b.company_name like "%` + keyword + `%" `

+ 3 - 2
services/company_apply/company_approval.go

@@ -391,7 +391,7 @@ func Approved(approvalRecord *contract.ContractApprovalRecord, opUser *system.Ad
 				// 处理权益客户的身份信息()
 				cygxService.UpdateCygxCompanyUserType(recordInfo.CompanyContractId)
 
-				if recordInfo.ApplyMethod == 1{
+				if recordInfo.ApplyMethod == 1 {
 					//获取合同信息
 					contractInfo, tmpErr := company.GetCompanyContractDetail(recordInfo.CompanyId, recordInfo.ProductId, recordInfo.CompanyContractId)
 					if tmpErr != nil {
@@ -420,7 +420,8 @@ func Approved(approvalRecord *contract.ContractApprovalRecord, opUser *system.Ad
 				//客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
 				services.AddCompanyApprovalMessageWangYang(recordInfo.CompanyId, recordInfo.CompanyContractId, recordInfo.ApplyRealName, companyInfo.CompanyName)
 
-				go cygxService.YanXuanCompanyApproval(recordInfo.CompanyId) //研选审批通过的时候研选扣点更新
+				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId)                           //研选审批通过的时候研选扣点更新
+				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId) //如果合同只有研选的时候,自动处理派点
 
 			}
 		}()

+ 129 - 0
services/cygx/contract_allocation.go

@@ -2,11 +2,15 @@ package cygx
 
 import (
 	"errors"
+	"fmt"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
 	"strconv"
 	"strings"
+	"time"
 )
 
 // GetCompanyContractPermissionNameMapById 获取合并之后的合同所对应的权限种类名称
@@ -118,3 +122,128 @@ func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapCont
 	}
 	return
 }
+
+// 判断合同审核通过时间是否超过九十天
+func GetMapIsGrayByCompanyContractIds(companyContractIds []int) (mapResp map[int]bool, err error) {
+	lenArr := len(companyContractIds)
+	if lenArr == 0 {
+		return
+	}
+	var condition string
+	var pars []interface{}
+	pars = make([]interface{}, 0)
+	condition = " AND  company_contract_id IN (" + utils.GetOrmInReplace(lenArr) + ")    GROUP BY company_contract_id ORDER BY create_time DESC  "
+	pars = append(pars, companyContractIds)
+	companyContractPermissionList, e := company.GetCompanyContractPermissionList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
+		return
+	}
+	//超过九十天就置灰
+	timeInit := time.Now().AddDate(0, 0, -90)
+	mapResp = make(map[int]bool, 0)
+	for _, v := range companyContractPermissionList {
+		if v.CreateTime.Before(timeInit) {
+			mapResp[v.CompanyContractId] = true
+		}
+	}
+	return
+}
+
+//func init() {
+//	var condition string
+//	var pars []interface{}
+//	//默认只查询权益 2023-06-01 之后的合同
+//	condition += ` AND c.product_id = ?  AND a.start_date > ? `
+//	pars = append(pars, 2, "2023-06-01")
+//
+//	//列表页数据
+//	list, err := cygx.GetCompanyContractListJoinCompany(condition, pars, 0, 1000)
+//	if err != nil {
+//		fmt.Println(err)
+//		return
+//	}
+//
+//	for _, v := range list {
+//		fmt.Println(v.CompanyContractId)
+//		HandleAllocationCompanyContractByYanXuan(v.CompanyContractId)
+//	}
+//
+//	fmt.Println(len(list))
+//}
+
+// 如果合同只有研选的时候,自动处理派点
+func HandleAllocationCompanyContractByYanXuan(companyContractId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("如果合同只有研选的时候,自动处理派点失败,Err:", err.Error(), "companyContractId", companyContractId), 2)
+		}
+	}()
+	var condition string
+	var pars []interface{}
+	pars = make([]interface{}, 0)
+	condition = " AND  company_contract_id = ?  "
+	pars = append(pars, companyContractId)
+	companyContractPermissionList, e := company.GetCompanyContractPermissionList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
+		return
+	}
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxAllocationCompanyContractPermissionListById, Err: " + e.Error())
+		return
+	}
+
+	if len(companyContractPermissionList) > 1 {
+		return
+	}
+	var expensiveYxmoney float64
+	for _, v := range companyContractPermissionList {
+		if v.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+			err = errors.New("没有发现研选权限: ")
+			return
+		}
+		if v.ExpensiveYx == 1 {
+			expensiveYxmoney = 5
+		} else {
+			expensiveYxmoney = 3
+		}
+	}
+
+	var items []*cygx.CygxAllocationCompanyContract
+	var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
+
+	itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
+	itemPermission.CompanyContractId = companyContractId
+	//itemPermission.AdminId = sysUser.AdminId
+	//itemPermission.AdminName = sysUser.RealName
+	itemPermission.Proportion = 0
+	itemPermission.Money = expensiveYxmoney
+	itemPermission.MoneyAvg = 0
+	itemPermission.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	itemPermission.CreateTime = time.Now()
+	itemPermission.ModifyTime = time.Now()
+	itemsPermission = append(itemsPermission, itemPermission)
+
+	item := new(cygx.CygxAllocationCompanyContract)
+	item.CompanyContractId = companyContractId
+	//item.AdminId = sysUser.AdminId
+	//item.AdminName = sysUser.RealName
+	item.Proportion = 0
+	item.Money = expensiveYxmoney
+	item.RealName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	item.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	items = append(items, item)
+
+	e = cygx.AddAndUpdateCygxAllocationCompanyContract(items, itemsPermission, companyContractId)
+	if e != nil {
+		err = errors.New("AddAndUpdateCygxAllocationCompanyContract, Err: " + e.Error())
+		return
+	}
+
+	return
+
+}