|
@@ -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"
|
|
@@ -449,6 +450,39 @@ func HandleCompanyContractPackageDifference(companyContractId int) (err error) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+// HandleCompanyContractTypeByRaiXClass 所有x类试用转正的合同都记为 :打分派点
|
|
|
+func HandleCompanyContractTypeByRaiXClass(companyContractId int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go alarm_msg.SendAlarmMsg(fmt.Sprint(" 所有x类试用转正的合同都记为 :打分派点失败,HandleCompanyContractTypeByRaiXClass Err:", err.Error(), "companyContractId", companyContractId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND company_contract_id = ? "
|
|
|
+ pars = append(pars, companyContractId)
|
|
|
+ detail, e := company.GetCompanyContracDetail(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyContracDetail,detail Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyProduct, e := company.GetCompanyProductByCompanyIdAndProductId(detail.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyProductByCompanyIdAndProductId Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //权益非永续客户不处理
|
|
|
+ if companyProduct.Status != utils.COMPANY_STATUS_FOREVER {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e = company.UpdateCompanyContractType("打分派点", companyContractId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCompanyContractType, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// HandleCompanyContractPermissionContractType 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
|
|
|
func HandleCompanyContractPermissionContractType(companyContractId int) (err error) {
|
|
|
defer func() {
|
|
@@ -801,3 +835,120 @@ 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)
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("companyContractIds", companyContractIds)
|
|
|
+ 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 / 10000 / 100 // 单位转成万
|
|
|
+ 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 / 10000 / 100 // 单位转成万
|
|
|
+ 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
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//func init15_4_1() {
|
|
|
+// UpdateCygxallocationCompanyContractByEnterScoreInit()
|
|
|
+// //"SELECT * FROM company_contract WHERE company_id IN (SELECT company_id FROM company_product WHERE product_id = 2 AND init_status = '永续' ) AND product_id = 2 ;"
|
|
|
+//}
|
|
|
+
|
|
|
+func UpdateCygxallocationCompanyContractByEnterScoreInit() {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ listEnterScore, err := cygx.GetCygxEnterScoreList(condition, pars, 0, 999)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listEnterScore {
|
|
|
+ fmt.Println("v.EnterScoreId", v.EnterScoreId)
|
|
|
+ listPermission, err := cygx.GetCygxEnterScorePermissionListById(v.EnterScoreId)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ listResearcher, err := cygx.GeCygxEnterScoreResearcherListById(v.EnterScoreId)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sysUser, err := system.GetSysUserById(v.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ go UpdateCygxallocationCompanyContractByEnterScore(listPermission, listResearcher, v.StartDate, v.EndDate, v.CompanyId, sysUser)
|
|
|
+ }
|
|
|
+ fmt.Println("END")
|
|
|
+ return
|
|
|
+}
|