diff --git a/api/app/lib/controllers/report/achievement.js b/api/app/lib/controllers/report/achievement.js index 32fded1..5fd87e0 100644 --- a/api/app/lib/controllers/report/achievement.js +++ b/api/app/lib/controllers/report/achievement.js @@ -256,13 +256,17 @@ async function exportAchievementDetail(ctx, dataList) { } } } - +/** + * 查询明细表已存在编号数据,回款、合同、开票通用 + * @param {*} ctx ctx ctx.query:{tableModel表模型名} + */ async function getReceivedNumbers(ctx) { + let errorMsg = { name: 'FindError', message: '查询失败' }; try { const { tableModel } = ctx.query; const models = ctx.fs.dc.models; - let model = tableModel || 'ReceivableDetail' - let list = await models[model].findAll({//查编号 + let modelName = tableModel || 'ReceivableDetail' + let list = await models[modelName].findAll({//查编号 attributes: ['number'] }); ctx.status = 200 @@ -270,20 +274,23 @@ async function getReceivedNumbers(ctx) { } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; - ctx.body = { - message: typeof error == 'string' ? error : undefined - } + ctx.body = errorMsg; } } - +/** + * 导入明细表数据,回款、合同、开票通用 + * @param {*} ctx ctx ctx.query:{tableModel表模型名} + */ async function importBackDetails(ctx) { - let errorMsg = { message: '导入回款明细失败' }; + let errorMsg = { message: '导入失败' }; const transaction = await ctx.fs.dc.orm.transaction(); try { const models = ctx.fs.dc.models; const data = ctx.request.body; + const { tableModel } = ctx.query; + let modelName = tableModel || 'ReceivableDetail' let addArr = []; - let dataList = await models.ReceivableDetail.findAll({//查编号 + let dataList = await models[modelName].findAll({//查编号 attributes: ['number'] }); data.map(d => { @@ -294,7 +301,7 @@ async function importBackDetails(ctx) { }) //只处理新增的 if (addArr.length) { - await models.ReceivableDetail.bulkCreate(addArr); + await models[modelName].bulkCreate(addArr, { transaction }); } await transaction.commit(); ctx.status = 204; @@ -440,8 +447,8 @@ module.exports = { getReceivedDetail,//回款 getAchievementDetail,//业绩 - getReceivedNumbers,//查询回款明细表 已有的所有编号 - importBackDetails,//导入回款明细 + getReceivedNumbers,//查询回款、合同、开票明细表 已有的所有编号 + importBackDetails,//导入回款、合同、开票明细 importAchieveDetails,//导入业绩明细 getContractDetail, getInvoicingDetail, diff --git a/api/app/lib/routes/report/index.js b/api/app/lib/routes/report/index.js index c2e8e89..18a089f 100644 --- a/api/app/lib/routes/report/index.js +++ b/api/app/lib/routes/report/index.js @@ -19,11 +19,12 @@ module.exports = function (app, router, opts) { app.fs.api.logAttr['GET/detail/received/numbers'] = { content: '查询明细表已有的编号集合', visible: false }; router.get('/detail/received/numbers', achieve.getReceivedNumbers); - app.fs.api.logAttr['POST/add/received/back/bulk'] = { content: '导入回款明细', visible: true }; + app.fs.api.logAttr['POST/add/received/back/bulk'] = { content: '导入明细表', visible: true }; router.post('/add/received/back/bulk', achieve.importBackDetails); app.fs.api.logAttr['POST/add/achievement/bulk'] = { content: '导入业绩明细', visible: true }; router.post('/add/achievement/bulk', achieve.importAchieveDetails); + app.fs.api.logAttr['GET/contract/detail'] = { content: '查询合同明细表', visible: false }; router.get('/contract/detail', achieve.getContractDetail); @@ -35,5 +36,4 @@ module.exports = function (app, router, opts) { app.fs.api.logAttr['GET/export/invoicing/detail'] = { content: '导出开票明细表', visible: false }; router.get('/export/invoicing/detail', achieve.exportInvoicingDetail); - }; \ No newline at end of file