diff --git a/sf_machine_connect/controllers/controllers.py b/sf_machine_connect/controllers/controllers.py index a40b148d..946bb78c 100644 --- a/sf_machine_connect/controllers/controllers.py +++ b/sf_machine_connect/controllers/controllers.py @@ -708,3 +708,58 @@ class Sf_Dashboard_Connect(http.Controller): finally: cur.close() conn.close() + + # 查询pg库来获得异常情况 + @http.route('/api/alarm/logs', type='http', auth='public', methods=['GET', 'POST'], csrf=False, cors="*") + def idle_count(self, **kw): + """ + 查询设备的异常情况 + """ + res = {'status': 1, 'message': '成功', 'data': {}} + logging.info('前端请求机床数据的参数为:%s' % kw) + + # 连接数据库 + conn = psycopg2.connect(**db_config) + cur = conn.cursor() + try: + # 获取请求的机床数据 + # machine_list = ast.literal_eval(kw['machine_list']) + # idle_times = [] + # idle_dict = {} + + # for item in machine_list: + sql = ''' + SELECT DISTINCT ON (alarm_time) alarm_time, alarm_message, system_date, system_time, alarm_repair_time + FROM device_data + WHERE alarm_time IS NOT NULL + ORDER BY alarm_time, time; + + ''' + # 执行SQL命令 + cur.execute(sql) + result = cur.fetchall() + print('result', result) + + # 将查询结果转换为字典列表 + data = [] + for row in result: + record = { + 'alarm_time': row[0], + 'alarm_message': row[1], + 'system_date': row[2], + 'system_time': row[3], + 'alarm_repair_time': row[4] + } + data.append(record) + + # 将数据填充到返回结果中 + res['data'] = data + + # 返回统计结果 + return json.dumps(res, ensure_ascii=False) + except Exception as e: + print(f"An error occurred: {e}") + return json.dumps(res) + finally: + cur.close() + conn.close() diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index abe08c48..066cb133 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1168,7 +1168,8 @@ class ResMrpWorkOrder(models.Model): # record.write({'process_state': '待加工'}) record.production_id.process_state = '待解除装夹' self.env['sf.production.plan'].sudo().search([('name', '=', record.production_id.name)]).write({ - 'state': 'finished' + 'state': 'finished', + 'actual_end_time': datetime.now() }) record.production_id.write({'detection_result_ids': [(0, 0, { 'rework_reason': record.reason,