Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/销售订单和工单逾期消息推送
# Conflicts: # sf_message/__manifest__.py # sf_message/data/bussiness_node.xml # sf_message/models/sf_message_sale.py
This commit is contained in:
@@ -6,4 +6,4 @@ from . import sf_message_cam_program
|
||||
from . import sf_message_functional_tool_assembly
|
||||
from . import sf_message_purchase
|
||||
from . import sf_message_workorder
|
||||
from . import sf_message_functional_tool_dismantle
|
||||
from . import sf_message_functional_tool_dismantle
|
||||
|
||||
@@ -41,26 +41,30 @@ class SFMessageSale(models.Model):
|
||||
|
||||
# 继承并重写jikimo.message.dispatch的_get_message()
|
||||
def _get_message(self, message_queue_ids):
|
||||
res = super(SFMessageSale, self)._get_message(message_queue_ids)
|
||||
new_res = []
|
||||
processed_messages = set() # 用于跟踪已经处理过的消息
|
||||
contents = []
|
||||
url = self.env['ir.config_parameter'].get_param('web.base.url')
|
||||
for item in message_queue_ids:
|
||||
if item.message_template_id.bussiness_node_id.name == '确认接单':
|
||||
# 待接单的处理
|
||||
if item.message_template_id.bussiness_node_id.name == '待接单':
|
||||
content = super(SFMessageSale, self)._get_message(item)
|
||||
action_id = self.env.ref('sale.action_quotations_with_onboarding').id
|
||||
url = f"{url}/web#id={item.res_id}view_type=form&action={action_id}"
|
||||
content = content[0].replace('{{url}}', url)
|
||||
contents.append(content)
|
||||
# 确认接单的处理
|
||||
elif item.message_template_id.bussiness_node_id.name == '确认接单':
|
||||
content = super(SFMessageSale, self)._get_message(item)
|
||||
sale_order_line = self.env['sale.order.line'].search([('order_id', '=', int(item.res_id))])
|
||||
if len(sale_order_line) == 1:
|
||||
product = sale_order_line[0].product_id.name
|
||||
elif len(sale_order_line) > 1:
|
||||
product = '%s...' % sale_order_line[0].product_id.name
|
||||
for message in res:
|
||||
message_text = message.replace('{{product_id}}', product)
|
||||
if message_text not in processed_messages:
|
||||
new_res.append(message_text)
|
||||
processed_messages.add(message_text)
|
||||
if new_res:
|
||||
res = new_res
|
||||
return res
|
||||
product = sale_order_line[0].product_id.name if len(sale_order_line) == 1 else '%s...' % \
|
||||
sale_order_line[
|
||||
0].product_id.name
|
||||
action_id = self.env.ref('sf_plan.sf_production_plan_action1').id
|
||||
url = f"{url}/web#view_type=list&action={action_id}"
|
||||
content = content[0].replace('{{product_id}}', product).replace('{{url}}', url)
|
||||
contents.append(content)
|
||||
return contents
|
||||
|
||||
# 销售订单逾期预警
|
||||
# # 销售订单逾期预警
|
||||
def _overdue_warning_func(self):
|
||||
sale_order_
|
||||
return 1
|
||||
@@ -68,3 +72,4 @@ class SFMessageSale(models.Model):
|
||||
# 销售订单已逾期
|
||||
def _overdue_func(self):
|
||||
return 1
|
||||
|
||||
|
||||
@@ -39,28 +39,6 @@ class SFMessageWork(models.Model):
|
||||
contents.append(content)
|
||||
return contents
|
||||
|
||||
@api.depends('cnc_ids.tool_state')
|
||||
def _compute_tool_state(self):
|
||||
# 将self的id与tool_state进行保存
|
||||
tool_state_dict = {record.id: record.tool_state for record in self}
|
||||
res = super(SFMessageWork, self)._compute_tool_state()
|
||||
data = {'name': []}
|
||||
for record in self:
|
||||
if tool_state_dict[record.id] != '2' and record.tool_state == '2':
|
||||
data['name'].append(record.production_id.programming_no)
|
||||
|
||||
if data['name']:
|
||||
# 请求cloud接口,发送微信消息推送
|
||||
configsettings = self.env['res.config.settings'].get_values()
|
||||
config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key'])
|
||||
url = '/api/message/invalid_tool_state'
|
||||
config_url = configsettings['sf_url'] + url
|
||||
data['token'] = configsettings['token']
|
||||
ret = requests.post(config_url, json=data, headers=config_header)
|
||||
ret = ret.json()
|
||||
_logger.info('无效用刀异常消息推送接口:%s' % ret)
|
||||
return res
|
||||
|
||||
def request_url(self):
|
||||
we_config_info = self.env['we.config'].sudo().search([], limit=1)
|
||||
redirect_domain = self.env['we.app'].sudo().search([('id', '=', we_config_info.odoo_app_id.id)]).redirect_domain
|
||||
@@ -75,3 +53,4 @@ class SFMessageWork(models.Model):
|
||||
# 拼接URL
|
||||
full_url = full_url + "web#" + query_string
|
||||
return full_url
|
||||
|
||||
|
||||
Reference in New Issue
Block a user