Untitled
unknown
plain_text
a year ago
2.0 kB
9
Indexable
app.put('/api/sdh/de-tai', app.permission.check('sdhDeTai:write'), async (req, res) => {
try {
const { data, id } = req.body;
const deTaiData = {
'tenDeTai': data.tenDeTai,
'mssv': data.mssv,
'ghiChu': data.ghiChu,
'noiDung': data.noiDung
};
const soQuyetDinhData = {
'ten': data.tenSqd,
'time': Date.now(),
'idDeTai': id,
'id': data.soQuyetDinh
};
for (let i = 0; i < data.cbhd.length; i++) {
const item = data.cbhd[i];
if (!item.shcc && item.hoTen && item.trinhDo) {
const [firstName, ...lastNameParts] = item.hoTen.split(' ');
const lastName = lastNameParts.join(' ');
const temp = await app.model.sdhCanBo.create({
'ho': firstName,
'ten': lastName,
'trinhDo': item.trinhDo
});
data.cbhd[i] = { ...res, shcc: temp.id, ...data.cbhd[i], belongTo: 'SDHCB' };
delete data.cbhd[i].id;
}
}
await app.model.sdhCbhd.delete({ mssv: data.mssv });
await Promise.all([
app.model.sdhSoQuyetDinh.update({ idDeTai: id, active: 0 }, { active: 1 }),
app.model.sdhDeTai.update({ id }, deTaiData),
app.model.sdhSoQuyetDinh.create(soQuyetDinhData),
...data.cbhd.flatMap(item => [
app.model.sdhCbhd.create({
'vaiTro': item.vaiTro,
'idCanBo': item.shcc.split(' - ').length > 1 ? item.shcc.split(' - ')[0] : item.shcc,
'belongTo': item.shcc.split(' - ').length > 1 ? item.shcc.split(' - ')[1] : item.shcc,
'mssv': data.mssv
}),
app.model.sdhSoQuyetDinhDetail.create({
'soQuyetDinh': soQuyetDinhData.id,
'tenDeTai': data.tenDeTai,
})
])
]);
res.send({ 'message': 'success' });
} catch (error) {
app.consoleError(req, error);
res.send({ error });
}
});Editor is loading...
Leave a Comment