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 }