feat: equipment的导入
This commit is contained in:
parent
0f2d2dbee9
commit
873dda9296
|
@ -0,0 +1,33 @@
|
|||
from .models import Equipment
|
||||
from apps.system.models import Dept
|
||||
from apps.mtm.models import Mgroup
|
||||
|
||||
def daoru_equipment(path:str):
|
||||
from apps.utils.snowflake import idWorker
|
||||
from openpyxl import load_workbook
|
||||
wb = load_workbook(path)
|
||||
sheet = wb.get_sheet_by_name('em_equipment')
|
||||
i = 2
|
||||
while sheet[f'a{i}'].value:
|
||||
name = sheet[f'a{i}'].value
|
||||
number = sheet[f'b{i}'].value
|
||||
model = sheet[f'c{i}'].value
|
||||
parameter = sheet[f'd{i}'].value
|
||||
place = sheet[f'e{i}'].value
|
||||
power_kw = sheet[f'f{i}'].value
|
||||
belong_dept_name = sheet[f'g{i}'].value
|
||||
mgroup_name = sheet[f'h{i}'].value
|
||||
Equipment.objects.get_or_create(
|
||||
number=number,
|
||||
defaults={
|
||||
'id': idWorker.get_id(),
|
||||
'name': name,
|
||||
'model': model,
|
||||
'parameter': parameter,
|
||||
'place': place,
|
||||
'power_kw': power_kw,
|
||||
'belong_dept': Dept.objects.get(name=belong_dept_name),
|
||||
'mgroup': Mgroup.objects.get(name=mgroup_name)
|
||||
}
|
||||
)
|
||||
|
|
@ -6,6 +6,11 @@ from apps.em.filters import EquipFilterSet
|
|||
from rest_framework.exceptions import ParseError
|
||||
from rest_framework.mixins import ListModelMixin, CreateModelMixin, DestroyModelMixin
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.serializers import Serializer
|
||||
from django.db import transaction
|
||||
from apps.em.services import daoru_equipment
|
||||
from rest_framework.response import Response
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
@ -22,6 +27,17 @@ class EquipmentViewSet(CustomModelViewSet):
|
|||
raise ParseError('请指定设备类型')
|
||||
return super().filter_queryset(queryset)
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'equipment.create'}, serializer_class=Serializer)
|
||||
@transaction.atomic
|
||||
def daoru(self, request, *args, **kwargs):
|
||||
"""导入
|
||||
|
||||
导入
|
||||
"""
|
||||
daoru_equipment(request.data.get('path', None))
|
||||
return Response()
|
||||
|
||||
|
||||
|
||||
class EcheckRecordViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue