|
@@ -10,6 +10,7 @@ import (
|
|
|
"hongze/hz_crm_api/models/contract"
|
|
|
"hongze/hz_crm_api/models/cygx"
|
|
|
"hongze/hz_crm_api/models/system"
|
|
|
+ cygxService "hongze/hz_crm_api/services/cygx"
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
"strconv"
|
|
|
"strings"
|
|
@@ -105,6 +106,7 @@ func getQueryParams(condition string, pars []interface{}, sysUser *system.Admin,
|
|
|
// @Param ContractType query string false "合同类型,枚举值:“,`新签合同`,`续约合同`,`补充协议`"
|
|
|
// @Param FormalType query string false "转正类型,枚举值:“,`标准`,`非标`"
|
|
|
// @Param IsExport query bool false "是否导出excel,默认是false"
|
|
|
+// @Param ResearcherRealName query string false "研究员姓名"
|
|
|
// @Param IsAllocation query int false "派点状态: -1-默认全部; 0-未派点; 1-已派点"
|
|
|
// @Success 200 {object} cygx.CompanyContractListResp
|
|
|
// @router /allocation/company_contract_list [get]
|
|
@@ -131,6 +133,7 @@ func (this *ContractAllocationController) CompanyContractList() {
|
|
|
keyword := this.GetString("Keyword")
|
|
|
startDate := this.GetString("StartDate")
|
|
|
endDate := this.GetString("EndDate")
|
|
|
+ researcherRealName := this.GetString("ResearcherRealName")
|
|
|
isAllocation, _ := this.GetInt("IsAllocation", -1) // CRM 13.9
|
|
|
if startDate == "" {
|
|
|
startDate = "2015-01-01"
|
|
@@ -195,7 +198,35 @@ func (this *ContractAllocationController) CompanyContractList() {
|
|
|
|
|
|
//默认只查询权益 2023-06-01 之后的合同
|
|
|
condition += ` AND c.product_id = ? AND a.start_date > ? `
|
|
|
- pars = append(pars, 2, "2023-06-01")
|
|
|
+ pars = append(pars, 2, "2023-01-01")
|
|
|
+
|
|
|
+ mapMoneyPoint := make(map[int]float64)
|
|
|
+ //研究员姓名查询
|
|
|
+ if researcherRealName != "" {
|
|
|
+ var conditionAllocation string
|
|
|
+ var parsAllocation []interface{}
|
|
|
+
|
|
|
+ conditionAllocation = " AND real_name = ? "
|
|
|
+ parsAllocation = append(parsAllocation, researcherRealName)
|
|
|
+ allocationCompanyContractList, err := cygx.GetCygxAllocationCompanyContractList(conditionAllocation, parsAllocation)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetCygxAllocationCompanyContractListErr:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyContractIds []int
|
|
|
+ for _, v := range allocationCompanyContractList {
|
|
|
+ companyContractIds = append(companyContractIds, v.CompanyContractId)
|
|
|
+ mapMoneyPoint[v.CompanyContractId] = v.Money
|
|
|
+ }
|
|
|
+ lenCon := len(companyContractIds)
|
|
|
+ if lenCon == 0 {
|
|
|
+ condition += ` AND a.company_contract_id = 0 `
|
|
|
+ } else {
|
|
|
+ condition += ` AND a.company_contract_id IN (` + utils.GetOrmInReplace(lenCon) + `)`
|
|
|
+ pars = append(pars, companyContractIds)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
var list []*cygx.CompanyContractResp
|
|
|
|
|
@@ -212,6 +243,7 @@ func (this *ContractAllocationController) CompanyContractList() {
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ mapCompamy := make(map[int]string)
|
|
|
listLen := len(list)
|
|
|
if listLen == 0 {
|
|
|
list = make([]*cygx.CompanyContractResp, 0)
|
|
@@ -226,31 +258,42 @@ func (this *ContractAllocationController) CompanyContractList() {
|
|
|
v.FormalType = "非标"
|
|
|
}
|
|
|
contractCodes = append(contractCodes, v.ContractCode)
|
|
|
- }
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ mapContractCode := make(map[string]int)
|
|
|
+ for _, v := range listContract {
|
|
|
+ mapContractCode[v.ContractCode] = v.ContractId
|
|
|
+ }
|
|
|
|
|
|
- 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
|
|
|
- }
|
|
|
- for _, v := range list {
|
|
|
- v.ContractId = mapContractCode[v.ContractCode]
|
|
|
+ //合并合同所对应的权限
|
|
|
+ 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]
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
@@ -326,7 +369,6 @@ func (this *ContractAllocationController) CompanyContracDetail() {
|
|
|
hasMap[p.ChartPermissionId] = p
|
|
|
}
|
|
|
checkItems := make([]*company.PermissionLookItem, 0)
|
|
|
- // PS:本来想把这个移到循环外面去优化一下...但是发现有指针引用变量被改掉的问题, BUG太多了改不完了先这样吧=_=!
|
|
|
raiPermissions, e := company.GetPermissionLookItemsExt("2", utils.COMPANY_PRODUCT_RAI_NAME)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
@@ -356,17 +398,6 @@ func (this *ContractAllocationController) CompanyContracDetail() {
|
|
|
}
|
|
|
checkItems = append(checkItems, n)
|
|
|
}
|
|
|
- //plist.Items = checkItems
|
|
|
- //plist.ClassifyName = utils.COMPANY_PRODUCT_RAI_NAME
|
|
|
- //contractPermissionList = append(contractPermissionList, plist)
|
|
|
-
|
|
|
- //// CRM8.8-权限主客观合并
|
|
|
- //newPermissionLookList := contractService.HandleEquityContractPermissionList(contractPermissionList)
|
|
|
- //for _, v := range newPermissionLookList {
|
|
|
- // for _, v2 := range v.Items {
|
|
|
- // fmt.Println(v2.PermissionName)
|
|
|
- // }
|
|
|
- //}
|
|
|
|
|
|
resp.Money = contractItem.Money / 10000
|
|
|
//有研选时,对研选套餐类型做文案处理
|
|
@@ -380,6 +411,9 @@ func (this *ContractAllocationController) CompanyContracDetail() {
|
|
|
moneyYx = 5
|
|
|
}
|
|
|
resp.TotalPointsContent = fmt.Sprint(resp.Money, "W,", "其中", moneyYx, "w默认归属买方研选,请对剩余", resp.Money-moneyYx, "w按照100%进行比值分配")
|
|
|
+ if showDetail {
|
|
|
+ resp.TotalPointsContent = fmt.Sprint(resp.Money, "W")
|
|
|
+ }
|
|
|
resp.Money = resp.Money - moneyYx
|
|
|
respItemYx.Proportion = moneyYx
|
|
|
respItemYx.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
|
|
@@ -493,6 +527,13 @@ func (this *ContractAllocationController) CompanyContracUpdate() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ contractItem, err := company.GetCompanyContractById(companyContractId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取合同信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
list := req.List
|
|
|
var items []*cygx.CygxAllocationCompanyContract
|
|
|
var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
|
|
@@ -697,7 +738,7 @@ func (this *ContractAllocationController) CompanyContractStatistics() {
|
|
|
item.GroupProportion += "%"
|
|
|
|
|
|
// 部门占比
|
|
|
- item.DepartmentProportion = fmt.Sprint(mapPermissionMoney[k] / totalMoney * 100)
|
|
|
+ item.DepartmentProportion = fmt.Sprint(mapPermissionMoney[k] / totalMoney * 100 / float64(len(mapPermissionUser[k])))
|
|
|
if item.DepartmentProportion == "" {
|
|
|
item.DepartmentProportion = "0"
|
|
|
}
|