test_data/repository/report_reader/ft_reader.go

621 lines
26 KiB
Go

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 != "" {
info["product"] = row[titleMap[finalReportExcel.Product]][:strings.Index(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
}