Commit 4b78d84c by chenjinjing

no message

parent 4c6fb6cc
<config>
<port>13280</port>
<img>http://101.89.111.202:13280</img>
<mongodb>
<path>192.168.0.105</path>
<port>27017</port>
......
......@@ -381,6 +381,14 @@ export async function enterpriseBusinessList(selectStr:string, industry:number,
param.year = year;
}
let enterpriseList = await enterpriseData.findEnterpriseListByParam({});
let enterpriseMap = {};
enterpriseList.forEach( info => {
enterpriseMap[info.uscc] = {
name: info.name,
industry: info.industry
};
})
let list = await businessData.findEnterpriseBusinessToPageByParam(param, page);
let dataCount = await businessData.findEnterpriseBusinessCountByParam(param);
......@@ -388,16 +396,23 @@ export async function enterpriseBusinessList(selectStr:string, industry:number,
let dataList = [];
list.forEach(info => {
let item = {
uscc:info.uscc,
name:info.name,
year:info.year,
industry:changeEnumManyValue(INDUSTRY, info.industry)[0] || "-",
BI:info.BI,
RD:info.RD,
TXP:info.TXP,
};
dataList.push(item);
let industryStr:any = "-";
if (enterpriseMap[info.uscc]) {
if (enterpriseMap[info.uscc].industry) {
industryStr = changeEnumManyValue(INDUSTRY, enterpriseMap[info.uscc].industry)
}
let item = {
uscc:info.uscc,
name:enterpriseMap[info.uscc].name,
year:info.year,
// industry:changeEnumManyValue(INDUSTRY, info.industry)[0] || "-",
industry:industryStr,
BI:info.BI,
RD:info.RD,
TXP:info.TXP,
};
dataList.push(item);
}
});
return {dataList, dataCount};
......@@ -488,7 +503,6 @@ export async function outPutBusinessData(selectStr:string, industry:number, year
export async function enterpriseVisitList(selectStr:string, researchTime:number, researchType:number, appealType:number, state:number, page:number) {
let param:any = {};
let list = await visitData.findDataToPage(param, page);
......@@ -500,8 +514,8 @@ export async function enterpriseVisitList(selectStr:string, researchTime:number,
let researchTime = moment(info.researchTime).format("YYYY-MM-DD");
let accompanyStr = "";
info.accompany.forEach((item, index) => {
accompanyStr += `${userMap[item]}`;
if (index < info.accompany.length-1) accompanyStr += "、";
accompanyStr += userMap[item]|| '' ;
if (userMap[item] && (index < info.accompany.length-1)) accompanyStr += "、";
})
let item = {
name:info.name,
......@@ -511,7 +525,7 @@ export async function enterpriseVisitList(selectStr:string, researchTime:number,
researchType:changeEnumValue(RESEARCHTYPE, info.researchType),
appeal:info.appeal,
state:changeEnumValue(SOLVESTATECLIENT, info.state),
accompany:accompanyStr,
accompany:accompanyStr || '无陪同人员',
contacts:info.contacts,
contactsPhone:info.contactsPhone
};
......@@ -1240,21 +1254,37 @@ export async function homeBase() {
export async function homeEnterpriseChange(year:number) {
let dataList = [
{key:"5月", value:0},
{key:"6月", value:0},
{key:"7月", value:0},
{key:"8月", value:0},
{key:"9月", value:0},
{key:"10月", value:0},
{key:"11月", value:0},
{key:"12月", value:0},
{key:"1月", value:0},
{key:"2月", value:0},
{key:"3月", value:0},
{key:"4月", value:45023},
];
return {dataList}
let dataConf = {
2025: [
{key:"1月", value:0},
{key:"2月", value:0},
{key:"3月", value:0},
{key:"4月", value:4628},
{key:"5月", value:0},
{key:"6月", value:0},
{key:"7月", value:0},
{key:"8月", value:0},
{key:"9月", value:0},
{key:"10月", value:0},
{key:"11月", value:0},
{key:"12月", value:0},
],
2026: [
{key:"1月", value:0},
{key:"2月", value:0},
{key:"3月", value:0},
{key:"4月", value:0},
{key:"5月", value:0},
{key:"6月", value:0},
{key:"7月", value:0},
{key:"8月", value:0},
{key:"9月", value:0},
{key:"10月", value:0},
{key:"11月", value:0},
{key:"12月", value:0},
]
}
return {dataList:dataConf[year]}
}
......
......@@ -183,7 +183,7 @@ ${JSON.stringify(list)}
// index ++;
// }
let out = fs.createWriteStream( path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", `aidoc_${new Date().valueOf()}.docx` ));
let out = fs.createWriteStream( path.join(__dirname.substring(0,__dirname.indexOf("out")), "files", `aidoc.docx` ));
docx.generate(out);
return {isSuccess:true};
}
......
......@@ -17,6 +17,171 @@ const xlsx = require('node-xlsx');
const path = require('path');
const fs = require('fs');
async function 未来产业企业筛选() {
let 企业名单 = onceSheetBecomeOfblockData('标记全部企业.xlsx', "同步企业名单");
let dataList = 企业名单[0].blockData;
let matchList = [];
let 店铺 = [];
let 饭店 = [];
let 吊销 = [];//吊销企业
let 药房 = [];
let 棋牌 = [];
let 旅馆 = [];
let 人力资源 = [];
let 养老院 = [];
let 物业管理 = [];
let 房地产开发租赁销售 = [];
let 学校 = [];
let map = {};
dataList.forEach((subList, index) => {
if (!index) return;
let 国标大类 = subList[23];
let 国标一类 = subList[24];
let 国标二类 = subList[25];
let 企查查大类 = subList[27];
let 企查查一类 = subList[28];
let 企查查二类 = subList[29];
let 经营状态 = subList[2];
let 类型 = subList[16];
let 名称 = subList[0];
if(!经营状态) return;
let 企业机构类型 = 匹配企业类型(类型);
if (!subList[2] || cs(经营状态, "注销") || cs(经营状态, "吊销") ) {
吊销.push(subList);
return;
}
if (!map[类型]) map[类型] =0;
map[类型] += 1;
//去除个体户
if (cs(类型, "个体")) {
if (subList[0].match(/^.*店$/) || cs(名称, "发廊") || ( cs(名称, "五金") && ( cs(国标大类, "零售") ||cs(国标大类, "批发") ) ) ) {
店铺.push(subList);
return;
} else if (cs(名称, "药房") || cs(名称, "药店")) {
药房.push(subList);
return;
} else if ( cs(名称, "棋牌") ) {
棋牌.push(subList);
return;
} else if ( cs(名称, "旅馆") || cs(名称, "宾馆") ) {
旅馆.push(subList);
} else if ( cs(名称, "餐饮") || cs(名称, "食品") || cs(名称, "咖啡") ) {
if (cs(国标大类, "零售")) 店铺.push(subList);
else 饭店.push(subList);
} else {
店铺.push(subList);
}
return;
}
//名字筛选
if ( cs(名称, "发廊") || cs(名称, "美容") ) {
店铺.push(subList);
return;
}
if ( cs(名称, "五金") && ( cs(国标大类, "零售") ||cs(国标大类, "批发")) ) {
店铺.push(subList);
return;
}
if (cs(名称, "药房") || cs(名称, "药店")) {
药房.push(subList);
return;
}
if ( cs(名称, "棋牌") ) {
棋牌.push(subList);
return;
}
if ( cs(名称, "旅馆") || cs(名称, "宾馆") ) {
旅馆.push(subList);
return;
}
if ( cs(名称, "幼儿园") || cs(名称, "中学") || cs(名称, "小学") || cs(名称, "高中") || cs(名称, "学校") ) {
学校.push(subList);
return;
}
//行业类别
if ( 多字段判断("零售", 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类 ) ) {
店铺.push(subList);
return;
}
if ( 多字段判断("摄影", 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类 ) ) {
店铺.push(subList);
return;
}
if ( 多字段判断("餐饮", 国标二类, 企查查二类 ) ) {
饭店.push(subList);
return;
}
if (多字段判断("住宿", 国标二类, 企查查二类 )) {
if (cs(名称, "养老")) 养老院.push(subList);
else 旅馆.push(subList);
return;
}
if ( 多字段判断("人力", 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类 )) {
人力资源.push(subList);
return;
}
if ( 多字段判断("房地", 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类 )) {
if ( 多字段判断("物业", 国标二类, 企查查二类 )) 物业管理.push(subList);
else 房地产开发租赁销售.push(subList);
return;
}
matchList.push(subList);
});
let 第二轮筛选 = [];
let 国标去重 = {};
let 国标二类去重 = {};
let 企查查去重 = {};
let 企查查二类去重 = {};
matchList.forEach(subList => {
let 国标大类 = subList[23];
let 国标一类 = subList[24];
let 国标二类 = subList[25];
let 企查查大类 = subList[27];
let 企查查一类 = subList[28];
let 企查查二类 = subList[29];
国标去重[国标一类] = 1;
if (国标一类 == "医药制造业" || 企查查大类 == "医药生物") {
第二轮筛选.push(subList);
}
企查查去重[企查查大类] = 1;
});
let data = [
{
name:"sheet1",
data:第二轮筛选
}
];
let buff = xlsx.build(data);
fs.writeFileSync(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '生物医药.xlsx' ), buff);
console.log();
}
export async function test111() {
let excelInfo = onceSheetBecomeOfblockData("目标名单.xlsx", "Sheet1");
let dataList = excelInfo[0]["blockData"];
......
......@@ -33,8 +33,8 @@ export async function spaceList(name:string, page:number) {
spaceId: info.spaceId,
name: info.name, // 物业名称
address: info.address || "-", // 地址
totalArea: info.totalArea || "-", // 总面积(平方米)
leasingRate: info.leasingRate || "-", // 出租率(0-100之间的数字)%
totalArea: info.totalArea ? info.totalArea + "㎡" : "-", // 总面积(平方米)
leasingRate: info.leasingRate ? info.leasingRate + "%" : "-", // 出租率(0-100之间的数字)%
vacantAreas: info.vacantAreas || [], // 空置区域(如:183.6m²4楼)
supportPolicies: info.supportPolicies || [], // 支持政策:孵化器补贴、青创15条等
description: info.description || "-", // 简介或项目描述
......@@ -43,13 +43,13 @@ export async function spaceList(name:string, page:number) {
environmentalAssessment: info.environmentalAssessment || "-", // 环评
deliveryStandard: changeEnumValue(DELIVERYSTANDARD, info.deliveryStandard), // 交付标准
deliveryRemark: info.deliveryRemark || "-", // 交付备注说明
floorHeight: info.floorHeight || "-", // 层高(m)
floorLoad: info.floorLoad || "-", // 承重(KN/m²)
standardFloorArea: info.standardFloorArea || "-", // 标准层面积(m²)
minLeasableArea: info.minLeasableArea || "-", // 最小可租面积(m²)
powerSupply: info.powerSupply || "-", // 电量(w/㎡)
parkingSpaces: info.parkingSpaces || "-", // 停车位数量
parkingFee: info.parkingFee || "-", // 停车费
floorHeight: info.floorHeight ? info.floorHeight + "m" : "-", // 层高(m)
floorLoad: info.floorLoad ? info.floorLoad + "KN/m²" : "-", // 承重(KN/m²)
standardFloorArea: info.standardFloorArea ? info.standardFloorArea + "m²" : "-", // 标准层面积(m²)
minLeasableArea: info.minLeasableAre ? info.minLeasableAre + "m²" : "-", // 最小可租面积(m²)
powerSupply: info.powerSupply ? info.powerSupply + "w/㎡" : "-", // 电量(w/㎡)
parkingSpaces: info.parkingSpaces ? info.parkingSpaces + "个" : "-", // 停车位数量
parkingFee: info.parkingFee + "元/个" || "-", // 停车费
deliveryTime: moment(info.deliveryTime).format("YYYY-MM-DD") || "-", // 交付时间 时间戳
contactPerson: info.contactPerson || "-", // 项目联系人
surroundingFacilities: info.surroundingFacilities || "-", // 周边配套
......@@ -75,14 +75,25 @@ export async function addSpace(param) {
let spaceInfo = await spaceData.findSpaceByName(param.name);
if (spaceInfo.name) throw new BizError(ERRORENUM.空间已存在);
param.spaceId = getInformationId();
param.createdAt = Date.now();;
param.updatedAt = Date.now();
param.vacantAreas = param.vacantAreas;
param.supportPolicies = param.supportPolicies;
await spaceData.addSpace(param);
let addInfo:any = {};
for (let key in param) {
addInfo[key] = param[key]
}
addInfo.spaceId = getInformationId();
addInfo.createdAt = Date.now();;
addInfo.updatedAt = Date.now();
let attachments = [];
if (param.attachments) {
param.attachments.forEach( info => {
attachments.push(info.url);
})
}
addInfo.attachments = attachments;
await spaceData.addSpace(addInfo);
return successResult();
}
......@@ -191,7 +202,7 @@ export async function spaceXCXList(name:string) {
attachments: convertFilesToObjectArray(info.attachments), //附件信息
name: info.name, // 物业名称
address: info.address || "-", // 地址
totalArea: info.totalArea || "-", // 总面积(平方米)
totalArea: info.totalArea|| "-", // 总面积(平方米)
leasingRate: info.leasingRate || "-", // 出租率(0-100之间的数字)%
};
dataList.push(item);
......@@ -216,7 +227,7 @@ export async function getSpaceXCXInfo(spaceId:string) {
spaceId: spaceInfo.spaceId,
name: spaceInfo.name, // 物业名称
address: spaceInfo.address || "-", // 地址
totalArea: spaceInfo.totalArea || "-", // 总面积(平方米)
totalArea: spaceInfo.totalArea ? spaceInfo.totalArea + "㎡" : "-", // 总面积(平方米)
leasingRate: spaceInfo.leasingRate || "-", // 出租率(0-100之间的数字)%
vacantAreas: spaceInfo.vacantAreas || [], // 空置区域(如:183.6m²4楼)
supportPolicies: spaceInfo.supportPolicies || [], // 支持政策:孵化器补贴、青创15条等
......@@ -226,13 +237,13 @@ export async function getSpaceXCXInfo(spaceId:string) {
environmentalAssessment: spaceInfo.environmentalAssessment || "-", // 环评
deliveryStandard: spaceInfo.deliveryStandard, // 交付标准
deliveryRemark: spaceInfo.deliveryRemark || "-", // 交付备注说明
floorHeight: spaceInfo.floorHeight || "-", // 层高(m)
floorLoad: spaceInfo.floorLoad || "-", // 承重(KN/m²)
standardFloorArea: spaceInfo.standardFloorArea || "-", // 标准层面积(m²)
minLeasableArea: spaceInfo.minLeasableArea || "-", // 最小可租面积(m²)
powerSupply: spaceInfo.powerSupply || "-", // 电量(w/㎡)
parkingSpaces: spaceInfo.parkingSpaces || "-", // 停车位数量
parkingFee: spaceInfo.parkingFee || "-", // 停车费
floorHeight: spaceInfo.floorHeight ? spaceInfo.floorHeight + "m" : "-", // 层高(m)
floorLoad: spaceInfo.floorLoad ? spaceInfo.floorLoad + "KN/m²" : "-", // 承重(KN/m²)
standardFloorArea: spaceInfo.standardFloorArea ? spaceInfo.standardFloorArea + "㎡" : "-", // 标准层面积(m²)
minLeasableArea: spaceInfo.minLeasableArea ? spaceInfo.minLeasableArea + "㎡" : "-", // 最小可租面积(m²)
powerSupply: spaceInfo.powerSupply ? spaceInfo.powerSupply + "w/㎡" : "-", // 电量(w/㎡)
parkingSpaces: spaceInfo.parkingSpaces ? spaceInfo.parkingSpaces + "个" : "-", // 停车位数量
parkingFee: spaceInfo.parkingFee ? spaceInfo.parkingFee + "元/个" : "-", // 停车费
deliveryTime: spaceInfo.deliveryTime || "-", // 交付时间 时间戳
contactPerson: spaceInfo.contactPerson || "-", // 项目联系人
surroundingFacilities: spaceInfo.surroundingFacilities || "-", // 周边配套
......
......@@ -70,7 +70,7 @@ export const AddVisitConfig = {
uscc:{type:"String"},//关联企业
researchTime:{type:"Number"},//调研时间
leaderName:{type:"String"},//出席领导
// accompany:{type:"[String]"},//陪同人员
accompany:{type:"[String]", notMustHave:true},//陪同人员
// contacts:{type:"String"},//联系人
// contactsPhone:{type:"String"},//联系人电话
// content:{type:"String"},//洽谈内容
......
......@@ -16,8 +16,9 @@ export async function initConfig() {
if (!configInfo || !configInfo.config) throw new BizError('xml中无配置');
else {
let {port, mongodb, secret, getOpenIdUrl, appId, qcc } = configInfo.config;
let {port, img, mongodb, secret, getOpenIdUrl, appId, qcc } = configInfo.config;
systemConfig.port = parseInt(port[0]);
systemConfig.img = img[0];
systemConfig.secret = secret[0];
systemConfig.getOpenIdUrl = getOpenIdUrl[0];
......
......@@ -6,6 +6,7 @@
export class ServerConfig {
/**系统配置 */
port:number;
img:string;
mongodbStr:string;
secret:string;
/**小程序相关配置 */
......
......@@ -11,7 +11,6 @@ import { httpServer } from "./net/http_server";
async function lanuch() {
/**初始化配置解析 */
await initConfig();
......@@ -21,11 +20,11 @@ async function lanuch() {
/**创建http服务 */
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
await initEnterpriseData();
// await initEnterpriseData(); //初始化户管企业
// await out20251031();
// await dataOut();
// await test111222();
await test33333();
// await test33333();
}
......
......@@ -5,7 +5,7 @@ import compression = require('compression');
import { watch } from '../middleware/watch';
import { httpErrorHandler } from '../middleware/httpErrorHandler';
import * as path from "path";
import * as fallback from 'express-history-api-fallback';
import fallback from 'express-history-api-fallback';
export class httpServer {
static createServer(port:number) {
......
......@@ -5,6 +5,7 @@
*/
import moment = require("moment");
import { systemConfig } from "../config/serverConfig";
const md5 = require("md5");
......@@ -280,7 +281,7 @@ export function convertFilesToObjectArray(fileInput: any) {
if (!extension) {
return {
name: originalFileName,
url: url
url: `${systemConfig.img}${url}`
};
}
......@@ -368,7 +369,7 @@ export function convertFilesToObjectArray(fileInput: any) {
return {
name: finalFileName,
url: url
url: `${systemConfig.img}${url}`
};
});
......
......@@ -4,7 +4,13 @@
"target": "es2017",
"sourceMap": true,
"rootDir":"./src",
"outDir":"./out"
"outDir":"./out",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"noImplicitAny": false,
"strictNullChecks": false,
"types": ["node"]
},
"exclude": [
"node_modules",
......
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