Commit b53cae26f99229f9a5c7cb7b8b12fa876d930c3f

Authored by Aaron.Liu
1 parent 55cbd78d
Exists in master

增加一些方法

app/service/contract.js
@@ -3,7 +3,6 @@ @@ -3,7 +3,6 @@
3 const Service = require('egg').Service; 3 const Service = require('egg').Service;
4 const objExclude = require('../util/common').objExclude; 4 const objExclude = require('../util/common').objExclude;
5 const objToQuery = require('../util/common').objToQuery; 5 const objToQuery = require('../util/common').objToQuery;
6 -const moment = require('moment');  
7 6
8 class ContractService extends Service { 7 class ContractService extends Service {
9 async count() { 8 async count() {
@@ -11,22 +10,18 @@ class ContractService extends Service { @@ -11,22 +10,18 @@ class ContractService extends Service {
11 return result; 10 return result;
12 } 11 }
13 async add(data) { 12 async add(data) {
14 - const value = data;  
15 - value.create_time = moment().format('YYYY-MM-DD HH:mm:ss');  
16 - const result = await this.app.mysql.insert('contract', value); 13 + const result = await this.app.mysql.insert('contract', data);
17 return result; 14 return result;
18 } 15 }
19 async update(data) { 16 async update(data) {
20 - const value = data;  
21 - value.update_time = moment().format('YYYY-MM-DD HH:mm:ss');  
22 - const result = await this.app.mysql.update('contract', value); 17 + const result = await this.app.mysql.update('contract', data);
23 return result; 18 return result;
24 } 19 }
25 async find(id) { 20 async find(id) {
26 // const user = await this.app.mysql.get('contract', { id }); 21 // const user = await this.app.mysql.get('contract', { id });
27 const user = await this.app.mysql.query(` 22 const user = await this.app.mysql.query(`
28 - select id, customer_id, number, value, product, invoice, date_format(invoice_time, '%Y-%m-%d') as invoice_time,  
29 - method, date_format(method_time, '%Y-%m-%d') as method_time, other_expenses, remark, type, create_time, update_time 23 + select id, customer_id, number, name, value, product, invoice, date_format(invoice_time, '%Y-%m-%d') as invoice_time,
  24 + method, date_format(method_time, '%Y-%m-%d') as method_time, other_expenses, remark, type
30 from contract where id = ? 25 from contract where id = ?
31 `, [ id ]); 26 `, [ id ]);
32 const result = user && user.length > 0 ? user[0] : {}; 27 const result = user && user.length > 0 ? user[0] : {};
app/service/project.js
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 const Service = require('egg').Service; 3 const Service = require('egg').Service;
4 const objExclude = require('../util/common').objExclude; 4 const objExclude = require('../util/common').objExclude;
  5 +const moment = require('moment');
5 6
6 class ProjectService extends Service { 7 class ProjectService extends Service {
7 async count() { 8 async count() {
@@ -9,11 +10,20 @@ class ProjectService extends Service { @@ -9,11 +10,20 @@ class ProjectService extends Service {
9 return result; 10 return result;
10 } 11 }
11 async add(data) { 12 async add(data) {
12 - const result = await this.app.mysql.insert('project', data); 13 + const value = data;
  14 + value.create_time = moment().format('YYYY-MM-DD HH:mm:ss');
  15 + const todayCountResult = await this.app.mysql.query('select count(*) as count from project where create_time like ?', [ `%${moment().format('YYYY-MM-DD')}%` ]);
  16 + const todayCount = todayCountResult && todayCountResult.length > 0 ? todayCountResult[0].count : 0;
  17 + const count = Number(todayCount) + 1;
  18 + const number = `SF${moment().format('YYYYMMDD')}${count > 9 ? count : `0${count}`}`;
  19 + value.number = number;
  20 + const result = await this.app.mysql.insert('project', value);
13 return result; 21 return result;
14 } 22 }
15 async update(data) { 23 async update(data) {
16 - const result = await this.app.mysql.update('project', data); 24 + const value = data;
  25 + value.update_time = moment().format('YYYY-MM-DD HH:mm:ss');
  26 + const result = await this.app.mysql.update('project', value);
17 return result; 27 return result;
18 } 28 }
19 async find(id) { 29 async find(id) {
app/service/statistic.js
@@ -17,6 +17,22 @@ class StatisticService extends Service { @@ -17,6 +17,22 @@ class StatisticService extends Service {
17 `); 17 `);
18 return result && result.length > 0 ? result[0] : {}; 18 return result && result.length > 0 ? result[0] : {};
19 } 19 }
  20 + async projectAnalysis() {
  21 + const result = await this.app.mysql.query(`
  22 + select
  23 + project.number,
  24 + project.name,
  25 + s_contract.value as s_value,
  26 + s_contract.other_expenses as s_other_expenses,
  27 + s_contract.invoice as s_invoice,
  28 + p_contract.value as p_value,
  29 + p_contract.other_expenses as p_other_expenses,
  30 + p_contract.invoice as p_invoice
  31 + from project, contract as s_contract, contract as p_contract
  32 + where project.sale_contract_id = s_contract.id and project.purchase_contract_id = p_contract.id
  33 + `);
  34 + return result;
  35 + }
20 } 36 }
21 37
22 module.exports = StatisticService; 38 module.exports = StatisticService;