明树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
ee3bb209
Commit
ee3bb209
authored
Jan 12, 2026
by
zfp1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
aa2619d4
Pipeline
#105975
passed with stage
in 3 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
209 additions
and
3 deletions
+209
-3
projectTzController.js
controller/projectTzController.js
+24
-0
tzTzkz.js
db/model/jt/tzTzkz.js
+6
-2
tzTzkzAqzlhb.js
db/model/jt/tzTzkzAqzlhb.js
+71
-0
tzTzkzGq.js
db/model/jt/tzTzkzGq.js
+103
-0
tzTzkzJcpfyj.js
db/model/jt/tzTzkzJcpfyj.js
+5
-1
No files found.
controller/projectTzController.js
View file @
ee3bb209
...
@@ -199,11 +199,20 @@ async function createTzkz(req, res, next) {
...
@@ -199,11 +199,20 @@ async function createTzkz(req, res, next) {
flattenArr
.
push
(
ei
);
flattenArr
.
push
(
ei
);
}
}
}
}
//处理安全质量环保
let
tzkzaqzlhbs
=
(
req
.
body
.
tzkzaqzlhbs
||
[]).
map
(
o
=>
{
o
.
projectId
=
req
.
body
.
projectId
;
return
o
;
});
delete
req
.
body
.
tzkzaqzlhbs
;
//处理工期
let
tzkzgqs
=
(
req
.
body
.
tzkzgqs
||
[]).
map
(
o
=>
{
o
.
projectId
=
req
.
body
.
projectId
;
return
o
;
});
delete
req
.
body
.
tzkzgqs
;
//创建
//创建
await
DB
.
TzTzkzCwpj
.
bulkCreate
(
tzkzcwpjs
);
await
DB
.
TzTzkzCwpj
.
bulkCreate
(
tzkzcwpjs
);
await
DB
.
TzTzkzJcpfyj
.
bulkCreate
(
tzkzjcpfyjs
);
await
DB
.
TzTzkzJcpfyj
.
bulkCreate
(
tzkzjcpfyjs
);
await
DB
.
TzTzkzTzsy
.
bulkCreate
(
tzkztzsys
);
await
DB
.
TzTzkzTzsy
.
bulkCreate
(
tzkztzsys
);
await
DB
.
TzTzkzTzekz
.
bulkCreate
(
flattenArr
);
await
DB
.
TzTzkzTzekz
.
bulkCreate
(
flattenArr
);
await
DB
.
TzTzkzGq
.
bulkCreate
(
tzkzgqs
);
await
DB
.
TzTzkzAqzlhb
.
bulkCreate
(
tzkzaqzlhbs
);
let
ret
=
await
DB
.
TzTzkz
.
create
(
req
.
body
);
let
ret
=
await
DB
.
TzTzkz
.
create
(
req
.
body
);
return
res
.
sendData
(
ret
);
return
res
.
sendData
(
ret
);
}
catch
(
error
)
{
}
catch
(
error
)
{
...
@@ -262,6 +271,21 @@ async function updateTzkz(req, res, next) {
...
@@ -262,6 +271,21 @@ async function updateTzkz(req, res, next) {
await
Promise
.
all
(
infos3
.
map
(
item
=>
{
DB
.
TzTzkzTzekz
.
update
(
item
,
{
where
:
{
id
:
item
.
id
}
})
}));
await
Promise
.
all
(
infos3
.
map
(
item
=>
{
DB
.
TzTzkzTzekz
.
update
(
item
,
{
where
:
{
id
:
item
.
id
}
})
}));
delete
req
.
body
.
tzkztzekzs
;
delete
req
.
body
.
tzkztzekzs
;
//处理工期
let
ids4
=
[],
infos4
=
[],
newtzkzgqs
=
[];
req
.
body
.
tzkzgqs
.
map
(
o
=>
{
if
(
!
o
.
id
)
{
if
(
!
_
.
isEmpty
(
o
))
{
o
.
projectId
=
req
.
body
.
projectId
;
newtzkzgqs
.
push
(
o
);
}
}
else
{
ids4
.
push
(
o
.
id
);
infos4
.
push
(
o
);
}
return
o
});
await
DB
.
TzTzkzGq
.
destroy
({
where
:
{
projectId
:
req
.
body
.
projectId
,
id
:
{
[
Op
.
notIn
]:
ids4
}
}
});
// 删除id不在传入id数组里面的(用户在界面删除的)
await
DB
.
TzTzkzGq
.
bulkCreate
(
newtzkzgqs
);
//创建新的 没有id的
await
Promise
.
all
(
infos4
.
map
(
item
=>
{
DB
.
TzTzkzGq
.
update
(
item
,
{
where
:
{
id
:
item
.
id
}
})
}));
delete
req
.
body
.
tzkzgqs
;
//处理环保
let
ids5
=
[],
infos5
=
[],
newtzkzaqzlhbs
=
[];
req
.
body
.
tzkzaqzlhbs
.
map
(
o
=>
{
if
(
!
o
.
id
)
{
if
(
!
_
.
isEmpty
(
o
))
{
o
.
projectId
=
req
.
body
.
projectId
;
newtzkzaqzlhbs
.
push
(
o
);
}
}
else
{
ids5
.
push
(
o
.
id
);
infos5
.
push
(
o
);
}
return
o
});
await
DB
.
TzTzkzAqzlhb
.
destroy
({
where
:
{
projectId
:
req
.
body
.
projectId
,
id
:
{
[
Op
.
notIn
]:
ids5
}
}
});
// 删除id不在传入id数组里面的(用户在界面删除的)
await
DB
.
TzTzkzAqzlhb
.
bulkCreate
(
newtzkzaqzlhbs
);
//创建新的 没有id的
await
Promise
.
all
(
infos5
.
map
(
item
=>
{
DB
.
TzTzkzAqzlhb
.
update
(
item
,
{
where
:
{
id
:
item
.
id
}
})
}));
delete
req
.
body
.
tzkzaqzlhbs
;
await
DB
.
TzTzkz
.
update
(
req
.
body
,
{
where
:
{
id
:
req
.
body
.
id
}
});
await
DB
.
TzTzkz
.
update
(
req
.
body
,
{
where
:
{
id
:
req
.
body
.
id
}
});
return
res
.
sendData
();
return
res
.
sendData
();
}
catch
(
error
)
{
}
catch
(
error
)
{
...
...
db/model/jt/tzTzkz.js
View file @
ee3bb209
...
@@ -29,6 +29,10 @@ const TzTzkz = sequelize.define('TzTzkz', {
...
@@ -29,6 +29,10 @@ const TzTzkz = sequelize.define('TzTzkz', {
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
}
},
},
qtqksm
:
{
type
:
DataTypes
.
TEXT
,
comment
:
"其他情况说明 这个字段和下面上传字段 两个字段放置于在工期、环保表得下方"
,
},
qtjsmbzdpc
:
{
qtjsmbzdpc
:
{
type
:
DataTypes
.
JSON
,
type
:
DataTypes
.
JSON
,
comment
:
"其他建设目标重大偏差----文件上传"
,
comment
:
"其他建设目标重大偏差----文件上传"
,
...
@@ -66,9 +70,9 @@ const TzTzkz = sequelize.define('TzTzkz', {
...
@@ -66,9 +70,9 @@ const TzTzkz = sequelize.define('TzTzkz', {
// 同步模型到数据库(创建表)
// 同步模型到数据库(创建表)
TzTzkz
.
sync
({
TzTzkz
.
sync
({
force
:
false
,
//
force: false,
// force: true ,//会删除已存在表并重新创建
// force: true ,//会删除已存在表并重新创建
//
alter: true
alter
:
true
})
})
.
then
(()
=>
{
.
then
(()
=>
{
console
.
log
(
'TzTzkz 表同步成功'
);
console
.
log
(
'TzTzkz 表同步成功'
);
...
...
db/model/jt/tzTzkzAqzlhb.js
0 → 100644
View file @
ee3bb209
const
{
DataTypes
}
=
require
(
'sequelize'
);
const
sequelize
=
require
(
'../index'
);
const
moment
=
require
(
'moment'
);
//投中管理-投资控制 -安全质量环保
const
TzTzkzAqzlhb
=
sequelize
.
define
(
'TzTzkzAqzlhb'
,
{
id
:
{
type
:
DataTypes
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
jlkglsc
:
{
type
:
DataTypes
.
STRING
(
2000
),
comment
:
"目标描述"
},
ly
:
{
type
:
DataTypes
.
STRING
,
comment
:
"来源(管理策划、会议纪要、其他要求等) "
},
sffsaqzlhbwt
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"是否发生安全质量环保问题被行政处罚"
,
},
// tzkzId: {
// type: DataTypes.INTEGER,
// comment: "所属投资控制主表id",
// },
projectId
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"所属项目ID"
,
},
del
:
{
type
:
DataTypes
.
INTEGER
,
defaultValue
:
0
,
comment
:
"0 正常 1 删除"
},
createdAt
:
{
type
:
DataTypes
.
DATE
,
defaultValue
:
new
Date
(),
get
()
{
const
rawValue
=
this
.
getDataValue
(
'createdAt'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
},
updatedAt
:
{
// 同样处理 updatedAt
type
:
DataTypes
.
DATE
,
defaultValue
:
new
Date
(),
get
()
{
const
rawValue
=
this
.
getDataValue
(
'updatedAt'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
}
},
{
tableName
:
'jt_tz_tzkzaqzlhb'
,
// 指定表名(如果与模型名不同)
timestamps
:
true
,
// 是否自动添加 createdAt 和 updatedAt 字段(覆盖全局设置)
});
// 同步模型到数据库(创建表)
TzTzkzAqzlhb
.
sync
({
force
:
false
,
// force: true ,//会删除已存在表并重新创建
// alter: true
})
.
then
(()
=>
{
console
.
log
(
'TzTzkzAqzlhb 表同步成功'
);
});
module
.
exports
=
TzTzkzAqzlhb
;
\ No newline at end of file
db/model/jt/tzTzkzGq.js
0 → 100644
View file @
ee3bb209
const
{
DataTypes
}
=
require
(
'sequelize'
);
const
sequelize
=
require
(
'../index'
);
const
moment
=
require
(
'moment'
);
//投中管理-投资控制 -工期
const
TzTzkzGq
=
sequelize
.
define
(
'TzTzkzGq'
,
{
id
:
{
type
:
DataTypes
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
jlkglsc
:
{
type
:
DataTypes
.
JSON
,
comment
:
"监理开工令上传"
},
sgxkzsc
:
{
type
:
DataTypes
.
JSON
,
comment
:
"行业主管部门施工许可证上传 "
},
kglsj
:
{
type
:
DataTypes
.
DATE
,
comment
:
"填报监理开工令开工时间"
,
get
()
{
const
rawValue
=
this
.
getDataValue
(
'kglsj'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD'
)
:
''
;
}
},
sgxksj
:
{
type
:
DataTypes
.
DATE
,
comment
:
"施工许可时间"
,
get
()
{
const
rawValue
=
this
.
getDataValue
(
'sgxksj'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD'
)
:
''
;
}
},
yjsjwgsj
:
{
type
:
DataTypes
.
DATE
,
comment
:
"预计/实际完工时间"
,
get
()
{
const
rawValue
=
this
.
getDataValue
(
'yjsjwgsj'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
},
htgqydms
:
{
type
:
DataTypes
.
TEXT
,
comment
:
"合同工期约定描述"
},
gqywsm
:
{
type
:
DataTypes
.
TEXT
,
comment
:
"工期延误说明"
},
gqtqsm
:
{
type
:
DataTypes
.
TEXT
,
comment
:
"工期提前说明。"
},
// tzkzId: {
// type: DataTypes.INTEGER,
// comment: "所属投资控制主表id",
// },
projectId
:
{
type
:
DataTypes
.
INTEGER
,
comment
:
"所属项目ID"
,
},
del
:
{
type
:
DataTypes
.
INTEGER
,
defaultValue
:
0
,
comment
:
"0 正常 1 删除"
},
createdAt
:
{
type
:
DataTypes
.
DATE
,
defaultValue
:
new
Date
(),
get
()
{
const
rawValue
=
this
.
getDataValue
(
'createdAt'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
},
updatedAt
:
{
// 同样处理 updatedAt
type
:
DataTypes
.
DATE
,
defaultValue
:
new
Date
(),
get
()
{
const
rawValue
=
this
.
getDataValue
(
'updatedAt'
);
return
rawValue
?
moment
(
rawValue
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
;
}
}
},
{
tableName
:
'jt_tz_tzkzgq'
,
// 指定表名(如果与模型名不同)
timestamps
:
true
,
// 是否自动添加 createdAt 和 updatedAt 字段(覆盖全局设置)
});
// 同步模型到数据库(创建表)
TzTzkzGq
.
sync
({
force
:
false
,
// force: true ,//会删除已存在表并重新创建
// alter: true
})
.
then
(()
=>
{
console
.
log
(
'TzTzkzGq 表同步成功'
);
});
module
.
exports
=
TzTzkzGq
;
\ No newline at end of file
db/model/jt/tzTzkzJcpfyj.js
View file @
ee3bb209
...
@@ -36,7 +36,7 @@ const TzTzkzJcpfyj = sequelize.define('TzTzkzJcpfyj', {
...
@@ -36,7 +36,7 @@ const TzTzkzJcpfyj = sequelize.define('TzTzkzJcpfyj', {
},
},
ssjd
:
{
ssjd
:
{
type
:
DataTypes
.
STRING
,
type
:
DataTypes
.
STRING
,
comment
:
"实施阶段"
comment
:
"实施阶段
实施前落实,实施中落实
"
},
},
pfnr
:
{
pfnr
:
{
type
:
DataTypes
.
TEXT
,
type
:
DataTypes
.
TEXT
,
...
@@ -82,6 +82,10 @@ const TzTzkzJcpfyj = sequelize.define('TzTzkzJcpfyj', {
...
@@ -82,6 +82,10 @@ const TzTzkzJcpfyj = sequelize.define('TzTzkzJcpfyj', {
type
:
DataTypes
.
TEXT
,
type
:
DataTypes
.
TEXT
,
comment
:
"备注"
comment
:
"备注"
},
},
wjsc
:
{
type
:
DataTypes
.
JSON
,
comment
:
"文件上传"
},
// tzkzId: {
// tzkzId: {
// type: DataTypes.INTEGER,
// type: DataTypes.INTEGER,
...
...
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