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
}
//如果部分客户端参数为空, 则保留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已变化, 则:
//1. 备份此USN对应记录行到uutinfobkup表
//2. 删除uutinfo表中对应USN的记录行
@ -262,8 +288,8 @@ 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,
@ -302,11 +328,6 @@ 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());")
if err != nil {
tx.Rollback()
@ -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,
mo,
sku,
line,
stage,
ui.FirstAck,
)
if err != nil {
@ -400,15 +421,15 @@ 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,
pn,
mo,
sku,
params["LINE"],
params["STAGE"],
ui.FirstAck,