job.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package service
  2. import (
  3. "fmt"
  4. "github.com/robfig/cron"
  5. "kpt.xdmy/apiserver/model"
  6. "kpt.xdmy/apiserver/service/cownum_sqlserver"
  7. "time"
  8. )
  9. var s *Service
  10. func SapJobInit() {
  11. AutoSapOrderJob()
  12. duetimecst, _ := time.ParseInLocation("15:04:05", "00:01:00", time.Local)
  13. duetimecst1, _ := time.ParseInLocation("15:04:05", "00:00:00", time.Local)
  14. spec := fmt.Sprintf("@every %v", duetimecst.Sub(duetimecst1))
  15. c := cron.New()
  16. c.AddFunc(spec, func() {
  17. AutoSapOrderJob()
  18. //AutoSrmOrderJob()
  19. //AutoSapReturnOrderJob()
  20. //AutoSrmReturnOrderJob()
  21. })
  22. c.Start()
  23. //pastureList := make([]*model.Pasture, 0)
  24. //s.d.DB.Table("pasture").Find(&pastureList)
  25. //var t time.Time
  26. //t = time.Now()
  27. //i := -320
  28. //for {
  29. // i++
  30. //for _, pasture := range pastureList {
  31. //}
  32. // if t.AddDate(0, 0, i).Format("2006-01-02") == "2023-08-24" {
  33. // break
  34. // }
  35. //}
  36. c1 := cron.New()
  37. c1.AddFunc("0 40 23 * * ?", func() {
  38. fmt.Println(time.Now())
  39. //更新设备维修和保养费用
  40. var t time.Time
  41. t = time.Now()
  42. var code string
  43. pastureList := make([]*model.Pasture, 0)
  44. err := s.d.DB.Table("pasture").Find(&pastureList)
  45. fmt.Println(err)
  46. for _, pasture := range pastureList {
  47. s.SapSupplier(t, pasture.CompanyCode, pasture.ID)
  48. s.SapAsset(t, code, pasture.CompanyCode)
  49. s.SapAssetSalvage(t, pasture.CompanyCode, pasture.ID)
  50. }
  51. s.SapMaterial(t, code)
  52. s.d.DB.Exec(`call createEqstatus()`)
  53. })
  54. //保养计划
  55. duetimecst, _ = time.ParseInLocation("15:04:05", "01:00:00", time.Local)
  56. duetimecst1, _ = time.ParseInLocation("15:04:05", "00:00:00", time.Local)
  57. spec1 := fmt.Sprintf("@every %v", duetimecst.Sub(duetimecst1))
  58. c1.AddFunc(spec1, func() {
  59. pastureList := make([]*model.Pasture, 0)
  60. s.d.DB.Table("pasture").Where("vendor = 1").Find(&pastureList)
  61. for _, pasture := range pastureList {
  62. fmt.Println(pasture.ID)
  63. s.d.DB.Exec(`call createRUcode(?)`, pasture.ID)
  64. }
  65. })
  66. duetimecst, _ = time.ParseInLocation("15:04:05", "00:05:00", time.Local)
  67. duetimecst1, _ = time.ParseInLocation("15:04:05", "00:00:00", time.Local)
  68. spec2 := fmt.Sprintf("@every %v", duetimecst.Sub(duetimecst1))
  69. c1.AddFunc(spec2, func() {
  70. s.d.DB.Exec(`call wxmsg()`)
  71. })
  72. c1.AddFunc("0 50 01 * * ?", func() {
  73. //更新设备维修和保养费用
  74. pastureList := make([]*model.Pasture, 0)
  75. s.d.DB.Table("pasture").Where("vendor = 1 ").Where("id != 18 ").Find(&pastureList)
  76. now := time.Now()
  77. start := now.AddDate(-1, 0, 0).Format("2006-01-02")
  78. end := now.Format("2006-01-02")
  79. for _, pasture := range pastureList {
  80. updateEqYearMaintainCostAndYearUpkeepCost(pasture.ID, start, end)
  81. }
  82. })
  83. c1.AddFunc("0 20 18 * * ?", func() {
  84. cownum_sqlserver.SyncCownum(s.sqlserver, s.d, time.Now().AddDate(0, 0, -3).Format("2006-01-02"))
  85. cownum_sqlserver.SyncCownum(s.sqlserver, s.d, time.Now().AddDate(0, 0, -2).Format("2006-01-02"))
  86. cownum_sqlserver.SyncCownum(s.sqlserver, s.d, time.Now().AddDate(0, 0, -1).Format("2006-01-02"))
  87. pastureList := make([]*model.Pasture, 0)
  88. s.d.DB.Table("pasture").Where("vendor = 1 ").Where("factory_code != '' ").Where("factory_code is not null ").Find(&pastureList)
  89. for _, item := range pastureList {
  90. AutoFeeQuery(item.FactoryCode, item.ID)
  91. }
  92. })
  93. c1.AddFunc("0 10 12 * * ?", func() {
  94. AutoContractToASP()
  95. })
  96. c1.AddFunc("0 20 23 * * ?", func() {
  97. AutoContractToASP()
  98. })
  99. //c1.Start()
  100. }
  101. func jobMaterial() {
  102. t := time.Now()
  103. var code string
  104. s.SapMaterial(t, code)
  105. }
  106. func jobTransfer() {
  107. autoTransfer()
  108. }