cnc获取
This commit is contained in:
@@ -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': [
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()),
|
||||||
|
|||||||
@@ -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,
|
||||||
|
'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.
|
# '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'
|
||||||
|
|||||||
Reference in New Issue
Block a user