|
@@ -17,6 +17,7 @@ import (
|
|
|
"hongze/hongze_mobile_admin/models/tables/company_product_log"
|
|
|
"hongze/hongze_mobile_admin/models/tables/company_product_try_out_update_log"
|
|
|
"hongze/hongze_mobile_admin/models/tables/company_product_update_log"
|
|
|
+ "hongze/hongze_mobile_admin/models/tables/company_renewal_record"
|
|
|
"hongze/hongze_mobile_admin/models/tables/company_report_permission"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
|
|
@@ -437,8 +438,8 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
|
|
|
//客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
|
|
|
services.AddCompanyApprovalMessageWangYang(recordInfo.CompanyId, recordInfo.CompanyContractId, recordInfo.ApplyRealName, companyInfo.CompanyName)
|
|
|
|
|
|
- cygxService.YanXuanCompanyApproval(recordInfo.CompanyId) //研选审批通过的时候研选扣点更新
|
|
|
- cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId) //如果合同只有研选的时候,自动处理派点
|
|
|
+ cygxService.YanXuanCompanyApproval(recordInfo.CompanyId) //研选审批通过的时候研选扣点更新
|
|
|
+ cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId) //如果合同只有研选的时候,自动处理派点
|
|
|
cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId) // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
|
|
|
}
|
|
|
}()
|
|
@@ -768,6 +769,9 @@ func afterApproved(companyApprovalId int, opUserId int, opUserName string) (err
|
|
|
|
|
|
//如果合同时间小于等于今天,那么立马执行合同内容
|
|
|
if time.Now().After(contractStartDate) {
|
|
|
+ // 合同处理完成后的续约异常记录
|
|
|
+ contactHandleCompanyRenewalRecord(contractInfo)
|
|
|
+
|
|
|
companyReportPermissionList, err = company_approval.ApplyServiceUpdate(recodeInfo.CompanyId, recodeInfo.ProductId, opUser.AdminId, recodeInfo.CompanyApprovalId, recodeInfo.CompanyContractId, companyProduct.StartDate, contractInfo.EndDate, opUser.RealName, companyProduct.ProductName, contractInfo.PackageType, contractInfo.RaiPackageType)
|
|
|
if tmpErr != nil {
|
|
|
err = errors.New(fmt.Sprint("正式客户申请服务更新失败,执行失败;Err:" + tmpErr.Error()))
|
|
@@ -896,6 +900,79 @@ func afterApproved(companyApprovalId int, opUserId int, opUserName string) (err
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// contactHandleCompanyRenewalRecord
|
|
|
+// @Description: 合同处理完成后的续约异常记录
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2023-12-07 14:24:44
|
|
|
+// @param contractInfo *company_contract.CompanyContract
|
|
|
+// @param day string
|
|
|
+// @return err error
|
|
|
+func contactHandleCompanyRenewalRecord(contractInfo *company_contract.CompanyContractDetail) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error("合同处理完成后的续约异常记录," + err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ // 判断合同类型是否是续约合同,如果不是的话,就不往下走了
|
|
|
+ if contractInfo.ContractType != `续约合同` {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ day := time.Now().Format(utils.FormatDate)
|
|
|
+
|
|
|
+ // 获取早于当前合同结束日期的上一份合同
|
|
|
+ lastContract, tmpErr := company_contract.GetLastContractListByEndDate(contractInfo.CompanyId, contractInfo.ProductId, contractInfo.EndDate)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = errors.New(fmt.Sprint("合同id:", contractInfo.CompanyContractId, ";通过最近一份合同的日期获取早于该合同的最晚一份合同失败,ERR:", tmpErr))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 校验 上一份合同的结束日期 与 今天 相隔的天数
|
|
|
+ betweenDay, tmpErr := utils.GetDaysBetween2Date(utils.FormatDate, day, lastContract.EndDate)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = errors.New(fmt.Sprint("合同id:", contractInfo.CompanyContractId, ";计算两个日期相差的天数失败,ERR:", tmpErr))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ source := 2 // 正常续约
|
|
|
+ // 如果间隔时间超过60天,那么标记为超时续约
|
|
|
+ if betweenDay > 60 {
|
|
|
+ source = 3 // 超时续约
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果间隔时间超过60天,那么标记为超时续约
|
|
|
+ companyProductItem, tmpErr := company_product.GetCompanyProductItemByCompanyId(contractInfo.CompanyId, contractInfo.ProductId)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = errors.New(fmt.Sprint("合同id:", contractInfo.CompanyContractId, ";GetCompanyProductItemByCompanyId失败,ERR:", tmpErr))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var shareSellerId int
|
|
|
+ var shareSellerName string
|
|
|
+ if companyProductItem.IsShare == 1 {
|
|
|
+ shareSellerId = companyProductItem.ShareSellerId
|
|
|
+ shareSellerName = companyProductItem.ShareSeller
|
|
|
+ }
|
|
|
+ item := &company_renewal_record.CompanyRenewalRecord{
|
|
|
+ Id: 0,
|
|
|
+ CompanyId: contractInfo.CompanyId,
|
|
|
+ ProductId: contractInfo.ProductId,
|
|
|
+ Source: source,
|
|
|
+ SellerId: companyProductItem.SellerId,
|
|
|
+ SellerName: companyProductItem.SellerName,
|
|
|
+ ShareSellerId: shareSellerId,
|
|
|
+ ShareSellerName: shareSellerName,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+ tmpErr = item.Add()
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = errors.New(fmt.Sprint("合同id:", contractInfo.CompanyContractId, ";添加续约异常记录失败,ERR:", tmpErr))
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// afterReject 驳回完成后操作
|
|
|
func afterReject(companyApprovalId, opUserId int, opUserName, remark string) (err error) {
|
|
|
defer func() {
|