diff --git a/sf_base/models/common.py b/sf_base/models/common.py index 9553c60c..c2858b95 100644 --- a/sf_base/models/common.py +++ b/sf_base/models/common.py @@ -88,6 +88,7 @@ class MrsProductionProcess(models.Model): code = fields.Char("编码") name = fields.Char('名称') remark = fields.Text("备注") + sequence = fields.Integer('排序') # processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂') active = fields.Boolean('有效', default=True) diff --git a/sf_base/models/tool_base_new.py.rej b/sf_base/models/tool_base_new.py.rej deleted file mode 100644 index 6db1f28a..00000000 --- a/sf_base/models/tool_base_new.py.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py (rejected hunks) -@@ -108,6 +108,4 @@ - cutting_speed_ids = fields.One2many('sf.cutting.speed', 'standard_library_id', string='切削速度Vc') -- feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz', -- domain=[('cutting_speed', '!=', False)]) -- feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz', -- domain=[('cutting_speed', '!=', False)]) -+ feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz') -+ feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz') - diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index e5d82e45..1ef18c4f 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -476,44 +476,45 @@ class MrpProduction(models.Model): # self.env['mrp.workorder'].json_workorder_str(k, production, route)) # 表面工艺工序 # 获取表面工艺id - if production.product_id.model_process_parameters_ids: - logging.info('model_process_parameters_ids:%s' % production.product_id.model_process_parameters_ids) - surface_technics_arr = [] - # 工序id - route_workcenter_arr = [] - for item in production.product_id.product_model_type_id.surface_technics_routing_tmpl_ids: - surface_technics_arr.append(item.route_workcenter_id.surface_technics_id.id) - route_workcenter_arr.append(item.route_workcenter_id.id) - if surface_technics_arr: - production_process_category = self.env['sf.production.process.category'].search( - [('production_process_ids.id', 'in', surface_technics_arr)], - order='sequence asc' - ) - # 用filter刷选表面工艺id'是否存在工艺类别对象里 - if production_process_category: - for p in production_process_category: - logging.info('production_process_category:%s' % p.name) - production_process = p.production_process_ids.filtered( - lambda pp: pp.id in surface_technics_arr) - if production_process: - process_parameter = production.product_id.model_process_parameters_ids.filtered( - lambda pm: pm.process_id.id == production_process.id) - if process_parameter: - # 产品为表面工艺服务的供应商 - product_production_process = self.env['product.template'].search( - [('server_product_process_parameters_id', '=', process_parameter.id)]) - if product_production_process: - route_production_process = self.env[ - 'mrp.routing.workcenter'].search( - [('surface_technics_id', '=', production_process.id), - ('id', 'in', route_workcenter_arr)]) - if route_production_process: - workorders_values.append( - self.env[ - 'mrp.workorder']._json_workorder_surface_process_str( - production, route_production_process, - process_parameter, - product_production_process.seller_ids[0].partner_id.id)) + # 工序id + surface_technics_arr = [] + route_workcenter_arr = [] + for item in production.product_id.product_model_type_id.surface_technics_routing_tmpl_ids: + if item.route_workcenter_id.surface_technics_id.id: + for process_param in production.product_id.model_process_parameters_ids: + logging.info('process_param:%s%s' % (process_param.id, process_param.name)) + if item.route_workcenter_id.surface_technics_id == process_param.process_id: + logging.info( + 'surface_technics_id:%s%s' % (item.route_workcenter_id.surface_technics_id.id, + item.route_workcenter_id.surface_technics_id.name)) + surface_technics_arr.append(item.route_workcenter_id.surface_technics_id.id) + route_workcenter_arr.append(item.route_workcenter_id.id) + if surface_technics_arr: + production_process = self.env['sf.production.process'].search( + [('id', 'in', surface_technics_arr)], + order='sequence asc' + ) + for p in production_process: + logging.info('production_process:%s' % p.name) + # if production_process: + process_parameter = production.product_id.model_process_parameters_ids.filtered( + lambda pm: pm.process_id.id == p.id) + if process_parameter: + # 产品为表面工艺服务的供应商 + product_production_process = self.env['product.template'].search( + [('server_product_process_parameters_id', '=', process_parameter.id)]) + if product_production_process: + route_production_process = self.env[ + 'mrp.routing.workcenter'].search( + [('surface_technics_id', '=', p.id), + ('id', 'in', route_workcenter_arr)]) + if route_production_process: + workorders_values.append( + self.env[ + 'mrp.workorder']._json_workorder_surface_process_str( + production, route_production_process, + process_parameter, + product_production_process.seller_ids[0].partner_id.id)) elif production.product_id.categ_id.type == '坯料': embryo_routing_workcenter = self.env['sf.embryo.model.type.routing.sort'].search( [('embryo_model_type_id', '=', production.product_id.embryo_model_type_id.id)], diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index f870547f..d83ffc2a 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -30,7 +30,7 @@ class Sf_Mrs_Connect(http.Controller): productions = request.env['mrp.production'].with_user( request.env.ref("base.user_admin")).search(domain) if productions: - # # 拉取所有加工面的程序文件 + # 拉取所有加工面的程序文件 for r in ret['processing_panel'].split(','): program_path_tmp_r = os.path.join('/tmp', ret['folder_name'], 'return', r) if os.path.exists(program_path_tmp_r): @@ -110,12 +110,6 @@ class Sf_Mrs_Connect(http.Controller): pre_workorder.write( {'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) productions.write({'programming_state': '已编程', 'work_state': '已编程'}) - # cnc_program_ids = [item.id for item in productions] - # workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search( - # [('production_id', 'in', cnc_program_ids)]) - # if workpiece_delivery: - # workpiece_delivery.write( - # {'is_cnc_program_down': True, 'production_line_id': productions.production_line_id.id}) return json.JSONEncoder().encode(res) else: res = {'status': 0, 'message': '该制造订单暂未开始'}