确认工艺路线新增表面工艺参数需要同步到产品的加工参数中
This commit is contained in:
@@ -333,6 +333,13 @@ class MrpProduction(models.Model):
|
|||||||
technology_design_ids = fields.One2many('sf.technology.design', 'production_id', string='工艺设计')
|
technology_design_ids = fields.One2many('sf.technology.design', 'production_id', string='工艺设计')
|
||||||
is_adjust = fields.Boolean('是否退回调整', default=False)
|
is_adjust = fields.Boolean('是否退回调整', default=False)
|
||||||
|
|
||||||
|
def write(self, vals):
|
||||||
|
res = super(MrpProduction, self).write(vals)
|
||||||
|
if 'technology_design_ids' in vals:
|
||||||
|
process_parameters_id = self.technology_design_ids.mapped('process_parameters_id')
|
||||||
|
self.product_id.model_process_parameters_ids = process_parameters_id.ids
|
||||||
|
return res
|
||||||
|
|
||||||
@api.depends('remanufacture_production_id')
|
@api.depends('remanufacture_production_id')
|
||||||
def _compute_remanufacture_production_ids(self):
|
def _compute_remanufacture_production_ids(self):
|
||||||
for production in self:
|
for production in self:
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ class sf_technology_design(models.Model):
|
|||||||
# def _compute_group_uniq_id(self):
|
# def _compute_group_uniq_id(self):
|
||||||
# for record in self:
|
# for record in self:
|
||||||
|
|
||||||
|
|
||||||
def json_technology_design_str(self, k, route, i, process_parameter):
|
def json_technology_design_str(self, k, route, i, process_parameter):
|
||||||
workorders_values_str = [0, '', {
|
workorders_values_str = [0, '', {
|
||||||
'route_id': route.id if route.routing_type in ['表面工艺'] else route.route_workcenter_id.id,
|
'route_id': route.id if route.routing_type in ['表面工艺'] else route.route_workcenter_id.id,
|
||||||
@@ -36,11 +35,16 @@ class sf_technology_design(models.Model):
|
|||||||
return workorders_values_str
|
return workorders_values_str
|
||||||
|
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
return super(sf_technology_design, self).write(vals)
|
res = super(sf_technology_design, self).write(vals)
|
||||||
|
if 'active' in vals:
|
||||||
|
if self.production_id:
|
||||||
|
process_parameters_id = self.production_id.technology_design_ids.mapped('process_parameters_id')
|
||||||
|
self.production_id.product_id.model_process_parameters_ids = process_parameters_id.ids
|
||||||
|
return res
|
||||||
|
|
||||||
def unlink_technology_design(self):
|
def unlink_technology_design(self):
|
||||||
self.active = False
|
self.active = False
|
||||||
|
|
||||||
|
|
||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
for vals in vals_list:
|
for vals in vals_list:
|
||||||
@@ -48,10 +52,12 @@ class sf_technology_design(models.Model):
|
|||||||
raise ValidationError(_("工序不能为空"))
|
raise ValidationError(_("工序不能为空"))
|
||||||
result = super(sf_technology_design, self).create(vals_list)
|
result = super(sf_technology_design, self).create(vals_list)
|
||||||
for res in result:
|
for res in result:
|
||||||
record = self.search([('production_id', '=', res.production_id.id), ('active', 'in', [True, False])], order='group_uniq_id desc', limit=1)
|
record = self.search([('production_id', '=', res.production_id.id), ('active', 'in', [True, False])],
|
||||||
res.group_uniq_id=record.group_uniq_id + 1
|
order='group_uniq_id desc', limit=1)
|
||||||
|
res.group_uniq_id = record.group_uniq_id + 1
|
||||||
return result
|
return result
|
||||||
def get_duplicates_with_inactive(self,technology_designs):
|
|
||||||
|
def get_duplicates_with_inactive(self, technology_designs):
|
||||||
# 统计每个 'sequence' 出现的次数
|
# 统计每个 'sequence' 出现的次数
|
||||||
sequence_count = Counter(technology_design.sequence for technology_design in technology_designs)
|
sequence_count = Counter(technology_design.sequence for technology_design in technology_designs)
|
||||||
|
|
||||||
@@ -62,6 +68,7 @@ class sf_technology_design(models.Model):
|
|||||||
]
|
]
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# def rearrange_numbering(self,self_technology_designs):
|
# def rearrange_numbering(self,self_technology_designs):
|
||||||
# inactive_designs = self.get_duplicates_with_inactive(self_technology_designs)
|
# inactive_designs = self.get_duplicates_with_inactive(self_technology_designs)
|
||||||
# if inactive_designs:
|
# if inactive_designs:
|
||||||
@@ -75,7 +82,7 @@ class sf_technology_design(models.Model):
|
|||||||
|
|
||||||
def get_technology_design(self):
|
def get_technology_design(self):
|
||||||
return {
|
return {
|
||||||
'sequence':self.sequence,
|
'sequence': self.sequence,
|
||||||
'route_id': self.route_id.id,
|
'route_id': self.route_id.id,
|
||||||
'process_parameters_id': self.process_parameters_id.id,
|
'process_parameters_id': self.process_parameters_id.id,
|
||||||
'panel': self.panel,
|
'panel': self.panel,
|
||||||
@@ -83,17 +90,19 @@ class sf_technology_design(models.Model):
|
|||||||
'time_cycle_manual': self.time_cycle_manual,
|
'time_cycle_manual': self.time_cycle_manual,
|
||||||
'is_auto': self.is_auto,
|
'is_auto': self.is_auto,
|
||||||
'active': self.active,
|
'active': self.active,
|
||||||
'group_uniq_id':self.group_uniq_id,
|
'group_uniq_id': self.group_uniq_id,
|
||||||
}
|
}
|
||||||
def sync_technology_designs(self,production_technology_designs, self_technology_designs):
|
|
||||||
|
def sync_technology_designs(self, production_technology_designs, self_technology_designs):
|
||||||
production_id = production_technology_designs[0].production_id.id
|
production_id = production_technology_designs[0].production_id.id
|
||||||
self_technology_design_dict = {item.group_uniq_id:item for item in self_technology_designs}
|
self_technology_design_dict = {item.group_uniq_id: item for item in self_technology_designs}
|
||||||
production_technology_designs_dict = {item.group_uniq_id:item for item in production_technology_designs}
|
production_technology_designs_dict = {item.group_uniq_id: item for item in production_technology_designs}
|
||||||
for technology_design in production_technology_designs:
|
for technology_design in production_technology_designs:
|
||||||
if not self_technology_design_dict.get(technology_design.group_uniq_id):
|
if not self_technology_design_dict.get(technology_design.group_uniq_id):
|
||||||
technology_design.write({'production_id': False})
|
technology_design.write({'production_id': False})
|
||||||
else:
|
else:
|
||||||
technology_design.write(self_technology_design_dict.get(technology_design.group_uniq_id).get_technology_design())
|
technology_design.write(
|
||||||
|
self_technology_design_dict.get(technology_design.group_uniq_id).get_technology_design())
|
||||||
for technology_design in self_technology_designs:
|
for technology_design in self_technology_designs:
|
||||||
if not production_technology_designs_dict.get(technology_design.group_uniq_id):
|
if not production_technology_designs_dict.get(technology_design.group_uniq_id):
|
||||||
technology_design = technology_design.get_technology_design()
|
technology_design = technology_design.get_technology_design()
|
||||||
@@ -101,9 +110,8 @@ class sf_technology_design(models.Model):
|
|||||||
technology_design.pop('group_uniq_id')
|
technology_design.pop('group_uniq_id')
|
||||||
self.env['sf.technology.design'].create(technology_design)
|
self.env['sf.technology.design'].create(technology_design)
|
||||||
|
|
||||||
|
def unified_procedure_multiple_work_orders(self, self_technology_designs, production_item):
|
||||||
|
|
||||||
def unified_procedure_multiple_work_orders(self,self_technology_designs,production_item):
|
|
||||||
technology_designs = self.env['sf.technology.design'].sudo().search(
|
technology_designs = self.env['sf.technology.design'].sudo().search(
|
||||||
[('production_id', '=', production_item.id), ('active', 'in', [True, False])])
|
[('production_id', '=', production_item.id), ('active', 'in', [True, False])])
|
||||||
self.sync_technology_designs(self_technology_designs=self_technology_designs,production_technology_designs=technology_designs)
|
self.sync_technology_designs(self_technology_designs=self_technology_designs,
|
||||||
|
production_technology_designs=technology_designs)
|
||||||
|
|||||||
Reference in New Issue
Block a user