diff --git a/jikimo_workorder_exception/models/mrp_workorder.py b/jikimo_workorder_exception/models/mrp_workorder.py index 14ea1508..64f0dd8f 100644 --- a/jikimo_workorder_exception/models/mrp_workorder.py +++ b/jikimo_workorder_exception/models/mrp_workorder.py @@ -9,7 +9,7 @@ class MrpWorkorder(models.Model): exception_ids = fields.One2many('jikimo.workorder.exception', 'workorder_id', string='工单异常记录') def write(self, values): - if 'test_results' in values and self.exception_ids: + if values.get('test_results') and self.exception_ids: pending_exception = self.exception_ids.filtered( lambda exc: exc.state == 'pending' and exc.exception_code == 'YC0005' ) diff --git a/sf_manufacturing/wizard/rework_wizard.py b/sf_manufacturing/wizard/rework_wizard.py index 8ddc353b..cb739830 100644 --- a/sf_manufacturing/wizard/rework_wizard.py +++ b/sf_manufacturing/wizard/rework_wizard.py @@ -126,16 +126,17 @@ class ReworkWizard(models.TransientModel): # 2、返工CNC工单和装夹预调工单则自动解绑RFID clamp_workorder_ids = rework_workorder_ids.filtered(lambda rp: rp.routing_type == '装夹预调') - vals_list = [{ - 'id': order.id, - 'rfid_code_old': order.rfid_code, - 'rfid_code': False - } for order in rework_workorder_ids] - rework_workorder_ids.write(vals_list) + # for order in rework_workorder_ids: + # order.write({ + # 'rfid_code_old': order.rfid_code, + # 'rfid_code': False + # }) if clamp_workorder_ids: for clamp_workorder_id in clamp_workorder_ids: self.production_id.workorder_ids.filtered(lambda wk: ( - wk.processing_panel == clamp_workorder_id.processing_panel)).write({'rfid_code': None}) + wk.processing_panel == clamp_workorder_id.processing_panel)).write( + {'rfid_code_old': clamp_workorder_id.rfid_code, + 'rfid_code': None}) # 返工工单状态设置为【返工】 rework_workorder_ids.write({'state': 'rework'}) # 查询返工工单对应的工艺设计记录,并调用方法拼接数据,用于创建新的工单 @@ -219,11 +220,13 @@ class ReworkWizard(models.TransientModel): self.production_id.get_new_program(panel_name) if self.reprogramming_num >= 0 and self.programming_state == '已下发': # ============= 处理CNC加工加工工单的 CNC程序和cmm程序 信息============= - for cnc_work in new_work_ids.filtered(lambda wk: wk.name == 'CNC加工' or wk.name == '人工线下加工'): + for cnc_work in new_work_ids.filtered( + lambda wk: wk.name == 'CNC加工' or wk.name == '人工线下加工'): ret = {'programming_list': []} old_cnc_rework = max(self.production_id.workorder_ids.filtered( lambda crw: crw.processing_panel == cnc_work.processing_panel - and crw.state == 'rework' and (crw.routing_type == 'CNC加工' or crw.routing_type == '人工线下加工')), + and crw.state == 'rework' and ( + crw.routing_type == 'CNC加工' or crw.routing_type == '人工线下加工')), key=lambda w: w.create_date ) # 获取当前工单的CNC程序和cmm程序 @@ -265,7 +268,8 @@ class ReworkWizard(models.TransientModel): new_cnc_workorder = self.production_id.workorder_ids.filtered( lambda ap1: ap1.processing_panel == cnc_work.processing_panel and ap1.state not in ( - 'rework', 'done') and (ap1.routing_type == 'CNC加工' or ap1.routing_type == '人工线下加工') + 'rework', 'done') and ( + ap1.routing_type == 'CNC加工' or ap1.routing_type == '人工线下加工') ) if not new_cnc_workorder.cnc_ids: new_cnc_workorder.write({ @@ -302,7 +306,8 @@ class ReworkWizard(models.TransientModel): 'is_rework': False}) # ==================申请重新编程======================= if self.is_reprogramming is True: - self.production_id.update_programming_state(trigger_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + self.production_id.update_programming_state( + trigger_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S')) self.production_id.write( {'programming_state': '编程中', 'work_state': '编程中', 'state': 'progress'}) # ================= 返工完成,制造订单状态置为加工中 ============== @@ -323,7 +328,7 @@ class ReworkWizard(models.TransientModel): for p in production_id.detection_result_ids.filtered( lambda ap1: ap1.handle_result == '待处理'): if p.processing_panel is not False and p.processing_panel not in panel_arr: - if len(panel_arr)>0: + if len(panel_arr) > 0: panel_arr += ','.join(p.processing_panel) else: panel_arr = p.processing_panel