diff --git a/docs/other.md b/docs/other.md
index 271e86d16..babd3206e 100644
--- a/docs/other.md
+++ b/docs/other.md
@@ -728,6 +728,46 @@ type 为 all 时,category 参数不支持 cost 和 free
+### 创业板项目动态
+
+
+
+类型
+
+| IPO | 再融资 | 重大资产重组 |
+| --- | ------ | ------------ |
+| 1 | 2 | 3 |
+
+阶段
+
+| 全部 | 受理 | 问询 | 上市委会议 |
+| ---- | ---- | ---- | ---------- |
+| 0 | 10 | 20 | 30 |
+
+| 提交注册 | 注册结果 | 中止 | 终止 |
+| -------- | -------- | ---- | ---- |
+| 35 | 40 | 50 | 60 |
+
+状态
+
+| 全部 | 新受理 | 已问询 | 通过 | 未通过 |
+| ---- | ------ | ------ | ---- | ------ |
+| 0 | 20 | 30 | 45 | 44 |
+
+| 暂缓审议 | 复审通过 | 复审不通过 | 提交注册 |
+| -------- | -------- | ---------- | -------- |
+| 46 | 56 | 54 | 60 |
+
+| 注册生效 | 不予注册 | 补充审核 | 终止注册 |
+| -------- | -------- | -------- | -------- |
+| 70 | 74 | 78 | 76 |
+
+| 中止 | 审核不通过 | 撤回 |
+| ---- | ---------- | ---- |
+| 80 | 90 | 95 |
+
+
+
## 守望先锋
### 补丁说明
diff --git a/lib/router.js b/lib/router.js
index 9c951e7b9..699caa11a 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -2163,6 +2163,7 @@ router.get('/sse/disclosure/:query?', require('./routes/sse/disclosure'));
router.get('/szse/notice', require('./routes/szse/notice'));
router.get('/szse/inquire/:type', require('./routes/szse/inquire'));
router.get('/szse/rule', require('./routes/szse/rule'));
+router.get('/szse/projectdynamic/:type?/:stage?/:status?', require('./routes/szse/projectdynamic'));
// 前端艺术家每日整理&&飞冰早报
router.get('/jskou/:type?', require('./routes/jskou/index'));
diff --git a/lib/routes/szse/projectdynamic.js b/lib/routes/szse/projectdynamic.js
new file mode 100644
index 000000000..9c734f579
--- /dev/null
+++ b/lib/routes/szse/projectdynamic.js
@@ -0,0 +1,104 @@
+const got = require('@/utils/got');
+const { parseDate } = require('@/utils/parse-date');
+
+module.exports = async (ctx) => {
+ const typeMap = {
+ 1: 'IPO',
+ 2: '再融资',
+ 3: '重大资产重组',
+ };
+
+ const stageMap = {
+ 10: '受理',
+ 20: '问询',
+ 30: '上市委会议',
+ 35: '提交注册',
+ 40: '注册结果',
+ 50: '中止',
+ 60: '终止',
+ };
+
+ const statusMap = {
+ 20: '新受理',
+ 30: '已问询',
+ 45: '通过',
+ 44: '未通过',
+ 46: '暂缓审议',
+ 56: '复审通过',
+ 54: '复审不通过',
+ 60: '提交注册',
+ 70: '注册生效',
+ 74: '不予注册',
+ 78: '补充审核',
+ 76: '终止注册',
+ 80: '中止',
+ 90: '审核不通过',
+ 95: '撤回',
+ };
+
+ const type = ctx.params.type || '1';
+ const stage = ctx.params.stage || '0';
+ const status = ctx.params.status || '0';
+
+ const rootUrl = 'http://listing.szse.cn';
+ const apiUrl = `${rootUrl}/api/ras/projectrends/query?bizType=${type}${stage === '0' ? '' : `&stage=${stage}`}${status === '0' ? '' : `&status=${status}`}&pageIndex=0&pageSize=20`;
+
+ const response = await got({
+ method: 'get',
+ url: apiUrl,
+ });
+
+ const list = response.data.data.map((item) => ({
+ title: item.prjid,
+ link: `${rootUrl}/api/ras/projectrends/details?id=${item.prjid}`,
+ }));
+
+ const items = await Promise.all(
+ list.map(
+ async (item) =>
+ await ctx.cache.tryGet(item.link, async () => {
+ const detailResponse = await got({
+ method: 'get',
+ url: item.link,
+ });
+
+ const data = detailResponse.data.data;
+ const current = JSON.parse(data.pjdot)['-1'];
+
+ item.link = `${rootUrl}/projectdynamic/ipo/detail/index.html?id=${item.title}`;
+ item.title = `[${data.prjst}] ${data.cmpnm} (${data.cmpsnm})- ${data.csrcind}`;
+
+ item.description =
+ `
${data.cmpnm}
${current.startTime} ${current.name}项目基本信息
| 公司全称 | ` +
+ `${data.cmpnm} | ` +
+ `公司简称 | ${data.cmpsnm} |
` +
+ `| 受理日期 | ${data.acptdt} | ` +
+ `更新日期 | ${data.updtdt} |
` +
+ `| 审核状态 | ${data.prjst} | ` +
+ `预计融资金额(亿元) | ${data.maramt} |
` +
+ `| 保荐机构 | ` +
+ `${data.sprinst} | ` +
+ `保荐代表人 | ${data.sprrep} |
` +
+ `| 会计师事务所 | ` +
+ `${data.acctfm} | ` +
+ `签字会计师 | ${data.acctsgnt} |
` +
+ `| 律师事务所 | ` +
+ `${data.lawfm} | ` +
+ `签字律师 | ${data.lglsgnt} |
` +
+ `| 评估机构 | ${data.evalinst} | ` +
+ `签字评估师 | ${data.evalsgnt} |
` +
+ `| 最近一期审计基准日 | ${data.lastestAuditEndDate} |
`;
+
+ item.pubDate = parseDate(current.startTime, 'YYYY-MM-DD HH:mm:ss');
+
+ return item;
+ })
+ )
+ );
+
+ ctx.state.data = {
+ title: `${typeMap[type]}项目动态${status !== '0' ? ` (${statusMap[status]}) ` : stage !== '0' ? ` (${stageMap[stage]}) ` : ''} - 创业板发行上市审核信息公开网站 - 深圳证券交易所`,
+ link: `${rootUrl}/projectdynamic/${type}/index.html`,
+ item: items,
+ };
+};