Accept Merge Request #1066: (hotfix/刀具预调仪 -> develop)
Merge Request: 刀具预调仪 Created By: @杨金灵 Reviewed By: @马广威 Approved By: @马广威 Accepted By: @杨金灵 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1066
This commit is contained in:
@@ -8,6 +8,35 @@ from odoo.http import request
|
|||||||
|
|
||||||
class Manufacturing_Connect(http.Controller):
|
class Manufacturing_Connect(http.Controller):
|
||||||
|
|
||||||
|
@http.route('/AutoDeviceApi/ToolGroup', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
||||||
|
cors="*")
|
||||||
|
def get_functional_tool_groups_Info(self, **kw):
|
||||||
|
"""
|
||||||
|
刀具组接口
|
||||||
|
:param kw:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
logging.info('get_functional_tool_groups_Info:%s' % kw)
|
||||||
|
try:
|
||||||
|
datas = request.httprequest.data
|
||||||
|
ret = json.loads(datas)
|
||||||
|
# ret = json.loads(ret['result'])
|
||||||
|
logging.info('DeviceId:%s' % ret)
|
||||||
|
functional_tools = request.env['sf.tool.inventory'].sudo().search([])
|
||||||
|
|
||||||
|
res = {'Succeed': True, 'Datas': []}
|
||||||
|
if functional_tools:
|
||||||
|
for item in functional_tools:
|
||||||
|
res['Datas'].append({
|
||||||
|
'GroupName': item.tool_groups_id.name,
|
||||||
|
'ToolId': item.functional_cutting_tool_model_id.name,
|
||||||
|
'ToolName': item.name
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
||||||
|
logging.info('get_functional_tool_groups_Info error:%s' % e)
|
||||||
|
return json.JSONEncoder().encode(res)
|
||||||
|
|
||||||
@http.route('/AutoDeviceApi/ToolInventory', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
@http.route('/AutoDeviceApi/ToolInventory', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
||||||
cors="*")
|
cors="*")
|
||||||
def get_functional_tool_inventory_Info(self, **kw):
|
def get_functional_tool_inventory_Info(self, **kw):
|
||||||
@@ -97,4 +126,4 @@ class Manufacturing_Connect(http.Controller):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
||||||
logging.info('put_tool_preset_parameter_port error:%s' % e)
|
logging.info('put_tool_preset_parameter_port error:%s' % e)
|
||||||
return json.JSONEncoder().encode(res)
|
return json.JSONEncoder().encode(res)
|
||||||
@@ -543,7 +543,8 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', readonly=True)
|
after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', readonly=True)
|
||||||
after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',
|
after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',
|
||||||
string='组装后功能刀具类型', readonly=True)
|
string='组装后功能刀具类型', readonly=True)
|
||||||
after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True, digits=(10, 3))
|
after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True,
|
||||||
|
digits=(10, 3))
|
||||||
after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)', readonly=True, digits=(10, 3))
|
after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)', readonly=True, digits=(10, 3))
|
||||||
after_assembly_new_former = fields.Selection([('0', '新'), ('1', '旧')], string='组装后新/旧', readonly=True)
|
after_assembly_new_former = fields.Selection([('0', '新'), ('1', '旧')], string='组装后新/旧', readonly=True)
|
||||||
cut_time = fields.Integer(string='已切削时间(min)', readonly=True)
|
cut_time = fields.Integer(string='已切削时间(min)', readonly=True)
|
||||||
@@ -557,7 +558,7 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True)
|
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True)
|
||||||
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True)
|
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True)
|
||||||
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True, digits=(10, 3))
|
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True, digits=(10, 3))
|
||||||
after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)',readonly=True, digits=(10, 3))
|
after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)', readonly=True, digits=(10, 3))
|
||||||
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True, digits=(10, 3))
|
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True, digits=(10, 3))
|
||||||
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True)
|
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True)
|
||||||
L_D_number = fields.Float(string='L/D值(mm)', readonly=True)
|
L_D_number = fields.Float(string='L/D值(mm)', readonly=True)
|
||||||
@@ -851,6 +852,10 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
logging.info('%s刀具确认开始拆解' % self.dismantle_cause)
|
logging.info('%s刀具确认开始拆解' % self.dismantle_cause)
|
||||||
if self.functional_tool_id.functional_tool_status == '已拆除':
|
if self.functional_tool_id.functional_tool_status == '已拆除':
|
||||||
raise ValidationError('Rfid为【%s】的功能刀具已经拆解,请勿重复操作!' % self.functional_tool_id.rfid_dismantle)
|
raise ValidationError('Rfid为【%s】的功能刀具已经拆解,请勿重复操作!' % self.functional_tool_id.rfid_dismantle)
|
||||||
|
# 对拆解的功能刀具进行校验,只有在刀具房的功能刀具才能拆解
|
||||||
|
if self.functional_tool_id.tool_room_num == 0:
|
||||||
|
raise ValidationError('Rfid为【%s】的功能刀具当前位置为【%s】,不能进行拆解!' % (
|
||||||
|
self.rfid, self.functional_tool_id.current_location))
|
||||||
location = self.env['stock.location'].search([('name', '=', '刀具组装位置')])
|
location = self.env['stock.location'].search([('name', '=', '刀具组装位置')])
|
||||||
location_dest = self.env['stock.location'].search([('name', '=', '刀具房')])
|
location_dest = self.env['stock.location'].search([('name', '=', '刀具房')])
|
||||||
# =================刀柄是否[报废]拆解=======
|
# =================刀柄是否[报废]拆解=======
|
||||||
|
|||||||
@@ -162,13 +162,7 @@ class ToolMaterial(models.Model):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.info("刀具物料同步失败:%s" % e)
|
logging.info("刀具物料同步失败:%s" % e)
|
||||||
|
|
||||||
# @api.model_create_multi
|
|
||||||
# def create(self, vals_list):
|
|
||||||
# records = super(ToolMaterial, self).create(vals_list)
|
|
||||||
# for record in records:
|
|
||||||
# if record:
|
|
||||||
# record.enroll_tool_material()
|
|
||||||
# return records
|
|
||||||
|
|
||||||
|
|
||||||
class FunctionalCuttingToolEntity(models.Model):
|
class FunctionalCuttingToolEntity(models.Model):
|
||||||
@@ -256,250 +250,208 @@ class FunctionalCuttingToolEntity(models.Model):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.info("功能刀具同步失败:%s" % e)
|
logging.info("功能刀具同步失败:%s" % e)
|
||||||
|
|
||||||
# @api.model_create_multi
|
|
||||||
# def create(self, vals_list):
|
|
||||||
# records = super(FunctionalCuttingToolEntity, self).create(vals_list)
|
|
||||||
# for record in records:
|
|
||||||
# if record:
|
|
||||||
# record.enroll_functional_tool_entity()
|
|
||||||
# return records
|
|
||||||
|
|
||||||
# def write(self, vals):
|
|
||||||
# res = super().write(vals)
|
|
||||||
# if vals.get('current_location'):
|
|
||||||
# self.enroll_functional_tool_entity()
|
|
||||||
# return res
|
|
||||||
|
|
||||||
#
|
|
||||||
# class FunctionalToolWarning(models.Model):
|
class FunctionalToolWarning(models.Model):
|
||||||
# _inherit = 'sf.functional.tool.warning'
|
_inherit = 'sf.functional.tool.warning'
|
||||||
# _description = '功能刀具预警注册'
|
_description = '功能刀具预警注册'
|
||||||
#
|
|
||||||
# crea_url = "/api/functional_tool_warning/create"
|
crea_url = "/api/functional_tool_warning/create"
|
||||||
#
|
|
||||||
# # 注册同步功能刀具预警
|
# 注册同步功能刀具预警
|
||||||
# def enroll_functional_tool_warning(self):
|
def enroll_functional_tool_warning(self):
|
||||||
# logging.info('调用功能刀具预警注册接口: enroll_functional_tool_warning()')
|
logging.info('调用功能刀具预警注册接口: enroll_functional_tool_warning()')
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# token = sf_sync_config['token']
|
token = sf_sync_config['token']
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
# objs_all = self.env['sf.functional.tool.warning'].search([('id', '=', self.id)])
|
objs_all = self.env['sf.functional.tool.warning'].search([('id', '=', self.id)])
|
||||||
# self.get_sync_functional_tool_warning(objs_all, str_url, token, headers)
|
self.get_sync_functional_tool_warning(objs_all, str_url, token, headers)
|
||||||
#
|
|
||||||
# def sync_enroll_functional_tool_warning_all(self):
|
def sync_enroll_functional_tool_warning_all(self):
|
||||||
# logging.info('调用功能刀具预警注册接口: sync_enroll_functional_tool_warning_all()')
|
logging.info('调用功能刀具预警注册接口: sync_enroll_functional_tool_warning_all()')
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# token = sf_sync_config['token']
|
token = sf_sync_config['token']
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
# objs_all = self.env['sf.functional.tool.warning'].search([])
|
objs_all = self.env['sf.functional.tool.warning'].search([])
|
||||||
# self.get_sync_functional_tool_warning(objs_all, str_url, token, headers)
|
self.get_sync_functional_tool_warning(objs_all, str_url, token, headers)
|
||||||
#
|
|
||||||
# def get_sync_functional_tool_warning(self, objs_all, str_url, token, headers):
|
def get_sync_functional_tool_warning(self, objs_all, str_url, token, headers):
|
||||||
# tool_warning_list = []
|
tool_warning_list = []
|
||||||
# try:
|
try:
|
||||||
# if objs_all:
|
if objs_all:
|
||||||
# for item in objs_all:
|
for item in objs_all:
|
||||||
# val = {
|
val = {
|
||||||
# 'id': item.id,
|
'id': item.id,
|
||||||
# 'name': item.name,
|
'name': item.name,
|
||||||
# 'code': item.code,
|
'code': item.code,
|
||||||
# 'rfid': item.rfid,
|
'rfid': item.rfid,
|
||||||
# 'tool_groups_name': item.tool_groups_id.name,
|
'tool_groups_name': item.tool_groups_id.name,
|
||||||
# 'production_line': item.production_line_id.name,
|
'production_line': item.production_line_id.name,
|
||||||
# 'machine_tool_id': item.maintenance_equipment_id.code,
|
'machine_tool_id': item.maintenance_equipment_id.code,
|
||||||
# 'machine_tool_code': item.machine_tool_code,
|
'machine_tool_code': item.machine_tool_code,
|
||||||
# 'cutter_spacing_code': item.cutter_spacing_code_id.code,
|
'cutter_spacing_code': item.cutter_spacing_code_id.code,
|
||||||
# 'functional_tool_name': item.name,
|
'functional_tool_name': item.name,
|
||||||
# 'barcode': item.barcode_id.name,
|
'barcode': item.barcode_id.name,
|
||||||
# 'mrs_cutting_tool_type_code': item.mrs_cutting_tool_type_id.code,
|
'mrs_cutting_tool_type_code': item.mrs_cutting_tool_type_id.code,
|
||||||
# 'diameter': item.diameter,
|
'diameter': item.diameter,
|
||||||
# 'knife_tip_r_angle': item.knife_tip_r_angle,
|
'knife_tip_r_angle': item.knife_tip_r_angle,
|
||||||
# 'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'),
|
'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
# 'on_board_time': item.on_board_time.strftime('%Y-%m-%d %H:%M:%S'),
|
'on_board_time': item.on_board_time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
# 'max_lifetime_value': item.max_lifetime_value,
|
'max_lifetime_value': item.max_lifetime_value,
|
||||||
# 'alarm_value': item.alarm_value,
|
'alarm_value': item.alarm_value,
|
||||||
# 'used_value': item.used_value,
|
'used_value': item.used_value,
|
||||||
# 'functional_tool_status': item.functional_tool_status,
|
'functional_tool_status': item.functional_tool_status,
|
||||||
# 'alarm_time': item.alarm_time.strftime('%Y-%m-%d %H:%M:%S'),
|
'alarm_time': item.alarm_time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
# 'dispose_user': item.dispose_user,
|
'dispose_user': item.dispose_user,
|
||||||
# 'dispose_time': item.dispose_time,
|
'dispose_time': item.dispose_time,
|
||||||
# 'dispose_func': item.dispose_func,
|
'dispose_func': item.dispose_func,
|
||||||
# }
|
}
|
||||||
# tool_warning_list.append(val)
|
tool_warning_list.append(val)
|
||||||
# kw = json.dumps(tool_warning_list, ensure_ascii=False)
|
kw = json.dumps(tool_warning_list, ensure_ascii=False)
|
||||||
# r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
||||||
# ret = r.json()
|
ret = r.json()
|
||||||
# if ret.get('code') == 200:
|
if ret.get('code') == 200:
|
||||||
# return "功能刀具预警注册成功"
|
return "功能刀具预警注册成功"
|
||||||
# else:
|
else:
|
||||||
# logging.info('没有注册功能刀具预警信息')
|
logging.info('没有注册功能刀具预警信息')
|
||||||
# except Exception as e:
|
except Exception as e:
|
||||||
# logging.info("捕获错误信息:%s" % e)
|
logging.info("捕获错误信息:%s" % e)
|
||||||
#
|
|
||||||
# @api.model_create_multi
|
|
||||||
# def create(self, vals_list):
|
class StockMoveLine(models.Model):
|
||||||
# records = super(FunctionalToolWarning, self).create(vals_list)
|
_inherit = 'stock.move.line'
|
||||||
# for record in records:
|
_description = '功能刀具出入库记录注册'
|
||||||
# if record:
|
|
||||||
# record.enroll_functional_tool_warning()
|
crea_url = "/api/functional_tool_move/create"
|
||||||
# return records
|
|
||||||
#
|
# 注册同步功能刀具出入库记录
|
||||||
#
|
def enroll_functional_tool_move(self):
|
||||||
# class StockMoveLine(models.Model):
|
logging.info('调用功能刀具出入库记录注册接口: enroll_functional_tool_move()')
|
||||||
# _inherit = 'stock.move.line'
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# _description = '功能刀具出入库记录注册'
|
token = sf_sync_config['token']
|
||||||
#
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# crea_url = "/api/functional_tool_move/create"
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
#
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
# # 注册同步功能刀具出入库记录
|
objs_all = self.env['stock.move.line'].search([('id', '=', self.id), ('functional_tool_name_id', '!=', False)])
|
||||||
# def enroll_functional_tool_move(self):
|
self.get_sync_stock_move_line(objs_all, str_url, token, headers)
|
||||||
# logging.info('调用功能刀具出入库记录注册接口: enroll_functional_tool_move()')
|
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
def sync_enroll_functional_tool_move_all(self):
|
||||||
# token = sf_sync_config['token']
|
logging.info('调用功能刀具出入库记录注册接口: sync_enroll_functional_tool_move_all()')
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
token = sf_sync_config['token']
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# objs_all = self.env['stock.move.line'].search([('id', '=', self.id), ('functional_tool_name_id', '!=', False)])
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
# self.get_sync_stock_move_line(objs_all, str_url, token, headers)
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
#
|
objs_all = self.env['stock.move.line'].search([('functional_tool_name_id', '!=', False)])
|
||||||
# def sync_enroll_functional_tool_move_all(self):
|
self.get_sync_stock_move_line(objs_all, str_url, token, headers)
|
||||||
# logging.info('调用功能刀具出入库记录注册接口: sync_enroll_functional_tool_move_all()')
|
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
def get_sync_stock_move_line(self, objs_all, str_url, token, headers):
|
||||||
# token = sf_sync_config['token']
|
tool_stock_list = []
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
try:
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
if objs_all:
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
for item in objs_all:
|
||||||
# objs_all = self.env['stock.move.line'].search([('functional_tool_name_id', '!=', False)])
|
val = {
|
||||||
# self.get_sync_stock_move_line(objs_all, str_url, token, headers)
|
'id': item.id,
|
||||||
#
|
'name': item.functional_tool_name,
|
||||||
# def get_sync_stock_move_line(self, objs_all, str_url, token, headers):
|
'code': item.code,
|
||||||
# tool_stock_list = []
|
'rfid': item.rfid,
|
||||||
# try:
|
'tool_groups_name': item.tool_groups_id.name,
|
||||||
# if objs_all:
|
'reference': item.reference,
|
||||||
# for item in objs_all:
|
'barcode': item.lot_id.name,
|
||||||
# val = {
|
'functional_tool_type_code': item.functional_tool_type_id.code,
|
||||||
# 'id': item.id,
|
'diameter': item.diameter,
|
||||||
# 'name': item.functional_tool_name,
|
'knife_tip_r_angle': item.knife_tip_r_angle,
|
||||||
# 'code': item.code,
|
'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
# 'rfid': item.rfid,
|
'location_id': item.location_id.name,
|
||||||
# 'tool_groups_name': item.tool_groups_id.name,
|
'location_dest_name': item.location_dest_id.name,
|
||||||
# 'reference': item.reference,
|
'date': item.date.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
# 'barcode': item.lot_id.name,
|
'qty_done': item.qty_done,
|
||||||
# 'functional_tool_type_code': item.functional_tool_type_id.code,
|
}
|
||||||
# 'diameter': item.diameter,
|
tool_stock_list.append(val)
|
||||||
# 'knife_tip_r_angle': item.knife_tip_r_angle,
|
kw = json.dumps(tool_stock_list, ensure_ascii=False)
|
||||||
# 'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'),
|
r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
||||||
# 'location_id': item.location_id.name,
|
ret = r.json()
|
||||||
# 'location_dest_name': item.location_dest_id.name,
|
if ret.get('code') == 200:
|
||||||
# 'date': item.date.strftime('%Y-%m-%d %H:%M:%S'),
|
return "功能刀具出入库记录注册成功"
|
||||||
# 'qty_done': item.qty_done,
|
else:
|
||||||
# }
|
logging.info('没有注册功能刀具出入库记录信息')
|
||||||
# tool_stock_list.append(val)
|
except Exception as e:
|
||||||
# kw = json.dumps(tool_stock_list, ensure_ascii=False)
|
logging.info("捕获错误信息:%s" % e)
|
||||||
# r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
|
||||||
# ret = r.json()
|
|
||||||
# if ret.get('code') == 200:
|
class RealTimeDistributionFunctionalTools(models.Model):
|
||||||
# return "功能刀具出入库记录注册成功"
|
_inherit = 'sf.real.time.distribution.of.functional.tools'
|
||||||
# else:
|
_description = '功能刀具安全库存注册'
|
||||||
# logging.info('没有注册功能刀具出入库记录信息')
|
|
||||||
# except Exception as e:
|
crea_url = "/api/functional_tool_distribution/create"
|
||||||
# logging.info("捕获错误信息:%s" % e)
|
|
||||||
#
|
# 注册同步功能刀具预警
|
||||||
# @api.model_create_multi
|
def enroll_functional_tool_real_time_distribution(self):
|
||||||
# def create(self, vals_list):
|
logging.info('调用功能刀具安全库存注册接口: enroll_functional_tool_real_time_distribution()')
|
||||||
# records = super(StockMoveLine, self).create(vals_list)
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# for record in records:
|
token = sf_sync_config['token']
|
||||||
# if record.functional_tool_name_id:
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# record.enroll_functional_tool_move()
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
# return records
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
#
|
objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([('id', '=', self.id)])
|
||||||
#
|
self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers)
|
||||||
# class RealTimeDistributionFunctionalTools(models.Model):
|
|
||||||
# _inherit = 'sf.real.time.distribution.of.functional.tools'
|
def sync_enroll_functional_tool_real_time_distribution_all(self):
|
||||||
# _description = '功能刀具安全库存注册'
|
logging.info('调用功能刀具安全库存注册接口: sync_enroll_functional_tool_real_time_distribution_all()')
|
||||||
#
|
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||||
# crea_url = "/api/functional_tool_distribution/create"
|
token = sf_sync_config['token']
|
||||||
#
|
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||||
# # 注册同步功能刀具预警
|
headers = Common.get_headers(self, token, sf_secret_key)
|
||||||
# def enroll_functional_tool_real_time_distribution(self):
|
str_url = sf_sync_config['sf_url'] + self.crea_url
|
||||||
# logging.info('调用功能刀具安全库存注册接口: enroll_functional_tool_real_time_distribution()')
|
objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([])
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers)
|
||||||
# token = sf_sync_config['token']
|
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
def get_sync_real_time_distribution_functional_tools(self, objs_all, str_url, token, headers):
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
tool_distribution_list = []
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
try:
|
||||||
# objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([('id', '=', self.id)])
|
if objs_all:
|
||||||
# self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers)
|
for item in objs_all:
|
||||||
#
|
functional_tool_codes = []
|
||||||
# def sync_enroll_functional_tool_real_time_distribution_all(self):
|
for obj in item.sf_functional_tool_entity_ids:
|
||||||
# logging.info('调用功能刀具安全库存注册接口: sync_enroll_functional_tool_real_time_distribution_all()')
|
functional_tool_codes.append(obj.code)
|
||||||
# sf_sync_config = self.env['res.config.settings'].get_values()
|
val = {
|
||||||
# token = sf_sync_config['token']
|
'id': item.id,
|
||||||
# sf_secret_key = sf_sync_config['sf_secret_key']
|
'name': item.name,
|
||||||
# headers = Common.get_headers(self, token, sf_secret_key)
|
'tool_groups_name': item.tool_groups_id.name,
|
||||||
# str_url = sf_sync_config['sf_url'] + self.crea_url
|
'cutting_tool_type_code': item.sf_cutting_tool_type_id.code,
|
||||||
# objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([])
|
'diameter': item.diameter,
|
||||||
# self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers)
|
'knife_tip_r_angle': item.knife_tip_r_angle,
|
||||||
#
|
'tool_stock_num': item.tool_stock_num,
|
||||||
# def get_sync_real_time_distribution_functional_tools(self, objs_all, str_url, token, headers):
|
'side_shelf_num': item.side_shelf_num,
|
||||||
# tool_distribution_list = []
|
'on_tool_stock_num': item.on_tool_stock_num,
|
||||||
# try:
|
'tool_stock_total': item.tool_stock_total,
|
||||||
# if objs_all:
|
'min_stock_num': item.min_stock_num,
|
||||||
# for item in objs_all:
|
'max_stock_num': item.max_stock_num,
|
||||||
# functional_tool_codes = []
|
'batch_replenishment_num': item.batch_replenishment_num,
|
||||||
# for obj in item.sf_functional_tool_entity_ids:
|
'unit': item.unit,
|
||||||
# functional_tool_codes.append(obj.code)
|
'image': '' if not item.image else base64.b64encode(item.image).decode('utf-8'),
|
||||||
# val = {
|
'functional_tool_codes': str(functional_tool_codes),
|
||||||
# 'id': item.id,
|
'coarse_middle_thin': item.coarse_middle_thin,
|
||||||
# 'name': item.name,
|
'whether_standard_knife': item.whether_standard_knife,
|
||||||
# 'tool_groups_name': item.tool_groups_id.name,
|
'suitable_machining_method_names': get_suitable_machining_method_names(item),
|
||||||
# 'cutting_tool_type_code': item.sf_cutting_tool_type_id.code,
|
'blade_tip_characteristics_name': item.blade_tip_characteristics_id.name,
|
||||||
# 'diameter': item.diameter,
|
'handle_type_name': item.handle_type_id.name,
|
||||||
# 'knife_tip_r_angle': item.knife_tip_r_angle,
|
'cutting_direction_names': get_cutting_direction_names(item),
|
||||||
# 'tool_stock_num': item.tool_stock_num,
|
'suitable_coolant_names': get_suitable_coolant_names(item),
|
||||||
# 'side_shelf_num': item.side_shelf_num,
|
'active': item.active
|
||||||
# 'on_tool_stock_num': item.on_tool_stock_num,
|
}
|
||||||
# 'tool_stock_total': item.tool_stock_total,
|
tool_distribution_list.append(val)
|
||||||
# 'min_stock_num': item.min_stock_num,
|
kw = json.dumps(tool_distribution_list, ensure_ascii=False)
|
||||||
# 'max_stock_num': item.max_stock_num,
|
r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
||||||
# 'batch_replenishment_num': item.batch_replenishment_num,
|
ret = r.json()
|
||||||
# 'unit': item.unit,
|
if ret.get('code') == 200:
|
||||||
# 'image': '' if not item.image else base64.b64encode(item.image).decode('utf-8'),
|
return "功能刀具出入库记录注册成功"
|
||||||
# 'functional_tool_codes': str(functional_tool_codes),
|
else:
|
||||||
# 'coarse_middle_thin': item.coarse_middle_thin,
|
logging.info('没有注册功能刀具出入库记录信息')
|
||||||
# 'whether_standard_knife': item.whether_standard_knife,
|
except Exception as e:
|
||||||
# 'suitable_machining_method_names': get_suitable_machining_method_names(item),
|
logging.info("捕获错误信息:%s" % e)
|
||||||
# 'blade_tip_characteristics_name': item.blade_tip_characteristics_id.name,
|
|
||||||
# 'handle_type_name': item.handle_type_id.name,
|
|
||||||
# 'cutting_direction_names': get_cutting_direction_names(item),
|
|
||||||
# 'suitable_coolant_names': get_suitable_coolant_names(item),
|
|
||||||
# 'active': item.active
|
|
||||||
# }
|
|
||||||
# tool_distribution_list.append(val)
|
|
||||||
# kw = json.dumps(tool_distribution_list, ensure_ascii=False)
|
|
||||||
# r = requests.post(str_url, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
|
||||||
# ret = r.json()
|
|
||||||
# if ret.get('code') == 200:
|
|
||||||
# return "功能刀具出入库记录注册成功"
|
|
||||||
# else:
|
|
||||||
# logging.info('没有注册功能刀具出入库记录信息')
|
|
||||||
# except Exception as e:
|
|
||||||
# logging.info("捕获错误信息:%s" % e)
|
|
||||||
#
|
|
||||||
# @api.model_create_multi
|
|
||||||
# def create(self, vals_list):
|
|
||||||
# records = super(RealTimeDistributionFunctionalTools, self).create(vals_list)
|
|
||||||
# for record in records:
|
|
||||||
# if record:
|
|
||||||
# record.enroll_functional_tool_real_time_distribution()
|
|
||||||
# return records
|
|
||||||
#
|
|
||||||
# def write(self, vals):
|
|
||||||
# res = super().write(vals)
|
|
||||||
# if vals.get('sf_functional_tool_entity_ids') or vals.get('min_stock_num') or vals.get('max_stock_num'):
|
|
||||||
# self.enroll_functional_tool_real_time_distribution()
|
|
||||||
# return res
|
|
||||||
|
|||||||
@@ -61,6 +61,12 @@ class SfMaintenanceEquipment(models.Model):
|
|||||||
|
|
||||||
def write_maintenance_equipment_tool(self, datas):
|
def write_maintenance_equipment_tool(self, datas):
|
||||||
if datas:
|
if datas:
|
||||||
|
# 清除设备机床刀位的刀具信息
|
||||||
|
for obj in self.product_template_ids:
|
||||||
|
obj.write({
|
||||||
|
'functional_tool_name_id': False,
|
||||||
|
'tool_install_time': None
|
||||||
|
})
|
||||||
for data in datas:
|
for data in datas:
|
||||||
maintenance_equipment_id = self.search([('name', '=', data['DeviceId'])])
|
maintenance_equipment_id = self.search([('name', '=', data['DeviceId'])])
|
||||||
if maintenance_equipment_id:
|
if maintenance_equipment_id:
|
||||||
@@ -128,12 +134,9 @@ class StockLot(models.Model):
|
|||||||
record.tool_material_status = '报废'
|
record.tool_material_status = '报废'
|
||||||
else:
|
else:
|
||||||
record.tool_material_status = '未入库'
|
record.tool_material_status = '未入库'
|
||||||
# if record.tool_material_search_id:
|
if record.fixture_material_search_id:
|
||||||
# # 注册刀具物料状态到cloud平台
|
# 注册夹具物料状态到cloud平台
|
||||||
# record.enroll_tool_material_stock()
|
record.enroll_fixture_material_stock()
|
||||||
# elif record.fixture_material_search_id:
|
|
||||||
# # 注册夹具物料状态到cloud平台
|
|
||||||
# record.enroll_fixture_material_stock()
|
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ class ToolMaterial(models.Model):
|
|||||||
record.have_been_used_num = have_been_used_num
|
record.have_been_used_num = have_been_used_num
|
||||||
record.scrap_num = scrap_num
|
record.scrap_num = scrap_num
|
||||||
record.number = usable_num + have_been_used_num + scrap_num
|
record.number = usable_num + have_been_used_num + scrap_num
|
||||||
# 更新数据到cloud的动态数据
|
|
||||||
# record.enroll_tool_material()
|
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _read_group_cutting_tool_material_id(self, categories, domain, order):
|
def _read_group_cutting_tool_material_id(self, categories, domain, order):
|
||||||
|
|||||||
Reference in New Issue
Block a user