cnc获取

This commit is contained in:
jinling.yang
2022-11-22 21:18:15 +08:00
parent cc739a218e
commit 11a360222e
5 changed files with 26 additions and 20 deletions

View File

@@ -12,7 +12,7 @@
'website': 'https://www.sf.jikimo.com', 'website': 'https://www.sf.jikimo.com',
'depends': ['mrp', 'base', 'sf_manufacturing'], 'depends': ['mrp', 'base', 'sf_manufacturing'],
'data': [ 'data': [
'data/product_data.xml', # 'data/product_data.xml',
'views/product_template_view.xml' 'views/product_template_view.xml'
], ],
'demo': [ 'demo': [

View File

@@ -10,14 +10,17 @@ class ResProductTemplate(models.Model):
model_width = fields.Float('模型宽[mm]', digits=(16, 3)) model_width = fields.Float('模型宽[mm]', digits=(16, 3))
model_height = fields.Float('模型高[mm]', digits=(16, 3)) model_height = fields.Float('模型高[mm]', digits=(16, 3))
model_volume = fields.Float('模型体积[mm³]', digits=(16, 3)) model_volume = fields.Float('模型体积[mm³]', digits=(16, 3))
model_precision = fields.Float('精度要求', digits=(16, 3)) model_machining_precision = fields.Selection([
('±0.10mm', '±0.10mm'),
('±0.05mm', '±0.05mm'),
('±0.03mm', '±0.03mm'),
('±0.02mm', '±0.02mm'),
('±0.01mm', '±0.01mm')], string='加工精度')
model_type_id = fields.Many2one('sf.model.type', string='模型类型') model_type_id = fields.Many2one('sf.model.type', string='模型类型')
model_processing_panel = fields.Char('模型加工面板') model_processing_panel = fields.Char('模型加工面板')
model_surface_process_id = fields.Many2one('sf.production.process', string='表面工艺') model_surface_process_id = fields.Many2one('sf.production.process', string='表面工艺')
model_process_parameters_id = fields.Many2one('sf.processing.technology', string='工艺参数') model_process_parameters_id = fields.Many2one('sf.processing.technology', string='工艺参数')
model_price = fields.Float('模型单价', digits=(16, 3)) model_price = fields.Float('模型单价', digits=(16, 3))
model_total_amount = fields.Float('模型金额', digits=(16, 3))
model_number = fields.Integer('模型数量', default=1)
model_remark = fields.Char('模型备注说明') model_remark = fields.Char('模型备注说明')
long = fields.Float('长[mm]', digits=(16, 3), onchange='add_product_size') long = fields.Float('长[mm]', digits=(16, 3), onchange='add_product_size')
width = fields.Float('宽[mm]', digits=(16, 3), onchange='add_product_size') width = fields.Float('宽[mm]', digits=(16, 3), onchange='add_product_size')

View File

@@ -37,13 +37,10 @@
<field name="model_volume" string="体积[mm]"/> <field name="model_volume" string="体积[mm]"/>
<field name="model_type_id" string="模板类型"/> <field name="model_type_id" string="模板类型"/>
<field name="model_processing_panel" placeholder="例如A,B" string="加工面板"/> <field name="model_processing_panel" placeholder="例如A,B" string="加工面板"/>
<field name="model_precision" string="精度要求"/> <field name="model_machining_precision" />
<field name="model_surface_process_id" string="表面工艺"/> <field name="model_surface_process_id" string="表面工艺"/>
<field name="model_process_parameters_id" string="工艺参数" <field name="model_process_parameters_id" string="工艺参数"
domain="[('processing_order_ids', '=', model_surface_process_id)]"/> domain="[('processing_order_ids', '=', model_surface_process_id)]"/>
<field name="model_price" string="单价"/>
<field name="model_total_amount" string="金额"/>
<field name="model_number" string="数量"/>
<field name="model_remark" string="备注说明"/> <field name="model_remark" string="备注说明"/>
</group> </group>
</page> </page>

View File

@@ -33,7 +33,7 @@ class ResWorkcenter(models.Model):
AND equipment_id IS NOT NULL AND equipment_id IS NOT NULL
AND maintenance_equipment.workcenter_id IS NOT NULL AND maintenance_equipment.workcenter_id IS NOT NULL
AND maintenance_equipment.workcenter_id IN %s AND maintenance_equipment.workcenter_id IN %s
AND (schedule_date, schedule_date + INTERVAL '1h' * duration) OVERLAPS (%s, %s) AND (schedule_date, schedule_date + INT ERVAL '1h' * duration) OVERLAPS (%s, %s)
GROUP BY maintenance_equipment.workcenter_id; GROUP BY maintenance_equipment.workcenter_id;
""" """
self.env.cr.execute(sql, [tuple(self.ids), fields.Datetime.to_string(start_datetime.astimezone()), self.env.cr.execute(sql, [tuple(self.ids), fields.Datetime.to_string(start_datetime.astimezone()),

View File

@@ -1,3 +1,6 @@
import json
import requests
import logging
from datetime import datetime from datetime import datetime
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, SUPERUSER_ID, _ from odoo import api, fields, models, SUPERUSER_ID, _
@@ -200,17 +203,20 @@ class ResMrpWorkOrder(models.Model):
# cnc程序获取 # cnc程序获取
def fetchCNC(self): def fetchCNC(self):
res = [{'model_code': self.product_id.barcode, 'production_no': self.production_id.name, cnc = self.env['mrp.workorder'].search([('routing_type', '=', 'CNC加工')], limit=1)
'machine_tool_code': self.workcenter_id.machine_tool_id.code, res = {'model_code': cnc.product_id.barcode, 'production_no': self.production_id.name,
'material_code': self.env['sf.production.materials'].search( 'machine_tool_code': cnc.workcenter_id.machine_tool_id.code,
[('id', '=', self.product_id.materials_id.id)]).materials_no, 'material_code': cnc.env['sf.production.materials'].search(
'material_type_code': self.env['sf.materials.model'].search( [('id', '=', cnc.product_id.materials_id.id)]).materials_no,
[('id', '=', self.product_id.materials_type_id.id)]).materials_no, 'material_type_code': cnc.env['sf.materials.model'].search(
'embryo_long': self.product_id.bom_ids.bom_line_ids.product_id.long, [('id', '=', cnc.product_id.materials_type_id.id)]).materials_no,
'embryo_height': self.product_id.bom_ids.bom_line_ids.product_id.height, 'machining_precision': cnc.product_id.model_machining_precision,
'embryo_width': self.product_id.bom_ids.bom_line_ids.product_id.width 'embryo_long': cnc.product_id.bom_ids.bom_line_ids.product_id.long,
# 'factory_code': self.env.user.company_id.partner_id. 'embryo_height': cnc.product_id.bom_ids.bom_line_ids.product_id.height,
}] 'embryo_width': cnc.product_id.bom_ids.bom_line_ids.product_id.width
# 'factory_code': self.env.user.company_id.partner_id.
}
logging.info('res:%s' % res)
configsettings = self.env['res.config.settings'].get_values() configsettings = self.env['res.config.settings'].get_values()
config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key']) config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key'])
url = '/api/intelligent_programming/create' url = '/api/intelligent_programming/create'