Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tikeyi
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
tikeyi
Commits
309f38c0
Commit
309f38c0
authored
Dec 28, 2024
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
3362b3e6
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
340 additions
and
0 deletions
+340
-0
kyszhglpt.xlsx
res/kyszhglpt.xlsx
+0
-0
ssk.ts
src/biz/three/ssk.ts
+262
-0
sskData.ts
src/data/table/sskData.ts
+62
-0
router.ts
src/routers/router.ts
+16
-0
No files found.
res/kyszhglpt.xlsx
View file @
309f38c0
No preview for this file type
src/biz/three/ssk.ts
0 → 100644
View file @
309f38c0
import
{
MapDistrictDataDefault
}
from
'../../config/healthConfig'
;
import
{
gfjbqsTableData
,
sskTableData
}
from
'../../data/table/sskData'
;
import
{
doubleYBarCharPackage
,
keyValuePackage
,
onceYBarChartPackage
,
rankPackage
,
tablePackage
}
from
'../../dataPackage/inFrontOut'
;
import
{
getDoubleYBarChartOut
,
getKeyValueOut
,
getOnceYBarChartOut
,
getTableOut
}
from
'../../dataPackage/out'
;
/* 申生康 */
export
function
getData
(
req
,
res
)
{
let
excelData
=
sskTableData
();
let
ret
:
any
=
{};
let
xdrsfxPackageData
=
onceYBarChartPackage
(
excelData
[
'学段人数分析'
],
''
,
''
);
ret
[
'xdrsfx'
]
=
getOnceYBarChartOut
(
'学段人数分析'
,
xdrsfxPackageData
);
let
jyzsblPackageData
=
keyValuePackage
(
excelData
[
'近一周上报率'
].
dataList
);
ret
[
'jyzsbl'
]
=
getKeyValueOut
(
'近一周上报率'
,
jyzsblPackageData
);
let
jbqkPackageData
=
keyValuePackage
(
excelData
[
'基本情况_全市'
].
dataList
);
ret
[
'jbqk'
]
=
getKeyValueOut
(
'基本情况(全市)'
,
jbqkPackageData
);
let
xbzbxsPackageData
=
keyValuePackage
(
excelData
[
'性别占比_学生'
].
dataList
);
ret
[
'xbzbxs'
]
=
getKeyValueOut
(
'性别占比_学生'
,
xbzbxsPackageData
);
let
xbzblsPackageData
=
keyValuePackage
(
excelData
[
'性别占比_老师'
].
dataList
);
ret
[
'xbzbls'
]
=
getKeyValueOut
(
'性别占比_老师'
,
xbzblsPackageData
);
let
gqxssfbPackageData
=
keyValuePackage
(
excelData
[
'各区学生数分布'
].
dataList
);
ret
[
'gqxssfb'
]
=
getKeyValueOut
(
'各区学生数分布'
,
gqxssfbPackageData
);
let
gqjssfbPackageData
=
keyValuePackage
(
excelData
[
'各区教师数分布'
].
dataList
);
ret
[
'gqjssfb'
]
=
getKeyValueOut
(
'各区教师数分布'
,
gqjssfbPackageData
);
let
gqjgsfbPackageData
=
keyValuePackage
(
excelData
[
'各区机构数分布'
].
dataList
);
ret
[
'gqjgsfb'
]
=
getKeyValueOut
(
'各区机构数分布'
,
gqjgsfbPackageData
);
let
xsjqybqkrsPackageData
=
keyValuePackage
(
excelData
[
'学生近期因病缺课人数'
].
dataList
);
ret
[
'xsjqybqkrs'
]
=
getKeyValueOut
(
'学生近期因病缺课人数'
,
xsjqybqkrsPackageData
);
let
jqqkyyzbPackageData
=
keyValuePackage
(
excelData
[
'学生近期缺课原因占比'
].
dataList
);
ret
[
'jqqkyyzb'
]
=
getKeyValueOut
(
'学生近期缺课原因占比'
,
jqqkyyzbPackageData
);
let
jzgjqybqkrsPackageData
=
keyValuePackage
(
excelData
[
'教职工近期因病缺课人数'
].
dataList
);
ret
[
'jzgjqybqkrs'
]
=
getKeyValueOut
(
'教职工近期因病缺课人数'
,
jzgjqybqkrsPackageData
);
let
jzgjqqkyyzbPackageData
=
keyValuePackage
(
excelData
[
'教职工近期缺课原因占比'
].
dataList
);
ret
[
'jzgjqqkyyzb'
]
=
getKeyValueOut
(
'教职工近期缺课原因占比'
,
jzgjqqkyyzbPackageData
);
let
jyzsbqkPackageData
=
keyValuePackage
(
excelData
[
'近一周上报情况'
].
dataList
);
ret
[
'jyzsbqk'
]
=
getKeyValueOut
(
'近一周上报情况'
,
jyzsbqkPackageData
);
let
jqgfjbphPackageData
=
keyValuePackage
(
excelData
[
'近期高发疾病排行'
].
dataList
);
ret
[
'jqgfjbph'
]
=
getKeyValueOut
(
'近期高发疾病排行'
,
jqgfjbphPackageData
);
let
bzrsfxPackageData
=
onceYBarChartPackage
(
excelData
[
'病症人数分析'
],
''
,
''
);
ret
[
'bzrsfx'
]
=
getOnceYBarChartOut
(
'病症人数分析'
,
bzrsfxPackageData
);
let
bfsjqkfxExcelData
=
excelData
[
'病发时间情况分析'
].
dataList
;
let
bfsjqkfxData
=
{
"全部"
:[]};
let
bfsjqkfxConf
=
{
fjxr
:
"非教学日"
,
fxh
:
"放学日"
,
wdx
:
"未到校"
,
rxh
:
"入校后"
};
let
qbData
=
{};
bfsjqkfxExcelData
.
forEach
(
info
=>
{
if
(
!
bfsjqkfxData
[
info
.
sjmc
])
bfsjqkfxData
[
info
.
sjmc
]
=
[];
for
(
let
key
in
bfsjqkfxConf
)
{
if
(
!
qbData
[
bfsjqkfxConf
[
key
]])
qbData
[
bfsjqkfxConf
[
key
]]
=
0
qbData
[
bfsjqkfxConf
[
key
]]
+=
info
[
key
];
bfsjqkfxData
[
info
.
sjmc
].
push
({
key
:
bfsjqkfxConf
[
key
],
value
:
info
[
key
]});
}
})
for
(
let
key
in
qbData
)
{
bfsjqkfxData
[
"全部"
].
push
({
key
,
value
:
qbData
[
key
]});
}
ret
[
'bfsjqkfx'
]
=
{
title
:
"病发时间情况分析"
,
dataList
:
bfsjqkfxData
};
let
qkxssjExcelData
=
excelData
[
'缺课学生数据'
].
dataList
;
let
qkxssjData
=
[];
let
ybqkljxsCount
=
0
;
let
drxzCount
=
0
;
qkxssjExcelData
.
forEach
(
info
=>
{
qkxssjData
.
push
({
key
:
info
.
sjmc
,
ybqkljxs
:
info
.
ybqkljxs
,
drxz
:
info
.
drxz
});
ybqkljxsCount
+=
parseInt
(
info
.
ybqkljxs
);
drxzCount
+=
parseInt
(
info
.
drxz
);
})
let
qkzrs
=
[{
key
:
"缺课总人数"
,
ybqkljxs
:
ybqkljxsCount
,
drxz
:
drxzCount
}];
ret
[
'qkzrs'
]
=
{
title
:
'缺课总人数'
,
dataList
:
qkzrs
};
ret
[
'qkxss'
]
=
{
title
:
'缺课学生数'
,
dataList
:
qkxssjData
};
let
qqjzgPackageData
=
excelData
[
'缺勤教职工'
].
dataList
[
0
];
let
qqjzgData
=
[{
key
:
qqjzgPackageData
.
sjmc
,
ybqkljxs
:
qqjzgPackageData
.
ybqkljxs
,
drxz
:
qqjzgPackageData
.
drxz
}];
ret
[
'qqjzg'
]
=
{
title
:
'缺勤教职工'
,
dataList
:
qqjzgData
};
res
.
send
(
ret
);
}
/**
* 今日未上报学校
* @param req
* @param res
*/
export
function
getJrsbxx
(
req
,
res
)
{
let
ret
:
any
=
{};
let
excelData
=
sskTableData
();
let
cityName
=
req
.
body
.
cityName
;
let
jrsbxx
=
[];
let
total
=
0
;
let
jrsbxxData
=
excelData
[
"今日未上报学校"
].
dataList
;
for
(
let
key
in
jrsbxxData
)
{
let
schoolList
=
jrsbxxData
[
key
].
value
.
split
(
","
);
if
(
cityName
==
"全市"
)
{
jrsbxx
.
push
({
key
:
jrsbxxData
[
key
].
key
,
value
:
schoolList
});
total
+=
schoolList
.
length
;
}
else
{
if
(
jrsbxxData
[
key
].
key
==
cityName
)
{
jrsbxx
.
push
({
key
:
jrsbxxData
[
key
].
key
,
value
:
schoolList
});
total
+=
schoolList
.
length
;
}
}
}
ret
[
"jswsbxx"
]
=
{
title
:
"今日未上报学校"
,
dataList
:
jrsbxx
,
total
};
res
.
send
(
ret
);
}
/**
* 今日未上报学校区域选择下拉
* @param req
* @param res
*/
export
function
getCityName
(
req
,
res
)
{
let
ret
:
any
=
{};
let
excelData
=
sskTableData
();
let
cityNameList
=
[
"全市"
];
let
jrsbxxData
=
excelData
[
"今日未上报学校"
].
dataList
;
for
(
let
key
in
jrsbxxData
)
{
cityNameList
.
push
(
jrsbxxData
[
key
].
key
);
}
ret
[
"cityName"
]
=
{
title
:
"今日未上报学校区域选择下拉"
,
dataList
:
cityNameList
};
res
.
send
(
ret
);
}
/**
* 地图
* @param req
* @param res
*/
export
function
getMap
(
req
,
res
)
{
let
ret
:
any
=
{};
let
mapData
=
MapDistrictDataDefault
;
ret
[
"map"
]
=
{
title
:
"地图"
,
data
:
mapData
};
let
jjxmzEnum
=
{
1
:
"校级苗子"
,
2
:
"区级苗子"
,
3
:
"市级苗子"
,
}
let
jjxmz
=
[];
for
(
let
key
in
jjxmzEnum
)
{
jjxmz
.
push
({
key
:
key
,
value
:
jjxmzEnum
[
key
]});
}
ret
[
"jjxmzType"
]
=
{
title
:
"聚集性苗子类型"
,
data
:
jjxmz
};
let
ybqkfbEnum
=
{
1
:
"1-10"
,
2
:
"11-20"
,
3
:
"21-30"
}
let
ybqkfb
=
[];
for
(
let
key
in
ybqkfbEnum
)
{
ybqkfb
.
push
({
key
:
key
,
value
:
ybqkfbEnum
[
key
]});
}
ret
[
"ybqkfbType"
]
=
{
title
:
"因病缺课分布类型"
,
data
:
ybqkfb
};
res
.
send
(
ret
);
}
/**
* 高发疾病趋势
*/
export
function
getGfjbqs
(
req
,
res
)
{
let
ret
:
any
=
{};
let
gfjbConf
=
[
"百日咳"
,
"急性上呼吸道感染"
,
"肠胃炎"
,
"肺炎"
];
let
excelData
=
gfjbqsTableData
();
let
gfjbData
=
{};
for
(
let
i
=
0
;
i
<
gfjbConf
.
length
;
i
++
)
{
// if (!gfjbData[gfjbConf[i]]) gfjbData[gfjbConf[i]] = [];
let
gfjbqsPackageData
=
onceYBarChartPackage
(
excelData
[
gfjbConf
[
i
]],
''
,
''
);
gfjbData
[
gfjbConf
[
i
]]
=
gfjbqsPackageData
;
}
ret
[
'gfjbqs'
]
=
{
title
:
"高发疾病趋势"
,
dataList
:
gfjbData
};
res
.
send
(
ret
);
}
/**
* 密码打开:聚集性苗子分析
* @param req
* @param res
*/
export
function
getJjxmz
(
req
,
res
)
{
let
ret
:
any
=
{};
let
excelData
=
sskTableData
();
let
jjxmzPackageData
=
keyValuePackage
(
excelData
[
'聚集性苗子基础数据'
].
dataList
);
ret
[
'jjxmz'
]
=
getKeyValueOut
(
'聚集性苗子基础数据'
,
jjxmzPackageData
);
let
jbmzPackageData
=
keyValuePackage
(
excelData
[
'疾病苗子'
].
dataList
);
ret
[
'jbmz'
]
=
getKeyValueOut
(
'疾病苗子'
,
jbmzPackageData
);
let
zzmzPackageData
=
keyValuePackage
(
excelData
[
'症状苗子'
].
dataList
);
ret
[
'zzmz'
]
=
getKeyValueOut
(
'症状苗子'
,
zzmzPackageData
);
res
.
send
(
ret
);
}
/**
* 因病缺课趋势
* 图例1:当前学年
* 图例2:传入参数学年
* @param req
* @param res
*/
export
function
getYbqkqs
(
req
,
res
)
{
let
ret
:
any
=
{};
let
tbYear
=
req
.
body
.
tbYear
;
let
excelData
=
sskTableData
();
let
ybqkqsData
=
[
"2024学年上学期"
,
`
${
tbYear
}
`
];
ret
[
"tl"
]
=
ybqkqsData
;
let
ybqkqsyyPackageData
=
onceYBarChartPackage
(
excelData
[
'因病缺课趋势_月'
],
''
,
''
);
ret
[
'ybqkqsyy'
]
=
getOnceYBarChartOut
(
'因病缺课趋势_月'
,
ybqkqsyyPackageData
);
// let ybqkqsynPackageData = onceYBarChartPackage( excelData['因病缺课趋势_年'], '','');
// ret['ybqkqsyn'] = getOnceYBarChartOut('因病缺课趋势_年', ybqkqsynPackageData);
let
ybqkqsyzPackageData
=
onceYBarChartPackage
(
excelData
[
'因病缺课趋势_周'
],
''
,
''
);
ret
[
'ybqkqsyz'
]
=
getOnceYBarChartOut
(
'因病缺课趋势_周'
,
ybqkqsyzPackageData
);
res
.
send
(
ret
);
}
src/data/table/sskData.ts
0 → 100644
View file @
309f38c0
import
{
planarArrDecollateForIndex
,
planarArrDeconstruct
,
planarArrForObjectList
}
from
"../../dataPackage/planaryArrayAnalysis"
;
import
{
onceSheetBecomeOfblockData
}
from
"../../util/analysisExcel"
;
function
packageDataProcess
(
blockDataList
,
titltListConfig
,
keyValueOrTitleList
,
barChartList
,
stringList
,
decollatePlanarList
)
{
let
result
=
{};
for
(
let
i
=
0
;
i
<
blockDataList
.
length
;
i
++
)
{
let
{
blockData
,
blockTitle
}
=
blockDataList
[
i
];
if
(
keyValueOrTitleList
.
indexOf
(
blockTitle
)
>
-
1
)
{
let
titleList
=
titltListConfig
[
blockTitle
]
||
[];
result
[
blockTitle
]
=
planarArrForObjectList
(
blockData
,
0
,
titleList
);
}
else
if
(
barChartList
.
indexOf
(
blockTitle
)
>
-
1
)
{
result
[
blockTitle
]
=
planarArrDeconstruct
(
blockData
);
}
else
if
(
stringList
.
indexOf
(
blockTitle
)
>
-
1
)
result
[
blockTitle
]
=
planarArrForObjectList
(
blockData
);
else
if
(
decollatePlanarList
.
indexOf
(
blockTitle
)
>
-
1
)
result
[
blockTitle
]
=
planarArrDecollateForIndex
(
blockData
);
}
return
result
;
}
export
function
sskTableData
()
{
let
blockDataList
=
onceSheetBecomeOfblockData
(
'kyszhglpt.xlsx'
,
'申生康'
);
let
keyValueOrTitleList
=
[
"近一周上报率"
,
"基本情况_全市"
,
"性别占比_学生"
,
"性别占比_老师"
,
"各区学生数分布"
,
"各区教师数分布"
,
"学生近期缺课原因占比"
,
"教职工近期缺课原因占比"
,
"各区机构数分布"
,
"学生近期因病缺课人数"
,
"教职工近期因病缺课人数"
,
"近一周上报情况"
,
"近期高发疾病排行"
,
"今日未上报学校"
,
"病发时间情况分析"
,
"聚集性苗子密码"
,
"聚集性苗子基础数据"
,
"疾病苗子"
,
"症状苗子"
,
"缺课学生数据"
,
"缺勤教职工"
];
//适配 饼图 键值以及需要多个key的
let
barChartList
=
[
"学段人数分析"
,
"病症人数分析"
,
"因病缺课趋势_月"
,
"因病缺课趋势_年"
,
"因病缺课趋势_周"
];
//适配 柱状图 折线图
let
stringList
=
[];
let
decollatePlanarList
=
[];
//适配 表格
let
titltListConfig
=
{};
let
result
=
packageDataProcess
(
blockDataList
,
titltListConfig
,
keyValueOrTitleList
,
barChartList
,
stringList
,
decollatePlanarList
);
return
result
;
}
/**
* 高发疾病趋势
* @returns
*/
export
function
gfjbqsTableData
()
{
let
blockDataList
=
onceSheetBecomeOfblockData
(
'kyszhglpt.xlsx'
,
'高发疾病趋势'
);
let
keyValueOrTitleList
=
[];
//适配 饼图 键值以及需要多个key的
let
barChartList
=
[
"百日咳"
,
"急性上呼吸道感染"
,
"肠胃炎"
,
"肺炎"
];
//适配 柱状图 折线图
let
stringList
=
[];
let
decollatePlanarList
=
[];
//适配 表格
let
titltListConfig
=
{};
let
result
=
packageDataProcess
(
blockDataList
,
titltListConfig
,
keyValueOrTitleList
,
barChartList
,
stringList
,
decollatePlanarList
);
return
result
;
}
\ No newline at end of file
src/routers/router.ts
View file @
309f38c0
...
...
@@ -11,6 +11,7 @@ import * as ysysdaBiz from '../biz/three/ysysda';
import
*
as
zyhdbzListBiz
from
'../biz/three/zyhdbz'
;
import
*
as
jyyzzyBiz
from
'../biz/three/jyyzzy'
;
import
*
as
kxyjyBiz
from
'../biz/three/kxyjy'
;
import
*
as
sskBiz
from
'../biz/three/ssk'
;
import
{
adminPermission
,
checkToken
,
pagePermission
}
from
'../middleware/sign'
;
//二期
...
...
@@ -123,5 +124,19 @@ export function setRouter(httpServer){
//科学研究院 success
httpServer
.
post
(
'/kxyjy'
,
asyncHandler
(
kxyjyBiz
.
getData
));
//弃用
httpServer
.
get
(
'/kxyjy'
,
asyncHandler
(
kxyjyBiz
.
getData
));
//弃用
//申申康 名称 success
httpServer
.
post
(
'/ssk/cityname'
,
asyncHandler
(
sskBiz
.
getCityName
));
httpServer
.
get
(
'/ssk/cityname'
,
asyncHandler
(
sskBiz
.
getCityName
));
httpServer
.
post
(
'/ssk/map'
,
asyncHandler
(
sskBiz
.
getMap
));
httpServer
.
get
(
'/ssk/map'
,
asyncHandler
(
sskBiz
.
getMap
));
httpServer
.
post
(
'/ssk/gfjbqs'
,
asyncHandler
(
sskBiz
.
getGfjbqs
));
httpServer
.
get
(
'/ssk/gfjbqs'
,
asyncHandler
(
sskBiz
.
getGfjbqs
));
httpServer
.
post
(
'/ssk/jjxmz'
,
asyncHandler
(
sskBiz
.
getJjxmz
));
httpServer
.
get
(
'/ssk/jjxmz'
,
asyncHandler
(
sskBiz
.
getJjxmz
));
httpServer
.
post
(
'/ssk/ybqkqs'
,
asyncHandler
(
sskBiz
.
getYbqkqs
));
httpServer
.
get
(
'/ssk/ybqkqs'
,
asyncHandler
(
sskBiz
.
getYbqkqs
));
}
\ 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