明树Git Lab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jt_backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zengfanpei
jt_backend
Commits
54333293
Commit
54333293
authored
Nov 27, 2025
by
zfp1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
88489a75
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
193 additions
and
69 deletions
+193
-69
projectController.js
controller/projectController.js
+154
-67
index.js
db/index.js
+36
-1
project.js
db/model/jt/project.js
+1
-1
projectZqrz-del.js
db/model/jt/projectZqrz-del.js
+0
-0
projectRouter.js
router/projectRouter.js
+2
-0
No files found.
controller/projectController.js
View file @
54333293
...
...
@@ -62,19 +62,22 @@ async function createProject(req, res, next) {
projectXmtzzes :关联项目投资额表
projectBjtjs :关联项目核心边界条件表
projectSpyjs :关联审批意见表
projectFxgl: 关联 风险管理
projectTzzt: 关联 投资主体审核
ProjectJczt: 关联 决策主体审核
projectZqrz
: 关联 债权融资
projectCwpjzb: 关联 财务评价指标
ProjectLcbjd: 关联 里程碑节点
projectFxgl
s
: 关联 风险管理
projectTzzt
s
: 关联 投资主体审核
ProjectJczt
s
: 关联 决策主体审核
// projectZqrzs
: 关联 债权融资
projectCwpjzb
s
: 关联 财务评价指标
ProjectLcbjd
s
: 关联 里程碑节点
lxzl :关联projectFiles-File文件表
lxpfwj :关联projectFiles-File文件表
xgshcl :关联projectFiles-File文件表
*/
// 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
);
// 处理 projectJsgms
let
projectJsgms
=
body
.
projectJsgms
||
[];
...
...
@@ -104,10 +107,10 @@ async function createProject(req, res, next) {
let
projectJczts
=
body
.
projectJczts
||
[];
projectJczts
=
projectJczts
.
map
(
o
=>
{
o
.
projectId
=
project
.
id
;
return
o
});
await
DB
.
ProjectJczt
.
bulkCreate
(
projectJczts
);
// 处理 projectZqrz
let
projectZqrzs
=
body
.
projectZqrzs
||
[];
projectZqrzs
=
projectZqrzs
.
map
(
o
=>
{
o
.
projectId
=
project
.
id
;
return
o
});
await
DB
.
ProjectZqrz
.
bulkCreate
(
projectZqrzs
);
//
//
处理 projectZqrz
//
let projectZqrzs = body.projectZqrzs || [];
//
projectZqrzs = projectZqrzs.map(o => { o.projectId = project.id; return o });
//
await DB.ProjectZqrz.bulkCreate(projectZqrzs);
// 处理 projectSpyjs
let
projectSpyjs
=
body
.
projectSpyjs
||
[];
projectSpyjs
=
projectSpyjs
.
map
(
o
=>
{
o
.
projectId
=
project
.
id
;
return
o
});
...
...
@@ -145,15 +148,15 @@ async function createProject(req, res, next) {
*/
//B. 找到本公司审批人员发送消息-- 如果找不到人 则提示项目已保存,联系管理员添加【项目公司项目审批人】角色
//A. 创建发起记录
if
(
buttonType
===
'submit'
)
{
if
(
buttonType
===
'submit'
)
{
await
DB
.
FlowRecord
.
create
({
userId
:
req
.
user
.
id
,
actionName
:
'发起项目
复核
'
,
actionName
:
'发起项目
初审
'
,
projectId
:
project
.
id
,
});
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmgs_xmspr'
);
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
return
res
.
sendError
(
'项目已保存,请联系管理员为本公司添加【项目
公司项目审批人
】角色人员'
);
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
return
res
.
sendError
(
'项目已保存,请联系管理员为本公司添加【项目
初审
】角色人员'
);
}
await
DB
.
Message
.
createProjectMessage
({
projectId
:
project
.
id
,
...
...
@@ -162,6 +165,7 @@ async function createProject(req, res, next) {
type
:
2
,
content
:
`项目【
${
project
.
name
}
】已发起,请尽快处理!`
});
await
DB
.
Project
.
update
({
projectLiuZhuanType
:
3
},
{
where
:
{
id
:
project
.
id
}
});
}
return
res
.
sendData
(
project
);
}
catch
(
error
)
{
...
...
@@ -183,84 +187,74 @@ async function updateProject(req, res, next) {
if
(
!
body
.
id
)
{
return
res
.
sendError
(
errorMessage
.
resourceNotFound
)
}
/*
1.处理特殊字段:
projectJsgms :关联建设规模表
projectGdxxs : 关联股东信息表
projectXmtzzes :关联项目投资额表
projectBjtjs :关联项目核心边界条件表
projectSpyjs :关联审批意见表
lxzl :关联projectFiles-File文件表
lxpfwj :关联projectFiles-File文件表
xgshcl :关联projectFiles-File文件表
*/
// 1. 先创建项目
// 1. 处理项目
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
let
projectJsgms
=
body
.
projectJsgms
||
[];
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
.
bulkCreate
(
newprojectJsgms
);
// 处理 projectGdxxs
let
projectGdxxs
=
body
.
projectGdxxs
||
[];
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
.
bulkCreate
(
newprojectGdxxs
);
// 处理 projectXmtzzes
let
projectXmtzzes
=
body
.
projectXmtzzes
||
[];
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
);
// 处理 projectBjtjs
let
projectBjtjs
=
body
.
projectBjtjs
||
[];
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
.
bulkCreate
(
newprojectBjtjs
);
// 处理 projectFxgl
let
projectFxgls
=
body
.
projectFxgls
||
[];
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
.
bulkCreate
(
newprojectFxgls
);
// 处理 ProjectTzzt
let
projectTzzts
=
body
.
projectTzzts
||
[];
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
.
bulkCreate
(
newprojectTzzts
);
// 处理 ProjectJczt
let
projectJczts
=
body
.
projectJczts
||
[];
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
.
bulkCreate
(
newprojectJczts
);
// 处理 projectZqrz
let
projectZqrzs
=
body
.
projectZqrzs
||
[];
let
pnids8
=
[],
newprojectZqrzs
=
[];
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
.
bulkCreate
(
newprojectZqrzs
);
//
//
处理 projectZqrz
//
let projectZqrzs = body.projectZqrzs || [];
//
let pnids8 = [], newprojectZqrzs = [];
// 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.bulkCreate(newprojectZqrzs);
// 处理 projectSpyjs
let
projectSpyjs
=
body
.
projectSpyjs
||
[];
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
.
bulkCreate
(
newprojectSpyjs
);
// 处理 projectCwpjzb
let
projectCwpjzbs
=
body
.
projectCwpjzbs
||
[];
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
.
bulkCreate
(
newprojectCwpjzbs
);
// 处理 ProjectLcbjd
let
projectLcbjds
=
body
.
projectLcbjds
||
[];
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
.
bulkCreate
(
newprojectLcbjds
);
// 处理 projectTzzjll-----
...
...
@@ -269,13 +263,13 @@ async function updateProject(req, res, next) {
// 立项资料
let
lxzl
=
body
.
lxzl
||
[];
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
||
[];
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
||
[];
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. 删除
await
DB
.
ProjectFile
.
destroy
({
...
...
@@ -285,14 +279,33 @@ async function updateProject(req, res, next) {
}
});
//2. 创建
if
(
createIds
.
length
)
{
let
creProFiles
=
createIds
.
map
(
o
=>
{
return
{
projectId
:
project
.
id
,
fileId
:
o
.
id
,
proFieldKey
:
o
.
proFieldKey
}
});
if
(
createIds
.
length
)
{
let
creProFiles
=
createIds
.
map
(
o
=>
{
return
{
projectId
:
project
.
id
,
fileId
:
o
.
id
,
proFieldKey
:
o
.
proFieldKey
}
});
await
DB
.
ProjectFile
.
bulkCreate
(
creProFiles
);
}
const
ret
=
await
DB
.
Project
.
update
(
projectInfo
,
{
where
:
{
id
:
body
.
id
}
});
/**
* 根据前端加入的参数区分按钮 更新草稿并提交 更新草稿 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
);
}
catch
(
error
)
{
...
...
@@ -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
{
let
{
id
}
=
req
.
body
;
let
{
id
}
=
req
.
body
;
if
(
!
id
)
{
return
res
.
sendError
(
errorMessage
.
resourceNotFound
)
}
...
...
@@ -312,12 +332,43 @@ async function reviewProject(req, res, next) {
return
res
.
sendError
(
errorMessage
.
resourceNotFound
)
}
/**
* 1. 更新项目状态
3 复核通过 复核
不通过则回到状态1
* 1. 更新项目状态
5 初审通过 初审
不通过则回到状态1
*/
if
(
buttonType
===
'approve'
)
{
await
DB
.
Project
.
update
({
status
:
3
},
{
where
:
{
id
}
});
if
(
buttonType
===
'approve'
)
{
await
DB
.
Project
.
update
({
projectLiuZhuanType
:
3
},
{
where
:
{
id
}
});
}
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
();
...
...
@@ -336,8 +387,20 @@ async function getProjectInfo(req, res, next) {
// raw: true,
include
:
[
{
model
:
DB
.
ProjectJsgm
,
as
:
'projectJsgms'
,
model
:
DB
.
ProjectBjtj
,
as
:
'projectBjtjs'
,
// where: { del: 0 },
// attributes: [],
},
{
model
:
DB
.
ProjectCwpjzb
,
as
:
'projectCwpjzbs'
,
// where: { del: 0 },
// attributes: [],
},
{
model
:
DB
.
ProjectFxgl
,
as
:
'projectFxgls'
,
// where: { del: 0 },
// attributes: [],
},
...
...
@@ -348,23 +411,45 @@ async function getProjectInfo(req, res, next) {
// attributes: [],
},
{
model
:
DB
.
Project
Xmtzze
,
as
:
'project
Xmtzze
s'
,
model
:
DB
.
Project
Jczt
,
as
:
'project
Jczt
s'
,
// where: { del: 0 },
// attributes: [],
},
{
model
:
DB
.
Project
Bjtj
,
as
:
'project
Bjtj
s'
,
model
:
DB
.
Project
Jsgm
,
as
:
'project
Jsgm
s'
,
// where: { del: 0 },
// attributes: [],
},
{
model
:
DB
.
ProjectLcbjd
,
as
:
'projectLcbjds'
,
},
{
model
:
DB
.
ProjectSpyj
,
as
:
'projectSpyjs'
,
// where: { del: 0 },
// 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
,
as
:
'files'
,
...
...
@@ -521,4 +606,6 @@ module.exports = {
updateProject
,
exportExcel
,
getExcelTemplate
,
preJugProject
,
finalJugProject
,
}
\ No newline at end of file
db/index.js
View file @
54333293
...
...
@@ -16,10 +16,17 @@ const Project = require("./model/jt/project");
const
Resources
=
require
(
"./model/jt/resources"
);
const
ResourcesInfo
=
require
(
"./model/jt/resourcesInfo"
);
const
ProjectBjtj
=
require
(
"./model/jt/projectBjtj"
);
const
ProjectCwpjzb
=
require
(
"./model/jt/projectCwpjzb"
);
const
ProjectFile
=
require
(
"./model/jt/projectFile"
);
const
ProjectFxgl
=
require
(
"./model/jt/projectFxgl"
);
const
ProjectGdxx
=
require
(
"./model/jt/projectGdxx"
);
const
ProjectJczt
=
require
(
"./model/jt/projectJczt"
);
const
ProjectJsgm
=
require
(
"./model/jt/projectJsgm"
);
const
ProjectLcbjd
=
require
(
"./model/jt/projectLcbjd"
);
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 = {
ProjectGdxx
,
ProjectJsgm
,
ProjectSpyj
,
ProjectCwpjzb
,
ProjectJczt
,
ProjectFxgl
,
ProjectLcbjd
,
ProjectTzzjll
,
ProjectTzzt
,
ProjectXmtzze
,
}
...
...
@@ -127,15 +141,36 @@ ResourcesInfo.belongsTo(Resources, { foreignKey: 'resourceId' });
/**项目-核心边界条件 1:n */
Project
.
hasMany
(
ProjectBjtj
,
{
foreignKey
:
'projectId'
,
as
:
'projectBjtjs'
});
ProjectBjtj
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-财务评价指标 1:n */
Project
.
hasMany
(
ProjectCwpjzb
,
{
foreignKey
:
'projectId'
,
as
:
'projectCwpjzbs'
});
ProjectCwpjzb
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-项目附件 1:n */
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'
});
/**项目-风险管理 1:n */
Project
.
hasMany
(
ProjectFxgl
,
{
foreignKey
:
'projectId'
,
as
:
'projectFxgls'
});
ProjectFxgl
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-股东信息 1:n */
Project
.
hasMany
(
ProjectGdxx
,
{
foreignKey
:
'projectId'
,
as
:
'projectGdxxs'
});
ProjectGdxx
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-决策主体审核情况 1:n */
Project
.
hasMany
(
ProjectJczt
,
{
foreignKey
:
'projectId'
,
as
:
'projectJczts'
});
ProjectJczt
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-建设规模 1:n */
Project
.
hasMany
(
ProjectJsgm
,
{
foreignKey
:
'projectId'
,
as
:
'projectJsgms'
});
ProjectJsgm
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-里程碑节点 1:n */
Project
.
hasMany
(
ProjectLcbjd
,
{
foreignKey
:
'projectId'
,
as
:
'projectLcbjds'
});
ProjectLcbjd
.
belongsTo
(
Project
,
{
foreignKey
:
'projectId'
});
/**项目-审批意见 1:n */
Project
.
hasMany
(
ProjectSpyj
,
{
foreignKey
:
'projectId'
,
as
:
'projectSpyjs'
});
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
db/model/jt/project.js
View file @
54333293
...
...
@@ -23,7 +23,7 @@ const Project = sequelize.define('Project', {
},
projectLiuZhuanType
:
{
type
:
DataTypes
.
STRING
,
comment
:
"项目流转状态
草稿、待初审、初审退回、待终审、终审退回、
待立项审批、立项审批退回、已立项、已暂停、已结束等"
,
comment
:
"项目流转状态
1. 草稿、3 待初审、1初审退回、5待终审、1终审退回、7
待立项审批、立项审批退回、已立项、已暂停、已结束等"
,
},
/**
* 项目基本信息
...
...
db/model/jt/projectZqrz.js
→
db/model/jt/projectZqrz
-del
.js
View file @
54333293
File moved
router/projectRouter.js
View file @
54333293
...
...
@@ -18,5 +18,7 @@ router.post('/getProjectFields', projectController.getProjectFields);
router
.
post
(
'/exportExcel'
,
projectController
.
exportExcel
);
router
.
post
(
'/getExcelTemplate'
,
projectController
.
getExcelTemplate
);
router
.
post
(
'/preJugProject'
,
projectController
.
preJugProject
);
//初审
router
.
post
(
'/finalJugProject'
,
projectController
.
finalJugProject
);
//终审
module
.
exports
=
router
;
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment