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 @@