60 lines
2.2 KiB
Go
60 lines
2.2 KiB
Go
package test_data
|
|
|
|
import (
|
|
"gitee.com/golang-module/carbon/v2"
|
|
"strings"
|
|
"testData/global"
|
|
"testData/model"
|
|
"testData/request"
|
|
)
|
|
|
|
func GetProductSelection(r *request.ProbabilitySelection) []string {
|
|
var products []string
|
|
global.PostGreSQL.Model(&model.Report{}).Where("step = ? AND created_at BETWEEN Date(?) AND Date(?)",
|
|
r.Step, r.StartDate, carbon.Parse(r.EndDate).AddDay().Format("Y-m-d")).Group("product").Select("product").Find(&products)
|
|
return products
|
|
}
|
|
|
|
func GetLotSelection(r *request.ProbabilitySelection) []string {
|
|
var lots []string
|
|
global.PostGreSQL.Model(&model.Report{}).Where("step = ? AND created_at BETWEEN Date(?) AND Date(?)",
|
|
r.Step, r.StartDate, carbon.Parse(r.EndDate).AddDay().Format("Y-m-d")).Group("lot").Select("lot").Find(&lots)
|
|
return lots
|
|
}
|
|
|
|
func GetProductSelectionByFinalReport(r *request.ProbabilitySelection) []string {
|
|
var products []string
|
|
r.StartDate = carbon.Now().SubYear().AddMonth().StartOfMonth().Format("Y-m-d")
|
|
r.EndDate = carbon.Now().AddMonth().StartOfMonth().Format("Y-m-d")
|
|
global.PostGreSQL.Model(&model.FinalReport{}).Where("step = ? AND created_at BETWEEN Date(?) AND Date(?)",
|
|
r.Step, r.StartDate, carbon.Parse(r.EndDate)).Group("product").Select("product").Find(&products)
|
|
productsMap := make(map[string]int)
|
|
for i := 0; i < len(products); i++ {
|
|
if strings.Contains(products[i], "-") {
|
|
products[i] = strings.Split(products[i], "-")[0]
|
|
}
|
|
if strings.Contains(products[i], "_") {
|
|
products[i] = strings.Split(products[i], "_")[0]
|
|
}
|
|
productsMap[products[i]] = 1
|
|
}
|
|
products = []string{}
|
|
for k := range productsMap {
|
|
products = append(products, k)
|
|
}
|
|
return products
|
|
}
|
|
|
|
func GetABFactorySelection(r *request.ProbabilitySelection) []string {
|
|
var sql string
|
|
if r.StartDate != "" && r.EndDate != "" {
|
|
sql += "tc_sfc02 BETWEEN DATE '" + r.StartDate + "' AND DATE '" + r.EndDate + "'"
|
|
}
|
|
var factoryCodes []string
|
|
global.Oracle.Model(&model.TcSfcFile{}).Where("tc_sfc08 LIKE ?", "%AB%").Where(sql).
|
|
Group("tc_sfc04").Select("tc_sfc04").Find(&factoryCodes)
|
|
var factories []string
|
|
global.Oracle.Model(&model.PmcFile{}).Where("pmc01 IN ?", factoryCodes).Select("pmc03").Find(&factories)
|
|
return factories
|
|
}
|