明树Git Lab

Commit 54333293 authored by zfp1's avatar zfp1

update

parent 88489a75
...@@ -62,19 +62,22 @@ async function createProject(req, res, next) { ...@@ -62,19 +62,22 @@ async function createProject(req, res, next) {
projectXmtzzes :关联项目投资额表 projectXmtzzes :关联项目投资额表
projectBjtjs :关联项目核心边界条件表 projectBjtjs :关联项目核心边界条件表
projectSpyjs :关联审批意见表 projectSpyjs :关联审批意见表
projectFxgl: 关联 风险管理 projectFxgls: 关联 风险管理
projectTzzt: 关联 投资主体审核 projectTzzts: 关联 投资主体审核
ProjectJczt: 关联 决策主体审核 ProjectJczts: 关联 决策主体审核
projectZqrz: 关联 债权融资 // projectZqrzs: 关联 债权融资
projectCwpjzb: 关联 财务评价指标 projectCwpjzbs: 关联 财务评价指标
ProjectLcbjd: 关联 里程碑节点 ProjectLcbjds: 关联 里程碑节点
lxzl :关联projectFiles-File文件表 lxzl :关联projectFiles-File文件表
lxpfwj :关联projectFiles-File文件表 lxpfwj :关联projectFiles-File文件表
xgshcl :关联projectFiles-File文件表 xgshcl :关联projectFiles-File文件表
*/ */
// 1. 先创建项目 // 1. 先创建项目
let projectInfo = _.omit(body, ['projectJsgms', 'projectGdxxs', 'projectXmtzzes', 'projectBjtjs', 'projectSpyjs', 'lxzl', 'lxpfwj', 'xgshcl']); let projectInfo = _.omit(body, ['projectJsgms', 'projectGdxxs', 'projectXmtzzes', 'projectBjtjs',
'projectSpyjs', 'projectFxgls', 'projectTzzts', 'projectJczts', 'projectZqrzs', 'projectCwpjzbs', 'projectLcbjds',
'lxzl', 'lxpfwj', 'xgshcl']);
projectInfo.projectLiuZhuanType = 1; // 草稿状态
let project = await DB.Project.create(projectInfo); let project = await DB.Project.create(projectInfo);
// 处理 projectJsgms // 处理 projectJsgms
let projectJsgms = body.projectJsgms || []; let projectJsgms = body.projectJsgms || [];
...@@ -104,10 +107,10 @@ async function createProject(req, res, next) { ...@@ -104,10 +107,10 @@ async function createProject(req, res, next) {
let projectJczts = body.projectJczts || []; let projectJczts = body.projectJczts || [];
projectJczts = projectJczts.map(o => { o.projectId = project.id; return o }); projectJczts = projectJczts.map(o => { o.projectId = project.id; return o });
await DB.ProjectJczt.bulkCreate(projectJczts); await DB.ProjectJczt.bulkCreate(projectJczts);
// 处理 projectZqrz // // 处理 projectZqrz
let projectZqrzs = body.projectZqrzs || []; // let projectZqrzs = body.projectZqrzs || [];
projectZqrzs = projectZqrzs.map(o => { o.projectId = project.id; return o }); // projectZqrzs = projectZqrzs.map(o => { o.projectId = project.id; return o });
await DB.ProjectZqrz.bulkCreate(projectZqrzs); // await DB.ProjectZqrz.bulkCreate(projectZqrzs);
// 处理 projectSpyjs // 处理 projectSpyjs
let projectSpyjs = body.projectSpyjs || []; let projectSpyjs = body.projectSpyjs || [];
projectSpyjs = projectSpyjs.map(o => { o.projectId = project.id; return o }); projectSpyjs = projectSpyjs.map(o => { o.projectId = project.id; return o });
...@@ -145,15 +148,15 @@ async function createProject(req, res, next) { ...@@ -145,15 +148,15 @@ async function createProject(req, res, next) {
*/ */
//B. 找到本公司审批人员发送消息-- 如果找不到人 则提示项目已保存,联系管理员添加【项目公司项目审批人】角色 //B. 找到本公司审批人员发送消息-- 如果找不到人 则提示项目已保存,联系管理员添加【项目公司项目审批人】角色
//A. 创建发起记录 //A. 创建发起记录
if(buttonType === 'submit') { if (buttonType === 'submit') {
await DB.FlowRecord.create({ await DB.FlowRecord.create({
userId: req.user.id, userId: req.user.id,
actionName: '发起项目复核', actionName: '发起项目初审',
projectId: project.id, projectId: project.id,
}); });
let approvers = await userModule.getProjectApprover(req.user.id, 'xmgs_xmspr'); let approvers = await userModule.getProjectApprover(req.user.id, 'xmgs_xmspr');
if (!( approvers && approvers.length > 0 )) { if (!(approvers && approvers.length > 0)) {
return res.sendError('项目已保存,请联系管理员为本公司添加【项目公司项目审批人】角色人员'); return res.sendError('项目已保存,请联系管理员为本公司添加【项目初审】角色人员');
} }
await DB.Message.createProjectMessage({ await DB.Message.createProjectMessage({
projectId: project.id, projectId: project.id,
...@@ -162,6 +165,7 @@ async function createProject(req, res, next) { ...@@ -162,6 +165,7 @@ async function createProject(req, res, next) {
type: 2, type: 2,
content: `项目【${project.name}】已发起,请尽快处理!` content: `项目【${project.name}】已发起,请尽快处理!`
}); });
await DB.Project.update({ projectLiuZhuanType: 3 }, { where: { id: project.id } });
} }
return res.sendData(project); return res.sendData(project);
} catch (error) { } catch (error) {
...@@ -183,84 +187,74 @@ async function updateProject(req, res, next) { ...@@ -183,84 +187,74 @@ async function updateProject(req, res, next) {
if (!body.id) { if (!body.id) {
return res.sendError(errorMessage.resourceNotFound) return res.sendError(errorMessage.resourceNotFound)
} }
/* // 1. 处理项目
1.处理特殊字段:
projectJsgms :关联建设规模表
projectGdxxs : 关联股东信息表
projectXmtzzes :关联项目投资额表
projectBjtjs :关联项目核心边界条件表
projectSpyjs :关联审批意见表
lxzl :关联projectFiles-File文件表
lxpfwj :关联projectFiles-File文件表
xgshcl :关联projectFiles-File文件表
*/
// 1. 先创建项目
let project = body; let project = body;
let projectInfo = _.omit(body, ['projectJsgms', 'projectGdxxs', 'projectXmtzzes', 'projectBjtjs', 'projectSpyjs', 'lxzl', 'lxpfwj', 'xgshcl']); let projectInfo = _.omit(body, ['projectJsgms', 'projectGdxxs', 'projectXmtzzes', 'projectBjtjs',
'projectSpyjs', 'projectFxgls', 'projectTzzts', 'projectJczts', 'projectZqrzs', 'projectCwpjzbs', 'projectLcbjds',
'lxzl', 'lxpfwj', 'xgshcl']);
// 处理 projectJsgms // 处理 projectJsgms
let projectJsgms = body.projectJsgms || []; let projectJsgms = body.projectJsgms || [];
let pnids1 = [], newprojectJsgms = []; let pnids1 = [], newprojectJsgms = [];
projectJsgms.map(o => { if(!o.id) {o.projectId = project.id; newprojectJsgms.push(o);} else{pnids1.push(o.id)} return o }); projectJsgms.map(o => { if (!o.id) { o.projectId = project.id; newprojectJsgms.push(o); } else { pnids1.push(o.id) } return o });
await DB.ProjectJsgm.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids1 } } }); await DB.ProjectJsgm.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids1 } } });
await DB.ProjectJsgm.bulkCreate(newprojectJsgms); await DB.ProjectJsgm.bulkCreate(newprojectJsgms);
// 处理 projectGdxxs // 处理 projectGdxxs
let projectGdxxs = body.projectGdxxs || []; let projectGdxxs = body.projectGdxxs || [];
let pnids2 = [], newprojectGdxxs = []; let pnids2 = [], newprojectGdxxs = [];
projectGdxxs.map(o => { if(!o.id) {o.projectId = project.id; newprojectGdxxs.push(o);} else{pnids2.push(o.id)} return o }); projectGdxxs.map(o => { if (!o.id) { o.projectId = project.id; newprojectGdxxs.push(o); } else { pnids2.push(o.id) } return o });
await DB.ProjectGdxx.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids2 } } }); await DB.ProjectGdxx.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids2 } } });
await DB.ProjectGdxx.bulkCreate(newprojectGdxxs); await DB.ProjectGdxx.bulkCreate(newprojectGdxxs);
// 处理 projectXmtzzes // 处理 projectXmtzzes
let projectXmtzzes = body.projectXmtzzes || []; let projectXmtzzes = body.projectXmtzzes || [];
let pnids3 = [], newprojectXmtzzes = []; let pnids3 = [], newprojectXmtzzes = [];
projectXmtzzes.map(o => { if(!o.id) {o.projectId = project.id; newprojectXmtzzes.push(o);} else{pnids3.push(o.id)} return o }); projectXmtzzes.map(o => { if (!o.id) { o.projectId = project.id; newprojectXmtzzes.push(o); } else { pnids3.push(o.id) } return o });
await DB.ProjectXmtzze.bulkCreate(newprojectXmtzzes); await DB.ProjectXmtzze.bulkCreate(newprojectXmtzzes);
// 处理 projectBjtjs // 处理 projectBjtjs
let projectBjtjs = body.projectBjtjs || []; let projectBjtjs = body.projectBjtjs || [];
let pnids4 = [], newprojectBjtjs = []; let pnids4 = [], newprojectBjtjs = [];
projectBjtjs.map(o => { if(!o.id) {o.projectId = project.id; newprojectBjtjs.push(o);} else{pnids4.push(o.id)} return o }); projectBjtjs.map(o => { if (!o.id) { o.projectId = project.id; newprojectBjtjs.push(o); } else { pnids4.push(o.id) } return o });
await DB.ProjectBjtj.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids4 } } }); await DB.ProjectBjtj.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids4 } } });
await DB.ProjectBjtj.bulkCreate(newprojectBjtjs); await DB.ProjectBjtj.bulkCreate(newprojectBjtjs);
// 处理 projectFxgl // 处理 projectFxgl
let projectFxgls = body.projectFxgls || []; let projectFxgls = body.projectFxgls || [];
let pnids5 = [], newprojectFxgls = []; let pnids5 = [], newprojectFxgls = [];
projectFxgls.map(o => { if(!o.id) {o.projectId = project.id; newprojectFxgls.push(o);} else{pnids5.push(o.id)} return o }); projectFxgls.map(o => { if (!o.id) { o.projectId = project.id; newprojectFxgls.push(o); } else { pnids5.push(o.id) } return o });
await DB.ProjectFxgl.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids5 } } }); await DB.ProjectFxgl.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids5 } } });
await DB.ProjectFxgl.bulkCreate(newprojectFxgls); await DB.ProjectFxgl.bulkCreate(newprojectFxgls);
// 处理 ProjectTzzt // 处理 ProjectTzzt
let projectTzzts = body.projectTzzts || []; let projectTzzts = body.projectTzzts || [];
let pnids6 = [], newprojectTzzts = []; let pnids6 = [], newprojectTzzts = [];
projectTzzts.map(o => { if(!o.id) {o.projectId = project.id; newprojectTzzts.push(o);} else{pnids6.push(o.id)} return o }); projectTzzts.map(o => { if (!o.id) { o.projectId = project.id; newprojectTzzts.push(o); } else { pnids6.push(o.id) } return o });
await DB.ProjectTzzt.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids6 } } }); await DB.ProjectTzzt.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids6 } } });
await DB.ProjectTzzt.bulkCreate(newprojectTzzts); await DB.ProjectTzzt.bulkCreate(newprojectTzzts);
// 处理 ProjectJczt // 处理 ProjectJczt
let projectJczts = body.projectJczts || []; let projectJczts = body.projectJczts || [];
let pnids7 = [], newprojectJczts = []; let pnids7 = [], newprojectJczts = [];
projectJczts.map(o => { if(!o.id) {o.projectId = project.id; newprojectJczts.push(o);} else{pnids7.push(o.id)} return o }); projectJczts.map(o => { if (!o.id) { o.projectId = project.id; newprojectJczts.push(o); } else { pnids7.push(o.id) } return o });
await DB.ProjectJczt.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids7 } } }); await DB.ProjectJczt.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids7 } } });
await DB.ProjectJczt.bulkCreate(newprojectJczts); await DB.ProjectJczt.bulkCreate(newprojectJczts);
// 处理 projectZqrz // // 处理 projectZqrz
let projectZqrzs = body.projectZqrzs || []; // let projectZqrzs = body.projectZqrzs || [];
let pnids8 = [], newprojectZqrzs = []; // let pnids8 = [], newprojectZqrzs = [];
projectZqrzs.map(o => { if(!o.id) {o.projectId = project.id; newprojectZqrzs.push(o);} else{pnids8.push(o.id)} return o }); // projectZqrzs.map(o => { if (!o.id) { o.projectId = project.id; newprojectZqrzs.push(o); } else { pnids8.push(o.id) } return o });
await DB.ProjectZqrz.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids8 } } }); // await DB.ProjectZqrz.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids8 } } });
await DB.ProjectZqrz.bulkCreate(newprojectZqrzs); // await DB.ProjectZqrz.bulkCreate(newprojectZqrzs);
// 处理 projectSpyjs // 处理 projectSpyjs
let projectSpyjs = body.projectSpyjs || []; let projectSpyjs = body.projectSpyjs || [];
let pnids9 = [], newprojectSpyjs = []; let pnids9 = [], newprojectSpyjs = [];
projectSpyjs.map(o => { if(!o.id) {o.projectId = project.id; newprojectSpyjs.push(o);} else{pnids9.push(o.id)} return o }); projectSpyjs.map(o => { if (!o.id) { o.projectId = project.id; newprojectSpyjs.push(o); } else { pnids9.push(o.id) } return o });
await DB.ProjectSpyj.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids9 } } }); await DB.ProjectSpyj.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids9 } } });
await DB.ProjectSpyj.bulkCreate(newprojectSpyjs); await DB.ProjectSpyj.bulkCreate(newprojectSpyjs);
// 处理 projectCwpjzb // 处理 projectCwpjzb
let projectCwpjzbs = body.projectCwpjzbs || []; let projectCwpjzbs = body.projectCwpjzbs || [];
let pnids10 = [], newprojectCwpjzbs = []; let pnids10 = [], newprojectCwpjzbs = [];
projectCwpjzbs.map(o => { if(!o.id) {o.projectId = project.id; newprojectCwpjzbs.push(o);} else{pnids10.push(o.id)} return o }); projectCwpjzbs.map(o => { if (!o.id) { o.projectId = project.id; newprojectCwpjzbs.push(o); } else { pnids10.push(o.id) } return o });
await DB.ProjectCwpjzb.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids10 } } }); await DB.ProjectCwpjzb.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids10 } } });
await DB.ProjectCwpjzb.bulkCreate(newprojectCwpjzbs); await DB.ProjectCwpjzb.bulkCreate(newprojectCwpjzbs);
// 处理 ProjectLcbjd // 处理 ProjectLcbjd
let projectLcbjds = body.projectLcbjds || []; let projectLcbjds = body.projectLcbjds || [];
let pnids11 = [], newprojectLcbjds = []; let pnids11 = [], newprojectLcbjds = [];
projectLcbjds.map(o => { if(!o.id) {o.projectId = project.id; newprojectLcbjds.push(o);} else{pnids11.push(o.id)} return o }); projectLcbjds.map(o => { if (!o.id) { o.projectId = project.id; newprojectLcbjds.push(o); } else { pnids11.push(o.id) } return o });
await DB.ProjectLcbjd.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids11 } } }); await DB.ProjectLcbjd.destroy({ where: { projectId: project.id, id: { [Op.notIn]: pnids11 } } });
await DB.ProjectLcbjd.bulkCreate(newprojectLcbjds); await DB.ProjectLcbjd.bulkCreate(newprojectLcbjds);
// 处理 projectTzzjll----- // 处理 projectTzzjll-----
...@@ -269,13 +263,13 @@ async function updateProject(req, res, next) { ...@@ -269,13 +263,13 @@ async function updateProject(req, res, next) {
// 立项资料 // 立项资料
let lxzl = body.lxzl || []; let lxzl = body.lxzl || [];
let needIds = []; let createIds = []; let needIds = []; let createIds = [];
lxzl.map(o => { if (!o.proFieldKey) { createIds.push({id: o.id, proFieldKey: 'lxzl'}) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'lxzl' } }); lxzl.map(o => { if (!o.proFieldKey) { createIds.push({ id: o.id, proFieldKey: 'lxzl' }) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'lxzl' } });
// 立项批复文件 // 立项批复文件
let lxpfwj = body.lxpfwj || []; let lxpfwj = body.lxpfwj || [];
lxpfwj.map(o => { if (!o.proFieldKey) { createIds.push({id: o.id, proFieldKey: 'lxpfwj'}) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'lxpfwj' } }); lxpfwj.map(o => { if (!o.proFieldKey) { createIds.push({ id: o.id, proFieldKey: 'lxpfwj' }) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'lxpfwj' } });
// 相关上会材料 // 相关上会材料
let xgshcl = body.xgshcl || []; let xgshcl = body.xgshcl || [];
xgshcl.map(o => { if (!o.proFieldKey) { createIds.push({id: o.id, proFieldKey: 'xgshcl'}) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'xgshcl' } }); xgshcl.map(o => { if (!o.proFieldKey) { createIds.push({ id: o.id, proFieldKey: 'xgshcl' }) } else { needIds.push(o.id) }; return { fileId: o.id, projectId: project.id, proFieldKey: 'xgshcl' } });
// 处理文件 // 处理文件
//1. 删除 //1. 删除
await DB.ProjectFile.destroy({ await DB.ProjectFile.destroy({
...@@ -285,14 +279,33 @@ async function updateProject(req, res, next) { ...@@ -285,14 +279,33 @@ async function updateProject(req, res, next) {
} }
}); });
//2. 创建 //2. 创建
if(createIds.length) { if (createIds.length) {
let creProFiles = createIds.map(o=> {return {projectId: project.id, fileId: o.id, proFieldKey: o.proFieldKey}}); let creProFiles = createIds.map(o => { return { projectId: project.id, fileId: o.id, proFieldKey: o.proFieldKey } });
await DB.ProjectFile.bulkCreate(creProFiles); await DB.ProjectFile.bulkCreate(creProFiles);
} }
const ret = await DB.Project.update(projectInfo, { where: { id: body.id } });
/** /**
* 根据前端加入的参数区分按钮 更新草稿并提交 更新草稿 TODO: * 根据前端加入的参数区分按钮 更新草稿并提交 更新草稿 TODO:
*/ */
if (buttonType === 'submit') {
await DB.FlowRecord.create({
userId: req.user.id,
actionName: '发起项目初审',
projectId: project.id,
});
let approvers = await userModule.getProjectApprover(req.user.id, 'xmgs_xmspr');
if (!(approvers && approvers.length > 0)) {
return res.sendError('项目已保存,请联系管理员为本公司添加【项目初审】角色人员');
}
await DB.Message.createProjectMessage({
projectId: project.id,
creator: req.user.id,
receivers: approvers.map(o => o.id),
type: 2,
content: `项目【${project.name}】已发起,请尽快处理!`
});
projectInfo.projectLiuZhuanType = 3; // 待初审
}
const ret = await DB.Project.update(projectInfo, { where: { id: body.id } });
return res.sendData(ret); return res.sendData(ret);
} catch (error) { } catch (error) {
...@@ -301,9 +314,16 @@ async function updateProject(req, res, next) { ...@@ -301,9 +314,16 @@ async function updateProject(req, res, next) {
} }
async function reviewProject(req, res, next) { /**
* 初审
* @param {*} req
* @param {*} res
* @param {*} next
* @returns
*/
async function preJugProject(req, res, next) {
try { try {
let {id} = req.body; let { id } = req.body;
if (!id) { if (!id) {
return res.sendError(errorMessage.resourceNotFound) return res.sendError(errorMessage.resourceNotFound)
} }
...@@ -312,12 +332,43 @@ async function reviewProject(req, res, next) { ...@@ -312,12 +332,43 @@ async function reviewProject(req, res, next) {
return res.sendError(errorMessage.resourceNotFound) return res.sendError(errorMessage.resourceNotFound)
} }
/** /**
* 1. 更新项目状态 3 复核通过 复核不通过则回到状态1 * 1. 更新项目状态 5 初审通过 初审不通过则回到状态1
*/ */
if(buttonType === 'approve') { if (buttonType === 'approve') {
await DB.Project.update({ status: 3 }, { where: { id } }); await DB.Project.update({ projectLiuZhuanType: 3 }, { where: { id } });
} else { } else {
await DB.Project.update({ status: 1 }, { where: { id } }); await DB.Project.update({ projectLiuZhuanType: 1 }, { where: { id } });
}
return res.sendData();
} catch (error) {
next(error)
}
}
/**
* 终审
* @param {*} req
* @param {*} res
* @param {*} next
* @returns
*/
async function finalJugProject(req, res, next) {
try {
let { id } = req.body;
if (!id) {
return res.sendError(errorMessage.resourceNotFound)
}
let project = await DB.Project.findOne({ where: { id } });
if (!project) {
return res.sendError(errorMessage.resourceNotFound)
}
/**
* 1. 更新项目状态 5 终审通过 初审不通过则回到状态1
*/
if (buttonType === 'approve') {
await DB.Project.update({ projectLiuZhuanType: 7 }, { where: { id } });
} else {
await DB.Project.update({ projectLiuZhuanType: 1 }, { where: { id } });
} }
return res.sendData(); return res.sendData();
...@@ -336,8 +387,20 @@ async function getProjectInfo(req, res, next) { ...@@ -336,8 +387,20 @@ async function getProjectInfo(req, res, next) {
// raw: true, // raw: true,
include: [ include: [
{ {
model: DB.ProjectJsgm, model: DB.ProjectBjtj,
as: 'projectJsgms', as: 'projectBjtjs',
// where: { del: 0 },
// attributes: [],
},
{
model: DB.ProjectCwpjzb,
as: 'projectCwpjzbs',
// where: { del: 0 },
// attributes: [],
},
{
model: DB.ProjectFxgl,
as: 'projectFxgls',
// where: { del: 0 }, // where: { del: 0 },
// attributes: [], // attributes: [],
}, },
...@@ -348,23 +411,45 @@ async function getProjectInfo(req, res, next) { ...@@ -348,23 +411,45 @@ async function getProjectInfo(req, res, next) {
// attributes: [], // attributes: [],
}, },
{ {
model: DB.ProjectXmtzze, model: DB.ProjectJczt,
as: 'projectXmtzzes', as: 'projectJczts',
// where: { del: 0 }, // where: { del: 0 },
// attributes: [], // attributes: [],
}, },
{ {
model: DB.ProjectBjtj, model: DB.ProjectJsgm,
as: 'projectBjtjs', as: 'projectJsgms',
// where: { del: 0 }, // where: { del: 0 },
// attributes: [], // attributes: [],
}, },
{
model: DB.ProjectLcbjd,
as: 'projectLcbjds',
},
{ {
model: DB.ProjectSpyj, model: DB.ProjectSpyj,
as: 'projectSpyjs', as: 'projectSpyjs',
// where: { del: 0 }, // where: { del: 0 },
// attributes: [], // attributes: [],
}, },
{
model: DB.ProjectTzzjll,
as: 'projectTzzjlls',
// where: { del: 0 },
// attributes: [],
},
{
model: DB.ProjectTzzt,
as: 'projectTzzts',
// where: { del: 0 },
// attributes: [],
},
{
model: DB.ProjectXmtzze,
as: 'projectXmtzzes',
// where: { del: 0 },
// attributes: [],
},
{ {
model: DB.File, model: DB.File,
as: 'files', as: 'files',
...@@ -521,4 +606,6 @@ module.exports = { ...@@ -521,4 +606,6 @@ module.exports = {
updateProject, updateProject,
exportExcel, exportExcel,
getExcelTemplate, getExcelTemplate,
preJugProject,
finalJugProject,
} }
\ No newline at end of file
...@@ -16,10 +16,17 @@ const Project = require("./model/jt/project"); ...@@ -16,10 +16,17 @@ const Project = require("./model/jt/project");
const Resources = require("./model/jt/resources"); const Resources = require("./model/jt/resources");
const ResourcesInfo = require("./model/jt/resourcesInfo"); const ResourcesInfo = require("./model/jt/resourcesInfo");
const ProjectBjtj = require("./model/jt/projectBjtj"); const ProjectBjtj = require("./model/jt/projectBjtj");
const ProjectCwpjzb = require("./model/jt/projectCwpjzb");
const ProjectFile = require("./model/jt/projectFile"); const ProjectFile = require("./model/jt/projectFile");
const ProjectFxgl = require("./model/jt/projectFxgl");
const ProjectGdxx = require("./model/jt/projectGdxx"); const ProjectGdxx = require("./model/jt/projectGdxx");
const ProjectJczt = require("./model/jt/projectJczt");
const ProjectJsgm = require("./model/jt/projectJsgm"); const ProjectJsgm = require("./model/jt/projectJsgm");
const ProjectLcbjd = require("./model/jt/projectLcbjd");
const ProjectSpyj = require("./model/jt/projectSpyj"); const ProjectSpyj = require("./model/jt/projectSpyj");
const ProjectTzzjll = require("./model/jt/projectTzzjll");
const ProjectTzzt = require("./model/jt/projectTzzt");
const ProjectXmtzze = require("./model/jt/projectXmtzze");
/** /**
...@@ -47,6 +54,13 @@ global.DB = { ...@@ -47,6 +54,13 @@ global.DB = {
ProjectGdxx, ProjectGdxx,
ProjectJsgm, ProjectJsgm,
ProjectSpyj, ProjectSpyj,
ProjectCwpjzb,
ProjectJczt,
ProjectFxgl,
ProjectLcbjd,
ProjectTzzjll,
ProjectTzzt,
ProjectXmtzze,
} }
...@@ -127,15 +141,36 @@ ResourcesInfo.belongsTo(Resources, { foreignKey: 'resourceId' }); ...@@ -127,15 +141,36 @@ ResourcesInfo.belongsTo(Resources, { foreignKey: 'resourceId' });
/**项目-核心边界条件 1:n */ /**项目-核心边界条件 1:n */
Project.hasMany(ProjectBjtj, { foreignKey: 'projectId', as: 'projectBjtjs' }); Project.hasMany(ProjectBjtj, { foreignKey: 'projectId', as: 'projectBjtjs' });
ProjectBjtj.belongsTo(Project, { foreignKey: 'projectId' }); ProjectBjtj.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-财务评价指标 1:n */
Project.hasMany(ProjectCwpjzb, { foreignKey: 'projectId', as: 'projectCwpjzbs' });
ProjectCwpjzb.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-项目附件 1:n */ /**项目-项目附件 1:n */
Project.belongsToMany(File, { through: 'jt_project_file', foreignKey: 'projectId', as: 'files', otherKey: 'fileId' }); Project.belongsToMany(File, { through: 'jt_project_file', foreignKey: 'projectId', as: 'files', otherKey: 'fileId' });
File.belongsToMany(Project, { through: 'jt_project_file', foreignKey: 'fileId', otherKey: 'projectId', as: 'pros' }); File.belongsToMany(Project, { through: 'jt_project_file', foreignKey: 'fileId', otherKey: 'projectId', as: 'pros' });
/**项目-风险管理 1:n */
Project.hasMany(ProjectFxgl, { foreignKey: 'projectId', as: 'projectFxgls' });
ProjectFxgl.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-股东信息 1:n */ /**项目-股东信息 1:n */
Project.hasMany(ProjectGdxx, { foreignKey: 'projectId', as: 'projectGdxxs' }); Project.hasMany(ProjectGdxx, { foreignKey: 'projectId', as: 'projectGdxxs' });
ProjectGdxx.belongsTo(Project, { foreignKey: 'projectId' }); ProjectGdxx.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-决策主体审核情况 1:n */
Project.hasMany(ProjectJczt, { foreignKey: 'projectId', as: 'projectJczts' });
ProjectJczt.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-建设规模 1:n */ /**项目-建设规模 1:n */
Project.hasMany(ProjectJsgm, { foreignKey: 'projectId', as: 'projectJsgms' }); Project.hasMany(ProjectJsgm, { foreignKey: 'projectId', as: 'projectJsgms' });
ProjectJsgm.belongsTo(Project, { foreignKey: 'projectId' }); ProjectJsgm.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-里程碑节点 1:n */
Project.hasMany(ProjectLcbjd, { foreignKey: 'projectId', as: 'projectLcbjds' });
ProjectLcbjd.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-审批意见 1:n */ /**项目-审批意见 1:n */
Project.hasMany(ProjectSpyj, { foreignKey: 'projectId', as: 'projectSpyjs' }); Project.hasMany(ProjectSpyj, { foreignKey: 'projectId', as: 'projectSpyjs' });
ProjectSpyj.belongsTo(Project, { foreignKey: 'projectId' }); ProjectSpyj.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-项目投资资金流量 1:n */
Project.hasMany(ProjectTzzjll, { foreignKey: 'projectId', as: 'projectTzzjlls' });
ProjectTzzjll.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-投资主体审核情况 1:n */
Project.hasMany(ProjectTzzt, { foreignKey: 'projectId', as: 'projectTzzts' });
ProjectTzzt.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-项目投资总额 1:n */
Project.hasMany(ProjectXmtzze, { foreignKey: 'projectId', as: 'projectXmtzzes' });
ProjectXmtzze.belongsTo(Project, { foreignKey: 'projectId' });
\ No newline at end of file
...@@ -23,7 +23,7 @@ const Project = sequelize.define('Project', { ...@@ -23,7 +23,7 @@ const Project = sequelize.define('Project', {
}, },
projectLiuZhuanType: { projectLiuZhuanType: {
type: DataTypes.STRING, type: DataTypes.STRING,
comment: "项目流转状态 草稿、待初审、初审退回、待终审、终审退回、待立项审批、立项审批退回、已立项、已暂停、已结束等", comment: "项目流转状态 1. 草稿、3 待初审、1初审退回、5待终审、1终审退回、7待立项审批、立项审批退回、已立项、已暂停、已结束等",
}, },
/** /**
* 项目基本信息 * 项目基本信息
......
...@@ -18,5 +18,7 @@ router.post('/getProjectFields', projectController.getProjectFields); ...@@ -18,5 +18,7 @@ router.post('/getProjectFields', projectController.getProjectFields);
router.post('/exportExcel', projectController.exportExcel); router.post('/exportExcel', projectController.exportExcel);
router.post('/getExcelTemplate', projectController.getExcelTemplate); router.post('/getExcelTemplate', projectController.getExcelTemplate);
router.post('/preJugProject', projectController.preJugProject); //初审
router.post('/finalJugProject', projectController.finalJugProject); //终审
module.exports = router; module.exports = router;
\ No newline at end of file
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