人力资源
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
5.3 KiB

'use strict';
const moment = require('moment')
async function getResourceClassify(ctx) {
try {
const { models } = ctx.fs.dc;
const { limit, offset } = ctx.query;
let rlst = [];
const findObj = {}
if (Number(limit) > 0 && Number(offset) >= 0) {
findObj.limit = Number(limit);
findObj.offset = Number(offset);
}
const trainingInformationLevel = await models.TrainingInformationLevel.findAll(findObj);
if (trainingInformationLevel.length) {
rlst = [{
label: "公司培训资料", value: "company", key: "company", operation: true,
}, { label: "部门培训资料", value: 'dept', key: 'dept', operation: false }];
for (let level of trainingInformationLevel) {
const { id, type, departmentname, traindate, origin } = level;
/**type:1级, departmentname:2级,traindate:3级 */
const arrIndex = rlst.findIndex(item => item.label == type)
if (arrIndex > -1) {//一级分类名称正确
const operation = "import" == origin ? true : false;
if (departmentname) {
if (traindate) {
//区分2级是否记录
if (rlst[arrIndex].children) {
const depIndex = rlst[arrIndex].children.findIndex(r => r.label == departmentname);
if (depIndex > -1) {
if (rlst[arrIndex].children[depIndex].children) {
rlst[arrIndex].children[depIndex].children.push({
label: moment(traindate).format('YYYY-MM'),
value: id,
key: id,
operation
})
} else {
rlst[arrIndex].children[depIndex].children = [{
label: moment(traindate).format('YYYY-MM'),
value: id,
key: id,
operation
}]
}
} else {
rlst[arrIndex].children.push({
label: departmentname,
children: [{
label: moment(traindate).format('YYYY-MM'),
value: id,
key: id,
operation
}]
});
}
} else {
rlst[arrIndex].children = [{
label: departmentname,
children: [{
label: moment(traindate).format('YYYY-MM'),
value: id,
key: id,
operation
}]
}]
}
} else {
if (rlst[arrIndex].children) {
const depIndex = rlst[arrIndex].children.findIndex(r => r.label == departmentname);
if (depIndex > -1) {
if (!rlst[arrIndex].children[depIndex].value) {
rlst[arrIndex].children[depIndex].value = id;
rlst[arrIndex].children[depIndex].key = id;
rlst[arrIndex].children[depIndex].operation = operation;
}
} else {
rlst[arrIndex].children.push({
label: departmentname,
value: id,
key: id,
operation
})
}
} else {
rlst[arrIndex].children = [{
label: departmentname,
value: id,
key: id,
operation
}]
}
}
}
}
}
}
ctx.status = 200;
ctx.body = rlst;
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: '查询培训资源储备库分类目录失败'
}
}
}
module.exports = {
getResourceClassify
}