Forráskód Böngészése

设备导入接口

zhangnaiwen 2 éve
szülő
commit
3973609da0
1 módosított fájl, 31 hozzáadás és 42 törlés
  1. 31 42
      src/app/api/device.py

+ 31 - 42
src/app/api/device.py

@@ -41,10 +41,9 @@ class DeviceTypeApi(Resource):
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='add_device', description='添加设备类别')
@@ -68,10 +67,9 @@ class DeviceTypeApi(Resource):
             save_log(request, Module.DEVICE, OperationType.ADD, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.ADD, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='update_device', description='修改设备类别')
@@ -96,10 +94,9 @@ class DeviceTypeApi(Resource):
             save_log(request, Module.DEVICE, OperationType.UPDATE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.UPDATE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
 
@@ -129,10 +126,9 @@ class DeviceListApi(Resource):
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
 
@@ -176,9 +172,9 @@ class DeviceApi(Resource):
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
+
         except Exception as e:
             save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='add_device', description='添加设备详情')
@@ -221,10 +217,9 @@ class DeviceApi(Resource):
             save_log(request, Module.DEVICE, OperationType.ADD, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.ADD, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='update_device', description='添加设备')
@@ -268,10 +263,9 @@ class DeviceApi(Resource):
             save_log(request, Module.DEVICE, OperationType.UPDATE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.UPDATE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='delete_device', description='删除设备')
@@ -293,10 +287,9 @@ class DeviceApi(Resource):
             save_log(request, Module.DEVICE, OperationType.DELETE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.DELETE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
 
@@ -306,6 +299,8 @@ batch_delete_user.add_argument(name='devices_id', type=str, required=True, locat
 
 @ns.route('/batch_delete_device')
 class BatchDeleteDeviceApi(Resource):
+    method_decorators = [login_required]
+
     @ns.doc(id='batch_delete_device', description='批量删除设备')
     @ns.expect(batch_delete_user)
     def delete(self):
@@ -329,41 +324,50 @@ class BatchDeleteDeviceApi(Resource):
             save_log(request, Module.DEVICE, OperationType.BATCH_DELETE, StatesCode.SUCCESS)
 
             return jsonify(code=StatesCode.SUCCESS, message='批量删除成功')
-        except Exception as e:
 
+        except Exception as e:
             save_log(request, Module.DEVICE, OperationType.DELETE, StatesCode.UNKNOWN_ERROR)
-
             return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
 
 import_device = reqparse.RequestParser(bundle_errors=True)
 import_device.add_argument(name='files', type=FileStorage, required=True, location='files', help='导入设备Excel')
+import_device.add_argument(name='group_id', type=str, required=True, location='form', help='设备类别id')
 
 
 @ns.route('/import_device')
 class ImportDeviceApi(Resource):
+    method_decorators = [login_required]
+
     @ns.doc(id='import_device', description='导入模版下载')
     def get(self):
         """导入模版下载"""
+        try:
+            manage_path = os.path.dirname(os.path.abspath(__file__))
+            config_yml_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(manage_path))), 'config',
+                                           'device.xlsx')
+
+            file_data = open(config_yml_path, 'rb')
+            buf = file_data.read()
+            file_data.close()
 
-        manage_path = os.path.dirname(os.path.abspath(__file__))
-        config_yml_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(manage_path))), 'config',
-                                       'device.xlsx')
+            response = Response(buf)
+            response.headers['Content-Type'] = 'application/octet-stream'
+            response.headers['Content-Disposition'] = 'attachment; filename=%s' % 'device.xlsx'
 
-        file_data = open(config_yml_path, 'rb')
-        buf = file_data.read()
-        file_data.close()
+            save_log(request, Module.DEVICE, OperationType.IMPORT, StatesCode.SUCCESS)
 
-        response = Response(buf)
-        response.headers['Content-Type'] = 'application/octet-stream'
-        response.headers['Content-Disposition'] = 'attachment; filename=%s' % 'device.xlsx'
-        return response
+            return response
+        except Exception as e:
+            save_log(request, Module.DEVICE, OperationType.IMPORT, StatesCode.UNKNOWN_ERROR)
+            return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
 
     @ns.doc(id='import_device', description='设备导入')
     @ns.expect(import_device)
     def post(self):
         """设备导入"""
         device_file = request.files.get('files')
+        device_group_id = request.form.get('group_id')
 
         device_file_path = os.path.join(config.common.DEVICE_EXCEL_SAVE_PATH, device_file.name)
         device_file.save(device_file_path)
@@ -373,21 +377,6 @@ class ImportDeviceApi(Resource):
         with Session(current_app.engine) as session:
 
             for sheet in xlsx.sheets():
-                device_group = sheet.name
-
-                try:
-                    # 添加类别
-                    add_device_group = insert(DeviceType).values(
-                        type_name=device_group
-                    )
-                    session.execute(add_device_group)
-                    session.commit()
-                except IntegrityError:
-                    session.rollback()
-
-                # 获取类别id
-                get_device_group_id = select(DeviceType.id).where(DeviceType.type_name == device_group)
-                device_group_id = session.execute(get_device_group_id).scalars().first()
 
                 # 添加设备数据
                 for i in range(1, sheet.nrows):  # 逐行打印sheet数据