parent
28a93b02f5
commit
28b125ca58
1 changed files with 87 additions and 0 deletions
@ -0,0 +1,87 @@ |
||||
initFunctionData = async (data) => { |
||||
const { |
||||
processId, |
||||
payload, |
||||
previousData, |
||||
ref1Id, |
||||
ref2Id, |
||||
ref3Id, |
||||
ref4Id, |
||||
ref5Id, |
||||
description, |
||||
} = data; |
||||
let { unitId } = data; |
||||
// if (unitId == 14166153)
|
||||
// return { statusCode: 403, message: "درحال توسعه", error: data };
|
||||
const process = |
||||
data.process || |
||||
(await bpmsDB.bpms_process.findOne({ |
||||
where: { id: processId, type: { [Op.in]: [0, 1] } }, |
||||
raw: true, |
||||
})); |
||||
if (process.networkId) { |
||||
const processNetwork = await db.network.findByPk(process.networkId, { |
||||
raw: true, |
||||
attributes: ["level"], |
||||
}); |
||||
const payloadNetwork = await db.network.findOne({ |
||||
where: { |
||||
[`level${processNetwork.level}Id`]: process.networkId, |
||||
id: payload.networkId, |
||||
}, |
||||
raw: true, |
||||
}); |
||||
} |
||||
let processChecklist = await bpmsDB.bpms_processChecklist.findAll({ |
||||
where: { processId: process.id }, |
||||
attributes: ["checklistId"], |
||||
order: [["ord", "asc"]], |
||||
}); |
||||
|
||||
const checklistIds = |
||||
data?.checklists?.length |
||||
? data.checklists.map((item) => +item.id).filter(Boolean).join(",") |
||||
: processChecklist |
||||
.map((e) => +e.checklistId) |
||||
.filter((id) => !isNaN(id) && id !== 0) |
||||
.join(","); |
||||
|
||||
const previousTask = data.previousTask;
|
||||
const network = await db.network.findByPk(payload.networkId, { |
||||
raw: true, |
||||
}); |
||||
let newData = { |
||||
workflowId: process.workflowId, |
||||
processId, |
||||
userId: payload.userId, |
||||
..._.pick(network, [ |
||||
"level1Id", |
||||
"level2Id", |
||||
"level3Id", |
||||
"level4Id", |
||||
"level5Id", |
||||
"level6Id", |
||||
]), |
||||
}; |
||||
|
||||
if (unitId) { |
||||
const unit = |
||||
data.unit || |
||||
(await db.unit.findOne({ |
||||
where: { id: unitId, status: 1 }, |
||||
})); |
||||
newData = { ...newData, data: [{ questionId: 100009, answer: unitId }] }; |
||||
} else { |
||||
const unitQuestion = data?.data?.find( |
||||
(r) => r.questionId == 100009 && r.answer |
||||
); |
||||
if (unitQuestion) { |
||||
unitId = unitQuestion.answer; |
||||
const unit = |
||||
data.unit || |
||||
(await db.unit.findOne({ |
||||
where: { id: unitId, status: 1 }, |
||||
})); |
||||
} |
||||
return { data: newData, transaction: data.transaction } |
||||
}} |
Loading…
Reference in new issue