diff --git a/hb_client/package.json b/hb_client/package.json index 1382831..2ba093d 100644 --- a/hb_client/package.json +++ b/hb_client/package.json @@ -20,7 +20,7 @@ "axios": "^0.21.1", "cache-loader": "^4.1.0", "compression-webpack-plugin": "^5.0.1", - "d3": "^5.14.2", + "d3": "^5.16.0", "dagre-d3": "^0.6.4", "element-ui": "^2.15.5", "file-saver": "^2.0.2", diff --git a/hb_dcu/.gitignore b/hb_daq/.gitignore similarity index 100% rename from hb_dcu/.gitignore rename to hb_daq/.gitignore diff --git a/hb_dcu/default.aproj b/hb_daq/default.aproj similarity index 54% rename from hb_dcu/default.aproj rename to hb_daq/default.aproj index 17a8b81..c3e936d 100644 --- a/hb_dcu/default.aproj +++ b/hb_daq/default.aproj @@ -1,5 +1,5 @@  - + diff --git a/hb_dcu/dlg/add.aardio b/hb_daq/dlg/add.aardio similarity index 100% rename from hb_dcu/dlg/add.aardio rename to hb_daq/dlg/add.aardio diff --git a/hb_dcu/lib/config.aardio b/hb_daq/lib/config.aardio similarity index 100% rename from hb_dcu/lib/config.aardio rename to hb_daq/lib/config.aardio diff --git a/hb_dcu/main.aardio b/hb_daq/main.aardio similarity index 88% rename from hb_dcu/main.aardio rename to hb_daq/main.aardio index cb5ac2e..ab39ff1 100644 --- a/hb_dcu/main.aardio +++ b/hb_daq/main.aardio @@ -54,10 +54,10 @@ mainForm.bindConfig( config.winform,{ listview = "items"; } ); if(mainForm.serverUrl.text==""){ - mainForm.serverUrl.text='https://testsearch.ctc.ac.cn' + mainForm.serverUrl.text='http://127.0.0.1:8000' } if(mainForm.backupPath.text==""){ - mainForm.backupPath.text="\Backup" + mainForm.backupPath.text="D:\Daq\Backup" } /* if(table.count(mainForm.listview.items)==0){ @@ -140,27 +140,35 @@ timer.onTimer = function(hwnd,msg,id,tick){ "*.*", //指定查询文件名,支持windows掩码 function(dir,filename,fullpath,findData){ //指定触发器 if(filename){ - mainForm.listbox.add(tostring(time.now(),"%Y-%m-%d %H:%M:%S","chs") + ":发现文件-"+filename, -1) + mainForm.listbox.add(tostring(time.now(),"%Y-%m-%d %H:%M:%S","chs") + ":新文件-"+filename, -1) mainForm.listbox.add("正在上传并解析...") var webData = web.multipartFormData(); webData.add("equip_num", number) webData.add("file", "@"+fullpath) + webData.contentHeader() var http = inet.http(); - http.beginRequest( mainForm.serverUrl.text + "/api/file/", "POST" ); + /* +http.beginRequest( mainForm.serverUrl.text + "/api/em/daq/", "POST" ); //小数据一次性上传 http.beginSendData(webData.size()); http.writeData(webData.readAll()) http.endSendData(); - var res = web.json.parse(http.readAll()) - if(res['code']==200){ - import fsys - var theDir = fsys.createDir(mainForm.backupPath.text+"\"+number, false) - fsys.move(fullpath, theDir) //移动到备份文件库 - mainForm.listbox.add("采集成功!") +*/ + var html,err,errCode = http.post( mainForm.serverUrl.text + "/api/em/daq/",webData.readAll(),webData.contentHeader()); + if(html){ + var res = web.json.parse(html) + if(res['code']==200){ + import fsys + var theDir = fsys.createDir(mainForm.backupPath.text+"\"+number, false) + fsys.move(fullpath, theDir) //移动到备份文件库 + mainForm.listbox.add("采集成功!") + }else{ + mainForm.listbox.add("失败:"+res['msg']) + } }else{ - mainForm.listbox.add("失败:"+res['msg']) + mainForm.listbox.add("失败:请求错误") } - http.close(); + } diff --git a/hb_server/apps/em/serializers.py b/hb_server/apps/em/serializers.py index b17e860..a200114 100644 --- a/hb_server/apps/em/serializers.py +++ b/hb_server/apps/em/serializers.py @@ -1,3 +1,4 @@ +from rest_framework import serializers from rest_framework.serializers import ModelSerializer from .models import Equipment,Equipmentrecord @@ -34,4 +35,8 @@ class EquipmentrecordSerializer(ModelSerializer): def setup_eager_loading(queryset): """ Perform necessary eager loading of data. """ queryset = queryset.select_related('equipment') - return queryset \ No newline at end of file + return queryset + +class DaqCreateSerializer(serializers.Serializer): + number = serializers.CharField() + file = serializers.FileField() \ No newline at end of file diff --git a/hb_server/apps/em/urls.py b/hb_server/apps/em/urls.py index a2f58d8..e2f7e91 100644 --- a/hb_server/apps/em/urls.py +++ b/hb_server/apps/em/urls.py @@ -1,6 +1,6 @@ from django.db.models import base from rest_framework import urlpatterns -from apps.em.views import EquipmentViewSet,EquipmentrecordViewSet +from apps.em.views import DaqView, EquipmentViewSet,EquipmentrecordViewSet from django.urls import path, include from rest_framework.routers import DefaultRouter @@ -8,6 +8,7 @@ router = DefaultRouter() router.register('equipment', EquipmentViewSet, basename='equipment') router.register('equipmentrecord', EquipmentrecordViewSet, basename='equipmentrecord') urlpatterns = [ + path('daq/', DaqView.as_view()), path('', include(router.urls)), ] diff --git a/hb_server/apps/em/views.py b/hb_server/apps/em/views.py index 64ad57d..00ae4b9 100644 --- a/hb_server/apps/em/views.py +++ b/hb_server/apps/em/views.py @@ -1,10 +1,12 @@ from django.shortcuts import render +from rest_framework.exceptions import APIException +from rest_framework.views import APIView from rest_framework.viewsets import ModelViewSet from rest_framework import serializers, status from rest_framework.response import Response from apps.em.models import Equipment,Equipmentrecord -from apps.em.serializers import EquipmentSerializer,EquipmentrecordSerializer +from apps.em.serializers import DaqCreateSerializer, EquipmentSerializer,EquipmentrecordSerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin @@ -57,4 +59,28 @@ class EquipmentrecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelVi serializer = self.get_serializer(id, data=data) serializer.is_valid(raise_exception=True) serializer.save() - return Response(status=status.HTTP_200_OK) \ No newline at end of file + return Response(status=status.HTTP_200_OK) + +import uuid +import os +from django.conf import settings +from rest_framework.parsers import MultiPartParser +class DaqView(APIView): + """ + 数据采集 + """ + authentication_classes = [] + permission_classes = [] + parser_classes = [MultiPartParser] + + def post(self, request, format=None): + data = request.data + file = data.get('file', None) + equip_num = data.get('equip_num', None) + filename = str(uuid.uuid4()) + filepath = settings.BASE_DIR +'/temp/' + filename + os.path.splitext(file.name)[-1] + with open(filepath, 'wb') as f: + for chunk in file.chunks(): + f.write(chunk) + return Response() + # raise APIException('解析失败') \ No newline at end of file