4 changed files with 215 additions and 257 deletions
@ -0,0 +1,68 @@ |
|||
'use strict'; |
|||
const moment = require('moment') |
|||
const request = require('superagent'); |
|||
|
|||
module.exports = function (app, opts) { |
|||
|
|||
async function overtimeStatisticListDayType ({ |
|||
startDate, endDate, pepUserIds = [] |
|||
}) { |
|||
const { clickHouse } = app.fs |
|||
|
|||
const sumRes = await clickHouse.hr.query(` |
|||
SELECT |
|||
overtime.pep_user_id AS pepUserId, |
|||
holiday.type AS dayType, |
|||
overtime.compensate AS compensate, |
|||
sum(overtime_day.duration) AS duration |
|||
FROM overtime_day |
|||
INNER JOIN overtime |
|||
ON overtime.id = overtime_day.overtime_id |
|||
AND overtime.pep_user_id IN (${pepUserIds.join(',')}) |
|||
LEFT JOIN holiday |
|||
ON holiday.day = overtime_day.day |
|||
WHERE overtime.pep_user_id IN (${pepUserIds.join(',')}) |
|||
${startDate ? ` |
|||
AND overtime_day.day >= '${moment(startDate).format('YYYY-MM-DD')}' |
|||
`: ''}
|
|||
${endDate ? ` |
|||
AND overtime_day.day <= '${moment(endDate).format('YYYY-MM-DD')}' |
|||
` : ''}
|
|||
GROUP BY holiday.type, overtime.compensate, overtime.pep_user_id |
|||
`).toPromise()
|
|||
|
|||
return sumRes |
|||
} |
|||
|
|||
async function vacateStatisticListDayType ({ |
|||
startDate, endDate, pepUserIds = [] |
|||
}) { |
|||
const { clickHouse } = app.fs |
|||
|
|||
const sumRes = await clickHouse.hr.query(` |
|||
SELECT |
|||
vacate.pep_user_id AS pepUserId, |
|||
vacate.type AS type, |
|||
sum(vacate_day.duration) AS duration |
|||
FROM vacate_day |
|||
INNER JOIN vacate |
|||
ON vacate.id = vacate_day.vacate_id |
|||
AND vacate.pep_user_id IN (${pepUserIds.join(',')}) |
|||
WHERE vacate.pep_user_id IN (${pepUserIds.join(',')}) |
|||
${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.type, vacate.pep_user_id |
|||
`).toPromise()
|
|||
|
|||
return sumRes |
|||
} |
|||
|
|||
return { |
|||
overtimeStatisticListDayType, |
|||
vacateStatisticListDayType, |
|||
} |
|||
} |
Loading…
Reference in new issue