增加多种状态对编程记录的更改
This commit is contained in:
@@ -591,7 +591,8 @@ class MrpProduction(models.Model):
|
||||
logging.info('cron_get_programming_state error:%s' % e)
|
||||
|
||||
# 编程单更新
|
||||
def update_programming_state(self):
|
||||
# 增加触发时间参数
|
||||
def update_programming_state(self, trigger_time=None):
|
||||
try:
|
||||
manufacturing_type = 'rework'
|
||||
if self.is_scrap:
|
||||
@@ -613,6 +614,45 @@ class MrpProduction(models.Model):
|
||||
self.write({'is_rework': True})
|
||||
else:
|
||||
raise UserError(ret['message'])
|
||||
|
||||
# 增加对编程记录的更新
|
||||
cloud_programming = self._cron_get_programming_state()
|
||||
if manufacturing_type == 'rework':
|
||||
self.programming_record_ids.create({
|
||||
'number': len(self.programming_record_ids) + 1,
|
||||
'production_id': self.id,
|
||||
'reason': '返工',
|
||||
'programming_method': cloud_programming['programme_way'],
|
||||
'current_programming_count': cloud_programming['reprogramming_num'],
|
||||
'target_production_id': cloud_programming['production_order_no'],
|
||||
'apply_time': trigger_time,
|
||||
'send_time': cloud_programming['send_time'],
|
||||
})
|
||||
elif manufacturing_type == 'scrap':
|
||||
self.programming_record_ids.create({
|
||||
'number': len(self.programming_record_ids) + 1,
|
||||
'production_id': self.id,
|
||||
'reason': '报废',
|
||||
'programming_method': cloud_programming['programme_way'],
|
||||
'current_programming_count': cloud_programming['reprogramming_num'],
|
||||
'target_production_id': cloud_programming['production_order_no'],
|
||||
'apply_time': trigger_time,
|
||||
'send_time': cloud_programming['send_time'],
|
||||
})
|
||||
elif manufacturing_type == 'invalid_tool_rework':
|
||||
self.programming_record_ids.create({
|
||||
'number': len(self.programming_record_ids) + 1,
|
||||
'production_id': self.id,
|
||||
'reason': '无效功能刀具',
|
||||
'programming_method': cloud_programming['programme_way'],
|
||||
'current_programming_count': cloud_programming['reprogramming_num'],
|
||||
'target_production_id': cloud_programming['production_order_no'],
|
||||
'apply_time': trigger_time,
|
||||
'send_time': cloud_programming['send_time'],
|
||||
})
|
||||
else:
|
||||
logging.info('无对应状态,不需更新编程记录')
|
||||
|
||||
except Exception as e:
|
||||
logging.info('update_programming_state error:%s' % e)
|
||||
raise UserError("更新编程单状态失败,请联系管理员")
|
||||
@@ -1609,6 +1649,28 @@ class MrpProduction(models.Model):
|
||||
# 编程记录
|
||||
programming_record_ids = fields.One2many('sf.programming.record', 'production_id')
|
||||
|
||||
# 编程单更新
|
||||
def re_programming_update_programming_state(self):
|
||||
try:
|
||||
res = {'programming_no': self.programming_no,
|
||||
'manufacturing_type': ''}
|
||||
logging.info('res=%s:' % res)
|
||||
configsettings = self.env['res.config.settings'].get_values()
|
||||
config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key'])
|
||||
url = '/api/intelligent_programming/reset_state_again'
|
||||
config_url = configsettings['sf_url'] + url
|
||||
ret = requests.post(config_url, json=res, data=None, headers=config_header)
|
||||
ret = ret.json()
|
||||
result = json.loads(ret['result'])
|
||||
logging.info('update_programming_state-ret:%s' % result)
|
||||
if result['status'] == 1:
|
||||
self.write({'is_rework': True})
|
||||
else:
|
||||
raise UserError(ret['message'])
|
||||
except Exception as e:
|
||||
logging.info('update_programming_state error:%s' % e)
|
||||
raise UserError("更新编程单状态失败,请联系管理员")
|
||||
|
||||
# 编程记录
|
||||
class sf_programming_record(models.Model):
|
||||
_name = 'sf.programming.record'
|
||||
|
||||
@@ -51,6 +51,6 @@ class ProductionWizard(models.TransientModel):
|
||||
if self.is_remanufacture is True:
|
||||
ret = {'programming_list': [], 'is_reprogramming': self.is_reprogramming}
|
||||
if self.is_reprogramming is True:
|
||||
self.mrp_production_id.update_programming_state()
|
||||
self.mrp_production_id.update_programming_state(trigger_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
|
||||
new_production = self.mrp_production_id.recreateManufacturing(ret)
|
||||
self.mrp_production_id.write({'remanufacture_production_id': new_production.id})
|
||||
|
||||
@@ -284,7 +284,7 @@ class ReworkWizard(models.TransientModel):
|
||||
'is_rework': False})
|
||||
# ==================申请重新编程=======================
|
||||
if self.is_reprogramming is True:
|
||||
self.production_id.update_programming_state()
|
||||
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'})
|
||||
# ================= 返工完成,制造订单状态置为加工中 ==============
|
||||
|
||||
@@ -22,7 +22,7 @@ class sf_programming_reason(models.TransientModel):
|
||||
|
||||
def action_confirm(self):
|
||||
print('self.production_id.programming_state:', self.production_id.programming_state)
|
||||
self.production_id.update_programming_state()
|
||||
self.production_id.re_programming_update_programming_state()
|
||||
self.production_id.write(
|
||||
{'programming_state': '编程中', 'work_state': '编程中'})
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import json
|
||||
import requests
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from odoo import fields, models, api
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.addons.sf_base.commons.common import Common
|
||||
@@ -196,7 +197,7 @@ class MrpProduction(models.Model):
|
||||
})
|
||||
# 自动调用重新获取编程的方法
|
||||
logging.info('cnc用刀校验到无效刀自动调用重新编程方法:update_programming_state()')
|
||||
self[0].update_programming_state()
|
||||
self[0].update_programming_state(trigger_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
|
||||
self[0].write({'is_rework': False})
|
||||
# 修改制造订单 编程状态变为“编程中”
|
||||
self.write({'programming_state': '编程中', 'work_state': '编程中'})
|
||||
|
||||
Reference in New Issue
Block a user