|
|
- 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 {}
- }
|