test_data/repository/report_reader/ft_reader.go

626 lines
26 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package report_reader
import (
"errors"
"github.com/xuri/excelize/v2"
"gorm.io/gorm"
"path"
"strings"
"testData/global"
"testData/model"
"testData/utils"
)
func FTSMCReportReader(filePath string) {
f, _ := excelize.OpenFile(filePath)
sheetName := f.GetSheetName(0)
rows, _ := f.GetRows(sheetName)
titleMap := make(map[string]int)
var pmc *model.PmcFile
global.Oracle.Where("pmc03 LIKE ?", "%赛美科%").Find(&pmc)
var finalReportExcel *model.FinalReportExcel
global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
for rowIndex, row := range rows {
if rowIndex == 0 {
continue
} else if rowIndex == 1 {
for i := 0; i < len(row); i++ {
row[i] = strings.ReplaceAll(row[i], " ", "")
row[i] = strings.ReplaceAll(row[i], "\n", "")
titleMap[row[i]] = i
}
} else {
var report *model.FinalReport
info := make(map[string]string)
FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
"FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
global.PostGreSQL.Create(&model.FinalReport{
Step: "FT",
Product: info["product"],
Lot: info["lot"],
Factory: pmc.Pmc03,
TestProgram: info["test_program"],
PBI: info["pbi"],
SubBatch: info["sub_batch"],
ReportTestQuantity: info["report_test_quantity"],
ReportPassQuantity: info["report_pass_quantity"],
ReportPassProbability: info["report_pass_probability"],
Bin2: info["bin2"],
Bin3: info["bin3"],
Bin4: info["bin4"],
Bin5: info["bin5"],
Bin6: info["bin6"],
Bin7: info["bin7"],
Bin8: info["bin8"],
Bin9: info["bin9"],
Bin10: info["bin10"],
OutlookFail: info["outlook_fail"],
Other: info["other"],
BentStitch: info["bent_stitch"],
Scrapped: info["scrapped"],
})
} else {
global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
"pbi": info["pbi"],
"sub_batch": info["sub_batch"],
"report_test_quantity": info["report_test_quantity"],
"report_pass_quantity": info["report_pass_quantity"],
"report_pass_probability": info["report_pass_probability"],
"bin2": info["bin2"],
"bin3": info["bin3"],
"bin4": info["bin4"],
"bin5": info["bin5"],
"bin6": info["bin6"],
"bin7": info["bin7"],
"bin8": info["bin8"],
"bin9": info["bin9"],
"bin10": info["bin10"],
"outlook_fail": info["outlook_fail"],
"other": info["other"],
"bent_stitch": info["bent_stitch"],
"scrapped": info["scrapped"],
})
}
}
}
}
//func FTSMCReportReader(filePath string) {
// f, _ := excelize.OpenFile(filePath)
// sheetName := f.GetSheetName(1)
// //sheetName := "FT0801 test Yield(2024.03)"
// rows, _ := f.GetRows(sheetName)
// titleMap := make(map[string]int)
// var pmc *model.PmcFile
// global.Oracle.Where("pmc03 LIKE ?", "%赛美科%").Find(&pmc)
// var finalReportExcel *model.FinalReportExcel
// global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
// for rowIndex, row := range rows {
// if rowIndex == 0 {
// continue
// } else if rowIndex == 1 {
// for i := 0; i < len(row); i++ {
// row[i] = strings.ReplaceAll(row[i], " ", "")
// row[i] = strings.ReplaceAll(row[i], "\n", "")
// titleMap[row[i]] = i
// }
// } else {
// var report *model.FinalReport
//
// info := make(map[string]string)
// FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
//
// if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
// "FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
// row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
// global.PostGreSQL.Create(&model.FinalReport{
// Step: "FT",
// Product: info["product"],
// Lot: info["lot"],
// Factory: pmc.Pmc03,
// TestProgram: info["test_program"],
// PBI: info["pbi"],
// SubBatch: info["sub_batch"],
// ReportTestQuantity: info["report_test_quantity"],
// ReportPassQuantity: info["report_pass_quantity"],
// ReportPassProbability: info["report_pass_probability"],
// Bin2: info["bin2"],
// Bin3: info["bin3"],
// Bin4: info["bin4"],
// Bin5: info["bin5"],
// Bin6: info["bin6"],
// Bin7: info["bin7"],
// Bin8: info["bin8"],
// Bin9: info["bin9"],
// Bin10: info["bin10"],
// OutlookFail: info["outlook_fail"],
// Other: info["other"],
// BentStitch: info["bent_stitch"],
// Scrapped: info["scrapped"],
// })
// } else {
// global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
// "pbi": info["pbi"],
// "sub_batch": info["sub_batch"],
// "report_test_quantity": info["report_test_quantity"],
// "report_pass_quantity": info["report_pass_quantity"],
// "report_pass_probability": info["report_pass_probability"],
// "bin2": info["bin2"],
// "bin3": info["bin3"],
// "bin4": info["bin4"],
// "bin5": info["bin5"],
// "bin6": info["bin6"],
// "bin7": info["bin7"],
// "bin8": info["bin8"],
// "bin9": info["bin9"],
// "bin10": info["bin10"],
// "outlook_fail": info["outlook_fail"],
// "other": info["other"],
// "bent_stitch": info["bent_stitch"],
// "scrapped": info["scrapped"],
// })
// }
// }
// }
//}
func FTSuQianChangDianReportReader(filePath string) {
if path.Ext(filePath) == ".xls" {
utils.ToXlsx("xls", filePath)
filePath += ".xlsx"
}
f, _ := excelize.OpenFile(filePath)
sheetName := f.GetSheetName(0)
rows, _ := f.GetRows(sheetName)
titleMap := make(map[string]int)
var pmc *model.PmcFile
global.Oracle.Where("pmc03 LIKE ?", "%江苏长电%").Find(&pmc)
var finalReportExcel *model.FinalReportExcel
global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
for rowIndex, row := range rows {
if rowIndex == 0 {
for i := 0; i < len(row); i++ {
row[i] = strings.ReplaceAll(row[i], " ", "")
row[i] = strings.ReplaceAll(row[i], "\n", "")
titleMap[row[i]] = i
}
} else {
var report *model.Report
info := make(map[string]string)
FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
"FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
global.PostGreSQL.Create(&model.FinalReport{
Step: "FT",
Product: info["product"],
Lot: info["lot"],
Factory: pmc.Pmc03,
TestProgram: info["test_program"],
PBI: info["pbi"],
SubBatch: info["sub_batch"],
ReportTestQuantity: info["report_test_quantity"],
ReportPassQuantity: info["report_pass_quantity"],
ReportPassProbability: info["report_pass_probability"],
Bin2: info["bin2"],
Bin3: info["bin3"],
Bin4: info["bin4"],
Bin5: info["bin5"],
Bin6: info["bin6"],
Bin7: info["bin7"],
Bin8: info["bin8"],
Bin9: info["bin9"],
Bin10: info["bin10"],
OutlookFail: info["outlook_fail"],
Other: info["other"],
BentStitch: info["bent_stitch"],
Scrapped: info["scrapped"],
})
} else {
global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
"pbi": info["pbi"],
"sub_batch": info["sub_batch"],
"report_test_quantity": info["report_test_quantity"],
"report_pass_quantity": info["report_pass_quantity"],
"report_pass_probability": info["report_pass_probability"],
"bin2": info["bin2"],
"bin3": info["bin3"],
"bin4": info["bin4"],
"bin5": info["bin5"],
"bin6": info["bin6"],
"bin7": info["bin7"],
"bin8": info["bin8"],
"bin9": info["bin9"],
"bin10": info["bin10"],
"outlook_fail": info["outlook_fail"],
"other": info["other"],
"bent_stitch": info["bent_stitch"],
"scrapped": info["scrapped"],
})
}
}
}
f.Close()
}
func FTQiPaiReportReader(filePath string) {
f, _ := excelize.OpenFile(filePath)
sheetName := f.GetSheetName(0)
rows, _ := f.GetRows(sheetName)
titleMap := make(map[string]int)
var finalReportExcel *model.FinalReportExcel
var pmc *model.PmcFile
global.Oracle.Where("pmc03 LIKE ?", "%气派%").Find(&pmc)
global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
for rowIndex, row := range rows {
if rowIndex == 0 {
for i := 0; i < len(row); i++ {
row[i] = strings.ReplaceAll(row[i], " ", "")
row[i] = strings.ReplaceAll(row[i], "\n", "")
titleMap[row[i]] = i
}
} else {
var report *model.FinalReport
info := make(map[string]string)
FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
"FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
global.PostGreSQL.Create(&model.FinalReport{
Step: "FT",
Product: row[titleMap[finalReportExcel.Product]],
Lot: row[titleMap[finalReportExcel.Lot]],
Factory: pmc.Pmc03,
TestProgram: row[titleMap[finalReportExcel.TestProgram]],
PBI: row[titleMap[finalReportExcel.PBI]],
SubBatch: row[titleMap[finalReportExcel.SubBatch]],
ReportTestQuantity: row[titleMap[finalReportExcel.FinalTestQuantity]],
ReportPassQuantity: row[titleMap[finalReportExcel.FinalPassQuantity]],
ReportPassProbability: row[titleMap[finalReportExcel.FinalPassProbability]],
Bin2: row[titleMap[finalReportExcel.Bin2]],
Bin3: row[titleMap[finalReportExcel.Bin3]],
Bin4: row[titleMap[finalReportExcel.Bin4]],
Bin5: row[titleMap[finalReportExcel.Bin5]],
Bin6: row[titleMap[finalReportExcel.Bin6]],
Bin7: row[titleMap[finalReportExcel.Bin7]],
Bin8: row[titleMap[finalReportExcel.Bin8]],
Bin9: row[titleMap[finalReportExcel.Bin9]],
Bin10: row[titleMap[finalReportExcel.Bin10]],
OutlookFail: row[titleMap[finalReportExcel.OutlookFail]],
Other: row[titleMap[finalReportExcel.Other]],
BentStitch: row[titleMap[finalReportExcel.BentStitch]],
Scrapped: row[titleMap[finalReportExcel.Scrapped]],
})
} else {
global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
"pbi": row[titleMap[finalReportExcel.PBI]],
"sub_batch": row[titleMap[finalReportExcel.SubBatch]],
"report_test_quantity": row[titleMap[finalReportExcel.FinalTestQuantity]],
"report_pass_quantity": row[titleMap[finalReportExcel.FinalPassQuantity]],
"report_pass_probability": row[titleMap[finalReportExcel.FinalPassProbability]],
"bin2": row[titleMap[finalReportExcel.Bin2]],
"bin3": row[titleMap[finalReportExcel.Bin3]],
"bin4": row[titleMap[finalReportExcel.Bin4]],
"bin5": row[titleMap[finalReportExcel.Bin5]],
"bin6": row[titleMap[finalReportExcel.Bin6]],
"bin7": row[titleMap[finalReportExcel.Bin7]],
"bin8": row[titleMap[finalReportExcel.Bin8]],
"bin9": row[titleMap[finalReportExcel.Bin9]],
"bin10": row[titleMap[finalReportExcel.Bin10]],
"outlook_fail": row[titleMap[finalReportExcel.OutlookFail]],
"other": row[titleMap[finalReportExcel.Other]],
"bent_stitch": row[titleMap[finalReportExcel.BentStitch]],
"scrapped": row[titleMap[finalReportExcel.Scrapped]],
})
}
}
}
f.Close()
}
func FTRuiSiReportReader(filePath string) {
f, _ := excelize.OpenFile(filePath)
sheetName := f.GetSheetName(0)
rows, _ := f.GetRows(sheetName)
titleMap := make(map[string]int)
var pmc *model.PmcFile
global.Oracle.Where("pmc03 LIKE ?", "%赛美科%").Find(&pmc)
var finalReportExcel *model.FinalReportExcel
global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
for rowIndex, row := range rows {
if rowIndex == 0 {
for i := 0; i < len(row); i++ {
row[i] = strings.ReplaceAll(row[i], " ", "")
row[i] = strings.ReplaceAll(row[i], "\n", "")
titleMap[row[i]] = i
}
} else {
if row[0] == "" {
break
}
var report *model.FinalReport
info := make(map[string]string)
FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
"FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
global.PostGreSQL.Create(&model.FinalReport{
Step: "FT",
Product: info["product"],
Lot: info["lot"],
Factory: pmc.Pmc03,
TestProgram: info["test_program"],
PBI: info["pbi"],
SubBatch: info["sub_batch"],
ReportTestQuantity: info["report_test_quantity"],
ReportPassQuantity: info["report_pass_quantity"],
ReportPassProbability: info["report_pass_probability"],
Bin2: info["bin2"],
Bin3: info["bin3"],
Bin4: info["bin4"],
Bin5: info["bin5"],
Bin6: info["bin6"],
Bin7: info["bin7"],
Bin8: info["bin8"],
Bin9: info["bin9"],
Bin10: info["bin10"],
OutlookFail: info["outlook_fail"],
Other: info["other"],
BentStitch: info["bent_stitch"],
Scrapped: info["scrapped"],
})
} else {
global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
"pbi": info["pbi"],
"sub_batch": info["sub_batch"],
"report_test_quantity": info["report_test_quantity"],
"report_pass_quantity": info["report_pass_quantity"],
"report_pass_probability": info["report_pass_probability"],
"bin2": info["bin2"],
"bin3": info["bin3"],
"bin4": info["bin4"],
"bin5": info["bin5"],
"bin6": info["bin6"],
"bin7": info["bin7"],
"bin8": info["bin8"],
"bin9": info["bin9"],
"bin10": info["bin10"],
"outlook_fail": info["outlook_fail"],
"other": info["other"],
"bent_stitch": info["bent_stitch"],
"scrapped": info["scrapped"],
})
}
}
}
f.Close()
}
func FTXinDeReportReader(filePath string) {
f, _ := excelize.OpenFile(filePath)
sheetName := f.GetSheetName(0)
rows, _ := f.GetRows(sheetName)
titleMap := make(map[string]int)
var pmc *model.PmcFile
global.Oracle.Where("pmc03 LIKE ?", "%芯德%").Find(&pmc)
var finalReportExcel *model.FinalReportExcel
global.PostGreSQL.Where("factory = ? AND step = ?", pmc.Pmc03, "FT").Find(&finalReportExcel)
for rowIndex, row := range rows {
if rowIndex == 0 {
for i := 0; i < len(row); i++ {
row[i] = strings.ReplaceAll(row[i], " ", "")
row[i] = strings.ReplaceAll(row[i], "\n", "")
titleMap[row[i]] = i
}
} else {
var report *model.FinalReport
info := make(map[string]string)
FTEmptyInfoHandler(titleMap, finalReportExcel, info, row)
if errors.Is(global.PostGreSQL.Where("step = ? AND product = ? AND lot = ? AND sub_batch = ?",
"FT", row[titleMap[finalReportExcel.Product]], row[titleMap[finalReportExcel.Lot]],
row[titleMap[finalReportExcel.SubBatch]]).First(&report).Error, gorm.ErrRecordNotFound) {
global.PostGreSQL.Create(&model.FinalReport{
Step: "FT",
Product: info["product"],
Lot: info["lot"],
Factory: pmc.Pmc03,
TestProgram: info["test_program"],
PBI: info["pbi"],
SubBatch: info["sub_batch"],
ReportTestQuantity: info["report_test_quantity"],
ReportPassQuantity: info["report_pass_quantity"],
ReportPassProbability: info["report_pass_probability"],
Bin2: info["bin2"],
Bin3: info["bin3"],
Bin4: info["bin4"],
Bin5: info["bin5"],
Bin6: info["bin6"],
Bin7: info["bin7"],
Bin8: info["bin8"],
Bin9: info["bin9"],
Bin10: info["bin10"],
OutlookFail: info["outlook_fail"],
Other: info["other"],
BentStitch: info["bent_stitch"],
Scrapped: info["scrapped"],
})
} else {
global.PostGreSQL.Model(&report).Updates(map[string]interface{}{
"pbi": info["pbi"],
"sub_batch": info["sub_batch"],
"report_test_quantity": info["report_test_quantity"],
"report_pass_quantity": info["report_pass_quantity"],
"report_pass_probability": info["report_pass_probability"],
"bin2": info["bin2"],
"bin3": info["bin3"],
"bin4": info["bin4"],
"bin5": info["bin5"],
"bin6": info["bin6"],
"bin7": info["bin7"],
"bin8": info["bin8"],
"bin9": info["bin9"],
"bin10": info["bin10"],
"outlook_fail": info["outlook_fail"],
"other": info["other"],
"bent_stitch": info["bent_stitch"],
"scrapped": info["scrapped"],
})
}
}
}
f.Close()
}
func FTEmptyInfoHandler(titleMap map[string]int, finalReportExcel *model.FinalReportExcel,
info map[string]string, row []string) map[string]string {
finalReportExcel.Product = strings.ReplaceAll(finalReportExcel.Product, " ", "")
if _, ok := titleMap[finalReportExcel.Product]; !ok {
info["product"] = ""
} else if finalReportExcel.Product != "" {
row[titleMap[finalReportExcel.Product]] = strings.ReplaceAll(row[titleMap[finalReportExcel.Product]], "", "(")
row[titleMap[finalReportExcel.Product]] = strings.ReplaceAll(row[titleMap[finalReportExcel.Product]], "", ")")
if strings.Contains(row[titleMap[finalReportExcel.Product]], "(") {
row[titleMap[finalReportExcel.Product]] = strings.Split(row[titleMap[finalReportExcel.Product]], "(")[0]
}
info["product"] = row[titleMap[finalReportExcel.Product]]
}
finalReportExcel.Lot = strings.ReplaceAll(finalReportExcel.Lot, " ", "")
if _, ok := titleMap[finalReportExcel.Lot]; !ok {
info["lot"] = ""
} else if finalReportExcel.Lot != "" {
if strings.Contains(row[titleMap[finalReportExcel.Lot]], "-") {
row[titleMap[finalReportExcel.Lot]] = strings.Split(row[titleMap[finalReportExcel.Lot]], "-")[0]
}
info["lot"] = row[titleMap[finalReportExcel.Lot]]
}
finalReportExcel.TestProgram = strings.ReplaceAll(finalReportExcel.TestProgram, " ", "")
if _, ok := titleMap[finalReportExcel.TestProgram]; !ok {
info["test_program"] = ""
} else if finalReportExcel.TestProgram != "" {
info["test_program"] = row[titleMap[finalReportExcel.TestProgram]]
}
finalReportExcel.PBI = strings.ReplaceAll(finalReportExcel.PBI, " ", "")
if _, ok := titleMap[finalReportExcel.PBI]; !ok {
info["pbi"] = ""
} else if finalReportExcel.PBI != "" {
info["pbi"] = row[titleMap[finalReportExcel.PBI]]
}
finalReportExcel.SubBatch = strings.ReplaceAll(finalReportExcel.SubBatch, " ", "")
if _, ok := titleMap[finalReportExcel.SubBatch]; !ok {
info["sub_batch"] = ""
} else if finalReportExcel.SubBatch != "" {
info["sub_batch"] = row[titleMap[finalReportExcel.SubBatch]]
}
finalReportExcel.FinalTestQuantity = strings.ReplaceAll(finalReportExcel.FinalTestQuantity, " ", "")
if _, ok := titleMap[finalReportExcel.FinalTestQuantity]; !ok {
info["report_test_quantity"] = ""
} else if finalReportExcel.FinalTestQuantity != "" {
info["report_test_quantity"] = row[titleMap[finalReportExcel.FinalTestQuantity]]
}
finalReportExcel.FinalPassQuantity = strings.ReplaceAll(finalReportExcel.FinalPassQuantity, " ", "")
if _, ok := titleMap[finalReportExcel.FinalPassQuantity]; !ok {
info["report_pass_quantity"] = ""
} else if finalReportExcel.FinalPassQuantity != "" {
info["report_pass_quantity"] = row[titleMap[finalReportExcel.FinalPassQuantity]]
}
finalReportExcel.FinalPassProbability = strings.ReplaceAll(finalReportExcel.FinalPassProbability, " ", "")
if _, ok := titleMap[finalReportExcel.FinalPassProbability]; !ok {
info["report_pass_probability"] = ""
} else if finalReportExcel.FinalPassProbability != "" {
info["report_pass_probability"] = row[titleMap[finalReportExcel.FinalPassProbability]]
}
finalReportExcel.Bin1 = strings.ReplaceAll(finalReportExcel.Bin1, " ", "")
if _, ok := titleMap[finalReportExcel.Bin1]; !ok {
info["bin1"] = ""
} else if finalReportExcel.Bin1 != "" {
info["bin1"] = row[titleMap[finalReportExcel.Bin1]]
}
finalReportExcel.Bin2 = strings.ReplaceAll(finalReportExcel.Bin2, " ", "")
if _, ok := titleMap[finalReportExcel.Bin2]; !ok {
info["bin2"] = ""
} else if finalReportExcel.Bin2 != "" {
info["bin2"] = row[titleMap[finalReportExcel.Bin2]]
}
finalReportExcel.Bin3 = strings.ReplaceAll(finalReportExcel.Bin3, " ", "")
if _, ok := titleMap[finalReportExcel.Bin3]; !ok {
info["bin3"] = ""
} else if finalReportExcel.Bin3 != "" {
info["bin3"] = row[titleMap[finalReportExcel.Bin3]]
}
finalReportExcel.Bin4 = strings.ReplaceAll(finalReportExcel.Bin4, " ", "")
if _, ok := titleMap[finalReportExcel.Bin4]; !ok {
info["bin4"] = ""
} else if finalReportExcel.Bin4 != "" {
info["bin4"] = row[titleMap[finalReportExcel.Bin4]]
}
finalReportExcel.Bin5 = strings.ReplaceAll(finalReportExcel.Bin5, " ", "")
if _, ok := titleMap[finalReportExcel.Bin5]; !ok {
info["bin5"] = ""
} else if finalReportExcel.Bin5 != "" {
info["bin5"] = row[titleMap[finalReportExcel.Bin5]]
}
finalReportExcel.Bin6 = strings.ReplaceAll(finalReportExcel.Bin6, " ", "")
if _, ok := titleMap[finalReportExcel.Bin6]; !ok {
info["bin6"] = ""
} else if finalReportExcel.Bin6 != "" {
info["bin6"] = row[titleMap[finalReportExcel.Bin6]]
}
finalReportExcel.Bin7 = strings.ReplaceAll(finalReportExcel.Bin7, " ", "")
if _, ok := titleMap[finalReportExcel.Bin7]; !ok {
info["bin7"] = ""
} else if finalReportExcel.Bin7 != "" {
info["bin7"] = row[titleMap[finalReportExcel.Bin7]]
}
finalReportExcel.Bin8 = strings.ReplaceAll(finalReportExcel.Bin8, " ", "")
if _, ok := titleMap[finalReportExcel.Bin8]; !ok {
info["bin8"] = ""
} else if finalReportExcel.Bin8 != "" {
info["bin8"] = row[titleMap[finalReportExcel.Bin8]]
}
finalReportExcel.Bin9 = strings.ReplaceAll(finalReportExcel.Bin9, " ", "")
if _, ok := titleMap[finalReportExcel.Bin9]; !ok {
info["bin9"] = ""
} else if finalReportExcel.Bin9 != "" {
info["bin9"] = row[titleMap[finalReportExcel.Bin9]]
}
finalReportExcel.Bin10 = strings.ReplaceAll(finalReportExcel.Bin10, " ", "")
if _, ok := titleMap[finalReportExcel.Bin10]; !ok {
info["bin10"] = ""
} else if finalReportExcel.Bin10 != "" {
info["bin10"] = row[titleMap[finalReportExcel.Bin10]]
}
finalReportExcel.OutlookFail = strings.ReplaceAll(finalReportExcel.OutlookFail, " ", "")
if _, ok := titleMap[finalReportExcel.OutlookFail]; !ok {
info["outlook_fail"] = ""
} else if finalReportExcel.OutlookFail != "" {
info["outlook_fail"] = row[titleMap[finalReportExcel.OutlookFail]]
}
finalReportExcel.Other = strings.ReplaceAll(finalReportExcel.Other, " ", "")
if _, ok := titleMap[finalReportExcel.Other]; !ok {
info["other"] = ""
} else if finalReportExcel.Other != "" {
info["other"] = row[titleMap[finalReportExcel.Other]]
}
finalReportExcel.BentStitch = strings.ReplaceAll(finalReportExcel.BentStitch, " ", "")
if _, ok := titleMap[finalReportExcel.BentStitch]; !ok {
info["bent_stitch"] = ""
} else if finalReportExcel.BentStitch != "" {
info["bent_stitch"] = row[titleMap[finalReportExcel.BentStitch]]
}
finalReportExcel.Scrapped = strings.ReplaceAll(finalReportExcel.Scrapped, " ", "")
if _, ok := titleMap[finalReportExcel.Scrapped]; !ok {
info["scrapped"] = ""
} else if finalReportExcel.Scrapped != "" {
info["scrapped"] = row[titleMap[finalReportExcel.Scrapped]]
}
return info
}