明树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
56ab2b08
Commit
56ab2b08
authored
May 12, 2026
by
zfp1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
193df050
Pipeline
#111159
passed with stage
in 4 seconds
Changes
8
Pipelines
1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
369 additions
and
129 deletions
+369
-129
departController.js
controller/departController.js
+3
-3
projectController.js
controller/projectController.js
+279
-103
project.js
db/model/jt/project.js
+29
-2
projectBjtj.js
db/model/jt/projectBjtj.js
+1
-1
depart.js
db/model/system/depart.js
+5
-0
message.js
db/model/system/message.js
+6
-1
userModule.js
module/userModule.js
+42
-14
projectRouter.js
router/projectRouter.js
+4
-5
No files found.
controller/departController.js
View file @
56ab2b08
...
...
@@ -102,9 +102,9 @@ async function deleteDepart(req, res, next) {
return
res
.
sendError
(
errorMessage
.
resourceNotFound
);
}
//查验部门下是否有用户
let
depIds
=
curNode
.
parentIds
?
curNode
.
parentIds
.
split
(
','
)
:
[];
depIds
.
push
(
curNode
.
id
);
let
count
=
await
DB
.
UserDepart
.
count
({
where
:
{
departId
:
{[
Op
.
in
]:
depIds
}}});
//
let depIds = curNode.parentIds ? curNode.parentIds.split(',') : [];
//
depIds.push(curNode.id);
let
count
=
await
DB
.
UserDepart
.
count
({
where
:
{
parentIds
:
{[
Op
.
startsWith
]:
curNode
.
parentIds
+
curNode
.
id
}}});
if
(
count
&&
count
>
0
)
{
return
res
.
sendError
(
errorMessage
.
departHasUser
);
}
...
...
controller/projectController.js
View file @
56ab2b08
This diff is collapsed.
Click to expand it.
db/model/jt/project.js
View file @
56ab2b08
...
...
@@ -25,7 +25,7 @@ const Project = sequelize.define('Project', {
},
projectLzType
:
{
type
:
DataTypes
.
STRING
(
10
),
comment
:
"项目流转状态: 1待立项
3立项审批中
5 已立项 7决策填报中 8 决策审批中 9 已决策 ( 待定 11 再决策填报中 12 再决策审批中 13 再决策审批通过 15再决策审批不通过)"
,
comment
:
"项目流转状态: 1待立项
2.立项核准中 3立项初审 4.立项终审
5 已立项 7决策填报中 8 决策审批中 9 已决策 ( 待定 11 再决策填报中 12 再决策审批中 13 再决策审批通过 15再决策审批不通过)"
,
},
xmjd
:
{
type
:
DataTypes
.
STRING
(
10
),
...
...
@@ -36,7 +36,34 @@ const Project = sequelize.define('Project', {
defaultValue
:
0
,
comment1
:
"0 正常 1 删除"
,
},
projectHzUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目核准人ID"
,
},
projectLxjbrUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目立项经办人ID"
,
},
projectLxzsUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目立项终审人ID"
,
},
projectFqJueceUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目决策发起人ID"
,
},
projectJueceSpUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目决策审批人ID"
,
},
projectFqZaiJueceUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目再决策发起人ID"
,
},
projectZaiJueceSpUser
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"项目再决策审批人ID"
,
},
/**
* 立项字段
*/
...
...
db/model/jt/projectBjtj.js
View file @
56ab2b08
...
...
@@ -18,7 +18,7 @@ const projectBjtj = sequelize.define('projectBjtj', {
comment
:
"单位工程造价数值"
},
dwgczjDw
:
{
type
:
DataTypes
.
INTEGER
,
type
:
DataTypes
.
STRING
(
10
)
,
comment
:
"单位工程造价单位"
},
xsfwnlSz
:
{
...
...
db/model/system/depart.js
View file @
56ab2b08
...
...
@@ -17,6 +17,11 @@ const Depart = sequelize.define('Depart', {
type
:
DataTypes
.
INTEGER
,
},
type
:
{
type
:
DataTypes
.
INTEGER
,
defaultValue
:
0
,
comment
:
"0 集团及内部部门 1 项目公司及内部部门"
},
parentIds
:
{
type
:
DataTypes
.
STRING
(
500
),
},
...
...
db/model/system/message.js
View file @
56ab2b08
...
...
@@ -37,7 +37,12 @@ const Message = sequelize.define('Message', {
type
:
{
type
:
DataTypes
.
INTEGER
,
allowNull
:
true
,
comment
:
"消息类型 1 系统消息 2 项目立项审批 3.项目决策审批 4. 项目再决策审批"
comment
:
`消息类型 1 系统消息
2 项目公司所属员工发起立项
5. 项目所属单位部门长核准通过 6.项目所属单位部门长核准不通过
7. 投管部经办人初审通过 8. 投管部经办人初审不通过
9. 投管部正副职复审通过 10. 投管部正副职复审不通过
3.发起项目决策审批 11.决策审批通过 12 决策审批未通过 4. 项目再决策审批 13.再决策审批通过 14.再决策审批未通过`
},
/**
* 其他待存字段
...
...
module/userModule.js
View file @
56ab2b08
...
...
@@ -131,20 +131,46 @@ async function setRoleMenu(roleId, menuIds, rolemenus) {
}
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});
async
function
getCompanyProjectApprover
(
userId
,
roleCode
)
{
roleCode
=
roleCode
||
"xmssdwbmz"
;
//暂时
// 获取投管部正副职tgbzfz的用户列表
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
users
=
await
DB
.
User
.
findAll
({
where
:
{
id
:
{[
Op
.
in
]:
userIds
}
}
});
return
users
;
}
async
function
getTouGuanJbrProjectApprover
(
userId
,
roleCode
)
{
roleCode
=
roleCode
||
"tgbjbr"
;
// 获取投管部正副职tgbzfz的用户列表
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
;
}
async
function
getTouGuanZfzProjectApprover
(
userId
,
roleCode
)
{
roleCode
=
roleCode
||
"tgbzfz"
;
// 获取投管部正副职tgbzfz的用户列表
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
});
return
[
user
];
let
users
=
await
DB
.
User
.
findAll
({
where
:
{
id
:
{[
Op
.
in
]:
userIds
}
}
});
return
users
;
}
module
.
exports
=
{
...
...
@@ -152,5 +178,7 @@ module.exports = {
setUserDepart
,
setUserPosition
,
setRoleMenu
,
getProjectApprover
,
getCompanyProjectApprover
,
getTouGuanJbrProjectApprover
,
getTouGuanZfzProjectApprover
,
}
\ No newline at end of file
router/projectRouter.js
View file @
56ab2b08
...
...
@@ -21,15 +21,14 @@ router.post('/saveProjectPreLixiang', projectController.saveProjectPreLixiang);
router
.
post
(
'/startLixiang'
,
projectController
.
startLixiang
);
//发起立项审批----TODO:待完成与能建对接
router
.
post
(
'/
queryLixiangResult'
,
projectController
.
queryLixiangResult
);
router
.
post
(
'/approvalLixiang'
,
projectController
.
approvalLixiang
);
router
.
post
(
'/
approvalLixiang'
,
projectController
.
approvalLixiangByDepartHeader
);
//部门长核准立项审批
router
.
post
(
'/approvalLixiang'
,
projectController
.
approvalLixiangByTouGuanJbr
);
//投管部经办人审批立项审批
router
.
post
(
'/approvalLixiang'
,
projectController
.
approvalLixiang
);
//立项审批---投管部正副职审批
// -----------------------接收能建立项结果信息,更新立项批复信息等字段------------------------------------------
router
.
post
(
'/saveJuece'
,
projectController
.
saveJuece
);
//决策保存
router
.
post
(
'/startJuece'
,
projectController
.
startJuece
);
//发起决策
router
.
post
(
'/queryJueceResult'
,
projectController
.
queryJueceResult
);
//查询决策审批结果
router
.
post
(
'/approvalJuece'
,
projectController
.
approvalJuece
);
// 财务评价
...
...
@@ -104,7 +103,7 @@ router.post('/getZdsxspInfo', projectTzController.getZdsxspInfo);
router
.
post
(
'/saveZaiJuece'
,
projectController
.
saveZaiJuece
);
//决策保存
router
.
post
(
'/startZaiJuece'
,
projectController
.
startZaiJuece
);
//发起决策
router
.
post
(
'/approvalZaiJuece'
,
projectController
.
approvalZaiJuece
);
// router.post('/queryJueceResult', projectController.queryJueceResult); //查询决策审批结果
//2.8 项目退出 ***
router
.
post
(
'/createXmtc'
,
projectTzController
.
createXmtc
);
...
...
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