明树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
fee1130b
Commit
fee1130b
authored
Mar 09, 2026
by
zfp1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
d9589f12
Pipeline
#108129
passed with stage
in 3 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
4 deletions
+40
-4
projectController.js
controller/projectController.js
+31
-2
index.js
db/index.js
+4
-0
flowRecord.js
db/model/system/flowRecord.js
+5
-2
No files found.
controller/projectController.js
View file @
fee1130b
...
@@ -137,6 +137,8 @@ async function createProject(req, res, next) {
...
@@ -137,6 +137,8 @@ async function createProject(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'创建项目'
,
actionName
:
'创建项目'
,
projectId
:
project
.
id
,
projectId
:
project
.
id
,
projectName
:
project
.
projectName
,
projectCode
:
project
.
projectCode
,
});
});
// if (req.body.buttonType === 'submit') {
// if (req.body.buttonType === 'submit') {
// await DB.FlowRecord.create({
// await DB.FlowRecord.create({
...
@@ -287,6 +289,8 @@ async function startLixiang(req, res, next) {
...
@@ -287,6 +289,8 @@ async function startLixiang(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'发起项目立项审批'
,
actionName
:
'发起项目立项审批'
,
projectId
:
req
.
body
.
id
,
projectId
:
req
.
body
.
id
,
projectName
:
req
.
body
.
projectName
,
projectCode
:
req
.
body
.
projectCode
,
});
});
//更新信息和状态
//更新信息和状态
...
@@ -296,6 +300,8 @@ async function startLixiang(req, res, next) {
...
@@ -296,6 +300,8 @@ async function startLixiang(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'发起项目立项'
,
actionName
:
'发起项目立项'
,
projectId
:
req
.
body
.
id
,
projectId
:
req
.
body
.
id
,
projectName
:
req
.
body
.
projectName
,
projectCode
:
req
.
body
.
projectCode
,
});
});
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmlx_sp'
);
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmlx_sp'
);
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
...
@@ -362,6 +368,8 @@ async function approvalLixiang(req, res, next) {
...
@@ -362,6 +368,8 @@ async function approvalLixiang(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'立项审批通过'
,
actionName
:
'立项审批通过'
,
projectId
:
proInfo
.
id
,
projectId
:
proInfo
.
id
,
projectName
:
proInfo
.
projectName
,
projectCode
:
proInfo
.
projectCode
,
content
:
req
.
body
.
approvalMessage
,
content
:
req
.
body
.
approvalMessage
,
});
});
}
else
{
}
else
{
...
@@ -371,6 +379,8 @@ async function approvalLixiang(req, res, next) {
...
@@ -371,6 +379,8 @@ async function approvalLixiang(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'立项审批未通过'
,
actionName
:
'立项审批未通过'
,
projectId
:
proInfo
.
id
,
projectId
:
proInfo
.
id
,
projectName
:
proInfo
.
projectName
,
projectCode
:
proInfo
.
projectCode
,
content
:
req
.
body
.
approvalMessage
,
content
:
req
.
body
.
approvalMessage
,
});
});
}
}
...
@@ -553,6 +563,8 @@ async function startJuece(req, res, next) {
...
@@ -553,6 +563,8 @@ async function startJuece(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'发起项目决策审批'
,
actionName
:
'发起项目决策审批'
,
projectId
:
req
.
body
.
id
,
projectId
:
req
.
body
.
id
,
projectName
:
req
.
body
.
projectName
,
projectCode
:
req
.
body
.
projectCode
,
});
});
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmjc_sp'
);
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmjc_sp'
);
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
...
@@ -613,6 +625,8 @@ async function approvalJuece(req, res, next) {
...
@@ -613,6 +625,8 @@ async function approvalJuece(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'决策审批通过'
,
actionName
:
'决策审批通过'
,
projectId
:
proInfo
.
id
,
projectId
:
proInfo
.
id
,
projectName
:
proInfo
.
projectName
,
projectCode
:
proInfo
.
projectCode
,
content
:
req
.
body
.
approvalMessage
,
content
:
req
.
body
.
approvalMessage
,
});
});
}
else
{
}
else
{
...
@@ -622,6 +636,8 @@ async function approvalJuece(req, res, next) {
...
@@ -622,6 +636,8 @@ async function approvalJuece(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'决策审批未通过'
,
actionName
:
'决策审批未通过'
,
projectId
:
proInfo
.
id
,
projectId
:
proInfo
.
id
,
projectName
:
proInfo
.
projectName
,
projectCode
:
proInfo
.
projectCode
,
content
:
req
.
body
.
approvalMessage
,
content
:
req
.
body
.
approvalMessage
,
});
});
}
}
...
@@ -1167,7 +1183,16 @@ async function getOwnProjects(req, res, next) {
...
@@ -1167,7 +1183,16 @@ async function getOwnProjects(req, res, next) {
async
function
getProFlowRecord
(
req
,
res
,
next
)
{
async
function
getProFlowRecord
(
req
,
res
,
next
)
{
try
{
try
{
let
rcs
=
await
DB
.
FlowRecord
.
findAll
({
where
:
{
projectId
:
req
.
body
.
projectId
}
});
let
rcs
=
await
DB
.
FlowRecord
.
findAll
({
where
:
{
projectId
:
req
.
body
.
projectId
||
req
.
body
.
id
},
include
:
[
{
model
:
DB
.
User
,
as
:
'creator'
,
attributes
:
[
"id"
,
"name"
]
}
]
});
return
res
.
sendData
(
rcs
);
return
res
.
sendData
(
rcs
);
}
catch
(
error
)
{
}
catch
(
error
)
{
next
(
error
);
next
(
error
);
...
@@ -1199,6 +1224,8 @@ async function startZaiJuece(req, res, next) {
...
@@ -1199,6 +1224,8 @@ async function startZaiJuece(req, res, next) {
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'发起项目再决策审批'
,
actionName
:
'发起项目再决策审批'
,
projectId
:
req
.
body
.
id
,
projectId
:
req
.
body
.
id
,
projectName
:
req
.
body
.
projectName
,
projectCode
:
req
.
body
.
projectCode
,
});
});
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmjc_sp'
);
let
approvers
=
await
userModule
.
getProjectApprover
(
req
.
user
.
id
,
'xmjc_sp'
);
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
if
(
!
(
approvers
&&
approvers
.
length
>
0
))
{
...
@@ -1231,7 +1258,9 @@ async function approvalZaiJuece(req, res, next) {
...
@@ -1231,7 +1258,9 @@ async function approvalZaiJuece(req, res, next) {
await
DB
.
FlowRecord
.
create
({
await
DB
.
FlowRecord
.
create
({
userId
:
req
.
user
.
id
,
userId
:
req
.
user
.
id
,
actionName
:
'再决策审批通过'
,
actionName
:
'再决策审批通过'
,
projectId
:
project
.
id
,
projectId
:
proInfo
.
id
,
projectName
:
proInfo
.
projectName
,
projectCode
:
proInfo
.
projectCode
,
});
});
}
else
{
}
else
{
//TODO:不确定
//TODO:不确定
...
...
db/index.js
View file @
fee1130b
...
@@ -248,6 +248,10 @@ Position.belongsToMany(User, {
...
@@ -248,6 +248,10 @@ Position.belongsToMany(User, {
as
:
'users'
as
:
'users'
});
});
/**用户-项目 1:n */
User
.
hasMany
(
FlowRecord
,
{
foreignKey
:
'userId'
,
as
:
'records'
});
FlowRecord
.
belongsTo
(
User
,
{
foreignKey
:
'userId'
,
as
:
'creator'
});
/**用户-项目 1:n */
/**用户-项目 1:n */
User
.
hasMany
(
Project
,
{
foreignKey
:
'projectCreator'
,
as
:
'createdProjects'
});
User
.
hasMany
(
Project
,
{
foreignKey
:
'projectCreator'
,
as
:
'createdProjects'
});
Project
.
belongsTo
(
User
,
{
foreignKey
:
'projectCreator'
,
as
:
'creator'
});
Project
.
belongsTo
(
User
,
{
foreignKey
:
'projectCreator'
,
as
:
'creator'
});
...
...
db/model/system/flowRecord.js
View file @
fee1130b
...
@@ -25,6 +25,9 @@ const flowRecord = sequelize.define('flowRecord', {
...
@@ -25,6 +25,9 @@ const flowRecord = sequelize.define('flowRecord', {
type
:
DataTypes
.
STRING
(
100
),
type
:
DataTypes
.
STRING
(
100
),
comment
:
"动作名称 发起项目复核 项目复核通过 项目复核退回 项目终审退回 项目终审通过 项目立项审批通过 项目立项审批不通过等"
comment
:
"动作名称 发起项目复核 项目复核通过 项目复核退回 项目终审退回 项目终审通过 项目立项审批通过 项目立项审批不通过等"
},
},
projectName
:
{
type
:
DataTypes
.
STRING
,},
projectCode
:
{
type
:
DataTypes
.
STRING
,},
projectId
:
{
projectId
:
{
type
:
DataTypes
.
INTEGER
,
type
:
DataTypes
.
INTEGER
,
comment
:
"项目ID"
comment
:
"项目ID"
...
@@ -41,9 +44,9 @@ const flowRecord = sequelize.define('flowRecord', {
...
@@ -41,9 +44,9 @@ const flowRecord = sequelize.define('flowRecord', {
// 同步模型到数据库(创建表)
// 同步模型到数据库(创建表)
flowRecord
.
sync
({
flowRecord
.
sync
({
force
:
false
,
//
force: false,
// force: true ,//会删除已存在表并重新创建
// force: true ,//会删除已存在表并重新创建
//
alter: true
alter
:
true
})
})
.
then
(()
=>
{
.
then
(()
=>
{
console
.
log
(
'flowRecord 表同步成功'
);
console
.
log
(
'flowRecord 表同步成功'
);
...
...
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