@http.route(‘/edorfid/save_data’, auth=’none’, cors=”*”, methods=[“POST”], csrf=False)
def save_data(self, **kw):
engine = pyttsx3.init()
rate = engine.getProperty(‘rate’)
engine.setProperty(‘rate’, 160)
volume = engine.getProperty(‘volume’)
engine.setProperty(‘volume’, 1)
# 下面是接收内容
data = json.loads(request.httprequest.data.decode(‘utf-8’))
myconfig = request.env[‘ir.config_parameter’].sudo().search([(‘key’, ‘=’, ‘ir_config_parameter’)])
epcs_list = []
if type(data) == dict:
if data.get(“cmd”) == “20001”:
if data.get(“data”).get(“epcs”):
epcs_list = data.get(“data”).get(“epcs”)
elif type(data) == str:
data_json = json.loads(data)
if data_json.get(“cmd”) == “20001”:
if data_json.get(“data”).get(“epcs”):
epcs_list = data_json.get(“data”).get(“epcs”)
for rec in epcs_list:
#
mydata = request.env[‘ir.config_parameter’].sudo().search([(‘key’, ‘=’, ‘ir_config_parameter_data’)])
_logger.info(“rec:%s”, rec)
_logger.info(“epc:%s”, rec.get(“epc”))
if rec.get(“direction”) == 1:
ftype = ‘out’
ftype_name = ‘出库’
elif rec.get(“direction”) == 0:
ftype = ‘in’
ftype_name = ‘入库’
if rec.get(“epc”):
search_device = request.env[‘edorfid.device’].sudo().search(
[(‘frfid_code’, ‘=’, rec.get(‘epc’)), (‘fstatus’, ‘!=’, ftype)])
_logger.info(“search_device:%s”, search_device)
if search_device:
fdevice = search_device.id
# fdatetime=rec.get(“alarmtime”)
fdatetime1 = datetime.strptime(rec.get(“alarmtime”), ‘%Y-%m-%d %H:%M:%S.%f’)
fdatetime_h = fdatetime1 + timedelta(hours=1)
# 获取序列号
my_sequence = request.env[‘ir.sequence’].sudo().search([(‘code’, ‘=’, ‘edorfid_borrow_number’)],
limit=1)
last_sequence_number = my_sequence.next_by_id()
devicedata = {
“fdevice”: fdevice,
“fdatetime”: fdatetime1,
“ftype”: ftype,
“fnumber”: last_sequence_number,
“ftime”: fdatetime1,
}
if mydata:
mydata.write({‘value’: float(mydata.value) + 0.5})
myresult = request.env[‘edorfid.borrow’].sudo().create(devicedata)
if myresult:
search_device.fstatus = ftype
myvoice_str = search_device.fnumber + “在” + ftype_name
_logger.info(“myvoice_str:%s”,myvoice_str)
engine.say(myvoice_str)
engine.runAndWait()
else:
_logger.info(“该时段该物资已使用!”)
return “成功!”