Commit 5cae45fe by Zllgogo

Merge branch 'master' of http://123.207.147.179:8888/node_server/yuyiViewServer

# Conflicts:
#	res/yuyiServer.xlsx
parents 02d02d6b bbe37d6c
No preview for this file type
<config> <config>
<port>40015</port> <port>40015</port>
<dbPort>9096</dbPort> <dbPort>9096</dbPort>
<dbHost>192.168.0.71</dbHost> <dbHost>192.168.0.72</dbHost>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign> <sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<!-- <imgPath>http://127.0.0.1:4980/yuyi/viewpage</imgPath> --> <!-- <imgPath>http://127.0.0.1:4980/yuyi/viewpage</imgPath> -->
<imgPath>http://192.168.0.189:40015</imgPath> <imgPath>http://192.168.0.72:40015</imgPath>
<imgFileUrl>http://192.168.0.189:9097</imgFileUrl> <imgFileUrl>http://192.168.0.72:9097</imgFileUrl>
</config> </config>
...@@ -53,15 +53,12 @@ export async function getData(req, res) { ...@@ -53,15 +53,12 @@ export async function getData(req, res) {
let zzrzTableData = tablePackage(dbData["资质认证"].headerList[0], dbData["资质认证"].bodyList); let zzrzTableData = tablePackage(dbData["资质认证"].headerList[0], dbData["资质认证"].bodyList);
ret['zzrzTable'] = getTableOut('资质认证表格', zzrzTableData); ret['zzrzTable'] = getTableOut('资质认证表格', zzrzTableData);
let sxhc = keyValuePackage(dbData['失信核查'].count); let sxhc = keyValuePackage(dbData['失信详情'].count);
ret['sxhc'] = getKeyValueOut('失信核查', sxhc); ret['sxhc'] = getKeyValueOut('失信详情', sxhc);
let sxhcxx = keyValuePackage(dbData['失信核查'].dataList); let sxhcxx = keyValuePackage(dbData['失信详情'].dataList);
ret['sxhcxx'] = getKeyValueOut('风险提示', sxhcxx); ret['sxhcxx'] = getKeyValueOut('风险提示', sxhcxx);
let sxxq = keyValuePackage(dbData['失信详情'].dataList);
ret['sxxq'] = getKeyValueOut('失信详情', sxxq);
let wfhc = keyValuePackage(dbData['违法核查'].count); let wfhc = keyValuePackage(dbData['违法核查'].count);
ret['wfhc'] = getKeyValueOut('违法核查', wfhc); ret['wfhc'] = getKeyValueOut('违法核查', wfhc);
......
...@@ -36,6 +36,8 @@ export async function getData(req, res) { ...@@ -36,6 +36,8 @@ export async function getData(req, res) {
let qymyd = keyValuePackage(excelData['服务成果'].dataList); let qymyd = keyValuePackage(excelData['服务成果'].dataList);
ret['qymyd'] = getKeyValueOut('企业满意度', qymyd); ret['qymyd'] = getKeyValueOut('企业满意度', qymyd);
ret['nrzqy'] = { title: "拟入驻企业", dataList: excelData["拟入驻企业"].bodyList };
let fhqgk = keyValuePackage(dbData['孵化器概况']); let fhqgk = keyValuePackage(dbData['孵化器概况']);
ret['fhqgk'] = getKeyValueOut('孵化器概况', fhqgk); ret['fhqgk'] = getKeyValueOut('孵化器概况', fhqgk);
...@@ -51,8 +53,6 @@ export async function getData(req, res) { ...@@ -51,8 +53,6 @@ export async function getData(req, res) {
let yytg = getChart(dbData['运营推广']); let yytg = getChart(dbData['运营推广']);
ret['yytg'] = { title: "运营推广", dataList: yytg }; ret['yytg'] = { title: "运营推广", dataList: yytg };
ret['nrzqy'] = { title: "拟入驻企业", dataList: dbData["拟入驻企业"] };
let hzsj = keyValuePackage(dbData['汇总数据']); let hzsj = keyValuePackage(dbData['汇总数据']);
ret['hzsj'] = getKeyValueOut('汇总数据', hzsj); ret['hzsj'] = getKeyValueOut('汇总数据', hzsj);
......
...@@ -99,11 +99,6 @@ function getStartAndEndTimeYearList(startTime, endTime) { ...@@ -99,11 +99,6 @@ function getStartAndEndTimeYearList(startTime, endTime) {
} }
export function getKeyValue(data) { export function getKeyValue(data) {
let result = []; let result = [];
for (let key in data) { for (let key in data) {
......
...@@ -153,9 +153,6 @@ export async function get入孵企业数量变化趋势(type, time, state) { ...@@ -153,9 +153,6 @@ export async function get入孵企业数量变化趋势(type, time, state) {
} }
export async function getEnterpriseDetails(name, type) { export async function getEnterpriseDetails(name, type) {
let nowTime = new Date().valueOf(); let nowTime = new Date().valueOf();
......
...@@ -16,8 +16,7 @@ export async function getQyszhx(eId) { ...@@ -16,8 +16,7 @@ export async function getQyszhx(eId) {
企业科创分: { count: [], dataList: [], chartData:[]}, //count:所属国际二级行业,chartData:饼图 企业科创分: { count: [], dataList: [], chartData:[]}, //count:所属国际二级行业,chartData:饼图
股权结构: { dataList: [], titleList: ['key', 'value'] }, 股权结构: { dataList: [], titleList: ['key', 'value'] },
资质认证: {count:[], bodyList: [], headerList: [['生效时间', '证书类型', '状态']]}, //count:资质认证总数 资质认证: {count:[], bodyList: [], headerList: [['生效时间', '证书类型', '状态']]}, //count:资质认证总数
失信核查: {count:[], dataList:[]},//todo 失信详情: {count:[], dataList:[]},//todo
失信详情: {count:[], dataList: []},//todo
违法核查: {count:[], dataList: []},//todo 违法核查: {count:[], dataList: []},//todo
企业服务申请情况: { dataList: [], titleList: ['key', 'value'] }, 企业服务申请情况: { dataList: [], titleList: ['key', 'value'] },
企业服务申请类型: { dataList: [], titleList: ['key', 'value'] }, 企业服务申请类型: { dataList: [], titleList: ['key', 'value'] },
...@@ -115,12 +114,12 @@ export async function getQyszhx(eId) { ...@@ -115,12 +114,12 @@ export async function getQyszhx(eId) {
//企业风险动态:失信核查、失信详情、违法核查 //企业风险动态:失信核查、失信详情、违法核查
let 企业风险动态 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.失信核查, {eId}, ["eId", "liandate", "anno", "executegov", "executestatus", "publicdate", "executeno", "actionRemark", "amount"]); let 企业风险动态 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.失信核查, {eId}, ["eId", "liandate", "anno", "executegov", "executestatus", "publicdate", "executeno", "actionRemark", "amount"]);
let qyfxdt = {失信核查:[], 失信详情:[], 违法核查:[]}; let qyfxdt = {失信详情:[], 违法核查:[]};
企业风险动态.forEach( info => { 企业风险动态.forEach( info => {
qyfxdt.失信核查.push(info.actionRemark); qyfxdt.失信详情.push(info.actionRemark);
}) })
qyszhx.失信核查.count = [{key:"失信核查次数", value:企业风险动态.length}]; qyszhx.失信详情.count = [{key:"失信核查次数", value:企业风险动态.length}];
qyszhx.失信核查.dataList = qyfxdt.失信核查; qyszhx.失信详情.dataList = qyfxdt.失信详情;
let 严重违法犯罪 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.严重违法犯罪, {eId}, ["eId", "Type", "AddReason", "AddDate", "AddOffice", "RemoveReason", "RemoveDate", "RemoveOffice"]); let 严重违法犯罪 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.严重违法犯罪, {eId}, ["eId", "Type", "AddReason", "AddDate", "AddOffice", "RemoveReason", "RemoveDate", "RemoveOffice"]);
严重违法犯罪.forEach( info => { 严重违法犯罪.forEach( info => {
......
import moment = require("moment"); import moment = require("moment");
import { FOLLOWUPSTATUS, FUHUASTATE, NEEDCATEGORY, OFFLINEPROMOTION, ONLINEPROMOTION, OPERATIONALDATATYPE, PROMOTIONTYPE, TABLENAME } from "../../config/enum"; import { DEGREE, FOLLOWUPSTATUS, FUHUASTATE, NEEDCATEGORY, OFFLINEPROMOTION, ONLINEPROMOTION, OPERATIONALDATATYPE, PROMOTIONTYPE, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData"; import { selectData, selectManyTableData } from "./operationalData";
import { changeEnumValue } from "../../tools/eccEnum"; import { changeEnumValue } from "../../tools/eccEnum";
import { getChart, getYearList, get在孵企业面积, get在孵企业面积变化趋势 } from "./out"; import { getChart, getYearList, get在孵企业面积, get在孵企业面积变化趋势 } from "./out";
import { systemConfig } from "../../config/serverConfig"; import { systemConfig } from "../../config/serverConfig";
import { getMySqlMs } from "../../tools/systemTools"; import { getMySqlMs } from "../../tools/systemTools";
import { getKeyValue } from "./old/out";
function getStartAndEndTimeYearList(startTime, endTime) { function getStartAndEndTimeYearList(startTime, endTime) {
...@@ -86,31 +87,11 @@ export async function getZhyy() { ...@@ -86,31 +87,11 @@ export async function getZhyy() {
孵化器概况:[], 孵化器概况:[],
在孵企业面积占比:[], 在孵企业面积占比:[],
孵化运营:{ count:[], dataList:[] }, 孵化运营:{ count:[], dataList:[] },
运营推广:{ 运营推广:{ 线上推广:{count:"", dataList:[]}, 线下推广:{count:"", dataList:[]}},
线上推广:{count:"78%", dataList:[{key:"视频号", value:17}, {key:"小红书", value:16}, {key:"抖音", value:18}]}, 汇总数据:[],
线下推广:{count:"22%", dataList:[{key:"活动宣讲数", value:6}, {key:"三方机构合作", value:9}]} 本年新增就业:[],
}, 入孵企业就业人数排行:[],
拟入驻企业:[["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"]], 学历情况分析:[],
汇总数据:[
{key:"企业总营收额", value:"34450万"},
{key:"企业纳税", value:"2440万"},
{key:"知识产权", value:"263个"},
],
本年新增就业:[{key:"本年新增就业", value:"73人", yoy:"1.25%"}],
入孵企业就业人数排行:[
{key:"博士以上", value:6},
{key:"博士", value:12},
{key:"硕士", value:7},
{key:"专科", value:6},
{key:"其他", value:3},
],
学历情况分析:[
{key:"博士以上", value:6},
{key:"博士", value:12},
{key:"硕士", value:7},
{key:"专科", value:6},
{key:"其他", value:3},
],
本月新增规模:[{key:"本月新增规模", value:"827万", yoy:"-1.05%", qoq:"1.15%"}], 本月新增规模:[{key:"本月新增规模", value:"827万", yoy:"-1.05%", qoq:"1.15%"}],
入孵企业经营规模分析:[ 入孵企业经营规模分析:[
{key:"<1000万", value:"28%"}, {key:"<1000万", value:"28%"},
...@@ -194,10 +175,20 @@ export async function getZhyy() { ...@@ -194,10 +175,20 @@ export async function getZhyy() {
//运营推广 //运营推广
let promotionList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.运营推广信息表,{}, ["opId","promotionType", "promotionApp", "promotionNum"]); let promotionList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.运营推广信息表,{}, ["opId","promotionType", "promotionApp", "promotionNum"]);
let promotionInfo = {"线上推广": { count: '0%', dataList: [] }, "线下推广": { count: '0%', dataList: [] }}; let promotionInfo = {"线上推广": { count: '0%', dataList: [] }, "线下推广": { count: '0%', dataList: [] }};
let 线上推广 = { let 线上推广 = { total:0, apps:{} };
total:0, let 线下推广 = { total:0, apps:{} };
apps:{
ONLINEPROMOTION for (let key in ONLINEPROMOTION) {
let anyKey:any = key;
if (isNaN(anyKey)) {
线上推广.apps[key] = 0;
}
}
for (let key in OFFLINEPROMOTION) {
let anyKey:any = key;
if (isNaN(anyKey)) {
线下推广.apps[key] = 0;
} }
} }
...@@ -206,25 +197,199 @@ export async function getZhyy() { ...@@ -206,25 +197,199 @@ export async function getZhyy() {
let appStr = ""; let appStr = "";
if (info.promotionType == PROMOTIONTYPE.线上推广) { if (info.promotionType == PROMOTIONTYPE.线上推广) {
appStr = changeEnumValue(ONLINEPROMOTION, info.promotionApp); appStr = changeEnumValue(ONLINEPROMOTION, info.promotionApp);
promotionInfo["线上推广"][appStr] = info.promotionNum; 线上推广.apps[appStr] += info.promotionNum;
线上推广.total += info.promotionNum;
} else if (info.promotionType == PROMOTIONTYPE.线下推广) { } else if (info.promotionType == PROMOTIONTYPE.线下推广) {
appStr = changeEnumValue(OFFLINEPROMOTION, info.promotionApp); appStr = changeEnumValue(OFFLINEPROMOTION, info.promotionApp);
promotionInfo["线下推广"][appStr] = info.promotionNum; 线下推广.apps[appStr] += info.promotionNum;
线下推广.total += info.promotionNum;
} }
}) })
} }
// 计算百分比
let totalAll = 线上推广.total + 线下推广.total;
promotionInfo.线上推广.count = totalAll ? `${Math.round(线上推广.total / totalAll * 100)}%` : "0%";
promotionInfo.线下推广.count = totalAll ? `${Math.round(线下推广.total / totalAll * 100)}%` : "0%";
promotionInfo.线上推广.dataList = getKeyValue(线上推广.apps);
promotionInfo.线下推广.dataList = getKeyValue(线下推广.apps);
//汇总数据
let hzsj = {
企业总营收额:0,
企业纳税:0,
知识产权:0
}
let 知识产权 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, {}, []);
知识产权.forEach(info => {
hzsj.知识产权 += info.number;
})
let 营收情况 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, []);
营收情况.forEach(info => {
let { BI, TXP } = info;
hzsj.企业总营收额 += parseFloat(BI);
hzsj.企业纳税 += parseFloat(TXP);
});
zhyy.汇总数据 = getKeyValue(hzsj);
//入孵企业就业情况
let { bnjyxz, rfqyjyrsph, xlqkfx } = await get就业情况();
zhyy.本年新增就业 = getKeyValue(bnjyxz);
zhyy.入孵企业就业人数排行 = getKeyValue(rfqyjyrsph);
zhyy.学历情况分析 = getKeyValue(xlqkfx);
//本季度新增规模
let jingYingThisYear = moment().startOf("year").format("YYYY-MM-DD HH:mm:ss");
let benjidu = Math.floor(moment().month() / 3) + 1;
let 本季度营收dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { annual: jingYingThisYear, quarter:benjidu }, null);
let 本季度 = 0;
本季度营收dbList.forEach( info => {
本季度 += info.BI;
})
let 上季度营收dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { annual: jingYingThisYear, quarter:benjidu }, null);
let 上季度 = 0;
let 去年本季度 = 0;
let 本季度营收数据 = {本季度新增规模:0, 同比上季度:0, 环比同期:0};
//在孵企业营收占比
let jingYingList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { annual: jingYingThisYear }, null);
let 产业规模企业Map = {};
jingYingList.forEach(info => {
let { BI, TXP, eId } = info;
if (!产业规模企业Map[eId]) 产业规模企业Map[eId] = 0;
产业规模企业Map[eId] += parseFloat(BI);
hzsj.企业总营收额 += parseFloat(BI);
hzsj.企业纳税 += parseFloat(TXP);
});
let 产业规模分析List = [
{ num: 5000, key: ">5000万", value: 0 },
{ num: 2000, key: "2000-5000万", value: 0 },
{ num: 1000, key: "1000-2000万", value: 0 },
{ num: 1, key: "<1000万", value: 0 },
];
for (let key in 产业规模企业Map) {
let itemCount = 产业规模企业Map[key];
for (let i = 0; i < 产业规模分析List.length; i++) {
let { num } = 产业规模分析List[i];
if (itemCount > num) {
产业规模分析List[i].value += 1;
break;
}
}
}
let 在孵企业营收占比 = [];
产业规模分析List.forEach(info => {
let { key, value } = info;
在孵企业营收占比.push({ key, value });
})
return zhyy; return zhyy;
} }
/**
* 就业情况
*/
async function get就业情况() {
// 获取当前年份
let currentYear = new Date().getFullYear();
// 计算当前年份的开始时间和结束时间
const StartOfYear = new Date(`${currentYear}-01-01 00:00:00`).valueOf();
const EndOfYear = new Date(`${currentYear}-12-31 23:59:59`).valueOf();
// 计算去年的开始时间和结束时间
const StartOfLastYearYear = new Date(`${currentYear-1}-01-01 00:00:00`).valueOf();
const EndOfLastYearYear = new Date(`${currentYear-1}-12-31 23:59:59`).valueOf();
// 查询本年新增就业数据
let currentYearNewJobs = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { annual: { "%between%": [getMySqlMs(StartOfYear), getMySqlMs(EndOfYear)] } }, null);
// 查询去年同期新增就业数据
let lastYearMonthNewJobs = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { annual: { "%between%": [getMySqlMs(StartOfLastYearYear), getMySqlMs(EndOfLastYearYear)] } }, null);
//学历情况Map
let xlqkfx = {"专科":0, "本科":0, "硕士":0, "博士":0, "博士以上":0, "其他":0};
// 计算本年新增就业人数
let currentYearJobCount = 0;
currentYearNewJobs.forEach(info => {
let itemCount = 0;
if (info.zhuanKe) {
itemCount += parseInt(info.zhuanKe);
xlqkfx.专科 += parseInt(info.zhuanKe);
}
if (info.benKe) {
itemCount += parseInt(info.benKe);
xlqkfx.本科 += parseInt(info.benKe);
}
if (info.shuoshi) {
itemCount += parseInt(info.shuoshi);
xlqkfx.硕士 += parseInt(info.shuoshi);
}
if (info.boShi) {
itemCount += parseInt(info.boShi);
xlqkfx.博士 += parseInt(info.boShi);
}
if (info.boshiyishang) {
itemCount += parseInt(info.boshiyishang);
xlqkfx.博士以上 += parseInt(info.boshiyishang);
}
if (info.qiTa) {
itemCount += parseInt(info.qiTa);
xlqkfx.其他 += parseInt(info.qiTa);
}
currentYearJobCount += itemCount;
});
// 计算去年同期新增就业人数
let lastYearYearJobCount = 0;
lastYearMonthNewJobs.forEach(info => {
let itemCount = 0;
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
if (info.benKe) itemCount += parseInt(info.benKe);
if (info.shuoshi) itemCount += parseInt(info.shuoshi);
if (info.boShi) itemCount += parseInt(info.boShi);
if (info.boshiyishang) itemCount += parseInt(info.boshiyishang);
if (info.qiTa) itemCount += parseInt(info.qiTa);
lastYearYearJobCount += itemCount;
});
// 计算同比增长率
let growthRate = "";
if (lastYearYearJobCount !== 0) {
growthRate = (((currentYearJobCount - lastYearYearJobCount) / lastYearYearJobCount) * 100 ).toFixed(2) + "%";
}
let bnjyxz = { "本年新增就业":currentYearJobCount, "同比去年":growthRate };
/**
* 入孵企业就业人数排行
*/
let 就业includeConf = {};
就业includeConf[TABLENAME.参保记录] = { cloum: [], where: { annual: { "%between%": [getMySqlMs(StartOfYear), getMySqlMs(EndOfYear)] } } }
let 企业参保dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {}, ["eId", "enterpriseName"], 就业includeConf);
let rfqyjyrsph = [];
企业参保dbList.forEach(info => {
let { enterpriseName, enterprise_canbaos } = info;
rfqyjyrsph.push({key:enterpriseName, value:enterprise_canbaos.length});
});
rfqyjyrsph.sort( (a, b) => {
return b.value - a.value;
})
return { bnjyxz, rfqyjyrsph, xlqkfx};
}
......
...@@ -41,7 +41,7 @@ export function zhyyTableData() { ...@@ -41,7 +41,7 @@ export function zhyyTableData() {
let keyValueOrTitleList = ["毕业情况", "服务成果"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = ["毕业情况", "服务成果"];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList = []; let stringList = [];
let decollatePlanarList =[];//适配 表格 let decollatePlanarList =["拟入驻企业"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
......
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