|
|
@ -15,7 +15,8 @@ import ( |
|
|
|
type CustOrders struct { |
|
|
|
Projnr string //项目号
|
|
|
|
Custordernr string //客户订单号
|
|
|
|
Oemordernr string //oem订单号
|
|
|
|
Oemordernr string //Oemordernr订单号
|
|
|
|
Oemseq string //oem订单号
|
|
|
|
Finr int //工厂编号
|
|
|
|
} |
|
|
|
|
|
|
@ -64,6 +65,7 @@ func CustProduct(conf *config.EnvConfig) { |
|
|
|
//查询缓存记录表
|
|
|
|
cust, err := archive.SelectAll() |
|
|
|
if err != nil { |
|
|
|
glog.InfoExtln("调度生成终止", "cust is error:", err) |
|
|
|
glog.InfoExtln("调度生成终止", "cust is error!") |
|
|
|
return |
|
|
|
} |
|
|
@ -72,7 +74,8 @@ func CustProduct(conf *config.EnvConfig) { |
|
|
|
} |
|
|
|
e := db.G_DbEngine |
|
|
|
data := make([]CustOrders, 0) |
|
|
|
oemdata := make([]CustOrders, 0) |
|
|
|
oemdataG38 := make([]CustOrders, 0) |
|
|
|
oemdataG18 := make([]CustOrders, 0) |
|
|
|
oemdata1 := make([]CustOrders, 0) |
|
|
|
//获取七天前的字符串
|
|
|
|
if common.ValueIsEmpty(conf.Day) { |
|
|
@ -87,26 +90,35 @@ func CustProduct(conf *config.EnvConfig) { |
|
|
|
num = conf.Num |
|
|
|
} |
|
|
|
oneWeekStr := common.TimeFormat(oneWeek, "yyyyMMddHHmmss") |
|
|
|
//第一步:查询最近一千条的oemordernr
|
|
|
|
err = e.Table("pln_custorder").Join("INNER","pln_calloffdata_landing","pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").Select("pln_custorder.oemordernr").Where("pln_custorder.finr = ? and pln_custorder.status = ? and pln_calloffdata_landing.parsed = ?", db.G_FINR, common.CO_STATUS_CLOSED,1).Asc("pln_custorder.credatuz").Limit(num).Find(&oemdata) |
|
|
|
//第一步:查询最近一千条的oemseq;预留G38
|
|
|
|
err = e.Table("pln_custorder").Distinct("pln_custorder.oemseq").Join("INNER", "pln_calloffdata_landing", "pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").Select("pln_custorder.oemseq").Where("pln_custorder.finr = ? and pln_custorder.status = ? and pln_calloffdata_landing.parsed = ? and pln_custorder.projnr = ?", db.G_FINR, common.CO_STATUS_CLOSED, 1,"G38").Asc("pln_custorder.oemseq").Limit(num).Find(&oemdataG38) |
|
|
|
if err != nil { |
|
|
|
glog.InfoExtln("调度生成终止", "err : ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
for _, v := range oemdata { |
|
|
|
oemorders = append(oemorders, v.Oemordernr) |
|
|
|
for _, v := range oemdataG38 { |
|
|
|
oemorders = append(oemorders, v.Oemseq) |
|
|
|
} |
|
|
|
//第二步:查询出小于80状态的oemordernr集合
|
|
|
|
err = e.Table("pln_custorder").Join("INNER","pln_calloffdata_landing","pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").Select("pln_custorder.oemordernr").Where("pln_custorder.finr = ? and pln_custorder.status < ? and pln_calloffdata_landing.parsed = ?", db.G_FINR, common.CO_STATUS_CLOSED,1).Asc("pln_custorder.credatuz").Find(&oemdata1) |
|
|
|
//第一步:查询最近一千条的oemseq;预留G18
|
|
|
|
err = e.Table("pln_custorder").Distinct("pln_custorder.oemseq").Join("INNER", "pln_calloffdata_landing", "pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").Select("pln_custorder.oemseq").Where("pln_custorder.finr = ? and pln_custorder.status = ? and pln_calloffdata_landing.parsed = ? and pln_custorder.projnr = ?", db.G_FINR, common.CO_STATUS_CLOSED, 1,"G18").Asc("pln_custorder.oemseq").Limit(num).Find(&oemdataG18) |
|
|
|
if err != nil { |
|
|
|
glog.InfoExtln("调度生成终止", "err : ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
for _, v := range oemdataG18 { |
|
|
|
oemorders = append(oemorders, v.Oemseq) |
|
|
|
} |
|
|
|
//第二步:查询出小于80状态的oemordernr集合(因为oemseq是一对多,有80的也有20的)
|
|
|
|
err = e.Table("pln_custorder").Distinct("pln_custorder.oemseq").Join("INNER", "pln_calloffdata_landing", "pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").Select("pln_custorder.oemseq").Where("pln_custorder.finr = ? and pln_custorder.status < ? and pln_calloffdata_landing.parsed = ?", db.G_FINR, common.CO_STATUS_CLOSED, 1).Asc("pln_custorder.oemseq").Find(&oemdata1) |
|
|
|
if err != nil { |
|
|
|
glog.InfoExtln("调度生成终止", "err : ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
for _, v := range oemdata1 { |
|
|
|
oemorders = append(oemorders, v.Oemordernr) |
|
|
|
oemorders = append(oemorders, v.Oemseq) |
|
|
|
} |
|
|
|
//状态必须都是80,时间是14天以前的客户订单(并且预留1000个oemorder订单)
|
|
|
|
err = e.Table("pln_custorder").Join("INNER","pln_calloffdata_landing","pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").NotIn("pln_custorder.oemordernr", oemorders).NotIn("pln_custorder.custordernr", custorders).Where("pln_custorder.status = ? and pln_custorder.credatuz <= ? and pln_calloffdata_landing.parsed = ?", common.CO_STATUS_CLOSED, oneWeekStr,1).Desc("pln_custorder.credatuz").Limit(10).Find(&data) |
|
|
|
//状态必须都是80,时间是14天以前的客户订单(并且预留1000个oemseq订单)
|
|
|
|
err = e.Table("pln_custorder").Join("INNER", "pln_calloffdata_landing", "pln_calloffdata_landing.finr = pln_custorder.finr and pln_calloffdata_landing.calloffnr = pln_custorder.calloffnr").NotIn("pln_custorder.oemordernr", oemorders).NotIn("pln_custorder.custordernr", custorders).Where("pln_custorder.status = ? and pln_custorder.credatuz <= ? and pln_calloffdata_landing.parsed = ?", common.CO_STATUS_CLOSED, oneWeekStr, 1).Desc("pln_custorder.oemseq").Limit(10).Find(&data) |
|
|
|
if err != nil { |
|
|
|
glog.InfoExtln("调度生成终止", "err : ", err) |
|
|
|
return |
|
|
|