修改cnc编程单

This commit is contained in:
jinling.yang
2022-11-25 10:56:37 +08:00
parent 11a360222e
commit b498637154
4 changed files with 49 additions and 42 deletions

View File

@@ -9,7 +9,7 @@ class ResProductTemplate(models.Model):
model_long = fields.Float('模型长[mm]', digits=(16, 3)) model_long = fields.Float('模型长[mm]', digits=(16, 3))
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]', compute='_compute_model_volume', store=True)
model_machining_precision = fields.Selection([ model_machining_precision = fields.Selection([
('±0.10mm', '±0.10mm'), ('±0.10mm', '±0.10mm'),
('±0.05mm', '±0.05mm'), ('±0.05mm', '±0.05mm'),
@@ -22,9 +22,9 @@ class ResProductTemplate(models.Model):
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_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))
width = fields.Float('宽[mm]', digits=(16, 3), onchange='add_product_size') width = fields.Float('宽[mm]', digits=(16, 3))
height = fields.Float('高[mm]', digits=(16, 3), onchange='add_product_size') height = fields.Float('高[mm]', digits=(16, 3))
materials_id = fields.Many2one('sf.production.materials', string='材料') materials_id = fields.Many2one('sf.production.materials', string='材料')
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号') materials_type_id = fields.Many2one('sf.materials.model', string='材料型号')
volume = fields.Float(compute='_compute_volume', store=True) volume = fields.Float(compute='_compute_volume', store=True)
@@ -34,6 +34,10 @@ class ResProductTemplate(models.Model):
def _compute_volume(self): def _compute_volume(self):
self.volume = self.long * self.width * self.height self.volume = self.long * self.width * self.height
@api.depends('model_long', 'model_width', 'model_height')
def _compute_model_volume(self):
self.model_volume = self.model_long * self.model_width * self.model_height
# 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品 # 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品
def product_create(self, product_id, item, order_id, order_number, i): def product_create(self, product_id, item, order_id, order_number, i):
copy_product_id = product_id.with_user(self.env.ref("base.user_admin")).copy() copy_product_id = product_id.with_user(self.env.ref("base.user_admin")).copy()
@@ -70,17 +74,20 @@ class ResProductTemplate(models.Model):
if not self.model_type_id: if not self.model_type_id:
return return
model_type = self.env['sf.model.type'].search( model_type = self.env['sf.model.type'].search(
[('id', '=', self.model_type_id.id)]) [('id', '=', self.model_type_id.id), ('embryo_tolerance', '=', True)])
print(self.model_long) if model_type:
print(self.model_width) self.model_long = self.model_long + 1
print(self.model_height) self.model_width = self.model_width + 1
for item in self: self.model_height = self.model_width + 1
print(item.model_long) # for item in self:
print(item.model_width) # print(item.model_long)
print(item.model_height) # print(item.model_width)
item.model_long = item.model_long + model_type.embryo_tolerance # print(item.model_height)
item.model_width = item.model_width + model_type.embryo_tolerance # item.model_long = item.model_long + 1
item.model_height = item.model_width + model_type.embryo_tolerance # item.model_width = item.model_width + 1
# item.model_height = item.model_width + 1
else:
return
class ResMrpBom(models.Model): class ResMrpBom(models.Model):

View File

@@ -35,8 +35,8 @@
<field name="model_width" string="宽[mm]"/> <field name="model_width" string="宽[mm]"/>
<field name="model_height" string="高[mm]"/> <field name="model_height" string="高[mm]"/>
<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="例如R,U" string="加工面板"/>
<field name="model_machining_precision" /> <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="工艺参数"

View File

@@ -6,7 +6,7 @@ class ModelType(models.Model):
_description = '模型类型' _description = '模型类型'
name = fields.Char('名称') name = fields.Char('名称')
embryo_tolerance = fields.Integer('胚料的容余量') embryo_tolerance = fields.Boolean('胚料的容余量', default=False)
routing_tmpl_ids = fields.One2many('sf.model.type.routing.sort', 'model_type_id', '工序模板') routing_tmpl_ids = fields.One2many('sf.model.type.routing.sort', 'model_type_id', '工序模板')

View File

@@ -203,7 +203,8 @@ class ResMrpWorkOrder(models.Model):
# cnc程序获取 # cnc程序获取
def fetchCNC(self): def fetchCNC(self):
cnc = self.env['mrp.workorder'].search([('routing_type', '=', 'CNC加工')], limit=1) cnc = self.env['mrp.workorder'].search(
[('routing_type', '=', 'CNC加工'), ('production_id', '=', self.production_id.id)], limit=1)
res = {'model_code': cnc.product_id.barcode, 'production_no': self.production_id.name, res = {'model_code': cnc.product_id.barcode, 'production_no': self.production_id.name,
'machine_tool_code': cnc.workcenter_id.machine_tool_id.code, 'machine_tool_code': cnc.workcenter_id.machine_tool_id.code,
'material_code': cnc.env['sf.production.materials'].search( 'material_code': cnc.env['sf.production.materials'].search(
@@ -299,36 +300,35 @@ class CNCprocessing(models.Model):
_description = "CNC加工" _description = "CNC加工"
cnc_id = fields.Many2one('ir.attachment') cnc_id = fields.Many2one('ir.attachment')
FNo = fields.Char(string="序号") sequence_number = fields.Char('序号')
FPGName = fields.Char(string="程序名") program_name = fields.Char('程序名')
FKnifeName = fields.Char(string="刀具名称") cutting_tool_name = fields.Char('刀具名称')
FDNo = fields.Char(string="刀号") cutting_tool_no = fields.Char('刀号')
FWorkType = fields.Char(string="加工类型") processing_type = fields.Char('加工类型')
FXY = fields.Char(string="余量_X/Y") margin_x_y = fields.Char('余量_X/Y')
FZ = fields.Char(string="余量_Z") margin_z = fields.Char('余量_Z')
FJGSD = fields.Char(string="加工深度(Z)") depth_of_processing_z = fields.Char('加工深度(Z)')
FSCCD = fields.Char(string="刀具伸出长度") cutting_tool_extension_length = fields.Char('刀具伸出长度')
FDJSpec = fields.Char(string="刀柄型号") cutting_tool_handle_type = fields.Char('刀柄型号')
FJGDate = fields.Datetime(string="预计加工时间") estimated_processing_time = fields.Datetime('预计加工时间')
FComment = fields.Char(string="备注")
workorder_id = fields.Many2one('mrp.workorder', string="工单") workorder_id = fields.Many2one('mrp.workorder', string="工单")
# mrs下发编程单创建CNC加工 # mrs下发编程单创建CNC加工
def CNCprocessing_create(self, obj): def CNCprocessing_create(self, obj):
workorder = self.env['mrp.workorder'].search([('production_id', '=', obj['manufacturing_order_no']), workorder = self.env['mrp.workorder'].search([('production_id.name', '=', obj['manufacturing_order_no']),
('processing_panel', '=', obj['processing_panel']), ('processing_panel', '=', obj['processing_panel']),
('routing_type', '=', 'CNC加工')]) ('routing_type', '=', 'CNC加工')])
self.env['sf.cnc.processing'].create({ self.env['sf.cnc.processing'].create({
'workorder_id': workorder.id, 'workorder_id': workorder.id,
'FNo': obj['sequence_number'], 'sequence_number': obj['sequence_number'],
'FPGName': obj['program_name'], 'program_name': obj['program_name'],
'FKnifeName': obj['cutting_tool_name'], 'cutting_tool_name': obj['cutting_tool_name'],
'FDNo': obj['cutting_tool_no'], 'cutting_tool_no': obj['cutting_tool_no'],
'FWorkType': obj['processing_type'], 'processing_type': obj['processing_type'],
'FXY': obj['margin_x_y'], 'margin_x_y': obj['margin_x_y'],
'FZ': obj['margin_z'], 'margin_z': obj['margin_z'],
'FJGSD': obj['depth_of_processing_z'], 'depth_of_processing_z': obj['depth_of_processing_z'],
'FSCCD': obj['cutting_tool_extension_length'], 'cutting_tool_extension_length': obj['cutting_tool_extension_length'],
'FDJSpec': obj['cutting_tool_handle_type'], 'cutting_tool_handle_type': obj['cutting_tool_handle_type'],
# 'FJGDate': obj[''] # 'FJGDate': obj['']
}) })