|
@@ -492,220 +492,221 @@ func HandleCompanyRenewalRecordV2(cont context.Context) (err error) {
|
|
|
}
|
|
|
|
|
|
// 续约异常客户数据修复
|
|
|
-//func FixData() {
|
|
|
-// firstTime := time.Date(2023, 1, 1, 0, 0, 0, 0, time.Local)
|
|
|
-// endTime := time.Date(2024, 2, 21, 1, 0, 0, 0, time.Local)
|
|
|
-//
|
|
|
-// for currTime := firstTime; currTime.Before(endTime); currTime = currTime.AddDate(0, 0, 1) {
|
|
|
-// currDate := currTime.Format(utils.FormatDate)
|
|
|
-// fmt.Printf("结束%s的数据修复\n", currDate)
|
|
|
-//
|
|
|
-// //// 4:需求是30个自然日后未续约的客户
|
|
|
-// //{
|
|
|
-// // handleFixCompanyRenewalRecord(currTime.AddDate(0, 0, -30-1).Format(utils.FormatDate), currTime, 4)
|
|
|
-// //}
|
|
|
-// //// 5:需求是到期日后未续约的客户
|
|
|
-// //{
|
|
|
-// // handleFixCompanyRenewalRecord(currTime.AddDate(0, 0, -1).Format(utils.FormatDate), currTime, 5)
|
|
|
-// //}
|
|
|
-//
|
|
|
-// // 即将到期还未到期的统计
|
|
|
-// // 合同到期前一个月还未续约的客户;
|
|
|
-// {
|
|
|
-// handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 30-1).Format(utils.FormatDate), currTime, 6)
|
|
|
-// }
|
|
|
-// // 7:合同到期前两个月还未续约客户;
|
|
|
-// {
|
|
|
-// handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 60-1).Format(utils.FormatDate), currTime, 7)
|
|
|
-// }
|
|
|
-// // 8:合同到期前3个月还未续约客户;
|
|
|
-// {
|
|
|
-// handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 90-1).Format(utils.FormatDate), currTime, 8)
|
|
|
-// }
|
|
|
-// // 9:合同到期前4个月还未续约客户
|
|
|
-// {
|
|
|
-// handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 120-1).Format(utils.FormatDate), currTime, 9)
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// fmt.Println("end fix")
|
|
|
-//}
|
|
|
-//
|
|
|
-//// handleFixCompanyRenewalRecord
|
|
|
-//// @Description: 修复合同到期后N个月还未续约的客户
|
|
|
-//// @author: Roc
|
|
|
-//// @datetime 2024-02-21 15:29:29
|
|
|
-//// @param endDate string
|
|
|
-//// @param source int
|
|
|
-//// @return err error
|
|
|
-//func handleFixCompanyRenewalRecord(endDate string, currTime time.Time, source int) (err error) {
|
|
|
-// defer func() {
|
|
|
-// if err != nil {
|
|
|
-// //fmt.Println("合同处理 ErrMsg:"+err.Error())
|
|
|
-// //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
-// go alarm_msg.SendAlarmMsg(fmt.Sprintf("日期:%s;来源%d;处理合同到期后还未续约的记录异常 ErrMsg:%s", currTime.Format(utils.FormatDate), source, err.Error()), 3)
|
|
|
-// }
|
|
|
-// }()
|
|
|
-//
|
|
|
-// // 根据日期获取截止日期是该日期的合同列表
|
|
|
-// total, list, err := company_contract.GetContractListByEndDate(endDate)
|
|
|
-// if err != nil {
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetStartContractListByEndDate Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// fmt.Printf("总共%d条数据待处理\n", total)
|
|
|
-// if total <= 0 {
|
|
|
-// return
|
|
|
-// }
|
|
|
-// companyIdList := make([]int, 0)
|
|
|
-// for _, companyInfo := range list {
|
|
|
-// companyIdList = append(companyIdList, companyInfo.CompanyId)
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 已经续约了的合同列表
|
|
|
-// afterContractCompanyIdMap := make(map[int]int)
|
|
|
-// {
|
|
|
-// // 根据客户id列表和上一份合同的结束日期,获取已经续约了的合同列表
|
|
|
-// _, renewalList, tmpErr := company_contract.GetContractListByEndDateAndModifyTime(endDate, endDate, companyIdList)
|
|
|
-// if tmpErr != nil {
|
|
|
-// err = tmpErr
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetContractListByEndDateAndModifyTime Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// for _, afterContract := range renewalList {
|
|
|
-// afterContractCompanyIdMap[afterContract.CompanyId] = afterContract.CompanyId
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 获取客户列表
|
|
|
-// companyList, err := models.GetCompanyProductItemListByCompanyIdList(companyIdList, 1)
|
|
|
-// if err != nil {
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetCompanyProductListByCompanyIdList Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// addList := make([]*models.CompanyRenewalRecord, 0)
|
|
|
-// for _, v := range companyList {
|
|
|
-// _, ok := afterContractCompanyIdMap[v.CompanyId]
|
|
|
-//
|
|
|
-// // 已经续约了,不处理
|
|
|
-// if ok {
|
|
|
-// continue
|
|
|
-// }
|
|
|
-//
|
|
|
-// var shareSellerId int
|
|
|
-// var shareSellerName string
|
|
|
-// if v.IsShare == 1 {
|
|
|
-// shareSellerId = v.ShareSellerId
|
|
|
-// shareSellerName = v.ShareSeller
|
|
|
-// }
|
|
|
-// addList = append(addList, &models.CompanyRenewalRecord{
|
|
|
-// Id: 0,
|
|
|
-// CompanyId: v.CompanyId,
|
|
|
-// ProductId: v.ProductId,
|
|
|
-// Source: source,
|
|
|
-// SellerId: v.SellerId,
|
|
|
-// SellerName: v.SellerName,
|
|
|
-// ShareSellerId: shareSellerId,
|
|
|
-// ShareSellerName: shareSellerName,
|
|
|
-// CreateTime: currTime,
|
|
|
-// ModifyTime: currTime,
|
|
|
-// })
|
|
|
-// }
|
|
|
-//
|
|
|
-// if len(addList) > 0 {
|
|
|
-// err = models.MultiAddCompanyRenewalRecord(addList)
|
|
|
-// }
|
|
|
-//
|
|
|
-// return
|
|
|
-//}
|
|
|
-//
|
|
|
-//// handleFixCompanyExpiringRenewalRecord
|
|
|
-//// @Description: 修复合同到期前N个月还未续约的客户
|
|
|
-//// @author: Roc
|
|
|
-//// @datetime 2024-02-21 15:29:29
|
|
|
-//// @param endDate string
|
|
|
-//// @param source int
|
|
|
-//// @return err error
|
|
|
-//func handleFixCompanyExpiringRenewalRecord(endDate string, currTime time.Time, source int) (err error) {
|
|
|
-// currDate := currTime.Format(utils.FormatDate)
|
|
|
-// defer func() {
|
|
|
-// if err != nil {
|
|
|
-// //fmt.Println("合同处理 ErrMsg:"+err.Error())
|
|
|
-// //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
-// go alarm_msg.SendAlarmMsg(fmt.Sprintf("日期:%s;来源%d;处理合同到期后还未续约的记录异常 ErrMsg:%s", currDate, source, err.Error()), 3)
|
|
|
-// }
|
|
|
-// }()
|
|
|
-//
|
|
|
-// // 根据日期获取截止日期是该日期的合同列表
|
|
|
-// total, list, err := company_contract.GetContractListByEndDate(endDate)
|
|
|
-// if err != nil {
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetStartContractListByEndDate Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// fmt.Printf("总共%d条数据待处理\n", total)
|
|
|
-// if total <= 0 {
|
|
|
-// return
|
|
|
-// }
|
|
|
-// companyIdList := make([]int, 0)
|
|
|
-// for _, companyInfo := range list {
|
|
|
-// companyIdList = append(companyIdList, companyInfo.CompanyId)
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 已经续约了的合同列表
|
|
|
-// afterContractCompanyIdMap := make(map[int]int)
|
|
|
-// {
|
|
|
-// // 根据客户id列表和上一份合同的结束日期,获取已经续约了的合同列表
|
|
|
-// _, renewalList, tmpErr := company_contract.GetContractListByEndDateAndModifyTime(endDate, currDate, companyIdList)
|
|
|
-// if tmpErr != nil {
|
|
|
-// err = tmpErr
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetContractListByEndDateAndModifyTime Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// for _, afterContract := range renewalList {
|
|
|
-// afterContractCompanyIdMap[afterContract.CompanyId] = afterContract.CompanyId
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 获取客户列表
|
|
|
-// companyList, err := models.GetCompanyProductItemListByCompanyIdList(companyIdList, 1)
|
|
|
-// if err != nil {
|
|
|
-// utils.FileLog.Info("HandleCompanyRenewalRecord GetCompanyProductListByCompanyIdList Err:%s" + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// addList := make([]*models.CompanyRenewalRecord, 0)
|
|
|
-// for _, v := range companyList {
|
|
|
-// _, ok := afterContractCompanyIdMap[v.CompanyId]
|
|
|
-//
|
|
|
-// // 已经续约了,不处理
|
|
|
-// if ok {
|
|
|
-// continue
|
|
|
-// }
|
|
|
-//
|
|
|
-// var shareSellerId int
|
|
|
-// var shareSellerName string
|
|
|
-// if v.IsShare == 1 {
|
|
|
-// shareSellerId = v.ShareSellerId
|
|
|
-// shareSellerName = v.ShareSeller
|
|
|
-// }
|
|
|
-// addList = append(addList, &models.CompanyRenewalRecord{
|
|
|
-// Id: 0,
|
|
|
-// CompanyId: v.CompanyId,
|
|
|
-// ProductId: v.ProductId,
|
|
|
-// Source: source,
|
|
|
-// SellerId: v.SellerId,
|
|
|
-// SellerName: v.SellerName,
|
|
|
-// ShareSellerId: shareSellerId,
|
|
|
-// ShareSellerName: shareSellerName,
|
|
|
-// CreateTime: currTime,
|
|
|
-// ModifyTime: currTime,
|
|
|
-// })
|
|
|
-// }
|
|
|
-//
|
|
|
-// if len(addList) > 0 {
|
|
|
-// err = models.MultiAddCompanyRenewalRecord(addList)
|
|
|
-// }
|
|
|
-//
|
|
|
-// return
|
|
|
-//}
|
|
|
+func FixData() {
|
|
|
+ //firstTime := time.Date(2023, 1, 1, 0, 0, 0, 0, time.Local)
|
|
|
+ firstTime := time.Date(2024, 2, 28, 0, 0, 0, 0, time.Local)
|
|
|
+ endTime := time.Date(2024, 2, 28, 1, 0, 0, 0, time.Local)
|
|
|
+
|
|
|
+ for currTime := firstTime; currTime.Before(endTime); currTime = currTime.AddDate(0, 0, 1) {
|
|
|
+ currDate := currTime.Format(utils.FormatDate)
|
|
|
+ fmt.Printf("结束%s的数据修复\n", currDate)
|
|
|
+
|
|
|
+ // 4:需求是30个自然日后未续约的客户
|
|
|
+ {
|
|
|
+ handleFixCompanyRenewalRecord(currTime.AddDate(0, 0, -30-1).Format(utils.FormatDate), currTime, 4)
|
|
|
+ }
|
|
|
+ // 5:需求是到期日后未续约的客户
|
|
|
+ {
|
|
|
+ handleFixCompanyRenewalRecord(currTime.AddDate(0, 0, -1).Format(utils.FormatDate), currTime, 5)
|
|
|
+ }
|
|
|
+
|
|
|
+ //即将到期还未到期的统计
|
|
|
+ //合同到期前一个月还未续约的客户;
|
|
|
+ {
|
|
|
+ handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 30-1).Format(utils.FormatDate), currTime, 6)
|
|
|
+ }
|
|
|
+ // 7:合同到期前两个月还未续约客户;
|
|
|
+ {
|
|
|
+ handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 60-1).Format(utils.FormatDate), currTime, 7)
|
|
|
+ }
|
|
|
+ // 8:合同到期前3个月还未续约客户;
|
|
|
+ {
|
|
|
+ handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 90-1).Format(utils.FormatDate), currTime, 8)
|
|
|
+ }
|
|
|
+ // 9:合同到期前4个月还未续约客户
|
|
|
+ {
|
|
|
+ handleFixCompanyExpiringRenewalRecord(currTime.AddDate(0, 0, 120-1).Format(utils.FormatDate), currTime, 9)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("end fix")
|
|
|
+}
|
|
|
+
|
|
|
+// handleFixCompanyRenewalRecord
|
|
|
+// @Description: 修复合同到期后N个月还未续约的客户
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-02-21 15:29:29
|
|
|
+// @param endDate string
|
|
|
+// @param source int
|
|
|
+// @return err error
|
|
|
+func handleFixCompanyRenewalRecord(endDate string, currTime time.Time, source int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ //fmt.Println("合同处理 ErrMsg:"+err.Error())
|
|
|
+ //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ go alarm_msg.SendAlarmMsg(fmt.Sprintf("日期:%s;来源%d;处理合同到期后还未续约的记录异常 ErrMsg:%s", currTime.Format(utils.FormatDate), source, err.Error()), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ // 根据日期获取截止日期是该日期的合同列表
|
|
|
+ total, list, err := company_contract.GetContractListByEndDate(endDate)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetStartContractListByEndDate Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Printf("总共%d条数据待处理\n", total)
|
|
|
+ if total <= 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyIdList := make([]int, 0)
|
|
|
+ for _, companyInfo := range list {
|
|
|
+ companyIdList = append(companyIdList, companyInfo.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 已经续约了的合同列表
|
|
|
+ afterContractCompanyIdMap := make(map[int]int)
|
|
|
+ {
|
|
|
+ // 根据客户id列表和上一份合同的结束日期,获取已经续约了的合同列表
|
|
|
+ _, renewalList, tmpErr := company_contract.GetContractListByEndDateAndModifyTime(endDate, endDate, companyIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetContractListByEndDateAndModifyTime Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, afterContract := range renewalList {
|
|
|
+ afterContractCompanyIdMap[afterContract.CompanyId] = afterContract.CompanyId
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取客户列表
|
|
|
+ companyList, err := models.GetCompanyProductItemListByCompanyIdList(companyIdList, 1)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetCompanyProductListByCompanyIdList Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ addList := make([]*models.CompanyRenewalRecord, 0)
|
|
|
+ for _, v := range companyList {
|
|
|
+ _, ok := afterContractCompanyIdMap[v.CompanyId]
|
|
|
+
|
|
|
+ // 已经续约了,不处理
|
|
|
+ if ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ var shareSellerId int
|
|
|
+ var shareSellerName string
|
|
|
+ if v.IsShare == 1 {
|
|
|
+ shareSellerId = v.ShareSellerId
|
|
|
+ shareSellerName = v.ShareSeller
|
|
|
+ }
|
|
|
+ addList = append(addList, &models.CompanyRenewalRecord{
|
|
|
+ Id: 0,
|
|
|
+ CompanyId: v.CompanyId,
|
|
|
+ ProductId: v.ProductId,
|
|
|
+ Source: source,
|
|
|
+ SellerId: v.SellerId,
|
|
|
+ SellerName: v.SellerName,
|
|
|
+ ShareSellerId: shareSellerId,
|
|
|
+ ShareSellerName: shareSellerName,
|
|
|
+ CreateTime: currTime,
|
|
|
+ ModifyTime: currTime,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(addList) > 0 {
|
|
|
+ err = models.MultiAddCompanyRenewalRecord(addList)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// handleFixCompanyExpiringRenewalRecord
|
|
|
+// @Description: 修复合同到期前N个月还未续约的客户
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-02-21 15:29:29
|
|
|
+// @param endDate string
|
|
|
+// @param source int
|
|
|
+// @return err error
|
|
|
+func handleFixCompanyExpiringRenewalRecord(endDate string, currTime time.Time, source int) (err error) {
|
|
|
+ currDate := currTime.Format(utils.FormatDate)
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ //fmt.Println("合同处理 ErrMsg:"+err.Error())
|
|
|
+ //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ go alarm_msg.SendAlarmMsg(fmt.Sprintf("日期:%s;来源%d;处理合同到期后还未续约的记录异常 ErrMsg:%s", currDate, source, err.Error()), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ // 根据日期获取截止日期是该日期的合同列表
|
|
|
+ total, list, err := company_contract.GetContractListByEndDate(endDate)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetStartContractListByEndDate Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Printf("总共%d条数据待处理\n", total)
|
|
|
+ if total <= 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyIdList := make([]int, 0)
|
|
|
+ for _, companyInfo := range list {
|
|
|
+ companyIdList = append(companyIdList, companyInfo.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 已经续约了的合同列表
|
|
|
+ afterContractCompanyIdMap := make(map[int]int)
|
|
|
+ {
|
|
|
+ // 根据客户id列表和上一份合同的结束日期,获取已经续约了的合同列表
|
|
|
+ _, renewalList, tmpErr := company_contract.GetContractListByEndDateAndModifyTime(endDate, currDate, companyIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetContractListByEndDateAndModifyTime Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, afterContract := range renewalList {
|
|
|
+ afterContractCompanyIdMap[afterContract.CompanyId] = afterContract.CompanyId
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取客户列表
|
|
|
+ companyList, err := models.GetCompanyProductItemListByCompanyIdList(companyIdList, 1)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("HandleCompanyRenewalRecord GetCompanyProductListByCompanyIdList Err:%s" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ addList := make([]*models.CompanyRenewalRecord, 0)
|
|
|
+ for _, v := range companyList {
|
|
|
+ _, ok := afterContractCompanyIdMap[v.CompanyId]
|
|
|
+
|
|
|
+ // 已经续约了,不处理
|
|
|
+ if ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ var shareSellerId int
|
|
|
+ var shareSellerName string
|
|
|
+ if v.IsShare == 1 {
|
|
|
+ shareSellerId = v.ShareSellerId
|
|
|
+ shareSellerName = v.ShareSeller
|
|
|
+ }
|
|
|
+ addList = append(addList, &models.CompanyRenewalRecord{
|
|
|
+ Id: 0,
|
|
|
+ CompanyId: v.CompanyId,
|
|
|
+ ProductId: v.ProductId,
|
|
|
+ Source: source,
|
|
|
+ SellerId: v.SellerId,
|
|
|
+ SellerName: v.SellerName,
|
|
|
+ ShareSellerId: shareSellerId,
|
|
|
+ ShareSellerName: shareSellerName,
|
|
|
+ CreateTime: currTime,
|
|
|
+ ModifyTime: currTime,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(addList) > 0 {
|
|
|
+ err = models.MultiAddCompanyRenewalRecord(addList)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|