company_contract.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package company_contract
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "hongze/hongze_task/models/company"
  7. "hongze/hongze_task/models/company_approval"
  8. "hongze/hongze_task/models/company_contract"
  9. "hongze/hongze_task/utils"
  10. "strings"
  11. )
  12. //合同处理
  13. func HandleCompanyContract(cont context.Context) (err error) {
  14. defer func() {
  15. if err != nil {
  16. //fmt.Println("合同处理 ErrMsg:"+err.Error())
  17. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "合同处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  18. }
  19. }()
  20. today := utils.GetToday(utils.FormatDate)
  21. total, list, err := company_contract.GetStartContractListByStartDate(today)
  22. if err != nil {
  23. fmt.Println("HandleCompanyContract Err:" + err.Error())
  24. utils.FileLog.Info("HandleCompanyContract Err:%s" + err.Error())
  25. return
  26. }
  27. fmt.Sprintln("总共d%条数据待处理", total)
  28. errorList := make([]string, 0)
  29. for _, v := range list {
  30. //fmt.Println(k, v.CompanyId)
  31. //fmt.Println(v)
  32. companyApproval, err := company_approval.GetCompanyApprovalByCompanyContractId(v.CompanyContractId)
  33. if err != nil {
  34. errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";err:", err))
  35. continue
  36. }
  37. if companyApproval == nil {
  38. errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";找不到对应的审批单"))
  39. continue
  40. }
  41. //companyProduct, err := models.GetCompanyProduct(v.CompanyId, v.ProductId)
  42. //if err != nil {
  43. // errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";寻找客户产品时异常 err:", err))
  44. // continue
  45. //}
  46. //companyProduct.EndDate
  47. //格式化客户当前产品结束日期
  48. //companyProductEndDate, err := time.Parse(utils.FormatDate, companyProduct.EndDate)
  49. //if err != nil {
  50. // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";格式化客户当前产品结束时间时异常 err:",err))
  51. // continue
  52. //}
  53. //格式化合同结束日期
  54. //contractEndDate, err := time.Parse(utils.FormatDate, v.EndDate)
  55. //if err != nil {
  56. // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";格式化合同结束日期时异常 err:",err))
  57. // continue
  58. //}
  59. //如果 合同结束日期 小于 客户当前产品结束日期,那么不执行合同内容
  60. //if contractEndDate.Before(companyProductEndDate) {
  61. // errorList = append(errorList,fmt.Sprint("合同id:",v.CompanyContractId,";合同结束日期 小于 客户当前产品结束日期,不执行该合同内容"))
  62. // continue
  63. //}
  64. //申请类型:1:试用->正式,2:冻结—>试用,3:试用延期,4:原销售申请领取流失客户,5:正式客户申请服务更新
  65. switch companyApproval.ApplyMethod {
  66. case 1:
  67. company.TryOutToFormal(v.CompanyId, v.ProductId, utils.AdminId, v.CompanyContractId, v.StartDate, v.EndDate, utils.RealName, v.ProductName)
  68. case 5, 6:
  69. company.ApplyServiceUpdate(v.CompanyId, v.ProductId, utils.AdminId, v.CompanyContractId, v.StartDate, v.EndDate, utils.RealName, v.ProductName)
  70. default:
  71. errorList = append(errorList, fmt.Sprint("合同id:", v.CompanyContractId, ";审批单类型异常"))
  72. continue
  73. }
  74. }
  75. //错误信息,批量返回错误信息
  76. if len(errorList) > 0 {
  77. err = errors.New(strings.Join(errorList, ";"))
  78. }
  79. return
  80. }