Merge branch 'master' of https://wh1t3.top:40443/r0n1n7an/apiserver
This commit is contained in:
commit
a380c5c41e
137
ews/ews.go
137
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()",
|
||||
@ -210,6 +210,32 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
return rst
|
||||
}
|
||||
|
||||
//如果测试项不为空(第一个心跳包), 当部分客户端参数为空, 则保留uutinfo表中已存在记录的值
|
||||
mac := params["MAC"]
|
||||
pn := params["PARTNO"]
|
||||
sku := params["SKU"]
|
||||
mo := params["MO"]
|
||||
line := params["LINE"]
|
||||
stage := params["STAGE"]
|
||||
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已变化, 则:
|
||||
//1. 备份此USN对应记录行到uutinfobkup表
|
||||
//2. 删除uutinfo表中对应USN的记录行
|
||||
@ -250,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())
|
||||
@ -262,14 +288,14 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
_, err = stmt.Exec(
|
||||
ui.USN,
|
||||
ui.MAC,
|
||||
addr,
|
||||
host,
|
||||
ui.IPAddr,
|
||||
ui.Relay,
|
||||
ui.Item,
|
||||
ui.Status,
|
||||
ui.Message,
|
||||
ui.PartNO,
|
||||
ui.MfgMO,
|
||||
ui.MfgSKU,
|
||||
ui.MfgMO,
|
||||
ui.MfgLine,
|
||||
ui.MfgStage,
|
||||
ui.FirstAck,
|
||||
@ -302,12 +328,7 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
return rst
|
||||
}
|
||||
|
||||
mac := params["MAC"]
|
||||
if mac == "" {
|
||||
mac = ui.MAC
|
||||
}
|
||||
|
||||
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())
|
||||
@ -323,11 +344,11 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
params["ITEM"],
|
||||
params["STATUS"],
|
||||
params["MESSAGE"],
|
||||
params["PARTNO"],
|
||||
params["MO"],
|
||||
params["SKU"],
|
||||
params["LINE"],
|
||||
params["STAGE"],
|
||||
pn,
|
||||
sku,
|
||||
mo,
|
||||
line,
|
||||
stage,
|
||||
ui.FirstAck,
|
||||
)
|
||||
if err != nil {
|
||||
@ -390,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())
|
||||
@ -400,17 +421,17 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
}
|
||||
_, err = stmt.Exec(
|
||||
ui.USN,
|
||||
ui.MAC,
|
||||
mac,
|
||||
addr,
|
||||
host,
|
||||
ui.Item,
|
||||
ui.Status,
|
||||
ui.Message,
|
||||
ui.PartNO,
|
||||
ui.MfgMO,
|
||||
ui.MfgSKU,
|
||||
params["LINE"],
|
||||
params["STAGE"],
|
||||
pn,
|
||||
sku,
|
||||
mo,
|
||||
line,
|
||||
stage,
|
||||
ui.FirstAck,
|
||||
ui.LastChg,
|
||||
)
|
||||
@ -489,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,
|
||||
@ -519,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,
|
||||
@ -541,7 +562,11 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
</tr>%s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n")
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
</tr>%s`, ul.USN, ul.MfgSKU, ul.MfgMO, ul.MfgLine, ul.MfgStage, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n")
|
||||
} else {
|
||||
last = last + fmt.Sprintf(`<tr>
|
||||
<td style="color: blue;">%s</td>
|
||||
@ -552,7 +577,11 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
<td style="color: blue;">%s</td>
|
||||
<td style="color: blue;">%s</td>
|
||||
<td style="color: blue;">%s</td>
|
||||
</tr>%s`, ul.USN, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n")
|
||||
<td style="color: blue;">%s</td>
|
||||
<td style="color: blue;">%s</td>
|
||||
<td style="color: blue;">%s</td>
|
||||
<td style="color: blue;">%s</td>
|
||||
</tr>%s`, ul.USN, ul.MfgSKU, ul.MfgMO, ul.MfgLine, ul.MfgStage, ul.MAC, ul.IPAddr, ul.Relay, ul.Item, ul.Status, ul.Message, ul.LastChg, "\r\n")
|
||||
}
|
||||
|
||||
if ul.Model != "" {
|
||||
@ -561,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
|
||||
}
|
||||
@ -589,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,
|
||||
@ -619,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,
|
||||
@ -640,11 +669,15 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
<td style="color: red; font-weight: bold;">%s</td>
|
||||
</tr>%s`,
|
||||
uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n")
|
||||
uh.USN, uh.MfgSKU, uh.MfgMO, uh.MfgLine, uh.MfgStage, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n")
|
||||
} else {
|
||||
bkup = bkup + fmt.Sprintf(`<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>%s`,
|
||||
uh.USN, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n")
|
||||
bkup = bkup + fmt.Sprintf(`<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>%s`,
|
||||
uh.USN, uh.MfgSKU, uh.MfgMO, uh.MfgLine, uh.MfgStage, uh.MAC, uh.IPAddr, uh.Relay, uh.Item, uh.Status, uh.Message, uh.LastChg, "\r\n")
|
||||
|
||||
}
|
||||
}
|
||||
@ -679,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
|
||||
}
|
||||
@ -731,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 {
|
||||
@ -747,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,
|
||||
@ -763,7 +796,7 @@ func (e *EWS) GetIssueReport(cfg cnf.Cfg, logger *log.Logger, host string, addr
|
||||
break
|
||||
}
|
||||
temp := fmt.Sprintf(`<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>%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
|
||||
}
|
||||
@ -802,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 {
|
||||
@ -818,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,
|
||||
@ -834,7 +867,7 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add
|
||||
break
|
||||
}
|
||||
temp := fmt.Sprintf(`<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>%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
|
||||
}
|
||||
@ -932,6 +965,10 @@ func (e *EWS) TemplateUutInfo(loc, locTime, misc, last, bkup string) string {
|
||||
<table>
|
||||
<tr>
|
||||
<th>USN</th>
|
||||
<th>SKU</th>
|
||||
<th>MO</th>
|
||||
<th>Line</th>
|
||||
<th>Stage</th>
|
||||
<th>MAC</th>
|
||||
<th>IP Address</th>
|
||||
<th>Server</th>
|
||||
@ -994,8 +1031,8 @@ func (e *EWS) TemplateDefectInfo(src string) string {
|
||||
<th>NO.</th>
|
||||
<th>USN</th>
|
||||
<th>PartNO.</th>
|
||||
<th>MO</th>
|
||||
<th>SKU</th>
|
||||
<th>MO</th>
|
||||
<th>Line</th>
|
||||
<th>Location</th>
|
||||
<th>Item</th>
|
||||
|
Loading…
x
Reference in New Issue
Block a user