Commit 3985eb2a by 王昆

gsb

parent 896e84ea
...@@ -2,6 +2,7 @@ var system = require("../../system") ...@@ -2,6 +2,7 @@ var system = require("../../system")
var moment = require("moment"); var moment = require("moment");
const md5 = require("MD5"); const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl"); const logCtl = system.getObject("web.oplogCtl");
const syncDays = Number(5);
class EcontractApi { class EcontractApi {
constructor() { constructor() {
this.userSve = system.getObject("service.userSve"); this.userSve = system.getObject("service.userSve");
...@@ -49,10 +50,37 @@ class EcontractApi { ...@@ -49,10 +50,37 @@ class EcontractApi {
async syncDepartmentStat(pobj) { async syncDepartmentStat(pobj) {
// 获取30天内数据 // 获取30天内数据
let t1 = new Date().getTime(); let t1 = new Date().getTime();
for (let i = 0; i < 30; i++) { for (let i = 0; i < syncDays; i++) {
try { try {
let day = moment().subtract(30 - i, 'days').format('YYYY-MM-DD');
let day = moment().subtract(syncDays - i, 'days').format('YYYY-MM-DD');
console.log(`---------------- begin ${day}`);
let t1 = new Date().getTime();
await this.syncDay({day: day}); await this.syncDay({day: day});
let t2 = new Date().getTime();
console.log(`---------------- end ${day}`, t2 - t1);
} catch (e) {
console.log(e.stack);
}
}
let t2 = new Date().getTime();
console.log(t2 - t1, "------------------");
await this.syncUserDepartment();
return system.getResult2(1);
}
async syncDepartmentStatLocal(pobj) {
// 获取30天内数据
let t1 = new Date().getTime();
for (let i = 0; i < syncDays; i++) {
try {
let day = moment().subtract(syncDays - i, 'days').format('YYYY-MM-DD');
console.log(`---------------- begin ${day}`);
let t1 = new Date().getTime();
await this.syncDay({day: day, localdb: true});
let t2 = new Date().getTime();
console.log(`---------------- end ${day}`, t2 - t1);
} catch (e) { } catch (e) {
console.log(e.stack); console.log(e.stack);
} }
...@@ -66,8 +94,13 @@ class EcontractApi { ...@@ -66,8 +94,13 @@ class EcontractApi {
async syncDay(pobj) { async syncDay(pobj) {
let day = pobj.day; let day = pobj.day;
let dayNum = Number(day.replace(new RegExp("-", 'g'), "")); let dayNum = Number(day.replace(new RegExp("-", 'g'), ""));
let list = await this.esettleSve.busiStatByDay(day); let list;
console.log(list); if(pobj.localdb) {
list = await this.esettleSve.busiStatByDayLocal(day);
} else {
list = await this.esettleSve.busiStatByDay(day);
}
console.log(JSON.stringify(list));
await this.busistatSve.syncDayData(dayNum, list); await this.busistatSve.syncDayData(dayNum, list);
} }
......
...@@ -948,21 +948,37 @@ class EsettleService extends ServiceBase { ...@@ -948,21 +948,37 @@ class EsettleService extends ServiceBase {
let end = day + " 23:59:59"; let end = day + " 23:59:59";
let sql = []; let sql = [];
// sql.push("SELECT ");
// sql.push(" busi_id,");
// sql.push(" COUNT(busi_id) AS times,");
// sql.push(" SUM(amt) AS amt,");
// sql.push(" SUM(actual_amt) AS actual_amt,");
// sql.push(" SUM(deduct_amt) AS deduct_amt,");
// sql.push(" SUM(income_tax) AS income_tax,");
// sql.push(" SUM(service_tax) AS service_tax,");
// sql.push(" SUM(added_value_tax) AS added_value_tax");
// sql.push("FROM");
// sql.push(" `tbl_order_item` ");
// sql.push("WHERE trade_status = '00' ");
// sql.push(" AND create_time >= :begin ");
// sql.push(" AND create_time <= :end ");
// sql.push("GROUP BY busi_id");
sql.push("SELECT "); sql.push("SELECT ");
sql.push(" busi_id,"); sql.push(" t1.busi_id,");
sql.push(" COUNT(busi_id) AS times,"); sql.push(" COUNT(t1.busi_id) AS times,");
sql.push(" SUM(amt) AS amt,"); sql.push(" SUM(t1.amt) AS amt,");
sql.push(" SUM(actual_amt) AS actual_amt,"); sql.push(" SUM(t1.actual_amt) AS actual_amt,");
sql.push(" SUM(deduct_amt) AS deduct_amt,"); sql.push(" SUM(t1.deduct_amt) AS deduct_amt,");
sql.push(" SUM(income_tax) AS income_tax,"); sql.push(" SUM(t1.income_tax) AS income_tax,");
sql.push(" SUM(service_tax) AS service_tax,"); sql.push(" SUM(t1.service_tax) AS service_tax,");
sql.push(" SUM(added_value_tax) AS added_value_tax"); sql.push(" SUM(t1.added_value_tax) AS added_value_tax");
sql.push("FROM"); sql.push("FROM");
sql.push(" `tbl_order_item` "); sql.push(" `tbl_order_item` t1");
sql.push("WHERE trade_status = '00' "); sql.push("LEFT JOIN ( SELECT MIN( create_time ) AS createTime, order_item_id FROM tbl_order_item_info WHERE create_time >= :begin AND create_time <= :end GROUP BY order_item_id ) t5 ON t1.id = t5.order_item_id ");
sql.push(" AND create_time >= :begin "); sql.push("WHERE t1.trade_status = '00' ");
sql.push(" AND create_time <= :end "); sql.push(" AND t5.createTime >= :begin ");
sql.push("GROUP BY busi_id"); sql.push(" AND t5.createTime <= :end ");
sql.push("GROUP BY t1.busi_id ");
let list = await this.settledb.query(sql.join(" "), { replacements: { begin: begin, end: end } }); let list = await this.settledb.query(sql.join(" "), { replacements: { begin: begin, end: end } });
if (!list || list.length == 0) { if (!list || list.length == 0) {
return []; return [];
...@@ -979,5 +995,46 @@ class EsettleService extends ServiceBase { ...@@ -979,5 +995,46 @@ class EsettleService extends ServiceBase {
} }
return list; return list;
} }
async busiStatByDayLocal(day) {
if (!day) {
return [];
}
let dayNum = Number(day.replace(new RegExp("-", 'g'), ""))
let begin = day + " 00:00:00";
let end = day + " 23:59:59";
let sql = [];
sql.push("SELECT ");
sql.push(" t1.busi_id,");
sql.push(" COUNT(t1.busi_id) AS times,");
sql.push(" SUM(t1.amt) AS amt,");
sql.push(" SUM(t1.actual_amt) AS actual_amt,");
sql.push(" SUM(t1.deduct_amt) AS deduct_amt,");
sql.push(" SUM(t1.income_tax) AS income_tax,");
sql.push(" SUM(t1.service_tax) AS service_tax,");
sql.push(" SUM(t1.added_value_tax) AS added_value_tax");
sql.push("FROM");
sql.push(" `tbl_order_item` t1");
sql.push("LEFT JOIN ( SELECT MIN( create_time ) AS createTime, order_item_id FROM tbl_order_item_info WHERE create_time >= :begin AND create_time <= :end GROUP BY order_item_id ) t5 ON t1.id = t5.order_item_id ");
sql.push("WHERE t1.trade_status = '00' ");
sql.push(" AND t5.createTime >= :begin ");
sql.push(" AND t5.createTime <= :end ");
sql.push("GROUP BY t1.busi_id ");
let list = await this.dao.customQuery(sql.join(" "), {begin: begin, end: end});
if (!list || list.length == 0) {
return [];
}
let ids = [];
for (let item of list) {
item.stat_day = dayNum;
ids.push(item.busi_id);
}
let busiMap = await this.mapBusiByIds(ids);
for (let item of list) {
item.busi_name = busiMap[item.busi_id];
}
return list;
}
} }
module.exports = EsettleService; module.exports = EsettleService;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment