diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index d2b63cb9..8e6fe9b7 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -664,7 +664,7 @@ class MrpProduction(models.Model): # 表面工艺工序 # 模型类型的表面工艺工序模版 surface_tmpl_ids = model_type_id.surface_technics_routing_tmpl_ids - # 产品选择的表面工艺 + # 产品选择的表面工艺参数 model_process_parameters_ids = rec.product_id.model_process_parameters_ids process_dict = {} if model_process_parameters_ids: @@ -673,7 +673,7 @@ class MrpProduction(models.Model): for surface_tmpl_id in surface_tmpl_ids: if process_id == surface_tmpl_id.route_workcenter_id.surface_technics_id: surface_tmpl_name = surface_tmpl_id.route_workcenter_id.name - process_dict.update({int(process_id.category_id.code): '%s-%s' % ( + process_dict.update({int(process_id.code): '%s-%s' % ( surface_tmpl_name, process_parameters_id.name)}) process_list = sorted(process_dict.keys()) for process_num in process_list: @@ -690,14 +690,16 @@ class MrpProduction(models.Model): raise ValidationError('该产品【加工面板】为空!') else: raise ValidationError('该产品没有选择【模版类型】!') - + logging.info('sequence_list: %s' % sequence_list) for work in rec.workorder_ids: - if sequence_list.get(work.name): - work.sequence = sequence_list[work.name] + work_name = work.name + logging.info(work_name) + if sequence_list.get(work_name): + work.sequence = sequence_list[work_name] elif sequence_list.get(work.processing_panel): processing_panel = sequence_list.get(work.processing_panel) - if processing_panel.get(work.name): - work.sequence = processing_panel[work.name] + if processing_panel.get(work_name): + work.sequence = processing_panel[work_name] else: raise ValidationError('工序【%s】在产品选择的模版类型中不存在!' % work.name) else: @@ -723,8 +725,9 @@ class MrpProduction(models.Model): sequence_max += 1 panel_sequence_list.update({tmpl_id.route_workcenter_id.name: sequence_max}) for work_id in work_ids: - if panel_sequence_list.get(work_id.name): - work_id.sequence = panel_sequence_list[work_id.name] + work_name = work_id.name + if panel_sequence_list.get(work_name): + work_id.sequence = panel_sequence_list[work_name] # 创建工单并进行排序 def _create_workorder(self, item): diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index d6a5ea9f..c3842d30 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1169,8 +1169,8 @@ class ResMrpWorkOrder(models.Model): if not record.rfid_code and record.is_rework is False: raise UserError("请扫RFID码进行绑定") if record.is_rework is False: - if not record.material_center_point or record.X_deviation_angle <= 0: - raise UserError("请对前置三元检测定位参数进行计算定位") + if not record.material_center_point and record.X_deviation_angle > 0: + raise UserError("坯料中心点为空或X偏差角度小于等于0") record.process_state = '待加工' # record.write({'process_state': '待加工'}) record.production_id.process_state = '待加工'