Accept Merge Request #1457: (feature/修复工单提醒 -> develop)
Merge Request: 修复工单提醒 Created By: @杨金灵 Reviewed By: @马广威 Approved By: @马广威 Accepted By: @杨金灵 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1457
This commit is contained in:
@@ -1,2 +1,5 @@
|
|||||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||||
"access_jikimo_workorder_exception","access.jikimo.workorder.exception","model_jikimo_workorder_exception","mrp.group_mrp_user",1,1,1,0
|
"access_jikimo_workorder_exception","access.jikimo.workorder.exception","model_jikimo_workorder_exception","mrp.group_mrp_user",1,1,1,0
|
||||||
|
"access_jikimo_workorder_exception_group_quality","access.jikimo.workorder.exception.group_quality","model_jikimo_workorder_exception","sf_base.group_quality",1,1,1,0
|
||||||
|
"access_jikimo_workorder_exception_group_quality_director","access.jikimo.workorder.exception.group_quality_director","model_jikimo_workorder_exception","sf_base.group_quality_director",1,1,1,0
|
||||||
|
|
||||||
|
|||||||
|
@@ -111,31 +111,31 @@ class SFMessageSale(models.Model):
|
|||||||
production_done_count = len(production.filtered(lambda p: p.state in ['done', 'scrap', 'cancel']))
|
production_done_count = len(production.filtered(lambda p: p.state in ['done', 'scrap', 'cancel']))
|
||||||
if (len(production_not_done) >= 1 and len(production_not_done) != item.mrp_production_count) or len(
|
if (len(production_not_done) >= 1 and len(production_not_done) != item.mrp_production_count) or len(
|
||||||
production_not_done) != production_done_count:
|
production_not_done) != production_done_count:
|
||||||
logging.info("-----不等于----")
|
# logging.info("-----不等于----")
|
||||||
logging.info(f"name: {item.name}")
|
# logging.info(f"name: {item.name}")
|
||||||
logging.info(
|
# logging.info(
|
||||||
f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
# f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
||||||
logging.info(f"deadline_of_delivery: {item.deadline_of_delivery}")
|
# logging.info(f"deadline_of_delivery: {item.deadline_of_delivery}")
|
||||||
if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
|
if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
|
||||||
item.delivery_warning = 'warning'
|
item.delivery_warning = 'warning'
|
||||||
elif today >= item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
|
elif today >= item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
|
||||||
item.delivery_warning = 'overdue'
|
item.delivery_warning = 'overdue'
|
||||||
elif production_done_count == item.mrp_production_count:
|
elif production_done_count == item.mrp_production_count:
|
||||||
logging.info("-----等于----")
|
# logging.info("-----等于----")
|
||||||
logging.info(f"name: {item.name}")
|
# logging.info(f"name: {item.name}")
|
||||||
logging.info(
|
# logging.info(
|
||||||
f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
# f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
||||||
logging.info(f"deadline_of_delivery: {item.deadline_of_delivery}")
|
# logging.info(f"deadline_of_delivery: {item.deadline_of_delivery}")
|
||||||
if item.delivery_status in ['pending', 'partial']:
|
if item.delivery_status in ['pending', 'partial']:
|
||||||
if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
|
if deadline_check == item.deadline_of_delivery and item.delivery_warning not in ['warning']:
|
||||||
item.delivery_warning = 'warning'
|
item.delivery_warning = 'warning'
|
||||||
elif today >= item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
|
elif today >= item.deadline_of_delivery and item.delivery_warning not in ['overdue']:
|
||||||
item.delivery_warning = 'overdue'
|
item.delivery_warning = 'overdue'
|
||||||
else:
|
else:
|
||||||
logging.info("-----1111111----")
|
# logging.info("-----1111111----")
|
||||||
logging.info(f"name: {item.name}")
|
# logging.info(f"name: {item.name}")
|
||||||
logging.info(
|
# logging.info(
|
||||||
f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
# f"production_not_done: {len(production_not_done)}, production_done_count: {production_done_count}")
|
||||||
continue
|
continue
|
||||||
# 获取业务节点
|
# 获取业务节点
|
||||||
business_node_ids = {
|
business_node_ids = {
|
||||||
|
|||||||
@@ -127,10 +127,14 @@ class SFMessageWork(models.Model):
|
|||||||
f"Planned Finish: {date_planned_finished}")
|
f"Planned Finish: {date_planned_finished}")
|
||||||
item.delivery_warning = 'warning'
|
item.delivery_warning = 'warning'
|
||||||
business_node_ids = {
|
business_node_ids = {
|
||||||
'装夹预调': self.env.ref('sf_message.bussiness_mrp_workorder_pre_overdue_warning').id,
|
'装夹预调_overdue': self.env.ref('sf_message.bussiness_mrp_workorder_pre_overdue').id,
|
||||||
'CNC加工': self.env.ref('sf_message.bussiness_mrp_workorder_cnc_overdue_warning').id,
|
'装夹预调_warning': self.env.ref('sf_message.bussiness_mrp_workorder_pre_overdue_warning').id,
|
||||||
'解除装夹': self.env.ref('sf_message.bussiness_mrp_workorder_unclamp_overdue_warning').id,
|
'CNC加工_overdue': self.env.ref('sf_message.bussiness_mrp_workorder_cnc_overdue').id,
|
||||||
'表面工艺': self.env.ref('sf_message.bussiness_mrp_workorder_surface_overdue_warning').id,
|
'CNC加工_warning': self.env.ref('sf_message.bussiness_mrp_workorder_cnc_overdue_warning').id,
|
||||||
|
'解除装夹_overdue': self.env.ref('sf_message.bussiness_mrp_workorder_unclamp_overdue').id,
|
||||||
|
'解除装夹_warning': self.env.ref('sf_message.bussiness_mrp_workorder_unclamp_overdue_warning').id,
|
||||||
|
'表面工艺_overdue': self.env.ref('sf_message.bussiness_mrp_workorder_surface_overdue').id,
|
||||||
|
'表面工艺_warning': self.env.ref('sf_message.bussiness_mrp_workorder_surface_overdue_warning').id,
|
||||||
}
|
}
|
||||||
message_templates = {key: self.env["jikimo.message.template"].sudo().search([
|
message_templates = {key: self.env["jikimo.message.template"].sudo().search([
|
||||||
("model", "=", self._name),
|
("model", "=", self._name),
|
||||||
@@ -138,13 +142,17 @@ class SFMessageWork(models.Model):
|
|||||||
]) for key in business_node_ids}
|
]) for key in business_node_ids}
|
||||||
for item in orders:
|
for item in orders:
|
||||||
if item.delivery_warning in ['overdue', 'warning']:
|
if item.delivery_warning in ['overdue', 'warning']:
|
||||||
bussiness_node_id = business_node_ids.get(item.routing_type)
|
warning_type = 'warning' if item.delivery_warning == 'warning' else 'overdue'
|
||||||
if bussiness_node_id and message_templates[item.routing_type]:
|
key = f"{item.routing_type}_{warning_type}"
|
||||||
message_queue_ids = self.env["jikimo.message.queue"].sudo().search([
|
bussiness_node_id = business_node_ids.get(key, None)
|
||||||
("message_template_id", "=", message_templates[item.routing_type].id),
|
if bussiness_node_id:
|
||||||
("message_status", "=", "pending"),
|
message_template = message_templates.get(key)
|
||||||
("res_id", "=", item.id)
|
if message_template and message_template.id:
|
||||||
])
|
message_queue_ids = self.env["jikimo.message.queue"].sudo().search([
|
||||||
|
("message_template_id", "=", message_template.id),
|
||||||
|
("message_status", "=", "pending"),
|
||||||
|
("res_id", "=", item.id)
|
||||||
|
], limit=1)
|
||||||
if not message_queue_ids:
|
if not message_queue_ids:
|
||||||
overdue_message = '工单已逾期' if item.delivery_warning == 'overdue' else '工单逾期预警'
|
overdue_message = '工单已逾期' if item.delivery_warning == 'overdue' else '工单逾期预警'
|
||||||
queue_method_name = f'add_queue'
|
queue_method_name = f'add_queue'
|
||||||
|
|||||||
Reference in New Issue
Block a user