package company_contract import ( "context" "errors" "fmt" "hongze/hongze_task/models/company" "hongze/hongze_task/models/company_approval" "hongze/hongze_task/models/company_contract" "hongze/hongze_task/utils" "strings" ) //合同处理 func HandleCompanyContract(cont context.Context) (err error) { defer func() { if err != nil { //fmt.Println("合同处理 ErrMsg:"+err.Error()) go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers) } }() today := utils.GetToday(utils.FormatDate) total, list, err := company_contract.GetStartContractListByStartDate(today) if err != nil { fmt.Println("HandleCompanyContract Err:" + err.Error()) utils.FileLog.Info("HandleCompanyContract Err:%s" + err.Error()) return } fmt.Sprintln("总共d%条数据待处理", total) errorList := make([]string, 0) for _, v := range list { //fmt.Println(k, v.CompanyId) //fmt.Println(v) companyApproval, err := company_approval.GetCompanyApprovalByCompanyContractId(v.CompanyContractId) if err != nil { errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";err:", err)) continue } if companyApproval == nil { errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";找不到对应的审批单")) continue } //companyProduct, err := models.GetCompanyProduct(v.CompanyId, v.ProductId) //if err != nil { // errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";寻找客户产品时异常 err:", err)) // continue //} //companyProduct.EndDate //格式化客户当前产品结束日期 //companyProductEndDate, err := time.Parse(utils.FormatDate, companyProduct.EndDate) //if err != nil { // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";格式化客户当前产品结束时间时异常 err:",err)) // continue //} //格式化合同结束日期 //contractEndDate, err := time.Parse(utils.FormatDate, v.EndDate) //if err != nil { // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";格式化合同结束日期时异常 err:",err)) // continue //} //如果 合同结束日期 小于 客户当前产品结束日期,那么不执行合同内容 //if contractEndDate.Before(companyProductEndDate) { // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";合同结束日期 小于 客户当前产品结束日期,不执行该合同内容")) // continue //} //申请类型:1:试用->正式,2:冻结—>试用,3:试用延期,4:原销售申请领取流失客户,5:正式客户申请服务更新 switch companyApproval.ApplyMethod { case 1: company.TryOutToFormal(v.CompanyId, v.ProductId, utils.AdminId, v.CompanyContractId, v.StartDate, v.EndDate, utils.RealName, v.ProductName) case 5, 6: company.ApplyServiceUpdate(v.CompanyId, v.ProductId, utils.AdminId, v.CompanyContractId, v.StartDate, v.EndDate, utils.RealName, v.ProductName) default: errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";审批单类型异常")) continue } } //错误信息,批量返回错误信息 if len(errorList) > 0 { err = errors.New(strings.Join(errorList, ";")) } return }