package asn import ( "fmt" "github.com/go-xorm/xorm" "github.com/robfig/cron/v3" "leit.com/leit_seat_aps/common" "leit.com/leit_seat_aps/config" "leit.com/leit_seat_aps/db" "leit.com/leit_seat_aps/service" "testing" ) func TestRecieveAsn(t *testing.T) { var ( asnfile string asn ASN err error ) asn = ASN{} asnfile = "C:\\MES\\LAPP_SEAT\\Documents\\Grammer\\grammer-to-SJA\\D0314.046562760-00000.edi" if err = ParseGrammerAsn(asnfile, &asn); err != nil { t.Errorf("解析ASN失败:%v", err) return } PrintGrammerAsn(&asn) return } func TestLoadAsnToLandingData(t *testing.T) { var ( connstring string asnfile string ald AsnLandData err error ) connstring = fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s;port=%d;encrypt=disable", `DESKTOP-S4G95G5\\MLINK`, "lapp", "123fis", "LAPP_JITS", 1433) if err = db.InitMssqlDb(connstring); err != nil { t.Errorf("连接数据库失败,原因:%v", err) return } defer db.G_DbEngine.Close() asnfile = "C:\\MES\\LAPP_SEAT\\Documents\\Grammer\\grammer-to-SJA\\D0314.046562760-00000.edi" ald = AsnLandData{} if err = ald.ReadAsnData(asnfile); err != nil { t.Errorf("读取ASN失败:%v", err) return } if err = ald.SaveAsnData(); err != nil { t.Errorf("保存ASN失败:%v", err) return } return } // 基于ASN数据更新对应生产订单 func TestParseAsnLandingData(t *testing.T) { var ( connstring string asnheadtab db.Jit_asnhead_landing asnheadtablst []db.Jit_asnhead_landing i int session *xorm.Session bt service.BL_Tier2ASN err error ) connstring = fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s;port=%d;encrypt=disable", `DESKTOP-S4G95G5\\MLINK`, "lapp", "123fis", "LAPP_JITS", 1433) if err = db.InitMssqlDb(connstring); err != nil { t.Errorf("连接数据库失败,原因:%v", err) return } defer db.G_DbEngine.Close() // 获取未解析的ASN数据 asnheadtab = db.Jit_asnhead_landing{} if asnheadtablst, err = asnheadtab.GetUnparsedAsnLandingData(); err != nil { t.Errorf("获取ASN解析数据失败,原因:%v", err) return } // 基于ASN数据更新扶手相关订单状态 for i = 0; i < len(asnheadtablst); i++ { session = db.G_DbEngine.NewSession() defer session.Close() if err = session.Begin(); err != nil { return } bt = service.BL_Tier2ASN{} bt.Asnheadtab = asnheadtablst[i] if err = bt.SortAsnByOrder(); err != nil { session.Rollback() session.Close() continue } if err = bt.CLoseTier2WorkOrder(); err != nil { session.Rollback() session.Close() continue } if err = bt.SetParsedStatus(); err != nil { session.Rollback() session.Close() continue } } return } //测试定时器 func TestCron(t *testing.T){ //加载配置 path := common.EnsureDir("../config/config.yaml") fmt.Println(path) conf, err := config.ReadYamlConfig(path) if err != nil { t.Errorf("failed to read yaml config due to: %v", err) return } crontab := cron.New() task := func() { t.Log("11111") } fmt.Println(conf) // 添加定时任务, * * * * * 是 crontab,表示每分钟执行一次 //crontab.AddFunc("*/1 * * * *", task) fmt.Printf("Crontime:%s",conf.Crontime) crontab.AddFunc(conf.Crontime, task) // 启动定时器 crontab.Start() // 定时任务是另起协程执行的,这里使用 select 简答阻塞.实际开发中需要 // 根据实际情况进行控制 select {} }