Commit 304c5a50 by zhaoxiqing

gsb

parent 896e84ea
......@@ -4,71 +4,11 @@ const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl");
class EcontractApi {
constructor() {
this.userSve = system.getObject("service.userSve");
this.departmentSve = system.getObject("service.departmentSve");
this.esettleSve = system.getObject("service.esettleSve");
this.busistatSve = system.getObject("service.busistatSve");
this.etemplatebusiSve = system.getObject("service.etemplatebusiSve");
this.restClient = system.getObject("util.restClient");
this.redisClient = system.getObject("util.redisClient");
this.outTradeNoKey = 'bpo_outtradeno';
}
async syncUserDepartment(pobj) {
let map1 = await this.etemplatebusiSve.findOwnerBusiIdMap(1) || {};
let map2 = await this.etemplatebusiSve.findOwnerBusiIdMap(2) || {};
let keys1 = Object.keys(map1);
let keys2 = Object.keys(map2);
let keys3 = keys1.concat(keys2);
let userMap = await this.userSve.findMapByIds(keys3);
let departmentDic = await this.departmentSve.mapDict();
await this.updateStatDepartment(map1, userMap, departmentDic);
await this.updateStatDepartment(map2, userMap, departmentDic);
return system.getResult2(1);
}
async updateStatDepartment(map, userMap, departmentDic) {
for (let k in map) {
let busiIds = map[k] || [];
if (busiIds.length == 0) {
continue;
}
let user = userMap["id_" + k] || {};
let department = departmentDic[user.department_id || 0] || {};
await this.busistatSve.updateDepartmentName({
busiIds: busiIds,
user_name: user.nickName || "",
user_id: Number(k),
user_department_name: department.name || "",
});
}
}
async syncDepartmentStat(pobj) {
// 获取30天内数据
let t1 = new Date().getTime();
for (let i = 0; i < 30; i++) {
try {
let day = moment().subtract(30 - i, 'days').format('YYYY-MM-DD');
await this.syncDay({day: day});
} catch (e) {
console.log(e.stack);
}
}
let t2 = new Date().getTime();
console.log(t2 - t1, "------------------");
await this.syncUserDepartment();
return system.getResult2(1);
}
async syncDay(pobj) {
let day = pobj.day;
let dayNum = Number(day.replace(new RegExp("-", 'g'), ""));
let list = await this.esettleSve.busiStatByDay(day);
console.log(list);
await this.busistatSve.syncDayData(dayNum, list);
this.outTradeNoKey = 'bpo_outtradeno';
}
async settleCommission(obj, req) {
......
......@@ -19,10 +19,10 @@ class BusistatCtl extends CtlBase {
return system.getResult2(list);
}
async signList(queryobj, qobj, req) {
async departmentList(queryobj, qobj, req) {
var params = qobj.search;
try {
var page = await this.service.signPage(params);
var page = await this.service.departmentList(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
......@@ -30,12 +30,12 @@ class BusistatCtl extends CtlBase {
}
}
async signExport(pobj, req, res) {
async departmentExport(pobj, req, res) {
var params = JSON.parse(pobj.search);
try {
params.currentPage = 1;
params.pageSize = 60000;
var page = await this.service.signPage(params);
var page = await this.service.departmentList(params);
var csvobj = {
fileName: "发薪统计-" + moment().format("YYYYMMDD") + ".csv",
rows: page.rows,
......
......@@ -23,6 +23,40 @@ class BusistatDao extends Dao {
let sql = "UPDATE `c_busi_stat` SET user_name = :user_name, user_id=:user_id, user_department_name= :user_department_name WHERE busi_id IN (:busiIds)";
return await this.customExecAddOrPutSql(sql, {replacements: params});
}
async departmentList(params){
var currentPage = Number(params.currentPage || 0);
var pageSize = Number(params.pageSize || 10);
var countsql = "SELECT COUNT(DISTINCT busi_id) AS num FROM `c_busi_stat` " + "WHERE 1 = 1 "
var listsql = "SELECT busi_name,user_name,user_department_name,SUM(times) AS times,SUM(amt) AS amt,SUM(actual_amt) AS actual_amt,SUM(deduct_amt) AS deduct_amt,SUM(income_tax) AS income_tax,SUM(service_tax) AS service_tax,SUM(added_value_tax) AS added_value_taxFROM `c_busi_stat` WHERE 1 = 1 \n"
if (params.busi_name) {
countsql = countsql+" AND busi_name LIKE :busi_name";
listsql = listsql+ " AND busi_name LIKE :busi_name"
}
if (params.user_department_name) {
countsql = countsql+" AND user_department_name = :user_department_name"
listsql = listsql+ " AND user_department_name = :user_department_name"
}
if(params.begin) {
countsql = countsql + " AND created_at >= :begin ";
listsql = listsql+ " AND stat_day >= :begin"
}
if(params.end) {
countsql = countsql + " AND created_at <= :end ";
listsql = listsql+ " AND stat_day <= :end"
}
console.log(countsql)
console.log(listsql)
var count = await this.customQuery(countsql, {busi_name:params.busi_name,user_department_name:params.user_department_name,begin:params.begin,end:params.end});
if(count[0].num == 0 ){
}
}
}
module.exports = BusistatDao;
......@@ -17,34 +17,8 @@ class BusistatService extends ServiceBase {
return await this.dao.updateDepartmentName(params);
}
async signPage(params) {
var currentPage = Number(params.currentPage || 0);
var pageSize = Number(params.pageSize || 10);
var where = {};
if (params.busi_name) {
where.busi_name = {
[this.db.Op.like]: "%" + params.busi_name + "%"
};
}
if (params.user_department_name) {
where.user_department_name = params.user_department_name;
}
var orderby = [
["id", 'desc']
];
var page = await this.getPageList(currentPage, pageSize, where, orderby);
if (page && page.rows) {
for(var row of page.rows) {
this.handleDate(row, ["created_at" , "updated_at"]);
}
// await this.setCompany(page.rows);
// await this.setMain(page.rows);
}
return page;
async departmentList(params) {
return await this.dao.departmentList(params);
}
}
......
......@@ -7,7 +7,7 @@
<div style="float:left;width: 400px;">
<span style="color:2F2F2F;font-size: 14px; float:left;" >统计日期: </span>
<el-date-picker
v-model="search.applyBegin"
v-model="search.begin"
type="date"
placeholder="开始时间"
style="width:140px;height: 36px;float:left;"
......@@ -16,7 +16,7 @@
default-value="">
</el-date-picker>
<el-date-picker
v-model="search.applyEnd"
v-model="search.end"
type="date"
style="width:140px;height: 36px;margin-left: 16px;float:left;"
placeholder="结束时间"
......
......@@ -95,7 +95,7 @@
getList() {
var self = this;
var params = this.getParams();
this.$root.postReq("/web/busistatCtl/signList", {
this.$root.postReq("/web/busistatCtl/departmentList", {
search: params
}).then(function (d) {
if (d.status == 0) {
......@@ -106,7 +106,7 @@
});
},
exportList() {
window.open("/web/busistatCtl/signExport" + this.getExportParams());
window.open("/web/busistatCtl/departmentExport" + this.getExportParams());
},
getParams() {
var params = {};
......
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