Browse Source

no message

zhangchuanxing 3 tuần trước cách đây
mục cha
commit
00ce375966

+ 6 - 6
controllers/statistic/rai_data_summary.go

@@ -190,7 +190,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
 	//确认不续约、到期合同部分的数据
 	var conditionEnd string
 	var parsEnd []interface{}
-	conditionEnd = " AND  a.product_id = 2  AND  a.status = 1  AND  a.end_date >= ?  AND  a.end_date <= ? AND  a.end_date < ? "
+	conditionEnd = " AND  a.product_id = 2  AND  a.status = 1  AND  a.due_end_date >= ?  AND  a.due_end_date <= ? AND  a.due_end_date < ? "
 	parsEnd = append(parsEnd, startDate, endDate, time.Now().Format(utils.FormatDate))
 	listEndData, err := statistic_report.GetRaiDataSummaryList(conditionEnd, parsEnd)
 	if err != nil {
@@ -402,7 +402,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
 		if !mapsellerDevelop[v.SellerIdLast] {
 			continue
 		}
-		yearStr := getYearStar(utils.StrDateToDate(v.EndDate), dataType, isCustomizeDate)
+		yearStr := getYearStar(utils.StrDateToDate(v.DueEndDate), dataType, isCustomizeDate)
 
 		keyMap = fmt.Sprint(yearStr, "_", v.SellerIdLast)
 		keyMapCompany = fmt.Sprint(yearStr, "_", v.SellerIdLast, "_CID_", v.CompanyId)
@@ -448,7 +448,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
 		if !mapsellerService[v.ShareSellerIdLast] {
 			continue
 		}
-		yearStr := getYearStar(utils.StrDateToDate(v.EndDate), dataType, isCustomizeDate)
+		yearStr := getYearStar(utils.StrDateToDate(v.DueEndDate), dataType, isCustomizeDate)
 
 		keyMap = fmt.Sprint(yearStr, "_Server_", v.ShareSellerIdLast)
 		keyMapCompany = fmt.Sprint(yearStr, "_Server_", v.ShareSellerIdLast, "_CID_", v.CompanyId)
@@ -1086,7 +1086,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryDetail() {
 
 		}
 
-		condition += ` 	AND a.product_id = 2  AND  a.status = 1  AND a.end_date >= ?  AND a.end_date <= ?   AND a.end_date < ? `
+		condition += ` 	AND a.product_id = 2  AND  a.status = 1  AND a.due_end_date >= ?  AND a.due_end_date <= ?   AND a.due_end_date < ? `
 		pars = append(pars, startDate, endDate, time.Now().Format(utils.FormatDate))
 
 		total, err := company.GetIncrementalNewCompanyProductMergeCount(condition, pars)
@@ -1223,7 +1223,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryDetail() {
 		}
 
 		//到期合同数据
-		conditionEnd += ` AND  a.status = 1  AND a.end_date >= ?  AND a.end_date <= ?   AND a.end_date < ? `
+		conditionEnd += ` AND  a.status = 1  AND a.due_end_date >= ?  AND a.due_end_date <= ?   AND a.due_end_date < ? `
 		parsEnd = append(parsEnd, startDate, endDate, time.Now().Format(utils.FormatDate))
 		listEndData, err := statistic_report.GetRaiDataSummaryList(conditionEnd, parsEnd)
 		if err != nil {
@@ -1379,7 +1379,7 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryDetail() {
 			return
 		}
 
-		conditionEnd += `  AND  a.product_id = 2  AND  a.status = 1  AND a.end_date >= ?  AND a.end_date <= ?   AND a.end_date < ? `
+		conditionEnd += `  AND  a.product_id = 2  AND  a.status = 1  AND a.due_end_date >= ?  AND a.due_end_date <= ?   AND a.due_end_date < ? `
 		parsEnd = append(parsEnd, startDate, endDate, time.Now().Format(utils.FormatDate))
 
 		listEndData, err := statistic_report.GetRaiDataSummaryList(conditionEnd, parsEnd)

+ 20 - 2
models/company/company_contract.go

@@ -230,6 +230,8 @@ type CompanyContractResp struct {
 	PackageType       int       `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
 	RaiPackageType    int       `description:"权益套餐类型: 0-无; 1-70w大套餐; 2-45w大套餐"`
 	PermissionName    string    `description:"权限名"`
+	InheritEndDate    string    `description:"所继承上一份合同的结束日期,权益自定义续约合同统计使用"`
+	DueEndDate        string    `description:"所继承上一份合同的结束日期,权益自定义到期合同统计使用"`
 }
 
 // 获取合同列表
@@ -485,10 +487,26 @@ func UpdateCompanyContracthide(companyContractId []string) (err error) {
 	return
 }
 
-// 更新合同类型
+// 更新续约时间
 func UpdateCompanyContractInheritEndDate(inheritEndDate string, inheritCompanyContracId, companyContractId int) (err error) {
 	o := orm.NewOrm()
-	sql := `UPDATE company_contract SET inherit_end_date = ? , inherit_company_contract_id = ?   WHERE company_contract_id=? `
+	sql := `UPDATE company_contract SET inherit_end_date = ? ,inherit_company_contract_id = ?   WHERE company_contract_id=? `
 	_, err = o.Raw(sql, inheritEndDate, inheritCompanyContracId, companyContractId).Exec()
 	return
 }
+
+// 更新到期时间
+func UpdateCompanyContractDueEndDate(dueEndDate string, companyContractId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_contract SET due_end_date = ?    WHERE company_contract_id=? `
+	_, err = o.Raw(sql, dueEndDate, companyContractId).Exec()
+	return
+}
+
+// 更新到期时间
+func UpdateCompanyContractDueEndDateMerge(inheritEndDate, dueEndDate string, inheritCompanyContracId, mergeCompanyContractId, companyContractId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_contract SET  inherit_end_date = ? , due_end_date = ?  ,inherit_company_contract_id = ? , merge_company_contract_id = ?   WHERE company_contract_id=? `
+	_, err = o.Raw(sql, inheritEndDate, dueEndDate, inheritCompanyContracId, mergeCompanyContractId, companyContractId).Exec()
+	return
+}

+ 2 - 0
models/statistic_report/rai_data_summary.go

@@ -91,6 +91,7 @@ type IncrementalList struct {
 	Operation         string `description:"操作"`
 	RaiContractType   string `description:"权益合同类型:枚举值:'新签合同','续约合同','补充协议'"`
 	InheritEndDate    string `description:"所继承上一份合同的结束日期,权益自定义续约合同统计使用"`
+	DueEndDate        string `description:"所继承上一份合同的结束日期,权益自定义到期合同统计使用"`
 }
 
 // GetRaiDataSummaryList 获取增量客户报表列表数据(根据合同来展示)
@@ -98,6 +99,7 @@ func GetRaiDataSummaryList(condition string, pars []interface{}) (items []*Incre
 	o := orm.NewOrm()
 	sql := `SELECT a.start_date,
 			   a.end_date,
+			   a.due_end_date,
 			   a.company_contract_id,
 			   a.money,
 			   a.company_id,

+ 71 - 7
services/company_contract.go

@@ -592,7 +592,8 @@ func UpdateCompanyContracthideBycompanyId(companyId, productId int) {
 func init_CRM_16_7() {
 	var condition string
 	var pars []interface{}
-	condition = "  AND  product_id = 2 AND status != 2  AND rai_contract_type  = '续约合同' AND is_hand = 0  ORDER BY start_date ASC   "
+	condition = "    AND  product_id = 2 AND status != 2  AND rai_contract_type  = '续约合同' AND is_hand = 0  ORDER BY company_contract_id ASC   "
+	condition = "    AND  product_id = 2 AND status != 2    ORDER BY company_contract_id ASC   "
 	companyContractList, e := company.GetCompanyContractList(condition, pars)
 	if e != nil && e.Error() != utils.ErrNoRow() {
 		fmt.Println(e)
@@ -602,6 +603,7 @@ func init_CRM_16_7() {
 		fmt.Println(k)
 		UpdateCompanyContractInheritEndDate(v.CompanyContractId)
 		time.Sleep(100 * time.Millisecond)
+		UpdateCompanyContractDueEndDate(v.CompanyContractId)
 	}
 	fmt.Println("init_CRM_16_7end")
 }
@@ -625,18 +627,26 @@ func UpdateCompanyContractInheritEndDate(companyContractId int) {
 		err = errors.New("GetCompanyContractDetailByCompanyContractId, Err: " + e.Error())
 		return
 	}
+	if contractInfo.RaiContractType == "新签合同" {
+		e = company.UpdateCompanyContractDueEndDate(contractInfo.EndDate, contractInfo.CompanyContractId)
+		if e != nil {
+			err = errors.New("UpdateCompanyContractInheritEndDate, Err: " + e.Error())
+			return
+		}
+		return
+	}
 	startDate := contractInfo.StartDate
 
 	var condition string
 	var pars []interface{}
-	condition = "  AND  product_id = 2 AND status =1   AND company_id = ? AND end_date <= ? AND DATE_ADD( end_date, INTERVAL 1 YEAR ) >= ?  ORDER BY end_date ASC  LIMIT	 1  "
+	condition = "  AND  product_id = 2 AND status =1  AND  merge_company_contract_id = 0   AND company_id = ? AND end_date < ? AND DATE_ADD( end_date, INTERVAL 1 YEAR ) > ?  ORDER BY end_date ASC  LIMIT	 1  "
 	pars = append(pars, contractInfo.CompanyId, startDate, startDate)
 	companyContractList, e := company.GetCompanyContractList(condition, pars)
 	if e != nil {
 		err = errors.New("GetCompanyContractList, Err: " + e.Error())
 		return
 	}
-
+	//fmt.Println("companyContractList", len(companyContractList), "id", contractInfo.CompanyContractId, "contractInfo.EndDate", contractInfo.EndDate)
 	if len(companyContractList) == 1 {
 		for _, v := range companyContractList {
 			e = company.UpdateCompanyContractInheritEndDate(v.EndDate, v.CompanyContractId, contractInfo.CompanyContractId)
@@ -650,7 +660,7 @@ func UpdateCompanyContractInheritEndDate(companyContractId int) {
 	pars = make([]interface{}, 0)
 
 	//上一份合同找不到的话,就找开始时间早于当前合同开始时间的,结束时间晚于当前合同开始时间的
-	condition = "  AND  product_id = 2 AND status = 1   AND company_id = ? AND start_date < ? AND   end_date > ?  ORDER BY end_date ASC  LIMIT	 1  "
+	condition = "  AND  product_id = 2 AND status = 1  AND  merge_company_contract_id = 0   AND company_id = ? AND start_date < ? AND   end_date > ?  ORDER BY end_date ASC  LIMIT	 1  "
 	pars = append(pars, contractInfo.CompanyId, startDate, startDate)
 	companyContractList2, e := company.GetCompanyContractList(condition, pars)
 	if e != nil {
@@ -668,11 +678,65 @@ func UpdateCompanyContractInheritEndDate(companyContractId int) {
 		return
 	}
 
-	//上面两个要是都找不到,就把自身的结束时间作为,续约的结束时间
-	e = company.UpdateCompanyContractInheritEndDate(contractInfo.StartDate, contractInfo.CompanyContractId, contractInfo.CompanyContractId)
+	////上面两个要是都找不到,就把自身的结束时间作为,续约的结束时间
+	//e = company.UpdateCompanyContractInheritEndDate(contractInfo.StartDate, contractInfo.CompanyContractId, contractInfo.CompanyContractId)
+	//if e != nil {
+	//	err = errors.New("UpdateCompanyContractInheritEndDate, Err: " + e.Error())
+	//	return
+	//}
+	return
+}
+
+// 判断权益合同,是否续约了上一份的合同,并修改对应续约信息
+func UpdateCompanyContractDueEndDate(companyContractId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("判断权益合同,是否续约了上一份的合同,并修改对应续约信息失败,UpdateCompanyContractInheritEndDate ", err), 3)
+		}
+	}()
+	contractInfo, e := company.GetCompanyContractDetailByCompanyContractId(companyContractId)
 	if e != nil {
-		err = errors.New("UpdateCompanyContractInheritEndDate, Err: " + e.Error())
+		err = errors.New("GetCompanyContractDetailByCompanyContractId, Err: " + e.Error())
+		return
+	}
+	if contractInfo.RaiContractType == "新签合同" {
+		fmt.Println("新签合同")
 		return
 	}
+	endDate := contractInfo.EndDate
+	startDate := contractInfo.StartDate
+
+	var condition string
+	var pars []interface{}
+	condition = `  AND  product_id = 2 AND status =1  AND  merge_company_contract_id = 0   AND company_contract_id < ? AND company_id = ? 
+				AND DATE_ADD( end_date, INTERVAL - 1 YEAR ) < ? AND DATE_ADD( end_date, INTERVAL 1 YEAR ) > ? 
+				AND DATE_ADD( start_date, INTERVAL - 1 YEAR ) < ? AND DATE_ADD( start_date, INTERVAL 1 YEAR ) > ?
+				ORDER BY company_contract_id DESC,  end_date  DESC LIMIT	 1  `
+	pars = append(pars, contractInfo.CompanyContractId, contractInfo.CompanyId, endDate, endDate, startDate, startDate)
+	companyContractList, e := company.GetCompanyContractList(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyContractList, Err: " + e.Error())
+		return
+	}
+	//fmt.Println("companyContractList", len(companyContractList), "id", contractInfo.CompanyContractId, "contractInfo.EndDate", contractInfo.EndDate)
+	if len(companyContractList) == 1 {
+		for _, v := range companyContractList {
+			e = company.UpdateCompanyContractDueEndDateMerge(v.InheritEndDate, v.DueEndDate, v.CompanyContractId, v.CompanyContractId, contractInfo.CompanyContractId)
+			if e != nil {
+				err = errors.New("UpdateCompanyContractDueEndDateMerge, Err: " + e.Error())
+				return
+			}
+		}
+		return
+	} else {
+		//因为没有1年内的合并对象,结束时间作为自己的到期时间
+		e = company.UpdateCompanyContractDueEndDate(contractInfo.EndDate, contractInfo.CompanyContractId)
+		if e != nil {
+			err = errors.New("UpdateCompanyContractInheritEndDate, Err: " + e.Error())
+			return
+		}
+	}
 	return
 }