Commit 309f38c0 by lixinming

no message

parent 3362b3e6
No preview for this file type
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);
}
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
...@@ -11,6 +11,7 @@ import * as ysysdaBiz from '../biz/three/ysysda'; ...@@ -11,6 +11,7 @@ import * as ysysdaBiz from '../biz/three/ysysda';
import * as zyhdbzListBiz from '../biz/three/zyhdbz'; import * as zyhdbzListBiz from '../biz/three/zyhdbz';
import * as jyyzzyBiz from '../biz/three/jyyzzy'; import * as jyyzzyBiz from '../biz/three/jyyzzy';
import * as kxyjyBiz from '../biz/three/kxyjy'; import * as kxyjyBiz from '../biz/three/kxyjy';
import * as sskBiz from '../biz/three/ssk';
import { adminPermission, checkToken, pagePermission } from '../middleware/sign'; import { adminPermission, checkToken, pagePermission } from '../middleware/sign';
//二期 //二期
...@@ -123,5 +124,19 @@ export function setRouter(httpServer){ ...@@ -123,5 +124,19 @@ export function setRouter(httpServer){
//科学研究院 success //科学研究院 success
httpServer.post('/kxyjy', asyncHandler(kxyjyBiz.getData));//弃用 httpServer.post('/kxyjy', asyncHandler(kxyjyBiz.getData));//弃用
httpServer.get('/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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment