diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py
index 6c6b1bf8..152ae0c3 100644
--- a/sf_manufacturing/models/product_template.py
+++ b/sf_manufacturing/models/product_template.py
@@ -9,8 +9,8 @@ from odoo.exceptions import ValidationError, UserError
from odoo.modules import get_resource_path
-from OCC.Extend.DataExchange import read_step_file
-from OCC.Extend.DataExchange import write_stl_file
+# from OCC.Extend.DataExchange import read_step_file
+# from OCC.Extend.DataExchange import write_stl_file
class ResProductMo(models.Model):
diff --git a/sf_message/models/sf_message_maintenance_logs.py b/sf_message/models/sf_message_maintenance_logs.py
index 288043ff..115d073b 100644
--- a/sf_message/models/sf_message_maintenance_logs.py
+++ b/sf_message/models/sf_message_maintenance_logs.py
@@ -4,12 +4,12 @@ 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
+ # @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)
diff --git a/sf_message/models/sf_message_sale.py b/sf_message/models/sf_message_sale.py
index 13a5f796..5f517d8d 100644
--- a/sf_message/models/sf_message_sale.py
+++ b/sf_message/models/sf_message_sale.py
@@ -49,7 +49,7 @@ class SFMessageSale(models.Model):
current_time_strf = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
current_time = self.env['sf.sync.common'].sudo().get_add_time(current_time_strf)
current_time_datetime = datetime.strptime(current_time, '%Y-%m-%d %H:%M:%S')
- time_range = timedelta(minutes=2)
+ time_range = timedelta(minutes=30)
i = 0
for item in message_queue_ids:
if item.message_template_id.bussiness_node_id.name == '待接单':
@@ -109,33 +109,36 @@ class SFMessageSale(models.Model):
production_not_done = production.filtered(lambda p: p.state not in ['done', 'scrap', 'cancel'])
production_done_count = len(production.filtered(lambda p: p.state in ['done', 'scrap', 'cancel']))
if len(production_not_done) != item.mrp_production_count:
- if deadline_check == item.deadline_of_delivery:
+ if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
item.delivery_warning = 'warning'
- elif today == item.deadline_of_delivery:
+ elif today == item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
item.delivery_warning = 'overdue'
elif production_done_count == item.mrp_production_count:
if item.delivery_status in ['pending', 'partial']:
- if deadline_check == item.deadline_of_delivery:
+ if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
item.delivery_warning = 'warning'
- elif today == item.deadline_of_delivery:
+ elif today == item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
item.delivery_warning = 'overdue'
else:
continue
+ # 获取业务节点
+ business_node_ids = {
+ 'warning': self.env.ref('sf_message.bussiness_sale_order_overdue_warning').id,
+ 'overdue': self.env.ref('sf_message.bussiness_sale_order_overdue').id
+ }
overdue_orders = self.sudo().search([('delivery_warning', 'in', ['warning', 'overdue'])])
for wo in overdue_orders:
- message_template = self.env["jikimo.message.template"].search([
- ("model", "=", self._name),
- ("bussiness_node_id", "=", self.env.ref('sf_message.bussiness_sale_order_overdue_warning').id)
- ])
- sale_order_has = self.env['jikimo.message.queue'].search([
- ('res_id', '=', wo.id),
- ('message_status', '=', 'pending'),
- ('message_template_id', '=', message_template.id)
- ])
- if not sale_order_has:
- if wo.delivery_warning == 'warning':
- wo.add_queue('销售订单逾期预警')
- elif wo.delivery_warning == 'overdue':
- wo.add_queue('销售订单已逾期')
-
-
+ business_node_id = business_node_ids.get(wo.delivery_warning)
+ if business_node_id:
+ message_template = self.env["jikimo.message.template"].search([
+ ("model", "=", self._name),
+ ("bussiness_node_id", "=", business_node_id)
+ ], limit=1)
+ sale_order_has = self.env['jikimo.message.queue'].search([
+ ('res_id', '=', wo.id),
+ ('message_status', '=', 'pending'),
+ ('message_template_id', '=', message_template.id)
+ ])
+ if not sale_order_has:
+ message_name = '销售订单逾期预警' if wo.delivery_warning == 'warning' else '销售订单已逾期'
+ wo.add_queue(message_name)
diff --git a/sf_message/models/sf_message_workorder.py b/sf_message/models/sf_message_workorder.py
index 505b6f93..ff77cd61 100644
--- a/sf_message/models/sf_message_workorder.py
+++ b/sf_message/models/sf_message_workorder.py
@@ -115,12 +115,13 @@ class SFMessageWork(models.Model):
item.date_planned_finished.strftime("%Y-%m-%d %H:%M:%S"))
date_planned_finished = datetime.strptime(date_planned_finished_str, '%Y-%m-%d %H:%M:%S')
twelve_hours_ago = current_time_datetime - timedelta(hours=12)
- if current_time_datetime >= date_planned_finished:
+ if current_time_datetime >= date_planned_finished and item.delivery_warning not in ['overdue']:
logging.info("------overdue-------")
logging.info(f"Workorder: {item.production_id.name}, Current Time: {current_time_datetime}, "
f"Planned Finish: {date_planned_finished}")
item.delivery_warning = 'overdue'
- elif twelve_hours_ago <= current_time_datetime <= date_planned_finished:
+ elif twelve_hours_ago <= current_time_datetime <= date_planned_finished and item.delivery_warning not in [
+ 'warning']:
logging.info("------warning-------")
logging.info(f"Workorder: {item.production_id.name}, Current Time: {current_time_datetime}, "
f"Planned Finish: {date_planned_finished}")
diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py
index 081807a4..cb1886a1 100644
--- a/sf_sale/models/quick_easy_order.py
+++ b/sf_sale/models/quick_easy_order.py
@@ -8,8 +8,8 @@ from datetime import datetime
import requests
from odoo import http
from odoo.http import request
-from OCC.Extend.DataExchange import read_step_file
-from OCC.Extend.DataExchange import write_stl_file
+# from OCC.Extend.DataExchange import read_step_file
+# from OCC.Extend.DataExchange import write_stl_file
from odoo import models, fields, api
from odoo.modules import get_resource_path
from odoo.exceptions import ValidationError, UserError
diff --git a/sf_sale/models/quick_easy_order_old.py b/sf_sale/models/quick_easy_order_old.py
index 4756a2c5..9bd61132 100644
--- a/sf_sale/models/quick_easy_order_old.py
+++ b/sf_sale/models/quick_easy_order_old.py
@@ -6,8 +6,8 @@ import os
from datetime import datetime
from stl import mesh
# from OCC.Core.GProp import GProp_GProps
-from OCC.Extend.DataExchange import read_step_file
-from OCC.Extend.DataExchange import write_stl_file
+# from OCC.Extend.DataExchange import read_step_file
+# from OCC.Extend.DataExchange import write_stl_file
from odoo.addons.sf_base.commons.common import Common
from odoo import models, fields, api
from odoo.modules import get_resource_path
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index 61b53b08..e62fc6e1 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -95,7 +95,7 @@
{'readonly': [('state', 'in', ['cancel','sale'])]}
-
+