From 3fd676197301511b9de5f89da7bda7d0a51393bd Mon Sep 17 00:00:00 2001 From: Aaron.Liu <427787340@qq.com> Date: Tue, 24 Apr 2018 16:45:55 +0800 Subject: [PATCH] 增加报表方法 --- app/controller/project.js | 15 +++++++++++++++ app/router.js | 1 + app/service/project.js | 32 ++++++++++++++++++++++++++++++++ app/service/statistic.js | 16 ---------------- config/config.default.js | 2 +- package.json | 2 +- 6 files changed, 50 insertions(+), 18 deletions(-) diff --git a/app/controller/project.js b/app/controller/project.js index 3abe37f..497798a 100644 --- a/app/controller/project.js +++ b/app/controller/project.js @@ -39,6 +39,21 @@ class ProjectController extends Controller { }; } } + async analysis() { + const ctx = this.ctx; + try { + const result = await ctx.service.project.analysis(); + this.ctx.body = { + result, + success: true, + }; + } catch (error) { + this.ctx.body = { + success: false, + error, + }; + } + } async add() { const ctx = this.ctx; const id = uuid.v4(); diff --git a/app/router.js b/app/router.js index aa1ad2b..6ff24d9 100644 --- a/app/router.js +++ b/app/router.js @@ -33,6 +33,7 @@ module.exports = app => { router.put('/contract', controller.contract.update); router.post('/contract/delete', controller.contract.remove); // 项目管理 + router.get('/project/analysis', controller.project.analysis); router.get('/project/list', controller.project.list); router.get('/project/:id', controller.project.info); router.post('/project', controller.project.add); diff --git a/app/service/project.js b/app/service/project.js index d111858..408a000 100644 --- a/app/service/project.js +++ b/app/service/project.js @@ -5,6 +5,38 @@ const objExclude = require('../util/common').objExclude; const moment = require('moment'); class ProjectService extends Service { + async analysis() { + // const sql = ` + // select + // project.number, + // project.name, + // s_contract.value as s_value, + // s_contract.other_expenses as s_other_expenses, + // s_contract.invoice as s_invoice, + // p_contract.value as p_value, + // p_contract.other_expenses as p_other_expenses, + // p_contract.invoice as p_invoice + // from project, contract as s_contract, contract as p_contract + // where project.sale_contract_id = s_contract.id and project.purchase_contract_id = p_contract.id + // `; + const sql = ` + select a.*,b.p_value, b.p_other_expenses,b.p_invoice from + ( + select + project.number, project.name, contract.value as s_value, contract.other_expenses as s_other_expenses, contract.invoice as s_invoice + from project, contract where project.sale_contract_id = contract.id + ) a + left join + ( + select + project.number, project.name, contract.value as p_value, contract.other_expenses as p_other_expenses, contract.invoice as p_invoice + from project, contract where project.purchase_contract_id = contract.id + ) b + on a.number = b.number + `; + const result = await this.app.mysql.query(sql); + return result; + } async count() { const result = await this.app.mysql.query('select count(*) as total from project'); return result; diff --git a/app/service/statistic.js b/app/service/statistic.js index e6e13ea..e412db3 100644 --- a/app/service/statistic.js +++ b/app/service/statistic.js @@ -17,22 +17,6 @@ class StatisticService extends Service { `); return result && result.length > 0 ? result[0] : {}; } - async projectAnalysis() { - const result = await this.app.mysql.query(` - select - project.number, - project.name, - s_contract.value as s_value, - s_contract.other_expenses as s_other_expenses, - s_contract.invoice as s_invoice, - p_contract.value as p_value, - p_contract.other_expenses as p_other_expenses, - p_contract.invoice as p_invoice - from project, contract as s_contract, contract as p_contract - where project.sale_contract_id = s_contract.id and project.purchase_contract_id = p_contract.id - `); - return result; - } } module.exports = StatisticService; diff --git a/config/config.default.js b/config/config.default.js index b7a20fe..e62321e 100644 --- a/config/config.default.js +++ b/config/config.default.js @@ -30,7 +30,7 @@ module.exports = appInfo => { }; config.security = { - domainWhiteList: [ 'localhost:8080' ], + domainWhiteList: [ '10.10.1.123:8080' ], csrf: false, }; diff --git a/package.json b/package.json index 6d37f8e..24a5d09 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "scripts": { "start": "egg-scripts start --daemon --title=egg-server-sf-erp-server", "stop": "egg-scripts stop --title=egg-server-sf-erp-server", - "dev": "egg-bin dev", + "dev": "egg-bin dev --host 0.0.0.0", "debug": "egg-bin debug", "test": "npm run lint -- --fix && npm run test-local", "test-local": "egg-bin test", -- libgit2 0.21.0