V0 MT737机台处理

This commit is contained in:
Simmons 2024-09-25 17:19:08 +08:00
parent e8ea1a8cb2
commit ebeb17d3ea

View File

@ -5,6 +5,7 @@ import (
"encoding/csv"
"encoding/json"
"errors"
"gitee.com/golang-module/carbon/v2"
"github.com/extrame/xls"
"github.com/xuri/excelize/v2"
"golang.org/x/text/encoding/simplifiedchinese"
@ -83,49 +84,74 @@ func MT737(summary, dataLog *model.FileText, step string) {
sBinMap := make(map[string]string)
sbinStartIndex, sbinEndIndex := -1, -1
for i := 1; i < len(summaryRows); i++ {
if summaryRows[i][0] == "" || strings.Contains(summaryRows[i][0], "----------------------") {
if summaryRows[i][0] == "" {
continue
}
if sbinEndIndex < 0 {
if strings.Contains(summaryRows[i][0], "SBin-HBin") {
if sbinStartIndex < 0 {
sbinStartIndex = i
}
s := summaryRows[i][0]
s = strings.ReplaceAll(s, " ", "")
sBinHBin := strings.Split(s, " ")
sBinHBinArray := strings.Split(sBinHBin[0], "-")
sBinMap[sBinHBinArray[0]] = sBinHBinArray[1]
} else {
if sbinStartIndex > 0 {
sbinEndIndex = i
continue
}
}
}
summaryRows[i][0] = strings.ReplaceAll(summaryRows[i][0], "", ":")
splitIndex := strings.Index(summaryRows[i][0], ":")
if splitIndex != -1 {
details[summaryRows[i][0][:splitIndex]] = summaryRows[i][0][splitIndex+1:]
}
summaryRows[i][0] = strings.ReplaceAll(summaryRows[i][0], ": ", ":")
//splitIndex := strings.Index(summaryRows[i][0], ":")
//if splitIndex != -1 {
// details[summaryRows[i][0][:splitIndex]] = summaryRows[i][0][splitIndex+1:]
//}
if strings.Contains(summaryRows[i][0], "Program:") {
startIndex := strings.Index(summaryRows[i][0], "Program:")
startIndex := strings.Index(summaryRows[i][0], "Program:") + 8
for endIndex := startIndex; endIndex < len(summaryRows[i][0]); endIndex++ {
if string(summaryRows[i][0][endIndex]) == " " {
details["Program"] = summaryRows[i][0][startIndex:endIndex]
if string(summaryRows[i][0][endIndex]) == " " || endIndex == len(summaryRows[i][0])-1 {
details["Program"] = summaryRows[i][0][startIndex : endIndex+1]
break
}
}
}
if strings.Contains(summaryRows[i][0], "Tester_NO:") {
startIndex := strings.Index(summaryRows[i][0], "Tester_NO:")
startIndex := strings.Index(summaryRows[i][0], "Tester_NO:") + 10
for endIndex := startIndex; endIndex < len(summaryRows[i][0]); endIndex++ {
if string(summaryRows[i][0][endIndex]) == " " {
details["Tester_NO"] = summaryRows[i][0][startIndex:endIndex]
if string(summaryRows[i][0][endIndex]) == " " || endIndex == len(summaryRows[i][0])-1 {
details["Tester_NO"] = summaryRows[i][0][startIndex : endIndex+1]
break
}
}
}
if strings.Contains(summaryRows[i][0], "Start:") {
startIndex := strings.Index(summaryRows[i][0], "Start:") + 6
for endIndex := startIndex; endIndex < len(summaryRows[i][0]); endIndex++ {
if endIndex == len(summaryRows[i][0])-1 || string(summaryRows[i][0][endIndex:endIndex+2]) == " " {
details["Start"] = carbon.Parse(summaryRows[i][0][startIndex:endIndex]).Format("Y-m-d H:i:s")
break
}
}
}
if strings.Contains(summaryRows[i][0], "End:") {
startIndex := strings.Index(summaryRows[i][0], "End:") + 4
for endIndex := startIndex; endIndex < len(summaryRows[i][0]); endIndex++ {
if endIndex == len(summaryRows[i][0])-1 || string(summaryRows[i][0][endIndex:endIndex+2]) == " " {
details["End"] = carbon.Parse(summaryRows[i][0][startIndex : endIndex+1]).Format("Y-m-d H:i:s")
break
}
}
}
if sbinEndIndex < 0 {
if strings.Contains(summaryRows[i][0], "SBin-HBin") {
if sbinStartIndex < 0 {
sbinStartIndex = i + 2
continue
}
}
if sbinStartIndex > 0 && i >= sbinStartIndex {
if strings.Contains(summaryRows[i][0], "---------------") {
sbinEndIndex = i
continue
}
index := strings.Index(summaryRows[i][0], "-")
endIndex := index + 2
for {
if string(summaryRows[i][0][endIndex]) == " " {
break
}
endIndex++
}
sBinMap[strings.ReplaceAll(summaryRows[i][0][:index], " ", "")] = strings.ReplaceAll(summaryRows[i][0][index+2:endIndex], " ", "")
}
}
}
if details["Test_Code"] == "" {
@ -245,7 +271,7 @@ func MT737(summary, dataLog *model.FileText, step string) {
if strings.Contains(dataLogRows[i][2], "TestItem") {
titleIndex = i
title = append(title, []string{"SITE_NUM", "PART_ID", "SOFT_BIN"}...)
title = append(title, dataLogRows[i][2:]...)
title = append(title, dataLogRows[i][3:]...)
continue
}
} else {
@ -278,8 +304,8 @@ func MT737(summary, dataLog *model.FileText, step string) {
}
}
if unitIndex > 0 { //dataIndex < 0 &&
if dataLogRows[i][0] != dataLogRows[i][1] {
dataIndex = i
if dataLogRows[i][1] == "X-Y" {
dataIndex = i + 1
break
}
}
@ -293,13 +319,14 @@ func MT737(summary, dataLog *model.FileText, step string) {
LimitU: dataLogRows[limitUIndex][k],
}
}
for i := 3; i < len(title); i++ {
for i := 3; i < len(title)-1; i++ {
paramsMap[title[i]] = dataLogRows[binIndex][i]
}
for i := dataIndex; i < len(dataLogRows); i++ {
if len(dataLogRows[i]) < len(dataLogRows[titleIndex]) {
dataLogRows[i] = append(dataLogRows[i], utils.FillData(len(dataLogRows[titleIndex])-len(dataLogRows[i]))...)
}
dataLogRows[i][0] = strings.ReplaceAll(dataLogRows[i][0], "Site", "")
newExcel = append(newExcel, dataLogRows[i])
}
} else {