Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yuyiAdminServer
Overview
Overview
Details
Activity
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
node_server
yuyiAdminServer
Commits
342957fb
Commit
342957fb
authored
May 17, 2025
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
eb85f2cf
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
166 additions
and
317 deletions
+166
-317
fuhua.ts
src/biz/fuhua.ts
+35
-221
mail.ts
src/biz/mail.ts
+81
-0
ruFu.ts
src/biz/ruFu.ts
+4
-0
zaiFu.ts
src/biz/zaiFu.ts
+18
-91
enum.ts
src/config/enum/enum.ts
+11
-0
errorEnum.ts
src/config/enum/errorEnum.ts
+4
-1
admin.ts
src/routers/admin.ts
+4
-4
system.ts
src/tools/system.ts
+9
-0
No files found.
src/biz/fuhua.ts
View file @
342957fb
...
@@ -168,13 +168,8 @@ export async function getOperateData(year) {
...
@@ -168,13 +168,8 @@ export async function getOperateData(year) {
"毕业企业数变化趋势"
:
{
"毕业企业数变化趋势"
:
{
"毕业企业"
:
[]
"毕业企业"
:
[]
},
},
// "出租率变化趋势": [],//换成在孵企业面积变化趋势
"企业需求新增趋势"
:
[],
// "在孵企业面积变化趋势":{
// "在孵面积":[]
// },
"在孵企业行业领域"
:
[],
"在孵企业行业领域"
:
[],
"在孵企业学历分布"
:
[]
// "孵化器收入": []
};
};
let
qushiConf
=
{
"01"
:
0
,
"02"
:
0
,
"03"
:
0
,
"04"
:
0
,
"05"
:
0
,
"06"
:
0
,
"07"
:
0
,
"08"
:
0
,
"09"
:
0
,
"10"
:
0
,
"11"
:
0
,
"12"
:
0
};
let
qushiConf
=
{
"01"
:
0
,
"02"
:
0
,
"03"
:
0
,
"04"
:
0
,
"05"
:
0
,
"06"
:
0
,
"07"
:
0
,
"08"
:
0
,
"09"
:
0
,
"10"
:
0
,
"11"
:
0
,
"12"
:
0
};
...
@@ -185,7 +180,6 @@ export async function getOperateData(year) {
...
@@ -185,7 +180,6 @@ export async function getOperateData(year) {
state
:
{
"%notIn%"
:
[
FUHUASTATE
.
迁出
]
}
state
:
{
"%notIn%"
:
[
FUHUASTATE
.
迁出
]
}
};
};
let
zaifuList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
zaifuParam
,
{});
let
zaifuList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
zaifuParam
,
{});
operateData
.
当前在孵企业数
=
zaifuList
.
length
;
operateData
.
当前在孵企业数
=
zaifuList
.
length
;
...
@@ -234,17 +228,6 @@ export async function getOperateData(year) {
...
@@ -234,17 +228,6 @@ export async function getOperateData(year) {
// .sort((a, b) => a.key - b.key);
// .sort((a, b) => a.key - b.key);
.
sort
((
a
,
b
)
=>
parseInt
(
a
.
key
)
-
parseInt
(
b
.
key
));
.
sort
((
a
,
b
)
=>
parseInt
(
a
.
key
)
-
parseInt
(
b
.
key
));
/**出租率 */
// let chuzulvParam = {startTime:{"%lt%":yearTime}, endTime:{"%gt%":yearTime}};
// // let chuzulvList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME., chuzulvParam);
// let chuzulvInfo = qushiConf;
// for(let key in chuzulvInfo) {
// operateData.出租率变化趋势.push({key, value:chuzulvInfo[key].toString()});
// }
// //X轴排序
// operateData.出租率变化趋势.sort( (a, b) => {
// return a.key - b.key;
// })
/**在孵企业租赁面积 */
/**在孵企业租赁面积 */
let
araeParam
=
{
column
:
[
"area"
,
"building"
,
"roomNumber"
,
"rent"
],
where
:
{}
};
let
araeParam
=
{
column
:
[
"area"
,
"building"
,
"roomNumber"
,
"rent"
],
where
:
{}
};
let
zaifuTableInfo
:
any
=
{};
let
zaifuTableInfo
:
any
=
{};
...
@@ -256,33 +239,6 @@ export async function getOperateData(year) {
...
@@ -256,33 +239,6 @@ export async function getOperateData(year) {
// zaifuTableInfo[TABLENAME.参保记录] = { column: ["zhuanKe", "benKe", "shuoshi", "boShi", "boshiyishang", "qiTa"], where: {} };
// zaifuTableInfo[TABLENAME.参保记录] = { column: ["zhuanKe", "benKe", "shuoshi", "boShi", "boshiyishang", "qiTa"], where: {} };
let
zaifuResList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
{},
[
"eId"
,
"industry"
],
zaifuTableInfo
);
let
zaifuResList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
{},
[
"eId"
,
"industry"
],
zaifuTableInfo
);
// // 新增:在孵企业面积变化趋势
// let zaifuAreaTrend = { ...qushiConf }; // 初始化每月累计面积为0
// zaifuResList.forEach(info => {
// info.enterprise_leases.forEach(lease => {
// let leaseEndTime = moment(lease.endTime);
// let year = leaseEndTime.format("YYYY");
// let month = leaseEndTime.format("MM");
// if (year === moment(yearTime).format("YYYY")) {
// zaifuAreaTrend[month] += parseFloat(lease.area);
// }
// });
// });
// // 转换为数组并排序
// for (let key in zaifuAreaTrend) {
// operateData.在孵企业面积变化趋势.在孵面积.push({ key, value: zaifuAreaTrend[key].toString() });
// }
// operateData.在孵企业面积变化趋势.在孵面积.sort((a, b) => parseInt(a.key) - parseInt(b.key));
/**在孵企业行业领域 */
// let araeParam = { column: ["area", "unitPrice", "roomNumber", "rent"], where: {} };
//将 industry 字符串转换为数组
//将 industry 字符串转换为数组
zaifuResList
.
forEach
(
info
=>
{
zaifuResList
.
forEach
(
info
=>
{
if
(
info
.
industry
)
{
if
(
info
.
industry
)
{
...
@@ -312,192 +268,45 @@ export async function getOperateData(year) {
...
@@ -312,192 +268,45 @@ export async function getOperateData(year) {
}
}
/**在孵企业学历分布(参保记录) */
/**企业需求新增趋势 */
let
educationDistribution
=
{};
//获取所有企业服务表联查企业信息表 applyTime:申请服务时间
for
(
let
key
in
DEGREE
)
{
let
企业服务
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业服务表
,
{
applyTime
:
{
"%lt%"
:
yearTime
}},
null
);
if
(
!
isNaN
(
Number
(
key
)))
continue
;
// 跳过数字键
educationDistribution
[
key
]
=
0
;
// 新增:统一统计每个月的数据
}
let
xuqiuInfo
=
{
...
qushiConf
};
// 初始化每月数据为0
企业服务
dbList
.
forEach
(
info
=>
{
let
applyTime
=
info
.
applyTime
;
if
(
!
applyTime
)
return
;
let
canbaoYear
=
moment
(
year
Time
).
format
(
"YYYY"
);
let
year
=
moment
(
apply
Time
).
format
(
"YYYY"
);
let
canbaoList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,{
annual
:
canbaoYear
},
null
);
let
month
=
moment
(
applyTime
).
format
(
"MM"
);
canbaoList
.
forEach
(
cb
=>
{
if
(
year
===
moment
(
yearTime
).
format
(
"YYYY"
))
{
if
(
cb
.
zhuanKe
)
educationDistribution
[
"专科"
]
+=
parseInt
(
cb
.
zhuanKe
);
xuqiuInfo
[
month
]
+=
1
;
if
(
cb
.
benKe
)
educationDistribution
[
"本科"
]
+=
parseInt
(
cb
.
benKe
);
}
if
(
cb
.
shuoshi
)
educationDistribution
[
"硕士"
]
+=
parseInt
(
cb
.
shuoshi
);
if
(
cb
.
boShi
)
educationDistribution
[
"博士"
]
+=
parseInt
(
cb
.
boShi
);
if
(
cb
.
boshiyishang
)
educationDistribution
[
"博士以上"
]
+=
parseInt
(
cb
.
boshiyishang
);
if
(
cb
.
qiTa
)
educationDistribution
[
"其他"
]
+=
parseInt
(
cb
.
qiTa
);
});
});
// 转换为数组并推入 operateData
operateData
.
企业需求新增趋势
=
Object
.
keys
(
xuqiuInfo
)
operateData
.
在孵企业学历分布
=
Object
.
entries
(
educationDistribution
).
map
(([
key
,
value
])
=>
({
.
map
(
key
=>
({
key
,
value
:
xuqiuInfo
[
key
].
toString
()
}))
key
,
.
sort
((
a
,
b
)
=>
parseInt
(
a
.
key
)
-
parseInt
(
b
.
key
));
value
:
value
.
toString
()
}));
// for(let i = 0; i < month.length; i++) {
// let fuwuMonth = 0;
// /**孵化器收入 */
// 企业服务dbList.forEach(info => {
// for (let key in INCOME) {
// // 检查企业申请时间的月份是否与当前月份相同
// let anyKey: any = key;
// let parsedStartTime = moment(info.applyTime); // 获取企业申请时间
// if (isNaN(anyKey)) {
// if (parsedStartTime.isValid() && moment(parsedStartTime).format("YY/MM") === month[i]) {
// operateData.孵化器收入.push({ key: anyKey, value: 0 });
// fuwuMonth += 1;
// }
// }
// }
// })
// qyxqfw.dataList.push({key:month[i], value:fuwuMonth});
// }
return
{
operateData
};
return
{
operateData
};
}
}
/**
* 风险预警
* 暂未接入数据库数据
*/
// export async function getRiskData() {
// let riskData = [
// {
// key:"出租率异常",
// value:0
// },
// {
// key:"办公地址冲突",
// value:0
// },
// {
// key:"连续未填报",
// value:0
// },
// ]
// return riskData;
// }
// export async function getRiskData() {
// let riskData = [
// {
// key: "迁出异常",
// value: 0
// },
// {
// key: "办公地址冲突",
// value: 0
// },
// {
// key: "连续未填报",
// value: 0
// },
// ];
// let bgdzctTable = {headerList:["", "", ""]}
// // 1. 获取所有迁出记录(state 为迁出)
// let zaifuList = await selectManyTableData(OPERATIONALDATATYPE.多表联查,TABLENAME.企业基础信息表,{},["eId", "enterpriseName"],
// {
// [TABLENAME.企业孵化信息]: {
// column: ["state", "moveOutTime", "moveOutType", "endTime"],
// where: { state: FUHUASTATE.迁出 }
// }
// }
// );
// let abnormalCount = 0;
// for (const info of zaifuList) {
// const incubationInfo = info.enterprise_fuhuas[0]; // 关联的孵化信息
// if (!incubationInfo || !incubationInfo.moveOutTime) continue;
// let moveOutTime = new Date(incubationInfo.moveOutTime);
// let endTime = info.enterprise_fuhuas[0].endTime ? new Date(info.enterprise_fuhuas[0].endTime) : null;
// // 1. 违约迁出
// let isBreachExit = incubationInfo.moveOutType === EMIGRATIONTYPE.违约退租;
// // 2. 未到期迁出(迁出早于孵化结束)
// let isEarlyExit = endTime && moveOutTime < endTime;
// // 如果满足任一异常条件,计为异常
// if (isBreachExit || isEarlyExit) {
// abnormalCount++;
// }
// }
// riskData[0].value = abnormalCount;
// // 2. 办公地址冲突(楼号 + 室号 + 时间段冲突)
// let 企业基础信息includeConf = {};
// 企业基础信息includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} }
// let leaseList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.租赁信息, {}, ["eId", "building", "roomNumber", "startTime", "endTime"], 企业基础信息includeConf);
// // let leaseList = await selectData(OPERATIONALDATATYPE.查询多个,TABLENAME.租赁信息,{},["eId", "building", "roomNumber", "startTime", "endTime"]);
// // 构建一个 map,key 是 building_roomNumber:楼号_室号,值是租赁时间段列表
// let addressMap = new Map<string, Array<{ eId: number; enterpriseName:string; start: Date; end: Date }>>();
// for (const lease of leaseList) {
// const key = `${lease.building}_${lease.roomNumber}`;
// const timeRange = {
// eId: lease.eId,
// enterpriseName: lease.enterprise.enterpriseName,
// start: new Date(lease.startTime),
// end: new Date(lease.endTime)
// };
// if (!addressMap.has(key)) {
// addressMap.set(key, []);
// }
// addressMap.get(key)?.push(timeRange);
// }
// let conflictCount = 0;
// let conflictList = [];
// // 遍历每个地址组合,检查时间段是否有重叠
// for (const [key, ranges] of addressMap.entries()) {
// for (let i = 0; i < ranges.length; i++) {
// for (let j = i + 1; j < ranges.length; j++) {
// const a = ranges[i];
// const b = ranges[j];
// // 判断时间段是否重叠
// if (a.start < b.end && b.start < a.end) {
// conflictCount++;
// conflictList.push([a.enterpriseName, b.enterpriseName, "同时间段内,地址相同"])
// break; // 当前地址组合已冲突,跳出循环
// }
// }
// }
// }
// riskData[1].value = conflictCount;
// // 3. 连续未填报(改进:在孵企业中没有任何经营数据)
// let selectParam = {state:STATE.是};
// /**在孵企业 当前时间小于孵化结束时间 */
// let araeParam = {column:["area", "unitPrice", "roomNumber", "rent", "startTime", "endTime"], where:{} };
// let zaifuTableInfo:any = {};
// zaifuTableInfo[TABLENAME.租赁信息] = araeParam;
// zaifuTableInfo[TABLENAME.企业孵化信息] = {column:["state", "startTime", "endTime"], where:{state:{"%ne%":FUHUASTATE.迁出}} };
// let allIncubatingEnterprises = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, selectParam, ["eId"], zaifuTableInfo );
// // 收集所有有填报记录的企业
// let reportedEnterprises = await selectData(OPERATIONALDATATYPE.查询多个,TABLENAME.企业经营信息,{},["eId"]);
// let reportedEIds = new Set(reportedEnterprises.map(e => e.eId));
// // 找出没有填报的在孵企业
// let continuousUnreported = new Set<number>();
// allIncubatingEnterprises.forEach(ent => {
// if (!reportedEIds.has(ent.eId)) {
// continuousUnreported.add(ent.eId);
// }
// });
// riskData[2].value = continuousUnreported.size;
// return riskData;
// }
export
async
function
getRiskData
()
{
export
async
function
getRiskData
()
{
let
yj
=
{
let
yj
=
{
高风险
:
0
,
高风险
:
0
,
...
@@ -538,8 +347,13 @@ export async function getRiskData() {
...
@@ -538,8 +347,13 @@ export async function getRiskData() {
]);
]);
});
});
let
yujiData
=
[];
for
(
let
key
in
yj
)
{
yujiData
.
push
({
key
,
value
:
yj
[
key
]});
}
return
{
return
{
y
j
,
y
ujiData
,
riskEnterprises
riskEnterprises
};
};
}
}
...
...
src/biz/mail.ts
0 → 100644
View file @
342957fb
import
{
OPERATIONALDATATYPE
,
TABLENAME
}
from
"../config/enum/dbEnum"
;
import
{
MAILTYPE
}
from
"../config/enum/enum"
;
import
{
ERRORENUM
}
from
"../config/enum/errorEnum"
;
import
{
selectData
}
from
"../data/operationalData"
;
import
{
successResult
}
from
"../tools/system"
;
import
{
BizError
}
from
"../util/bizError"
;
const
nodemailer
=
require
(
'nodemailer'
);
// 创建发送邮件的传输对象
let
transporter
=
nodemailer
.
createTransport
({
host
:
'smtp.qq.com'
,
// SMTP 服务器地址
port
:
465
,
// SMTP 服务器端口(通常是 465 或 587)
secure
:
true
,
// 使用 SSL
auth
:
{
user
:
'1685675085@qq.com'
,
// 你的邮箱地址
pass
:
'hppnsfvnzzhlbdfh'
// 你的邮箱密码或应用专用密码
}
});
async
function
send
(
toMail
,
name
,
type
,
code
?)
{
let
{
title
,
mailStr
}
=
getModel
(
name
,
type
,
code
);
// 设置邮件选项
let
mailOptions
=
{
from
:
'羽翼 <1685675085@qq.com>'
,
// 发送者地址
to
:
toMail
,
subject
:
`羽翼的
${
title
}
通知`
,
// 邮件主题
// text: 'Hello world?', // 邮件正文(纯文本)
html
:
mailStr
// 邮件正文(HTML 格式)
};
// new promises
return
new
Promise
((
resolve
,
reject
)
=>
{
transporter
.
sendMail
(
mailOptions
,
(
error
,
info
)
=>
{
if
(
error
)
{
throw
new
BizError
(
ERRORENUM
.
邮件发送失败
);
}
resolve
(
info
);
});
});
}
function
getModel
(
name
,
type
,
code
?)
{
let
str
=
""
;
let
title
=
""
;
switch
(
type
)
{
case
MAILTYPE
.
通过入孵材料审核
:
str
=
"您提交的企业材料审核成功,欢迎入驻羽翼孵化器。"
;
title
=
"审核通过"
;
break
;
}
let
mailStr
=
""
mailStr
+=
`<p>尊敬的
${
name
}
:</p>`
;
mailStr
+=
`<p>您好!</p>`
;
mailStr
+=
`<p>
${
str
}
</p>`
;
return
{
mailStr
,
title
};
}
/**
* 系统发送邮件
* @param userId
* @param type
*/
export
async
function
systemSendMail
(
eId
,
type
)
{
let
userInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
eId
},
[
"eId"
,
"enterpriseName"
,
"uscc"
,
"mail"
]);
if
(
!
userInfo
||
!
userInfo
.
eId
)
throw
new
BizError
(
ERRORENUM
.
企业不存在
);
if
(
!
userInfo
.
mail
)
{
new
BizError
(
ERRORENUM
.
该用户邮箱为空
,
eId
,
eId
.
enterpriseName
);
}
else
{
let
result
=
await
send
(
userInfo
.
mail
,
userInfo
.
enterpriseName
,
type
);
}
return
successResult
();
}
src/biz/ruFu.ts
View file @
342957fb
...
@@ -15,6 +15,7 @@ import { changeAdd, extractData } from "../util/piecemeal";
...
@@ -15,6 +15,7 @@ import { changeAdd, extractData } from "../util/piecemeal";
import
{
EnterpriseApplyForConfig
}
from
"../config/splitResult/enterprise"
;
import
{
EnterpriseApplyForConfig
}
from
"../config/splitResult/enterprise"
;
import
{
changeEnumValue
}
from
"../util/verificationEnum"
;
import
{
changeEnumValue
}
from
"../util/verificationEnum"
;
import
{
systemConfig
}
from
"../config/serverConfig"
;
import
{
systemConfig
}
from
"../config/serverConfig"
;
import
{
systemSendMail
}
from
"./mail"
;
//=======================================================新入孵企业
//=======================================================新入孵企业
...
@@ -485,6 +486,9 @@ export async function enterpriseRegisterExaminePass(eId:string) {
...
@@ -485,6 +486,9 @@ export async function enterpriseRegisterExaminePass(eId:string) {
let
yuyiList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
羽翼孵化器信息
,
{},
[]);
let
yuyiList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
羽翼孵化器信息
,
{},
[]);
if
(
在孵面积
!=
yuyiList
.
zaifuArea
)
await
operationalData
(
OPERATIONALDATATYPE
.
修改
,
TABLENAME
.
羽翼孵化器信息
,
{
zaifuArea
:
在孵面积
},
{
yId
:
yuyiList
.
yId
});
if
(
在孵面积
!=
yuyiList
.
zaifuArea
)
await
operationalData
(
OPERATIONALDATATYPE
.
修改
,
TABLENAME
.
羽翼孵化器信息
,
{
zaifuArea
:
在孵面积
},
{
yId
:
yuyiList
.
yId
});
//发送邮件
await
systemSendMail
(
eId
,
enumConfig
.
MAILTYPE
.
通过入孵材料审核
);
return
{
isSuccess
:
true
};
return
{
isSuccess
:
true
};
}
}
...
...
src/biz/zaiFu.ts
View file @
342957fb
...
@@ -18,14 +18,14 @@ import { BUILDING } from "../config/enum/enum";
...
@@ -18,14 +18,14 @@ import { BUILDING } from "../config/enum/enum";
* 在孵企业列表
* 在孵企业列表
* @param enterpriseName
* @param enterpriseName
* @param page
* @param page
* @param logonStartTime
* @param logonStartTime
注册开始时间
* @param logonEndTime
* @param logonEndTime
注册结束时间
* @param startTime
* @param startTime
租赁开始时间
* @param endTime
* @param endTime
租赁结束时间
* @param building
* @param building
园区楼号
* @returns
* @returns
*/
*/
export
async
function
enterpriseList
(
enterpriseName
:
string
,
page
:
number
,
logonStartTime
:
string
,
logonEndTime
:
string
,
startTime
:
number
,
endTime
:
number
,
building
:
number
)
{
export
async
function
enterpriseList
(
enterpriseName
:
string
,
page
:
number
,
logonStartTime
:
string
,
logonEndTime
:
string
,
building
:
number
)
{
let
selectParam
:
any
=
{
state
:
enumConfig
.
CHANGESTATE
.
已通过
};
let
selectParam
:
any
=
{
state
:
enumConfig
.
CHANGESTATE
.
已通过
};
if
(
enterpriseName
)
{
if
(
enterpriseName
)
{
selectParam
.
enterpriseName
=
{
"%like%"
:
enterpriseName
};
selectParam
.
enterpriseName
=
{
"%like%"
:
enterpriseName
};
...
@@ -38,39 +38,15 @@ export async function enterpriseList(enterpriseName:string, page:number, logonSt
...
@@ -38,39 +38,15 @@ export async function enterpriseList(enterpriseName:string, page:number, logonSt
let
filesList
=
[
"eId"
,
"enterpriseName"
,
"uscc"
,
"logonTime"
,
"logonAddress"
,
"qiYeGuiMo"
];
let
filesList
=
[
"eId"
,
"enterpriseName"
,
"uscc"
,
"logonTime"
,
"logonAddress"
,
"qiYeGuiMo"
];
// 子表配置:租赁信息
// 子表配置:租赁信息
let
leaseWhere
:
any
=
{};
let
leaseWhere
:
any
=
{};
if
(
building
)
leaseWhere
.
building
=
building
;
// if (startTime && endTime) {
// if (startTime && endTime) {
// if (!leaseWhere["%literal%"]) {
// leaseWhere["%literal%"] = `(enterprise_lease.startTime BETWEEN '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}'
// leaseWhere["%literal%"] = `(enterprise_lease.startTime between '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}'
// or enterprise_lease.endTime BETWEEN '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}') `;
// or enterprise_lease.endTime between '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}') `;
// }
// // leaseWhere["%or%"] = [
// // {startTime: { "%between%":[getMySqlMs(startTime), getMySqlMs(endTime)] }},
// // {endTime: { "%between%":[getMySqlMs(startTime), getMySqlMs(endTime)] }}
// // ]
// }
// if (building) {
// if (!leaseWhere["%literal%"]) {
// leaseWhere["%literal%"] = `enterprise_lease.building = '${building}'`;
// } else {
// leaseWhere["%literal%"] += ` and enterprise_lease.building = '${building}'`;
// }
// }
// }
// leaseWhere.building = building;
let
manyTableInfo
:
any
=
{};
let
manyTableInfo
:
any
=
{};
manyTableInfo
[
TABLENAME
.
租赁信息
]
=
{
column
:
[
"area"
,
"startTime"
,
"endTime"
,
"building"
,
"roomNumber"
],
where
:
leaseWhere
};
manyTableInfo
[
TABLENAME
.
租赁信息
]
=
{
column
:
[
"area"
,
"startTime"
,
"endTime"
,
"building"
,
"roomNumber"
],
where
:
leaseWhere
};
// manyTableInfo[TABLENAME.企业孵化信息] = {
// column: ["moveOutTime", "moveOutType", "startTime", "endTime"],
// where:
// // {"state": {"%ne%":enumConfig.FUHUASTATE.迁出}}
// {"%literal%": `enterprise_fuhuas.state <> ${enumConfig.FUHUASTATE.迁出}`}
// }
// 查询分页数据
let
resInfo
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表分页
,
TABLENAME
.
企业基础信息表
,
selectParam
,
filesList
,
manyTableInfo
,
page
);
let
resInfo
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表分页
,
TABLENAME
.
企业基础信息表
,
selectParam
,
filesList
,
manyTableInfo
,
page
);
// 查询总数
let
dataCount
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
selectParam
,
filesList
,
manyTableInfo
);
let
dataCount
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
selectParam
,
filesList
,
manyTableInfo
);
let
dataList
=
[];
let
dataList
=
[];
...
@@ -157,6 +133,7 @@ export async function enterpriseMoveOut(eId: string, moveOutType: number) {
...
@@ -157,6 +133,7 @@ export async function enterpriseMoveOut(eId: string, moveOutType: number) {
return
{
isSuccess
:
true
};
return
{
isSuccess
:
true
};
}
}
/**
/**
* 迁出企业列表
* 迁出企业列表
* @param enterpriseName
* @param enterpriseName
...
@@ -403,54 +380,6 @@ export async function enterpriseFinancingById(eId:string) {
...
@@ -403,54 +380,6 @@ export async function enterpriseFinancingById(eId:string) {
let
filesList
=
[
"enterpriseName"
,
"uscc"
];
let
filesList
=
[
"enterpriseName"
,
"uscc"
];
let
resInfo
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
{
eId
},
filesList
,
manyTableInfo
);
let
resInfo
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业基础信息表
,
{
eId
},
filesList
,
manyTableInfo
);
// let resData = [];
// resInfo.forEach( info => {
// let {enterpriseName, uscc, enterprise_financings} = info;
// resData.push({enterpriseName, uscc, enterprise_financings, investmentDate:new Date(enterprise_financings[0].investmentDate).valueOf()});
// })
// resData.sort( (a, b) => {
// return b.investmentDate - a.investmentDate;
// })
// let dataList = [];
// resData.forEach(info => {
// let {enterpriseName, uscc, enterprise_financings} = info;
// if (enterprise_financings.length != 0) {
// enterprise_financings.forEach( item => {
// let dataInfo = [
// {
// key:"企业名称",
// value:enterpriseName
// },
// {
// key:"统一信用代码",
// value:uscc
// },
// {
// key:"融资金额(万元)",
// value:item.financingAmount
// },
// {
// key:"融资轮次",
// value:changeEnumValue(enumConfig.FINANCINGROUNDS, item.financingRounds)
// },
// {
// key:"获得投资时间",
// value:moment(item.investmentDate).format("YYYY-MM-DD")
// },
// {
// key:"投资机构名称",
// value:item.investmentInstitutionsName
// },
// ]
// dataList.push(dataInfo);
// })
// }
// });
let
resData
=
[];
let
resData
=
[];
resInfo
.
forEach
(
info
=>
{
resInfo
.
forEach
(
info
=>
{
let
{
enterpriseName
,
uscc
,
enterprise_financings
}
=
info
;
let
{
enterpriseName
,
uscc
,
enterprise_financings
}
=
info
;
...
@@ -718,7 +647,7 @@ export async function enterpriseServiceById(eId:string) {
...
@@ -718,7 +647,7 @@ export async function enterpriseServiceById(eId:string) {
/**
/**
* 加了注册时间,租赁时间,园区楼号筛选的
* 加了注册时间,租赁时间,园区楼号筛选的
*/
*/
export
async
function
dwEnterpriseTable
(
enterpriseName
:
string
,
type
:
number
,
logonStartTime
:
string
,
logonEndTime
:
string
,
startTime
:
number
,
endTime
:
number
,
building
:
number
)
{
export
async
function
dwEnterpriseTable
(
enterpriseName
:
string
,
type
:
number
,
logonStartTime
:
string
,
logonEndTime
:
string
,
building
:
number
)
{
let
files
=
[{
key
:
"企业名称"
,
value
:
"enterpriseName"
},
let
files
=
[{
key
:
"企业名称"
,
value
:
"enterpriseName"
},
{
key
:
"统一信用代码"
,
value
:
"uscc"
},
{
key
:
"统一信用代码"
,
value
:
"uscc"
},
{
key
:
"注册时间"
,
value
:
"logonTime"
},
{
key
:
"注册时间"
,
value
:
"logonTime"
},
...
@@ -748,16 +677,14 @@ export async function dwEnterpriseTable(enterpriseName:string, type:number, logo
...
@@ -748,16 +677,14 @@ export async function dwEnterpriseTable(enterpriseName:string, type:number, logo
// 租赁信息表配置
// 租赁信息表配置
let
leaseWhere
:
any
=
{};
let
leaseWhere
:
any
=
{};
if
(
startTime
&&
endTime
)
{
//
if (startTime && endTime) {
if
(
!
leaseWhere
[
"%literal%"
])
{
//
if (!leaseWhere["%literal%"]) {
leaseWhere
[
"%literal%"
]
=
`(startTime between '
${
getMySqlMs
(
startTime
)}
' and '
${
getMySqlMs
(
endTime
)}
'
//
leaseWhere["%literal%"] = `(startTime between '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}'
or endTime between '
${
getMySqlMs
(
startTime
)}
' and '
${
getMySqlMs
(
endTime
)}
') `
;
//
or endTime between '${getMySqlMs(startTime)}' and '${getMySqlMs(endTime)}') `;
}
//
}
}
//
}
if
(
building
)
{
if
(
building
)
leaseWhere
.
building
=
building
;
leaseWhere
.
building
=
building
;
}
// 租赁信息表配置
// 租赁信息表配置
manyTableInfo
[
TABLENAME
.
租赁信息
]
=
{
manyTableInfo
[
TABLENAME
.
租赁信息
]
=
{
...
...
src/config/enum/enum.ts
View file @
342957fb
...
@@ -370,3 +370,14 @@ export enum RISKTYPE {
...
@@ -370,3 +370,14 @@ export enum RISKTYPE {
破产重整
=
2520
,
破产重整
=
2520
,
监管处罚
=
5050
监管处罚
=
5050
}
}
/**
* 邮件类型
*/
export
enum
MAILTYPE
{
通过入孵材料审核
=
1
,
}
src/config/enum/errorEnum.ts
View file @
342957fb
...
@@ -36,7 +36,10 @@ export enum ERRORENUM {
...
@@ -36,7 +36,10 @@ export enum ERRORENUM {
该企业已迁出
,
该企业已迁出
,
账号不存在
,
账号不存在
,
密码只能由
6
至
18
位字符和数字组成
,
密码只能由
6
至
18
位字符和数字组成
,
请上传所有入孵材料
请上传所有入孵材料
,
企业不存在
,
该用户邮箱为空
,
邮件发送失败
}
}
export
enum
ERRORCODEENUM
{
export
enum
ERRORCODEENUM
{
...
...
src/routers/admin.ts
View file @
342957fb
...
@@ -337,8 +337,8 @@ async function outPutTalentList(req, res) {
...
@@ -337,8 +337,8 @@ async function outPutTalentList(req, res) {
*/
*/
async
function
enterpriseList
(
req
,
res
)
{
async
function
enterpriseList
(
req
,
res
)
{
const
UserInfo
=
req
.
userInfo
;
const
UserInfo
=
req
.
userInfo
;
let
{
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
}
=
req
.
body
let
{
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
enterpriseList
(
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
);
let
result
=
await
zaiFuBiz
.
enterpriseList
(
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
building
);
res
.
success
(
result
);
res
.
success
(
result
);
}
}
...
@@ -430,8 +430,8 @@ async function enterpriseDetails(req, res) {
...
@@ -430,8 +430,8 @@ async function enterpriseDetails(req, res) {
* @param res
* @param res
*/
*/
async
function
dwEnterpriseList
(
req
,
res
)
{
async
function
dwEnterpriseList
(
req
,
res
)
{
let
{
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
}
=
req
.
body
let
{
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
dwEnterpriseTable
(
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
);
let
result
=
await
zaiFuBiz
.
dwEnterpriseTable
(
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
building
);
// let {enterpriseName, type, files} = req.body
// let {enterpriseName, type, files} = req.body
// let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files);
// let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files);
...
...
src/tools/system.ts
View file @
342957fb
...
@@ -8,6 +8,15 @@ import moment = require("moment");
...
@@ -8,6 +8,15 @@ import moment = require("moment");
import
pinyin
from
'pinyin'
;
import
pinyin
from
'pinyin'
;
const
md5
=
require
(
"md5"
);
const
md5
=
require
(
"md5"
);
/**
* 返回编辑正确的结果
* @returns
*/
export
function
successResult
()
{
return
{
success
:
true
}
}
/**
/**
* 生成任务草稿箱Id
* 生成任务草稿箱Id
...
...
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