Record NG items

This commit is contained in:
r0n1n7an 2024-01-24 10:50:12 +08:00
parent cca73fb840
commit 6d16d3b606
4 changed files with 42 additions and 15 deletions

Binary file not shown.

View File

@ -12,8 +12,9 @@ MySQL:
Database: ewsv3_f716 Database: ewsv3_f716
User: apisvc User: apisvc
Password: wcqte Password: wcqte
OfflineTable: v_offline IssuesTable: issues
IssueTable: v_issue IssuesView: v_issues
OfflineView: v_offline
Remark: Remark:
Columns_UutInfo: [usn,mac,ipaddr,status,message,first_ack,last_ack,last_change] Columns_UutInfo: [usn,mac,ipaddr,status,message,first_ack,last_ack,last_change]
Columns_LocInfo: [mac,line,col,row,num,last_found] Columns_LocInfo: [mac,line,col,row,num,last_found]

View File

@ -15,11 +15,12 @@ type Settings struct {
} }
type MySQL struct { type MySQL struct {
Server string `yaml:"Server"` Server string `yaml:"Server"`
Port string `yaml:"Port"` Port string `yaml:"Port"`
Database string `yaml:"Database"` Database string `yaml:"Database"`
User string `yaml:"User"` User string `yaml:"User"`
Password string `yaml:"Password"` Password string `yaml:"Password"`
IssueTable string `yaml:"IssueTable"` IssuesTable string `yaml:"IssuesTable"`
OfflineTable string `yaml:"OfflineTable"` IssuesView string `yaml:"IssuesView"`
OfflineView string `yaml:"OfflineView"`
} }

View File

@ -48,10 +48,11 @@ type ReportInfo struct {
func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr string, uri string, params map[string]string) map[string]string { func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr string, uri string, params map[string]string) map[string]string {
rst := map[string]string{"RESULT": ""} rst := map[string]string{"RESULT": ""}
if params["USN"] == "" || params["MAC"] == "" { //if params["USN"] == "" || params["MAC"] == "" {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, "Missing Parameter USN/MAC.") if params["USN"] == "" {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, "Missing Parameter USN.")
rst["RESULT"] = "NG" rst["RESULT"] = "NG"
rst["ErrMsg"] = "Missing Parameter USN/MAC." rst["ErrMsg"] = "Missing Parameter USN."
return rst return rst
} }
@ -78,6 +79,28 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
return rst return rst
} }
if params["STATUS"] == "NG" {
dmlIssue := fmt.Sprintf(`INSERT INTO %s
(usn,mac,ipaddr,relay,partno,mo,sku,item,status,message,last_change)
VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',NOW());`,
cfg.MySQL.IssuesTable,
params["USN"],
params["MAC"],
addr,
host,
params["PARTNO"],
params["MO"],
params["SKU"],
params["ITEM"],
params["STATUS"],
params["MESSAGE"],
)
_, err = dbo.Exec(dmlIssue)
if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
}
}
rec := dbo.QueryRow( rec := dbo.QueryRow(
fmt.Sprintf(`SELECT usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change fmt.Sprintf(`SELECT usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,line,stage,first_ack,last_ack,last_change
FROM uutinfo FROM uutinfo
@ -104,7 +127,9 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
//如果在uutinfo表中未查找到此USN的记录, 则新增一条此USN的记录 //如果在uutinfo表中未查找到此USN的记录, 则新增一条此USN的记录
if err == sql.ErrNoRows { 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) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s);", dmlInsert := fmt.Sprintf(`INSERT INTO uutinfo
(usn,mac,ipaddr,relay,item,status,message,partno,mo,sku,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["USN"],
params["MAC"], params["MAC"],
addr, addr,
@ -537,7 +562,7 @@ func (e *EWS) GetIssueReport(cfg cnf.Cfg, logger *log.Logger, host string, addr
rows, err := dbo.Query(fmt.Sprintf( 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,mo,sku,line,location,item,status,message,first_ack,last_ack,last_change,diffmins
FROM %s FROM %s
ORDER BY diffmins ASC;`, cfg.MySQL.IssueTable)) ORDER BY diffmins ASC;`, cfg.MySQL.IssuesView))
if err != nil { if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error()) logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["RESULT"] = "NG" rst["RESULT"] = "NG"
@ -608,7 +633,7 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add
rows, err := dbo.Query(fmt.Sprintf( 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,mo,sku,line,location,item,status,message,first_ack,last_ack,last_change,diffmins
FROM %s FROM %s
ORDER BY diffmins DESC;`, cfg.MySQL.OfflineTable)) ORDER BY diffmins DESC;`, cfg.MySQL.OfflineView))
if err != nil { if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error()) logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["RESULT"] = "NG" rst["RESULT"] = "NG"