SJA APS后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
3.4 KiB

  1. package asn
  2. import (
  3. "fmt"
  4. "github.com/go-xorm/xorm"
  5. "github.com/robfig/cron/v3"
  6. "leit.com/leit_seat_aps/common"
  7. "leit.com/leit_seat_aps/config"
  8. "leit.com/leit_seat_aps/db"
  9. "leit.com/leit_seat_aps/service"
  10. "testing"
  11. )
  12. func TestRecieveAsn(t *testing.T) {
  13. var (
  14. asnfile string
  15. asn ASN
  16. err error
  17. )
  18. asn = ASN{}
  19. asnfile = "C:\\MES\\LAPP_SEAT\\Documents\\Grammer\\grammer-to-SJA\\D0314.046562760-00000.edi"
  20. if err = ParseGrammerAsn(asnfile, &asn); err != nil {
  21. t.Errorf("解析ASN失败:%v", err)
  22. return
  23. }
  24. PrintGrammerAsn(&asn)
  25. return
  26. }
  27. func TestLoadAsnToLandingData(t *testing.T) {
  28. var (
  29. connstring string
  30. asnfile string
  31. ald AsnLandData
  32. err error
  33. )
  34. connstring = fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s;port=%d;encrypt=disable",
  35. `DESKTOP-S4G95G5\\MLINK`, "lapp", "123fis", "LAPP_JITS", 1433)
  36. if err = db.InitMssqlDb(connstring); err != nil {
  37. t.Errorf("连接数据库失败,原因:%v", err)
  38. return
  39. }
  40. defer db.G_DbEngine.Close()
  41. asnfile = "C:\\MES\\LAPP_SEAT\\Documents\\Grammer\\grammer-to-SJA\\D0314.046562760-00000.edi"
  42. ald = AsnLandData{}
  43. if err = ald.ReadAsnData(asnfile); err != nil {
  44. t.Errorf("读取ASN失败:%v", err)
  45. return
  46. }
  47. if err = ald.SaveAsnData(); err != nil {
  48. t.Errorf("保存ASN失败:%v", err)
  49. return
  50. }
  51. return
  52. }
  53. // 基于ASN数据更新对应生产订单
  54. func TestParseAsnLandingData(t *testing.T) {
  55. var (
  56. connstring string
  57. asnheadtab db.Jit_asnhead_landing
  58. asnheadtablst []db.Jit_asnhead_landing
  59. i int
  60. session *xorm.Session
  61. bt service.BL_Tier2ASN
  62. err error
  63. )
  64. connstring = fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s;port=%d;encrypt=disable",
  65. `DESKTOP-S4G95G5\\MLINK`, "lapp", "123fis", "LAPP_JITS", 1433)
  66. if err = db.InitMssqlDb(connstring); err != nil {
  67. t.Errorf("连接数据库失败,原因:%v", err)
  68. return
  69. }
  70. defer db.G_DbEngine.Close()
  71. // 获取未解析的ASN数据
  72. asnheadtab = db.Jit_asnhead_landing{}
  73. if asnheadtablst, err = asnheadtab.GetUnparsedAsnLandingData(); err != nil {
  74. t.Errorf("获取ASN解析数据失败,原因:%v", err)
  75. return
  76. }
  77. // 基于ASN数据更新扶手相关订单状态
  78. for i = 0; i < len(asnheadtablst); i++ {
  79. session = db.G_DbEngine.NewSession()
  80. defer session.Close()
  81. if err = session.Begin(); err != nil {
  82. return
  83. }
  84. bt = service.BL_Tier2ASN{}
  85. bt.Asnheadtab = asnheadtablst[i]
  86. if err = bt.SortAsnByOrder(); err != nil {
  87. session.Rollback()
  88. session.Close()
  89. continue
  90. }
  91. if err = bt.CLoseTier2WorkOrder(); err != nil {
  92. session.Rollback()
  93. session.Close()
  94. continue
  95. }
  96. if err = bt.SetParsedStatus(); err != nil {
  97. session.Rollback()
  98. session.Close()
  99. continue
  100. }
  101. }
  102. return
  103. }
  104. //测试定时器
  105. func TestCron(t *testing.T){
  106. //加载配置
  107. path := common.EnsureDir("../config/config.yaml")
  108. fmt.Println(path)
  109. conf, err := config.ReadYamlConfig(path)
  110. if err != nil {
  111. t.Errorf("failed to read yaml config due to: %v", err)
  112. return
  113. }
  114. crontab := cron.New()
  115. task := func() {
  116. t.Log("11111")
  117. }
  118. fmt.Println(conf)
  119. // 添加定时任务, * * * * * 是 crontab,表示每分钟执行一次
  120. //crontab.AddFunc("*/1 * * * *", task)
  121. fmt.Printf("Crontime:%s",conf.Crontime)
  122. crontab.AddFunc(conf.Crontime, task)
  123. // 启动定时器
  124. crontab.Start()
  125. // 定时任务是另起协程执行的,这里使用 select 简答阻塞.实际开发中需要
  126. // 根据实际情况进行控制
  127. select {}
  128. }