|
@@ -2,7 +2,13 @@ const express = require('express')
|
|
|
const router = express.Router()
|
|
|
const utils = require('../../utils/index.js')
|
|
|
const pools = require('../../utils/pools.js')
|
|
|
-// 增加实体
|
|
|
+const xlsx = require('node-xlsx')
|
|
|
+const path = require('path')
|
|
|
+const fileEvent = require('../../utils/file')
|
|
|
+const execTrans = require('../../utils/dbHelper.js')
|
|
|
+const getNewSqlParamEntity = require('../../utils/tool.js')
|
|
|
+const uuid = require('uuid')
|
|
|
+// 增加数据集
|
|
|
router.post('/addDataset', async (req, res) => {
|
|
|
let sql = 'INSERT INTO dataset_t(`name`,creator_id) VALUES (?,?)',
|
|
|
obj = req.body
|
|
@@ -58,16 +64,63 @@ router.post('/delDataset', async (req, res) => {
|
|
|
await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数
|
|
|
})
|
|
|
|
|
|
-//查询
|
|
|
+// 查询导入记录
|
|
|
router.post('/getImportRecord', async (req, res) => {
|
|
|
let user = await utils.getUserInfo({ req, res }),
|
|
|
obj = req.body
|
|
|
- let sql = `SELECT id,name,address,importor_id,time,data_volume FROM file_import_t WHERE 1=1` // WHERE 1=1是一个始终为真的条件,后续动态添加查询条件的起点
|
|
|
+ let sql = `SELECT id,name,importer_id,time,data_volume FROM file_import_t WHERE 1=1` // WHERE 1=1是一个始终为真的条件,后续动态添加查询条件的起点
|
|
|
sql = utils.setLike(sql, 'name', obj.name) // 添加一个基于name字段的模糊匹配条件,匹配的值来自obj.name
|
|
|
sql = utils.setMoreId(sql, user)
|
|
|
let { total } = await utils.getSum({ sql, name: 'file_import_t', res, req }) // 执行SQL查询并获取结果中的总数
|
|
|
- // sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
|
|
|
+ sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
|
|
|
let { result } = await pools({ sql, res, req })
|
|
|
res.send(utils.returnData({ data: result, total }))
|
|
|
})
|
|
|
+
|
|
|
+// 查询数据集数据
|
|
|
+router.post('/getDataList', async (req, res) => {
|
|
|
+ let user = await utils.getUserInfo({ req, res }),
|
|
|
+ obj = req.body
|
|
|
+ let sql = `SELECT id,text,is_mark,state FROM mark_data_t WHERE 1=1` // WHERE 1=1是一个始终为真的条件,后续动态添加查询条件的起点
|
|
|
+ sql = utils.setLike(sql, 'text', obj.text) // 添加一个基于name字段的模糊匹配条件,匹配的值来自obj.name
|
|
|
+ sql = utils.setMoreId(sql, user)
|
|
|
+ let { total } = await utils.getSum({ sql, name: 'mark_data_t', res, req }) // 执行SQL查询并获取结果中的总数
|
|
|
+ sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
|
|
|
+ let { result } = await pools({ sql, res, req })
|
|
|
+ res.send(utils.returnData({ data: result, total }))
|
|
|
+})
|
|
|
+
|
|
|
+// 导入数据
|
|
|
+router.post('/importData', async (req, res) => {
|
|
|
+ var sqlParamsEntity = []
|
|
|
+ let fileImportSql = 'INSERT INTO file_import_t(`id`,`name`,`importer_id`,`data_volume`,`dataset_id`) VALUES ?'
|
|
|
+ // let sql1 = 'INSERT INTO mark_data_t(`text`,`file_id`,`time`,`data_volume`,`dataset_id`) VALUES ?'
|
|
|
+ let fileArr = await fileEvent(req, res)
|
|
|
+ let params = JSON.parse(fileArr[0].params.listType)
|
|
|
+ const uniqueId = uuid.v4()
|
|
|
+ console.log('fileArr', fileArr)
|
|
|
+ let filename = fileArr[0].filename
|
|
|
+ let name = fileArr[0].originalname
|
|
|
+ //配置获取文件路径
|
|
|
+ let xlsxRes = xlsx.parse(`${path.join(__dirname, '../../', 'public/uploadFile/')}${filename}`, { cellDates: true })
|
|
|
+ let list = xlsxRes[0].data
|
|
|
+ list.splice(0, 1)
|
|
|
+ var fileImportParam = { id: uniqueId, name, importer_id: params.importer_id, data_volume: list.length, dataset_id: params.dataset_id }
|
|
|
+ sqlParamsEntity.push(getNewSqlParamEntity({ sql: fileImportSql, fileImportParam }))
|
|
|
+ let markDataSql = 'INSERT INTO file_import_t(text,`file_id`,`dataset_id`,is_mark,state) VALUES ?'
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ let item = list[i]
|
|
|
+ console.log('item', item)
|
|
|
+ // var markDataParams = { id: uniqueId, name, importer_id: params.importer_id, data_volume: list.length, dataset_id: params.dataset_id }
|
|
|
+ // sqlParamsEntity.push(getNewSqlParamEntity({ sql: fileImportSql, fileImportParam }))
|
|
|
+ }
|
|
|
+ // await pools({sql,val:[list],run:false,res,req,msg:"请确认文档导入值没有问题!!!"});
|
|
|
+ execTrans(sqlParamsEntity, function (err, info) {
|
|
|
+ if (err) {
|
|
|
+ console.error('事务执行失败', err)
|
|
|
+ } else {
|
|
|
+ console.log('done.')
|
|
|
+ }
|
|
|
+ })
|
|
|
+})
|
|
|
module.exports = router
|