Browse Source

假勤日统计时间筛选

master
巴林闲侠 3 years ago
parent
commit
6d23f09e08
  1. 33
      api/app/lib/controllers/member/index.js
  2. 11
      api/app/lib/utils/member.js

33
api/app/lib/controllers/member/index.js

@ -246,7 +246,7 @@ async function list (ctx) {
const { judgeHoliday, memberList } = ctx.app.fs.utils const { judgeHoliday, memberList } = ctx.app.fs.utils
const { const {
keywordTarget, keyword, limit, page, state, keywordTarget, keyword, limit, page, state,
hiredateStart, hiredateEnd
} = ctx.query } = ctx.query
const curDay = moment().format('YYYY-MM-DD') const curDay = moment().format('YYYY-MM-DD')
@ -265,7 +265,10 @@ async function list (ctx) {
dayoffTime = true dayoffTime = true
} }
} }
const userRes = await memberList({ keywordTarget, keyword, limit, page, state }) const userRes = await memberList({
keywordTarget, keyword, limit, page, state,
hiredateStart, hiredateEnd
})
let returnD = [] let returnD = []
userRes.rows.forEach(u => { userRes.rows.forEach(u => {
@ -396,9 +399,11 @@ async function overTimeStatistics (ctx) {
INNER JOIN overtime INNER JOIN overtime
ON overtime.id = overtime_day.overtime_id ON overtime.id = overtime_day.overtime_id
AND overtime.pep_user_id = ${pepUserId} AND overtime.pep_user_id = ${pepUserId}
${startDate && endDate ? ` ${startDate ? `
WHERE overtime_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' AND overtime_day.day >= '${moment(startDate).format('YYYY-MM-DD')}'
AND overtime_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' `: ''}
${endDate ? `
AND overtime_day.day <= '${moment(endDate).format('YYYY-MM-DD')}'
` : ''} ` : ''}
GROUP BY overtime_day.day, overtime.compensate GROUP BY overtime_day.day, overtime.compensate
`).toPromise() `).toPromise()
@ -427,10 +432,14 @@ async function vacateStatistics (ctx) {
const { startDate, endDate, pepUserId } = ctx.query const { startDate, endDate, pepUserId } = ctx.query
const timeOption = [] const timeOption = []
if (startDate && endDate) { if (startDate) {
timeOption.push( timeOption.push(
`wpStory.create_at <= '${moment(endDate).format('YYYY-MM-DD HH:mm:ss')}' `wpStory.create_at > '${moment(startDate).format('YYYY-MM-DD HH:mm:ss')}'`
AND 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(` const dataRes = await clickHouse.hr.query(`
@ -470,9 +479,11 @@ async function vacateStatistics (ctx) {
INNER JOIN vacate INNER JOIN vacate
ON vacate.id = vacate_day.vacate_id ON vacate.id = vacate_day.vacate_id
AND vacate.pep_user_id = ${pepUserId} AND vacate.pep_user_id = ${pepUserId}
${startDate && endDate ? ` ${startDate ? `
WHERE vacate_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' AND vacate_day.day >= '${moment(startDate).format('YYYY-MM-DD')}'
AND vacate_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' `: ''}
${endDate ? `
AND vacate_day.day <= '${moment(endDate).format('YYYY-MM-DD')}'
` : ''} ` : ''}
GROUP BY vacate_day.day GROUP BY vacate_day.day
`).toPromise() `).toPromise()

11
api/app/lib/utils/member.js

@ -4,7 +4,10 @@ const request = require('superagent');
module.exports = function (app, opts) { 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 { judgeHoliday } = app.fs.utils
const { clickHouse } = app.fs const { clickHouse } = app.fs
const { database: pepEmis } = clickHouse.pepEmis.opts.config 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 == 'dimission' ? `AND member.dimission_date IS NOT null` : ''}
${state == 'onJob' ? `AND member.dimission_date IS null` : ''} ${state == 'onJob' ? `AND member.dimission_date IS null` : ''}
${whereFromSelectOption.length ? `AND ${whereFromSelectOption.join('AND')}` : ''} ${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(` const userRes = await clickHouse.hr.query(`

Loading…
Cancel
Save