diff --git a/sf_tool_management/controllers/controllers.py b/sf_tool_management/controllers/controllers.py index 400dd60f..4b68e3f8 100644 --- a/sf_tool_management/controllers/controllers.py +++ b/sf_tool_management/controllers/controllers.py @@ -8,6 +8,35 @@ from odoo.http import request 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, cors="*") def get_functional_tool_inventory_Info(self, **kw): @@ -97,4 +126,4 @@ class Manufacturing_Connect(http.Controller): except Exception as e: res = {'Succeed': False, 'ErrorCode': 202, 'Error': e} logging.info('put_tool_preset_parameter_port error:%s' % e) - return json.JSONEncoder().encode(res) + return json.JSONEncoder().encode(res) \ No newline at end of file diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index b903188c..122989d9 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -853,6 +853,10 @@ class FunctionalToolDismantle(models.Model): logging.info('%s刀具确认开始拆解' % self.dismantle_cause) if self.functional_tool_id.functional_tool_status == '已拆除': 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_dest = self.env['stock.location'].search([('name', '=', '刀具房')]) # =================刀柄是否[报废]拆解======= diff --git a/sf_tool_management/models/functional_tool_enroll.py b/sf_tool_management/models/functional_tool_enroll.py index 8891b287..cad8bd20 100644 --- a/sf_tool_management/models/functional_tool_enroll.py +++ b/sf_tool_management/models/functional_tool_enroll.py @@ -162,13 +162,7 @@ class ToolMaterial(models.Model): except Exception as 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): @@ -256,250 +250,208 @@ class FunctionalCuttingToolEntity(models.Model): except Exception as 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): -# _inherit = 'sf.functional.tool.warning' -# _description = '功能刀具预警注册' -# -# crea_url = "/api/functional_tool_warning/create" -# -# # 注册同步功能刀具预警 -# def enroll_functional_tool_warning(self): -# logging.info('调用功能刀具预警注册接口: enroll_functional_tool_warning()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# headers = Common.get_headers(self, token, sf_secret_key) -# str_url = sf_sync_config['sf_url'] + self.crea_url -# objs_all = self.env['sf.functional.tool.warning'].search([('id', '=', self.id)]) -# self.get_sync_functional_tool_warning(objs_all, str_url, token, headers) -# -# def sync_enroll_functional_tool_warning_all(self): -# logging.info('调用功能刀具预警注册接口: sync_enroll_functional_tool_warning_all()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# headers = Common.get_headers(self, token, sf_secret_key) -# str_url = sf_sync_config['sf_url'] + self.crea_url -# objs_all = self.env['sf.functional.tool.warning'].search([]) -# 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): -# tool_warning_list = [] -# try: -# if objs_all: -# for item in objs_all: -# val = { -# 'id': item.id, -# 'name': item.name, -# 'code': item.code, -# 'rfid': item.rfid, -# 'tool_groups_name': item.tool_groups_id.name, -# 'production_line': item.production_line_id.name, -# 'machine_tool_id': item.maintenance_equipment_id.code, -# 'machine_tool_code': item.machine_tool_code, -# 'cutter_spacing_code': item.cutter_spacing_code_id.code, -# 'functional_tool_name': item.name, -# 'barcode': item.barcode_id.name, -# 'mrs_cutting_tool_type_code': item.mrs_cutting_tool_type_id.code, -# 'diameter': item.diameter, -# 'knife_tip_r_angle': item.knife_tip_r_angle, -# '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'), -# 'max_lifetime_value': item.max_lifetime_value, -# 'alarm_value': item.alarm_value, -# 'used_value': item.used_value, -# 'functional_tool_status': item.functional_tool_status, -# 'alarm_time': item.alarm_time.strftime('%Y-%m-%d %H:%M:%S'), -# 'dispose_user': item.dispose_user, -# 'dispose_time': item.dispose_time, -# 'dispose_func': item.dispose_func, -# } -# tool_warning_list.append(val) -# kw = json.dumps(tool_warning_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(FunctionalToolWarning, self).create(vals_list) -# for record in records: -# if record: -# record.enroll_functional_tool_warning() -# return records -# -# -# class StockMoveLine(models.Model): -# _inherit = 'stock.move.line' -# _description = '功能刀具出入库记录注册' -# -# crea_url = "/api/functional_tool_move/create" -# -# # 注册同步功能刀具出入库记录 -# def enroll_functional_tool_move(self): -# logging.info('调用功能刀具出入库记录注册接口: enroll_functional_tool_move()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# 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)]) -# self.get_sync_stock_move_line(objs_all, str_url, token, headers) -# -# def sync_enroll_functional_tool_move_all(self): -# logging.info('调用功能刀具出入库记录注册接口: sync_enroll_functional_tool_move_all()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# 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([('functional_tool_name_id', '!=', False)]) -# self.get_sync_stock_move_line(objs_all, str_url, token, headers) -# -# def get_sync_stock_move_line(self, objs_all, str_url, token, headers): -# tool_stock_list = [] -# try: -# if objs_all: -# for item in objs_all: -# val = { -# 'id': item.id, -# 'name': item.functional_tool_name, -# 'code': item.code, -# 'rfid': item.rfid, -# 'tool_groups_name': item.tool_groups_id.name, -# 'reference': item.reference, -# 'barcode': item.lot_id.name, -# 'functional_tool_type_code': item.functional_tool_type_id.code, -# 'diameter': item.diameter, -# 'knife_tip_r_angle': item.knife_tip_r_angle, -# 'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'), -# 'location_id': item.location_id.name, -# 'location_dest_name': item.location_dest_id.name, -# 'date': item.date.strftime('%Y-%m-%d %H:%M:%S'), -# 'qty_done': item.qty_done, -# } -# tool_stock_list.append(val) -# kw = json.dumps(tool_stock_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(StockMoveLine, self).create(vals_list) -# for record in records: -# if record.functional_tool_name_id: -# record.enroll_functional_tool_move() -# return records -# -# -# class RealTimeDistributionFunctionalTools(models.Model): -# _inherit = 'sf.real.time.distribution.of.functional.tools' -# _description = '功能刀具安全库存注册' -# -# crea_url = "/api/functional_tool_distribution/create" -# -# # 注册同步功能刀具预警 -# def enroll_functional_tool_real_time_distribution(self): -# logging.info('调用功能刀具安全库存注册接口: enroll_functional_tool_real_time_distribution()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# headers = Common.get_headers(self, token, sf_secret_key) -# 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) -# -# def sync_enroll_functional_tool_real_time_distribution_all(self): -# logging.info('调用功能刀具安全库存注册接口: sync_enroll_functional_tool_real_time_distribution_all()') -# sf_sync_config = self.env['res.config.settings'].get_values() -# token = sf_sync_config['token'] -# sf_secret_key = sf_sync_config['sf_secret_key'] -# headers = Common.get_headers(self, token, sf_secret_key) -# str_url = sf_sync_config['sf_url'] + self.crea_url -# objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([]) -# self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers) -# -# def get_sync_real_time_distribution_functional_tools(self, objs_all, str_url, token, headers): -# tool_distribution_list = [] -# try: -# if objs_all: -# for item in objs_all: -# functional_tool_codes = [] -# for obj in item.sf_functional_tool_entity_ids: -# functional_tool_codes.append(obj.code) -# val = { -# 'id': item.id, -# 'name': item.name, -# 'tool_groups_name': item.tool_groups_id.name, -# 'cutting_tool_type_code': item.sf_cutting_tool_type_id.code, -# 'diameter': item.diameter, -# 'knife_tip_r_angle': item.knife_tip_r_angle, -# 'tool_stock_num': item.tool_stock_num, -# 'side_shelf_num': item.side_shelf_num, -# 'on_tool_stock_num': item.on_tool_stock_num, -# 'tool_stock_total': item.tool_stock_total, -# 'min_stock_num': item.min_stock_num, -# 'max_stock_num': item.max_stock_num, -# 'batch_replenishment_num': item.batch_replenishment_num, -# 'unit': item.unit, -# 'image': '' if not item.image else base64.b64encode(item.image).decode('utf-8'), -# 'functional_tool_codes': str(functional_tool_codes), -# 'coarse_middle_thin': item.coarse_middle_thin, -# 'whether_standard_knife': item.whether_standard_knife, -# 'suitable_machining_method_names': get_suitable_machining_method_names(item), -# '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 + +class FunctionalToolWarning(models.Model): + _inherit = 'sf.functional.tool.warning' + _description = '功能刀具预警注册' + + crea_url = "/api/functional_tool_warning/create" + + # 注册同步功能刀具预警 + def enroll_functional_tool_warning(self): + logging.info('调用功能刀具预警注册接口: enroll_functional_tool_warning()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + headers = Common.get_headers(self, token, sf_secret_key) + str_url = sf_sync_config['sf_url'] + self.crea_url + objs_all = self.env['sf.functional.tool.warning'].search([('id', '=', self.id)]) + self.get_sync_functional_tool_warning(objs_all, str_url, token, headers) + + def sync_enroll_functional_tool_warning_all(self): + logging.info('调用功能刀具预警注册接口: sync_enroll_functional_tool_warning_all()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + headers = Common.get_headers(self, token, sf_secret_key) + str_url = sf_sync_config['sf_url'] + self.crea_url + objs_all = self.env['sf.functional.tool.warning'].search([]) + 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): + tool_warning_list = [] + try: + if objs_all: + for item in objs_all: + val = { + 'id': item.id, + 'name': item.name, + 'code': item.code, + 'rfid': item.rfid, + 'tool_groups_name': item.tool_groups_id.name, + 'production_line': item.production_line_id.name, + 'machine_tool_id': item.maintenance_equipment_id.code, + 'machine_tool_code': item.machine_tool_code, + 'cutter_spacing_code': item.cutter_spacing_code_id.code, + 'functional_tool_name': item.name, + 'barcode': item.barcode_id.name, + 'mrs_cutting_tool_type_code': item.mrs_cutting_tool_type_id.code, + 'diameter': item.diameter, + 'knife_tip_r_angle': item.knife_tip_r_angle, + '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'), + 'max_lifetime_value': item.max_lifetime_value, + 'alarm_value': item.alarm_value, + 'used_value': item.used_value, + 'functional_tool_status': item.functional_tool_status, + 'alarm_time': item.alarm_time.strftime('%Y-%m-%d %H:%M:%S'), + 'dispose_user': item.dispose_user, + 'dispose_time': item.dispose_time, + 'dispose_func': item.dispose_func, + } + tool_warning_list.append(val) + kw = json.dumps(tool_warning_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) + + +class StockMoveLine(models.Model): + _inherit = 'stock.move.line' + _description = '功能刀具出入库记录注册' + + crea_url = "/api/functional_tool_move/create" + + # 注册同步功能刀具出入库记录 + def enroll_functional_tool_move(self): + logging.info('调用功能刀具出入库记录注册接口: enroll_functional_tool_move()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + 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)]) + self.get_sync_stock_move_line(objs_all, str_url, token, headers) + + def sync_enroll_functional_tool_move_all(self): + logging.info('调用功能刀具出入库记录注册接口: sync_enroll_functional_tool_move_all()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + 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([('functional_tool_name_id', '!=', False)]) + self.get_sync_stock_move_line(objs_all, str_url, token, headers) + + def get_sync_stock_move_line(self, objs_all, str_url, token, headers): + tool_stock_list = [] + try: + if objs_all: + for item in objs_all: + val = { + 'id': item.id, + 'name': item.functional_tool_name, + 'code': item.code, + 'rfid': item.rfid, + 'tool_groups_name': item.tool_groups_id.name, + 'reference': item.reference, + 'barcode': item.lot_id.name, + 'functional_tool_type_code': item.functional_tool_type_id.code, + 'diameter': item.diameter, + 'knife_tip_r_angle': item.knife_tip_r_angle, + 'install_tool_time': item.install_tool_time.strftime('%Y-%m-%d %H:%M:%S'), + 'location_id': item.location_id.name, + 'location_dest_name': item.location_dest_id.name, + 'date': item.date.strftime('%Y-%m-%d %H:%M:%S'), + 'qty_done': item.qty_done, + } + tool_stock_list.append(val) + kw = json.dumps(tool_stock_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) + + +class RealTimeDistributionFunctionalTools(models.Model): + _inherit = 'sf.real.time.distribution.of.functional.tools' + _description = '功能刀具安全库存注册' + + crea_url = "/api/functional_tool_distribution/create" + + # 注册同步功能刀具预警 + def enroll_functional_tool_real_time_distribution(self): + logging.info('调用功能刀具安全库存注册接口: enroll_functional_tool_real_time_distribution()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + headers = Common.get_headers(self, token, sf_secret_key) + 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) + + def sync_enroll_functional_tool_real_time_distribution_all(self): + logging.info('调用功能刀具安全库存注册接口: sync_enroll_functional_tool_real_time_distribution_all()') + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + headers = Common.get_headers(self, token, sf_secret_key) + str_url = sf_sync_config['sf_url'] + self.crea_url + objs_all = self.env['sf.real.time.distribution.of.functional.tools'].search([]) + self.get_sync_real_time_distribution_functional_tools(objs_all, str_url, token, headers) + + def get_sync_real_time_distribution_functional_tools(self, objs_all, str_url, token, headers): + tool_distribution_list = [] + try: + if objs_all: + for item in objs_all: + functional_tool_codes = [] + for obj in item.sf_functional_tool_entity_ids: + functional_tool_codes.append(obj.code) + val = { + 'id': item.id, + 'name': item.name, + 'tool_groups_name': item.tool_groups_id.name, + 'cutting_tool_type_code': item.sf_cutting_tool_type_id.code, + 'diameter': item.diameter, + 'knife_tip_r_angle': item.knife_tip_r_angle, + 'tool_stock_num': item.tool_stock_num, + 'side_shelf_num': item.side_shelf_num, + 'on_tool_stock_num': item.on_tool_stock_num, + 'tool_stock_total': item.tool_stock_total, + 'min_stock_num': item.min_stock_num, + 'max_stock_num': item.max_stock_num, + 'batch_replenishment_num': item.batch_replenishment_num, + 'unit': item.unit, + 'image': '' if not item.image else base64.b64encode(item.image).decode('utf-8'), + 'functional_tool_codes': str(functional_tool_codes), + 'coarse_middle_thin': item.coarse_middle_thin, + 'whether_standard_knife': item.whether_standard_knife, + 'suitable_machining_method_names': get_suitable_machining_method_names(item), + '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) diff --git a/sf_tool_management/models/maintenance_equipment.py b/sf_tool_management/models/maintenance_equipment.py index eec192e1..a700da50 100644 --- a/sf_tool_management/models/maintenance_equipment.py +++ b/sf_tool_management/models/maintenance_equipment.py @@ -61,6 +61,12 @@ class SfMaintenanceEquipment(models.Model): def write_maintenance_equipment_tool(self, 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: maintenance_equipment_id = self.search([('name', '=', data['DeviceId'])]) if maintenance_equipment_id: @@ -128,12 +134,9 @@ class StockLot(models.Model): record.tool_material_status = '报废' else: record.tool_material_status = '未入库' - # if record.tool_material_search_id: - # # 注册刀具物料状态到cloud平台 - # record.enroll_tool_material_stock() - # elif record.fixture_material_search_id: - # # 注册夹具物料状态到cloud平台 - # record.enroll_fixture_material_stock() + if record.fixture_material_search_id: + # 注册夹具物料状态到cloud平台 + record.enroll_fixture_material_stock() @api.model def name_search(self, name='', args=None, operator='ilike', limit=100): diff --git a/sf_tool_management/models/tool_material_search.py b/sf_tool_management/models/tool_material_search.py index 07c67aa0..af8833fb 100644 --- a/sf_tool_management/models/tool_material_search.py +++ b/sf_tool_management/models/tool_material_search.py @@ -45,8 +45,8 @@ class ToolMaterial(models.Model): record.have_been_used_num = have_been_used_num record.scrap_num = scrap_num record.number = usable_num + have_been_used_num + scrap_num - # 更新数据到cloud的动态数据 - # record.enroll_tool_material() + + @api.model def _read_group_cutting_tool_material_id(self, categories, domain, order):