Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zjxcxServer
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
zjxcxServer
Commits
3cd6bda6
Commit
3cd6bda6
authored
May 19, 2023
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
3.1归档
parent
3f3c0f7f
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
1231 additions
and
85 deletions
+1231
-85
information.ts
src/biz/admin/information.ts
+24
-6
policy.ts
src/biz/mobileEnterprise/policy.ts
+5
-2
base.ts
src/biz/mobileFuHuaQi/fuHuaQi/base.ts
+1
-2
fuHuaQiBusiness.ts
src/biz/mobileFuHuaQi/fuHuaQi/fuHuaQiBusiness.ts
+99
-0
institutionalNature.ts
src/biz/mobileFuHuaQi/fuHuaQi/institutionalNature.ts
+158
-0
month.ts
src/biz/mobileFuHuaQi/fuHuaQi/month.ts
+0
-1
monthTask.ts
src/biz/mobileFuHuaQi/fuHuaQi/task/monthTask.ts
+15
-14
quarterTask.ts
src/biz/mobileFuHuaQi/fuHuaQi/task/quarterTask.ts
+271
-0
systemTask.ts
src/biz/systemTask.ts
+43
-27
eccFormParamConfig.ts
src/config/eccFormParamConfig.ts
+17
-0
enum.ts
src/config/enum.ts
+11
-3
errorEnum.ts
src/config/errorEnum.ts
+6
-1
splitResultConfig.ts
src/config/splitResultConfig.ts
+14
-0
enterprise.ts
src/data/enterprise/enterprise.ts
+1
-0
fuhuaqi.ts
src/data/fuHuaQi/fuhuaqi.ts
+11
-7
i18nRegister.ts
src/data/fuHuaQi/i18nRegister.ts
+58
-0
task.ts
src/data/fuHuaQi/monthTask/task.ts
+5
-1
businessData.ts
src/data/fuHuaQi/quarterTask/businessData.ts
+66
-0
quarterTask.ts
src/data/fuHuaQi/quarterTask/quarterTask.ts
+38
-9
tableInit.ts
src/db/mongo/tableInit.ts
+11
-1
main.ts
src/main.ts
+1
-3
fuHuaQi.ts
src/routers/admin/fuHuaQi.ts
+1
-1
information.ts
src/routers/admin/information.ts
+6
-1
business.ts
src/routers/mobileClient/business.ts
+72
-0
fuHuaQi.ts
src/routers/mobileClient/fuHuaQi.ts
+76
-4
institutionalNature.ts
src/routers/mobileClient/institutionalNature.ts
+168
-0
router.ts
src/routers/router.ts
+4
-0
system.ts
src/tools/system.ts
+49
-2
No files found.
src/biz/admin/information.ts
View file @
3cd6bda6
...
...
@@ -4,7 +4,7 @@
import
moment
=
require
(
"moment"
);
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
createInformation
,
deleteInformationData
,
selectInformationByParam
,
selectInformationDataById
}
from
"../../data/guanWeiHui/information"
;
import
{
createInformation
,
deleteInformationData
,
selectInformationByParam
,
selectInformation
ByParamCount
,
selectInformationByParamToPage
,
selectInformation
DataById
}
from
"../../data/guanWeiHui/information"
;
import
{
getInformationId
}
from
"../../tools/system"
;
import
{
BizError
}
from
"../../util/bizError"
;
...
...
@@ -28,6 +28,7 @@ export async function openInformation(id:string, isPermanent:boolean, closeTimeM
informationData
.
isPermanent
=
isPermanent
;
informationData
.
closeTimeMs
=
closeTimeMs
;
informationData
.
state
=
true
;
await
informationData
.
save
();
...
...
@@ -38,8 +39,7 @@ export async function openInformation(id:string, isPermanent:boolean, closeTimeM
export
async
function
closeInformation
(
id
:
string
)
{
let
informationData
=
await
selectInformationDataById
(
id
);
informationData
.
switch
=
true
;
informationData
.
state
=
false
;
await
informationData
.
save
();
return
{
isSuccess
:
true
};
...
...
@@ -90,8 +90,26 @@ export async function updateOnceInformation(id:string, desc:string, title:string
}
export
async
function
selectInformation
()
{
let
dataBaseList
=
await
selectInformationByParam
({});
export
async
function
selectInformation
(
selectTitle
:
string
,
createTime
:
number
,
state
:
number
,
page
:
number
)
{
let
selectParam
=
{};
if
(
state
==
2
||
state
==
3
)
{
if
(
state
==
2
)
{
selectParam
=
{
state
:
true
,
"$or"
:[{
closeTimeMs
:
{
"$gt"
:
new
Date
().
valueOf
()}
},
{
isPermanent
:
true
}]
};
}
else
{
selectParam
=
{
"$or"
:[{
closeTimeMs
:
{
"$lt"
:
new
Date
().
valueOf
()}
},
{
state
:
false
}]
};
}
}
if
(
selectTitle
)
{
selectParam
[
"title"
]
=
{
"$regex"
:
`
${
selectTitle
}
`
};
}
if
(
createTime
)
{
selectParam
[
"$and"
]
=
[{
"createTimeMs"
:{
"$gt"
:
createTime
}},
{
"createTimeMs"
:{
"$lt"
:
createTime
+
(
3600
*
26
*
1000
)
}}]
}
let
dataBaseList
=
await
selectInformationByParamToPage
(
selectParam
,
(
page
-
1
)
*
10
);
let
count
=
await
selectInformationByParamCount
(
selectParam
);
let
pageCount
=
count
?
Math
.
ceil
(
count
/
10
)
:
0
;
let
dataList
=
[];
dataBaseList
.
forEach
(
info
=>
{
...
...
@@ -111,5 +129,5 @@ export async function selectInformation() {
});
});
return
{
dataList
};
return
{
dataList
,
pageCount
,
count
};
}
src/biz/mobileEnterprise/policy.ts
View file @
3cd6bda6
...
...
@@ -23,6 +23,8 @@ export async function getInformationList(uscc:string, selectTitle:string, page:n
}
let
informationList
=
await
selectInformationByParamToPage
(
selectParam
,
(
page
-
1
)
*
10
);
let
count
=
await
selectInformationByParamCount
(
selectParam
);
let
pageCount
=
count
?
Math
.
ceil
(
count
/
10
)
:
0
;
let
dataList
=
[];
informationList
.
forEach
((
info
)
=>
{
...
...
@@ -32,7 +34,7 @@ export async function getInformationList(uscc:string, selectTitle:string, page:n
});
return
{
dataList
,
count
};
return
{
dataList
,
count
,
pageCount
};
}
...
...
@@ -51,6 +53,7 @@ export async function getOutOfDateInformationList(uscc:string, selectTitle:strin
}
let
informationList
=
await
selectInformationByParamToPage
(
selectParam
,
(
page
-
1
)
*
10
);
let
count
=
await
selectInformationByParamCount
(
selectParam
);
let
pageCount
=
count
?
Math
.
ceil
(
count
/
10
)
:
0
;
let
dataList
=
[];
informationList
.
forEach
((
info
)
=>
{
...
...
@@ -60,7 +63,7 @@ export async function getOutOfDateInformationList(uscc:string, selectTitle:strin
});
return
{
dataList
,
count
};
return
{
dataList
,
count
,
pageCount
};
}
...
...
src/biz/mobileFuHuaQi/fuHuaQi/base.ts
View file @
3cd6bda6
...
...
@@ -17,6 +17,7 @@ import { changeEnumValue, eccEnumValue } from "../../../util/verificationEnum";
import
*
as
scoreBiz
from
"./score"
;
/**
* 主界面基础数据
* 小程序端 首页的基础数据
...
...
@@ -196,5 +197,3 @@ export async function updateOrganizationData(uscc:string, param) {
return
{
isSuccess
:
true
};
}
src/biz/mobileFuHuaQi/fuHuaQi/fuHuaQiBusiness.ts
0 → 100644
View file @
3cd6bda6
/**
* 孵化器经营数据填报
*
*/
import
{
FuHuaQiBusinessDataConfig
}
from
"../../../config/eccFormParamConfig"
;
import
{
ERRORENUM
}
from
"../../../config/errorEnum"
;
import
{
FuHuaQiBusinessDataInfoConfig
}
from
"../../../config/splitResultConfig"
;
import
{
findBusinessByTaskId
}
from
"../../../data/fuHuaQi/quarterTask/businessData"
;
import
*
as
sysTools
from
"../../../tools/system"
;
import
{
BizError
}
from
"../../../util/bizError"
;
import
{
extractData
}
from
"../../../util/piecemeal"
;
import
{
eccFormParam
}
from
"../../../util/verificationParam"
;
/**
* 新添加孵化器经营数据填报
* 小程序端
* 逻辑是 将填报编辑状态修改为true 当库里=true时
* @param uscc 孵化器的统一信用代码
* @param param
* @returns {isSuccess:true/false}
*/
export
async
function
createBusiness
(
uscc
:
string
,
param
)
{
const
TaskId
=
sysTools
.
getQuarterTaskId
(
uscc
);
eccFormParam
(
"新添加孵化器季度填报"
,
FuHuaQiBusinessDataConfig
,
param
);
let
businessInfo
=
await
findBusinessByTaskId
(
TaskId
);
/**不可以重复创建 */
if
(
businessInfo
.
isUpdate
)
throw
new
BizError
(
ERRORENUM
.
该孵化器经营数据填报已存在
,
`孵化器
${
uscc
}
重复提交了经营数据`
);
/**更新状态和数据 */
businessInfo
.
isUpdate
=
true
;
for
(
let
key
in
param
)
{
businessInfo
[
key
]
=
param
[
key
];
}
await
businessInfo
.
save
();
return
{
isSuccess
:
true
};
}
export
async
function
deleteBusiness
(
uscc
:
string
)
{
const
TaskId
=
sysTools
.
getQuarterTaskId
(
uscc
);
let
businessInfo
=
await
findBusinessByTaskId
(
TaskId
);
/**删除校验 */
if
(
!
businessInfo
.
isUpdate
)
throw
new
BizError
(
ERRORENUM
.
未填报数据不能删除
,
`孵化器
${
uscc
}
删除经营数据时经营数据不存在`
);
if
(
businessInfo
.
draftLock
)
throw
new
BizError
(
ERRORENUM
.
已提交的数据不能进行操作
,
`孵化器
${
uscc
}
尝试 删除 已经提交的经营数据`
);
/**更新状态和数据 */
businessInfo
.
isUpdate
=
false
;
for
(
let
key
in
FuHuaQiBusinessDataConfig
)
{
businessInfo
[
key
]
=
0
;
}
await
businessInfo
.
save
();
return
{
isSuccess
:
true
};
}
export
async
function
selectBusiness
(
uscc
:
string
)
{
const
TaskId
=
sysTools
.
getQuarterTaskId
(
uscc
);
let
businessInfo
=
await
findBusinessByTaskId
(
TaskId
);
/**不可以重复创建 */
if
(
!
businessInfo
.
isUpdate
)
throw
new
BizError
(
ERRORENUM
.
请先填报数据
,
`孵化器
${
uscc
}
调用回显接口时经营数据不存在`
);
if
(
businessInfo
.
draftLock
)
throw
new
BizError
(
ERRORENUM
.
已提交的数据不能进行操作
,
`孵化器
${
uscc
}
尝试 回显 已经提交的经营数据`
);
let
businessData
=
extractData
(
FuHuaQiBusinessDataInfoConfig
,
businessInfo
,
false
)
return
{
businessData
};
}
export
async
function
updateBusiness
(
uscc
:
string
,
param
)
{
const
TaskId
=
sysTools
.
getQuarterTaskId
(
uscc
);
eccFormParam
(
"修改孵化器季度填报"
,
FuHuaQiBusinessDataConfig
,
param
);
let
businessInfo
=
await
findBusinessByTaskId
(
TaskId
);
/**不可以重复创建 */
if
(
!
businessInfo
.
isUpdate
)
throw
new
BizError
(
ERRORENUM
.
请先填报数据
,
`孵化器
${
uscc
}
调用修改接口时经营数据不存在`
);
if
(
businessInfo
.
draftLock
)
throw
new
BizError
(
ERRORENUM
.
已提交的数据不能进行操作
,
`孵化器
${
uscc
}
尝试 修改 已经提交的经营数据`
);
/**更新状态和数据 */
for
(
let
key
in
param
)
{
businessInfo
[
key
]
=
param
[
key
];
}
await
businessInfo
.
save
();
return
{
isSuccess
:
true
};
}
\ No newline at end of file
src/biz/mobileFuHuaQi/fuHuaQi/institutionalNature.ts
0 → 100644
View file @
3cd6bda6
/**
* 孵化器 机构资质
*
*/
import
*
as
fuhuaqiData
from
"../../../data/fuHuaQi/fuhuaqi"
;
import
{
getI18nRegisterId
}
from
"../../../tools/system"
;
import
{
addRegister
,
deleteI18nRegisterListById
,
findI18nRegisterListByParam
,
findOneI18nRegister
}
from
"../../../data/fuHuaQi/i18nRegister"
;
/**
* 创建国际化登记
* @param uscc 企业统一信用代码
* @param country 国家
* @param partners 合作机构
* @param cMode 合作方式
* @param cAchievements 合作成果
* @returns
*/
export
async
function
createI18nRegister
(
uscc
:
string
,
country
:
string
,
partners
:
string
,
cMode
:
string
,
cAchievements
:
string
)
{
let
fuHuaQiInfo
=
await
fuhuaqiData
.
findFuHuaQiByUSCC
(
uscc
);
let
id
=
getI18nRegisterId
(
uscc
);
await
addRegister
(
id
,
uscc
,
fuHuaQiInfo
.
name
,
country
,
partners
,
cMode
,
cAchievements
);
return
{
isSuccess
:
true
};
}
/**
* 修改国际化登记
* @param uscc 企业统一信用代码
* @param id 标识
* @param country 国家
* @param partners 合作机构
* @param cMode 合作方式
* @param cAchievements 合作成果
* @returns
*/
export
async
function
updateI18nRegister
(
uscc
:
string
,
id
:
string
,
country
:
string
,
partners
:
string
,
cMode
:
string
,
cAchievements
:
string
)
{
let
registerInfo
=
await
findOneI18nRegister
(
id
);
registerInfo
.
country
=
country
;
registerInfo
.
partners
=
partners
;
registerInfo
.
cMode
=
cMode
;
registerInfo
.
cAchievements
=
cAchievements
;
await
registerInfo
.
save
();
return
{
isSuccess
:
true
};
}
export
async
function
selectI18nRegisterInfo
(
id
:
string
)
{
let
registerInfo
=
await
findOneI18nRegister
(
id
);
let
registerData
=
{
country
:
registerInfo
.
country
,
partners
:
registerInfo
.
partners
,
cMode
:
registerInfo
.
cMode
,
cAchievements
:
registerInfo
.
cAchievements
,
};
return
{
registerData
}
}
export
async
function
deleteI18nRegisterInfo
(
id
:
string
)
{
await
deleteI18nRegisterListById
(
id
);
return
{
isSuccess
:
true
}
}
export
async
function
i18nRegisterListData
(
uscc
)
{
let
registerList
=
await
findI18nRegisterListByParam
({
uscc
});
let
dataList
=
[];
registerList
.
forEach
(
info
=>
{
dataList
.
push
({
id
:
info
.
id
,
country
:
info
.
country
,
partners
:
info
.
partners
,
cMode
:
info
.
cMode
,
cAchievements
:
info
.
cAchievements
,
});
});
return
{
dataList
}
}
/**
* 修改创投基金登记信息
* @param uscc
* @param isCreatePTP
* @param scalePTP
* @param isParticipateInPTP
*/
export
async
function
updatePTPInfo
(
uscc
:
string
,
isCreatePTP
:
boolean
,
scalePTP
:
number
,
isParticipateInPTP
:
boolean
)
{
let
fuHuaQiInfo
=
await
fuhuaqiData
.
findFuHuaQiByUSCC
(
uscc
);
fuHuaQiInfo
.
isCreatePTP
=
isCreatePTP
;
fuHuaQiInfo
.
scalePTP
=
scalePTP
;
fuHuaQiInfo
.
isParticipateInPTP
=
isParticipateInPTP
;
await
fuHuaQiInfo
.
save
();
return
{
isSuccess
:
true
};
}
export
async
function
getFuHuaQiPTP
(
uscc
:
string
)
{
let
fuHuaQiInfo
=
await
fuhuaqiData
.
findFuHuaQiByUSCC
(
uscc
);
let
PTPInfo
=
{
isCreatePTP
:
fuHuaQiInfo
.
isCreatePTP
,
scalePTP
:
fuHuaQiInfo
.
scalePTP
,
isParticipateInPTP
:
fuHuaQiInfo
.
isParticipateInPTP
,
};
return
{
PTPInfo
};
}
export
async
function
updateProfessionalTechnology
(
uscc
:
string
,
isProfessionalTechnology
:
boolean
,
professionalTechnologyName
:
String
,
professionalTechnologyCreateTime
:
number
,
professionalTechnologyAmount
:
number
,
isCooperation
:
boolean
,
cooperationInstitutions
:
string
)
{
let
fuHuaQiInfo
=
await
fuhuaqiData
.
findFuHuaQiByUSCC
(
uscc
);
fuHuaQiInfo
.
isProfessionalTechnology
=
isProfessionalTechnology
;
//是否专业技术平台
fuHuaQiInfo
.
professionalTechnologyName
=
professionalTechnologyName
;
//专业技术平台名称
fuHuaQiInfo
.
professionalTechnologyCreateTime
=
professionalTechnologyCreateTime
;
//时间 年份 xxxx年01月01日 的时间戳
fuHuaQiInfo
.
professionalTechnologyAmount
=
professionalTechnologyAmount
;
//投资金额万元
fuHuaQiInfo
.
isCooperation
=
isCooperation
;
//是否与第三方合作
fuHuaQiInfo
.
cooperationInstitutions
=
cooperationInstitutions
;
//合作机构名称
await
fuHuaQiInfo
.
save
();
return
{
isSuccess
:
true
};
}
export
async
function
getProfessionalTechnology
(
uscc
:
string
)
{
let
fuHuaQiInfo
=
await
fuhuaqiData
.
findFuHuaQiByUSCC
(
uscc
);
let
professionalTechnologyInfo
=
{
isProfessionalTechnology
:
fuHuaQiInfo
.
isProfessionalTechnology
,
professionalTechnologyName
:
fuHuaQiInfo
.
professionalTechnologyName
,
professionalTechnologyCreateTime
:
fuHuaQiInfo
.
professionalTechnologyCreateTime
,
professionalTechnologyAmount
:
fuHuaQiInfo
.
professionalTechnologyAmount
,
isCooperation
:
fuHuaQiInfo
.
isCooperation
,
cooperationInstitutions
:
fuHuaQiInfo
.
cooperationInstitutions
,
};
return
{
professionalTechnologyInfo
};
}
\ No newline at end of file
src/biz/mobileFuHuaQi/fuHuaQi/month.ts
View file @
3cd6bda6
/**
* 月度表单逻辑层
* 作者: 陈金晶
* 需求说明 1.月度填报必须填值才能提交
* 逻辑说明 1.月度表单在孵化器任务生成时一起生成
* 2.草稿锁(draftLock)默认=false draftLock=true表示这个任务被提交了 草稿锁用于判断孵化器有没有提交
...
...
src/biz/mobileFuHuaQi/fuHuaQi/task.ts
→
src/biz/mobileFuHuaQi/fuHuaQi/task
/monthTask
.ts
View file @
3cd6bda6
...
...
@@ -13,17 +13,18 @@
*/
import
moment
=
require
(
"moment"
);
import
{
SCOREWAYS
,
TASKTYPEENUM
}
from
"../../../config/enum"
;
import
{
ERRORENUM
}
from
"../../../config/errorEnum"
;
import
{
findEnterpriseCount
,
findEnterpriseListByTaskId
,
updateEnterpriseDraftLock
}
from
"../../../data/enterprise/enterprise"
;
import
{
findFinancingCount
,
findFinancingListByTaskId
,
updateFinancingDraftLock
}
from
"../../../data/fuHuaQi/monthTask/financing"
;
import
{
findAllNotDisabledFuHuaQi
}
from
"../../../data/fuHuaQi/fuhuaqi"
;
import
*
as
monthTableData
from
"../../../data/fuHuaQi/monthTask/monthTable"
;
import
*
as
taskData
from
"../../../data/fuHuaQi/monthTask/task"
;
import
{
BizError
}
from
"../../../util/bizError"
;
import
{
logHandle
}
from
"../../../util/log"
;
import
{
getLastMonthTimeKey
,
getTaskId
,
getTaskIdByTime
,
getThisMonthMs
,
getTimeKey
}
from
"../../../tools/system"
;
import
*
as
scoreBiz
from
"../fuHuaQi/score"
;
import
{
QUARTERTASKTYPEENUM
,
SCOREWAYS
,
TASKTYPEENUM
}
from
"../../../../config/enum"
;
import
{
ERRORENUM
}
from
"../../../../config/errorEnum"
;
import
{
findEnterpriseCount
,
findEnterpriseListByTaskId
,
updateEnterpriseDraftLock
}
from
"../../../../data/enterprise/enterprise"
;
import
{
findFinancingCount
,
findFinancingListByTaskId
,
updateFinancingDraftLock
}
from
"../../../../data/fuHuaQi/monthTask/financing"
;
import
{
findAllNotDisabledFuHuaQi
}
from
"../../../../data/fuHuaQi/fuhuaqi"
;
import
*
as
monthTableData
from
"../../../../data/fuHuaQi/monthTask/monthTable"
;
import
*
as
taskData
from
"../../../../data/fuHuaQi/monthTask/task"
;
import
*
as
quarterTaskData
from
"../../../../data/fuHuaQi/quarterTask/quarterTask"
;
import
{
BizError
}
from
"../../../../util/bizError"
;
import
{
logHandle
}
from
"../../../../util/log"
;
import
{
getLastMonthTimeKey
,
getQuarterTaskId
,
getTaskId
,
getTaskIdByTime
,
getThisMonthMs
,
getTimeKey
}
from
"../../../../tools/system"
;
import
*
as
scoreBiz
from
"../score"
;
/**
...
...
@@ -82,7 +83,7 @@ export async function fuHuaQiTaskList(uscc:string) {
}
}
}
return
{
taskList
:
result
};
}
...
...
@@ -256,7 +257,7 @@ export async function checkTask(uscc:string, taskType:number) {
* 系统自发
* 下发任务的同时初始化月度报表数据
*/
export
async
function
provideTask
()
{
export
async
function
provide
Month
Task
()
{
const
TimeKey
=
getTimeKey
();
let
taskCount
=
await
taskData
.
findTaskCountByKey
(
TimeKey
);
if
(
taskCount
)
{
...
...
@@ -299,7 +300,7 @@ export async function provideTask() {
/**
* 回收任务分数
*/
export
async
function
retrieveTask
()
{
export
async
function
retrieve
Month
Task
()
{
/**获取上个月 时间key */
let
TimeKey
=
getLastMonthTimeKey
();
let
notSubmitList
=
await
taskData
.
findTaskListByParam
({
key
:
TimeKey
,
isSubmit
:
false
});
...
...
src/biz/mobileFuHuaQi/fuHuaQi/task/quarterTask.ts
0 → 100644
View file @
3cd6bda6
/**
* 孵化器 季度任务 主要逻辑
* 作者:lxm
*/
import
moment
=
require
(
"moment"
);
import
{
getLastQuarter
,
getQuarterTaskId
,
getQuarterTaskIdByTime
,
getQuarterTimeKey
,
getTaskId
,
getTaskIdByTime
,
getTimeKey
}
from
"../../../../tools/system"
;
import
*
as
quarterTaskData
from
"../../../../data/fuHuaQi/quarterTask/quarterTask"
;
import
*
as
businessData
from
"../../../../data/fuHuaQi/quarterTask/businessData"
;
import
{
findAllNotDisabledFuHuaQi
}
from
"../../../../data/fuHuaQi/fuhuaqi"
;
import
{
QUARTERTASKTYPEENUM
}
from
"../../../../config/enum"
;
import
{
logHandle
}
from
"../../../../util/log"
;
import
{
createBusinessToList
}
from
"../../../../data/fuHuaQi/quarterTask/businessData"
;
import
{
ERRORENUM
}
from
"../../../../config/errorEnum"
;
import
{
BizError
}
from
"../../../../util/bizError"
;
/**
* 当前月是不是数据填报月
* @returns true = 是
*/
function
isInTime
()
{
let
thisMonth
=
new
Date
().
getMonth
()
+
1
;
let
tipsMonth
=
[
1
,
4
,
7
,
10
];
return
tipsMonth
.
indexOf
(
thisMonth
)
>
-
1
}
export
async
function
fuHuaQiQuarterTaskList
(
uscc
:
string
)
{
/**得到这个月的任务map taskMap格式为{type:{isSubmit}} */
const
TaskId
=
getQuarterTaskId
(
uscc
);
let
taskMap
=
await
quarterTaskData
.
findQuarterTaskMapTypeIsKeyByParam
(
TaskId
);
let
result
=
[];
for
(
let
key
in
QUARTERTASKTYPEENUM
)
{
let
anyKey
:
any
=
key
;
/** 当key是枚举的键的时候 进入到逻辑 */
if
(
isNaN
(
anyKey
))
{
const
ValueStr
=
QUARTERTASKTYPEENUM
[
key
];
//字符型的枚举值 也就是 "4"
const
ValueNumber
=
parseInt
(
ValueStr
);
//number型的枚举值 也就是 4
let
onceObj
=
{
key
:
ValueNumber
,
title
:
anyKey
,
//标题
quarter
:
''
,
list
:[]
//相关的列表 这里不应该用这个字段名称 当时不能修改前端 沿用了这个字段名称
};
/**没有提交任务 则获取本月提交的任务相关信息 */
if
(
taskMap
[
ValueStr
]
&&
!
taskMap
[
ValueStr
].
isSubmit
)
{
let
dataList
=
[];
onceObj
.
quarter
=
`第
${
taskMap
[
ValueStr
].
quarter
}
季度`
;
switch
(
ValueNumber
)
{
case
QUARTERTASKTYPEENUM
.
孵化器经营状况
:
/** 这里加限制 在月度任务中 isUpdate=true代表已经修改 isUpdate=false表示没有这个任务 */
dataList
=
await
businessData
.
findBusinessListByTaskIdAndUpdate
(
TaskId
,
true
);
break
;
}
dataList
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
name
:
info
.
name
,
id
:
info
.
uscc
};
onceObj
.
list
.
push
(
addInfo
);
});
result
.
push
(
onceObj
);
}
}
}
return
{
taskList
:
result
};
}
/**
* 孵化器 季度任务 已办任务列表
* 小程序端 3.1
* 只显示selectTime月分的 已经办理的任务
* @param uscc 孵化器统一信用
* @returns [{type:1, title:'', enterpriseList:[] }]
*/
export
async
function
fuHuaQiQuarterCompletedTaskList
(
uscc
:
string
,
selectTime
:
number
)
{
/**得到查询月的任务map taskMap格式为{type:{isSubmit}} */
const
TaskId
=
getQuarterTaskIdByTime
(
uscc
,
selectTime
);
let
editable
=
getTaskId
(
uscc
)
==
TaskId
&&
isInTime
();
//如果是本季度,并且在数据填报月 就是可以编辑的
let
taskMap
=
await
quarterTaskData
.
findQuarterTaskMapTypeIsKeyByParam
(
TaskId
);
let
result
=
[];
for
(
let
key
in
QUARTERTASKTYPEENUM
)
{
let
anyKey
:
any
=
key
;
/** 当key是枚举的键的时候 进入到逻辑 */
if
(
isNaN
(
anyKey
))
{
const
ValueStr
=
QUARTERTASKTYPEENUM
[
key
];
//字符型的枚举值 也就是 "1"或者"2"或者"3"
const
ValueNumber
=
parseInt
(
ValueStr
);
//number型的枚举值 也就是 1或者2或者3
let
onceObj
:
any
=
{
key
:
ValueNumber
,
title
:
anyKey
,
//标题
editable
,
list
:[]
//相关的列表
};
/**当选中了系统上线时间前的时间 任务不存在 就是空列表 */
if
(
!
taskMap
[
ValueStr
])
continue
;
/**获取提交的任务 */
if
(
taskMap
[
ValueStr
].
isSubmit
)
{
onceObj
.
quarter
=
`第
${
taskMap
[
ValueStr
].
quarter
}
季度`
;
let
dataList
=
[];
switch
(
ValueNumber
)
{
case
QUARTERTASKTYPEENUM
.
孵化器经营状况
:
/** 这里加限制 在月度任务中 isUpdate=true代表已经修改 isUpdate=false表示没有这个任务 */
dataList
=
await
businessData
.
findBusinessListByTaskIdAndUpdate
(
TaskId
,
true
);
break
;
}
dataList
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
name
:
info
.
name
,
id
:
info
.
uscc
,
editable
};
onceObj
.
enterpriseList
.
push
(
addInfo
);
});
result
.
push
(
onceObj
);
}
}
}
return
{
taskList
:
result
};
}
/**
* 孵化器 过期任务列表
* 小程序端 2.0
* 只显示selectTime月份的 过期任务
* @param uscc 孵化器统一信用
* @returns [{type:1, title:'', enterpriseList:[] }]
*/
export
async
function
fuHuaQiQuarterPastdueTaskList
(
uscc
:
string
,
selectTime
:
number
)
{
/**得到查询月的任务map taskMap格式为{type:{isSubmit}} */
if
(
selectTime
>=
new
Date
().
valueOf
()
)
return
{
taskList
:[]};
const
TaskId
=
getQuarterTaskIdByTime
(
uscc
,
selectTime
);
let
taskMap
=
await
quarterTaskData
.
findQuarterTaskMapTypeIsKeyByParam
(
TaskId
);
let
result
=
[];
for
(
let
key
in
QUARTERTASKTYPEENUM
)
{
let
anyKey
:
any
=
key
;
/** 当key是枚举的键的时候 进入到逻辑 */
if
(
isNaN
(
anyKey
))
{
const
ValueStr
=
QUARTERTASKTYPEENUM
[
key
];
//字符型的枚举值 也就是 "4"
const
ValueNumber
=
parseInt
(
ValueStr
);
//number型的枚举值 也就是 4
let
onceObj
:
any
=
{
key
:
ValueNumber
,
title
:
anyKey
,
//标题
list
:[]
//相关的列表 这里不应该用这个字段名称 当时不能修改前端 沿用了这个字段名称
};
/**当选中了系统上线时间前的时间 任务不存在 就是空列表 */
if
(
!
taskMap
[
ValueStr
])
continue
;
/**未提交的数据 */
if
(
!
taskMap
[
ValueStr
].
isSubmit
)
{
onceObj
.
quarter
=
`第
${
taskMap
[
ValueStr
].
quarter
}
季度`
;
result
.
push
(
onceObj
);
}
}
}
return
{
taskList
:
result
};
}
/**
* 提交 季度任务
* 小程序端
* @param uscc 孵化器统一信用代码
* @param taskType 任务类型
* @returns {isSuccess:true/false}
*/
export
async
function
checkTask
(
uscc
:
string
,
taskType
:
number
)
{
const
TaskId
=
getTaskId
(
uscc
);
let
taskInfo
=
await
quarterTaskData
.
findQuarterTaskByTaskIdAndType
(
TaskId
,
taskType
);;
/**提交限制 */
if
(
!
taskInfo
)
throw
new
BizError
(
ERRORENUM
.
任务不存在
,
uscc
,
TaskId
);
if
(
taskInfo
.
isSubmit
)
throw
new
BizError
(
ERRORENUM
.
不能重复提交任务
,
uscc
,
taskType
);
let
submitCount
=
0
;
switch
(
taskType
)
{
case
QUARTERTASKTYPEENUM
.
孵化器经营状况
:
/**月度报表每个月初和任务数据一起初始化 所以只需要修改状态 */
let
monthTableInfo
=
await
businessData
.
findBusinessByTaskId
(
TaskId
);
if
(
!
monthTableInfo
.
isUpdate
)
throw
new
BizError
(
ERRORENUM
.
该报表需要填写本季度内容后提交
,
uscc
,
taskType
);
if
(
monthTableInfo
.
draftLock
)
throw
new
BizError
(
ERRORENUM
.
不能重复提交任务
,
uscc
,
taskType
,
'孵化器经营数据表lock = true'
);
monthTableInfo
.
draftLock
=
true
;
monthTableInfo
.
submitTime
=
new
Date
().
valueOf
();
await
monthTableInfo
.
save
();
break
;
}
/** 修改任务状态标识 和相关信息 */
taskInfo
.
isSubmit
=
true
;
taskInfo
.
submitTime
=
new
Date
().
valueOf
();
taskInfo
.
submitCount
=
submitCount
;
await
taskInfo
.
save
();
return
{
isSuccess
:
true
};
}
/**
* 发放任务
* 系统自发
* 下发任务的同时初始化月度报表数据
*/
export
async
function
provideFuHuaQiQuarterTask
()
{
//不是数据填报月不下发任务
if
(
!
isInTime
())
return
;
let
{
year
,
quarter
}
=
getLastQuarter
();
let
count
=
await
quarterTaskData
.
findQuarterTaskCountByParam
({
year
,
quarter
});
if
(
count
)
return
;
//不能重复发放任务
let
addList
=
[];
//任务列表
let
businessDataList
=
[];
//经营数据
let
key
=
getQuarterTimeKey
();
let
fuHuaQiList
=
await
findAllNotDisabledFuHuaQi
();
fuHuaQiList
.
forEach
(
info
=>
{
let
{
uscc
}
=
info
;
let
taskId
=
getQuarterTaskId
(
uscc
);
addList
.
push
({
key
,
type
:
QUARTERTASKTYPEENUM
.
孵化器经营状况
,
taskId
,
fuHuaQiUscc
:
uscc
,
submitTime
:
0
,
isSubmit
:
false
,
quarter
,
year
,
submitCount
:
0
});
/**任务报表的初始状态为 草稿(draftLock=fals) 未被编辑(isUpdate=false) */
businessDataList
.
push
({
taskId
,
quarter
,
year
,
name
:
`孵化器第
${
quarter
}
季度填报`
,
fuHuaQiUscc
:
uscc
,
TR
:
0
,
ROR
:
0
,
RR
:
0
,
FS
:
0
,
MIS
:
0
,
NP
:
0
,
TP
:
0
,
draftLock
:
false
,
isUpdate
:
false
,
submitTime
:
0
});
});
try
{
/**初始化 孵化器季度任务 */
await
quarterTaskData
.
createQuarterTaskToList
(
addList
);
logHandle
(
`添加了
${
addList
.
length
}
任务`
);
/**初始化 经营数据报表 */
await
createBusinessToList
(
businessDataList
);
logHandle
(
`添加了
${
businessDataList
.
length
}
月度任务`
);
}
catch
(
err
)
{
new
BizError
(
ERRORENUM
.
系统错误
,
'添加任务和月度报表的时候 出现了异常 请检查数据库 '
,
err
);
}
}
/**
* 回收任务分数
* 将回收月上一个月下发的数据进行状态回收 回收月与下发月永远会在同一个季度
*/
export
async
function
retrieveMonthTask
()
{
/**回收本季度数据 */
//todo 这里没有涉及积分 不需要做处理 留好坑
}
\ No newline at end of file
src/biz/systemTask.ts
View file @
3cd6bda6
...
...
@@ -9,53 +9,72 @@
import
moment
=
require
(
"moment"
);
import
{
findTaskCountByKey
,
findTaskListByParam
}
from
"../data/fuHuaQi/monthTask/task"
;
import
{
getTimeKey
}
from
"../tools/system"
;
import
{
provide
Task
,
retrieveTask
}
from
"./mobileFuHuaQi/fuHuaQi/t
ask"
;
import
{
get
QuarterTimeKey
,
get
TimeKey
}
from
"../tools/system"
;
import
{
provide
MonthTask
,
retrieveMonthTask
}
from
"./mobileFuHuaQi/fuHuaQi/task/monthT
ask"
;
import
{
findFuHuaQiList
}
from
"../data/fuHuaQi/fuhuaqi"
;
import
{
sendTaskPointOut
}
from
"./sms"
;
import
{
logHandle
}
from
"../util/log"
;
import
{
createSmsPointOutData
,
findSmsPointOutData
}
from
"../data/fuHuaQi/smsPointOut"
;
import
{
SMSTYPE
}
from
"../config/enum"
;
import
{
dataDeclarationTask
}
from
"./mobileEnterprise/quarterTask/dataDeclaration"
;
import
{
findQuarterTaskCountByParam
}
from
"../data/fuHuaQi/quarterTask/quarterTask"
;
import
{
provideFuHuaQiQuarterTask
}
from
"./mobileFuHuaQi/fuHuaQi/task/quarterTask"
;
/**
* 初始化任务
*/
export
function
initSystemTask
()
{
/**孵化器任务 */
fuHuaQiTask
();
/**孵化器
月度
任务 */
fuHuaQi
Month
Task
();
setInterval
(
async
function
()
{
await
fuHuaQiTask
();
await
fuHuaQi
Month
Task
();
},
3600
*
1000
);
/**企业任务 */
enterpriseTask
();
/**孵化器季度任务 */
fuHuaQiQuarterTask
();
setInterval
(
async
function
()
{
await
fuHuaQiQuarterTask
();
},
3600
*
1000
*
2
);
/**企业季度任务 */
enterpriseQuarterTask
();
setInterval
(
async
function
()
{
await
enterpriseTask
();
await
enterprise
Quarter
Task
();
},
3600
*
1000
*
2
);
/**初始化短信任务 */
smsTask
();
setInterval
(
async
function
()
{
await
smsTask
();
},
3600
*
1000
);
console
.
log
(
`systemTask init success`
);
console
.
log
(
`systemTask init success`
);
}
/**
* 发放/回收 孵化器任务
* 发放/回收 孵化器
月度
任务
* @returns
*/
async
function
fuHuaQiTask
()
{
async
function
fuHuaQi
Month
Task
()
{
const
Key
=
getTimeKey
();
let
count
=
await
findTaskCountByKey
(
Key
);
if
(
count
!=
0
)
return
;
/**生成新的任务 */
await
provideTask
();
await
provide
Month
Task
();
/**回收旧任务计算分数 */
await
retrieveTask
();
await
retrieve
Month
Task
();
}
/**
* 发放/回收 企业任务
* 发放/回收 企业
季度
任务
*/
async
function
enterpriseTask
()
{
async
function
enterprise
Quarter
Task
()
{
/**不在填报月份不下发数据 */
let
thisMonth
=
new
Date
().
getMonth
()
+
1
;
let
tipsMonth
=
[
1
,
4
,
7
,
10
];
...
...
@@ -65,22 +84,10 @@ async function enterpriseTask() {
}
export
function
initSMSTask
()
{
smsTask
();
setInterval
(
async
function
()
{
await
smsTask
();
},
3600
*
1000
);
console
.
log
(
`systemTask init success`
);
}
/**
* 短信任务 每月倒数第七天发送
*/
export
async
function
smsTask
()
{
async
function
smsTask
()
{
let
nowMs
=
new
Date
().
valueOf
();
let
lastDate
=
moment
(
nowMs
).
endOf
(
"month"
).
format
(
"YYYY-MM-DD"
);
let
checkMs
=
moment
(
lastDate
+
' 00:00:00'
).
subtract
(
7
,
'days'
).
valueOf
();
...
...
@@ -123,3 +130,11 @@ export async function smsTask() {
}
}
async
function
fuHuaQiQuarterTask
()
{
const
Key
=
getQuarterTimeKey
();
let
count
=
await
findQuarterTaskCountByParam
({
key
:
Key
});
if
(
count
!=
0
)
return
;
await
provideFuHuaQiQuarterTask
();
}
\ No newline at end of file
src/config/eccFormParamConfig.ts
View file @
3cd6bda6
...
...
@@ -432,4 +432,20 @@ export const FuHuaQiReplenishEnterpriseBusinessDataConfig = {
BI
:{
type
:
"Number"
},
//营业收入
RD
:{
type
:
"Number"
},
//研发投入
TXP
:{
type
:
"Number"
},
//纳税
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 孵化器补充经营数据
*/
export
const
FuHuaQiBusinessDataConfig
=
{
TR
:{
type
:
"Number"
},
//综合收入
ROR
:{
type
:
"Number"
},
//投资收入
RR
:{
type
:
"Number"
},
//租金收入
FS
:{
type
:
"Number"
},
//财政补贴
MIS
:{
type
:
"Number"
},
//其他
NP
:{
type
:
"Number"
},
//净利润
TP
:{
type
:
"Number"
},
//纳税
}
\ No newline at end of file
src/config/enum.ts
View file @
3cd6bda6
...
...
@@ -3,12 +3,20 @@
* 孵化器任务填报类型
*/
export
enum
TASKTYPEENUM
{
孵化器月度填报
=
1
,
融资企业填报
,
新注册或迁入企业登记
孵化器月度填报
=
1
,
//月度任务
融资企业填报
,
//月度任务
新注册或迁入企业登记
//月度任务
}
/**
* 季度任务填报类型
*/
export
enum
QUARTERTASKTYPEENUM
{
孵化器经营状况
=
4
,
//季度任务
}
/**
* 孵化器级别
*/
export
enum
FUHUAQILV
{
...
...
src/config/errorEnum.ts
View file @
3cd6bda6
...
...
@@ -59,7 +59,12 @@ export enum ERRORENUM {
重复通过填报数据
,
请先选择是否拥有
,
请先关闭该资讯
,
请不要重复开启资讯
请不要重复开启资讯
,
该孵化器经营数据填报已存在
,
未填报数据不能删除
,
已提交的数据不能进行操作
,
请先填报数据
,
该报表需要填写本季度内容后提交
}
export
enum
ERRORCODEENUM
{
...
...
src/config/splitResultConfig.ts
View file @
3cd6bda6
...
...
@@ -429,3 +429,16 @@ export const BusinessDataUnauditedListConfig = {
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 孵化器经营数据回显
*/
export
const
FuHuaQiBusinessDataInfoConfig
=
{
TR
:{
key
:
"综合收入"
},
ROR
:{
key
:
"投资收入"
},
RR
:{
key
:
"租金收入"
},
FS
:{
key
:
"财政补贴"
},
MIS
:{
key
:
"其他"
},
NP
:{
key
:
"净利润"
},
TP
:{
key
:
"纳税"
},
}
\ No newline at end of file
src/data/enterprise/enterprise.ts
View file @
3cd6bda6
...
...
@@ -88,6 +88,7 @@ const enterpriseSchema = new Schema({
tipsQualification
:{
type
:
Boolean
,
default
:
false
},
//标识-企业资质
tipsIntellectualProperty
:{
type
:
Boolean
,
default
:
false
},
//标识-知识产权
tipsFinancingInfo
:{
type
:
Boolean
,
default
:
false
},
//标识-企业融资
});
var
enterpriseModel
;
...
...
src/data/fuHuaQi/fuhuaqi.ts
View file @
3cd6bda6
...
...
@@ -50,13 +50,6 @@ const fuHuaQiSchema = new Schema({
foundingTeamType
:{
type
:
Number
,
default
:
1
},
//创业团队类型
operationModel
:{
type
:[
Number
],
default
:[]},
//运营模式
operationModelDes
:
String
,
//运营模式描述
/**专业技术平台 */
isProfessionalTechnology
:
Boolean
,
//是否专业技术平台
professionalTechnologyName
:
String
,
//专业技术平台名称
professionalTechnologyCreateTime
:
Number
,
//时间 年份 xxxx年01月01日 的时间戳
professionalTechnologyAmount
:
Number
,
//投资金额 万元
isCooperation
:{
type
:
Boolean
,
default
:
false
},
//是否与第三方合作
cooperationInstitutions
:{
type
:
String
,
default
:
""
},
//合作机构名称
/** 累计孵化企业数量*/
fuHuaEnterpriseTotal
:{
type
:
Number
,
default
:
0
},
//累计孵化企业数量 初始值
/**用户相关 */
...
...
@@ -71,6 +64,17 @@ const fuHuaQiSchema = new Schema({
bindId
:{
type
:
String
},
//绑定标识
/**2.3加入字段 */
introduction
:{
type
:
String
,
default
:
""
},
//孵化器简介
/**3.1 创投基金相关*/
isCreatePTP
:
Boolean
,
//是否成立创投基金
scalePTP
:
Number
,
//基金规模
isParticipateInPTP
:
Boolean
,
//是否参与创投基金
/**专业技术平台 */
isProfessionalTechnology
:
Boolean
,
//是否专业技术平台
professionalTechnologyName
:
String
,
//专业技术平台名称
professionalTechnologyCreateTime
:
Number
,
//时间 年份 xxxx年01月01日 的时间戳
professionalTechnologyAmount
:
Number
,
//投资金额 万元
isCooperation
:{
type
:
Boolean
,
default
:
false
},
//是否与第三方合作
cooperationInstitutions
:{
type
:
String
,
default
:
""
},
//合作机构名称
});
var
fuHuaQiModel
;
...
...
src/data/fuHuaQi/i18nRegister.ts
0 → 100644
View file @
3cd6bda6
/**
* 国际化登记
*
*/
import
{
Schema
}
from
'mongoose'
;
import
{
baseDB
}
from
'../../db/mongo/dbInit'
;
const
i18nRegisterSchema
=
new
Schema
({
id
:{
type
:
String
,
index
:
true
},
//标识
uscc
:{
type
:
String
,
index
:
true
},
//孵化器uscc
name
:{
type
:
String
,
index
:
true
},
//运营机构名称
country
:
String
,
//国家
partners
:
String
,
//合作机构
cMode
:
String
,
//合作方式
cAchievements
:
String
,
//合作成果
});
var
i18nRegisterModel
;
export
function
initModel
(){
i18nRegisterModel
=
baseDB
.
model
(
'fuHuaQiI18nRegister'
,
i18nRegisterSchema
);
i18nRegisterModel
.
selectOnceData
=
async
function
(
paramater
:
object
)
{
let
selectInfo
=
await
i18nRegisterModel
.
findOne
(
paramater
).
exec
();
if
(
selectInfo
)
{
if
(
!
selectInfo
.
runSave
)
{
selectInfo
.
runSave
=
selectInfo
.
save
;
selectInfo
.
save
=
save
.
bind
(
selectInfo
)
}
}
return
selectInfo
;
}
}
export
async
function
save
(
throwError
=
false
)
{
if
(
!
this
.
isModified
())
return
;
await
this
.
runSave
({
validateBeforeSave
:
false
}).
catch
(
err
=>
{
console
.
log
(
err
);
});
}
export
async
function
findOneI18nRegister
(
id
:
string
)
{
return
await
i18nRegisterModel
.
selectOnceData
({
id
});
}
export
async
function
findI18nRegisterListByParam
(
param
)
{
return
await
i18nRegisterModel
.
find
(
param
);
}
export
async
function
deleteI18nRegisterListById
(
id
:
string
)
{
await
i18nRegisterModel
.
deleteOne
({
id
});
}
export
async
function
addRegister
(
id
:
string
,
uscc
:
string
,
name
:
string
,
country
:
string
,
partners
:
string
,
cMode
:
string
,
cAchievements
:
string
)
{
let
addInfo
=
{
id
,
uscc
,
name
,
country
,
partners
,
cMode
,
cAchievements
};
await
i18nRegisterModel
.
create
(
addInfo
);
}
src/data/fuHuaQi/monthTask/task.ts
View file @
3cd6bda6
...
...
@@ -6,12 +6,16 @@
* 任务提交之后将不会出现在列表中 2023-02-06 确定此需求
* 任务不能提交后不能修改和删除 2023-02-06 确定此需求
* type 依赖枚举
*
* 注释 1.key 的规则是 YYYYMM 年月为发放任务时的 年月
* 2.month为 数据的月份,例如 key = 20235 那 month = 4, 年份(year)同理
*
*/
import
{
Schema
}
from
'mongoose'
;
import
{
baseDB
}
from
'../../../db/mongo/dbInit'
;
const
fuHuaQiTaskSchema
=
new
Schema
({
key
:{
type
:
Number
,
index
:
true
},
//任务标识 格式为:YYYYMM
key
:{
type
:
Number
,
index
:
true
},
//任务标识 格式为:YYYYMM
type
:
{
type
:
Number
,
index
:
true
},
//任务类型
taskId
:
String
,
//任务id
fuHuaQiUscc
:
String
,
//任务所属孵化器id
...
...
src/data/fuHuaQi/quarterTask/businessData.ts
0 → 100644
View file @
3cd6bda6
/**
* 孵化器经营数据填报
*
*/
import
{
Schema
}
from
'mongoose'
;
import
{
baseDB
}
from
'../../../db/mongo/dbInit'
;
const
fuHuaQiBusinessSchema
=
new
Schema
({
taskId
:{
type
:
String
,
index
:
true
},
//任务id
name
:
String
,
//任务名称
fuHuaQiUscc
:
String
,
//任务所属孵化器id
TR
:{
type
:
Number
,
default
:
0
},
//综合收入
ROR
:{
type
:
Number
,
default
:
0
},
//投资收入
RR
:{
type
:
Number
,
default
:
0
},
//租金收入
FS
:{
type
:
Number
,
default
:
0
},
//财政补贴
MIS
:{
type
:
Number
,
default
:
0
},
//其他
NP
:{
type
:
Number
,
default
:
0
},
//净利润
TP
:{
type
:
Number
,
default
:
0
},
//纳税
/**不下发字段 */
draftLock
:{
type
:
Boolean
,
default
:
false
},
//草稿锁,true为提交之后,false为草稿
quarter
:{
type
:
Number
,
index
:
true
},
//数据填报季度
year
:{
type
:
Number
,
index
:
true
},
//数据填报年份
isUpdate
:{
type
:
Boolean
,
default
:
false
},
submitTime
:
Number
,
//提交时间
});
var
fuHuaQiBusinessModel
;
export
function
initModel
(){
fuHuaQiBusinessModel
=
baseDB
.
model
(
'fuHuaQiBusiness'
,
fuHuaQiBusinessSchema
);
fuHuaQiBusinessModel
.
selectOnceData
=
async
function
(
paramater
:
object
)
{
let
selectInfo
=
await
fuHuaQiBusinessModel
.
findOne
(
paramater
).
exec
();
if
(
selectInfo
)
{
if
(
!
selectInfo
.
runSave
)
{
selectInfo
.
runSave
=
selectInfo
.
save
;
selectInfo
.
save
=
save
.
bind
(
selectInfo
)
}
}
return
selectInfo
;
}
}
export
async
function
save
(
throwError
=
false
)
{
if
(
!
this
.
isModified
())
return
;
await
this
.
runSave
({
validateBeforeSave
:
false
}).
catch
(
err
=>
{
console
.
log
(
err
);
});
}
/**
* 创建季度任务
* @param tableList 任务列表
*/
export
async
function
createBusinessToList
(
tableList
:
object
)
{
await
fuHuaQiBusinessModel
.
insertMany
(
tableList
);
}
export
async
function
findBusinessByTaskId
(
taskId
:
string
)
{
return
await
fuHuaQiBusinessModel
.
selectOnceData
({
taskId
});
}
export
async
function
findBusinessListByTaskIdAndUpdate
(
taskId
:
string
,
isUpdate
:
boolean
)
{
return
await
fuHuaQiBusinessModel
.
find
({
taskId
,
isUpdate
});
}
\ No newline at end of file
src/data/fuHuaQi/quarterTask/quarterTask.ts
View file @
3cd6bda6
/**
* 孵化器季度任务
*
*
标识 key格式为YYYY0quarter 其含义为任务生成时的年和季度
*/
import
{
Schema
}
from
'mongoose'
;
import
{
baseDB
}
from
'../../../db/mongo/dbInit'
;
const
monthTable
Schema
=
new
Schema
({
key
:{
type
:
Number
,
index
:
true
},
//任务标识 格式为:YYYY
MM
const
quarterTask
Schema
=
new
Schema
({
key
:{
type
:
Number
,
index
:
true
},
//任务标识 格式为:YYYY
0quarter 这里和月度任务做区分
type
:
{
type
:
Number
,
index
:
true
},
//任务类型
taskId
:
String
,
//任务id
fuHuaQiUscc
:
String
,
//任务所属孵化器id
...
...
@@ -19,11 +19,11 @@ const monthTableSchema = new Schema({
submitCount
:{
type
:
Number
,
default
:
0
},
//提交数量 默认0
});
var
monthTable
Model
;
var
quarterTask
Model
;
export
function
initModel
(){
monthTableModel
=
baseDB
.
model
(
'monthTable'
,
monthTable
Schema
);
monthTable
Model
.
selectOnceData
=
async
function
(
paramater
:
object
)
{
let
selectInfo
=
await
monthTable
Model
.
findOne
(
paramater
).
exec
();
quarterTaskModel
=
baseDB
.
model
(
'fuHuaQiQuarterTask'
,
quarterTask
Schema
);
quarterTask
Model
.
selectOnceData
=
async
function
(
paramater
:
object
)
{
let
selectInfo
=
await
quarterTask
Model
.
findOne
(
paramater
).
exec
();
if
(
selectInfo
)
{
if
(
!
selectInfo
.
runSave
)
{
selectInfo
.
runSave
=
selectInfo
.
save
;
...
...
@@ -38,4 +38,34 @@ export async function save(throwError=false) {
await
this
.
runSave
({
validateBeforeSave
:
false
}).
catch
(
err
=>
{
console
.
log
(
err
);
});
}
\ No newline at end of file
}
export
async
function
findQuarterTaskByParam
(
param
)
{
return
await
quarterTaskModel
.
find
(
param
);
}
export
async
function
findQuarterTaskByTaskIdAndType
(
taskId
:
string
,
type
:
number
)
{
return
await
quarterTaskModel
.
selectOnceData
({
taskId
,
type
});
}
export
async
function
findQuarterTaskMapTypeIsKeyByParam
(
taskId
:
string
)
{
let
result
=
await
quarterTaskModel
.
find
({
taskId
});
let
map
=
{};
result
.
forEach
(
info
=>
{
map
[
info
.
type
]
=
info
;
});
return
map
;
}
export
async
function
findQuarterTaskCountByParam
(
param
)
{
return
await
quarterTaskModel
.
find
(
param
).
count
();
}
/**
* 创建季度任务
* @param tableList 任务列表
*/
export
async
function
createQuarterTaskToList
(
tableList
:
object
)
{
await
quarterTaskModel
.
insertMany
(
tableList
);
}
src/db/mongo/tableInit.ts
View file @
3cd6bda6
...
...
@@ -3,7 +3,10 @@ import * as fuhuaqiinModel from "../../data/fuHuaQi/fuhuaqi";
import
*
as
enterpriseinModel
from
"../../data/enterprise/enterprise"
;
import
*
as
financinginModel
from
"../../data/fuHuaQi/monthTask/financing"
;
import
*
as
monthTableModel
from
"../../data/fuHuaQi/monthTask/monthTable"
;
import
*
as
guanweihuiModel
from
"../../data/guanWeiHui/guanweihui"
;
import
*
as
fuHuaQiBusinessDataModel
from
"../../data/fuHuaQi/quarterTask/businessData"
;
import
*
as
fuHuaQiQuarterTaskModel
from
"../../data/fuHuaQi/quarterTask/quarterTask"
;
import
*
as
scoreModel
from
"../../data/fuHuaQi/score"
;
import
*
as
scoreLogModel
from
"../../data/fuHuaQi/scoreLog"
;
import
*
as
codeModel
from
"../../data/fuHuaQi/code"
;
...
...
@@ -15,6 +18,9 @@ import * as replenishModel from "../../data/enterprise/replenish";
import
*
as
teamModel
from
"../../data/enterprise/quarterTask/team"
;
import
*
as
initialTeamModel
from
"../../data/enterprise/initialTeam"
;
import
*
as
guanweihuiModel
from
"../../data/guanWeiHui/guanweihui"
;
import
*
as
informationModel
from
"../../data/guanWeiHui/information"
;
export
async
function
initTable
()
{
taskinModel
.
initModel
();
...
...
@@ -23,6 +29,7 @@ export async function initTable() {
financinginModel
.
initModel
();
monthTableModel
.
initModel
();
guanweihuiModel
.
initModel
();
informationModel
.
initModel
();
scoreModel
.
initModel
();
scoreLogModel
.
initModel
();
codeModel
.
initModel
();
...
...
@@ -33,4 +40,6 @@ export async function initTable() {
teamModel
.
initModel
();
replenishModel
.
initModel
();
initialTeamModel
.
initModel
();
fuHuaQiBusinessDataModel
.
initModel
();
fuHuaQiQuarterTaskModel
.
initModel
();
}
\ No newline at end of file
src/main.ts
View file @
3cd6bda6
import
{
initSMS
}
from
"./biz/sms"
;
import
{
initSystemTask
,
initSMSTask
}
from
"./biz/systemTask"
;
import
{
initSystemTask
}
from
"./biz/systemTask"
;
import
{
initConfig
,
systemConfig
}
from
"./config/serverConfig"
;
import
{
initDB
}
from
"./db/mongo/dbInit"
;
import
{
httpServer
}
from
"./net/http_server"
;
...
...
@@ -16,8 +16,6 @@ async function lanuch() {
await
initSystemTask
();
/**初始化腾讯云短信配置 */
await
initSMS
();
/**初始化短信任务 */
await
initSMSTask
();
/**创建http服务 */
httpServer
.
createServer
(
systemConfig
.
port
);
...
...
src/routers/admin/fuHuaQi.ts
View file @
3cd6bda6
...
...
@@ -5,7 +5,7 @@
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
monthAdminBiz
from
'../../biz/admin/fuHuaQi/month'
;
import
*
as
fuHuaQiAdminBiz
from
'../../biz/admin/fuHuaQi/fuHuaQi'
;
import
*
as
taskBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/task'
;
import
*
as
taskBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/task
/monthTask
'
;
import
*
as
provideBiz
from
'../../biz/admin/provide'
;
import
{
getTimeKey
}
from
'../../tools/system'
;
import
{
checkGuanWeiHuiToken
,
checkInterior
}
from
'../../middleware/user'
;
...
...
src/routers/admin/information.ts
View file @
3cd6bda6
...
...
@@ -82,7 +82,12 @@ async function infoInformation(req, res) {
* @param res
*/
async
function
listInformation
(
req
,
res
)
{
let
data
=
await
informationBiz
.
selectInformation
();
let
reqConf
=
{
page
:
"Number"
,
selectTitle
:
"String"
,
createTime
:
"Number"
,
state
:
"Number"
};
const
NotMustHaveKeys
=
[
"selectTitle"
,
"createTime"
,
"state"
];
let
{
selectTitle
,
createTime
,
state
,
page
}
=
eccReqParamater
(
reqConf
,
req
.
body
,
NotMustHaveKeys
);
let
data
=
await
informationBiz
.
selectInformation
(
selectTitle
,
createTime
,
state
,
page
);
res
.
success
(
data
);
}
...
...
src/routers/mobileClient/business.ts
0 → 100644
View file @
3cd6bda6
/**
* 小程序端 孵化器入口 经营数据报表功能路由
*/
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
fuHuaQiBusinessBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/fuHuaQiBusiness'
;
import
{
eccReqParamater
}
from
'../../util/verificationParam'
;
import
{
checkFuHuaQiToken
}
from
'../../middleware/user'
;
export
function
setRouter
(
httpServer
)
{
httpServer
.
post
(
'/fuhuaqi/business/addreport'
,
checkFuHuaQiToken
,
asyncHandler
(
addreportBusiness
));
httpServer
.
post
(
'/fuhuaqi/business/updatereport'
,
checkFuHuaQiToken
,
asyncHandler
(
updatereportBusiness
));
httpServer
.
post
(
'/fuhuaqi/business/deletereport'
,
checkFuHuaQiToken
,
asyncHandler
(
deletereportBusiness
));
httpServer
.
post
(
'/fuhuaqi/business/select'
,
checkFuHuaQiToken
,
asyncHandler
(
selectBusiness
));
}
/**
* 添加孵化器经营数据
* @param req
* @param res
*/
async
function
addreportBusiness
(
req
,
res
)
{
let
reqConf
=
{
form
:
'Object'
};
let
{
form
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
monthInfo
=
fuHuaQiBusinessBiz
.
createBusiness
(
Uscc
,
form
);
res
.
success
(
monthInfo
);
}
/**
* 修改孵化器经营数据
* @param req
* @param res
*/
async
function
updatereportBusiness
(
req
,
res
)
{
let
reqConf
=
{
form
:
'Object'
};
let
{
form
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
monthInfo
=
fuHuaQiBusinessBiz
.
updateBusiness
(
Uscc
,
form
);
res
.
success
(
monthInfo
);
}
/**
* 删除孵化器经营数据
* @param req
* @param res
*/
async
function
deletereportBusiness
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
monthInfo
=
fuHuaQiBusinessBiz
.
deleteBusiness
(
Uscc
);
res
.
success
(
monthInfo
);
}
/**
* 回显 孵化器经营数据
* @param req
* @param res
*/
async
function
selectBusiness
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
monthInfo
=
fuHuaQiBusinessBiz
.
selectBusiness
(
Uscc
);
res
.
success
(
monthInfo
);
}
src/routers/mobileClient/fuHuaQi.ts
View file @
3cd6bda6
...
...
@@ -6,7 +6,8 @@
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
baseBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/base'
;
import
*
as
taskBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/task'
;
import
*
as
taskBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/task/monthTask'
;
import
*
as
quarterTaskBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/task/quarterTask'
;
import
*
as
scoreBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/score'
;
import
{
eccReqParamater
}
from
'../../util/verificationParam'
;
import
{
checkFuHuaQiToken
}
from
'../../middleware/user'
;
...
...
@@ -23,7 +24,12 @@ export function setRouter(httpServer) {
httpServer
.
post
(
'/fuhuaqi/task/list'
,
checkFuHuaQiToken
,
asyncHandler
(
taskList
));
//待办任务
httpServer
.
post
(
'/fuhuaqi/task/submit'
,
checkFuHuaQiToken
,
asyncHandler
(
submitTask
));
//提交待办任务
httpServer
.
post
(
'/fuhuaqi/task/completedlist'
,
checkFuHuaQiToken
,
asyncHandler
(
completedList
));
//已办任务
httpServer
.
post
(
'/fuhuaqi/task/pastduelist'
,
checkFuHuaQiToken
,
asyncHandler
(
pastDueList
));
//已办任务
httpServer
.
post
(
'/fuhuaqi/task/pastduelist'
,
checkFuHuaQiToken
,
asyncHandler
(
pastDueList
));
//过期任务
/** 周期任务 */
httpServer
.
post
(
'/fuhuaqi/quartertask/list'
,
checkFuHuaQiToken
,
asyncHandler
(
quarterTaskList
));
//待办任务
httpServer
.
post
(
'/fuhuaqi/quartertask/submit'
,
checkFuHuaQiToken
,
asyncHandler
(
submitQuarterTask
));
//提交待办任务
httpServer
.
post
(
'/fuhuaqi/quartertask/completedlist'
,
checkFuHuaQiToken
,
asyncHandler
(
quarterTaskCompletedList
));
//已办任务
httpServer
.
post
(
'/fuhuaqi/quartertask/pastduelist'
,
checkFuHuaQiToken
,
asyncHandler
(
quarterTaskPastDueList
));
//过期任务
/**分数 */
httpServer
.
post
(
'/fuhuaqi/score/ranklist'
,
checkFuHuaQiToken
,
asyncHandler
(
scoreRankList
));
httpServer
.
post
(
'/fuhuaqi/score/log'
,
checkFuHuaQiToken
,
asyncHandler
(
scoreLog
));
...
...
@@ -187,4 +193,71 @@ async function scoreRankList(req, res) {
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
scoreBiz
.
rankList
(
Uscc
);
res
.
success
(
result
);
}
\ No newline at end of file
}
/**
* 季度任务列表
* 3.1
* @param req
* @param res
*/
async
function
quarterTaskList
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
taskListObj
=
await
quarterTaskBiz
.
fuHuaQiQuarterTaskList
(
Uscc
);
res
.
success
(
taskListObj
);
}
/**
* 季度任务 提交任务
* 3.1
* @param req
* @param res
*/
async
function
submitQuarterTask
(
req
,
res
)
{
let
reqConf
=
{
taskType
:
'Number'
};
let
{
taskType
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
quarterTaskBiz
.
checkTask
(
Uscc
,
taskType
);
res
.
success
(
result
);
}
/**
* 季度任务 已办任务
* 3.1
* @param req
* @param res
*/
async
function
quarterTaskCompletedList
(
req
,
res
)
{
let
reqConf
=
{
selectTime
:
'Number'
};
let
{
selectTime
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
quarterTaskBiz
.
fuHuaQiQuarterCompletedTaskList
(
Uscc
,
selectTime
);
res
.
success
(
result
);
}
/**
* 季度任务 过期任务
* 3.1
* @param req
* @param res
*/
async
function
quarterTaskPastDueList
(
req
,
res
)
{
let
reqConf
=
{
selectTime
:
'Number'
};
let
{
selectTime
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
quarterTaskBiz
.
fuHuaQiQuarterPastdueTaskList
(
Uscc
,
selectTime
);
res
.
success
(
result
);
}
src/routers/mobileClient/institutionalNature.ts
0 → 100644
View file @
3cd6bda6
/**
* 机构性质 主要逻辑
*/
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
institutionalNatureBiz
from
'../../biz/mobileFuHuaQi/fuHuaQi/institutionalNature'
;
import
{
checkFuHuaQiToken
}
from
'../../middleware/user'
;
import
{
eccReqParamater
}
from
'../../util/verificationParam'
;
export
function
setRouter
(
httpServer
)
{
/** 任务 */
httpServer
.
post
(
'/fuhuaqi/institutionalnature/i18n/add'
,
checkFuHuaQiToken
,
asyncHandler
(
addRegister
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/i18n/update'
,
checkFuHuaQiToken
,
asyncHandler
(
updateRegister
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/i18n/info'
,
checkFuHuaQiToken
,
asyncHandler
(
infoRegister
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/i18n/list'
,
checkFuHuaQiToken
,
asyncHandler
(
listRegister
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/i18n/delete'
,
checkFuHuaQiToken
,
asyncHandler
(
deleteRegister
));
/**创投基金 */
httpServer
.
post
(
'/fuhuaqi/institutionalnature/ptp/info'
,
checkFuHuaQiToken
,
asyncHandler
(
PTPInfo
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/ptp/update'
,
checkFuHuaQiToken
,
asyncHandler
(
updatePTP
));
/**技术专业平台 */
httpServer
.
post
(
'/fuhuaqi/institutionalnature/professionaltechnology/info'
,
checkFuHuaQiToken
,
asyncHandler
(
professionalTechnologyInfo
));
httpServer
.
post
(
'/fuhuaqi/institutionalnature/professionaltechnology/update'
,
checkFuHuaQiToken
,
asyncHandler
(
updateProfessionalTechnology
));
}
/**
* 创建 国际化登记
* @param req
* @param res
*/
async
function
addRegister
(
req
,
res
)
{
let
reqConf
=
{
country
:
"String"
,
partners
:
"String"
,
cMode
:
"String"
,
cAchievements
:
"String"
};
let
{
country
,
partners
,
cMode
,
cAchievements
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
createI18nRegister
(
Uscc
,
country
,
partners
,
cMode
,
cAchievements
);
res
.
success
(
result
);
}
/**
* 修改 国际化登记
* @param req
* @param res
*/
async
function
updateRegister
(
req
,
res
)
{
let
reqConf
=
{
id
:
"String"
,
country
:
"String"
,
partners
:
"String"
,
cMode
:
"String"
,
cAchievements
:
"String"
};
let
{
country
,
partners
,
cMode
,
cAchievements
,
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
updateI18nRegister
(
Uscc
,
id
,
country
,
partners
,
cMode
,
cAchievements
);
res
.
success
(
result
);
}
/**
* 回显 国际化登记
* @param req
* @param res
*/
async
function
infoRegister
(
req
,
res
)
{
let
reqConf
=
{
id
:
'String'
};
//这里可以填0
let
{
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
result
=
await
institutionalNatureBiz
.
selectI18nRegisterInfo
(
id
);
res
.
success
(
result
);
}
/**
* 查询列表 国际化登记
* @param req
* @param res
*/
async
function
listRegister
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
i18nRegisterListData
(
Uscc
);
res
.
success
(
result
);
}
/**
* 删除 国际化登记
* @param req
* @param res
*/
async
function
deleteRegister
(
req
,
res
)
{
let
reqConf
=
{
id
:
'String'
};
//这里可以填0
let
{
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
deleteI18nRegisterInfo
(
id
);
res
.
success
(
result
);
}
/**
* 回显 创投基金
* @param req
* @param res
*/
async
function
PTPInfo
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
getFuHuaQiPTP
(
Uscc
);
res
.
success
(
result
);
}
/**
* 修改 创投基金
* @param req
* @param res
*/
async
function
updatePTP
(
req
,
res
)
{
let
reqConf
=
{
isCreatePTP
:
'Boolean'
,
scalePTP
:
'Number'
,
isParticipateInPTP
:
'Boolean'
};
//这里可以填0
let
{
isCreatePTP
,
scalePTP
,
isParticipateInPTP
}
=
eccReqParamater
(
reqConf
,
req
.
body
,
[
"scalePTP"
,
"isParticipateInPTP"
]);
if
(
isCreatePTP
)
eccReqParamater
(
reqConf
,
req
.
body
,
[]);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
updatePTPInfo
(
Uscc
,
isCreatePTP
,
scalePTP
,
isParticipateInPTP
);
res
.
success
(
result
);
}
/**
* 回显 技术专业平台
* @param req
* @param res
*/
async
function
professionalTechnologyInfo
(
req
,
res
)
{
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
getProfessionalTechnology
(
Uscc
);
res
.
success
(
result
);
}
/**
* 修改 技术专业平台
* @param req
* @param res
*/
async
function
updateProfessionalTechnology
(
req
,
res
)
{
let
reqConf
=
{
isProfessionalTechnology
:
"Boolean"
,
professionalTechnologyName
:
"String"
,
professionalTechnologyCreateTime
:
"Number"
,
professionalTechnologyAmount
:
"Number"
,
isCooperation
:
"Boolean"
,
cooperationInstitutions
:
"String"
};
let
skipList
=
[
"professionalTechnologyName"
,
"professionalTechnologyCreateTime"
,
"professionalTechnologyAmount"
,
"isCooperation"
,
"cooperationInstitutions"
];
let
{
isProfessionalTechnology
,
professionalTechnologyName
,
professionalTechnologyCreateTime
,
professionalTechnologyAmount
,
isCooperation
,
cooperationInstitutions
}
=
eccReqParamater
(
reqConf
,
req
.
body
,
skipList
);
if
(
isProfessionalTechnology
)
eccReqParamater
(
reqConf
,
req
.
body
,
[]);
const
Uscc
=
req
.
headers
.
uscc
;
let
result
=
await
institutionalNatureBiz
.
updateProfessionalTechnology
(
Uscc
,
isProfessionalTechnology
,
professionalTechnologyName
,
professionalTechnologyCreateTime
,
professionalTechnologyAmount
,
isCooperation
,
cooperationInstitutions
);
res
.
success
(
result
);
}
src/routers/router.ts
View file @
3cd6bda6
...
...
@@ -9,6 +9,8 @@ import * as mobileClientFinancingRouters from './mobileClient/financing';
import
*
as
mobileClientFuHuaQiRouters
from
'./mobileClient/fuHuaQi'
;
import
*
as
mobileClientMonthRouters
from
'./mobileClient/month'
;
import
*
as
mobileClientUserRouters
from
'./mobileClient/user'
;
import
*
as
mobileClientBusinessRouters
from
'./mobileClient/business'
;
import
*
as
institutionalNatureRouters
from
'./mobileClient/institutionalNature'
;
import
*
as
adminEnterpriseRouters
from
'./admin/enterprise'
;
import
*
as
adminFuHuaQiRouters
from
'./admin/fuHuaQi'
;
...
...
@@ -35,7 +37,9 @@ export function setRouter(httpServer){
mobileClientFinancingRouters
.
setRouter
(
httpServer
);
mobileClientFuHuaQiRouters
.
setRouter
(
httpServer
);
mobileClientMonthRouters
.
setRouter
(
httpServer
);
mobileClientBusinessRouters
.
setRouter
(
httpServer
);
mobileClientUserRouters
.
setRouter
(
httpServer
);
institutionalNatureRouters
.
setRouter
(
httpServer
);
/**管理后台端 入口路由 */
adminEnterpriseRouters
.
setRouter
(
httpServer
);
adminFuHuaQiRouters
.
setRouter
(
httpServer
);
...
...
src/tools/system.ts
View file @
3cd6bda6
...
...
@@ -20,6 +20,27 @@ export function getTaskId(uscc:string) {
return
`
${
uscc
}${
getTimeKey
()}
`
;
}
/**
* 生成季度任务id
* 自动获取上一个季度
* @param uscc 企业标识
* @returns
*/
export
function
getQuarterTaskId
(
uscc
:
string
)
{
let
thisQuarter
=
moment
().
quarter
();
//当月填报季度
return
`
${
uscc
}${
new
Date
().
getFullYear
()}
0
${
thisQuarter
}
`
;
}
export
function
getQuarterTimeKey
()
{
let
thisQuarter
=
moment
().
quarter
();
//当月填报季度
return
parseInt
(
`
${
new
Date
().
getFullYear
()}
0
${
thisQuarter
}
`
);
}
export
function
getQuarterTaskIdByTime
(
uscc
:
string
,
timeMs
:
number
)
{
return
`
${
uscc
}${
new
Date
(
timeMs
).
getFullYear
()}${
moment
(
timeMs
).
quarter
()
}
`
;
}
/**
* 根据时间生成任务id
...
...
@@ -170,7 +191,7 @@ export function getSMSCode() {
/**
*
获取
融资id
*
生成
融资id
* @param uscc
* @returns
*/
...
...
@@ -180,7 +201,7 @@ export function getFinancingId(uscc) {
/**
*
获取
创始团队成员id
*
生成
创始团队成员id
* @param uscc
* @param name
* @returns
...
...
@@ -189,6 +210,31 @@ export function getInitialTeamMemberId(uscc:string, name:string) {
return
md5
(
`
${
uscc
}${
name
}${
Math
.
ceil
(
Math
.
ceil
(
Math
.
random
()
*
1000000
))}
`
);
}
/**
* 生成 资讯id
* @returns
*/
export
function
getInformationId
()
{
return
md5
(
`
${
Math
.
ceil
(
Math
.
ceil
(
Math
.
random
()
*
1000000
))}${
new
Date
().
valueOf
()
}${
Math
.
ceil
(
Math
.
ceil
(
Math
.
random
()
*
1000000
))}
`
);
}
/**
* 获取上一个季度 年和季度
* @returns declarationYear:数据填报年 declarationQuarter:数据填报季度
*/
export
function
getLastQuarter
()
{
let
thisYear
=
new
Date
().
getFullYear
();
let
thisQuarter
=
moment
().
quarter
();
//当月填报季度
if
(
(
thisQuarter
-
1
)
<
1
)
{
thisYear
=
moment
().
subtract
(
1
,
'years'
).
year
();
thisQuarter
=
4
;
}
else
thisQuarter
=
thisQuarter
-
1
;
return
{
year
:
thisYear
,
quarter
:
thisQuarter
};
}
export
function
getI18nRegisterId
(
uscc
:
string
)
{
return
md5
(
`
${
uscc
}${
new
Date
().
valueOf
()
}${
Math
.
ceil
(
Math
.
ceil
(
Math
.
random
()
*
1000000
))}
`
);
}
\ 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