1、新增功能刀具出入库

This commit is contained in:
yuxianghui
2024-06-12 14:08:21 +08:00
parent 07b1c3cceb
commit 0f32b0acb1
3 changed files with 62 additions and 6 deletions

View File

@@ -30,7 +30,7 @@ class FunctionalCuttingToolEntity(models.Model):
coarse_middle_thin = fields.Selection([("1", ""), ('2', ''), ('3', '')], string='粗/中/精', readonly=True)
new_former = fields.Selection([('0', ''), ('1', '')], string='新/旧', readonly=True)
tool_loading_length = fields.Float(string='总长度(mm)', readonly=True, digits=(10, 3))
handle_length = fields.Float(string='刀柄长度(mm)',readonly=True, digits=(10, 3))
handle_length = fields.Float(string='刀柄长度(mm)', readonly=True, digits=(10, 3))
functional_tool_length = fields.Float(string='伸出长(mm)', readonly=True, digits=(10, 3))
effective_length = fields.Float(string='有效长(mm)', readonly=True)
tool_room_num = fields.Integer(string='刀具房数量', readonly=True)
@@ -75,6 +75,48 @@ class FunctionalCuttingToolEntity(models.Model):
record.line_edge_knife_library_num = 0
record.machine_knife_library_num = 0
def tool_in_out_stock_location(self, location_id):
for item in self:
if item:
pass
else:
if location_id.product_sn_id:
tool = self.env['sf.functional.cutting.tool.entity'].search(
['barcode_id', '=', location_id.product_sn_id.id])
if tool.current_location == '线边刀库':
pass
def create_stock_move(self):
# 创建库存移动记录
stock_move_id = self.env['stock.move'].sudo().create({
'name': name,
'product_id': self.barcode_id.product_id.id,
'location_id': location_inventory_id.id,
'location_dest_id': stock_location_id.id,
'product_uom_qty': 1.00,
'state': 'done'
})
# 创建移动历史记录
stock_move_line_id = self.env['stock.move.line'].sudo().create({
'product_id': self.barcode_id.product_id.id,
'functional_tool_name_id': functional_tool_assembly_id,
'lot_id': self.id,
'move_id': stock_move_id.id,
'install_tool_time': fields.Datetime.now(),
'qty_done': 1.0,
'state': 'done',
'functional_tool_type_id': False if not obj else obj.functional_tool_type_id.id,
'diameter': None if not obj else obj.after_assembly_functional_tool_diameter,
'knife_tip_r_angle': None if not obj else obj.after_assembly_knife_tip_r_angle,
'code': '' if not obj else obj.code,
'rfid': '' if not obj else obj.rfid,
'functional_tool_name': '' if not obj else obj.after_assembly_functional_tool_name,
'tool_groups_id': False if not tool_groups_id else tool_groups_id.id
})
return stock_move_id, stock_move_line_id
def get_location_num(self):
"""
计算库存位置数量

View File

@@ -86,7 +86,7 @@
</div>
<group>
<group>
<field name="barcode_id" invisible="1"/>
<field name="barcode_id" invisible="0"/>
<field name="rfid" readonly="1"
attrs="{'invisible': [('functional_tool_status', '=', '已拆除')]}"/>
<field name="rfid_dismantle" readonly="1"

View File

@@ -95,17 +95,31 @@ class MrsShelfLocationDataSync(models.Model):
return code_pair[0]
return None # 如果没有找到对应的值返回None或适当的默认值
# 定时更新所有设备机床刀库信息
equipment_ids = self.env['maintenance.equipment'].search([('equipment_type', '=', '机床')])
for equipment_id in equipment_ids:
if equipment_id:
equipment_id.register_equipment_tool()
shelfinfo = self.env['sf.shelf.location'].get_sf_shelf_location_info()
print('shelfinfo:', shelfinfo)
for item in shelfinfo:
shelf_barcode = find_our_code(item['Postion'], total_data)
location_id = self.env['sf.shelf.location'].search([('barcode', '=', shelf_barcode)], limit=1)
if location_id:
stock_lot_obj = self.env['stock.lot'].search([('rfid', '=', item['RfidCode'])], limit=1)
if stock_lot_obj:
location_id.product_sn_id = stock_lot_obj.id
if 'Tool' in item['Postion']:
tool = self.env['sf.functional.cutting.tool.entity'].search(['rfid', '=', item['RfidCode']])
tool.tool_in_out_stock_location(location_id)
if tool:
location_id.product_sn_id = tool.barcode_id.id
else:
location_id.product_sn_id = False
else:
location_id.product_sn_id = False
stock_lot_obj = self.env['stock.lot'].search([('rfid', '=', item['RfidCode'])], limit=1)
if stock_lot_obj:
location_id.product_sn_id = stock_lot_obj.id
else:
location_id.product_sn_id = False
logging.info('货架已获取信息:%s' % item)
except Exception as e: