修复返工bug

This commit is contained in:
jinling.yang
2024-07-18 16:17:19 +08:00
parent 7163e025d2
commit 33bf88968c
5 changed files with 75 additions and 41 deletions

View File

@@ -19,7 +19,7 @@ from odoo.addons.sf_mrs_connect.models.ftp_operate import FtpController
class ResMrpWorkOrder(models.Model):
_inherit = 'mrp.workorder'
_order = 'id'
_order = 'sequence asc'
product_tmpl_name = fields.Char('坯料产品名称', related='production_bom_id.bom_line_ids.product_id.name')
@@ -47,7 +47,18 @@ class ResMrpWorkOrder(models.Model):
('切割', '切割'), ('表面工艺', '表面工艺')
], string="工序类型")
results = fields.Char('结果')
state = fields.Selection(selection_add=[('to be detected', "待检测"), ('rework', '返工')], tracking=True)
state = fields.Selection([
('pending', '等待其他工单'),
('waiting', '等待组件'),
('ready', '就绪'),
('progress', '进行中'),
('to be detected', "待检测"),
('done', '已完工'),
('rework', '返工'),
('cancel', '取消')], string='Status',
compute='_compute_state', store=True,
default='pending', copy=False, readonly=True, recursive=True, index=True, tracking=True)
# state = fields.Selection(selection_add=[('to be detected', "待检测"), ('rework', '返工')], tracking=True)
manual_quotation = fields.Boolean('人工编程', default=False, readonly=True)
@@ -474,6 +485,7 @@ class ResMrpWorkOrder(models.Model):
'context': {
'default_workorder_id': self.id,
'default_production_id': self.production_id.id,
# 'default_programming_state': self.production_id.programming_state,
'default_routing_type': self.routing_type
}}
@@ -684,8 +696,6 @@ class ResMrpWorkOrder(models.Model):
# 'target':'new'
# }
def json_workorder_str1(self, k, production, route):
workorders_values_str = [0, '', {
'product_uom_id': production.product_uom_id.id,
@@ -736,15 +746,26 @@ class ResMrpWorkOrder(models.Model):
('routing_type', '=', '装夹预调'), ('state', '=', 'done')])
if pre_workorder:
workorder.state = 'waiting'
if workorder.routing_type == '解除装夹' and workorder.state not in ['done', 'rework', 'cancel']:
cnc_workorder = self.env['mrp.workorder'].search(
[('production_id', '=', workorder.production_id.id),
('processing_panel', '=', workorder.processing_panel),
('routing_type', '=', 'CNC加工'), ('state', '=', 'done')])
if cnc_workorder:
workorder.state = 'waiting'
elif workorder.production_id.state == 'progress':
logging.info('len(re_work):%s' % len(re_work))
logging.info('工序:%s' % workorder.routing_type)
logging.info('状态:%s' % workorder.state)
logging.info('is_rework:%s' % workorder.is_rework)
logging.info('面:%s' % workorder.processing_panel)
logging.info('reprogramming_num:%s' % workorder.production_id.reprogramming_num)
logging.info('编程状态:%s' % workorder.production_id.programming_state)
logging.info('制造状态:%s' % workorder.production_id.state)
if workorder.routing_type == '装夹预调' and workorder.production_id.programming_state == '下发':
if workorder.routing_type == '装夹预调' and workorder.production_id.programming_state == '编程' and \
workorder.is_rework is False and workorder.state not in [
'done', 'rework',
'cancel']:
if re_work:
workorder.state = 'ready'
# else: