明树Git Lab

Commit 4f029b6c authored by zfp1's avatar zfp1

1

parent 0c867a64
Pipeline #105767 passed with stage
in 3 seconds
...@@ -290,7 +290,25 @@ async function startLixiang(req, res, next) { ...@@ -290,7 +290,25 @@ async function startLixiang(req, res, next) {
}); });
//更新信息和状态 //更新信息和状态
let ret = await xiangmulixianggengxin(req.body, 3); //状态 3 -- 显示立项审批中 let ret = await xiangmulixianggengxin(req.body, 3); //状态 3 -- 立项审批中
// 给审批人员发消息
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '发起项目立项',
projectId: project.id,
});
let approvers = await userModule.getProjectApprover(req.user.id, 'xmlx_sp');
if (!(approvers && approvers.length > 0)) {
return res.sendError({ code: '60001', msg: '项目已保存,请联系管理员为本公司添加【项目立项】角色人员' });
}
await DB.Message.create({
projectId: project.id,
creator: req.user.id,
receivers: approvers.map(o => o.id),
type: 2,
title: `项目【${project.name}】已发起立项,请尽快处理!`,
content: `项目【${project.name}】已发起立项,请尽快处理!`
});
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
...@@ -325,6 +343,40 @@ async function queryLixiangResult(req, res, next) { ...@@ -325,6 +343,40 @@ async function queryLixiangResult(req, res, next) {
} }
} }
/**
* 立项审批
* @param {*} body
* @param {*} projectLzType
* @returns
*/
async function approvalLixiang(req, res, next) {
try {
let proInfo = await projectModule.getProjectInfoByLixiang(req.body);
if (req.body.approvalResult) {
//1. 更新项目状态--已立项
await DB.Project.update({ projectLzType: 5 }, { where: { id: req.body.id } });
//2. 存储快照 关联关系太多 全部建立快照表工程过大,暂时存储形式
proInfo.projectLzType = 5;
await DB.ProjectLixiang.create({ lixiang: proInfo, projectId: proInfo.id });
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '立项审批通过',
projectId: project.id,
});
} else {
//待立项
await DB.Project.update({ projectLzType: 1 }, { where: { id: req.body.id } });
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '立项审批未通过',
projectId: project.id,
});
}
return res.sendData(proInfo);
} catch (error) {
next(error);
}
}
...@@ -492,12 +544,27 @@ async function startJuece(req, res, next) { ...@@ -492,12 +544,27 @@ async function startJuece(req, res, next) {
if (!req.body.id) { if (!req.body.id) {
return res.sendError(errorMessage.resourceNotFound) return res.sendError(errorMessage.resourceNotFound)
} }
let ret = await xiangmujuecegengxin(req.body, 8); //决策审批中
// 给审批人员发消息
await DB.FlowRecord.create({ await DB.FlowRecord.create({
userId: req.user.id, userId: req.user.id,
actionName: '发起项目决策审批', actionName: '发起项目决策审批',
projectId: req.body.id, projectId: req.body.id,
}); });
let ret = await xiangmujuecegengxin(req.body, 8); //决策审批中 let approvers = await userModule.getProjectApprover(req.user.id, 'xmjc_sp');
if (!(approvers && approvers.length > 0)) {
return res.sendError({ code: '60002', msg: '项目已保存,请联系管理员为本公司添加【项目决策】角色人员' });
}
await DB.Message.create({
projectId: project.id,
creator: req.user.id,
receivers: approvers.map(o => o.id),
type: 2,
title: `项目【${project.name}】已发起项目决策,请尽快处理!`,
content: `项目【${project.name}】已发起项目决策,请尽快处理!`
});
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
next(error); next(error);
...@@ -528,6 +595,39 @@ async function queryJueceResult(req, res, next) { ...@@ -528,6 +595,39 @@ async function queryJueceResult(req, res, next) {
} }
/**
* 决策审批
*/
async function approvalJuece(req, res, next) {
try {
let proInfo = await projectModule.getProjectInfoByLixiang(req.body);
if (req.body.approvalResult) {
//1. 更新项目状态--已决策
await DB.Project.update({ projectLzType: 9}, { where: { id: req.body.id } });
//2. 存储快照 关联关系太多 全部建立快照表工程过大,暂时存储形式
proInfo.projectLzType = 9;
await DB.ProjectLixiang.create({ lixiang: proInfo, projectId: proInfo.id });
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '决策审批通过',
projectId: project.id,
});
} else {
//回到 已立项
await DB.Project.update({ projectLzType: 5 }, { where: { id: req.body.id } });
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '决策审批未通过',
projectId: project.id,
});
}
return res.sendData(proInfo);
} catch (error) {
next(error);
}
}
/** /**
* 更新提交 更新 * 更新提交 更新
* @param {*} req * @param {*} req
...@@ -820,7 +920,7 @@ async function getProjectInfo(req, res, next) { ...@@ -820,7 +920,7 @@ async function getProjectInfo(req, res, next) {
order: [['createdAt', 'DESC']], order: [['createdAt', 'DESC']],
where: { projectId: req.body.id }, where: { projectId: req.body.id },
}); });
if(!(ret && ret.id)) { if (!(ret && ret.id)) {
return res.sendError(errorMessage.resourceNotFound); return res.sendError(errorMessage.resourceNotFound);
} }
let obj = {}; let obj = {};
...@@ -1051,4 +1151,6 @@ module.exports = { ...@@ -1051,4 +1151,6 @@ module.exports = {
queryLixiangResult, queryLixiangResult,
queryJueceResult, queryJueceResult,
getProjectCwpj, getProjectCwpj,
approvalLixiang,
approvalJuece,
} }
\ No newline at end of file
...@@ -133,6 +133,15 @@ async function setRoleMenu(roleId, menuIds, rolemenus) { ...@@ -133,6 +133,15 @@ async function setRoleMenu(roleId, menuIds, rolemenus) {
async function getProjectApprover(userId, roleCode) { async function getProjectApprover(userId, roleCode) {
// 获取当前用户公司的 具体角色 的用户列表 // 获取当前用户公司的 具体角色 的用户列表
// let role = await DB.Role.findOne({where: {key: roleCode}, raw: true});
// if(!(role && role.id)) {
// return [];
// }
// let userIds = await DB.UserRole.findAll({where: {roleId: role.id}, raw: true});
// userIds = (userIds || []).map(o => {return o.userId});
// let users = await DB.User.findAll({ where: { id: {[Op.in]: userIds} } });
// return users;
let user = await DB.User.findOne({ where: { id: userId } }); let user = await DB.User.findOne({ where: { id: userId } });
return [user]; return [user];
......
...@@ -20,12 +20,14 @@ router.post('/saveProjectPreLixiang', projectController.saveProjectPreLixiang); ...@@ -20,12 +20,14 @@ router.post('/saveProjectPreLixiang', projectController.saveProjectPreLixiang);
router.post('/startLixiang', projectController.startLixiang);//发起立项审批----TODO:待完成与能建对接 router.post('/startLixiang', projectController.startLixiang);//发起立项审批----TODO:待完成与能建对接
router.post('/queryLixiangResult', projectController.queryLixiangResult); router.post('/queryLixiangResult', projectController.queryLixiangResult);
router.post('/approvalLixiang', projectController.approvalLixiang);
// -----------------------接收能建立项结果信息,更新立项批复信息等字段------------------------------------------ // -----------------------接收能建立项结果信息,更新立项批复信息等字段------------------------------------------
router.post('/saveJuece', projectController.saveJuece); //决策保存 router.post('/saveJuece', projectController.saveJuece); //决策保存
router.post('/startJuece', projectController.startJuece); //发起决策 router.post('/startJuece', projectController.startJuece); //发起决策
router.post('/queryJueceResult', projectController.queryJueceResult); //查询决策审批结果 router.post('/queryJueceResult', projectController.queryJueceResult); //查询决策审批结果
router.post('/approvalJuece', projectController.approvalJuece);
// 财务评价 // 财务评价
router.post('/getProjectCwpj', projectController.getProjectCwpj); router.post('/getProjectCwpj', projectController.getProjectCwpj);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment