|
@@ -2,8 +2,10 @@ package services
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "hongze/hz_crm_api/models/company"
|
|
|
"hongze/hz_crm_api/models/eta_business"
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
func Task() {
|
|
@@ -14,7 +16,7 @@ func Task() {
|
|
|
go AutoInsertAdminOperateRecordToDB()
|
|
|
|
|
|
//go FixEtaBusinessCodeEncrypt()
|
|
|
-
|
|
|
+ //InitContractUnusual()
|
|
|
fmt.Println("task end")
|
|
|
}
|
|
|
|
|
@@ -35,3 +37,83 @@ func FixEtaBusinessCodeEncrypt() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func InitContractUnusual() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("initYearContractUnusual 补全未续约合同记录,Err:" + err.Error())
|
|
|
+ utils.FileLog.Info("initYearContractUnusual 补全未续约合同记录,Err:" + err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ addList := make([]*company.CompanyRenewalRecord, 0)
|
|
|
+ // 整理时间表
|
|
|
+ startDate, _ := time.ParseInLocation(utils.FormatDate, "2023-01-01", time.Local)
|
|
|
+ endDate, _ := time.ParseInLocation(utils.FormatDate, "2023-12-18", time.Local)
|
|
|
+ for startDate.Before(endDate) || startDate == endDate {
|
|
|
+ tmpC := ` AND end_date = ? AND status = 1 AND contract_type IN ( "新签合同", "续约合同" ) AND product_id = 1`
|
|
|
+ var tmpP []interface{}
|
|
|
+ before61 := startDate.AddDate(0, 0, -61)
|
|
|
+ tmpP = append(tmpP, before61)
|
|
|
+ contractList, e := company.GetCompanyContractList(tmpC, tmpP)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("查询合同列表失败, ERR:%s", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(contractList) > 0 {
|
|
|
+ contractMap := make(map[int]*company.CompanyContractResp)
|
|
|
+ for _, v := range contractList {
|
|
|
+ //查询这个合同是否存在续约合同,起始日大于今日,或者截止日
|
|
|
+ contractMap[v.CompanyId] = v
|
|
|
+ }
|
|
|
+ ficcNormalMap := make(map[int]struct{})
|
|
|
+
|
|
|
+ tmpC = ` AND start_date >= ? AND start_date <= ? AND status = 1 AND contract_type="续约合同" AND product_id = 1`
|
|
|
+ tmpP = make([]interface{}, 0)
|
|
|
+ tmpP = append(tmpP, before61, startDate)
|
|
|
+
|
|
|
+ contractNormalList, e := company.GetCompanyContractList(tmpC, tmpP)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("查询合同列表失败, ERR:%s", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range contractNormalList {
|
|
|
+ ficcNormalMap[v.CompanyId] = struct{}{}
|
|
|
+ }
|
|
|
+ for _, v := range contractList {
|
|
|
+ companyInfo, tErr := company.GetCompanyById(v.CompanyId)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sellers, tErr := company.GetCompanyProductByCompanyIdAndProductId(v.CompanyId, v.ProductId)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //查询这个合同是否存在续约合同,起始日大于今日,或者截止日
|
|
|
+ if _, ok := ficcNormalMap[v.CompanyId]; !ok {
|
|
|
+ tmp := &company.CompanyRenewalRecord{
|
|
|
+ CompanyId: v.CompanyId,
|
|
|
+ ProductId: v.ProductId,
|
|
|
+ Source: 1,
|
|
|
+ SellerId: sellers.SellerId,
|
|
|
+ SellerName: sellers.SellerName,
|
|
|
+ ShareSellerId: companyInfo.ShareSellerId,
|
|
|
+ ShareSellerName: companyInfo.ShareSeller,
|
|
|
+ CreateTime: startDate,
|
|
|
+ ModifyTime: startDate,
|
|
|
+ }
|
|
|
+ addList = append(addList, tmp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ startDate = startDate.AddDate(0, 0, 1)
|
|
|
+ }
|
|
|
+ if len(addList) > 0 {
|
|
|
+ item := new(company.CompanyRenewalRecord)
|
|
|
+ err = item.InsertMulti(addList)
|
|
|
+
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|