增加多种状态对编程记录的更改
This commit is contained in:
@@ -591,7 +591,8 @@ class MrpProduction(models.Model):
|
|||||||
logging.info('cron_get_programming_state error:%s' % e)
|
logging.info('cron_get_programming_state error:%s' % e)
|
||||||
|
|
||||||
# 编程单更新
|
# 编程单更新
|
||||||
def update_programming_state(self):
|
# 增加触发时间参数
|
||||||
|
def update_programming_state(self, trigger_time=None):
|
||||||
try:
|
try:
|
||||||
manufacturing_type = 'rework'
|
manufacturing_type = 'rework'
|
||||||
if self.is_scrap:
|
if self.is_scrap:
|
||||||
@@ -613,6 +614,45 @@ class MrpProduction(models.Model):
|
|||||||
self.write({'is_rework': True})
|
self.write({'is_rework': True})
|
||||||
else:
|
else:
|
||||||
raise UserError(ret['message'])
|
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:
|
except Exception as e:
|
||||||
logging.info('update_programming_state error:%s' % e)
|
logging.info('update_programming_state error:%s' % e)
|
||||||
raise UserError("更新编程单状态失败,请联系管理员")
|
raise UserError("更新编程单状态失败,请联系管理员")
|
||||||
@@ -1609,6 +1649,28 @@ class MrpProduction(models.Model):
|
|||||||
# 编程记录
|
# 编程记录
|
||||||
programming_record_ids = fields.One2many('sf.programming.record', 'production_id')
|
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):
|
class sf_programming_record(models.Model):
|
||||||
_name = 'sf.programming.record'
|
_name = 'sf.programming.record'
|
||||||
|
|||||||
@@ -51,6 +51,6 @@ class ProductionWizard(models.TransientModel):
|
|||||||
if self.is_remanufacture is True:
|
if self.is_remanufacture is True:
|
||||||
ret = {'programming_list': [], 'is_reprogramming': self.is_reprogramming}
|
ret = {'programming_list': [], 'is_reprogramming': self.is_reprogramming}
|
||||||
if self.is_reprogramming is True:
|
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)
|
new_production = self.mrp_production_id.recreateManufacturing(ret)
|
||||||
self.mrp_production_id.write({'remanufacture_production_id': new_production.id})
|
self.mrp_production_id.write({'remanufacture_production_id': new_production.id})
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ class ReworkWizard(models.TransientModel):
|
|||||||
'is_rework': False})
|
'is_rework': False})
|
||||||
# ==================申请重新编程=======================
|
# ==================申请重新编程=======================
|
||||||
if self.is_reprogramming is True:
|
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(
|
self.production_id.write(
|
||||||
{'programming_state': '编程中', 'work_state': '编程中', 'state': 'progress'})
|
{'programming_state': '编程中', 'work_state': '编程中', 'state': 'progress'})
|
||||||
# ================= 返工完成,制造订单状态置为加工中 ==============
|
# ================= 返工完成,制造订单状态置为加工中 ==============
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class sf_programming_reason(models.TransientModel):
|
|||||||
|
|
||||||
def action_confirm(self):
|
def action_confirm(self):
|
||||||
print('self.production_id.programming_state:', self.production_id.programming_state)
|
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(
|
self.production_id.write(
|
||||||
{'programming_state': '编程中', 'work_state': '编程中'})
|
{'programming_state': '编程中', 'work_state': '编程中'})
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import requests
|
import requests
|
||||||
import logging
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
from odoo import fields, models, api
|
from odoo import fields, models, api
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
from odoo.addons.sf_base.commons.common import Common
|
from odoo.addons.sf_base.commons.common import Common
|
||||||
@@ -196,7 +197,7 @@ class MrpProduction(models.Model):
|
|||||||
})
|
})
|
||||||
# 自动调用重新获取编程的方法
|
# 自动调用重新获取编程的方法
|
||||||
logging.info('cnc用刀校验到无效刀自动调用重新编程方法:update_programming_state()')
|
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[0].write({'is_rework': False})
|
||||||
# 修改制造订单 编程状态变为“编程中”
|
# 修改制造订单 编程状态变为“编程中”
|
||||||
self.write({'programming_state': '编程中', 'work_state': '编程中'})
|
self.write({'programming_state': '编程中', 'work_state': '编程中'})
|
||||||
|
|||||||
Reference in New Issue
Block a user