diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index 70b0b87b..7203f19c 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -445,32 +445,7 @@ class Manufacturing_Connect(http.Controller): shelfinfo = list(filter(lambda x: x.get('DeviceId') == DeciveId, request.env['sf.shelf.location'].sudo().get_sf_shelf_location_info( DeciveId))) - total_data = request.env['sf.shelf.location.datasync'].sudo().get_total_data() - for item in shelfinfo: - logging.info('货架已获取信息:%s' % item) - shelf_barcode = request.env['sf.shelf.location.datasync'].sudo().find_our_code( - total_data, item['Postion']) - location_id = request.env['sf.shelf.location'].sudo().search( - [('barcode', '=', shelf_barcode)], - limit=1) - if location_id: - # 如果是线边刀库信息,则对功能刀具移动生成记录 - if 'Tool' in item['Postion']: - tool = request.env['sf.functional.cutting.tool.entity'].sudo().search( - [('rfid', '=', item['RfidCode']), ('functional_tool_status', '!=', '已拆除')]) - tool.sudo().tool_in_out_stock_location(location_id) - if tool: - location_id.product_sn_id = tool.barcode_id.id - # 修改功能刀具状态 - if item.get('State') == '报警': - if tool.functional_tool_status != item.get('State'): - tool.write({ - 'functional_tool_status': item['State'] - }) - else: - location_id.product_sn_id = False - if item['RfidCode']: - logging.info('Rfid为【%s】的功能刀具在系统中不存在!' % item['RfidCode']) + request.env['sf.shelf.location.datasync'].sudo().set_shelf_location(shelfinfo) else: equipment_id = request.env['maintenance.equipment'].sudo().search([('name', '=', DeciveId)]) if equipment_id: diff --git a/sf_message/data/template_data.xml b/sf_message/data/template_data.xml index 158535a4..0c8bd4b7 100644 --- a/sf_message/data/template_data.xml +++ b/sf_message/data/template_data.xml @@ -210,8 +210,8 @@ markdown normal ### 功能刀具寿命到期提醒: -单号:拆解单[{{code}}]({{tool_expired_remind_special_url}}) -事项:{{functional_tool_id.tool_name_id.name}}寿命已到期,需拆解 +单号:拆解单[{{code}}]({{request_url}}) +事项:{{name}}寿命已到期,需拆解 diff --git a/sf_message/models/sf_message_functional_tool_dismantle.py b/sf_message/models/sf_message_functional_tool_dismantle.py index 5f844064..877db2b6 100644 --- a/sf_message/models/sf_message_functional_tool_dismantle.py +++ b/sf_message/models/sf_message_functional_tool_dismantle.py @@ -1,4 +1,5 @@ from odoo import models, api +from urllib.parse import urlencode class SFMessagefunctionalToolDismantle(models.Model): @@ -18,12 +19,39 @@ class SFMessagefunctionalToolDismantle(models.Model): obj.add_queue('功能刀具寿命到期') return result - def get_special_url(self,id,tmplate_name,special_name,model_id): + def _get_message(self, message_queue_ids): + contents = [] + for message_queue_id in message_queue_ids: + if message_queue_id.message_template_id.name == '功能刀具寿命到期': + content = message_queue_id.message_template_id.content + td_line = self.search([('id', '=', int(message_queue_id.res_id))]) + url = self.request_url(int(message_queue_id.res_id)) + content = content.replace('{{code}}', td_line.code).replace( + '{{request_url}}', url).replace('{{name}}', td_line.name) + contents.append(content) + return contents, message_queue_ids + + def request_url(self, id): + url = self.env['ir.config_parameter'].get_param('web.base.url') + action_id = self.env.ref('sf_tool_management.sf_functional_tool_dismantle_view_act').id + menu_id = self.env.ref('sf_tool_management.menu_sf_functional_tool_dismantle').id + # 查询参数 + params = {'id': id, 'menu_id': menu_id, 'action': action_id, + 'model': 'sf.functional.tool.dismantle', + 'view_type': 'form'} + # 拼接查询参数 + tool_string = urlencode(params) + # 拼接URL + full_url = url + "/web#" + tool_string + return full_url + + def get_special_url(self, id, tmplate_name, special_name, model_id): menu_id = 0 action_id = 0 - if tmplate_name=='调拨入库' and special_name== 'tool_expired_remind_special_url': + if tmplate_name == '调拨入库' and special_name == 'tool_expired_remind_special_url': menu_id = self.env.ref('mrp.menu_mrp_root').id action_id = self.env.ref('sf_tool_management.sf_functional_tool_dismantle_view_act').id - return super(SFMessagefunctionalToolDismantle, self).get_url(id, menu_id, action_id,model_id) + return super(SFMessagefunctionalToolDismantle, self).get_url(id, menu_id, action_id, model_id) else: - return super(SFMessagefunctionalToolDismantle, self).get_special_url(id, tmplate_name, special_name, model_id) \ No newline at end of file + return super(SFMessagefunctionalToolDismantle, self).get_special_url(id, tmplate_name, special_name, + model_id) diff --git a/sf_message/models/sf_message_quality_check.py b/sf_message/models/sf_message_quality_check.py index 31e92370..1f0950ad 100644 --- a/sf_message/models/sf_message_quality_check.py +++ b/sf_message/models/sf_message_quality_check.py @@ -43,14 +43,17 @@ class SFMessageQualityCheck(models.Model): # ('message_template_id', '=', message_template.id)]) # return jikimo_message_queue def write(self, vals): - original_state = self.quality_state + original_state = {} + for item in self: + original_state.update({f'{item.id}': item.quality_state}) res = super(SFMessageQualityCheck, self).write(vals) - if res and vals.get('quality_state') == 'none' and original_state != 'none': - message_template_id = self.env['jikimo.message.template'].sudo().search([('name', '=', '待质检提醒')]) - queue_id = self.env['jikimo.message.queue'].sudo().search( - [('message_template_id', '=', message_template_id[-1].id), ('res_id', '=', self.id)]) - if not queue_id and '制造' not in [pt.name for pt in self.point_id.picking_type_ids]: - self.add_queue('待质检') + for item in self: + if vals.get('quality_state') == 'none' and original_state.get(f'{item.id}') != 'none': + message_template_id = self.env['jikimo.message.template'].sudo().search([('name', '=', '待质检提醒')]) + queue_id = self.env['jikimo.message.queue'].sudo().search( + [('message_template_id', '=', message_template_id[-1].id), ('res_id', '=', item.id)]) + if not queue_id and '制造' not in [pt.name for pt in item.point_id.picking_type_ids]: + item.add_queue('待质检') return res def _get_message(self, message_queue_ids): diff --git a/sf_tool_management/models/functional_tool.py b/sf_tool_management/models/functional_tool.py index dcbca0e7..2568dc89 100644 --- a/sf_tool_management/models/functional_tool.py +++ b/sf_tool_management/models/functional_tool.py @@ -58,20 +58,6 @@ class FunctionalCuttingToolEntity(models.Model): safe_inventory_id = fields.Many2one('sf.real.time.distribution.of.functional.tools', string='功能刀具安全库存', readonly=True) - @api.onchange('functional_tool_status') - def _onchange_functional_tool_status(self): - for item in self: - if item: - if item.functional_tool_status == '报警': - self.create_tool_dismantle() - - def set_functional_tool_status(self): - # self.write({ - # 'functional_tool_status': '报警' - # }) - self.functional_tool_status = '报警' - self.create_tool_dismantle() - def create_tool_dismantle(self): for item in self: # 创建报警刀具拆解单 diff --git a/sf_tool_management/views/functional_tool_views.xml b/sf_tool_management/views/functional_tool_views.xml index 25b9346a..a306d6dd 100644 --- a/sf_tool_management/views/functional_tool_views.xml +++ b/sf_tool_management/views/functional_tool_views.xml @@ -42,7 +42,6 @@
-