From 8706e25b0de44a8fafc9ac6959301f434d78ecda Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Fri, 20 Sep 2024 16:33:56 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A024h=E4=B8=8E=E5=8E=86?=
=?UTF-8?q?=E5=8F=B2=E6=97=A5=E5=BF=97=E7=9A=84=E6=95=B0=E6=8D=AE=E6=8B=BF?=
=?UTF-8?q?=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_maintenance/models/sf_maintenance_oee.py | 153 +++++++++++++++++-
.../views/maintenance_equipment_oee_views.xml | 45 ++++--
2 files changed, 183 insertions(+), 15 deletions(-)
diff --git a/sf_maintenance/models/sf_maintenance_oee.py b/sf_maintenance/models/sf_maintenance_oee.py
index 9a6aaba8..1a2e4f10 100644
--- a/sf_maintenance/models/sf_maintenance_oee.py
+++ b/sf_maintenance/models/sf_maintenance_oee.py
@@ -1,5 +1,9 @@
# -*- coding: utf-8 -*-
+import json
+import datetime
+import requests
from odoo import api, fields, models, _
+from odoo.exceptions import UserError
class SfMaintenanceEquipmentOEE(models.Model):
@@ -9,6 +13,9 @@ class SfMaintenanceEquipmentOEE(models.Model):
name = fields.Char('设备oee')
equipment_id = fields.Many2one('maintenance.equipment', '机台号',
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')
machine_tool_picture = fields.Binary('设备图片', related='equipment_id.machine_tool_picture')
state = fields.Selection(
@@ -28,6 +35,151 @@ class SfMaintenanceEquipmentOEE(models.Model):
related='equipment_id.sf_maintenance_logs_ids')
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 += '
| ' + log['time'] + ' | ' + log[
+ 'state'] + ' | ' + production_name + ' |
'
+ # self.day_logs_detail = '| 时间 | 事件/状态 | 加工工单 |
' + logs_detail + '
'
+ self.day_logs_detail = '''
+
+
+ | 时间 |
+ 事件/状态 |
+ 加工工单 |
+
+ {logs_detail}
+
+ '''.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 += '| ' + log['time'] + ' | ' + log[
+ 'state'] + ' | ' + production_name + ' |
'
+ # self.day_logs_detail = '| 时间 | 事件/状态 | 加工工单 |
' + logs_detail + '
'
+ self.history_logs_detail = '''
+
+
+ | 时间 |
+ 事件/状态 |
+ 加工工单 |
+
+ {logs_detail}
+
+ '''.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):
result = []
for parameter in self:
@@ -95,4 +247,3 @@ class SfMaintenanceEquipmentOEELogDetail(models.Model):
log_id = fields.Many2one('maintenance.equipment.oee.logs', '日志')
# equipment_code = fields.Char('设备编码', related='log_id.equipment_code')
equipment_code = fields.Char('设备编码', readonly='True')
-
diff --git a/sf_maintenance/views/maintenance_equipment_oee_views.xml b/sf_maintenance/views/maintenance_equipment_oee_views.xml
index 9370fbbc..33749809 100644
--- a/sf_maintenance/views/maintenance_equipment_oee_views.xml
+++ b/sf_maintenance/views/maintenance_equipment_oee_views.xml
@@ -38,6 +38,7 @@
+
@@ -48,21 +49,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+