增加24h与历史日志的数据拿取
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
import json
|
||||||
|
import datetime
|
||||||
|
import requests
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
|
from odoo.exceptions import UserError
|
||||||
|
|
||||||
|
|
||||||
class SfMaintenanceEquipmentOEE(models.Model):
|
class SfMaintenanceEquipmentOEE(models.Model):
|
||||||
@@ -9,6 +13,9 @@ class SfMaintenanceEquipmentOEE(models.Model):
|
|||||||
name = fields.Char('设备oee')
|
name = fields.Char('设备oee')
|
||||||
equipment_id = fields.Many2one('maintenance.equipment', '机台号',
|
equipment_id = fields.Many2one('maintenance.equipment', '机台号',
|
||||||
domain="[('category_id.equipment_type', '=', '机床'),('state_zc', '=', '已注册')]")
|
domain="[('category_id.equipment_type', '=', '机床'),('state_zc', '=', '已注册')]")
|
||||||
|
|
||||||
|
equipment_code = fields.Char('设备编码', related='equipment_id.code', store=True)
|
||||||
|
|
||||||
type_id = fields.Many2one('sf.machine_tool.type', '型号', related='equipment_id.type_id')
|
type_id = fields.Many2one('sf.machine_tool.type', '型号', related='equipment_id.type_id')
|
||||||
machine_tool_picture = fields.Binary('设备图片', related='equipment_id.machine_tool_picture')
|
machine_tool_picture = fields.Binary('设备图片', related='equipment_id.machine_tool_picture')
|
||||||
state = fields.Selection(
|
state = fields.Selection(
|
||||||
@@ -28,6 +35,151 @@ class SfMaintenanceEquipmentOEE(models.Model):
|
|||||||
related='equipment_id.sf_maintenance_logs_ids')
|
related='equipment_id.sf_maintenance_logs_ids')
|
||||||
oee_logs = fields.One2many('maintenance.equipment.oee.logs', 'equipment_oee_id', string='运行日志')
|
oee_logs = fields.One2many('maintenance.equipment.oee.logs', 'equipment_oee_id', string='运行日志')
|
||||||
|
|
||||||
|
day_logs_detail = fields.Html('日运行日志详情')
|
||||||
|
history_logs_detail = fields.Html('历史运行日志详情')
|
||||||
|
begin_time = fields.Date('开始时间')
|
||||||
|
end_time = fields.Date('结束时间')
|
||||||
|
|
||||||
|
# 获取日志详情
|
||||||
|
def get_day_logs(self):
|
||||||
|
config = self.env['ir.config_parameter'].sudo()
|
||||||
|
url = 'http://172.16.10.112:8069/api/logs/list'
|
||||||
|
machine_list = [self.equipment_code]
|
||||||
|
begin_time = datetime.datetime.now().strftime('%Y-%m-%d') + ' 00:00:00'
|
||||||
|
end_time = datetime.datetime.now().strftime('%Y-%m-%d') + ' 23:59:59'
|
||||||
|
|
||||||
|
# 请求的数据
|
||||||
|
data = {
|
||||||
|
"machine_list": str(machine_list),
|
||||||
|
"begin_time": begin_time,
|
||||||
|
"end_time": end_time
|
||||||
|
}
|
||||||
|
|
||||||
|
print(data)
|
||||||
|
|
||||||
|
# 发送POST请求
|
||||||
|
response = requests.post(url, json={}, data=data)
|
||||||
|
print(response.json()) # 输出服务器返回的响应
|
||||||
|
if response.status_code == 200:
|
||||||
|
result = response.json()
|
||||||
|
print('============', result)
|
||||||
|
if result['status'] == 1:
|
||||||
|
logs_list = result['data'][self.equipment_code]
|
||||||
|
logs_detail = ''
|
||||||
|
for log in logs_list:
|
||||||
|
print('loooooooooooooooooooogs', log)
|
||||||
|
production_name = log['production_name'] if log['production_name'] else ' '
|
||||||
|
logs_detail += '<tr><td>' + log['time'] + '</td><td>' + log[
|
||||||
|
'state'] + '</td><td>' + production_name + '</td></tr>'
|
||||||
|
# self.day_logs_detail = '<table><tr><th>时间</th><th>事件/状态</th><th>加工工单</th></tr>' + logs_detail + '</table>'
|
||||||
|
self.day_logs_detail = '''
|
||||||
|
<table border="1" style="border-collapse: collapse; width: 100%; text-align: center;">
|
||||||
|
<tr style="background-color: #f2f2f2;">
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">时间</th>
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">事件/状态</th>
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">加工工单</th>
|
||||||
|
</tr>
|
||||||
|
{logs_detail}
|
||||||
|
</table>
|
||||||
|
'''.format(logs_detail=logs_detail)
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.day_logs_detail = '获取日志失败'
|
||||||
|
else:
|
||||||
|
self.day_logs_detail = '获取日志失败'
|
||||||
|
|
||||||
|
# 获取历史日志详情
|
||||||
|
def get_history_logs(self):
|
||||||
|
config = self.env['ir.config_parameter'].sudo()
|
||||||
|
url = 'http://172.16.10.112:8069/api/logs/list'
|
||||||
|
machine_list = [self.equipment_code]
|
||||||
|
if not self.begin_time:
|
||||||
|
raise UserError('请选择开始时间')
|
||||||
|
if not self.end_time:
|
||||||
|
raise UserError('请选择结束时间')
|
||||||
|
|
||||||
|
begin_time = self.begin_time.strftime('%Y-%m-%d') + ' 00:00:00'
|
||||||
|
end_time = self.end_time.strftime('%Y-%m-%d') + ' 23:59:59'
|
||||||
|
|
||||||
|
# 请求的数据
|
||||||
|
data = {
|
||||||
|
"machine_list": str(machine_list),
|
||||||
|
"begin_time": begin_time,
|
||||||
|
"end_time": end_time
|
||||||
|
}
|
||||||
|
|
||||||
|
print(data)
|
||||||
|
|
||||||
|
# 发送POST请求
|
||||||
|
response = requests.post(url, json={}, data=data)
|
||||||
|
print(response.json()) # 输出服务器返回的响应
|
||||||
|
if response.status_code == 200:
|
||||||
|
result = response.json()
|
||||||
|
print('============', result)
|
||||||
|
if result['status'] == 1:
|
||||||
|
logs_list = result['data'][self.equipment_code]
|
||||||
|
logs_detail = ''
|
||||||
|
for log in logs_list:
|
||||||
|
production_name = log['production_name'] if log['production_name'] else ' '
|
||||||
|
logs_detail += '<tr><td>' + log['time'] + '</td><td>' + log[
|
||||||
|
'state'] + '</td><td>' + production_name + '</td></tr>'
|
||||||
|
# self.day_logs_detail = '<table><tr><th>时间</th><th>事件/状态</th><th>加工工单</th></tr>' + logs_detail + '</table>'
|
||||||
|
self.history_logs_detail = '''
|
||||||
|
<table border="1" style="border-collapse: collapse; width: 100%; text-align: center;">
|
||||||
|
<tr style="background-color: #f2f2f2;">
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">时间</th>
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">事件/状态</th>
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd;">加工工单</th>
|
||||||
|
</tr>
|
||||||
|
{logs_detail}
|
||||||
|
</table>
|
||||||
|
'''.format(logs_detail=logs_detail)
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.history_logs_detail = '获取日志失败'
|
||||||
|
else:
|
||||||
|
self.history_logs_detail = '获取日志失败'
|
||||||
|
|
||||||
|
# 下载历史日志
|
||||||
|
def download_history_logs(self):
|
||||||
|
config = self.env['ir.config_parameter'].sudo()
|
||||||
|
url = 'http://172.16.10.112:8069/api/logs/list'
|
||||||
|
machine_list = [self.equipment_code]
|
||||||
|
if not self.begin_time:
|
||||||
|
raise UserError('请选择开始时间')
|
||||||
|
if not self.end_time:
|
||||||
|
raise UserError('请选择结束时间')
|
||||||
|
|
||||||
|
begin_time = self.begin_time.strftime('%Y-%m-%d') + ' 00:00:00'
|
||||||
|
end_time = self.end_time.strftime('%Y-%m-%d') + ' 23:59:59'
|
||||||
|
|
||||||
|
# 请求的数据
|
||||||
|
data = {
|
||||||
|
"machine_list": str(machine_list),
|
||||||
|
"begin_time": begin_time,
|
||||||
|
"end_time": end_time
|
||||||
|
}
|
||||||
|
|
||||||
|
print(data)
|
||||||
|
|
||||||
|
# 发送POST请求
|
||||||
|
response = requests.post(url, json={}, data=data)
|
||||||
|
print(response.json()) # 输出服务器返回的响应
|
||||||
|
if response.status_code == 200:
|
||||||
|
result = response.json()
|
||||||
|
print('============', result)
|
||||||
|
if result['status'] == 1:
|
||||||
|
logs_list = result['data'][self.equipment_code]
|
||||||
|
logs_detail = ''
|
||||||
|
for log in logs_list:
|
||||||
|
production_name = log['production_name'] if log['production_name'] else ' '
|
||||||
|
# todo 下载日志
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.history_logs_detail = '下载日志失败'
|
||||||
|
else:
|
||||||
|
self.history_logs_detail = '下载日志失败'
|
||||||
|
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
result = []
|
result = []
|
||||||
for parameter in self:
|
for parameter in self:
|
||||||
@@ -95,4 +247,3 @@ class SfMaintenanceEquipmentOEELogDetail(models.Model):
|
|||||||
log_id = fields.Many2one('maintenance.equipment.oee.logs', '日志')
|
log_id = fields.Many2one('maintenance.equipment.oee.logs', '日志')
|
||||||
# equipment_code = fields.Char('设备编码', related='log_id.equipment_code')
|
# equipment_code = fields.Char('设备编码', related='log_id.equipment_code')
|
||||||
equipment_code = fields.Char('设备编码', readonly='True')
|
equipment_code = fields.Char('设备编码', readonly='True')
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="type_id" readonly="1"/>
|
<field name="type_id" readonly="1"/>
|
||||||
|
<field name="equipment_code"/>
|
||||||
<field name="equipment_time"/>
|
<field name="equipment_time"/>
|
||||||
<field name="run_time"/>
|
<field name="run_time"/>
|
||||||
<field name="done_nums"/>
|
<field name="done_nums"/>
|
||||||
@@ -48,21 +49,37 @@
|
|||||||
<group>
|
<group>
|
||||||
<field name="machine_tool_picture" widget="image" readonly="1"/>
|
<field name="machine_tool_picture" widget="image" readonly="1"/>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
<!-- <notebook> -->
|
<notebook>
|
||||||
<!-- <page string="运行日志"> -->
|
<page string="24H日志详情">
|
||||||
<!-- <field name="oee_logs"> -->
|
<group>
|
||||||
<!-- <tree create="1" edit="1" delete="1" editable="bottom"> -->
|
<button name="get_day_logs" type="object" string="查看24H日志" t-attf-style="white-space:nowrap;"/>
|
||||||
<!-- <field name = 'run_time'/> -->
|
</group>
|
||||||
<!-- <field name = 'state'/> -->
|
<field name="day_logs_detail"/>
|
||||||
<!-- <field name = 'workorder_id'/> -->
|
</page>
|
||||||
<!-- <field name = 'time'/> -->
|
<page string="历史日志详情">
|
||||||
<!-- <field name = 'color' widget="color"/> -->
|
<group>
|
||||||
<!-- </tree> -->
|
<group>
|
||||||
<!-- </field> -->
|
<group>
|
||||||
<!-- </page> -->
|
<field name="begin_time"/>
|
||||||
<!-- </notebook> -->
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="end_time"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<group>
|
||||||
|
<button name="get_history_logs" type="object" string="查看历史日志" t-attf-style="white-space:nowrap;"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<button name="download_history_logs" type="object" string="下载历史日志" t-attf-style="white-space:nowrap;"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
<field name="history_logs_detail"/>
|
||||||
|
</page>
|
||||||
|
</notebook>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
Reference in New Issue
Block a user