use last record values when comming request contain null param values

This commit is contained in:
r0n1n7an 2025-01-14 13:43:32 +08:00
parent 53640196fe
commit 074cfe8b3f

View File

@ -210,6 +210,32 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
return rst return rst
} }
//如果部分客户端参数为空, 则保留uutinfo表中已存在记录的值
mac := params["MAC"]
if mac == "" {
mac = ui.MAC
}
pn := params["PARTNO"]
if pn == "" {
pn = ui.PartNO
}
mo := params["MO"]
if mo == "" {
mo = ui.MfgMO
}
sku := params["SKU"]
if sku == "" {
sku = ui.MfgSKU
}
line := params["LINE"]
if line == "" {
line = ui.MfgLine
}
stage := params["STAGE"]
if stage == "" {
stage = ui.MfgStage
}
//如果此USN的记录存在于uutinfo表中, 且此USN的Relay/MAC/Item/Status/Message已变化, 则: //如果此USN的记录存在于uutinfo表中, 且此USN的Relay/MAC/Item/Status/Message已变化, 则:
//1. 备份此USN对应记录行到uutinfobkup表 //1. 备份此USN对应记录行到uutinfobkup表
//2. 删除uutinfo表中对应USN的记录行 //2. 删除uutinfo表中对应USN的记录行
@ -262,8 +288,8 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
_, err = stmt.Exec( _, err = stmt.Exec(
ui.USN, ui.USN,
ui.MAC, ui.MAC,
addr, ui.IPAddr,
host, ui.Relay,
ui.Item, ui.Item,
ui.Status, ui.Status,
ui.Message, ui.Message,
@ -302,11 +328,6 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
return rst 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,mo,sku,line,stage,first_ack,last_ack,last_change) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),NOW());")
if err != nil { if err != nil {
tx.Rollback() tx.Rollback()
@ -323,11 +344,11 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
params["ITEM"], params["ITEM"],
params["STATUS"], params["STATUS"],
params["MESSAGE"], params["MESSAGE"],
params["PARTNO"], pn,
params["MO"], mo,
params["SKU"], sku,
params["LINE"], line,
params["STAGE"], stage,
ui.FirstAck, ui.FirstAck,
) )
if err != nil { if err != nil {
@ -400,15 +421,15 @@ func (e *EWS) SetUutInfo(cfg cnf.Cfg, logger *log.Logger, host string, addr stri
} }
_, err = stmt.Exec( _, err = stmt.Exec(
ui.USN, ui.USN,
ui.MAC, mac,
addr, addr,
host, host,
ui.Item, ui.Item,
ui.Status, ui.Status,
ui.Message, ui.Message,
ui.PartNO, pn,
ui.MfgMO, mo,
ui.MfgSKU, sku,
params["LINE"], params["LINE"],
params["STAGE"], params["STAGE"],
ui.FirstAck, ui.FirstAck,