Commit 94fd4336 by lixinming

no message

parent 5fb13fdf
......@@ -5,7 +5,7 @@
<port>27017</port>
<w>1</w>
<!-- <dataBase>baseDB</dataBase> -->
<dataBase>zjsc0819</dataBase>
<dataBase>zjsc1014</dataBase>
<wtimeoutMS>30000</wtimeoutMS>
</mongodb>
<!-- 小程序的secret 和 appid -->
......
......@@ -794,7 +794,7 @@ export async function zlqyList( name, contractState, state, page) {
let contractEndTime = "";
let rentDay = 0;
let contractState = "";//合同状态
let rentRecent = "";
let rentRecent = "";//最近租金缴纳情况
let rentNext = "";
if (leaseInfo && leaseInfo.uscc) {
leaseInfo.rentPayment.forEach(item => {
......@@ -802,17 +802,17 @@ export async function zlqyList( name, contractState, state, page) {
});
if (leaseInfo.rentPayment.length) {
rentRecent = leaseInfo.rentPayment[ leaseInfo.rentPayment.length - 1].payStartTime;
if (rentRecent) rentRecent = moment(rentRecent).format("YYYY-MM");
if (rentRecent) rentRecent = moment(rentRecent).format("YYYY-MM-DD");
}
}
if (info.leaseInfo) {
if (info.leaseInfo && info.leaseInfo.contractStartTime) {
contractStartTime = moment(info.leaseInfo.contractStartTime).format("YYYY-MM-DD");
contractEndTime = moment(info.leaseInfo.contractEndTime).format("YYYY-MM-DD");
if (info.leaseInfo.rentEndTime) {
rentDay = moment().diff(moment(info.leaseInfo.rentEndTime));
rentDay = moment(info.leaseInfo.rentEndTime).diff(moment(), 'days');
if (!rentDay) rentDay = rentDay < 0 ? 0 : rentDay;
}
......@@ -885,7 +885,8 @@ export async function zlqyInfo(uscc:string) {
rentRecent,
area:leaseInfo.area || 0,
areaUnit:leaseInfo.areaUnit || 1,
address:leaseInfo.address || ""
address:leaseInfo.address || "",
files:leaseInfo.files || []
}
return {dataInfo};
}
......@@ -913,6 +914,7 @@ export async function zlqyUpdate(uscc:string, param) {
area : param.area,
areaUnit : param.areaUnit,
address : param.address,
files: param.files
}
await leaseData.createData(addInfo);
} else {
......@@ -923,6 +925,7 @@ export async function zlqyUpdate(uscc:string, param) {
leaseInfo.area = param.area;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.address = param.address;
leaseInfo.files = param.files;
await leaseInfo.save();
}
......@@ -951,22 +954,43 @@ export async function zlqyrentPaymentList(uscc) {
}
export async function zlqyrentPaymentUpdate(uscc, rentPayment) {
let rentStartTime = rentPayment[0].payStartTime;
let rentEndTimeLong = rentPayment[rentPayment.length - 1].payLong;
let rentEndTimeMonth = rentPayment[rentPayment.length - 1].payStartTime;
let rentEndTime = moment(rentEndTimeMonth).add(rentEndTimeLong, 'M').valueOf()
let leaseInfo = await leaseData.findOnceData({uscc});
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (!leaseInfo || !leaseInfo.uscc) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let addInfo = {
uscc:enterpriseInfo.uscc,
enterpriseName:enterpriseInfo.name,
rentPayment:rentPayment
rentPayment:rentPayment,
contractStartTime: rentStartTime,
contractEndTime:rentEndTime
};
await leaseData.createData(addInfo);
} else {
leaseInfo.rentPayment = rentPayment;
await leaseInfo.save();
}
let newleaseInfo:any = {};
if (enterpriseInfo.leaseInfo) {
if (enterpriseInfo.leaseInfo.contractStartTime) newleaseInfo.contractStartTime = enterpriseInfo.leaseInfo.contractStartTime;
else newleaseInfo.contractStartTime = rentStartTime;
if (enterpriseInfo.leaseInfo.contractEndTime) newleaseInfo.contractEndTime = enterpriseInfo.leaseInfo.contractEndTime;
else newleaseInfo.contractEndTime = rentEndTime;
newleaseInfo.rentStartTime = rentStartTime;
newleaseInfo.rentEndTime = rentEndTime;
} else {
newleaseInfo.contractStartTime = rentStartTime;
newleaseInfo.contractEndTime = rentEndTime;
}
enterpriseInfo.leaseInfo = newleaseInfo;
await enterpriseInfo.save();
return {isSuccess:true};
}
......@@ -977,7 +1001,7 @@ export async function demandList(name:string, demand, page) {
if (name) param.enterpriseName = name;
if (demand) param.demand = {"$in":[demand]};
let dbList = await demandData.findEnterpriseListToPage(param, page);
let dbList = await demandData.findEnterpriseListToPage(param, (page-1)*10);
let dataCount = await demandData.findCountByParam(param);
let dataList = [];
......@@ -1128,6 +1152,7 @@ export async function keynoteActivityList(uscc) {
let dataList = [];
dbList.forEach(info => {
dataList.push({
changeType:verificationEnumTools.changeEnumValue(configEnum.ENTERPRISECHANGETYPE,info.changeType),
time:moment(info.createTime).format("YYYY.MM.DD"),
contentBefore:info.oldContent,
content:info.content
......
import moment = require("moment");
import { FINANCINGROUNDS, RAS, RESEARCHTYPE, VISITDEMAND, VISITSTATE } from "../../../config/enum";
import { ENTERPRISESIZE, FINANCINGROUNDS, NASHUIRENZIZHI, RAS, RESEARCHTYPE, VISITDEMAND, VISITSTATE } from "../../../config/enum";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import { changeEnumValue } from "../../../util/verificationEnum";
import * as labelData from "../../../data/label";
......@@ -208,7 +208,19 @@ export async function portrait(uscc) {
logonTime:eInfo.logonTime ? moment(eInfo.logonTime).format("YYYY-MM-DD") : "-",
firstIncubationTime:eInfo.firstIncubationTime ? moment(eInfo.firstIncubationTime).format("YYYY-MM-DD") : "-",
zuZhiJiGouDaiMa:eInfo.zuZhiJiGouDaiMa,
label
label,
isNaturalPersonHolding:eInfo.isNaturalPersonHolding ? "是" : "否",//是否自然人控股企业
enterpriseType:eInfo.enterpriseType,//企业(机构)类型
zhuCeHao:eInfo.zhuCeHao,//注册号
canBaoRenShu:eInfo.canBaoRenShu,//参保人数
canBaoRenShuNianBao:eInfo.canBaoRenShuNianBao,//参保人数所属年报
qiYeGuiMo:changeEnumValue(ENTERPRISESIZE, eInfo.qiYeGuiMo),//企业规模
tongXinDiZhi:eInfo.tongXinDiZhi,//通信地址
jianJie:eInfo.jianJie,//企业简介
dengJiJiGuan:eInfo.dengJiJiGuan,//登记机关
naShuiRenZiZhi:changeEnumValue(NASHUIRENZIZHI, eInfo.naShuiRenZiZhi),//纳税人资质
jingYingFanWei:eInfo.jingYingFanWei,//经营范围
guQuanJieGou:eInfo.guQuanJieGou//股权结构
},
zscq:{
count:zscqCount,
......
......@@ -10,19 +10,21 @@ import { ERRORENUM } from "../../../config/errorEnum";
export async function trackList(name, type, state, page) {
let param:any = {follow:true};
let param:any = {};
if (name) param.name = {"$regex":name};
if (type) param.enterpriseType = type;
if (state) param.state = state;
let dbList = await visitData.findPageByParam(param, (page-1)*10);
let count = visitData.findCountByParam(param);
let count = await visitData.findCountByParam(param);
let dataList = [];
dbList.forEach(info => {
let stateStr = "待走访";
if (info.state == 2) stateStr = "取消走访";
else if (info.state == 3) stateStr = "完成走访";
let completionTime = "";
if (info.completionTime) completionTime = moment(info.completionTime).format("YYYY-MM-DD") //这里小程序走访完成的时候不会记录时间
let item = {
id:info.id,
uscc:info.uscc,
......@@ -30,7 +32,7 @@ export async function trackList(name, type, state, page) {
trackType:changeEnumValue(VISITENTERPRISETYPE, info.enterpriseType),
trackState:stateStr,
trackTime:moment(info.visitTime).format("YYYY-MM-DD"),
completionTime:"-"//这里小程序走访完成的时候不会记录时间
completionTime:completionTime
};
dataList.push(item);
})
......@@ -52,6 +54,9 @@ export async function changeTrackState(id, state) {
if (!trackInfo || !trackInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
trackInfo.state = state;
trackInfo.completionTime = new Date().valueOf();
await trackInfo.save();
return {isSuccess:true};
}
......
......@@ -38,6 +38,7 @@ import { changeAddToString } from "../../tools/system";
import { changeEnumValue } from "../../util/verificationEnum";
import { addTask } from "../../data/fuHuaQi/customTask";
import { addressIsInZJ, getAddressLatAndLng, latLngInZJ } from "../../tools/transCode";
import { delLabel } from "../../data/label";
const xlsx = require('node-xlsx');
const path = require('path');
......@@ -2296,3 +2297,41 @@ export async function 补充经纬度() {
}
console.log("经纬度更新成功");
}
export async function enterpriselabeldistinct() {
let distinctIds = [
"385deba8b00e71241aa030fec12b6b8c",
"21875fca01e8af7a6f2905ff25db9d80",
"6f9c9081b4522222e9f6ffab167663a6",
"f3c630528b19abadaa8a91ad31650bca",
"label_a2d1069d45b2cf838774d6db1822e707"
];
let enterpriseList = await enterpriseData.findEnterpriseList({});
for (let i =0; i < enterpriseList.length; i++) {
let info = enterpriseList[i];
let item = await enterpriseData.selectOneEnterpriseByParam({uscc:info.uscc});
if (item.labels) {
let newLabel = [];
item.labels.forEach(labelInfo => {
if (distinctIds.indexOf(labelInfo.labelId) == -1) {
newLabel.push(labelInfo);
}
})
item.labels = newLabel;
await item.save();
}
console.log(i)
}
await delLabel(distinctIds[0]);
await delLabel(distinctIds[1]);
await delLabel(distinctIds[2]);
await delLabel(distinctIds[3]);
await delLabel(distinctIds[4]);
console.log("数据修复成功");
return {isSuccess:true}
}
\ No newline at end of file
/**
* 大屏 数字沙盘
*/
import { onceSheetBecomeOfblockData } from "../../util/analysisExcel";
const xlsx = require('node-xlsx');
const path = require('path');
const fs = require('fs');
/**
* 孵化器板块
*/
export async function fhqbk() {
let excelData = onceSheetBecomeOfblockData("数字沙盘.xlsx", "孵化板块");
let res = {};
res["fhqjbxx"] = checkKeyValue_heng("孵化器基本信息", excelData[0].blockData);
res["fhqjb"] = checkChart("孵化器级别", excelData[1].blockData, ["key", "value", "rate"]);
res["fhqjgxz"] = checkChart("孵化器机构性质", excelData[2].blockData, ["key", "value", "rate"]);
res["zcsjfb"] = checkKeyValue_shu("注册时间分布", excelData[3].blockData);
res["fhqlyfb"] = checkKeyValue_shu("孵化器领域分布", excelData[4].blockData);
res["sjqsfx"] = barChart("数据趋势分析", excelData[5].blockData);
res["czlpm"] = checkKeyValue_shu("孵化器出租率排名", excelData[6].blockData);
res["qygk"] = checkKeyValue_heng("企业概况", excelData[7].blockData);
res["xzcorxqr"] = checkChart("本季度新注册或新迁入", excelData[8].blockData, ["name", "fhqName", "hangye", "time"]);
res["hylyfb"] = checkKeyValue_shu("行业领域分布", excelData[9].blockData);
res["gczqyrzsl"] = checkKeyValue_shu("高成长企业融资数量", excelData[10].blockData);
res["gczqyrzlb"] = checkChart("高成长企业融资列表", excelData[11].blockData, ["name", "rongzie", "lunci", "time"]);
return res;
}
/**
* 科技金融
* @returns
*/
export async function kjjr() {
let excelData = onceSheetBecomeOfblockData("数字沙盘.xlsx", "科技金融");
let res = {};
res["rzjbxx"] = checkKeyValue_heng("融资基本信息", excelData[0].blockData);
res["sjqsfx"] = barChart("数据趋势分析", excelData[1].blockData);
res["rzlchlxfx"] = checkKeyValue_shu("融资轮次和类型分析", excelData[2].blockData);
res["rzlyfb"] = checkKeyValue_shu("融资领域分布", excelData[3].blockData);
res["sdhyrzfx"] = checkKeyValue_heng("三大行业融资分析", excelData[4].blockData);
res["jdqsfx"] = barChart("季度趋势分析", excelData[5].blockData);
res["ctfhydfxt"] = checkKeyValue_heng("创投方活跃度分析图", excelData[6].blockData);
res["wdzbgzbk"] = checkKeyValue_heng("外地资本关注板块", excelData[7].blockData);
res["ctlyjejcs"] = barChart("创投领域金额及次数", excelData[8].blockData);
res["zjkxcrzbtqk"] = checkKeyValue_heng("张江科学城融资补贴情况", excelData[9].blockData);
res["rzbtqktjt"] = barChart("融资补贴情况统计图", excelData[10].blockData);
return res;
}
//封装keyvalue
function checkKeyValue_heng(title, blockList) {
let dataList = [];
for (let i = 0; i < blockList[0].length; i++) {
dataList.push({
key:blockList[0][i],
value:blockList[1][i]
});
}
return {title, dataList}
}
function checkKeyValue_shu(title, blockList) {
let dataList = [];
blockList.forEach( (subList, index) => {
if (!index) return
dataList.push({
key:subList[0],
value:subList[1]
})
});
return {title, dataList}
}
function checkChart(title, blockList, xkeyList) {
let dataList = [];
blockList.forEach((subList, index) =>{
if (!index) return
let item = {};
for (let i = 0; i < xkeyList.length; i++) {
let key = xkeyList[i]
item[key] = typeof subList[i] == "number" ? Math.ceil(subList[i]) : subList[i];
}
dataList.push(item);
})
return {title, dataList}
}
function barChart(title, blockList ) {
let xList = blockList[0];
let dataList = [];
for (let i = 1; i < blockList.length; i++) {
let sbuList = blockList[i];
let itemList = [];
for (let y = 1; y < sbuList.length; y++) {
itemList.push({
key:xList[y],
value:sbuList[y]
});
}
dataList.push({
title:sbuList[0],
dataList:itemList
});
}
return {title, dataList};
}
//更新
export async function upShowExcel(list) {
let data = [];
list.forEach(info => {
data.push({
name:info.sheetName,
data:info.data
});
})
let buff = xlsx.build(data);
fs.writeFileSync(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '数字沙盘.xlsx' ), buff);
return {isSuccess:true}
}
\ No newline at end of file
......@@ -4,8 +4,8 @@
import moment = require("moment");
import { ENTERPRISETEAM, FINANCINGROUNDS, FUHUASTATE } from "../../../../config/enum";
import { findEnterpriseCount, statsIntellectualPropertyData, findEnterpriseList } from "../../../../data/enterprise/enterprise";
import { statsEnterpriseFinancing, statsEnterpriseFinancingByTime } from "../../../../data/enterprise/financingInfo";
import { findEnterpriseCount, statsIntellectualPropertyData, findEnterpriseList, findEnterpriseByUscc } from "../../../../data/enterprise/enterprise";
import { statsEnterpriseFinancing, statsEnterpriseFinancingByTime, selectFinancingListByParams } from "../../../../data/enterprise/financingInfo";
import { statsBusinessDataByParam } from "../../../../data/enterprise/quarterTask/businessdata";
import { changeEnumValue } from "../../../../util/verificationEnum";
import { statsEnterpriseTeamData } from "../../../../data/enterprise/quarterTask/team";
......@@ -13,6 +13,7 @@ import { statsEnterpriseInitalTeamsType } from "../../../../data/enterprise/init
import { findI18nRegisterListByParam } from "../../../../data/fuHuaQi/instituQualify/i18nRegister";
import { getIcrCountByParam } from "../../../../data/fuHuaQi/instituQualify/icr";
import { findFinancingList } from "../../../../data/fuHuaQi/monthTask/financing";
import * as qualificationsData from "../../../../data/enterprise/qualifications";
export async function enterpriseBaseData() {
......@@ -172,4 +173,67 @@ export async function valueAnalysisStatis(uscc) {
return {countList, montyList, partnersCount, cooperateCount};
}
export async function enterprIsPortrait(uscc) {
let star = 3;
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let isBeOnTheMarket = false;
let isFinancing = false;
let isHighTech = false;
let iszjtx = false;
let isXjr = false;
if (enterpriseInfo.qualification) {
if (enterpriseInfo.qualification.isBeOnTheMarket) {
star += 1;
isBeOnTheMarket = true;
}
if (enterpriseInfo.qualification.isHighTech) {
star += 1;
isHighTech = true;
}
if (enterpriseInfo.qualification.iszjtx) {
star += 1;
iszjtx = true;
}
if (enterpriseInfo.qualification.isXjr) {
star += 1;
isXjr = true;
}
}
let zscqCount = 0;
if (enterpriseInfo.intellectualProperty) {
zscqCount += enterpriseInfo.intellectualProperty.alienPatent || 0;
zscqCount += enterpriseInfo.intellectualProperty.classIPatent || 0;
zscqCount += enterpriseInfo.intellectualProperty.secondClassPatent || 0;
}
let financingList = await selectFinancingListByParams({uscc});
let financingCount= 0;
financingList.forEach(info => {
let {financingAmount} = info;
isFinancing = true;
financingCount +=financingAmount;
});
if (financingCount) star += 1;
let qualificationsList = await qualificationsData.findList({uscc});
let dataInfo = {
isBeOnTheMarket,
isFinancing,
isHighTech,
iszjtx,
isXjr,
financingCount,
zzCount:qualificationsList.length,
zscqCount:10,
star,
starStr:star > 0 ? "优秀" :"良好"
}
return {
dataInfo
}
}
......@@ -14,13 +14,13 @@ const path = require('path');
*/
export async function upFile(files, type) {
let pngId = getPolicyBGImgId();
let upUrl = path.join(__dirname.substring(0,__dirname.indexOf("out")), 'files', 'policy');
let upUrl = path.join(__dirname.substring(0,__dirname.indexOf("out")), 'files', 'admin', 'policy');
let stats = fs.existsSync(upUrl);
if (!stats) fs.mkdirSync(upUrl);
let fileName = `${pngId}${type}`;
fs.renameSync(files.file.path, path.join(upUrl, `${fileName}` ));
// fs.renameSync(files.formData.path, path.join(upUrl, `${fileName}` ));
return {isSuccess:true, url:`/policy/${fileName}`, fileName};
return {isSuccess:true, url:`/admin/policy/${fileName}`, fileName};
}
\ No newline at end of file
......@@ -395,10 +395,10 @@ export async function initSystemLabelData() {
systemLabelList.push({id:'qcqy', labelName:"迁出企业", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.系统标签, state:false});
systemLabelList.push({id:'qyzx', labelName:"企业注销", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.系统标签, state:false});
systemLabelList.push({id:getLabelId(), labelName:"上市企业", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
systemLabelList.push({id:getLabelId(), labelName:"高新企业", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
systemLabelList.push({id:getLabelId(), labelName:"专精特新", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
systemLabelList.push({id:getLabelId(), labelName:"小巨人", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
// systemLabelList.push({id:getLabelId(), labelName:"上市企业", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
// systemLabelList.push({id:getLabelId(), labelName:"高新企业", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
// systemLabelList.push({id:getLabelId(), labelName:"专精特新", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
// systemLabelList.push({id:getLabelId(), labelName:"小巨人", ctMs:now, goal:LABELGOAL.企业, labelType:LABELTYPE.自定义标签, state:false});
systemLabelList.push({id:'fhqzyjspt', labelName:"专业技术平台", ctMs:now, goal:LABELGOAL.孵化器, labelType:LABELTYPE.系统标签, state:false});
systemLabelList.push({id:getLabelId(), labelName:"高质量孵化", ctMs:now, goal:LABELGOAL.孵化器, labelType:LABELTYPE.自定义标签, state:false});
......
......@@ -141,12 +141,15 @@ export async function keynoteList(fuHuaQiUscc:string, str:string, labels) {
return {dataList}
}
export async function changeEnterpriseFollow(uscc:string, followState) {
export async function changeEnterpriseFollow(uscc:string, followState, label?) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (!enterpriseInfo) throw new BizError(ERRORENUM.目标数据不存在);
enterpriseInfo.follow = followState;
if (followState) enterpriseInfo.keynote = label;
else enterpriseInfo.keynote = [];
await enterpriseInfo.save();
return {isSuccess:true}
......
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