diff --git a/ews/ews.go b/ews/ews.go index 88cfe32..de62a04 100644 --- a/ews/ews.go +++ b/ews/ews.go @@ -22,8 +22,8 @@ type UutInfo struct { Message string PartNO string Model string - MfgMO string MfgSKU string + MfgMO string MfgLine string MfgStage string FirstAck string @@ -34,8 +34,8 @@ type UutInfo struct { type ReportInfo struct { USN string PartNO string + MfgSKU string MfgMO string - SKU string Line string Location string Item string @@ -70,7 +70,7 @@ func (e *EWS) RecordIssue(cfg cnf.Cfg, logger *log.Logger, host string, addr str stmt, err := dbo.Prepare( fmt.Sprintf(`INSERT INTO %s - (usn,mac,ipaddr,relay,partno,mo,sku,line,stage,item,status,message,first_ack,last_change,locline,loccol,locrow,locnum,loctime) + (usn,mac,ipaddr,relay,partno,sku,mo,line,stage,item,status,message,first_ack,last_change,locline,loccol,locrow,locnum,loctime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);`, cfg.MySQL.IssuesTable), ) @@ -88,8 +88,8 @@ func (e *EWS) RecordIssue(cfg cnf.Cfg, logger *log.Logger, host string, addr str addr, host, params["PARTNO"], - params["MO"], params["SKU"], + params["MO"], params["LINE"], params["STAGE"], params["ITEM"], @@ -173,7 +173,7 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri //如果在uutinfo表中未查找到此USN的记录, 则新增一条此USN的记录 if err == sql.ErrNoRows { dmlInsert := fmt.Sprintf(`INSERT INTO uutinfo - (usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change) + (usn,mac,ipaddr,relay,item,status,message,partno,sku,mo,line,stage,first_ack,last_ack,last_change) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s);`, params["USN"], params["MAC"], @@ -183,8 +183,8 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri params["STATUS"], params["MESSAGE"], params["PARTNO"], - params["MO"], params["SKU"], + params["MO"], params["LINE"], params["STAGE"], "NOW()", @@ -213,29 +213,27 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri //如果测试项不为空(第一个心跳包), 当部分客户端参数为空, 则保留uutinfo表中已存在记录的值 mac := params["MAC"] pn := params["PARTNO"] - mo := params["MO"] sku := params["SKU"] + mo := params["MO"] line := params["LINE"] stage := params["STAGE"] - if params["ITEM"] != "" { - if mac == "" { - mac = ui.MAC - } - if pn == "" { - pn = ui.PartNO - } - if mo == "" { - mo = ui.MfgMO - } - if sku == "" { - sku = ui.MfgSKU - } - if line == "" { - line = ui.MfgLine - } - if stage == "" { - stage = ui.MfgStage - } + if mac == "" { + mac = ui.MAC + } + if pn == "" { + pn = ui.PartNO + } + if sku == "" { + sku = ui.MfgSKU + } + if mo == "" { + mo = ui.MfgMO + } + if line == "" { + line = ui.MfgLine + } + if stage == "" { + stage = ui.MfgStage } //如果此USN的记录存在于uutinfo表中, 且此USN的Relay/MAC/Item/Status/Message已变化, 则: @@ -278,7 +276,7 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri return rst } - stmt, err := tx.Prepare("INSERT INTO uutinfobkup (usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);") + stmt, err := tx.Prepare("INSERT INTO uutinfobkup (usn,mac,ipaddr,relay,item,status,message,partno,sku,mo,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);") if err != nil { tx.Rollback() logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error()) @@ -296,8 +294,8 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri ui.Status, ui.Message, ui.PartNO, - ui.MfgMO, ui.MfgSKU, + ui.MfgMO, ui.MfgLine, ui.MfgStage, ui.FirstAck, @@ -330,7 +328,7 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri return rst } - stmt, err = tx.Prepare("INSERT INTO uutinfo (usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),NOW());") + stmt, err = tx.Prepare("INSERT INTO uutinfo (usn,mac,ipaddr,relay,item,status,message,partno,sku,mo,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),NOW());") if err != nil { tx.Rollback() logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error()) @@ -347,8 +345,8 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri params["STATUS"], params["MESSAGE"], pn, - mo, sku, + mo, line, stage, ui.FirstAck, @@ -413,7 +411,7 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri return rst } - stmt, err = txu.Prepare("INSERT INTO uutinfo (usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),?);") + stmt, err = txu.Prepare("INSERT INTO uutinfo (usn,mac,ipaddr,relay,item,status,message,partno,sku,mo,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),?);") if err != nil { txu.Rollback() logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error()) @@ -430,8 +428,8 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri ui.Status, ui.Message, pn, - mo, sku, + mo, line, stage, ui.FirstAck, @@ -512,8 +510,8 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri t1.message, t1.partno, IFNULL(t2.model, '') AS model, - t1.mo, t1.sku, + t1.mo, t1.line, t1.stage, t1.first_ack, @@ -542,8 +540,8 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri &ul.Message, &ul.PartNO, &ul.Model, - &ul.MfgMO, &ul.MfgSKU, + &ul.MfgMO, &ul.MfgLine, &ul.MfgStage, &ul.FirstAck, @@ -564,7 +562,11 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri %s %s %s - %s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n") + %s + %s + %s + %s + %s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.MfgSKU, ul.MfgMO, ul.MfgLine, ul.MfgStage, ul.LastChg, "\r\n") } else { last = last + fmt.Sprintf(` %s @@ -575,7 +577,11 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri %s %s %s - %s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n") + %s + %s + %s + %s + %s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.MfgSKU, ul.MfgMO, ul.MfgLine, ul.MfgStage, ul.LastChg, "\r\n") } if ul.Model != "" { @@ -584,12 +590,12 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri if ul.PartNO != "" { partNO = ul.PartNO } - if ul.MfgMO != "" { - mfgMO = ul.MfgMO - } if ul.MfgSKU != "" { mfgSKU = ul.MfgSKU } + if ul.MfgMO != "" { + mfgMO = ul.MfgMO + } if ul.FirstAck != "" { fstAck = ul.FirstAck } @@ -612,8 +618,8 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri t1.message, t1.partno, IFNULL(t2.model, '') AS model, - t1.mo, t1.sku, + t1.mo, t1.line, t1.stage, t1.first_ack, @@ -642,8 +648,8 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri &uh.Message, &uh.PartNO, &uh.Model, - &uh.MfgMO, &uh.MfgSKU, + &uh.MfgMO, &uh.MfgLine, &uh.MfgStage, &uh.FirstAck, @@ -663,11 +669,15 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri %s %s %s + %s + %s + %s + %s %s`, - uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n") + uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.MfgSKU, uh.MfgMO, uh.MfgLine, uh.MfgStage, uh.LastChg, "\r\n") } else { - bkup = bkup + fmt.Sprintf(`%s%s%s%s%s%s%s%s%s`, - uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n") + bkup = bkup + fmt.Sprintf(`%s%s%s%s%s%s%s%s%s%s%s%s%s`, + uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.MfgSKU, uh.MfgMO, uh.MfgLine, uh.MfgStage, uh.LastChg, "\r\n") } } @@ -702,12 +712,12 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri if partNO == "" { partNO = uh.PartNO } - if mfgMO == "" { - mfgMO = uh.MfgMO - } if mfgSKU == "" { mfgSKU = uh.MfgSKU } + if mfgMO == "" { + mfgMO = uh.MfgMO + } if fstAck == "" { fstAck = uh.FirstAck } @@ -754,7 +764,7 @@ func (e *EWS) GetIssueReport(cfg cnf.Cfg, logger *log.Logger, host string, addr ri := new(ReportInfo) defect := "" rows, err := dbo.Query(fmt.Sprintf( - `SELECT usn,partno,mo,sku,line,location,item,status,message,first_ack,last_ack,last_change,diffmins + `SELECT usn,partno,sku,mo,line,location,item,status,message,first_ack,last_ack,last_change,diffmins FROM %s ORDER BY diffmins ASC;`, cfg.MySQL.IssuesView)) if err != nil { @@ -770,8 +780,8 @@ func (e *EWS) GetIssueReport(cfg cnf.Cfg, logger *log.Logger, host string, addr err := rows.Scan( &ri.USN, &ri.PartNO, + &ri.MfgSKU, &ri.MfgMO, - &ri.SKU, &ri.Line, &ri.Location, &ri.Item, @@ -786,7 +796,7 @@ func (e *EWS) GetIssueReport(cfg cnf.Cfg, logger *log.Logger, host string, addr break } temp := fmt.Sprintf(`%d%s%s%s%s%s%s%s%s%s%s%s%s%s%s`, - num, ri.USN, ri.PartNO, ri.MfgMO, ri.SKU, ri.Line, ri.Location, ri.Item, ri.Status, ri.Message, ri.FirstAck, ri.LastAck, ri.LastChg, ri.DiffMins, "\r\n") + num, ri.USN, ri.PartNO, ri.MfgSKU, ri.MfgMO, ri.Line, ri.Location, ri.Item, ri.Status, ri.Message, ri.FirstAck, ri.LastAck, ri.LastChg, ri.DiffMins, "\r\n") defect = defect + temp num += 1 } @@ -825,7 +835,7 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add ri := new(ReportInfo) offline := "" rows, err := dbo.Query(fmt.Sprintf( - `SELECT usn,partno,mo,sku,line,location,item,status,message,first_ack,last_ack,last_change,diffmins + `SELECT usn,partno,sku,mo,line,location,item,status,message,first_ack,last_ack,last_change,diffmins FROM %s ORDER BY diffmins DESC;`, cfg.MySQL.OfflineView)) if err != nil { @@ -841,8 +851,8 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add err := rows.Scan( &ri.USN, &ri.PartNO, + &ri.MfgSKU, &ri.MfgMO, - &ri.SKU, &ri.Line, &ri.Location, &ri.Item, @@ -857,7 +867,7 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add break } temp := fmt.Sprintf(`%d%s%s%s%s%s%s%s%s%s%s%s%s%s%s`, - num, ri.USN, ri.PartNO, ri.MfgMO, ri.SKU, ri.Line, ri.Location, ri.Item, ri.Status, ri.Message, ri.FirstAck, ri.LastAck, ri.LastChg, ri.DiffMins, "\r\n") + num, ri.USN, ri.PartNO, ri.MfgSKU, ri.MfgMO, ri.Line, ri.Location, ri.Item, ri.Status, ri.Message, ri.FirstAck, ri.LastAck, ri.LastChg, ri.DiffMins, "\r\n") offline = offline + temp num += 1 } @@ -961,6 +971,10 @@ func (e *EWS) TemplateUutInfo(loc, locTime, misc, last, bkup string) string { Test Item Status Message + SKU + MO + Line + Stage Last Change %s @@ -1017,8 +1031,8 @@ func (e *EWS) TemplateDefectInfo(src string) string { NO. USN PartNO. - MO SKU + MO Line Location Item