|
@@ -6,6 +6,7 @@ import (
|
|
|
"hongze/hz_crm_api/models"
|
|
|
"hongze/hz_crm_api/models/company"
|
|
|
"hongze/hz_crm_api/models/cygx"
|
|
|
+ "hongze/hz_crm_api/models/system"
|
|
|
"hongze/hz_crm_api/services/alarm_msg"
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
"strconv"
|
|
@@ -834,3 +835,82 @@ func UpdateInitAvg(companyContractId int) {
|
|
|
//err = cygx.AddAndUpdateCygxAllocationCompanyContractInit(items, itemsPermission, companyContractId)
|
|
|
//fmt.Println(err)
|
|
|
}
|
|
|
+
|
|
|
+// 权益的合同录分之后自动派点
|
|
|
+func UpdateCygxallocationCompanyContractByEnterScore(itemsPermissionEnterScore []*cygx.CygxEnterScorePermission, itemsResearcher []*cygx.CygxEnterScoreResearcher, startDate, endDate string, companyId int, sysUser *system.Admin) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go alarm_msg.SendAlarmMsg("权益的合同录分之后自动派点失败 UpdateCygxallocationCompanyContractByEnterScore ErrMsg:"+err.Error(), 2)
|
|
|
+
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND status = 1 AND product_id = 2 AND company_id = ? AND start_date <= ? AND end_date <= ? "
|
|
|
+ pars = append(pars, companyId, startDate, endDate)
|
|
|
+ companyContractList, e := company.GetCompanyContractList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCompanyContractList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(companyContractList) == 0 {
|
|
|
+ err = nil
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyContractIds []int
|
|
|
+ //var companyContractIdMoney []float64 // 合同对应的金额
|
|
|
+ for _, v := range companyContractList {
|
|
|
+ companyContractIds = append(companyContractIds, v.CompanyContractId)
|
|
|
+ }
|
|
|
+
|
|
|
+ var items []*cygx.CygxAllocationCompanyContract
|
|
|
+ var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
|
|
|
+
|
|
|
+ var totalProportionPermission float64 //计算总占比
|
|
|
+ for _, v := range itemsPermissionEnterScore {
|
|
|
+ totalProportionPermission += v.Proportion
|
|
|
+ }
|
|
|
+
|
|
|
+ //var totalResearcher float64 //计算研究员的总占比
|
|
|
+ //for _, v := range itemsResearcher {
|
|
|
+ // totalResearcher += v.Proportion
|
|
|
+ //}
|
|
|
+
|
|
|
+ for _, vContract := range companyContractList {
|
|
|
+ for _, v := range itemsPermissionEnterScore {
|
|
|
+ itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
|
|
|
+ itemPermission.CompanyContractId = vContract.CompanyContractId
|
|
|
+ itemPermission.AdminId = sysUser.AdminId
|
|
|
+ itemPermission.AdminName = sysUser.RealName
|
|
|
+ itemPermission.Proportion = v.Proportion / totalProportionPermission * 100 // 占比转换
|
|
|
+ itemPermission.Money = v.Proportion * vContract.Money
|
|
|
+ itemPermission.MoneyAvg = vContract.Money / 6 // 目前6个行业
|
|
|
+ itemPermission.ChartPermissionName = v.ChartPermissionName
|
|
|
+ itemPermission.CreateTime = time.Now()
|
|
|
+ itemPermission.ModifyTime = time.Now()
|
|
|
+ itemsPermission = append(itemsPermission, itemPermission)
|
|
|
+ }
|
|
|
+ for _, v := range itemsResearcher {
|
|
|
+ item := new(cygx.CygxAllocationCompanyContract)
|
|
|
+ item.CompanyContractId = vContract.CompanyContractId
|
|
|
+ item.AdminId = sysUser.AdminId
|
|
|
+ item.AdminName = sysUser.RealName
|
|
|
+ item.Proportion = v.Proportion / totalProportionPermission * 100 // 占比转换
|
|
|
+ item.Money = v.Proportion * vContract.Money
|
|
|
+ item.RealName = v.RealName
|
|
|
+ item.ChartPermissionName = v.ChartPermissionName
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ e = cygx.AddAndUpdateCygxAllocationCompanyContractRai(items, itemsPermission, companyContractIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddAndUpdateCygxAllocationCompanyContractRai, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+
|
|
|
+}
|