Commit 66f99b85 by lixinming

no message

parent 4e86b316
...@@ -209,12 +209,13 @@ export async function enterpriseList(createType:number, fuHuaQiUscc:string, indu ...@@ -209,12 +209,13 @@ export async function enterpriseList(createType:number, fuHuaQiUscc:string, indu
* 管理后台端 * 管理后台端
* @param createType 新注册时间/迁入时间 * @param createType 新注册时间/迁入时间
* @param fuHuaQiUscc 所属孵化器 * @param fuHuaQiUscc 所属孵化器
* @param industry 行业领域 * @param industry 行业领域 数组
* @param isNaturalPersonHolding 自然人控股 * @param isNaturalPersonHolding 自然人控股
* @returns dataList * @returns 二维数组
*/ */
export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, type:Number) { export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, type:Number) {
let selectParam:any = {};
let selectParam:any = {}; //查询参数
if (type == configEnum.OUTPUTTYPE.当前数据) { if (type == configEnum.OUTPUTTYPE.当前数据) {
if (createType == 2 || createType == 3) { if (createType == 2 || createType == 3) {
selectParam.isCreate = createType == 2 ? true : false; selectParam.isCreate = createType == 2 ? true : false;
...@@ -225,9 +226,9 @@ export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string ...@@ -225,9 +226,9 @@ export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string
selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false; selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false;
} }
} }
selectParam.draftLock = true;//匹配已经提交入库的企业
let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap(); let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap();
selectParam.draftLock = true;
let dataBaseList = await enterpriseData.findEnterpriseList(selectParam ); let dataBaseList = await enterpriseData.findEnterpriseList(selectParam );
let dataList = []; let dataList = [];
dataBaseList.forEach( info => { dataBaseList.forEach( info => {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
*/ */
import { BaseParamUpdateConfig, OrganizationParamUpdateConfig } from "../../config/checkParamConfig"; import { BaseParamUpdateConfig, OrganizationParamUpdateConfig } from "../../config/checkParamConfig";
import { findEnterpriseCountByFuHuaQiUscc, groupFindEnterprise } from "../../data/enterprise/enterprise"; import { findEnterpriseCountByFuHuaQiUscc, groupFindEnterpriseCount } from "../../data/enterprise/enterprise";
import * as fuhuaqiData from "../../data/fuHuaQi/fuhuaqi"; import * as fuhuaqiData from "../../data/fuHuaQi/fuhuaqi";
import * as resultConfig from "../../config/ojbectResultKeyConfig"; import * as resultConfig from "../../config/ojbectResultKeyConfig";
import * as configEnum from "../../config/enum"; import * as configEnum from "../../config/enum";
...@@ -151,6 +151,8 @@ export async function updateOrganizationData(uscc:string, param) { ...@@ -151,6 +151,8 @@ export async function updateOrganizationData(uscc:string, param) {
* @param lv 孵化器等级 * @param lv 孵化器等级
* @param institutionalNature 机构性质 * @param institutionalNature 机构性质
* @param industry 领域 * @param industry 领域
* @param operationModel 运营模式
* @param foundingTeam 创业团队
* @param page 页数 * @param page 页数
* @returns * @returns
*/ */
...@@ -162,7 +164,7 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind ...@@ -162,7 +164,7 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind
if (operationModel) selectParam.operationModel = operationModel; if (operationModel) selectParam.operationModel = operationModel;
if (foundingTeam) selectParam.foundingTeamType = foundingTeam; if (foundingTeam) selectParam.foundingTeamType = foundingTeam;
let enterpriseMap = await groupFindEnterprise();//企业总数 let enterpriseMap = await groupFindEnterpriseCount();//企业总数
let dataBaseList = await fuhuaqiData.findFuHuaQiListByPage(selectParam, (page-1)*10 ); let dataBaseList = await fuhuaqiData.findFuHuaQiListByPage(selectParam, (page-1)*10 );
...@@ -189,12 +191,7 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind ...@@ -189,12 +191,7 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind
changeData.industry = changeEnumValue(configEnum.FUHUAINDUSTRY, changeData.industry); changeData.industry = changeEnumValue(configEnum.FUHUAINDUSTRY, changeData.industry);
changeData.institutionalNature = changeEnumValue(configEnum.INSTITUTIONALNATURE, changeData.institutionalNature); changeData.institutionalNature = changeEnumValue(configEnum.INSTITUTIONALNATURE, changeData.institutionalNature);
changeData.operationModel = changeEnumValue(configEnum.OPERATIONMODEL, changeData.operationModel); changeData.operationModel = changeEnumValue(configEnum.OPERATIONMODEL, changeData.operationModel);
if (changeData.operationModel == "_投资__孵化_类型"){
changeData.operationModel = changeData.operationModel.replace("__","+");
changeData.operationModel = changeData.operationModel.replace("_","“");
changeData.operationModel = changeData.operationModel.replace("_","”");
}
changeData.foundingTeamStr = "无"; changeData.foundingTeamStr = "无";
let foundingTeam = []; let foundingTeam = [];
if (changeData.foundingTeam && changeData.foundingTeam.length) { if (changeData.foundingTeam && changeData.foundingTeam.length) {
...@@ -223,87 +220,133 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind ...@@ -223,87 +220,133 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind
/** /**
* 导出符合条件的孵化器基本信息数据 * 导出符合条件的孵化器基本信息数据
* @param lv * @param lv 孵化器等级
* @param institutionalNature * @param institutionalNature 机构性质
* @param industry * @param industry 领域
* @param operationModel 运营模式
* @param foundingTeam 创业团队
* @param type 导出类型 OUTPUTTYPE 枚举
* @returns * @returns
*/ */
export async function outPutFuHuaQiBaseData(lv:number, institutionalNature:number, industry:number, type:Number) { export async function outPutFuHuaQiBaseData(lv:number, institutionalNature:number, industry:number, operationModel:number, foundingTeam:number, type:Number) {
let selectParam:any = {}; let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据) { if (type == configEnum.OUTPUTTYPE.当前数据) {
if (lv) selectParam.lv = lv; if (lv) selectParam.lv = lv;
if (operationModel) selectParam.operationModel = operationModel;
if (institutionalNature) selectParam.institutionalNature = institutionalNature; if (institutionalNature) selectParam.institutionalNature = institutionalNature;
if (industry) selectParam.industry = industry; if (industry) selectParam.industry = industry;
if (foundingTeam) selectParam.foundingTeamType = foundingTeam;
} }
let enterpriseMap = await groupFindEnterprise();//企业总数 let enterpriseMap = await groupFindEnterpriseCount();//拥有的企业
let dataBaseList = await fuhuaqiData.findFuHuaQiList(selectParam); let dataBaseList = await fuhuaqiData.findFuHuaQiList(selectParam);
let dataList = [];
let keyList = [
"name",//名称
"operationName",//运营机构名称
"uscc",//统一信用代码
"enterpriseTotal",//企业总数
"virtualEnterpriseNum",//虚拟孵化
"numOfEntities",//实体孵化
"logonTime",//注册时间
"incubatedAcreage",//在孵面积
"acreageTotal",//孵化器总面积
"acreagePersonalUse",//孵化器自用面积
"lv",//孵化器级别
"identificationTime",//认定时间
"industry",//领域
"institutionalNature",//机构性质
"liaison",//联系人
"liaisonPhone",//联系电话
"personInCharge",//负责人
"personInChargePhone",//负责人联系电话
"operationModel",//运营模式
"foundingTeamType",//创业团队类型
// "hatchingGround",//经备案孵化场地
// "foundingTeam",//创业团队
];
let titleList = [
"名称", "运营机构名称", "统一信用代码", "企业总数", "虚拟孵化", "实体孵化",
"注册时间", "在孵面积", "孵化器总面积", "孵化器自用面积", "孵化器级别", "认定时间",
"领域", "机构性质", "联系人", "联系电话", "负责人", "负责人联系电话"
];
let dataList = [];
let maxTeamNumber = 0;//最大团队数
let maxHatching = 0;//最大场地数
dataBaseList.forEach( info => { dataBaseList.forEach( info => {
let changeData:any = extractData(resultConfig.FuHuaQiBaseListConfig, info, true); let changeData:any = extractData(resultConfig.FuHuaQiBaseListConfig, info, true);//截取特定的字段
let enterpriseTotal = enterpriseMap[info.uscc] || 0;
let numOfEntities = enterpriseTotal - (info.virtualEnterpriseNum || 0 );
numOfEntities = numOfEntities < 0 ? 0 : numOfEntities;
changeData.enterpriseTotal = enterpriseTotal; const EnterpriseTotal = enterpriseMap[info.uscc] || 0; //企业总数
changeData.numOfEntities = numOfEntities; let numOfEntities = EnterpriseTotal - (info.virtualEnterpriseNum || 0 ); //实体企业
changeData.enterpriseTotal = EnterpriseTotal;
changeData.numOfEntities = numOfEntities < 0 ? 0 : numOfEntities;
changeData.lv = changeEnumValue(configEnum.FUHUAQILV, changeData.lv); changeData.lv = changeEnumValue(configEnum.FUHUAQILV, changeData.lv);
changeData.industry = changeEnumValue(configEnum.FUHUAINDUSTRY, changeData.industry); changeData.industry = changeEnumValue(configEnum.FUHUAINDUSTRY, changeData.industry);
changeData.institutionalNature = changeEnumValue(configEnum.INSTITUTIONALNATURE, changeData.institutionalNature); changeData.institutionalNature = changeEnumValue(configEnum.INSTITUTIONALNATURE, changeData.institutionalNature);
changeData.operationModel = changeEnumValue(configEnum.OPERATIONMODEL, changeData.operationModel); changeData.operationModel = changeEnumValue(configEnum.OPERATIONMODEL, changeData.operationModel);
if (changeData.operationModel == "_投资__孵化_类型"){ changeData.foundingTeamType = changeEnumValue(configEnum.TEAM, changeData.foundingTeamType) || "无";
changeData.operationModel = changeData.operationModel.replace("__","+");
changeData.operationModel = changeData.operationModel.replace("_","“");
changeData.operationModel = changeData.operationModel.replace("_","”");
}
changeData.foundingTeamStr = "无"; if (changeData.foundingTeam && changeData.foundingTeam.length ) {
let foundingTeam = []; maxTeamNumber = Math.max(changeData.foundingTeam.length, maxTeamNumber);
if (changeData.foundingTeam && changeData.foundingTeam.length) { }
changeData.foundingTeam.forEach(item => { if (changeData.hatchingGround && changeData.hatchingGround.length ) {
let {memberName, memberAge, memberSchool, des} = item; maxHatching = Math.max(changeData.hatchingGround.length, maxHatching);
let type = changeEnumValue(configEnum.TEAM, item.type);//人才类型
foundingTeam.push({
memberName, memberAge, memberSchool, des, type,
memberSex : changeEnumValue(configEnum.SEX, item.memberSex),//成员性别
memberDEGREE : changeEnumValue(configEnum.DEGREE, item.memberDEGREE),//成员最高学历
});
// item.memberDEGREE = changeEnumValue(configEnum.DEGREE, item.foundingTeamStr);//成员最高学历
/* 这里兼容了一下,团队类型数据库里存到了每一个人的信息里 以防后续要修改 */
changeData.foundingTeamStr = type;
});
changeData.foundingTeam = foundingTeam;
} }
dataList.push(changeData);
});
let keyList = [
"name","operationName","uscc","virtualEnterpriseNum","logonTime",
"incubatedAcreage", "acreageTotal", "acreagePersonalUse", "lv", "identificationTime",
"industry", "institutionalNature", "liaison", "liaisonPhone", "personInCharge",
"personInChargePhone", "personInChargeAdd", "siteAcreage", "leasePrice"
];
let titleList = [
"名称", "运营机构名称", "统一信用代码", "虚拟企业数量", "注册时间",
"在孵面积", "孵化器总面积", "孵化器自用面积", "孵化器级别", "认定时间",
"领域", "机构性质", "联系人", "联系电话", "负责人",
"负责人联系电话", "孵化场地地址", "孵化场地面积", "孵化场地出租单价"
];
let result = [titleList];
dataList.forEach(info => {
let subList = []; let subList = [];
keyList.forEach(subInfo => { keyList.forEach(subInfo => {
subList.push(info[subInfo] || ''); subList.push(info[subInfo] || '');
}); });
result.push(subList);
dataList.push(subList);
});
let teamKeyList = ["type", "memberName", "memberSex", "memberAge", "memberDEGREE", "memberSchool", "des"];
let teamTitleList = ["人才类型", "成员姓名", "成员性别", "成员年龄", "成员最高学历", "毕业学校", "履历描述"];
/**得到最大值之后生成下标 */
for (let i = 0; i < maxTeamNumber; i++) {
let teamNum = i+1;
teamTitleList.forEach(title => {
titleList.push(`成员${teamNum}-${title}`);
});
}
let hatchingStartIndex = teamKeyList.length;
/**得到最大值之后生成下标 */
let hatchingKeyList = [ "personInChargeAdd", "siteAcreage", "leasePrice" ];
let hatchingTitleList = ["孵化场地地址", "孵化场地面积", "孵化场地出租单价" ];
for (let i = 0; i < maxTeamNumber; i++) {
let teamNum = i+1;
hatchingTitleList.forEach(title => {
titleList.push(`场地${teamNum}-${title}`);
});
}
dataBaseList.forEach((info, index) => {
if (info.foundingTeam && info.foundingTeam.length ) {
info.foundingTeam.forEach(teamInfo => {
teamKeyList.forEach( teamKey => {
let addValue = teamInfo[teamKey];
if (teamKey == "type") addValue = changeEnumValue(configEnum.TEAM, addValue);
if (teamKey == "memberSex") addValue = changeEnumValue(configEnum.SEX, addValue);
if (teamKey == "memberDEGREE") addValue = changeEnumValue(configEnum.DEGREE, addValue);
dataList[index].push(addValue);
});
});
}
if (info.hatchingGround && info.hatchingGround.length ) {
info.hatchingGround.forEach((hatchingInfo, hatchingIndex) => {1
hatchingKeyList.forEach( (hatchingKey, hatchingKeyIndex) => {
let addIndex = hatchingStartIndex + ( (hatchingIndex * 3 ) + (hatchingKeyIndex) )
dataList[index][addIndex] = hatchingInfo[hatchingKey];
});
});
}
}); });
return result; dataList.unshift(titleList)
return dataList;
} }
\ No newline at end of file
...@@ -26,6 +26,7 @@ export const FuHuaQiBaseListConfig = { ...@@ -26,6 +26,7 @@ export const FuHuaQiBaseListConfig = {
hatchingGround:{key:"经备案孵化场地"}, hatchingGround:{key:"经备案孵化场地"},
foundingTeam:{key:"创业团队"}, foundingTeam:{key:"创业团队"},
operationModel:{key:"运营模式"}, operationModel:{key:"运营模式"},
foundingTeamType:{key:"创业团队类型"}
}; };
/** /**
...@@ -61,6 +62,7 @@ export const EnterpriseFinancingInfoConfig = { ...@@ -61,6 +62,7 @@ export const EnterpriseFinancingInfoConfig = {
fuHuaQiInvestment:{key:"孵化器是否投资"}, fuHuaQiInvestment:{key:"孵化器是否投资"},
fuHuaQiInvestmentAmount:{key:"孵化器投资金额(万元)"},// fuHuaQiInvestmentAmount:{key:"孵化器投资金额(万元)"},//
fuHuaQiInvestmentStyle:{key:"孵化器投资方式"},// fuHuaQiInvestmentStyle:{key:"孵化器投资方式"},//
financingRounds:{key:"融资轮次"}
}; };
/** /**
......
...@@ -117,7 +117,7 @@ export async function findEnterpriseCountByFuHuaQiUscc(fuHuaQiUscc:string) { ...@@ -117,7 +117,7 @@ export async function findEnterpriseCountByFuHuaQiUscc(fuHuaQiUscc:string) {
* 聚合查询 孵化器所拥有的企业数量 * 聚合查询 孵化器所拥有的企业数量
* @returns {} key=孵化器统一信用 value=企业数量 * @returns {} key=孵化器统一信用 value=企业数量
*/ */
export async function groupFindEnterprise() { export async function groupFindEnterpriseCount() {
let match = {draftLock:true};//前置条件 let match = {draftLock:true};//前置条件
let dataList = await enterpriseModel.aggregate([{$match:match},{$group:{_id:"$fuHuaQiUscc",count:{$sum:1}}}]).exec(); let dataList = await enterpriseModel.aggregate([{$match:match},{$group:{_id:"$fuHuaQiUscc",count:{$sum:1}}}]).exec();
let result = {}; let result = {};
......
...@@ -46,7 +46,7 @@ const fuHuaQiSchema = new Schema({ ...@@ -46,7 +46,7 @@ const fuHuaQiSchema = new Schema({
personInChargePhone:String,//负责人联系电话 personInChargePhone:String,//负责人联系电话
hatchingGround:{type:[hatchingGroundSchema], default:[] },//经备案孵化场地 hatchingGround:{type:[hatchingGroundSchema], default:[] },//经备案孵化场地
foundingTeam:{type:[foundingTeamSchema], default:[]},//创业团队 foundingTeam:{type:[foundingTeamSchema], default:[]},//创业团队
foundingTeamType:{type:Number, default:0},//创业团队类型 foundingTeamType:{type:Number, default:1},//创业团队类型
operationModel:{type:[Number], default:[]},//运营模式 operationModel:{type:[Number], default:[]},//运营模式
operationModelDes:String,//运营模式描述 operationModelDes:String,//运营模式描述
/**登录相关 */ /**登录相关 */
......
...@@ -103,10 +103,10 @@ async function addUser(req, res) { ...@@ -103,10 +103,10 @@ async function addUser(req, res) {
async function outPutFuHuaQiData(req, res) { async function outPutFuHuaQiData(req, res) {
let reqConf = {lv: 'Number', institutionalNature: 'Number', industry: 'Number', dataType:'Number', type:'Number'}; let reqConf = { lv: 'Number', institutionalNature: 'Number', industry: 'Number', type:'Number', operationModel:"Number", foundingTeam:"Number" };
let { lv, institutionalNature, industry, type } = eccReqNotMustHaveParam(reqConf, req.body); let { lv, institutionalNature, industry, type, operationModel, foundingTeam } = eccReqNotMustHaveParam(reqConf, req.body);
let dataList = await baseBiz.outPutFuHuaQiBaseData(lv, institutionalNature, industry, type); let dataList = await baseBiz.outPutFuHuaQiBaseData(lv, institutionalNature, industry, operationModel, foundingTeam, type);
let name = `孵化器列表${getTimeKey()}.xlsx`; let name = `孵化器列表${getTimeKey()}.xlsx`;
......
...@@ -218,7 +218,13 @@ async function initEnterprise() { ...@@ -218,7 +218,13 @@ async function initEnterprise() {
if (i == 8 && item) { if (i == 8 && item) {
value = new Date((item - 25569 ) * 86400 * 1000 + utc.getTimezoneOffset()*1000*60); value = new Date((item - 25569 ) * 86400 * 1000 + utc.getTimezoneOffset()*1000*60);
} }
if ([8,9,15, 18].indexOf(i) > -1 ) { if (i == 9 && item) {
value = new Date((item - 25569 ) * 86400 * 1000 + utc.getTimezoneOffset()*1000*60);
}
if (i == 15 && item) {
value = new Date((item - 25569 ) * 86400 * 1000 + utc.getTimezoneOffset()*1000*60);
}
if ([18].indexOf(i) > -1 ) {
if(!item) value = 0; if(!item) value = 0;
else value = new Date(value).valueOf() else value = new Date(value).valueOf()
} }
......
...@@ -32,11 +32,25 @@ export function checkEnumValue(enumConf, value:any) { ...@@ -32,11 +32,25 @@ export function checkEnumValue(enumConf, value:any) {
export function changeEnumValue(enumConf, value:any) { export function changeEnumValue(enumConf, value:any) {
if (!value) return ''; if (!value) return '';
if ( typeof value == 'number' ) { if ( typeof value == 'number' ) {
return enumConf[value]; let str = enumConf[value];
/** 特化处理 中文引号在枚举中不适用*/
if (str == "_投资__孵化_类型") {
str = str.replace("__","+");
str = str.replace("_","“");
str = str.replace("_","”");
}
return str
} }
let str = ""; let str = "";
value.forEach((item, index) => { value.forEach((item, index) => {
str += enumConf[item]; let subStr = enumConf[item];
/** 特化处理 中文引号在枚举中不适用*/
if (subStr == "_投资__孵化_类型") {
subStr = subStr.replace("__","+");
subStr = subStr.replace("_","“");
subStr = subStr.replace("_","”");
}
str += subStr;
if (index == value.length-1) str+=""; if (index == value.length-1) str+="";
else str += "," else str += ","
}); });
......
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