diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index ab6e560e..74460d4c 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -636,13 +636,17 @@ class MrpProduction(models.Model): # 增加触发时间参数 def update_programming_state(self, trigger_time=None, reprogramming_reason=None): try: + reason = "" manufacturing_type = None if self.is_scrap: manufacturing_type = 'scrap' + reason = "报废" elif self.tool_state == '2': manufacturing_type = 'invalid_tool_rework' + reason = "无效功能刀具" elif self.is_rework: manufacturing_type = 'rework' + reason = "返工" res = {'programming_no': self.programming_no, 'manufacturing_type': manufacturing_type, 'trigger_time': trigger_time, @@ -657,6 +661,16 @@ class MrpProduction(models.Model): result = json.loads(ret['result']) logging.info('update_programming_state-ret:%s' % result) if result['status'] == 1: + self.programming_record_ids.create({ + 'number': len(self.programming_record_ids) + 1, + 'production_id': self.id, + 'reason': reason, + 'programming_method': False, + 'current_programming_count': False, + 'target_production_id': False, + 'apply_time': fields.Datetime.now(), + 'send_time': False, + }) self.write({'is_rework': True}) else: raise UserError(ret['message']) @@ -787,6 +801,17 @@ class MrpProduction(models.Model): if ret['status'] == 1: self.write( {'programming_no': ret['programming_no'], 'programming_state': '编程中', 'work_state': '编程中'}) + # 生成编程记录 + self.programming_record_ids.create({ + 'number': len(self.programming_record_ids) + 1, + 'production_id': self.id, + 'reason': '首次下发', + 'programming_method': False, + 'current_programming_count': False, + 'target_production_id': False, + 'apply_time': fields.Datetime.now(), + 'send_time': False, + }) else: raise UserError(ret['message']) except Exception as e: @@ -1772,7 +1797,6 @@ class MrpProduction(models.Model): """ 检查前置条件:制造订单【状态】=“待排程、待加工”,制造订单的【编程状态】=“已编程”。 """ - print('申请编程') if len(self) > 1: raise UserError('仅支持选择单个制造订单进行编程申请,请重新选择') for production in self: @@ -1841,6 +1865,7 @@ class sf_programming_record(models.Model): target_production_id = fields.Char('目标制造单号') apply_time = fields.Datetime('申请时间') send_time = fields.Datetime('下发时间') + apply_uid = fields.Many2one('res.users', '申请人', default=lambda self: self.env.user) class sf_detection_result(models.Model): diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml index 3efd6906..abf83f76 100644 --- a/sf_manufacturing/views/mrp_production_addional_change.xml +++ b/sf_manufacturing/views/mrp_production_addional_change.xml @@ -427,6 +427,7 @@ + diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index 9ca50188..e229563c 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -147,90 +147,109 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController): logging.info('record_ids_obj====:%s' % record_ids_obj) if record_ids_obj: logging.info('record_ids_obj.reason====:%s' % record_ids_obj.reason) - record_ids_obj.write( - {'send_time': ret['send_time'], 'target_production_id': productions_reprogram}) + record_ids_obj.write({ + 'current_programming_count': ret['reprogramming_num'], + 'send_time': ret['send_time'], + 'target_production_id': productions_reprogram, + 'programming_method': ret['programme_way'] + }) logging.info('已更新编程记录:%s' % record_ids_obj) correct_record_ids_obj = record_ids_obj correct_production_id = production.id - if ret['reprogramming_num'] == 0: - logging.info('首次下发') - production.programming_record_ids.create({ - 'number': 1, - 'production_id': production.id, - 'reason': '首次下发', - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': False, - 'send_time': ret['send_time'], - }) - logging.info('已创建首次下发的编程记录:%s' % production.name) - elif ret['reset_flag']: - logging.info('重置状态') - production.programming_record_ids.create({ - 'number': len(production.programming_record_ids) + 1, - 'production_id': production.id, - 'reason': '重置状态', - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': False, - 'send_time': ret['send_time'], - }) - logging.info('已创建重置状态的编程记录:%s' % production.name) - elif ret['manufacturing_type'] == 'rework': - logging.info('返工') - rework_record_ids_obj = production.programming_record_ids.create({ - 'number': len(production.programming_record_ids) + 1, - 'production_id': production.id, - 'reason': '返工', - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': ret['trigger_time'], - 'send_time': ret['send_time'], - }) - logging.info('已创建返工的编程记录:%s' % production.name) - logging.info('rework_record_ids_obj====:%s' % rework_record_ids_obj) - # rework_production_id = production.id - # logging.info('rework_production_id====:%s' % rework_production_id) - elif ret['manufacturing_type'] == 'scrap': - production.programming_record_ids.create({ - 'number': len(production.programming_record_ids) + 1, - 'production_id': production.id, - 'reason': '报废', - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': ret['trigger_time'], - 'send_time': ret['send_time'], - }) - elif ret['manufacturing_type'] == 'invalid_tool_rework': - logging.info('无效功能刀具') - production.programming_record_ids.create({ - 'number': len(production.programming_record_ids) + 1, - 'production_id': production.id, - 'reason': '无效功能刀具', - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': ret['trigger_time'], - 'send_time': ret['send_time'], - }) - logging.info('已创建无效功能刀具的编程记录:%s' % production.name) - elif ret['reprogramming_reason']: - production.programming_record_ids.create({ - 'number': len(production.programming_record_ids) + 1, - 'production_id': production.id, - 'reason': ret['reprogramming_reason'], - 'programming_method': ret['programme_way'], - 'current_programming_count': ret['reprogramming_num'], - 'target_production_id': productions_reprogram, - 'apply_time': ret['trigger_time'], - 'send_time': ret['send_time'], - }) + # 更新重新编程记录 else: - logging.info('无对应状态,不需更新编程记录') + if ret['reset_flag']: + logging.info('重置状态') + production.programming_record_ids.create({ + 'number': len(production.programming_record_ids) + 1, + 'production_id': production.id, + 'reason': '重置状态', + 'programming_method': ret['programme_way'], + 'current_programming_count': ret['reprogramming_num'], + 'target_production_id': productions_reprogram, + 'apply_time': False, + 'send_time': ret['send_time'], + }) + else: + logging.info('无对应状态,不需更新编程记录') + # if ret['reprogramming_num'] == 0: + # logging.info('首次下发') + # production.programming_record_ids.create({ + # 'number': 1, + # 'production_id': production.id, + # 'reason': '首次下发', + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': False, + # 'send_time': ret['send_time'], + # }) + # logging.info('已创建首次下发的编程记录:%s' % production.name) + # elif ret['reset_flag']: + # logging.info('重置状态') + # production.programming_record_ids.create({ + # 'number': len(production.programming_record_ids) + 1, + # 'production_id': production.id, + # 'reason': '重置状态', + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': False, + # 'send_time': ret['send_time'], + # }) + # logging.info('已创建重置状态的编程记录:%s' % production.name) + # elif ret['manufacturing_type'] == 'rework': + # logging.info('返工') + # rework_record_ids_obj = production.programming_record_ids.create({ + # 'number': len(production.programming_record_ids) + 1, + # 'production_id': production.id, + # 'reason': '返工', + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': ret['trigger_time'], + # 'send_time': ret['send_time'], + # }) + # logging.info('已创建返工的编程记录:%s' % production.name) + # logging.info('rework_record_ids_obj====:%s' % rework_record_ids_obj) + # # rework_production_id = production.id + # # logging.info('rework_production_id====:%s' % rework_production_id) + # elif ret['manufacturing_type'] == 'scrap': + # production.programming_record_ids.create({ + # 'number': len(production.programming_record_ids) + 1, + # 'production_id': production.id, + # 'reason': '报废', + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': ret['trigger_time'], + # 'send_time': ret['send_time'], + # }) + # elif ret['manufacturing_type'] == 'invalid_tool_rework': + # logging.info('无效功能刀具') + # production.programming_record_ids.create({ + # 'number': len(production.programming_record_ids) + 1, + # 'production_id': production.id, + # 'reason': '无效功能刀具', + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': ret['trigger_time'], + # 'send_time': ret['send_time'], + # }) + # logging.info('已创建无效功能刀具的编程记录:%s' % production.name) + # elif ret['reprogramming_reason']: + # production.programming_record_ids.create({ + # 'number': len(production.programming_record_ids) + 1, + # 'production_id': production.id, + # 'reason': ret['reprogramming_reason'], + # 'programming_method': ret['programme_way'], + # 'current_programming_count': ret['reprogramming_num'], + # 'target_production_id': productions_reprogram, + # 'apply_time': ret['trigger_time'], + # 'send_time': ret['send_time'], + # }) + for production in productions: logging.info('production====:%s' % production.name)