From 6d23f09e0899a93dd21170f38fc236b7d36de6d0 Mon Sep 17 00:00:00 2001 From: "gao.zhiyuan" Date: Tue, 18 Oct 2022 15:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=87=E5=8B=A4=E6=97=A5=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/app/lib/controllers/member/index.js | 33 ++++++++++++++++--------- api/app/lib/utils/member.js | 11 ++++++++- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/api/app/lib/controllers/member/index.js b/api/app/lib/controllers/member/index.js index 09edb9a..9e654a5 100644 --- a/api/app/lib/controllers/member/index.js +++ b/api/app/lib/controllers/member/index.js @@ -246,7 +246,7 @@ async function list (ctx) { const { judgeHoliday, memberList } = ctx.app.fs.utils const { keywordTarget, keyword, limit, page, state, - + hiredateStart, hiredateEnd } = ctx.query const curDay = moment().format('YYYY-MM-DD') @@ -265,7 +265,10 @@ async function list (ctx) { dayoffTime = true } } - const userRes = await memberList({ keywordTarget, keyword, limit, page, state }) + const userRes = await memberList({ + keywordTarget, keyword, limit, page, state, + hiredateStart, hiredateEnd + }) let returnD = [] userRes.rows.forEach(u => { @@ -396,9 +399,11 @@ async function overTimeStatistics (ctx) { INNER JOIN overtime ON overtime.id = overtime_day.overtime_id AND overtime.pep_user_id = ${pepUserId} - ${startDate && endDate ? ` - WHERE overtime_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' - AND overtime_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' + ${startDate ? ` + AND overtime_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' + `: ''} + ${endDate ? ` + AND overtime_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' ` : ''} GROUP BY overtime_day.day, overtime.compensate `).toPromise() @@ -427,10 +432,14 @@ async function vacateStatistics (ctx) { const { startDate, endDate, pepUserId } = ctx.query const timeOption = [] - if (startDate && endDate) { + if (startDate) { timeOption.push( - `wpStory.create_at <= '${moment(endDate).format('YYYY-MM-DD HH:mm:ss')}' - AND wpStory.create_at > '${moment(startDate).format('YYYY-MM-DD HH:mm:ss')}'` + `wpStory.create_at > '${moment(startDate).format('YYYY-MM-DD HH:mm:ss')}'` + ) + } + if (endDate) { + timeOption.push( + `wpStory.create_at <= '${moment(endDate).format('YYYY-MM-DD HH:mm:ss')}'` ) } const dataRes = await clickHouse.hr.query(` @@ -470,9 +479,11 @@ async function vacateStatistics (ctx) { INNER JOIN vacate ON vacate.id = vacate_day.vacate_id AND vacate.pep_user_id = ${pepUserId} - ${startDate && endDate ? ` - WHERE vacate_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' - AND vacate_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' + ${startDate ? ` + AND vacate_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' + `: ''} + ${endDate ? ` + AND vacate_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' ` : ''} GROUP BY vacate_day.day `).toPromise() diff --git a/api/app/lib/utils/member.js b/api/app/lib/utils/member.js index a1d61b4..2629e8b 100644 --- a/api/app/lib/utils/member.js +++ b/api/app/lib/utils/member.js @@ -4,7 +4,10 @@ const request = require('superagent'); module.exports = function (app, opts) { - async function memberList ({ keywordTarget, keyword, limit, page, state }) { + async function memberList ({ + keywordTarget, keyword, limit, page, state, + hiredateStart, hiredateEnd + }) { const { judgeHoliday } = app.fs.utils const { clickHouse } = app.fs const { database: pepEmis } = clickHouse.pepEmis.opts.config @@ -114,6 +117,12 @@ module.exports = function (app, opts) { ${state == 'dimission' ? `AND member.dimission_date IS NOT null` : ''} ${state == 'onJob' ? `AND member.dimission_date IS null` : ''} ${whereFromSelectOption.length ? `AND ${whereFromSelectOption.join('AND')}` : ''} + ${hiredateStart ? ` + AND member.hiredate >= '${moment(hiredateStart).format('YYYY-MM-DD')}' + `: ''} + ${hiredateEnd ? ` + AND member.hiredate <= '${moment(hiredateEnd).format('YYYY-MM-DD')}' + ` : ''} ` const userRes = await clickHouse.hr.query(`