From aeb9b0f79615c79d252c04f582c1e8660f0d4cde Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Sun, 20 Nov 2022 19:44:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=BE=97mrs?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E7=BC=96=E7=A8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/sf_base.py | 2 +- sf_mrs_connect/__manifest__.py | 2 +- sf_mrs_connect/controllers/__init__.py | 1 + sf_mrs_connect/controllers/controllers.py | 28 ++++++++++++++++++++++- sf_route_workcenter/models/workcenter.py | 21 +++++++++++++++++ 5 files changed, 51 insertions(+), 3 deletions(-) diff --git a/sf_base/models/sf_base.py b/sf_base/models/sf_base.py index e337d301..d098127b 100644 --- a/sf_base/models/sf_base.py +++ b/sf_base/models/sf_base.py @@ -264,5 +264,5 @@ class CNCprocessing(models.Model): FJGSD = fields.Char(string="加工深度(Z)") FSCCD = fields.Char(string="刀具伸出长度") FDJSpec = fields.Char(string="刀柄型号") - FJGDate = fields.Char(string="预计加工时间") + FJGDate = fields.Datetime(string="预计加工时间") FComment = fields.Char(string="备注") diff --git a/sf_mrs_connect/__manifest__.py b/sf_mrs_connect/__manifest__.py index 7f28c5ee..5003bd36 100644 --- a/sf_mrs_connect/__manifest__.py +++ b/sf_mrs_connect/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'YZ', 'website': 'https://www.sf.cs.jikimo.com', - 'depends': [], + 'depends': ['sf_base'], 'data': [ # 'views/sale_process_order_view.xml' ], diff --git a/sf_mrs_connect/controllers/__init__.py b/sf_mrs_connect/controllers/__init__.py index e69de29b..e046e49f 100644 --- a/sf_mrs_connect/controllers/__init__.py +++ b/sf_mrs_connect/controllers/__init__.py @@ -0,0 +1 @@ +from . import controllers diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index e046e49f..5d6e8160 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -1 +1,27 @@ -from . import controllers +# -*- coding: utf-8 -*- +import json +import logging +from datetime import date, timedelta +from odoo import http +from odoo.http import request + + +class Sf_Mrs_Connect(http.Controller): + + @http.route('/api/cnc_processing/create', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False, + cors="*") + def get_cnc_processing_create(self, **kw): + """ + 获取mrs下发的编程单 + :param kw: + :return: + """ + logging.info('get_cnc_processing_create:%s' % kw) + try: + datas = request.httprequest.data + ret = json.loads(datas) + ret = json.loads(ret['result']) + for obj in ret: + request.env['cnc.processing'].with_user(request.env.ref("base.user_admin")).CNCprocessing_create(obj) + except Exception as e: + logging.info('get_cnc_processing_create error:%s' % e) diff --git a/sf_route_workcenter/models/workcenter.py b/sf_route_workcenter/models/workcenter.py index 6d81fb08..ad260d11 100644 --- a/sf_route_workcenter/models/workcenter.py +++ b/sf_route_workcenter/models/workcenter.py @@ -21,6 +21,26 @@ class CNCprocessing(models.Model): workorder_id = fields.Many2one('mrp.workorder', string="工单") + # mrs下发编程单创建CNC加工 + def CNCprocessing_create(self, obj): + workorder = self.env['mrp.workorder'].search([('production_id', '=', obj['manufacturing_order_no']), + ('processing_panel', '=', obj['processing_panel']), + ('routing_type', '=', 'CNC加工')]) + self.env['cnc.processing'].create({ + 'workorder_id': workorder.id, + 'FNo': obj['sequence_number'], + 'FPGName': obj['program_name'], + 'FKnifeName': obj['cutting_tool_name'], + 'FDNo': obj['cutting_tool_no'], + 'FWorkType': obj['processing_type'], + 'FXY': obj['margin_x_y'], + 'FZ': obj['margin_z'], + 'FJGSD': obj['depth_of_processing_z'], + 'FSCCD': obj['cutting_tool_extension_length'], + 'FDJSpec': obj['cutting_tool_handle_type'], + # 'FJGDate': obj[''] + }) + class Tray(models.Model): _inherit = 'sf.tray' @@ -259,6 +279,7 @@ class MrpWorkOrder(models.Model): 'embryo_long': self.product_id.bom_ids.bom_line_ids.product_id.long, 'embryo_height': self.product_id.bom_ids.bom_line_ids.product_id.height, 'embryo_width': self.product_id.bom_ids.bom_line_ids.product_id.width + # 'factory_code': self.env.user.company_id.partner_id. }] configsettings = self.env['res.config.settings'].get_values() # token = configsettings['token']