diff --git a/sf_bf_connect/models/process_status.py b/sf_bf_connect/models/process_status.py index 111254c7..3bbdb5fc 100644 --- a/sf_bf_connect/models/process_status.py +++ b/sf_bf_connect/models/process_status.py @@ -1,3 +1,4 @@ +import traceback from datetime import datetime import logging import requests @@ -53,11 +54,14 @@ class StatusChange(models.Model): if not ret.get('error'): logging.info('接口已经执行=============') else: - logging.error('工厂加工同步订单状态失败 {}'.format(ret)) - raise UserError('工厂加工同步订单状态失败') + traceback_error = traceback.format_exc() + logging.error("bfm订单状态同步失败:%s request info %s" % traceback_error) + logging.error('/api/get/state/get_order 请求失败{}'.format(ret)) + raise UserError('工厂加工同步订单状态到bfm失败') except UserError as e: - logging.error('工厂加工同步订单状态失败 {}'.format(e)) - raise UserError('工厂加工同步订单状态失败') + traceback_error = traceback.format_exc() + logging.error("工厂加工同步订单状态失败:%s " % traceback_error) + raise UserError(e) return res def action_cancel(self): diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py index 8cf16106..35501367 100644 --- a/sf_manufacturing/__manifest__.py +++ b/sf_manufacturing/__manifest__.py @@ -45,7 +45,6 @@ 'sf_manufacturing/static/src/scss/kanban_change.scss', 'sf_manufacturing/static/src/xml/button_show_on_tree.xml', 'sf_manufacturing/static/src/js/workpiece_delivery_wizard_confirm.js', - 'sf_manufacturing/static/src/js/custom_barcode_handlers.js', ] }, diff --git a/sf_manufacturing/models/agv_scheduling.py b/sf_manufacturing/models/agv_scheduling.py index f758abd9..a18dc5ef 100644 --- a/sf_manufacturing/models/agv_scheduling.py +++ b/sf_manufacturing/models/agv_scheduling.py @@ -1,10 +1,10 @@ + +import logging import requests from odoo import models, fields, api, _ from odoo.exceptions import UserError -import logging - _logger = logging.getLogger(__name__) @@ -54,7 +54,7 @@ class AgvScheduling(models.Model): def web_search_read(self, domain=None, fields=None, offset=0, limit=None, order=None, count_limit=None): domain = domain or [] new_domain = [] - for index, item in enumerate(domain): + for item in domain: if isinstance(item, list): if item[0] == 'delivery_workpieces': new_domain.append('&') @@ -63,7 +63,7 @@ class AgvScheduling(models.Model): continue new_domain.append(item) - return super(AgvScheduling, self).web_search_read(new_domain, fields, limit=limit, offset=offset) + return super(AgvScheduling, self).web_search_read(new_domain, fields, offset, limit, order, count_limit) @api.depends('task_completion_time', 'task_delivery_time') def _compute_task_duration(self): diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 405baf38..0ab2be6b 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -318,8 +318,10 @@ class MrpProduction(models.Model): # cnc程序获取 def fetchCNC(self, production_names): cnc = self.env['mrp.production'].search([('id', '=', self.id)]) - quick_order = self.env['quick.easy.order'].search( - [('name', '=', cnc.product_id.default_code.rsplit('-', 1)[0])]) + quick_order = False + if cnc.product_id.default_code: + quick_order = self.env['quick.easy.order'].search( + [('name', '=', cnc.product_id.default_code.rsplit('-', 1)[0])]) programme_way = False if cnc.manual_quotation is True: programme_way = 'manual operation' diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 51fa9f27..2331cea9 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -222,7 +222,7 @@ class ResMrpWorkOrder(models.Model): material_width = fields.Float(string='宽') material_height = fields.Float(string='高') # 零件图号 - part_number = fields.Char(string='零件图号') + part_number = fields.Char(related='production_id.part_number', string='零件图号') # 工序状态 process_state = fields.Selection([ ('待装夹', '待装夹'), diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 9d4e3161..9f6206cb 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -267,6 +267,10 @@ class StockRule(models.Model): workorder_duration += workorder.duration_expected sale_order = self.env['sale.order'].sudo().search([('name', '=', production.origin)]) + # 根据销售订单号查询快速订单 + quick_easy_order = self.env['quick.easy.order'].sudo().search([('sale_order_id', '=', sale_order.id)]) + production.write({'part_number': quick_easy_order.part_drawing_number, + 'part_drawing': quick_easy_order.machining_drawings}) if sale_order: # sale_order.write({'schedule_status': 'to schedule'}) self.env['sf.production.plan'].sudo().with_company(company_id).create({ @@ -288,6 +292,7 @@ class StockRule(models.Model): # 为同一个product_id创建一个生产订单名称列表 product_id_to_production_names[product_id] = [production.name for production in all_production] for production_item in productions: + production_programming = self.env['mrp.production'].search( [('product_id.id', '=', production_item.product_id.id), ('origin', '=', production_item.origin)], diff --git a/sf_manufacturing/wizard/workpiece_delivery_views.xml b/sf_manufacturing/wizard/workpiece_delivery_views.xml index e895d39e..a83a371a 100644 --- a/sf_manufacturing/wizard/workpiece_delivery_views.xml +++ b/sf_manufacturing/wizard/workpiece_delivery_views.xml @@ -14,7 +14,7 @@ - +