Merge branch 'hotfix/刀具预调仪' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into release/release_1.4

This commit is contained in:
jinling.yang
2024-06-05 16:11:24 +08:00
10 changed files with 356 additions and 191 deletions

View File

@@ -549,12 +549,14 @@ class FunctionalToolAssembly(models.Model):
chuck_name = fields.Char('')
# ==============================================
# 组装功能刀具参数信息
start_preset_bool = fields.Boolean('开始预调', default=False)
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号', readonly=True)
after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', readonly=True)
after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',
string='组装后功能刀具类型', readonly=True)
after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True)
after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)', readonly=True)
after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True,
digits=(10, 3))
after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)', readonly=True, digits=(10, 3))
after_assembly_new_former = fields.Selection([('0', ''), ('1', '')], string='组装后新/旧', readonly=True)
cut_time = fields.Integer(string='已切削时间(min)', readonly=True)
cut_length = fields.Float(string='已切削长度(mm)', readonly=True)
@@ -566,8 +568,9 @@ class FunctionalToolAssembly(models.Model):
after_assembly_max_lifetime_value = fields.Integer(string='组装后最大寿命值(min)', readonly=True)
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True)
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True)
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True)
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True)
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True, digits=(10, 3))
after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)', readonly=True, digits=(10, 3))
after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True, digits=(10, 3))
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True)
L_D_number = fields.Float(string='L/D值(mm)', readonly=True)
hiding_length = fields.Float(string='避空长(mm)', readonly=True)
@@ -585,29 +588,64 @@ class FunctionalToolAssembly(models.Model):
active = fields.Boolean(string='已归档', default=True)
def put_start_preset(self):
self.search([('start_preset_bool', '=', True)]).write({'start_preset_bool': False})
self.write({
'after_assembly_tool_loading_length': 0,
'after_assembly_functional_tool_diameter': 0,
'after_assembly_knife_tip_r_angle': 0,
'start_preset_bool': True
})
return {
'type': 'ir.actions.act_window',
'res_model': 'sf.functional.tool.assembly.order',
'name': '功能刀具组装单',
'view_mode': 'form',
'target': 'new',
'context': {'default_name': self.name,
'default_assembly_order_code': self.assembly_order_code,
'default_production_line_name_id': self.production_line_name_id.id,
'default_machine_tool_name_id': self.machine_tool_name_id.id,
'default_cutter_spacing_code_id': self.cutter_spacing_code_id.id,
'default_functional_tool_name': self.functional_tool_name,
'default_functional_tool_type_id': self.functional_tool_type_id.id,
'default_tool_groups_id': self.tool_groups_id.id,
'default_functional_tool_diameter': self.functional_tool_diameter,
'default_knife_tip_r_angle': self.knife_tip_r_angle,
'default_tool_loading_length': self.tool_loading_length,
'default_functional_tool_length': self.functional_tool_length,
'default_effective_length': self.effective_length,
'default_whether_standard_knife': self.whether_standard_knife,
'default_coarse_middle_thin': self.coarse_middle_thin,
'default_new_former': self.new_former,
'default_use_tool_time': self.use_tool_time,
'default_reason_for_applying': self.reason_for_applying
}
}
def _get_code(self, loading_task_source):
"""
自动生成组装单编码
"""
new_time = str(fields.Date.today())
datetime = new_time[2:4] + new_time[5:7] + new_time[-2:]
datetime = new_time[2:4] + new_time[5:7]
if loading_task_source == '0':
code = 'C' + datetime
elif loading_task_source == '1':
code = 'J' + datetime
elif loading_task_source == '2':
code = 'K' + datetime
else:
code = False
functional_tool_assembly = self.env['sf.functional.tool.assembly'].sudo().search(
[('loading_task_source', '=', loading_task_source),
('assembly_order_code', 'ilike', datetime)], limit=1, order="id desc")
('assembly_order_code', 'ilike', code)], limit=1, order="id desc")
if not functional_tool_assembly:
num = "%03d" % 1
else:
m = int(functional_tool_assembly.assembly_order_code[-3:]) + 1
num = "%03d" % m
if loading_task_source == '0':
code = 'CAMZZD' + datetime + str(num)
elif loading_task_source == '1':
code = 'JTZZD' + datetime + str(num)
elif loading_task_source == '2':
code = 'MTSZZD' + datetime + str(num)
else:
code = False
return code
return code + str(num)
def get_functional_tool(self, val):
functional_tools = self.env['sf.functional.tool.assembly'].search(
@@ -825,6 +863,10 @@ class FunctionalToolDismantle(models.Model):
logging.info('%s刀具确认开始拆解' % self.dismantle_cause)
if self.functional_tool_id.functional_tool_status == '已拆除':
raise ValidationError('Rfid为【%s】的功能刀具已经拆解,请勿重复操作!' % self.functional_tool_id.rfid_dismantle)
# 对拆解的功能刀具进行校验,只有在刀具房的功能刀具才能拆解
if self.functional_tool_id.tool_room_num == 0:
raise ValidationError('Rfid为【%s】的功能刀具当前位置为【%s】,不能进行拆解!' % (
self.rfid, self.functional_tool_id.current_location))
location = self.env['stock.location'].search([('name', '=', '刀具组装位置')])
location_dest = self.env['stock.location'].search([('name', '=', '刀具房')])
# =================刀柄是否[报废]拆解=======