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