From 59670fb3d74817fe783d4222a88ed06fbd8761d9 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Thu, 18 Apr 2024 18:40:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96CNC?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=EF=BC=9A=E6=B7=BB=E5=8A=A0=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=88=E4=BA=BA=E5=B7=A5/=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=EF=BC=89=EF=BC=8C=E5=A6=82=E6=98=AF=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=EF=BC=8C=E7=BC=96=E7=A8=8B=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E4=B8=BA=E4=BA=BA=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/controllers/controllers.py | 6 +++--- sf_manufacturing/models/mrp_production.py | 11 +++++++++++ sf_manufacturing/models/mrp_workorder.py | 10 ++++++---- sf_sale/models/sale_order.py | 6 ++++++ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index 63fd4f57..a519d9b0 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -114,7 +114,7 @@ class Manufacturing_Connect(http.Controller): logging.info('RfidCode:%s' % ret['RfidCode']) if 'RfidCode' in ret: workorder = request.env['mrp.workorder'].sudo().search( - [('routing_type', '=', '装夹预调'), ('rfid_code', '=', ret['RfidCode'])]) + [('routing_type', '=', '装夹预调'), ('rfid_code', '=', ret['RfidCode'])], limit=1, order='id asc') if workorder: for item in workorder: if item.material_center_point: @@ -122,8 +122,8 @@ class Manufacturing_Connect(http.Controller): res['Datas'].append({ 'XOffset': 0 if not item.material_center_point else offset[0], 'YOffset': 0 if not item.material_center_point else offset[1], - 'ZOffet': 0 if not item.material_center_point else offset[2], - 'COffset': 0 if not item.X_deviation_angle else item.X_deviation_angle, + 'ZOffset': 0 if not item.material_center_point else offset[2], + 'COffset': 0, 'Coordinate': 'G54' }) else: diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index dff2763b..e45a2960 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -57,6 +57,8 @@ class MrpProduction(models.Model): production_line_state = fields.Selection([('待上产线', '待上产线'), ('已上产线', '已上产线'), ('已下产线', '已下产线')], string='上/下产线', default='待上产线') + manual_quotation = fields.Boolean('人工编程', default=False) + @api.depends( 'move_raw_ids.state', 'move_raw_ids.quantity_done', 'move_finished_ids.state', 'workorder_ids.state', 'product_qty', 'qty_producing', 'schedule_state') @@ -132,6 +134,14 @@ class MrpProduction(models.Model): # cnc程序获取 def fetchCNC(self): cnc = self.env['mrp.production'].search([('id', '=', self.id)]) + quick_order = self.env['quick.easy.order'].search([('id', '=', cnc.product_id.id)]) + programme_way = False + if cnc.manual_quotation is True: + programme_way = 'manual operation' + else: + programme_way = 'auto' + if quick_order: + programme_way = 'manual operation' try: res = {'model_code': '' if not cnc.product_id.model_code else cnc.product_id.model_code, 'production_no': cnc.name, @@ -148,6 +158,7 @@ class MrpProduction(models.Model): 'order_no': cnc.origin, 'model_order_no': cnc.product_id.default_code.rsplit(' -', 1)[0], 'user': cnc.env.user.name, + 'programme_way': programme_way, 'model_file': '' if not cnc.product_id.model_file else base64.b64encode( cnc.product_id.model_file).decode('utf-8') } diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 134922d1..c9d72b79 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -46,6 +46,8 @@ class ResMrpWorkOrder(models.Model): ], string="工序类型") results = fields.Char('结果') + manual_quotation = fields.Boolean('人工编程', default=False) + @api.onchange('users_ids') def get_user_permissions(self): uid = self.env.uid @@ -984,9 +986,9 @@ class SfWorkOrderBarcodes(models.Model): workorder = self.env['mrp.workorder'].browse(self.ids) # workorder = self.env['mrp.workorder'].search( # [('routing_type', '=', '装夹预调'), ('production_id', '=', self.production_id.id)]) - # workorder_old = self.env['mrp.workorder'].search([('rfid_code', '=', barcode)]) - # if workorder_old: - # raise UserError('该托盘已绑定工件,请先解除绑定!!!') + workorder_old = self.env['mrp.workorder'].search([('rfid_code', '=', barcode)]) + if workorder_old: + raise UserError('该托盘已绑定工件,请先解除绑定!!!') if workorder: if workorder.routing_type == '装夹预调': if workorder.state in ['done']: @@ -1046,7 +1048,7 @@ class SfWorkOrderBarcodes(models.Model): for item in workorder_rfid: if item.state == "progress": item.write({'rfid_code': barcode}) - # raise UserError('该托盘信息不存在!!!') + raise UserError('该托盘信息不存在!!!') # stock_move_line = self.env['stock.move.line'].search([('lot_name', '=', barcode)]) # if stock_move_line.product_id.categ_type == '夹具': # workorder.write({ diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 05523194..379ff199 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -142,6 +142,12 @@ class ResaleOrderLine(models.Model): check_status = fields.Selection(related='order_id.check_status') +class ProductTemplate(models.Model): + _inherit = 'product.template' + + manual_quotation = fields.Boolean('人工编程', default=False) + + class RePurchaseOrder(models.Model): _inherit = 'purchase.order'