Commit 77635807 by 王昆

Merge branch 'bpo-stat' of gitlab.gongsibao.com:jiangyong/zhichan into bpo-stat

parents 3f0c9205 5fee1dcf
...@@ -66,6 +66,42 @@ class MerchantCtl extends CtlBase { ...@@ -66,6 +66,42 @@ class MerchantCtl extends CtlBase {
} }
//统计报表 个人
async commercialCountToList(qobj){
var params = qobj || {};
try {
var page = await this.service.commercialCountTo(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
//统计报表 个人 图表
async commercialCountToChares(qobj){
var params = qobj || {};
try {
var page = await this.service.commercialCountToChares(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async tenantSel(qobj){
var params = qobj || {};
try {
var page = await this.service.tenantSel(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
} }
......
...@@ -24,6 +24,25 @@ class electroniccontractDao extends Dao { ...@@ -24,6 +24,25 @@ class electroniccontractDao extends Dao {
} }
return result; return result;
} }
async sCount(inno) {
var result = {};
if(!inno || inno.length == 0) {
return result;
}
var sql = "SELECT id_no, COUNT(1) AS num FROM `electronic_contract_info` WHERE id_no IN (:inno) GROUP BY id_no";
let list = await this.customQuery(sql, {inno: inno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id_no] = item.num || 0;
}
return result;
}
} }
module.exports = electroniccontractDao; module.exports = electroniccontractDao;
\ No newline at end of file
...@@ -24,6 +24,25 @@ class LoadDao extends Dao { ...@@ -24,6 +24,25 @@ class LoadDao extends Dao {
} }
return result; return result;
} }
async sCount(inno) {
var result = {};
if(!inno || inno.length == 0) {
return result;
}
var sql = "SELECT id_no, COUNT(1) AS num FROM `load_info` WHERE id_no IN (:inno) GROUP BY id_no";
let list = await this.customQuery(sql, {inno: inno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id_no] = item.num || 0;
}
return result;
}
} }
module.exports = LoadDao; module.exports = LoadDao;
\ No newline at end of file
...@@ -41,6 +41,44 @@ class TaxinfoDao extends Dao { ...@@ -41,6 +41,44 @@ class TaxinfoDao extends Dao {
} }
return result; return result;
} }
async sCount(idno) {
var result = {};
if(!idno || idno.length == 0) {
return result;
}
var sql = "SELECT id_no, COUNT(1) AS num FROM `tax_info` WHERE id_no IN (:idno) GROUP BY name";
let list = await this.customQuery(sql, {idno: idno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id_no] = item.num || 0;
}
return result;
}
async sCountS(inno) {
var result = {};
if(!inno || inno.length == 0) {
return result;
}
var sql = "SELECT id_no, SUM(actual_amount) AS num FROM `tax_info` WHERE company_name IN (:inno) GROUP BY name";
let list = await this.customQuery(sql, {inno: inno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id_no] = item.num || 0;
}
return result;
}
} }
module.exports = TaxinfoDao; module.exports = TaxinfoDao;
\ No newline at end of file
...@@ -43,6 +43,43 @@ class TransactioninDao extends Dao { ...@@ -43,6 +43,43 @@ class TransactioninDao extends Dao {
} }
return result; return result;
} }
async sCount(idno) {
var result = {};
if(!idno || idno.length == 0) {
return result;
}
var sql = "SELECT id_no, COUNT(id_no) num FROM `transaction_info` WHERE id_no IN (:idno) GROUP BY id_no";
let list = await this.customQuery(sql, {idno: idno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.num] = item.amount || 0;
}
return result;
}
async sCountS(idno) {
var result = {};
if(!idno || idno.length == 0) {
return result;
}
var sql = "SELECT id_no, SUM(actual_amount) amount FROM `transaction_info` WHERE id_no IN (:idno) GROUP BY id_no";
let list = await this.customQuery(sql, {idno: idno});
if(list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.amount] = item.amount || 0;
}
return result;
}
} }
module.exports = TransactioninDao; module.exports = TransactioninDao;
\ No newline at end of file
...@@ -20,6 +20,9 @@ class ElectronicContractService extends ServiceBase { ...@@ -20,6 +20,9 @@ class ElectronicContractService extends ServiceBase {
if(params.sign_body){ if(params.sign_body){
where.sign_body = params.sign_body; where.sign_body = params.sign_body;
} }
if(params.id_no){
where.id_no = params.id_no
}
this.addWhereTime(where, 'completed_date', params.signBegin, params.signEnd, true); this.addWhereTime(where, 'completed_date', params.signBegin, params.signEnd, true);
var orderby = [ var orderby = [
["id", 'desc'] ["id", 'desc']
...@@ -34,6 +37,29 @@ class ElectronicContractService extends ServiceBase { ...@@ -34,6 +37,29 @@ class ElectronicContractService extends ServiceBase {
return page; return page;
} }
async signPageGroup(params) {
var currentPage = Number(params.currentPage || 0);
var pageSize = Number(params.pageSize || 10);
var where = {};
if (params.company_name) {
where.company_name = {
[this.db.Op.like]: "%" + params.company_name + "%"
};
}
if(params.sign_body){
where.sign_body = params.sign_body;
}
this.addWhereTime(where, 'completed_date', params.signBegin, params.signEnd, true);
var orderby = [
["id", 'desc']
];
var attributes = [`id`, `company_name`, `name`, `id_no`, `phone_no`, `bank_no`, `completed_date`, `file_url`, `sign_body`];
var page = await this.getPageList(currentPage, pageSize, where, orderby, attributes);
return page;
}
} }
module.exports = ElectronicContractService; module.exports = ElectronicContractService;
\ No newline at end of file
...@@ -20,7 +20,10 @@ class LoadService extends ServiceBase { ...@@ -20,7 +20,10 @@ class LoadService extends ServiceBase {
if(params.sign_body){ if(params.sign_body){
where.sign_body = params.sign_body; where.sign_body = params.sign_body;
} }
this.addWhereTime(where, 'begin_time', params.signBegin, params.signEnd, true); if(params.id_no){
where.id_no = params.id_no
}
this.addWhereTime(where, 'affirm_time', params.signBegin, params.signEnd, true);
var orderby = [ var orderby = [
["id", 'desc'] ["id", 'desc']
]; ];
......
...@@ -112,20 +112,27 @@ class MerchantService extends ServiceBase { ...@@ -112,20 +112,27 @@ class MerchantService extends ServiceBase {
var result = { var result = {
addMer: addMer || 0,//商户新增 addMer: addMer || 0,//商户新增
upMer: upMer || 0, upMer: upMer || 0,
addEle: addEle || 0,//电子签新增 addEle: addEle || 0,//电子签新增
upEle: upEle || 0, upEle: upEle || 0,
addLoad: addLoad || 0,//工作量新增 addLoad: addLoad || 0,//工作量新增
upLoad: upLoad || 0, upLoad: upLoad || 0,
addrec: addrec || 0,//招聘需求 addrec: addrec || 0,//招聘需求
upRec: upRec || 0, upRec: upRec || 0,
addTac: addTac || 0,//完税人次 addTac: addTac || 0,//完税人次
addTacSum: addTacSum || 0, upTac: upTac || 0,
upTacSum: upTacSum || 0,//完税金额
addTra: addTra || 0, addTacSum: addTacSum || 0,//完税金额
upTra: upTra || 0, //交易比数 upTacSum: upTacSum || 0,
addTraSum: addTraSum || 0,
upTraSum: upTraSum || 0,//交易金额 addTra: addTra || 0, //交易比数
upTac: upTac || 0 upTra: upTra || 0,
addTraSum: addTraSum || 0,//交易金额
upTraSum: upTraSum || 0
}; };
return result; return result;
...@@ -134,7 +141,7 @@ class MerchantService extends ServiceBase { ...@@ -134,7 +141,7 @@ class MerchantService extends ServiceBase {
async dataChart(params) { async dataChart(params) {
var result = []; var result = [];
var sql = "SELECT DATE_FORMAT(invalid_time,'%Y-%m-%d') days,COUNT(id) COUNT FROM merchant_info WHERE 1=1"; var sql = "SELECT DATE_FORMAT(completed_date,'%Y-%m-%d') days,COUNT(id) COUNT FROM electronic_contract_info WHERE 1=1";
var sqls = "SELECT DATE_FORMAT(transaction_time,'%Y-%m-%d') days,COUNT(id) COUNT FROM transaction_info WHERE 1=1"; var sqls = "SELECT DATE_FORMAT(transaction_time,'%Y-%m-%d') days,COUNT(id) COUNT FROM transaction_info WHERE 1=1";
if (params.company_name) { if (params.company_name) {
sql = sql + " AND company_name = '" + params.company_name + "'"; sql = sql + " AND company_name = '" + params.company_name + "'";
...@@ -145,7 +152,7 @@ class MerchantService extends ServiceBase { ...@@ -145,7 +152,7 @@ class MerchantService extends ServiceBase {
sqls = sqls + " AND sign_body = '" + params.sign_body + "'"; sqls = sqls + " AND sign_body = '" + params.sign_body + "'";
} }
if (params.signBegin || params.signEnd) { if (params.signBegin || params.signEnd) {
sql = sql + " AND invalid_time >= '" + params.signBegin + " 00:00:00' AND invalid_time <= '" + params.signEnd + " 23:59:59'"; sql = sql + " AND completed_date >= '" + params.signBegin + " 00:00:00' AND completed_date <= '" + params.signEnd + " 23:59:59'";
sqls = sqls + " AND transaction_time >= '" + params.signBegin + " 00:00:00' AND transaction_time <= '" + params.signEnd + " 23:59:59'"; sqls = sqls + " AND transaction_time >= '" + params.signBegin + " 00:00:00' AND transaction_time <= '" + params.signEnd + " 23:59:59'";
} }
sql = sql + " GROUP BY days ORDER BY days ASC"; sql = sql + " GROUP BY days ORDER BY days ASC";
...@@ -173,7 +180,7 @@ class MerchantService extends ServiceBase { ...@@ -173,7 +180,7 @@ class MerchantService extends ServiceBase {
return result || []; return result || [];
} }
async commercialCount(params){ async commercialCount(params) {
let page = await this.signPage(params); let page = await this.signPage(params);
...@@ -200,9 +207,9 @@ class MerchantService extends ServiceBase { ...@@ -200,9 +207,9 @@ class MerchantService extends ServiceBase {
let traSUm = await this.transactioninDao.statCounts(companyNames); let traSUm = await this.transactioninDao.statCounts(companyNames);
// 完税人次 // 完税人次
let taxMap = await this.taxinfoDao.statCount(companyNames); let taxMap = await this.taxinfoDao.statCount(companyNames);
// 完税金额 // 完税金额
let taxSUm = await this.taxinfoDao.statCounts(companyNames); let taxSUm = await this.taxinfoDao.statCounts(companyNames);
for (var row of rows) { for (var row of rows) {
row.dzCount = electronMap[row.company_name] || 0; row.dzCount = electronMap[row.company_name] || 0;
...@@ -213,37 +220,41 @@ class MerchantService extends ServiceBase { ...@@ -213,37 +220,41 @@ class MerchantService extends ServiceBase {
row.wsCOunt = taxMap[row.company_name] || 0; row.wsCOunt = taxMap[row.company_name] || 0;
row.wsSum = taxSUm[row.company_name] || 0; row.wsSum = taxSUm[row.company_name] || 0;
} }
page.rows= rows; page.rows = rows;
return page; return page;
} }
async commercialList(params){ async commercialList(params) {
var db = ""; var db = "";
var firlt = ""; var firlt = "";
var page = {}; var page = {};
if(params.type == 1){ //招工 if (params.type == 1) { //招工
db = "recruit_info"; db = "recruit_info";
firlt = "publish_date" firlt = "publish_date"
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.recruitSve.signPage(params); page = await this.recruitSve.signPage(params);
}else if(params.type == 2){//电子签约 } else if (params.type == 2) {//电子签约
db = "electronic_contract_info"; db = "electronic_contract_info";
firlt = "completed_date"; firlt = "completed_date";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.electroniccontractSve.signPage(params); page = await this.electroniccontractSve.signPage(params);
}else if(params.type == 3){//工作量 } else if (params.type == 3) {//工作量
db = "load_info"; db = "load_info";
firlt = "affirm_time"; firlt = "affirm_time";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.loadSve.signPage(params); page = await this.loadSve.signPage(params);
}else if(params.type == 4){//交易 } else if (params.type == 4) {//交易
db = "transaction_info"; db = "transaction_info";
firlt = "transaction_time"; firlt = "transaction_time";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.transactioninSve.signPage(params); page = await this.transactioninSve.signPage(params);
}else {//完税 } else {//完税
db = "tax_info"; db = "tax_info";
firlt = "tax_time"; firlt = "tax_time";
page = await this.taxinfoSve.signPage(params); page = await this.taxinfoSve.signPage(params);
} }
var sql = "SELECT DATE_FORMAT("+firlt+",'%Y-%m-%d') days,COUNT(id) COUNT FROM "+db+" WHERE 1=1"; var sql = "SELECT DATE_FORMAT(" + firlt + ",'%Y-%m-%d') days,COUNT(id) COUNT FROM " + db + " WHERE 1=1";
if (params.company_name) { if (params.company_name) {
sql = sql + " AND company_name = '" + params.company_name + "'"; sql = sql + " AND company_name = '" + params.company_name + "'";
...@@ -251,9 +262,10 @@ class MerchantService extends ServiceBase { ...@@ -251,9 +262,10 @@ class MerchantService extends ServiceBase {
if (params.sign_body) { if (params.sign_body) {
sql = sql + " AND sign_body = '" + params.sign_body + "'"; sql = sql + " AND sign_body = '" + params.sign_body + "'";
} }
var charts = [[],[]]; sql = sql + " GROUP BY days ORDER BY days ASC";
var charts = [[], []];
var chart = await this.customQuery(sql); var chart = await this.customQuery(sql);
for(let i=0;i< chart.length;i++){ for (let i = 0; i < chart.length; i++) {
charts[0].push(chart[i].days); charts[0].push(chart[i].days);
charts[1].push(chart[i].COUNT) charts[1].push(chart[i].COUNT)
} }
...@@ -263,6 +275,111 @@ class MerchantService extends ServiceBase { ...@@ -263,6 +275,111 @@ class MerchantService extends ServiceBase {
} }
async commercialCountTo(params) {
let page = await this.electroniccontractSve.signPageGroup(params);
let rows = page.rows;
if (!page || !page.rows || page.rows.length == 0) {
return page;
}
let companyNames = [];
for (var row of rows) {
companyNames.push(row.id_no);
}
// 电子签约数量
let electronMap = await this.electroniccontractDao.sCount(companyNames);
// 工作量确认单
let loadMap = await this.loadDao.sCount(companyNames);
// 交易笔数
let traMap = await this.transactioninDao.sCount(companyNames);
//交易金额
let traSUm = await this.transactioninDao.sCountS(companyNames);
// 完税人次
let taxMap = await this.taxinfoDao.sCount(companyNames);
// 完税金额
let taxSUm = await this.taxinfoDao.statCounts(companyNames);
for (var row of rows) {
row.dzCount = electronMap[row.company_name] || 0;
row.gzCount = loadMap[row.company_name] || 0;
row.jyCOunt = traMap[row.company_name] || 0;
row.jySum = traSUm[row.company_name] || 0;
row.wsCOunt = taxMap[row.company_name] || 0;
row.wsSum = taxSUm[row.company_name] || 0;
}
page.rows = rows;
return page;
}
async commercialCountToChares(params) {
var db = "";
var firlt = "";
var page = {};
if (params.type == 1) {//电子签约
db = "electronic_contract_info";
firlt = "completed_date";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.electroniccontractSve.signPage(params);
} else if (params.type == 2) {//工作量
db = "load_info";
firlt = "affirm_time";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.loadSve.signPage(params);
} else if (params.type == 3) {//交易
db = "transaction_info";
firlt = "transaction_time";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.transactioninSve.signPage(params);
} else {//完税
db = "tax_info";
firlt = "tax_time";
this.doTimeCondition(params, ["signBegin", "signEnd"]);
page = await this.taxinfoSve.signPage(params);
}
var sql = "SELECT DATE_FORMAT(" + firlt + ",'%Y-%m-%d') days,COUNT(id) COUNT FROM " + db + " WHERE 1=1";
if (params.company_name) {
sql = sql + " AND company_name = '" + params.company_name + "'";
}
if (params.sign_body) {
sql = sql + " AND sign_body = '" + params.sign_body + "'";
}
if(params.idno){
sql = sql + " AND id_no = '" + params.idno + "'";
}
sql = sql + " GROUP BY days ORDER BY days ASC";
var charts = [[], []];
var chart = await this.customQuery(sql);
for (let i = 0; i < chart.length; i++) {
charts[0].push(chart[i].days);
charts[1].push(chart[i].COUNT)
}
page.charts = charts;
return page;
}
async tenantSel(params){
var sql = " SELECT company_name FROM merchant_info WHERE 1=1 ";
if (params.sign_body) {
sql = sql + "AND sign_body = '"+params.sign_body+"'";
}
var page = await this.customQuery(sql);
var result = [];
for (let i=0;i<page.length;i++){
var data = {};
data.value = page[i].company_name;
data.label = page[i].company_name;
result.push(data)
}
return result;
}
} }
......
...@@ -20,6 +20,9 @@ class TaxinfoService extends ServiceBase { ...@@ -20,6 +20,9 @@ class TaxinfoService extends ServiceBase {
if(params.sign_body){ if(params.sign_body){
where.sign_body = params.sign_body; where.sign_body = params.sign_body;
} }
if(params.id_no){
where.id_no = params.id_no
}
this.addWhereTime(where, 'tax_time', params.signBegin, params.signEnd, true); this.addWhereTime(where, 'tax_time', params.signBegin, params.signEnd, true);
var orderby = [ var orderby = [
["id", 'desc'] ["id", 'desc']
......
...@@ -20,6 +20,9 @@ class TransactioninService extends ServiceBase { ...@@ -20,6 +20,9 @@ class TransactioninService extends ServiceBase {
if(params.sign_body){ if(params.sign_body){
where.sign_body = params.sign_body; where.sign_body = params.sign_body;
} }
if(params.id_no){
where.id_no = params.id_no
}
this.addWhereTime(where, 'transaction_time', params.signBegin, params.signEnd, true); this.addWhereTime(where, 'transaction_time', params.signBegin, params.signEnd, true);
var orderby = [ var orderby = [
["id", 'desc'] ["id", 'desc']
......
...@@ -243,6 +243,25 @@ class ServiceBase { ...@@ -243,6 +243,25 @@ class ServiceBase {
} }
} }
doTimeCondition(params, fields) {
if (!params || !fields || fields.length == 0) {
return;
}
for (var f of fields) {
if (params[f]) {
var suffix = this.endWith(f, 'Begin') ? " 00:00:00" : " 23:59:59";
params[f] = params[f] + suffix;
}
}
}
endWith(source, str){
if(!str || !source || source.length == 0 || str.length > source.length) {
return false;
}
return source.substring(source.length - str.length) == str;
}
addWhereTime(where, field, begin, end) { addWhereTime(where, field, begin, end) {
if (!begin && !end) { if (!begin && !end) {
return; return;
......
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