Support define offline and issue table by config
This commit is contained in:
parent
0167b0cec3
commit
cca73fb840
BIN
APIServer.exe
BIN
APIServer.exe
Binary file not shown.
@ -434,8 +434,8 @@ func handleGetUutInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
switch params["ACTION"] {
|
switch params["ACTION"] {
|
||||||
case "QueryByFilter":
|
case "QueryByFilter":
|
||||||
rst = ews.GetUutInfo(cfg, logger, host, addr, uri, params)
|
rst = ews.GetUutInfo(cfg, logger, host, addr, uri, params)
|
||||||
case "GetDefectReport":
|
case "GetIssueReport":
|
||||||
rst = ews.GetDefectReport(cfg, logger, host, addr, uri, params)
|
rst = ews.GetIssueReport(cfg, logger, host, addr, uri, params)
|
||||||
case "GetOfflineReport":
|
case "GetOfflineReport":
|
||||||
rst = ews.GetOfflineReport(cfg, logger, host, addr, uri, params)
|
rst = ews.GetOfflineReport(cfg, logger, host, addr, uri, params)
|
||||||
default:
|
default:
|
||||||
|
@ -12,8 +12,10 @@ MySQL:
|
|||||||
Database: ewsv3_f716
|
Database: ewsv3_f716
|
||||||
User: apisvc
|
User: apisvc
|
||||||
Password: wcqte
|
Password: wcqte
|
||||||
|
OfflineTable: v_offline
|
||||||
|
IssueTable: v_issue
|
||||||
Remark:
|
Remark:
|
||||||
Columns_UutInfo: [usn,mac,ipaddr,status,message,first_ack,last_ack,last_change,last_transfer]
|
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]
|
||||||
USER_RO: ewsv3:ewsv3
|
USER_RO: ewsv3:ewsv3
|
||||||
USER_RW: apisvc:wcqte
|
USER_RW: apisvc:wcqte
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<select name="ACTION" id="ACTION">
|
<select name="ACTION" id="ACTION">
|
||||||
<!--option value="" selected="true">* 选择查询类型 *</option-->
|
<!--option value="" selected="true">* 选择查询类型 *</option-->
|
||||||
<option value="QueryByFilter" selected="true">条件查询</option>
|
<option value="QueryByFilter" selected="true">条件查询</option>
|
||||||
<option value="GetDefectReport">实时异常报表</option>
|
<option value="GetIssueReport">实时异常报表</option>
|
||||||
<option value="GetOfflineReport">实时离线报表</option>
|
<option value="GetOfflineReport">实时离线报表</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
@ -37,9 +37,9 @@
|
|||||||
<!--label for="KEY">查询条件: </label> -->
|
<!--label for="KEY">查询条件: </label> -->
|
||||||
<select name="KEY" id="KEY">
|
<select name="KEY" id="KEY">
|
||||||
<!--option value="" selected="true">* 选择查询条件 *</option-->
|
<!--option value="" selected="true">* 选择查询条件 *</option-->
|
||||||
<option value="USN" selected="true">By SN</option>
|
<option value="USN" selected="true">By USN</option>
|
||||||
|
<option value="MAC">By MAC</option>
|
||||||
<option value="MO">By MO</option>
|
<option value="MO">By MO</option>
|
||||||
<option value="SKU">By SKU</option>
|
|
||||||
</select>
|
</select>
|
||||||
<input type="text" name="VALUE" id="VALUE" />
|
<input type="text" name="VALUE" id="VALUE" />
|
||||||
</li>
|
</li>
|
||||||
|
12
cnf/cnf.go
12
cnf/cnf.go
@ -15,9 +15,11 @@ 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"`
|
||||||
|
OfflineTable string `yaml:"OfflineTable"`
|
||||||
}
|
}
|
||||||
|
76
ews/ews.go
76
ews/ews.go
@ -30,7 +30,7 @@ type UutInfo struct {
|
|||||||
LastChg string
|
LastChg string
|
||||||
}
|
}
|
||||||
|
|
||||||
type DefectInfo struct {
|
type ReportInfo struct {
|
||||||
USN string
|
USN string
|
||||||
PartNO string
|
PartNO string
|
||||||
MfgMO string
|
MfgMO string
|
||||||
@ -506,7 +506,7 @@ func (e *EWS) GetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
|
|||||||
return rst
|
return rst
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *EWS) GetDefectReport(cfg cnf.Cfg, logger *log.Logger, host string, addr string, uri string, params map[string]string) map[string]string {
|
func (e *EWS) GetIssueReport(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": ""}
|
||||||
|
|
||||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
|
||||||
@ -532,12 +532,12 @@ func (e *EWS) GetDefectReport(cfg cnf.Cfg, logger *log.Logger, host string, addr
|
|||||||
return rst
|
return rst
|
||||||
}
|
}
|
||||||
|
|
||||||
di := new(DefectInfo)
|
ri := new(ReportInfo)
|
||||||
defect := ""
|
defect := ""
|
||||||
rows, err := dbo.Query(
|
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 v_ngreport
|
FROM %s
|
||||||
ORDER BY diffmins ASC;`)
|
ORDER BY diffmins ASC;`, cfg.MySQL.IssueTable))
|
||||||
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"
|
||||||
@ -549,25 +549,25 @@ func (e *EWS) GetDefectReport(cfg cnf.Cfg, logger *log.Logger, host string, addr
|
|||||||
num := 1
|
num := 1
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&di.USN,
|
&ri.USN,
|
||||||
&di.PartNO,
|
&ri.PartNO,
|
||||||
&di.MfgMO,
|
&ri.MfgMO,
|
||||||
&di.SKU,
|
&ri.SKU,
|
||||||
&di.Line,
|
&ri.Line,
|
||||||
&di.Location,
|
&ri.Location,
|
||||||
&di.Item,
|
&ri.Item,
|
||||||
&di.Status,
|
&ri.Status,
|
||||||
&di.Message,
|
&ri.Message,
|
||||||
&di.FirstAck,
|
&ri.FirstAck,
|
||||||
&di.LastAck,
|
&ri.LastAck,
|
||||||
&di.LastChg,
|
&ri.LastChg,
|
||||||
&di.DiffMins,
|
&ri.DiffMins,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
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`,
|
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, di.USN, di.PartNO, di.MfgMO, di.SKU, di.Line, di.Location, di.Item, di.Status, di.Message, di.FirstAck, di.LastAck, di.LastChg, di.DiffMins, "\r\n")
|
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")
|
||||||
defect = defect + temp
|
defect = defect + temp
|
||||||
num += 1
|
num += 1
|
||||||
}
|
}
|
||||||
@ -603,12 +603,12 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add
|
|||||||
return rst
|
return rst
|
||||||
}
|
}
|
||||||
|
|
||||||
di := new(DefectInfo)
|
ri := new(ReportInfo)
|
||||||
offline := ""
|
offline := ""
|
||||||
rows, err := dbo.Query(
|
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 v_offline
|
FROM %s
|
||||||
ORDER BY diffmins DESC;`)
|
ORDER BY diffmins DESC;`, cfg.MySQL.OfflineTable))
|
||||||
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"
|
||||||
@ -620,25 +620,25 @@ func (e *EWS) GetOfflineReport(cfg cnf.Cfg, logger *log.Logger, host string, add
|
|||||||
num := 1
|
num := 1
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&di.USN,
|
&ri.USN,
|
||||||
&di.PartNO,
|
&ri.PartNO,
|
||||||
&di.MfgMO,
|
&ri.MfgMO,
|
||||||
&di.SKU,
|
&ri.SKU,
|
||||||
&di.Line,
|
&ri.Line,
|
||||||
&di.Location,
|
&ri.Location,
|
||||||
&di.Item,
|
&ri.Item,
|
||||||
&di.Status,
|
&ri.Status,
|
||||||
&di.Message,
|
&ri.Message,
|
||||||
&di.FirstAck,
|
&ri.FirstAck,
|
||||||
&di.LastAck,
|
&ri.LastAck,
|
||||||
&di.LastChg,
|
&ri.LastChg,
|
||||||
&di.DiffMins,
|
&ri.DiffMins,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
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`,
|
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, di.USN, di.PartNO, di.MfgMO, di.SKU, di.Line, di.Location, di.Item, di.Status, di.Message, di.FirstAck, di.LastAck, di.LastChg, di.DiffMins, "\r\n")
|
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")
|
||||||
offline = offline + temp
|
offline = offline + temp
|
||||||
num += 1
|
num += 1
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user