!11862 Merge remote-tracking branch 'origin/dev' into dev
Merge pull request !11862 from 李鹏宇/dev
This commit is contained in:
@@ -44,13 +44,26 @@ class IotMessage(models.Model):
|
||||
default='draft')
|
||||
# 响应信息
|
||||
res_data = fields.Text(string='发送后的响应信息')
|
||||
face_data = fields.Text(string='照片数据')
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
# 保留全部数据(含 face_template),MQTT 下发时需要原样发给设备
|
||||
records = super().create(vals_list)
|
||||
# 创建设备日志时同步更新关联设备的最后更新时间
|
||||
# 从 message_data 提取 face_template 存入单独字段,并在 message_data 中移除
|
||||
for rec in records:
|
||||
if rec.message_data:
|
||||
try:
|
||||
data = json.loads(rec.message_data)
|
||||
if isinstance(data, dict) and 'face_template' in data:
|
||||
face_tpl = data.pop('face_template')
|
||||
rec.write({
|
||||
'face_data': face_tpl,
|
||||
'message_data': json.dumps(data, ensure_ascii=False),
|
||||
})
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
pass
|
||||
# 创建设备日志时同步更新关联设备的最后更新时间
|
||||
if rec.device_sn:
|
||||
devices = self.env['attendance.iot'].sudo().search([('name', '=', rec.device_sn)], limit=1)
|
||||
if devices:
|
||||
@@ -119,10 +132,20 @@ class IotMessage(models.Model):
|
||||
|
||||
result = []
|
||||
for record in records:
|
||||
msg_data = record.message_data
|
||||
# 如果有独立存的面部照片,重新拼回去下发
|
||||
if record.face_data:
|
||||
try:
|
||||
data = json.loads(msg_data) if msg_data else {}
|
||||
if isinstance(data, dict):
|
||||
data['face_template'] = record.face_data
|
||||
msg_data = json.dumps(data, ensure_ascii=False)
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
pass
|
||||
result.append({
|
||||
'id': record.id,
|
||||
'topic': record.topic,
|
||||
'message_data': record.message_data
|
||||
'message_data': msg_data
|
||||
})
|
||||
records.write({'state': 'waiting'})
|
||||
return result
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<field name="name">iot.message.tree</field>
|
||||
<field name="model">iot.message</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Iot 消息" default_order="create_date desc" limit="10">
|
||||
<tree string="Iot 消息" default_order="create_date desc" limit="5">
|
||||
<header>
|
||||
<button name="action_clear_face_template" string="清除 face_template" type="object"/>
|
||||
</header>
|
||||
@@ -15,9 +15,9 @@
|
||||
<field name="topic" column_invisible="1"/>
|
||||
<field name="device_sn"/>
|
||||
<field name="create_date" string="创建日期"/>
|
||||
<field name="message_data" optional="show"/>
|
||||
<field name="message_data" column_invisible="1"/>
|
||||
<field name="state"/>
|
||||
<field name="res_data" optional="hide"/>
|
||||
<field name="res_data" optional="show"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -35,17 +35,44 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="iot_message_act_window" model="ir.actions.act_window">
|
||||
<field name="name">Iot 消息</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">iot.message</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
There is no examples click here to add new Iot 消息.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="iot_message_act_window" model="ir.actions.act_window">
|
||||
<field name="name">Iot 消息</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">iot.message</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
There is no examples click here to add new Iot 消息.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="iot_message_form_view" model="ir.ui.view">
|
||||
<field name="name">iot.message.form</field>
|
||||
<field name="model">iot.message</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="device_sn"/>
|
||||
<field name="state"/>
|
||||
<field name="topic"/>
|
||||
<field name="create_date" string="创建日期"/>
|
||||
</group>
|
||||
<group string="请求参数">
|
||||
<field name="message_data" nolabel="1"/>
|
||||
</group>
|
||||
<group string="照片数据" groups="base.group_system">
|
||||
<field name="face_data" nolabel="1"/>
|
||||
</group>
|
||||
<group string="响应结果">
|
||||
<field name="res_data" nolabel="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user