工单异常处理
This commit is contained in:
@@ -21,7 +21,7 @@ class MessageSfMrsConnect(Sf_Mrs_Connect):
|
||||
_logger.info('已编程的制造订单:%s' % res.get('production_ids'))
|
||||
productions = request.env['mrp.production'].sudo().search([('id', 'in', res.get('production_ids'))])
|
||||
# 过滤programming_state为已编程,tool_state为2的制造订单
|
||||
tool_state_valid_productions = productions.filtered(lambda x: x.programming_state == '已编程' and x.tool_state == '2')
|
||||
tool_state_valid_productions = productions.filtered(lambda x: x.tool_state == '2')
|
||||
if tool_state_valid_productions:
|
||||
data = {
|
||||
'name': tool_state_valid_productions[0].programming_no
|
||||
@@ -39,3 +39,22 @@ class MessageSfMrsConnect(Sf_Mrs_Connect):
|
||||
_logger.info('无效用刀异常消息推送接口:%s' % e)
|
||||
return json.JSONEncoder().encode(res)
|
||||
|
||||
@http.route('/api/maintenance_logs/notify', type='json', auth='public', methods=['GET', 'POST'], csrf=False, cors="*")
|
||||
def maintenance_logs_notify(self, **kw):
|
||||
res = {'code': 200, 'message': '设备故障日志信息推送成功'}
|
||||
datas = request.httprequest.data
|
||||
ret = json.loads(datas)
|
||||
log_id = ret.get('log_id')
|
||||
if not log_id:
|
||||
res = {'code': 400, 'message': '设备故障日志id不能为空'}
|
||||
return json.JSONEncoder().encode(res)
|
||||
try:
|
||||
if not isinstance(log_id, list):
|
||||
log_id = [log_id]
|
||||
maintenance_logs = request.env['sf.maintenance.logs'].sudo().search([('id', 'in', [int(id) for id in log_id])])
|
||||
if maintenance_logs:
|
||||
maintenance_logs.add_queue('设备故障')
|
||||
except Exception as e:
|
||||
res = {'code': 400, 'message': '设备故障信息推送失败', 'error': str(e)}
|
||||
return json.JSONEncoder().encode(res)
|
||||
|
||||
|
||||
@@ -94,5 +94,9 @@
|
||||
<!-- <field name="name">表面工艺工单已逾期</field>-->
|
||||
<!-- <field name="model">mrp.workorder</field>-->
|
||||
<!-- </record>-->
|
||||
<record id="bussiness_maintenance_logs" model="jikimo.message.bussiness.node">
|
||||
<field name="name">设备故障</field>
|
||||
<field name="model">sf.maintenance.logs</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -132,5 +132,16 @@
|
||||
单号:发料出库单[{{name}}]({{request_url}})
|
||||
事项:销售订单{{sale_order_name}}已全部产出并入库,请及时发货</field>
|
||||
</record>
|
||||
<record id="template_maintenance_logs" model="jikimo.message.template">
|
||||
<field name="name">设备故障</field>
|
||||
<field name="model_id" ref="sf_maintenance.model_sf_maintenance_logs"/>
|
||||
<field name="model">sf.maintenance.logs</field>
|
||||
<field name="bussiness_node_id" ref="bussiness_maintenance_logs"/>
|
||||
<field name="msgtype">markdown</field>
|
||||
<field name="urgency">urgent</field>
|
||||
<field name="content">### 设备故障及异常提醒:
|
||||
机台号:[{{maintenance_equipment_id.name}}]({{url}})
|
||||
事项:{{create_date}}故障报警</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -8,3 +8,4 @@ from . import sf_message_purchase
|
||||
from . import sf_message_workorder
|
||||
from . import sf_message_functional_tool_dismantle
|
||||
from . import sf_message_mrp_production
|
||||
from . import sf_message_maintenance_logs
|
||||
|
||||
22
sf_message/models/sf_message_maintenance_logs.py
Normal file
22
sf_message/models/sf_message_maintenance_logs.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from odoo import models, fields, api
|
||||
|
||||
class SFMessageMaintenanceLogs(models.Model):
|
||||
_name = 'sf.maintenance.logs'
|
||||
_inherit = ['sf.maintenance.logs', 'jikimo.message.dispatch']
|
||||
|
||||
@api._model_create_multi
|
||||
def create(self, vals_list):
|
||||
res = super(SFMessageMaintenanceLogs, self).create(vals_list)
|
||||
for rec in res:
|
||||
rec.add_queue()
|
||||
return res
|
||||
|
||||
def _get_message(self, message_queue_ids):
|
||||
contents = super(SFMessageMaintenanceLogs, self)._get_message(message_queue_ids)
|
||||
url = self.env['ir.config_parameter'].get_param('web.base.url')
|
||||
action_id = self.env.ref('sf_maintenance.action_maintenance_logs').id
|
||||
for index, content in enumerate(contents):
|
||||
maintenance_logs_id = self.env['sf.maintenance.logs'].browse(message_queue_ids[index].res_id)
|
||||
url = url + '/web#id=%s&view_type=form&action=%s' % (maintenance_logs_id.id, action_id)
|
||||
contents[index] = content.replace('{{url}}', url)
|
||||
return contents
|
||||
@@ -14,4 +14,5 @@ class SfMessageTemplate(models.Model):
|
||||
res.append('sf.functional.tool.dismantle')
|
||||
res.append('purchase.order')
|
||||
res.append('mrp.workorder')
|
||||
res.append('sf.maintenance.logs')
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user