v1.0.0: 希姆计算资产管理系统正式版

这个提交包含在:
cnbugs
2026-04-25 08:29:01 +08:00
父节点 a40a0137cf
当前提交 855547d70f
修改 11 个文件,包含 279 行新增18 行删除
+17 -8
查看文件
@@ -13,6 +13,7 @@ EXPORT_COLUMNS = [
('category', '设备分类', 12),
('brand', '品牌', 12),
('model', '型号', 20),
('asset_value', '资产面值', 12),
('serial_number', '序列号', 25),
('location', '设备位置', 20),
('cabinet', '机柜', 10),
@@ -23,6 +24,8 @@ EXPORT_COLUMNS = [
('warranty_expire', '质保到期', 12),
('supplier', '供应商', 15),
('responsible_person', '负责人', 10),
('department', '使用部门', 15),
('user', '使用人', 10),
('status', '状态', 8),
('remark', '备注', 30),
]
@@ -100,8 +103,8 @@ def generate_import_template():
# 示例数据行
example_data = [
'IT-2024-0001', '测试服务器', '服务器', 'Dell', 'PowerEdge R740',
'ABC123456', '3楼机房A区', 'A01', 'U10-U15', '192.168.1.200',
'192.168.1.100', '2024-01-15', '2027-01-15', '戴尔科技', '张三', '在用', '测试备注'
'50000.00', 'ABC123456', '3楼机房A区', 'A01', 'U10-U15', '192.168.1.200',
'192.168.1.100', '2024-01-15', '2027-01-15', '戴尔科技', '张三', '研发部', '李四', '在用', '测试备注'
]
for col_idx, value in enumerate(example_data, 1):
cell = ws.cell(row=2, column=col_idx, value=value)
@@ -147,12 +150,6 @@ def import_assets_from_excel(ws, category_map, operator=None):
results['errors'].append(f'{row_idx}行: 缺少资产编号')
continue
# 检查重复
if Asset.objects.filter(asset_number=asset_number).exists():
results['skipped'] += 1
results['errors'].append(f'{row_idx}行: 资产编号 {asset_number} 已存在')
continue
# 处理分类 - 不存在则自动创建
category_name = data.get('category', '').strip()
category = category_map.get(category_name)
@@ -187,12 +184,22 @@ def import_assets_from_excel(ws, category_map, operator=None):
bmc_address = data.get('bmc_address') or None
ip_address = data.get('ip_address') or None
# 处理资产面值
from decimal import Decimal, InvalidOperation
asset_value = None
if data.get('asset_value'):
try:
asset_value = Decimal(str(data['asset_value']).replace(',', ''))
except (InvalidOperation, ValueError):
pass
asset = Asset.objects.create(
asset_number=asset_number,
name=data.get('name', ''),
category=category,
brand=data.get('brand', ''),
model=data.get('model', ''),
asset_value=asset_value,
serial_number=data.get('serial_number', ''),
location=data.get('location', ''),
cabinet=data.get('cabinet', ''),
@@ -203,6 +210,8 @@ def import_assets_from_excel(ws, category_map, operator=None):
warranty_expire=warranty_expire,
supplier=data.get('supplier', ''),
responsible_person=data.get('responsible_person', ''),
department=data.get('department', ''),
user=data.get('user', ''),
status=status,
remark=data.get('remark', ''),
created_by=operator,