数据分析平台 定期检查记录抓取
This commit is contained in:
parent
dcfe86989d
commit
cf166c9d8e
@ -30,6 +30,21 @@ func InitCronListCron() {
|
||||
c.Start()
|
||||
}
|
||||
|
||||
func InitCronCheckListCron() {
|
||||
c := cron.New(cron.WithChain(cron.SkipIfStillRunning(cron.DefaultLogger)))
|
||||
//_, err := c.AddFunc("0 */1 * * *", func() {
|
||||
_, err := c.AddFunc("0 0 */1 * *", func() {
|
||||
fmt.Println(carbon.Now().Format("Y-m-d H:i:s") + "CronCheckListCron start")
|
||||
test_data.CronCheckCPList()
|
||||
fmt.Println(carbon.Now().Format("Y-m-d H:i:s") + "CronCheckListCron finish")
|
||||
})
|
||||
if err != nil {
|
||||
global.Log.Errorf("InitCronCheckListCron AddFunc error: %s", err)
|
||||
log.Fatalln(err)
|
||||
}
|
||||
c.Start()
|
||||
}
|
||||
|
||||
func InitEmailCron() {
|
||||
c := cron.New(cron.WithChain(cron.SkipIfStillRunning(cron.DefaultLogger)))
|
||||
//_, err := c.AddFunc("0 */1 * * *", func() {
|
||||
|
@ -679,8 +679,8 @@ func CronBPList() {
|
||||
}
|
||||
|
||||
func CronCPList() {
|
||||
var oldTcSfcFile []*model.TcSfcFile
|
||||
var cpListIDs []string
|
||||
var oldTcSfcFile []*model.TcSfcFile
|
||||
global.PostGreSQL.Model(&model.CPList{}).Where("status = ?", "未结案").
|
||||
Select("pbi").Group("pbi").Find(&cpListIDs)
|
||||
_ = global.Oracle.Transaction(func(tx *gorm.DB) error {
|
||||
@ -867,6 +867,92 @@ func CronCPList() {
|
||||
}
|
||||
}
|
||||
|
||||
func CronCheckCPList() {
|
||||
var cpListIDs []string
|
||||
var oldTcSfcFile []*model.TcSfcFile
|
||||
global.PostGreSQL.Model(&model.CPList{}).Where("status = ? AND online_quantity != ?", "结案", 0).
|
||||
Select("pbi").Group("pbi").Find(&cpListIDs)
|
||||
_ = global.Oracle.Transaction(func(tx *gorm.DB) error {
|
||||
page := len(cpListIDs)/200 + 1
|
||||
for i := 0; i < page; i++ {
|
||||
var pageTcSfcFile []*model.TcSfcFile
|
||||
var s []string
|
||||
if i == page-1 {
|
||||
s = cpListIDs[i*200:]
|
||||
} else {
|
||||
s = cpListIDs[i*200 : (i+1)*200]
|
||||
}
|
||||
tx.Where("tc_sfc01 IN ? AND tc_sfc08 = ?", s, "CP").
|
||||
Preload("TcSfdFile", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Preload("SfbFile").Preload("ImaFile").Preload("TcImbFile").Preload("RvbFile", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Preload("IddFile").Preload("RvaFile")
|
||||
})
|
||||
}).Preload("TcSfeFile", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Preload("ImaFile")
|
||||
}).
|
||||
Preload("PmcFile").Find(&pageTcSfcFile)
|
||||
oldTcSfcFile = append(oldTcSfcFile, pageTcSfcFile...)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
for _, tcSfc := range oldTcSfcFile {
|
||||
for _, tcSfd := range tcSfc.TcSfdFile {
|
||||
if tcSfd.TcSfd13 == "" {
|
||||
continue
|
||||
}
|
||||
status := "未结案"
|
||||
if tcSfd.SfbFile.Sfb04 == "8" {
|
||||
status = "结案"
|
||||
} else if tcSfd.SfbFile.Sfb04 == "0" {
|
||||
continue
|
||||
}
|
||||
|
||||
var returnQuantity, dieQuantity float64
|
||||
orderDateStockMap := make(map[string][]float64)
|
||||
for _, rvb := range tcSfd.RvbFile {
|
||||
if _, ok := orderDateStockMap[rvb.RvaFile.Rva06.Format("2006-01-02")]; !ok {
|
||||
orderDateStockMap[rvb.RvaFile.Rva06.Format("2006-01-02")] = []float64{0, 0}
|
||||
}
|
||||
returnQuantity += rvb.Rvb30
|
||||
dieQuantity += rvb.Rvb85
|
||||
orderDateStockMap[rvb.RvaFile.Rva06.Format("2006-01-02")][0] += rvb.Rvb30
|
||||
orderDateStockMap[rvb.RvaFile.Rva06.Format("2006-01-02")][1] += rvb.Rvb85
|
||||
}
|
||||
var cpList *model.CPList
|
||||
global.PostGreSQL.Where("pbi = ? AND outsourcing_pbi = ?",
|
||||
tcSfc.TcSfc01, tcSfd.TcSfd13).Find(&cpList)
|
||||
global.PostGreSQL.Transaction(func(tx *gorm.DB) error {
|
||||
global.PostGreSQL.Model(&cpList).Where("pbi = ? AND outsourcing_pbi = ?",
|
||||
tcSfc.TcSfc01, tcSfd.TcSfd13).Updates(map[string]interface{}{
|
||||
"status": status,
|
||||
"online_quantity": tcSfd.TcSfd05 - returnQuantity,
|
||||
"return_quantity": returnQuantity,
|
||||
"die_quantity": dieQuantity,
|
||||
})
|
||||
for k, v := range orderDateStockMap {
|
||||
var cpListStock *model.CPListStock
|
||||
if errors.Is(global.PostGreSQL.Where("cp_list_id = ? AND return_date = ?", cpList.ID, k).
|
||||
First(&cpListStock).Error, gorm.ErrRecordNotFound) {
|
||||
global.PostGreSQL.Create(&model.CPListStock{
|
||||
CPListID: cpList.ID,
|
||||
ReturnDate: k,
|
||||
Quantity: v[0],
|
||||
DieQuantity: v[1],
|
||||
})
|
||||
} else {
|
||||
global.PostGreSQL.Model(&cpListStock).Where("cp_list_id = ? AND return_date = ?", cpList.ID, k).
|
||||
Updates(map[string]interface{}{
|
||||
"quantity": v[0],
|
||||
"die_quantity": v[1],
|
||||
})
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func CronFTList() {
|
||||
var oldTcSfcFile []*model.TcSfcFile
|
||||
var ftListIDs []string
|
||||
|
Loading…
Reference in New Issue
Block a user