Commit 55df0f92 by lixinming

no message

parent 1893e9af
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<port>27017</port> <port>27017</port>
<w>1</w> <w>1</w>
<!-- <dataBase>baseDB</dataBase> --> <!-- <dataBase>baseDB</dataBase> -->
<dataBase>zjsc0809</dataBase> <dataBase>zjsc0819</dataBase>
<wtimeoutMS>30000</wtimeoutMS> <wtimeoutMS>30000</wtimeoutMS>
</mongodb> </mongodb>
<!-- 小程序的secret 和 appid --> <!-- 小程序的secret 和 appid -->
...@@ -28,4 +28,8 @@ ...@@ -28,4 +28,8 @@
<!-- <baidumap>KI1jEpifrEQtgr7ZJ2zAOKlUw1tme7Eb</baidumap> --> <!-- <baidumap>KI1jEpifrEQtgr7ZJ2zAOKlUw1tme7Eb</baidumap> -->
<!-- <baidumap>QCxLry4y9BjIDRDIsGAerkcHrnrbo55I</baidumap> 夏--> <!-- <baidumap>QCxLry4y9BjIDRDIsGAerkcHrnrbo55I</baidumap> 夏-->
<baidumap>yvr5gS5rGO6tFfq3gERdRfzTRsguXG9T</baidumap> <baidumap>yvr5gS5rGO6tFfq3gERdRfzTRsguXG9T</baidumap>
<qcc>
<key>2b14555ce89346e8b96684e2e2a1c7c2</key>
<SecretKey>452AAE887A1CDCAB8C9D730BA8B8FBF0</SecretKey>
</qcc>
</config> </config>
...@@ -9,9 +9,12 @@ ...@@ -9,9 +9,12 @@
import moment = require("moment"); import moment = require("moment");
import * as activityData from "../data/activity"; import * as activityData from "../data/activity";
import * as demandData from "../data/fuHuaQi/demand";
import { getInformationId } from "../tools/system"; import { getInformationId } from "../tools/system";
import { ERRORENUM } from "../config/errorEnum"; import { ERRORENUM } from "../config/errorEnum";
import { BizError } from "../util/bizError"; import { BizError } from "../util/bizError";
import { changeEnumManyValue } from "../util/verificationEnum";
import { VISITDEMAND } from "../config/enum";
/** /**
* 管理后台添加资讯 * 管理后台添加资讯
...@@ -21,9 +24,9 @@ import { BizError } from "../util/bizError"; ...@@ -21,9 +24,9 @@ import { BizError } from "../util/bizError";
* @param coverImg 封面图片地址 * @param coverImg 封面图片地址
* @returns * @returns
*/ */
export async function addOnceInformation(desc:string, title:string ,source:string, coverImg:string, startTime:Number, endTime:Number ) { export async function addOnceInformation(desc:string, title:string ,source:string, coverImg:string, startTime:Number, endTime:Number, target ) {
let id = getInformationId(); let id = getInformationId();
await activityData.createActivity(id, desc, title, source, coverImg); await activityData.createActivity(id, desc, title, source, coverImg, startTime, endTime, target);
return {isSuccess:true}; return {isSuccess:true};
} }
...@@ -85,6 +88,9 @@ export async function selectOnceInformationDate(id:string) { ...@@ -85,6 +88,9 @@ export async function selectOnceInformationDate(id:string) {
source:onceDataInfo.source, source:onceDataInfo.source,
coverImg:onceDataInfo.coverImg, coverImg:onceDataInfo.coverImg,
url:`/policy/${onceDataInfo.coverImg}`, url:`/policy/${onceDataInfo.coverImg}`,
target:onceDataInfo.target,
startTime:onceDataInfo.startTime,
endTime:onceDataInfo.endTime,
}; };
...@@ -117,7 +123,7 @@ export async function deleteOnceInformationDate(id:string) { ...@@ -117,7 +123,7 @@ export async function deleteOnceInformationDate(id:string) {
* @param coverImg 图片地址 * @param coverImg 图片地址
* @returns * @returns
*/ */
export async function updateOnceInformation(id:string, desc:string, title:string ,source:string, coverImg:string ) { export async function updateOnceInformation(id:string, desc:string, title:string ,source:string, coverImg:string, startTime, endTime, target) {
let onceDataInfo = await activityData.selectActivityDataById(id); let onceDataInfo = await activityData.selectActivityDataById(id);
if (onceDataInfo.state) throw new BizError(ERRORENUM.请先关闭该资讯, "未关闭资讯进行修改操作"); if (onceDataInfo.state) throw new BizError(ERRORENUM.请先关闭该资讯, "未关闭资讯进行修改操作");
...@@ -127,6 +133,10 @@ export async function updateOnceInformation(id:string, desc:string, title:string ...@@ -127,6 +133,10 @@ export async function updateOnceInformation(id:string, desc:string, title:string
onceDataInfo.desc = desc; onceDataInfo.desc = desc;
onceDataInfo.source = source; onceDataInfo.source = source;
onceDataInfo.startTime = startTime;
onceDataInfo.endTime = endTime;
onceDataInfo.target = target;
await onceDataInfo.save(); await onceDataInfo.save();
return {isSuccess:true}; return {isSuccess:true};
...@@ -141,9 +151,9 @@ export async function updateOnceInformation(id:string, desc:string, title:string ...@@ -141,9 +151,9 @@ export async function updateOnceInformation(id:string, desc:string, title:string
* @param page 分页 * @param page 分页
* @returns * @returns
*/ */
export async function selectInformation(selectTitle:string, createTime:number, state:number, page:number) { export async function selectInformation(selectTitle:string, createTime:number, state:number, target, page:number) {
let selectParam = {}; let selectParam:any = {};
if (state == 2 || state == 3) { if (state == 2 || state == 3) {
if (state == 2) { if (state == 2) {
selectParam = {state:true, "$or":[{closeTimeMs: {"$gt":new Date().valueOf()} }, {isPermanent:true}] }; selectParam = {state:true, "$or":[{closeTimeMs: {"$gt":new Date().valueOf()} }, {isPermanent:true}] };
...@@ -157,6 +167,9 @@ export async function selectInformation(selectTitle:string, createTime:number, s ...@@ -157,6 +167,9 @@ export async function selectInformation(selectTitle:string, createTime:number, s
if (createTime) { if (createTime) {
selectParam["$and"] = [{"createTimeMs":{"$gt":createTime }}, {"createTimeMs":{"$lt":createTime+(3600*26*1000) }}] selectParam["$and"] = [{"createTimeMs":{"$gt":createTime }}, {"createTimeMs":{"$lt":createTime+(3600*26*1000) }}]
} }
if (target) {
selectParam.target = {"$in":[target]}
}
let dataBaseList = await activityData.selectActivityByParamToPage(selectParam, (page-1)* 10); let dataBaseList = await activityData.selectActivityByParamToPage(selectParam, (page-1)* 10);
let count = await activityData.selectActivityyParamCount(selectParam); let count = await activityData.selectActivityyParamCount(selectParam);
...@@ -176,9 +189,28 @@ export async function selectInformation(selectTitle:string, createTime:number, s ...@@ -176,9 +189,28 @@ export async function selectInformation(selectTitle:string, createTime:number, s
title, title,
createTime:moment(createTimeMs).format("YYYY-MM-DD"), createTime:moment(createTimeMs).format("YYYY-MM-DD"),
state, state,
stateStr stateStr,
target:changeEnumManyValue(VISITDEMAND, info.target)
}); });
}); });
return {dataList, pageCount, count}; return {dataList, pageCount, count};
} }
export async function selectInfoEnterprise(id:string ) {
let onceDataInfo = await activityData.selectActivityDataById(id);
if (!onceDataInfo) throw new BizError(ERRORENUM.目标数据不存在, "目标数据不存在");
let demandList = await demandData.findByParam({demand:{"$in":onceDataInfo.target}})
let dataList = [];
demandList.forEach(info => {
dataList.push({enterpriseName:info.enterpriseName, demand:info.demand});
});
return {dataList};
}
...@@ -5,16 +5,22 @@ ...@@ -5,16 +5,22 @@
import { extractData } from "../../../util/piecemeal"; import { extractData } from "../../../util/piecemeal";
import * as enterpriseData from "../../../data/enterprise/enterprise"; import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as leaseData from "../../../data/lease";
import * as splitResultConfig from "../../../config/splitResultConfig"; import * as splitResultConfig from "../../../config/splitResultConfig";
import * as fuHuaQiData from "../../../data/fuHuaQi/fuhuaqi"; import * as fuHuaQiData from "../../../data/fuHuaQi/fuhuaqi";
import * as demandData from "../../../data/fuHuaQi/demand";
import * as configEnum from "../../../config/enum"; import * as configEnum from "../../../config/enum";
import * as verificationEnumTools from "../../../util/verificationEnum"; import * as verificationEnumTools from "../../../util/verificationEnum";
import * as businessData from "../../../data/enterprise/quarterTask/businessdata"; import * as businessData from "../../../data/enterprise/quarterTask/businessdata";
import * as initialTeamData from "../../../data/enterprise/initialTeam"; import * as initialTeamData from "../../../data/enterprise/initialTeam";
import moment = require("moment"); import moment = require("moment");
import { findEnterpriseNewTeamData } from "../../../data/enterprise/quarterTask/team"; import { findEnterpriseNewTeamData } from "../../../data/enterprise/quarterTask/team";
import { changeAddToString } from "../../../tools/system"; import { changeAddToString, getRandomId } from "../../../tools/system";
import { JiaSuEnterpriseConfig, ZuLinEnterpriseConfig } from "../../../config/eccParam/admin";
import { eccFormParam } from "../../../util/verificationParam";
import { BizError } from "../../../util/bizError";
import { ERRORENUM } from "../../../config/errorEnum";
import * as dynamicsData from "../../../data/enterprise/dynamics";
/** /**
* 获取在孵企业信息列表 * 获取在孵企业信息列表
...@@ -681,3 +687,472 @@ export async function updateEnterpriseInfomation(uscc:string, name:string) { ...@@ -681,3 +687,472 @@ export async function updateEnterpriseInfomation(uscc:string, name:string) {
return {isSuccess:true} return {isSuccess:true}
} }
export async function jiasuEnterprise(name, industry, jiaSuZiZhi, isNaturalPersonHolding, page) {
let selectParam:any = {};//{jiaSu:true};
if (name) selectParam.name = {"$regex":name};
if (industry && industry.length) selectParam.industry = {"$in":industry};
if (jiaSuZiZhi && jiaSuZiZhi.length) selectParam.jiaSuZiZhi = {"$in":jiaSuZiZhi};
if (isNaturalPersonHolding > 1) {
if (isNaturalPersonHolding == 2) selectParam.isNaturalPersonHolding = true;
else selectParam.isNaturalPersonHolding = false;
}
let dataBaseList = await enterpriseData.findEnterpriseListToPage(selectParam, (page-1)*10 );
let count = await enterpriseData.findEnterpriseCount(selectParam);//符合查询条件的数据总数
let usccMap = await fuHuaQiData.findFuHuaQiOperationNameMapByParam({});//用于将孵化器uscc变成孵化器名称
let dataList = [];
dataBaseList.forEach(info => {
/**截取返回数据 */
let changeData:any = extractData(splitResultConfig.JiasuEnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
/**将枚举值转为字符 */
changeData.industry = verificationEnumTools.changeEnumValue(configEnum.INDUSTRY, changeData.industry);
dataList.push(changeData);
})
return {dataList, count}
}
export async function jsqInfo(uscc:string) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let leaseInfo = await leaseData.findOnceData({uscc});
if (!leaseInfo || !leaseInfo.id) leaseInfo.area = 0;
let dataInfo = {
name:enterpriseInfo.name,
uscc:enterpriseInfo.uscc,
mainBusiness:enterpriseInfo.mainBusiness,
logonTime:enterpriseInfo.logonTime,
firstIncubationTime:enterpriseInfo.firstIncubationTime,
industry:enterpriseInfo.industry,
jiaSuZiZhi:enterpriseInfo.jiaSuZiZhi,
isNaturalPersonHolding:enterpriseInfo.isNaturalPersonHolding,
leaseAddress:enterpriseInfo.leaseAddress,
leasedArea:leaseInfo.area
}
return {dataInfo};
}
export async function jsqyUpdate(uscc:string, param) {
eccFormParam("管理后台修改加速企业", JiaSuEnterpriseConfig, param);
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
enterpriseInfo.name = param.name;
enterpriseInfo.mainBusiness = param.mainBusiness;
enterpriseInfo.logonTime = param.logonTime;
enterpriseInfo.firstIncubationTime = param.firstIncubationTime;
enterpriseInfo.industry = param.industry;
enterpriseInfo.jiaSuZiZhi = param.jiaSuZiZhi;
enterpriseInfo.isNaturalPersonHolding = param.isNaturalPersonHolding;
enterpriseInfo.leaseAddress = param.leaseAddress;
let leaseInfo = await leaseData.findOnceData({uscc});
leaseInfo.area = param.leasedArea;
await enterpriseInfo.save();
await leaseInfo.save();
return {isSuccess:true}
}
export async function zlqyList( name, contractState, state, page) {
let selectParam:any = {};//{jiaSu:true};
if (name) selectParam.name = {"$regex":name};
if (state) selectParam.state = state;
let dataBaseList = await enterpriseData.findEnterpriseListToPage(selectParam, (page-1)*10 );
let count = await enterpriseData.findEnterpriseCount(selectParam);//符合查询条件的数据总数
let usccMap = await fuHuaQiData.findFuHuaQiOperationNameMapByParam({});//用于将孵化器uscc变成孵化器名称
const Now = new Date().valueOf();
let dataList = [];
for (let i = 0; i < dataBaseList.length; i++) {
let {uscc} = dataBaseList[i];
let info = dataBaseList[i];
let leaseInfo = await leaseData.findOnceData({uscc});
let payLong = 0;
let contractStartTime = "";
let contractEndTime = "";
let rentDay = 0;
let contractState = "";//合同状态
let rentRecent = "";
let rentNext = "";
if (leaseInfo && leaseInfo.uscc) {
leaseInfo.rentPayment.forEach(item => {
payLong += item.payLong;
});
if (leaseInfo.rentPayment.length) {
rentRecent = leaseInfo.rentPayment[ leaseInfo.rentPayment.length - 1].payStartTime;
if (rentRecent) rentRecent = moment(rentRecent).format("YYYY-MM");
}
}
if (info.leaseInfo) {
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));
if (!rentDay) rentDay = rentDay < 0 ? 0 : rentDay;
}
if (!leaseInfo || !leaseInfo.contractStartTime) {
contractState = "到期未签"
} else {
if ((leaseInfo.contractEndTime - Now) < 0) {
contractState = "到期未签";
} else {
contractState = "签约企业";
}
}
rentNext = moment(info.leaseInfo.rentEndTime).format("YYYY-MM-DD");
}
let changeData = {
name:info.name,
uscc:info.uscc,
payLong,
contractStartTime,
contractEndTime,
rentDay,
contractState,
rentRecent,
rentNext,
leaseAddress:info.leaseAddress || ""
};
dataList.push(changeData);
}
return {dataList, count}
}
export async function zlqyInfo(uscc:string) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let leaseInfo = await leaseData.findOnceData({uscc});
let Now = new Date().valueOf();
let contractState = "到期未签";
let rentRecent = "";
if (!leaseInfo || !leaseInfo.id) leaseInfo = {};
else {
if (!leaseInfo || !leaseInfo.contractStartTime) {
contractState = "到期未签"
} else {
if ((leaseInfo.contractEndTime - Now) < 0) {
contractState = "到期未签";
} else {
contractState = "签约企业";
}
}
if (leaseInfo.rentPayment.length) {
rentRecent = leaseInfo.rentPayment[ leaseInfo.rentPayment.length - 1].payStartTime;
if (rentRecent) rentRecent = moment(rentRecent).format("YYYY-MM");
}
}
let dataInfo = {
name:enterpriseInfo.name,
contractLong:leaseInfo.contractLong || 0,
contractStartTime:leaseInfo.contractStartTime || null,
contractEndTime:leaseInfo.contractEndTime|| null,
contractState,
price:leaseInfo.price || 0,
rentRecent,
area:leaseInfo.area || 0,
areaUnit:leaseInfo.areaUnit || 1,
address:leaseInfo.address || ""
}
return {dataInfo};
}
export async function zlqyUpdate(uscc:string, param) {
eccFormParam("管理后台修改租赁信息", ZuLinEnterpriseConfig, param);
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (enterpriseInfo.leaseInfo && enterpriseInfo.leaseInfo.contractStartTime) {
enterpriseInfo.leaseInfo.contractStartTime = param.contractStartTime;
enterpriseInfo.leaseInfo.contractEndTime = param.contractEndTime;
enterpriseInfo.leaseAddress = param.address;
}
let leaseInfo = await leaseData.findOnceData({uscc});
if (!leaseInfo) {
let addInfo = {
uscc,
enterpriseName:enterpriseInfo.enterpriseName,
rentPayment:[],
contractLong : param.contractLong,
contractStartTime : param.contractStartTime,
contractEndTime : param.contractEndTime,
price : param.price,
area : param.area,
areaUnit : param.areaUnit,
address : param.address,
}
await leaseData.createData(addInfo);
} else {
leaseInfo.contractLong = param.contractLong;
leaseInfo.contractStartTime = param.contractStartTime;
leaseInfo.contractEndTime = param.contractEndTime;
leaseInfo.price = param.price;
leaseInfo.area = param.area;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.address = param.address;
await leaseInfo.save();
}
await enterpriseInfo.save();
return {isSuccess:true}
}
export async function zlqyrentPaymentList(uscc) {
let leaseInfo = await leaseData.findOnceData({uscc});
let dataList = [];
if (leaseInfo && leaseInfo.uscc) {
leaseInfo.rentPayment.forEach(info => {
dataList.push({
payStartTime:info.payStartTime,
payLong:info.payLong
});
})
}
return {dataList}
}
export async function zlqyrentPaymentUpdate(uscc, rentPayment) {
let leaseInfo = await leaseData.findOnceData({uscc});
if (!leaseInfo || !leaseInfo.uscc) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let addInfo = {
uscc:enterpriseInfo.uscc,
enterpriseName:enterpriseInfo.name,
rentPayment:rentPayment
};
await leaseData.createData(addInfo);
} else {
leaseInfo.rentPayment = rentPayment;
await leaseInfo.save();
}
return {isSuccess:true};
}
export async function demandList(name:string, demand, page) {
let param:any = {};
if (name) param.enterpriseName = name;
if (demand) param.demand = {"$in":[demand]};
let dbList = await demandData.findEnterpriseListToPage(param, page);
let dataCount = await demandData.findCountByParam(param);
let dataList = [];
dbList.forEach(info => {
let demandList = [];
info.demand.forEach(item => {
demandList.push({
key:item,
value:configEnum.VISITDEMAND[item]
})
})
dataList.push({
uscc:info.uscc,
name:info.enterpriseName,
demand:demandList
});
})
return {dataCount, dataList}
}
export async function demandLabel(uscc:string, demand) {
let param:any = {uscc};
param.demand = {"$in":[demand]};
let dbInfo = await demandData.findOne(param);
let dataInfo = {
demand:verificationEnumTools.changeEnumManyValue(configEnum.VISITDEMAND, dbInfo.demand),
demandDesc:dbInfo
};
return {dataInfo}
}
export async function demandInfo(uscc:string) {
let param:any = {uscc};
let dbInfoList = await demandData.findByParam(param);
let dataList = [];
dbInfoList.forEach(info => {
dataList.push({
id:info.id,
demand:verificationEnumTools.changeEnumManyValue(configEnum.VISITDEMAND, info.demand),
demandDesc:info.demandDesc,
createTime:moment(info.createTime).format("YYYY-MM-DD")
});
});
return {dataList}
}
export async function removeDemand(id) {
let param:any = {id};
let demandInfo = await demandData.findOne(param);
if (!demandInfo) throw new BizError(ERRORENUM.目标数据不存在);
await demandData.removeOneData(id);
return {isSuccess:true}
}
export async function demandCreate(uscc, demand, demandDesc) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let demandInfo = {
id:getRandomId("deman"),
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
uscc,
enterpriseName:enterpriseInfo.name,
createTime:new Date().valueOf(),
enterpriseType:configEnum.VISITENTERPRISETYPE.主动申报需求企业,
demand,
demandDesc
};
await demandData.createDataByParam(demandInfo);
return {isSuccess:true}
}
export async function demandUpdate(id, demand) {
// let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let demandInfo = await demandData.findOne({id});
demandInfo.demand = demand;
await demandInfo.save();
return {isSuccess:true}
}
export async function enterpriseNameList(name:string) {
let param:any = {};
if (name) param.name = {"$regex":name};
let dbList = await enterpriseData.findEnterpriseList(param);
let dataList = [];
dbList.forEach(info => {
dataList.push({
value:info.uscc,
key:info.name
});
})
return {dataList}
}
export async function keynoteList(name, type, page ) {
let param:any = {follow:true};
if (name) param.name = {"$regex":name};
if (type) {
param.keynote = {"$in":[type]}
}
let dbList = await enterpriseData.findEnterpriseListToPage(param, (page-1)*10);
let dataCount = await enterpriseData.findEnterpriseCount(param);
let dataList = [];
dbList.forEach(info => {
let label = [];
let keynote = info.keynote || [];
keynote.forEach(item => {
label.push(verificationEnumTools.changeEnumValue(configEnum.ZHONGDIANQIYE, item) );
})
dataList.push({
uscc:info.uscc,
label,
haveActivity:true,
name:info.name
});
})
return {dataList, count:dataCount}
}
export async function keynoteActivityList(uscc) {
let dbList = await dynamicsData.findByParam({uscc});
let dataList = [];
dbList.forEach(info => {
dataList.push({
time:moment(info.createTime).format("YYYY.MM.DD"),
contentBefore:info.oldContent,
content:info.content
});
});
return {dataList};
}
export async function addKeynote(uscc, label) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
enterpriseInfo.keynote = label;
await enterpriseInfo.save();
return {isSuccess:true};
}
export async function delKeynote(uscc) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
enterpriseInfo.keynote = [];
await enterpriseInfo.save();
return {isSuccess:true};
}
\ No newline at end of file
import moment = require("moment");
import { FINANCINGROUNDS, 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";
import * as financingData from "../../../data/fuHuaQi/monthTask/financing";
import * as dishonestPersonData from "../../../data/enterprise/dishonestPerson";
import * as illegalityData from "../../../data/enterprise/illegality";
import * as enterpriseRiskData from "../../../data/enterprise/enterpriseRisk";
import * as visitData from "../../../data/fuHuaQi/visit";
import * as demandData from "../../../data/fuHuaQi/demand";
import * as leaseData from "../../../data/lease";
import * as qualificationsData from "../../../data/enterprise/qualifications";
export async function portrait(uscc) {
let eInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let labelList = await labelData.selectLabelList({});
let labelMap = {};
labelList.forEach(info => {
labelMap[info.id] = info.labelName;
})
let label = [];
eInfo.labels.forEach(info => {
label.push({
key:labelMap[info.labelId],
color:"#b4d2ff",
frameColor:"#1677FF",
});
});
let zscqList = [];
let zscqCount = 0;
if (eInfo.intellectualProperty) {
if (eInfo.intellectualProperty.alienPatent) {
zscqList.push({key:"海外专利", value:eInfo.intellectualProperty.alienPatent});
zscqCount += eInfo.intellectualProperty.alienPatent;
}
if (eInfo.intellectualProperty.classIPatent) {
zscqList.push({key:"一类专利", value:eInfo.intellectualProperty.classIPatent});
zscqCount += eInfo.intellectualProperty.classIPatent;
}
if (eInfo.intellectualProperty.secondClassPatent) {
zscqList.push({key:"二类专利", value:eInfo.intellectualProperty.secondClassPatent});
zscqCount += eInfo.intellectualProperty.secondClassPatent;
}
}
let financingList = await financingData.findFinancingList({uscc});
let rzqkCount = "-";
let rzqkLunci = "-";
let rzqkMap = {};
let thisYear = new Date().getFullYear();
for (let i = 4; i >= 0; i-- ) {
let year = thisYear - i;
rzqkMap[year] = 0;
}
if (financingList.length) {
financingList.forEach(info => {
let yearKey = new Date(info.timeToObtainInvestment).getFullYear();
if (rzqkMap[yearKey] != undefined) {
rzqkMap[yearKey] += info.financingAmount;
}
});
rzqkLunci = changeEnumValue(FINANCINGROUNDS, financingList[financingList.length - 1].financingRounds)
rzqkCount = `${financingList[financingList.length - 1].financingAmount}万`;
}
let rzqkList = [];
for (let key in rzqkMap) {
rzqkList.push({
key, value:rzqkMap[key]
});
}
let star = 0;
let starStr = "-";
let kcf = 0;
let kcfpm = 0;
let ejhy = eInfo.gbej || '-';
if (eInfo.kcf) {
ejhy = eInfo.kcf.subIndustry;
kcf = eInfo.kcf.score;
kcfpm = eInfo.kcf.industryRanking;
if (eInfo.kcf.score && !isNaN(eInfo.kcf.score)) {
star = Math.floor(parseInt(eInfo.kcf.score)/20);
if (star < 3) {
starStr = "优秀";
} else starStr = "良好";
}
}
let gqjgList = [];
if (eInfo.guQuanJieGou) {
eInfo.guQuanJieGou.forEach(info => {
gqjgList.push({
key:info.name,
value:parseFloat(info.stockPercent)
})
})
}
let sxList = await dishonestPersonData.findList({uscc});
let flfx = [];
sxList.forEach(info => {
flfx.push(`${info.actionRemark || ""} ${info.amount || ""} `);
});
let illegalityList = await illegalityData.findList({uscc});
let jyqdxfx = [];
illegalityList.forEach(info => {
jyqdxfx.push(`${info.AddReason || ""}`);
});
let riskList = await enterpriseRiskData.findList({uscc});
let glqyfx = [];
riskList.forEach(info => {
glqyfx.push(`${info.title || ""}`);
});
let demandList = await demandData.findByParam({uscc});
let qyxqList = [];
demandList.forEach(info => {
let label = [];
info.demand.forEach(item => {
label.push(changeEnumValue(VISITDEMAND, item))
})
qyxqList.push({
time:moment(info.createTime).format("YYYY-MM-DD"),
labelStr:changeEnumValue(VISITDEMAND, info.demand),
label,
desc:info.demandDesc
})
});
let sysc = 0;
let htzt = "-";
let zjjn = "-";
if (eInfo.leaseInfo) {
if (eInfo.leaseInfo.rentEndTime) {
sysc = moment(eInfo.leaseInfo.rentEndTime).diff(new Date().valueOf(), 'months');
if (eInfo.leaseInfo.contractEndTime > new Date().valueOf()) {
htzt = "签约企业";
}else {
htzt = "到期企业"
}
if (eInfo.leaseInfo.rentEndTime > new Date().valueOf()) {
htzt = "正常缴纳";
}else {
htzt = "到期未缴"
}
}
}
let zlqkDataInfo = await leaseData.findOnceData({uscc});
let zlqkList = [];
if (zlqkDataInfo && zlqkDataInfo.rentPayment && Array.isArray(zlqkDataInfo.rentPayment)) {
zlqkDataInfo.rentPayment.forEach(info => {
zlqkList.push({
time:moment(info.payStartTime).format("YYYY.MM.DD"),
jnqx:`已缴纳${info.payLong}个月`,
state:"已缴"
});
})
};
let qualificationsList = await qualificationsData.findList({uscc});
let zzzcList = [];
qualificationsList.forEach(info => {
let itemTime = "-";
if (info.startDate) itemTime = moment(info.startDate).format("YYYY.MM.DD")
zzzcList.push({
time:itemTime,
name:info.name || "-",
state:info.status || "-"
})
})
let visitList = await visitData.findByParam({uscc});
let qyzfList = [];
visitList.forEach(info => {
qyzfList.push({
time:moment(info.visitTime).format("YYYY.MM.DD"),
leaderName:info.leaderName,
type:changeEnumValue(RESEARCHTYPE, info.researchType),
desc:info.desc,
state:changeEnumValue(VISITSTATE, info.state)
});
})
let result = {
enterpriseInfo:{
name:eInfo.name,
uscc:uscc,
legalPerson:eInfo.legalPerson || "-",
RAS:eInfo.RAS ? changeEnumValue(RAS, eInfo.RAS) : "-",
logonTime:eInfo.logonTime ? moment(eInfo.logonTime).format("YYYY-MM-DD") : "-",
firstIncubationTime:eInfo.firstIncubationTime ? moment(eInfo.firstIncubationTime).format("YYYY-MM-DD") : "-",
zuZhiJiGouDaiMa:eInfo.zuZhiJiGouDaiMa,
label
},
zscq:{
count:zscqCount,
dataList:zscqList,
},
rzqk:{
befor:{
count:rzqkCount,
lunci:rzqkLunci
},
dataList:rzqkList,
},
qykcf:{
ejhy,
star,
starStr,
kcf,
kcfpm
},
gqjg:gqjgList,
qyfx:{
flfx,
jyqdxfx,
glqyfx,
},
qyxq:{
count:qyxqList.length,
dataList:qyxqList,
},
zlqk:{
sysc,
htzt,
zjjn,
dataList:zlqkList
},
zzzc:{
count:zzzcList.length,
dataList:zzzcList
},
qyzf:{
count:qyzfList.length,
dataList:qyzfList
},
};
return result
}
export async function enterprisPortrait(uscc) {
let eInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let labelList = await labelData.selectLabelList({});
let labelMap = {};
labelList.forEach(info => {
labelMap[info.id] = info.labelName;
})
let label = [];
eInfo.labels.forEach(info => {
label.push({
key:labelMap[info.labelId],
color:"#b4d2ff",
frameColor:"#1677FF",
});
});
let zscqList = [];
let zscqCount = 0;
if (eInfo.intellectualProperty) {
if (eInfo.intellectualProperty.alienPatent) {
zscqList.push({key:"海外专利", value:eInfo.intellectualProperty.alienPatent});
zscqCount += eInfo.intellectualProperty.alienPatent;
}
if (eInfo.intellectualProperty.classIPatent) {
zscqList.push({key:"一类专利", value:eInfo.intellectualProperty.classIPatent});
zscqCount += eInfo.intellectualProperty.classIPatent;
}
if (eInfo.intellectualProperty.secondClassPatent) {
zscqList.push({key:"二类专利", value:eInfo.intellectualProperty.secondClassPatent});
zscqCount += eInfo.intellectualProperty.secondClassPatent;
}
}
let financingList = await financingData.findFinancingList({uscc});
let rzqkCount = "-";
let rzqkLunci = "-";
let rzqkMap = {};
let thisYear = new Date().getFullYear();
for (let i = 4; i >= 0; i-- ) {
let year = thisYear - i;
rzqkMap[year] = 0;
}
if (financingList.length) {
financingList.forEach(info => {
let yearKey = new Date(info.timeToObtainInvestment).getFullYear();
if (rzqkMap[yearKey] != undefined) {
rzqkMap[yearKey] += info.financingAmount;
}
});
rzqkLunci = changeEnumValue(FINANCINGROUNDS, financingList[financingList.length - 1].financingRounds)
rzqkCount = `${financingList[financingList.length - 1].financingAmount}万`;
}
let rzqkList = [];
for (let key in rzqkMap) {
rzqkList.push({
key, value:rzqkMap[key]
});
}
let star = 0;
let starStr = "-";
let kcf = 0;
let kcfpm = 0;
let ejhy = eInfo.gbej || '-';
if (eInfo.kcf) {
ejhy = eInfo.kcf.subIndustry;
kcf = eInfo.kcf.score;
kcfpm = eInfo.kcf.industryRanking;
if (eInfo.kcf.score && !isNaN(eInfo.kcf.score)) {
star = Math.floor(parseInt(eInfo.kcf.score)/20);
if (star < 3) {
starStr = "优秀";
} else starStr = "良好";
}
}
let gqjgList = [];
if (eInfo.guQuanJieGou) {
eInfo.guQuanJieGou.forEach(info => {
gqjgList.push({
key:info.name,
value:parseFloat(info.stockPercent)
})
})
}
let sxList = await dishonestPersonData.findList({uscc});
let flfx = [];
sxList.forEach(info => {
flfx.push(`${info.actionRemark || ""} ${info.amount || ""} `);
});
let illegalityList = await illegalityData.findList({uscc});
let jyqdxfx = [];
illegalityList.forEach(info => {
jyqdxfx.push(`${info.AddReason || ""}`);
});
let riskList = await enterpriseRiskData.findList({uscc});
let glqyfx = [];
riskList.forEach(info => {
glqyfx.push(`${info.title || ""}`);
});
let demandList = await demandData.findByParam({uscc});
let qyxqList = [];
demandList.forEach(info => {
let label = [];
info.demand.forEach(item => {
label.push(changeEnumValue(VISITDEMAND, item))
})
qyxqList.push({
time:moment(info.createTime).format("YYYY-MM-DD"),
labelStr:changeEnumValue(VISITDEMAND, info.demand),
label,
desc:info.demandDesc
})
});
let sysc = 0;
let htzt = "-";
let zjjn = "-";
if (eInfo.leaseInfo) {
if (eInfo.leaseInfo.rentEndTime) {
sysc = moment(eInfo.leaseInfo.rentEndTime).diff(new Date().valueOf(), 'months');
if (eInfo.leaseInfo.contractEndTime > new Date().valueOf()) {
htzt = "签约企业";
}else {
htzt = "到期企业"
}
if (eInfo.leaseInfo.rentEndTime > new Date().valueOf()) {
htzt = "正常缴纳";
}else {
htzt = "到期未缴"
}
}
}
let zlqkDataInfo = await leaseData.findOnceData({uscc});
let zlqkList = [];
if (zlqkDataInfo && zlqkDataInfo.rentPayment && Array.isArray(zlqkDataInfo.rentPayment)) {
zlqkDataInfo.rentPayment.forEach(info => {
zlqkList.push({
time:moment(info.payStartTime).format("YYYY.MM.DD"),
jnqx:`已缴纳${info.payLong}个月`,
state:"已缴"
});
})
};
let qualificationsList = await qualificationsData.findList({uscc});
let zzzcList = [];
qualificationsList.forEach(info => {
let itemTime = "-";
if (info.startDate) itemTime = moment(info.startDate).format("YYYY.MM.DD")
zzzcList.push({
time:itemTime,
name:info.name || "-",
state:info.status || "-"
})
})
let visitList = await visitData.findByParam({uscc});
let qyzfList = [];
visitList.forEach(info => {
qyzfList.push({
time:moment(info.visitTime).format("YYYY.MM.DD"),
leaderName:info.leaderName,
type:changeEnumValue(RESEARCHTYPE, info.researchType),
desc:info.desc,
state:changeEnumValue(VISITSTATE, info.state)
});
})
let result = {
enterpriseInfo:{
name:eInfo.name,
uscc:uscc,
legalPerson:eInfo.legalPerson || "-",
RAS:eInfo.RAS ? changeEnumValue(RAS, eInfo.RAS) : "-",
logonTime:eInfo.logonTime ? moment(eInfo.logonTime).format("YYYY-MM-DD") : "-",
firstIncubationTime:eInfo.firstIncubationTime ? moment(eInfo.firstIncubationTime).format("YYYY-MM-DD") : "-",
zuZhiJiGouDaiMa:eInfo.zuZhiJiGouDaiMa,
label
},
zscq:{
count:zscqCount,
dataList:zscqList,
},
rzqk:{
befor:{
count:rzqkCount,
lunci:rzqkLunci
},
dataList:rzqkList,
},
qykcf:{
ejhy,
star,
starStr,
kcf,
kcfpm
},
gqjg:gqjgList,
qyfx:{
flfx,
jyqdxfx,
glqyfx,
},
qyxq:{
count:qyxqList.length,
dataList:qyxqList,
},
zlqk:{
sysc,
htzt,
zjjn,
dataList:zlqkList
},
zzzc:{
count:zzzcList.length,
dataList:zzzcList
},
qyzf:{
count:qyzfList.length,
dataList:qyzfList
},
};
return result;
}
/**
* 走访管理后台
*/
import moment = require("moment");
import { RESEARCHTYPE, VISITENTERPRISETYPE } from "../../../config/enum";
import * as visitData from "../../../data/fuHuaQi/visit";
import { changeEnumValue } from "../../../util/verificationEnum";
import { BizError } from "../../../util/bizError";
import { ERRORENUM } from "../../../config/errorEnum";
export async function trackList(name, type, state, page) {
let param:any = {follow:true};
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 dataList = [];
dbList.forEach(info => {
let stateStr = "待走访";
if (info.state == 2) stateStr = "取消走访";
else if (info.state == 3) stateStr = "完成走访";
let item = {
id:info.id,
uscc:info.uscc,
name:info.enterpriseName,
trackType:changeEnumValue(VISITENTERPRISETYPE, info.enterpriseType),
trackState:stateStr,
trackTime:moment(info.visitTime).format("YYYY-MM-DD"),
completionTime:"-"//这里小程序走访完成的时候不会记录时间
};
dataList.push(item);
})
return {dataList, count}
}
export async function deleteTrack(id) {
let trackInfo = await visitData.findOne({id});
if (!trackInfo || !trackInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
await visitData.removeOneData(id);
return {isSuccess:true};
}
export async function changeTrackState(id, state) {
let trackInfo = await visitData.findOne({id});
if (!trackInfo || !trackInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
trackInfo.state = state;
return {isSuccess:true};
}
export async function trackInfo(uscc) {
let trackInfo = await visitData.findOne({uscc});
if (!trackInfo || !trackInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
let dataInfo = {
name:trackInfo.enterpriseName,
trackType:changeEnumValue(VISITENTERPRISETYPE, trackInfo.enterpriseType),
trackTime:moment(trackInfo.visitTime).format("YYYY-MM-DD"),
accompany:trackInfo.accompany,
leaderName:trackInfo.leaderName,
researchType:changeEnumValue(RESEARCHTYPE, trackInfo.researchType),
desc:trackInfo.desc
}
return {dataInfo}
}
\ No newline at end of file
...@@ -52,6 +52,7 @@ export async function fuHuaQiBaseData(uscc:string) { ...@@ -52,6 +52,7 @@ export async function fuHuaQiBaseData(uscc:string) {
liaison:fuHuaQiInfo.liaison,//联系人 liaison:fuHuaQiInfo.liaison,//联系人
personInCharge:fuHuaQiInfo.personInCharge,//负责人 personInCharge:fuHuaQiInfo.personInCharge,//负责人
personInChargePhone:fuHuaQiInfo.personInChargePhone,//负责人联系电话 personInChargePhone:fuHuaQiInfo.personInChargePhone,//负责人联系电话
liaisonPhone:fuHuaQiInfo.liaisonPhone,//负责人联系电话
introduction:fuHuaQiInfo.introduction,//孵化器简介 introduction:fuHuaQiInfo.introduction,//孵化器简介
}; };
...@@ -125,7 +126,7 @@ export async function updateFuHuaQiBaseData(uscc:string, param) { ...@@ -125,7 +126,7 @@ export async function updateFuHuaQiBaseData(uscc:string, param) {
let changeList = checkChange(param, baseDataInfo); let changeList = checkChange(param, baseDataInfo);
for (let i = 0; i < changeList.length; i++) { for (let i = 0; i < changeList.length; i++) {
let key = changeList[i]; let key = changeList[i];
if (key == "operationName" || key == "uscc") continue; if (key == "uscc") continue;
baseDataInfo[key] = param[key]; baseDataInfo[key] = param[key];
} }
......
...@@ -4,12 +4,15 @@ ...@@ -4,12 +4,15 @@
import moment = require("moment"); import moment = require("moment");
import { ENTERPRISETEAM, FINANCINGROUNDS, FUHUASTATE } from "../../../../config/enum"; import { ENTERPRISETEAM, FINANCINGROUNDS, FUHUASTATE } from "../../../../config/enum";
import { findEnterpriseCount, statsIntellectualPropertyData } from "../../../../data/enterprise/enterprise"; import { findEnterpriseCount, statsIntellectualPropertyData, findEnterpriseList } from "../../../../data/enterprise/enterprise";
import { statsEnterpriseFinancing, statsEnterpriseFinancingByTime } from "../../../../data/enterprise/financingInfo"; import { statsEnterpriseFinancing, statsEnterpriseFinancingByTime } from "../../../../data/enterprise/financingInfo";
import { statsBusinessDataByParam } from "../../../../data/enterprise/quarterTask/businessdata"; import { statsBusinessDataByParam } from "../../../../data/enterprise/quarterTask/businessdata";
import { changeEnumValue } from "../../../../util/verificationEnum"; import { changeEnumValue } from "../../../../util/verificationEnum";
import { statsEnterpriseTeamData } from "../../../../data/enterprise/quarterTask/team"; import { statsEnterpriseTeamData } from "../../../../data/enterprise/quarterTask/team";
import { statsEnterpriseInitalTeamsType } from "../../../../data/enterprise/initialTeam"; import { statsEnterpriseInitalTeamsType } from "../../../../data/enterprise/initialTeam";
import { findI18nRegisterListByParam } from "../../../../data/fuHuaQi/instituQualify/i18nRegister";
import { getIcrCountByParam } from "../../../../data/fuHuaQi/instituQualify/icr";
import { findFinancingList } from "../../../../data/fuHuaQi/monthTask/financing";
export async function enterpriseBaseData() { export async function enterpriseBaseData() {
...@@ -86,3 +89,87 @@ function getDeclarationTime() { ...@@ -86,3 +89,87 @@ function getDeclarationTime() {
} else thisQuarter = thisQuarter - 1; } else thisQuarter = thisQuarter - 1;
return {declarationYear:thisYear, declarationQuarter:thisQuarter}; return {declarationYear:thisYear, declarationQuarter:thisQuarter};
} }
export async function enterpriseNumberChnageInfo(year) {
let param = {
taskId:{"$regex":/^\d{18}2024\d{1,2}$/},
draftLock:true,
};
let dbList = await findEnterpriseList(param);
let map = {};
dbList.forEach(info => {
let { taskId, isCreate } = info;
const match = taskId.match(/^\d{18}(\d{4})(\d{1,2})$/);
let year = parseInt(match[1]);
let month = parseInt(match[2]);
let quarter = Math.ceil(month / 3);
if (!map[quarter]) {
map[quarter] = { quarter:`第${quarter}季度`, moveIn:0, register:0 };
}
if ( isCreate ) {
map[quarter].register += 1;
} else {
map[quarter].moveIn += 1;
}
});
let dataList = [];
for (let key in map) {
dataList.push(map[key]);
}
return {dataList}
}
export async function valueAnalysisStatis(uscc) {
let param = { uscc };
let i18dbList = await findI18nRegisterListByParam(param);
let partnersCount = i18dbList.length();
let cooperateCount = await getIcrCountByParam(param);
let dbList = await findFinancingList({fuHuaQiUscc:uscc});
let map = {};
let montyMap = {};
dbList.forEach(info => {
let {taskId, fuHuaQiInvestmentAmount} = info;
const match = taskId.match(/^\d{18}(\d{4})(\d{1,2})$/);
let month = parseInt(match[2]);
if (!map[month]) map[month] = 0;
if (!montyMap[month]) montyMap[month] = 0;
map[month] += 1;
montyMap[month] += fuHuaQiInvestmentAmount;
});
let countList = [];
let montyList = [];
for (let i = 1; i <= 12; i++) {
countList.push({
month:`${i}月`,
value:map[i]||0
});
montyList.push({
month:`${i}月`,
value:montyMap[i]||0
});
}
return {countList, montyList, partnersCount, cooperateCount};
}
...@@ -68,6 +68,8 @@ export async function fuHuaQiWarningOverView() { ...@@ -68,6 +68,8 @@ export async function fuHuaQiWarningOverView() {
} }
/** /**
* 营收数据正常/异常 * 营收数据正常/异常
* 需求1 单价参考 hatchingGround 字段 没有备案场地不报警 * 需求1 单价参考 hatchingGround 字段 没有备案场地不报警
...@@ -283,3 +285,6 @@ function getDeclarationTime() { ...@@ -283,3 +285,6 @@ function getDeclarationTime() {
} else thisQuarter = thisQuarter - 1; } else thisQuarter = thisQuarter - 1;
return {declarationYear:thisYear, declarationQuarter:thisQuarter}; return {declarationYear:thisYear, declarationQuarter:thisQuarter};
} }
...@@ -4,10 +4,11 @@ ...@@ -4,10 +4,11 @@
import moment = require("moment"); import moment = require("moment");
import { FUHUAINDUSTRY, FUHUAQILV, INSTITUTIONALNATURE } from "../../../../config/enum"; import { FUHUAINDUSTRY, FUHUAQILV, INSTITUTIONALNATURE } from "../../../../config/enum";
import { findFuHuaQiList } from "../../../../data/fuHuaQi/fuhuaqi"; import { findFuHuaQiList, findFuHuaQiOperationNameMapByParam } from "../../../../data/fuHuaQi/fuhuaqi";
import { changeEnumValue } from "../../../../util/verificationEnum"; import { changeEnumValue } from "../../../../util/verificationEnum";
import { findMonthTableListCount, statsFuHuaQiMonthDataCount } from "../../../../data/fuHuaQi/monthTask/monthTable"; import { findMonthTableListCount, statsFuHuaQiMonthDataCount } from "../../../../data/fuHuaQi/monthTask/monthTable";
import { findScoreDataByParam } from "../../../../data/fuHuaQi/score"; import { findScoreDataByParam } from "../../../../data/fuHuaQi/score";
import * as monthTableData from "../../../../data/fuHuaQi/monthTask/monthTable";
export async function fuHuaQiBaseData() { export async function fuHuaQiBaseData() {
let fuHuaQiList = await findFuHuaQiList({}); let fuHuaQiList = await findFuHuaQiList({});
...@@ -104,3 +105,77 @@ async function czlqs() { ...@@ -104,3 +105,77 @@ async function czlqs() {
}); });
return {czlList, monthList}; return {czlList, monthList};
} }
/**
* 孵化器看板
* 孵化器填报情况
*/
export async function taskTianBao(startMs, endMs) {
let startYear = new Date(startMs).getFullYear();
let startMonth = new Date(startMs).getMonth() + 1;
let endMonth = new Date(endMs).getMonth() + 1;
let param = {
draftLock:true,
// $or: [
// { year: startYear, month: { $gte: startMonth } },
// { year: endYear, month: { $lte: endMonth } }
// ]
year:startYear,
month:{"$gte":startMonth, "$lte":endMonth}
};
let nullParam = {
draftLock:{"$ne":true},
year:startYear,
month:{"$gte":startMonth, "$lte":endMonth}
// $or: [
// { year: startYear, month: { $gte: startMonth } },
// { year: endYear, month: { $lte: endMonth } }
// ]
};
let nameMap = await findFuHuaQiOperationNameMapByParam({});
let dbList = await monthTableData.findMonthTableList(param);
let nullCount = await monthTableData.findMonthTableListCount(nullParam);
let allOccupancyRate = 0;//整体出租率
let allCount = 0;
let submitCount = 0;//整体填报率
let dataList = [];
dbList.forEach(info => {
dataList.push({
occupancyRate:info.occupancyRate,
name:nameMap[info.fuHuaQiUscc] || "",
fuHuaQiUscc:info.fuHuaQiUscc,
});
if (info.occupancyRate) {
allOccupancyRate += info.occupancyRate;
allCount += 1;
submitCount += 1;
} else {
nullCount += 1;
}
});
dataList.sort((a, b) => {return a.occupancyRate - b.occupancyRate});
let occupancyRate = 0;
if (allOccupancyRate && allCount ){
occupancyRate = Math.ceil(allOccupancyRate/allCount);
}
let submitRate = 0;
if (submitCount && (nullCount+submitCount)) {
submitRate = Math.ceil(submitCount/(nullCount+submitCount) * 100);
}
return {
occupancyRate, submitRate, dataList:dataList.slice(0, 10)
}
}
...@@ -10,6 +10,7 @@ export async function activityList() { ...@@ -10,6 +10,7 @@ export async function activityList() {
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let {address, title, img, startTime, endTime, id, labelList} = info; let {address, title, img, startTime, endTime, id, labelList} = info;
labelList = labelList || [];
let label = []; let label = [];
labelList.forEach(labelInfo => { labelList.forEach(labelInfo => {
label.push({ label.push({
......
...@@ -50,6 +50,7 @@ export async function registerEnterprise(uscc:string, param) { ...@@ -50,6 +50,7 @@ export async function registerEnterprise(uscc:string, param) {
} }
} else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu); } else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu);
param.jiaSu = param.jiaSu == 1;
/**添加新注册企业标识 */ /**添加新注册企业标识 */
param.draftId = sysTools.getDraftId(uscc);//草稿箱id param.draftId = sysTools.getDraftId(uscc);//草稿箱id
param.isCreate = true;//标识此次操作是否是新注册企业并不是迁入企业 param.isCreate = true;//标识此次操作是否是新注册企业并不是迁入企业
...@@ -65,6 +66,7 @@ export async function registerEnterprise(uscc:string, param) { ...@@ -65,6 +66,7 @@ export async function registerEnterprise(uscc:string, param) {
leaseInfo.contractEndTime = param.contractEndTime; leaseInfo.contractEndTime = param.contractEndTime;
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
...@@ -88,6 +90,7 @@ export async function registerEnterprise(uscc:string, param) { ...@@ -88,6 +90,7 @@ export async function registerEnterprise(uscc:string, param) {
} }
], ],
address:param.leaseAddress,//地址 address:param.leaseAddress,//地址
areaUnit : param.areaUnit
}; };
await leaseData.createData(addLease); await leaseData.createData(addLease);
...@@ -134,12 +137,14 @@ export async function updateRegisterEnterprise(uscc:string, param) { ...@@ -134,12 +137,14 @@ export async function updateRegisterEnterprise(uscc:string, param) {
} }
} else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu); } else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu);
/**修改字段 */ /**修改字段 */
let changeList = checkChange(param, dataBaseInfo); let changeList = checkChange(param, dataBaseInfo);
if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${param.uscc}数据无更新`); if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${param.uscc}数据无更新`);
changeList.forEach(key => { changeList.forEach(key => {
dataBaseInfo[key] = param[key]; dataBaseInfo[key] = param[key];
}); });
dataBaseInfo.jiaSu = param.jiaSu == 1;
await dataBaseInfo.save(); await dataBaseInfo.save();
...@@ -151,6 +156,7 @@ export async function updateRegisterEnterprise(uscc:string, param) { ...@@ -151,6 +156,7 @@ export async function updateRegisterEnterprise(uscc:string, param) {
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -193,6 +199,8 @@ export async function moveInEnterprise(uscc:string, param) { ...@@ -193,6 +199,8 @@ export async function moveInEnterprise(uscc:string, param) {
} }
} else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu); } else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu);
param.jiaSu = param.jiaSu == 1;
const TaskId = taskTool.getTaskId(uscc); const TaskId = taskTool.getTaskId(uscc);
if ( dataBaseInfo && dataBaseInfo.state && dataBaseInfo.state == configEnum.FUHUASTATE.迁出) { if ( dataBaseInfo && dataBaseInfo.state && dataBaseInfo.state == configEnum.FUHUASTATE.迁出) {
...@@ -235,6 +243,7 @@ export async function moveInEnterprise(uscc:string, param) { ...@@ -235,6 +243,7 @@ export async function moveInEnterprise(uscc:string, param) {
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -250,6 +259,7 @@ export async function moveInEnterprise(uscc:string, param) { ...@@ -250,6 +259,7 @@ export async function moveInEnterprise(uscc:string, param) {
contractEndTime:param.contractEndTime, contractEndTime:param.contractEndTime,
price:param.price,//单价 price:param.price,//单价
area:param.leasedArea,//租赁面积 area:param.leasedArea,//租赁面积
areaUnit : param.areaUnit,
rentPayment : [ rentPayment : [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -310,6 +320,8 @@ export async function updateMoveInEnterprise(uscc:string, param) { ...@@ -310,6 +320,8 @@ export async function updateMoveInEnterprise(uscc:string, param) {
changeList.forEach(key => { changeList.forEach(key => {
dataBaseInfo[key] = param[key]; dataBaseInfo[key] = param[key];
}); });
dataBaseInfo.jiaSu = param.jiaSu == 1;
await dataBaseInfo.save(); await dataBaseInfo.save();
let leaseInfo = await leaseData.findOnceData({uscc:param.uscc}); let leaseInfo = await leaseData.findOnceData({uscc:param.uscc});
...@@ -320,6 +332,7 @@ export async function updateMoveInEnterprise(uscc:string, param) { ...@@ -320,6 +332,7 @@ export async function updateMoveInEnterprise(uscc:string, param) {
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -361,6 +374,7 @@ export async function getEnterpriseByDraftId(draftId:string) { ...@@ -361,6 +374,7 @@ export async function getEnterpriseByDraftId(draftId:string) {
let rentPaymentInfo = leaseInfo.rentPayment[0]; let rentPaymentInfo = leaseInfo.rentPayment[0];
data.payStartTime = rentPaymentInfo.payStartTime; data.payStartTime = rentPaymentInfo.payStartTime;
data.payLong = rentPaymentInfo.payLong; data.payLong = rentPaymentInfo.payLong;
data.areaUnit = leaseInfo.areaUnit || configEnum.AREAUNIT.面积;
return {data}; return {data};
} }
......
...@@ -31,12 +31,12 @@ export async function keynoteDynamicsHomeList(fuHuaQiUscc:string) { ...@@ -31,12 +31,12 @@ export async function keynoteDynamicsHomeList(fuHuaQiUscc:string) {
let followCount = await enterpriseData.findEnterpriseCount({fuHuaQiUscc, follow:true}); let followCount = await enterpriseData.findEnterpriseCount({fuHuaQiUscc, follow:true});
return {dataList, notRedCount, followCount} return {dataList, notRedCount, followCount};
} }
export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) { export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) {
let param:any = {}; let param:any = {fuHuaQiUscc};
if (type == 1) { if (type == 1) {
param.isRead = true; param.isRead = true;
...@@ -44,7 +44,7 @@ export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) { ...@@ -44,7 +44,7 @@ export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) {
param.isRead = false; param.isRead = false;
} }
let dbList = await dynamicsData.findByParam({fuHuaQiUscc}); let dbList = await dynamicsData.findByParam(param);
let dataList = []; let dataList = [];
dbList.forEach(item => { dbList.forEach(item => {
...@@ -59,11 +59,29 @@ export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) { ...@@ -59,11 +59,29 @@ export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) {
dataList.push(addInfo); dataList.push(addInfo);
}); });
return {dataList} return {dataList}
} }
export async function changeReadState(id) {
let dyInfo = await dynamicsData.findOne({id});
if (!dyInfo || !dyInfo.id) return {isSuccess:true}
dyInfo.isRead = true;
await dyInfo.save();
return {isSuccess:true}
}
export async function keynoteDynamicsEnterprise( uscc:string) { export async function keynoteDynamicsEnterprise( uscc:string) {
let etnerpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (!etnerpriseInfo || !etnerpriseInfo.uscc) {
let dataList = [];
return {dataList}
}
let dbList = await dynamicsData.findByParam({uscc}); let dbList = await dynamicsData.findByParam({uscc});
let enterpriseName = ""; let enterpriseName = "";
...@@ -74,20 +92,21 @@ export async function keynoteDynamicsEnterprise( uscc:string) { ...@@ -74,20 +92,21 @@ export async function keynoteDynamicsEnterprise( uscc:string) {
changeType:changeEnumValue(ENTERPRISECHANGETYPE, item.changeType), changeType:changeEnumValue(ENTERPRISECHANGETYPE, item.changeType),
oldContent:item.oldContent || "", oldContent:item.oldContent || "",
newContent:item.content || "", newContent:item.content || "",
time:moment(item.createTime) time:moment().format("YYYY-MM-DD")
}; };
dataList.push(addInfo); dataList.push(addInfo);
}); });
return {dataList, enterpriseName} return {dataList, enterpriseName:etnerpriseInfo.name}
} }
export async function keynoteList(fuHuaQiUscc:string, str:string, labels) { export async function keynoteList(fuHuaQiUscc:string, str:string, labels) {
let param:any = {fuHuaQiUscc}; let param:any = {fuHuaQiUscc, follow:true};
if (str) param.name = {"$regex":str, follow:true} if (str) param.name = {"$regex":str}
if (labels) param.labels = {$elemMatch: { labelId: labels }}
let dbList = await enterpriseData.findEnterpriseList(param); let dbList = await enterpriseData.findEnterpriseList(param);
...@@ -105,7 +124,7 @@ export async function keynoteList(fuHuaQiUscc:string, str:string, labels) { ...@@ -105,7 +124,7 @@ export async function keynoteList(fuHuaQiUscc:string, str:string, labels) {
let label = []; let label = [];
if (item.labels) { if (item.labels) {
item.labels.forEach(labelItem => { item.labels.forEach(labelItem => {
if (labelItem.state) { if (labelItem.state && labelMap[labelItem.labelId]) {
label.push(labelMap[labelItem.labelId]); label.push(labelMap[labelItem.labelId]);
} }
}) })
......
...@@ -14,10 +14,10 @@ import { eccFormParam, eccReqParamater } from "../../../util/verificationParam"; ...@@ -14,10 +14,10 @@ import { eccFormParam, eccReqParamater } from "../../../util/verificationParam";
import * as verificationEnumTools from "../../../util/verificationEnum"; import * as verificationEnumTools from "../../../util/verificationEnum";
import { checkChange, extractData } from "../../../util/piecemeal"; import { checkChange, extractData } from "../../../util/piecemeal";
import * as scoreBiz from "../fuHuaQi/score"; import * as scoreBiz from "../fuHuaQi/score";
import { FUHUAQINODEENUM } from "../../../config/pointConfig"; import { ENTERPRISENODEENUM, FUHUAQINODEENUM } from "../../../config/pointConfig";
import { addFuHuaQiPoint } from "../../point"; import { addEnterprisePoint, addFuHuaQiPoint } from "../../point";
import moment = require("moment"); import moment = require("moment");
import { findEnterpriseNewTeamData } from "../../../data/enterprise/quarterTask/team"; import { addTeamData, findEnterpriseNewTeamData, findTeamByUsccAndTime } from "../../../data/enterprise/quarterTask/team";
import { EnterpriseTeamConfig } from "../../../config/splitResultConfig"; import { EnterpriseTeamConfig } from "../../../config/splitResultConfig";
import { findBusinessDataByUsccAndYear } from "../../../data/enterprise/quarterTask/businessdata"; import { findBusinessDataByUsccAndYear } from "../../../data/enterprise/quarterTask/businessdata";
import { selectRepleishData } from "../../../data/enterprise/replenish"; import { selectRepleishData } from "../../../data/enterprise/replenish";
...@@ -25,6 +25,7 @@ import { enterpriseLabelEvent } from "../../label"; ...@@ -25,6 +25,7 @@ import { enterpriseLabelEvent } from "../../label";
import { findFuHuaQiByUSCC } from "../../../data/fuHuaQi/fuhuaqi"; import { findFuHuaQiByUSCC } from "../../../data/fuHuaQi/fuhuaqi";
import * as leaseData from "../../../data/lease"; import * as leaseData from "../../../data/lease";
import { LABELEVENT } from "../../../config/enum/labelEnum"; import { LABELEVENT } from "../../../config/enum/labelEnum";
import { EnterpriseQualificationUpdateConfig } from "../../../config/eccParam/enterprise";
...@@ -109,7 +110,7 @@ export async function myEnterprise(uscc:string, state:number, name:string, page: ...@@ -109,7 +110,7 @@ export async function myEnterprise(uscc:string, state:number, name:string, page:
export async function myEnterpriseJS(uscc:string, state:number, name:string, page:number) { export async function myEnterpriseJS(uscc:string, state:number, name:string, page:number) {
let result:any = {}; let result:any = {};
let selectParam:any = { fuHuaQiUscc:uscc}; let selectParam:any = { fuHuaQiUscc:uscc, jiaSu:true};
if (name) selectParam.name = {"$regex":`${name}`}; if (name) selectParam.name = {"$regex":`${name}`};
if (state == configEnum.INSIDESTATE.全部) { if (state == configEnum.INSIDESTATE.全部) {
selectParam.state = {"$lt":4}; selectParam.state = {"$lt":4};
...@@ -157,6 +158,8 @@ export async function myEnterpriseJS(uscc:string, state:number, name:string, pag ...@@ -157,6 +158,8 @@ export async function myEnterpriseJS(uscc:string, state:number, name:string, pag
changeData.state = verificationEnumTools.changeEnumValue(configEnum.FUHUASTATE, changeData.state); changeData.state = verificationEnumTools.changeEnumValue(configEnum.FUHUASTATE, changeData.state);
changeData.follow = info.follow;
changeData.jiaSuZiZhi = verificationEnumTools.changeEnumManyValue(configEnum.JIASUZIZHI, info.jiaSuZiZhi)
enterpriseList.push(changeData); enterpriseList.push(changeData);
}); });
...@@ -480,6 +483,8 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -480,6 +483,8 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
} }
} else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu); } else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu);
param.jiaSu = param.jiaSu == 1;
/**添加新注册企业标识 */ /**添加新注册企业标识 */
if ( dataBaseInfo && dataBaseInfo.state && dataBaseInfo.state == configEnum.FUHUASTATE.迁出) { if ( dataBaseInfo && dataBaseInfo.state && dataBaseInfo.state == configEnum.FUHUASTATE.迁出) {
dataBaseInfo.fuHuaQiUscc = fuHuaQiUscc; dataBaseInfo.fuHuaQiUscc = fuHuaQiUscc;
...@@ -495,6 +500,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -495,6 +500,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
dataBaseInfo[key] = param[key]; dataBaseInfo[key] = param[key];
} }
} else { } else {
/**添加新注册企业标识 */ /**添加新注册企业标识 */
param.isCreate = false;//标识此次操作是否是迁入企业并不是新注册企业 param.isCreate = false;//标识此次操作是否是迁入企业并不是新注册企业
...@@ -504,6 +510,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -504,6 +510,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
await enterpriseData.replenishEnterpriseData(fuHuaQiUscc, param); await enterpriseData.replenishEnterpriseData(fuHuaQiUscc, param);
} }
addFuHuaQiPoint(fuHuaQiUscc, FUHUAQINODEENUM.我的企业_补录企业, param.uscc, '新迁入' ); addFuHuaQiPoint(fuHuaQiUscc, FUHUAQINODEENUM.我的企业_补录企业, param.uscc, '新迁入' );
/**企业状态改变埋点 */ /**企业状态改变埋点 */
...@@ -527,6 +534,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -527,6 +534,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -542,6 +550,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -542,6 +550,7 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
contractEndTime:param.contractEndTime, contractEndTime:param.contractEndTime,
price:param.price,//单价 price:param.price,//单价
area:param.leasedArea,//租赁面积 area:param.leasedArea,//租赁面积
areaUnit : param.areaUnit,
rentPayment : [ rentPayment : [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -590,6 +599,8 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) ...@@ -590,6 +599,8 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param)
} }
} else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu); } else throw new BizError(ERRORENUM.参数错误, "加速企业不符合1或2", param.jiaSu);
param.jiaSu = param.jiaSu == 1;
await enterpriseData.replenishEnterpriseData(fuHuaQiUscc, param); await enterpriseData.replenishEnterpriseData(fuHuaQiUscc, param);
addFuHuaQiPoint(fuHuaQiUscc, FUHUAQINODEENUM.我的企业_补录企业, param.uscc, '新注册' ); addFuHuaQiPoint(fuHuaQiUscc, FUHUAQINODEENUM.我的企业_补录企业, param.uscc, '新注册' );
...@@ -614,6 +625,7 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) ...@@ -614,6 +625,7 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param)
leaseInfo.price = param.price;//单价 leaseInfo.price = param.price;//单价
leaseInfo.area = param.leasedArea;//租赁面积 leaseInfo.area = param.leasedArea;//租赁面积
leaseInfo.address = param.leaseAddress; leaseInfo.address = param.leaseAddress;
leaseInfo.areaUnit = param.areaUnit;
leaseInfo.rentPayment = [ leaseInfo.rentPayment = [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -629,6 +641,7 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) ...@@ -629,6 +641,7 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param)
contractEndTime:param.contractEndTime, contractEndTime:param.contractEndTime,
price:param.price,//单价 price:param.price,//单价
area:param.leasedArea,//租赁面积 area:param.leasedArea,//租赁面积
areaUnit : param.areaUnit,
rentPayment : [ rentPayment : [
{ {
payStartTime:param.payStartTime, payStartTime:param.payStartTime,
...@@ -652,57 +665,143 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) ...@@ -652,57 +665,143 @@ export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param)
export async function getMyEnterpriseQualification(uscc:string) { export async function getMyEnterpriseQualification(uscc:string) {
let dataBaseInfo = await enterpriseData.findEnterpriseByUscc(uscc); let dataBaseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let result = { let qualificationParam = {
isHighTech:false, isHighTech:false,
highTechMs:"未获得",//高新技术 highTechMs:0,//高新技术
isZjtx:false, isZjtx:false,
zjtxMs:"未获得",//专精特新 zjtxMs:0,//专精特新
isXjrpy:false, isXjrpy:false,
xjrpyMs:"未获得",//小巨人培育 xjrpyMs:0,//小巨人培育
isXjr:false, isXjr:false,
xjrMs:"未获得",//小巨人 xjrMs:0,//小巨人
isBeOnTheMarket:false,//是否上市 isBeOnTheMarket:false,//是否上市
beOnTheMarkeStr:"未上市" beOnTheMarket:[],
}; };
let qualification = dataBaseInfo.qualification; let qualification = dataBaseInfo.qualification;
if (qualification) { if (qualification) {
if (qualification.isHighTech) { if (qualification.isHighTech) {
result.isHighTech = true; qualificationParam.isHighTech = true;
result.highTechMs = moment(qualification.highTechMs).format("YYYY-MM-DD"); qualificationParam.highTechMs = qualification.highTechMs;
} }
if (qualification.isZjtx) { if (qualification.isZjtx) {
result.isZjtx = true; qualificationParam.isZjtx = true;
result.zjtxMs = moment(qualification.zjtxMs).format("YYYY-MM-DD"); qualificationParam.zjtxMs = qualification.zjtxMs;
} }
if (qualification.isXjrpy) { if (qualification.isXjrpy) {
result.isXjrpy = true; qualificationParam.isXjrpy = true;
result.xjrpyMs = moment(qualification.xjrpyMs).format("YYYY-MM-DD"); qualificationParam.xjrpyMs = qualification.xjrpyMs;
} }
if (qualification.isXjr) { if (qualification.isXjr) {
result.isXjr = true; qualificationParam.isXjr = true;
result.xjrMs = moment(qualification.xjrMs).format("YYYY-MM-DD"); qualificationParam.xjrMs = qualification.xjrMs;
} }
if (qualification.isBeOnTheMarket) { if (qualification.isBeOnTheMarket) {
result.isBeOnTheMarket = true; qualificationParam.isBeOnTheMarket = true;
result.beOnTheMarkeStr = "已上市"; qualificationParam.beOnTheMarket = qualification.beOnTheMarket;
} }
} }
return result; let intellectualPropertyParam = {
alienPatent:0,
classIPatent:0,
secondClassPatent:0,
};
let intellectualProperty = dataBaseInfo.intellectualProperty;
if (intellectualProperty) {
intellectualPropertyParam.alienPatent = intellectualProperty.alienPatent;//海外专利
intellectualPropertyParam.classIPatent = intellectualProperty.classIPatent;//一类专利
intellectualPropertyParam.secondClassPatent = intellectualProperty.secondClassPatent;//二类专利
}
return { qualificationParam, intellectualPropertyParam };
} }
/**
* 修改企业资质
* @param uscc 企业统一信用代码
* @returns
*/
export async function updateQualification(uscc:string, intellectualPropertyParam, qualificationParam) {
eccFormParam("修改企业资质", eccFormParamConfig.MyEnterpriseQualificationUpdateConfig, qualificationParam);
if (qualificationParam.isBeOnTheMarket) {
if (!qualificationParam.beOnTheMarket.length) throw new BizError(ERRORENUM.参数错误, '修改企业资质', '缺失 beOnTheMarket ')
verificationEnumTools.eccEnumValue("修改企业资质", "beOnTheMarket", configEnum.LISTINGSITUATION, qualificationParam.beOnTheMarket );
} else qualificationParam.beOnTheMarket = [];
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
/**埋点 */
let oldQualification = enterpriseInfo.qualification || {};
let oldHighTechData = {highTechMs:oldQualification.highTechMs, isHighTech:oldQualification.isHighTech};
let newHighTechData = {highTechMs:qualificationParam.highTechMs, isHighTech:qualificationParam.isHighTech};
addEnterprisePoint( uscc, ENTERPRISENODEENUM.企业资质_高新技术,oldHighTechData, newHighTechData );
let oldIsZjtxData = {isZjtx:oldQualification.isZjtx, zjtxMs:oldQualification.zjtxMs};
let newIsZjtxData = {isZjtx:qualificationParam.isZjtx, zjtxMs:qualificationParam.zjtxMs};
addEnterprisePoint( uscc, ENTERPRISENODEENUM.企业资质_专精特新,oldIsZjtxData, newIsZjtxData );
let oldIsXjrpyData = {isXjrpy:oldQualification.isXjrpy, xjrpyMs:oldQualification.xjrpyMs};
let newIsXjrpyData = {isXjrpy:qualificationParam.isXjrpy, xjrpyMs:qualificationParam.xjrpyMs};
addEnterprisePoint( uscc, ENTERPRISENODEENUM.企业资质_小巨人培育,oldIsXjrpyData, newIsXjrpyData );
let oldIsXjrData = {isXjr:oldQualification.isXjr, xjrMs:oldQualification.xjrMs};
let newIsXjrData = {isXjr:qualificationParam.isXjr, xjrMs:qualificationParam.xjrMs};
addEnterprisePoint( uscc, ENTERPRISENODEENUM.企业资质_小巨人,oldIsXjrData, newIsXjrData );
let oldMarketData = {
beOnTheMarket:oldQualification.beOnTheMarket ? JSON.stringify(oldQualification.beOnTheMarket) : '[]',
isBeOnTheMarket:oldQualification.isBeOnTheMarket
};
let newMarketData = {
beOnTheMarket:qualificationParam.beOnTheMarket ? JSON.stringify(qualificationParam.beOnTheMarket) : '[]',
isBeOnTheMarket:qualificationParam.isBeOnTheMarket
};
addEnterprisePoint(uscc, ENTERPRISENODEENUM.企业资质_上市情况,oldMarketData, newMarketData );
enterpriseInfo.qualification = JSON.parse(JSON.stringify(qualificationParam) );
/**标签 */
await enterpriseLabelEvent(enterpriseInfo, LABELEVENT.资质更新, '企业登记');
eccFormParam("修改企业资质", eccFormParamConfig.MyEnterpriseIntellectualPropertyUpdateConfig, intellectualPropertyParam);
if (enterpriseInfo.alienPatent != intellectualPropertyParam.alienPatent) {
addEnterprisePoint( uscc, ENTERPRISENODEENUM.知识产权_海外专利, enterpriseInfo.alienPatent || 0, intellectualPropertyParam.alienPatent);
}
if (enterpriseInfo.classIPatent != intellectualPropertyParam.classIPatent) {
addEnterprisePoint( uscc, ENTERPRISENODEENUM.知识产权_一类专利, enterpriseInfo.classIPatent || 0, intellectualPropertyParam.classIPatent);
}
if (enterpriseInfo.secondClassPatent != intellectualPropertyParam.secondClassPatent) {
addEnterprisePoint( uscc, ENTERPRISENODEENUM.知识产权_二类专利, enterpriseInfo.secondClassPatent || 0, intellectualPropertyParam.secondClassPatent);
}
enterpriseInfo.intellectualProperty = {
alienPatent:intellectualPropertyParam.alienPatent,
classIPatent:intellectualPropertyParam.classIPatent,
secondClassPatent:intellectualPropertyParam.secondClassPatent
};
await enterpriseInfo.save();
return {isSuccess:true};
}
/** /**
* 我的企业入口查看企业团队信息 * 我的企业入口查看企业团队信息
* 这里使用和 /enterprise/team/info 接口一样的逻辑 * 这里使用和 /enterprise/team/info 接口一样的逻辑
* @param uscc 企业统一信用代码 * @param uscc 企业统一信用代码
*/ */
export async function getMyEnterpriseTeamInfo(uscc:string) { export async function getMyEnterpriseTeamInfo(uscc:string, declarationYear, declarationQuarter) {
// let teamInfo = await teamData.findTeamByUsccAndTime(uscc, declarationYear, declarationQuarter); let teamInfo = await findTeamByUsccAndTime(uscc, declarationYear, declarationQuarter);
let teamInfo = await findEnterpriseNewTeamData(uscc); // let teamInfo = await findEnterpriseNewTeamData(uscc);
if (!teamInfo || !teamInfo.year) { if (!teamInfo || !teamInfo.year) {
teamInfo = { teamInfo = {
doctor:0, master:0, undergraduate:0, juniorCollege:0, doctor:0, master:0, undergraduate:0, juniorCollege:0,
...@@ -714,9 +813,61 @@ export async function getMyEnterpriseTeamInfo(uscc:string) { ...@@ -714,9 +813,61 @@ export async function getMyEnterpriseTeamInfo(uscc:string) {
result.count = result.doctor +result.master +result.undergraduate +result.juniorCollege +result.other; result.count = result.doctor +result.master +result.undergraduate +result.juniorCollege +result.other;
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
result.cycsrbj = enterpriseInfo.cycsrbj;
return result; return result;
} }
export async function updateMyEnterpriseTeamInfo(uscc:string, quarter, year, cycsrbj, param) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
eccFormParam("孵化器修改团队信息", eccFormParamConfig.FuHuaQiReplenishEnterpriseTeamDataConfig, param);
let teamInfo = await findTeamByUsccAndTime(uscc, year, quarter);
if (!teamInfo || !teamInfo.uscc) {
//添加新的
let addInfo = {
uscc,
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
name:enterpriseInfo.name,//企业名称
year:year,
quarter:quarter,
doctor:param.doctor,
master:param.master,
undergraduate:param.undergraduate,
juniorCollege:param.juniorCollege,
other:param.other,
studyAbroad:param.studyAbroad,
graduates:param.graduates,
createMs:new Date().valueOf(),
isUpdate:true,
isSubmit:true,
fhqIsSubmit:true
};
await addTeamData(addInfo);
} else {
for (let key in param) {
teamInfo[key] = param[key];
}
teamInfo.isUpdate = true;
teamInfo.isSubmit = true;
teamInfo.fhqIsSubmit = true;
await teamInfo.save();
}
enterpriseInfo.cycsrbj = cycsrbj;
await enterpriseInfo.save();
return {isSuccess:true};
}
/** /**
* 我的企业入口查看经济状况 * 我的企业入口查看经济状况
......
...@@ -72,7 +72,8 @@ export async function fuHuaQiTaskList(uscc:string) { ...@@ -72,7 +72,8 @@ export async function fuHuaQiTaskList(uscc:string) {
if (taskMap[ValueStr] && !taskMap[ValueStr].isSubmit) { if (taskMap[ValueStr] && !taskMap[ValueStr].isSubmit) {
let dataList = []; let dataList = [];
// onceObj.month = taskMap[ValueStr].month + '月' // onceObj.month = taskMap[ValueStr].month + '月'
onceObj.month = `2季度`; let quarterItem = Math.ceil(taskMap[ValueStr].month / 3);
onceObj.month = `${quarterItem}季度`;
switch(ValueNumber) { switch(ValueNumber) {
case TASKTYPEENUM.孵化器月度填报: case TASKTYPEENUM.孵化器月度填报:
/** 这里加限制 在月度任务中 isUpdate=true代表已经修改 isUpdate=false表示没有这个任务 详细说明看./month.ts注释*/ /** 这里加限制 在月度任务中 isUpdate=true代表已经修改 isUpdate=false表示没有这个任务 详细说明看./month.ts注释*/
......
...@@ -104,7 +104,7 @@ export async function fuHuaQiYearTaskPastdueList(uscc:string, selectTime) { ...@@ -104,7 +104,7 @@ export async function fuHuaQiYearTaskPastdueList(uscc:string, selectTime) {
let taskInfo = await findDangJianTaskListByTaskId(taskId); let taskInfo = await findDangJianTaskListByTaskId(taskId);
let result = []; let result = [];
if (taskInfo.taskId && !taskInfo.draftLock) { if (taskInfo && taskInfo.taskId && !taskInfo.draftLock) {
result.push({ result.push({
title:"党建工作", title:"党建工作",
key:YEARTASKTYPEENUM.党建任务, key:YEARTASKTYPEENUM.党建任务,
......
...@@ -51,6 +51,70 @@ export async function login(uscc:string, pwd:string) { ...@@ -51,6 +51,70 @@ export async function login(uscc:string, pwd:string) {
} }
export async function phoneLoginSelect(phone:string, pwd:string) {
let fuhuaqiInfoList = await fuhuaqiData.findFuHuaQiList({liaisonPhone:phone});
if(!fuhuaqiInfoList) throw new BizError(ERRORENUM.手机号不存在);
let checkPwdState = false;
let dataList = [];
for (let i = 0; i < fuhuaqiInfoList.length; i++) {
let info = fuhuaqiInfoList[i];
let checkPwd = sysTools.getPwdMd5(info.uscc, pwd);
if (info.pwd == checkPwd) checkPwdState = true;
dataList.push({
uscc:info.uscc,
name:info.name
});
}
if (!checkPwdState) throw new BizError(ERRORENUM.密码错误);
return {dataList};
}
export async function phoneLogin(uscc:string, pwd:string, phone:string) {
let fuhuaqiInfoList = await fuhuaqiData.findFuHuaQiList({liaisonPhone:phone});
if(!fuhuaqiInfoList) throw new BizError(ERRORENUM.手机号不存在);
let checkPwdState = false;
let dataList = [];
for (let i = 0; i < fuhuaqiInfoList.length; i++) {
let info = fuhuaqiInfoList[i];
let checkPwd = sysTools.getPwdMd5(info.uscc, pwd);
if (info.pwd == checkPwd) checkPwdState = true;
dataList.push({
uscc:info.uscc,
name:info.name
});
}
if (!checkPwdState) throw new BizError(ERRORENUM.密码错误);
let fuhuaqiInfo = await fuhuaqiData.findFuHuaQiByUSCC(uscc);
const Token = sysTools.getToken(uscc);
let fuhuaqiUserInfo = {
uscc: fuhuaqiInfo.uscc,
// name: fuhuaqiInfo.name,
firstLogin : !fuhuaqiInfo.firstLoginIsChangePwd,
token:Token
};
fuhuaqiInfo.token = Token;
fuhuaqiInfo.tokenMs = new Date().valueOf();
await fuhuaqiInfo.save();
return fuhuaqiUserInfo;
}
/** /**
* 首次登录修改密码 * 首次登录修改密码
* 小程序端 * 小程序端
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
import moment = require("moment"); import moment = require("moment");
import { findEnterpriseByUscc, findEnterpriseCount, findEnterpriseList } from "../../data/enterprise/enterprise"; import { findEnterpriseByUscc, findEnterpriseCount, findEnterpriseList } from "../../data/enterprise/enterprise";
import { CONTRACTTYPE, FUHUASTATE, RENTTYPE, ZLSTATETYPE, ZLSTATISTYPE } from "../../config/enum"; import { AREAUNIT, CONTRACTTYPE, FUHUASTATE, RENTTYPE, ZLSTATETYPE, ZLSTATISTYPE } from "../../config/enum";
import { eccFormParam } from "../../util/verificationParam"; import { eccFormParam } from "../../util/verificationParam";
import * as eccFormParamConfig from "../../config/eccParam/fuHuaQi"; import * as eccFormParamConfig from "../../config/eccParam/fuHuaQi";
import * as leaseData from "../../data/lease"; import * as leaseData from "../../data/lease";
...@@ -21,11 +21,13 @@ export async function zlHomeStatis(fhqUscc:string) { ...@@ -21,11 +21,13 @@ export async function zlHomeStatis(fhqUscc:string) {
enterpriseList.forEach(info => { enterpriseList.forEach(info => {
let {leaseInfo} = info; let {leaseInfo} = info;
if (!leaseInfo) { if (!leaseInfo.contractStartTime || !leaseInfo.rentStartTime) {
htjjdq += 1; if (!leaseInfo.contractStartTime) {
htdqwq += 1; htdqwq += 1;
zjjjdq += 1; }
if (!leaseInfo.rentStartTime) {
zjdqwq += 1; zjdqwq += 1;
}
} else { } else {
if ((leaseInfo.contractEndTime - Now) < 0) { if ((leaseInfo.contractEndTime - Now) < 0) {
htdqwq += 1; htdqwq += 1;
...@@ -56,15 +58,52 @@ export async function zlHomeStatis(fhqUscc:string) { ...@@ -56,15 +58,52 @@ export async function zlHomeStatis(fhqUscc:string) {
return {dataInfo}; return {dataInfo};
} }
export async function zlHomeList(fhqUscc:string) { export async function zlHomeList(fhqUscc:string, enterpriseName, htstats, stats, zjstats) {
let enterpriseList = await findEnterpriseList({fuHuaQiUscc:fhqUscc}); let now = new Date().valueOf();
let param:any = {fuHuaQiUscc:fhqUscc};
if (enterpriseName) param.name = {"$regex":enterpriseName};
if (htstats) {
if (htstats == CONTRACTTYPE.签约企业 ) {
param["leaseInfo.contractStartTime"] = {"$lt":now};
param["leaseInfo.contractEndTime"] = {"$gt":now};
} else {
param["$or"] = [
{ "leaseInfo.contractStartTime":null},
{ "leaseInfo.contractStartTime":{"$gt":now} },
{ "leaseInfo.contractEndTime":{"$lt":now} }
];
param["$or"].push();
}
}
if (zjstats) {
if (zjstats == RENTTYPE.暂未到期 ) {
param["leaseInfo.rentStartTime"] = {"$lt":now};
param["leaseInfo.rentEndTime"] = {"$gt":now+(30*3600*24*1000)};
} else if (zjstats == RENTTYPE.即将到期){
param["leaseInfo.rentStartTime"] = {"$lt":now};
param["leaseInfo.rentEndTime"] = {"$lt":now+(30*3600*24*1000), "$gt":now};
} else {
param["$or"] = [
{ "leaseInfo":null},
{ "leaseInfo.rentStartTime":{"$gt":now} },
{ "leaseInfo.rentStartTime":{"$lt":now} }
];
param["$or"].push();
}
}
if (stats) {
if (stats == FUHUASTATE.迁出 ) param.state = FUHUASTATE.迁出;
else param.state = {"$ne":FUHUASTATE.迁出};
}
let enterpriseList = await findEnterpriseList(param);
const Now = new Date().valueOf(); const Now = new Date().valueOf();
let dataList = []; let dataList = [];
enterpriseList.forEach(info => { enterpriseList.forEach(info => {
let {leaseInfo} = info; let {leaseInfo} = info;
let htstats = "";//合同状态 let htstats = "";//合同状态
if (!leaseInfo) { if (!leaseInfo || !leaseInfo.contractStartTime) {
htstats = "到期未签" htstats = "到期未签"
} else { } else {
if ((leaseInfo.contractEndTime - Now) < 0) { if ((leaseInfo.contractEndTime - Now) < 0) {
...@@ -76,16 +115,19 @@ export async function zlHomeList(fhqUscc:string) { ...@@ -76,16 +115,19 @@ export async function zlHomeList(fhqUscc:string) {
let zjstats = "";//租金状态 let zjstats = "";//租金状态
let syzlsj = 0;//剩余租赁时间 let syzlsj = 0;//剩余租赁时间
if (!leaseInfo) { if (!leaseInfo || !leaseInfo.rentEndTime) {
zjstats = "到期未" zjstats = "到期未"
} else { } else {
if ((leaseInfo.rentEndTime - Now) < 0) { if (leaseInfo.rentEndTime < Now) {
zjstats = "到期未签"; zjstats = "到期未缴";
} else if ( (leaseInfo.rentEndTime - Now) > 0 && (leaseInfo.rentEndTime - Now) < (3600 * 24 * 1000 * 30)) { }
else if ( leaseInfo.rentStartTime < Now && (leaseInfo.rentEndTime - Now) < (3600 * 24 * 1000 * 30)) {
zjstats = "即将到期"; zjstats = "即将到期";
}else { } else {
zjstats = "暂未到期"; zjstats = "暂未到期";
} }
syzlsj = moment(leaseInfo.rentEndTime).diff(Now, 'd'); syzlsj = moment(leaseInfo.rentEndTime).diff(Now, 'd');
syzlsj = syzlsj <= 0 ? 0 : syzlsj; syzlsj = syzlsj <= 0 ? 0 : syzlsj;
} }
...@@ -114,8 +156,9 @@ export async function zlHomeSelectList(fhqUscc:string, type:number) { ...@@ -114,8 +156,9 @@ export async function zlHomeSelectList(fhqUscc:string, type:number) {
let {leaseInfo} = info; let {leaseInfo} = info;
switch (type) { switch (type) {
case 1: case 1:
if (!leaseInfo) {
if (!dataMap["到期未签"]) dataMap["到期未签"] = 0; if (!dataMap["到期未签"]) dataMap["到期未签"] = 0;
if (!dataMap["签约企业"]) dataMap["签约企业"] = 0;
if (!leaseInfo || !leaseInfo.contractStartTime) {
dataMap["到期未签"] += 1; dataMap["到期未签"] += 1;
} else { } else {
let keyStr = ""; let keyStr = "";
...@@ -124,22 +167,25 @@ export async function zlHomeSelectList(fhqUscc:string, type:number) { ...@@ -124,22 +167,25 @@ export async function zlHomeSelectList(fhqUscc:string, type:number) {
} else { } else {
keyStr = "签约企业"; keyStr = "签约企业";
} }
if (!dataMap[keyStr]) dataMap[keyStr] = 0; if (!dataMap[keyStr]) dataMap[keyStr] = 0;
dataMap[keyStr] += 1; dataMap[keyStr] += 1;
} }
break; break;
case 2: case 2:
if (!leaseInfo) {
if (!dataMap["到期未缴"]) dataMap["到期未缴"] = 0; if (!dataMap["到期未缴"]) dataMap["到期未缴"] = 0;
if (!dataMap["暂未到期"]) dataMap["暂未到期"] = 0;
if (!dataMap["即将到期"]) dataMap["即将到期"] = 0;
if (!leaseInfo || !leaseInfo.rentStartTime) {
dataMap["到期未缴"] += 1; dataMap["到期未缴"] += 1;
} else { } else {
let zjStr = ""; let zjStr = "";
if ((leaseInfo.rentEndTime - Now) < 0) { if (leaseInfo.rentEndTime < Now) {
zjStr = "到期未签";
} else if ( (leaseInfo.rentEndTime - Now) > 0 && (leaseInfo.rentEndTime - Now) < (3600 * 24 * 1000 * 30)) {
zjStr = "即将到期";
}else {
zjStr = "到期未缴"; zjStr = "到期未缴";
} else if ( leaseInfo.rentStartTime < Now && (leaseInfo.rentEndTime - Now) < (3600 * 24 * 1000 * 30)) {
zjStr = "即将到期";
} else {
zjStr = "暂未到期";
} }
if (!dataMap[zjStr]) dataMap[zjStr] = 0; if (!dataMap[zjStr]) dataMap[zjStr] = 0;
dataMap[zjStr] += 1; dataMap[zjStr] += 1;
...@@ -197,6 +243,7 @@ export async function zlInfo(uscc:string) { ...@@ -197,6 +243,7 @@ export async function zlInfo(uscc:string) {
dataInfo.area = 0; dataInfo.area = 0;
dataInfo.rentPayment = []; dataInfo.rentPayment = [];
dataInfo.address = ""; dataInfo.address = "";
dataInfo.areaUnit = AREAUNIT.面积;
} else { } else {
dataInfo.contractStartTime = leaseInfo.contractStartTime; dataInfo.contractStartTime = leaseInfo.contractStartTime;
dataInfo.contractEndTime = leaseInfo.contractEndTime; dataInfo.contractEndTime = leaseInfo.contractEndTime;
...@@ -206,6 +253,7 @@ export async function zlInfo(uscc:string) { ...@@ -206,6 +253,7 @@ export async function zlInfo(uscc:string) {
dataInfo.area = leaseInfo.area; dataInfo.area = leaseInfo.area;
dataInfo.rentPayment = leaseInfo.rentPayment; dataInfo.rentPayment = leaseInfo.rentPayment;
dataInfo.address = leaseInfo.address; dataInfo.address = leaseInfo.address;
dataInfo.areaUnit = leaseInfo.areaUnit || AREAUNIT.面积;
} }
return {dataInfo}; return {dataInfo};
...@@ -213,7 +261,7 @@ export async function zlInfo(uscc:string) { ...@@ -213,7 +261,7 @@ export async function zlInfo(uscc:string) {
export async function zlUpdate(uscc:string, param) { export async function zlUpdate(uscc:string, param) {
eccFormParam("更新租赁信息", eccFormParamConfig.ZlUpdateConfig, param); eccFormParam("更新租赁信息", eccFormParamConfig.ZlUpdateConfig, param);
if (param.rentPayment) {5 if (param.rentPayment) {
param.rentPayment.forEach((info, index) => { param.rentPayment.forEach((info, index) => {
eccFormParam("更新租赁信息 租金缴纳情况"+index, eccFormParamConfig.ZlRentPaymentUpdateConfig, info); eccFormParam("更新租赁信息 租金缴纳情况"+index, eccFormParamConfig.ZlRentPaymentUpdateConfig, info);
}) })
...@@ -232,6 +280,18 @@ export async function zlUpdate(uscc:string, param) { ...@@ -232,6 +280,18 @@ export async function zlUpdate(uscc:string, param) {
await leaseInfo.save(); await leaseInfo.save();
} }
let rentStartTime = new Date( param.rentPayment[0].payStartTime );
let rentEndTime = moment( param.rentPayment[param.rentPayment.length -1].payStartTime).add( param.rentPayment[param.rentPayment.length -1].payLong, 'M');
enterpriseInfo.leaseInfo = {
contractStartTime:param.contractStartTime,//合同开始时间
contractEndTime:param.contractEndTime,//合同结束时间
rentStartTime,//租金开始时间
rentEndTime,//租金结束时间
};
await enterpriseInfo.save();
return {isSuccess:true}; return {isSuccess:true};
} }
...@@ -21,9 +21,9 @@ export async function visitStatisBase(fuHuaQiUscc:string) { ...@@ -21,9 +21,9 @@ export async function visitStatisBase(fuHuaQiUscc:string) {
let lastYearMs = moment().subtract(1,'y').startOf("y").valueOf(); let lastYearMs = moment().subtract(1,'y').startOf("y").valueOf();
let dangQianCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.走访安排}); let dangQianCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.走访安排});
let liShiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:{"$ne":VISITSTATE.走访安排}}); let liShiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.完成});
let lastYearCount = await visitData.findCountByParam({ visitTime:{"$gt":lastYearMs, "$lt":startMs}, fuHuaQiUscc }); let lastYearCount = await visitData.findCountByParam({ visitTime:{"$gt":lastYearMs, "$lt":startMs}, state:VISITSTATE.完成, fuHuaQiUscc });
let thisYearCount = dangQianCount + liShiCount; let thisYearCount = dangQianCount + liShiCount;
let yearToYear = 0; let yearToYear = 0;
...@@ -44,42 +44,63 @@ export async function visitStatisBase(fuHuaQiUscc:string) { ...@@ -44,42 +44,63 @@ export async function visitStatisBase(fuHuaQiUscc:string) {
export async function visitStatisTypeList(fuHuaQiUscc) { export async function visitStatisTypeList(fuHuaQiUscc) {
let startMs = moment().startOf("y").valueOf(); let startMs = moment().startOf("y").valueOf();
let dbList = await visitData.findByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc}); // let dbList = await visitData.findByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc});
let dbList = await demandData.findByParam({createTime:{"$gt":startMs}, fuHuaQiUscc});
let typeMap = {}; let typeMap = {};
dbList.forEach(item => { dbList.forEach(item => {
let {enterpriseType, demand, uscc, enterpriseName, id} = item; let {enterpriseType, demand, uscc, enterpriseName} = item;
if (!typeMap[enterpriseType]) {
typeMap[enterpriseType] = {count:0, dataList:[]};
}
let demandList = changeEnumManyValue(VISITDEMAND, demand); let demandList = changeEnumManyValue(VISITDEMAND, demand);
typeMap[enterpriseType].count += 1; if (!typeMap[enterpriseName]) typeMap[enterpriseName] = {enterpriseName, uscc, demand:[] };
typeMap[enterpriseType].dataList.push({
enterpriseName, demandList.forEach(itemKey => {
id, if (typeMap[enterpriseName].demand.indexOf(itemKey) <= -1) {
demand:demandList typeMap[enterpriseName].demand.push(itemKey);
}); }
})
}); });
let dataList = []; let demanList = Object.values(typeMap);
for (let key in typeMap) {
dataList.push({ let now = new Date().valueOf();
key:changeEnumValue(VISITENTERPRISETYPE, parseInt(key)), let selectzcparam = {
count:typeMap[key].count, "$or":[
list:typeMap[key].dataList {"firstIncubationTime":{"$gt":now-(24*3600*90*1000) }},
{"timeOfImmigration":{"$gt":now-(24*3600*90*1000) }}
]
};
let zcdbList = await enterpriseData.findEnterpriseList(selectzcparam);
let zcList = [];
zcdbList.forEach(info => {
let createTime = "";
if (info.firstIncubationTime) createTime = moment(info.firstIncubationTime).format("YYYY-MM-DD");
if (info.timeOfImmigration) createTime = moment(info.timeOfImmigration).format("YYYY-MM-DD");
zcList.push({
uscc:info.uscc,
enterpriseName:info.name,
createTime
}); });
} });
let dataList = [
{key:changeEnumValue(VISITENTERPRISETYPE, VISITENTERPRISETYPE.主动申报需求企业), count:demanList.length, list:demanList },
{key:changeEnumValue(VISITENTERPRISETYPE, VISITENTERPRISETYPE.新入驻企业), count:zcList.length, list:zcList },
{key:changeEnumValue(VISITENTERPRISETYPE, VISITENTERPRISETYPE.临近毕业企业), count:0, list:[] },
{key:changeEnumValue(VISITENTERPRISETYPE, VISITENTERPRISETYPE.数据异常企业), count:0, list:[] },
];
return {dataList}; return {dataList};
} }
export async function visitAlendarStatis(fuHuaQiUscc:string) { export async function visitAlendarStatis(fuHuaQiUscc:string) {
let startMs = moment().startOf("m").valueOf(); let startMs = moment().startOf("month").valueOf();
let shengYuCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.走访安排}); let shengYuCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.走访安排});
let leiJiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:{"$ne":VISITSTATE.走访安排}}); let leiJiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:VISITSTATE.完成});
let thisMonthCount = shengYuCount + leiJiCount; let thisMonthCount = shengYuCount + leiJiCount;
let rate = 0; let rate = 0;
...@@ -161,7 +182,7 @@ export async function visitAdd(fuHuaQiUscc:string, param) { ...@@ -161,7 +182,7 @@ export async function visitAdd(fuHuaQiUscc:string, param) {
desc:param.desc, desc:param.desc,
state:VISITSTATE.走访安排,//1=初始状态 2=取消 3=完成 VISITSTATE state:VISITSTATE.走访安排,//1=初始状态 2=取消 3=完成 VISITSTATE
createTime:new Date().valueOf(), createTime:new Date().valueOf(),
enterpriseType:VISITENTERPRISETYPE.临近毕业企业//VISITENTERPRISETYPE enterpriseType:VISITENTERPRISETYPE.主动申报需求企业//VISITENTERPRISETYPE
}; };
await visitData.createDataByParam(addInfo); await visitData.createDataByParam(addInfo);
...@@ -179,7 +200,7 @@ export async function visitInfo(id:string) { ...@@ -179,7 +200,7 @@ export async function visitInfo(id:string) {
visitTime:visitInfo.visitTime, visitTime:visitInfo.visitTime,
accompany:visitInfo.accompany, accompany:visitInfo.accompany,
leaderName:visitInfo.leaderName, leaderName:visitInfo.leaderName,
researchType:changeEnumValue( RESEARCHTYPE, visitInfo.researchTyp), researchType:changeEnumValue( RESEARCHTYPE, visitInfo.researchType),
desc:visitInfo.desc, desc:visitInfo.desc,
createTime:new Date().valueOf(), createTime:new Date().valueOf(),
enterpriseType:changeEnumValue(VISITENTERPRISETYPE, visitInfo.enterpriseType) enterpriseType:changeEnumValue(VISITENTERPRISETYPE, visitInfo.enterpriseType)
...@@ -250,10 +271,10 @@ export async function visitLogStatis(fuHuaQiUscc:string, year:number) { ...@@ -250,10 +271,10 @@ export async function visitLogStatis(fuHuaQiUscc:string, year:number) {
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf(); let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let lastStartMs = moment(`${year}-01-01 00:00:00`).subtract(1, 'y').valueOf(); let lastStartMs = moment(`${year}-01-01 00:00:00`).subtract(1, 'y').valueOf();
let thisYearParma = { visitTime:{"$gt":startMs, "$lt":endMs}, fuHuaQiUscc, state:{"$gt":VISITSTATE.走访安排}}; let thisYearParma = { visitTime:{"$gt":startMs, "$lt":endMs}, fuHuaQiUscc, state:VISITSTATE.完成};
let dangQianCount = await visitData.findCountByParam(thisYearParma); let dangQianCount = await visitData.findCountByParam(thisYearParma);
let lastYearParma = { visitTime:{"$gt":lastStartMs, "$lt":startMs}, fuHuaQiUscc, state:{"$gt":VISITSTATE.走访安排}}; let lastYearParma = { visitTime:{"$gt":lastStartMs, "$lt":startMs}, fuHuaQiUscc, state:VISITSTATE.完成};
let liShiCount = await visitData.findCountByParam(lastYearParma); let liShiCount = await visitData.findCountByParam(lastYearParma);
let rate = 0; let rate = 0;
...@@ -282,7 +303,7 @@ export async function visitLogList(fuHuaQiUscc:string, year:number) { ...@@ -282,7 +303,7 @@ export async function visitLogList(fuHuaQiUscc:string, year:number) {
monthMap[monthNumber] = {count:0, dataList:[]}; monthMap[monthNumber] = {count:0, dataList:[]};
} }
monthMap[monthNumber].count += 1; if (state == VISITSTATE.完成) monthMap[monthNumber].count += 1;
monthMap[monthNumber].dataList.push({ monthMap[monthNumber].dataList.push({
enterpriseName, enterpriseName,
id, id,
...@@ -340,20 +361,13 @@ export async function visitDemandAdd(fuHuaQiUscc, uscc, demand, demandDesc) { ...@@ -340,20 +361,13 @@ export async function visitDemandAdd(fuHuaQiUscc, uscc, demand, demandDesc) {
throw new BizError(ERRORENUM.该企业不存在) throw new BizError(ERRORENUM.该企业不存在)
} }
//todo 这里逻辑还没给
// 主动申报需求企业 = 1,
// 新入驻企业,
// 临近毕业企业,
// 数据异常企业
let addInfo = { let addInfo = {
id:getRandomId("qyxq"), id:getRandomId("qyxq"),
fuHuaQiUscc, fuHuaQiUscc,
uscc,//企业uscc uscc,//企业uscc
enterpriseName:enterprsieInfo.name, enterpriseName:enterprsieInfo.name,
createTime:new Date().valueOf(), createTime:new Date().valueOf(),
enterpriseType:VISITENTERPRISETYPE.数据异常企业,//VISITENTERPRISETYPE enterpriseType:VISITENTERPRISETYPE.主动申报需求企业,//VISITENTERPRISETYPE
demand,//企业需求 demand,//企业需求
demandDesc demandDesc
} }
......
import { systemConfig } from "../config/serverConfig";
import { getRandomId } from "../tools/system";
import moment = require("moment");
import { findEnterpriseByUscc } from "../data/enterprise/enterprise";
import * as labelData from "../data/label";
import { LABELGOAL, LABELTYPE } from "../config/enum/labelEnum";
import * as dynamicsData from "../data/enterprise/dynamics";
import * as enterpriseRiskData from "../data/enterprise/enterpriseRisk";
import * as dishonestPersonData from "../data/enterprise/dishonestPerson";
import * as illegalityData from "../data/enterprise/illegality";
import * as qualificationsData from "../data/enterprise/qualifications";
import { ENTERPRISECHANGETYPE, ENTERPRISESIZE } from "../config/enum";
import { BizError } from "../util/bizError";
import * as request from 'request';
const md5 = require("md5");
const xlsx = require('node-xlsx');
const path = require('path');
const fs = require('fs');
function randomId(tableName:string) {
let randomStr = `${new Date().valueOf()}_${Math.ceil(Math.random()*100000)}`;
return `${tableName}_${md5(randomStr)}`;
}
function getQcc(url:string, query?, headers?) {
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
return new Promise((resolve, reject)=>{
let paramater:any = { url, json:true };
if (query) paramater.qs = query;
if (headers) paramater.headers = headers;
request.get(paramater, function (err, r, body) {
if (err) {
return reject(err);
}
if (body) {
if (body.Status == 200) return resolve(body.Result);
else if (body.Status == 201) return resolve({});
}
console.log(query.searchKey, body.Message || body);
return resolve({});
});
})
}
function getExcel(filePath) {
const workSheetsFromFile = xlsx.parse(filePath);
let sheetMap = {};
let sheetList = [];
for (let i = 0; i < workSheetsFromFile.length; i++) {
let sheetInfo = workSheetsFromFile[i];
sheetMap[sheetInfo.name] = sheetInfo.data;
sheetList.push(sheetInfo);
}
return {sheetMap, sheetList}
}
/**
* 同步企查查数据
* 逻辑:获取数据库所有企业uscc,进行企查查数据同步
*/
export async function updateQCCDataTask() {
//读取excel表格
let fuhuaqiExcelData = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '张江在孵企业总表0819.xlsx' ));
let dataList = fuhuaqiExcelData.sheetList[0].data;
for (let i = 0; i < dataList.length; i++) {
let subList = dataList[i];
let uscc = subList[6];
let enterInfo = await findEnterpriseByUscc(uscc);
if (!enterInfo || !enterInfo.uscc) continue
await updateItemQCCData(uscc);
console.log("同步", subList[0], "剩余", dataList.length-i);
}
console.log(`${fuhuaqiExcelData}家企业同步成功`);
}
/**
* 更新单个企业
* @param uscc
* @param eId
*/
export async function updateItemQCCData(uscc) {
await 工商信息(uscc);
await 准入尽职调查(uscc);
await 失信核查(uscc);
await 严重违法核查(uscc);
await 科创分(uscc);
await 资质证书查询(uscc);
}
/**
* 封装了一个请求方法
* @param uscc
* @returns
*/
function getReqParam(uscc, isKeyNo?) {
const TimeSpan = Math.round(new Date().valueOf()/ 1000);
let header = {
Token:md5(`${systemConfig.qccKey}${TimeSpan}${systemConfig.qccSecretKey}`).toUpperCase(),
TimeSpan
};
let query:any = {};
if (isKeyNo == "isKeyNo") {
query = {
key:systemConfig.qccKey,
keyNo:uscc,
};
} else if (isKeyNo == "Id") {
query = {
key:systemConfig.qccKey,
id:uscc,
};
} else if (isKeyNo == "certId") {
query = {
key:systemConfig.qccKey,
certId:uscc,
};
} else if (isKeyNo == "企业名称") {
query = {
key:systemConfig.qccKey,
keyword:uscc,
}
} else {
query = {
key:systemConfig.qccKey,
searchKey:uscc,
// keyNo:"云合智网(上海)技术有限公司"
};
}
return {header, query};
}
function formatAddress(original) {
// 匹配省/直辖市(支持"北京市"/"上海"等格式)
const cityMatch = original.match(/^(.*?(?:省|市|自治区|特别行政区))/);
const city = cityMatch ? cityMatch[1] : original.split(/[市区县]/)[0] + '市';
// 匹配区级(支持"浦东新区"/"朝阳区"等格式)
const districtMatch = original.match(/(?:省|市)(.*?(?:区|县|市|旗))/);
const district = districtMatch ? districtMatch[1] : '';
// 处理详细地址(自动保留原格式,仅修正明显错误)
let detail = original.replace(city, '').replace(district, '')
.replace(/(\d+)[幢栋](\d+)层/g, (_, num1, num2) => {
const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
return `${chineseNums[parseInt(num1)] || num1}${num2}${num2.length === 1 ? '室' : ''}`;
})
.trim();
return [city, city, district || city, detail || '地址不详'];
}
/**
* 同步工商信息数据
* @param uscc
* @param eId
* @returns
*/
async function 工商信息(uscc) {
let {header, query} = getReqParam(uscc);
let 工商信息:any = await getQcc('https://api.qichacha.com/ECIInfoVerify/GetInfo', query, header);//获取工商信息
if (Object.keys(工商信息).length) {
let enterInfo = await findEnterpriseByUscc(uscc);
let khsfsb = getReqParam(uscc);
let 客户身份识别:any = await getQcc('https://api.qichacha.com/CustomerDueDiligence/KYC', khsfsb.query, khsfsb.header);//获取工商信息
let TermEnd = "无固定期限";
if (工商信息.TermEnd) TermEnd = moment(工商信息.TermEnd).format("YYYY-MM-DD");
if (工商信息.OperName) {
enterInfo.legalPerson = 工商信息.OperName;
}
//企业基础信息
let guanWang = "";
if (工商信息.ContactInfo &&工商信息.ContactInfo.WebSite && 工商信息.ContactInfo.WebSite[0]) {
enterInfo.guanWang = 工商信息.ContactInfo.WebSite[0].Url || "";
}
if (客户身份识别.Data && 客户身份识别.Data.Scale) {
switch (客户身份识别.Data.Scale) {
case "L": enterInfo.qiYeGuiMo = ENTERPRISESIZE.大型; break;
case "M": enterInfo.qiYeGuiMo = ENTERPRISESIZE.中型; break;
case "S": enterInfo.qiYeGuiMo = ENTERPRISESIZE.小型; break;
case "XS": enterInfo.qiYeGuiMo = ENTERPRISESIZE.微型; break;
}
}
if (工商信息.Address) {
let logonAddressList = formatAddress(工商信息.Address);
enterInfo.logonAddress = logonAddressList;
}
enterInfo.zhuCeHao = 工商信息.No;
enterInfo.uZhiJiGouDaiMa = 工商信息.OrgNo;
enterInfo.logonTime = new Date(工商信息.StartDate).valueOf();
if (!enterInfo.jingYingFanWei) enterInfo.jingYingFanWei = 工商信息.Scope; //经营范围
/**
* 股权结构
*/
if (工商信息.Partners) {
let ownershipList = [];
工商信息.Partners.forEach(info => {
let addInfo:any = {
name:info.StockName,
finalBenefitPercent:info.FinalBenefitPercent,
stockPercent:info.StockPercent,
stockType:info.StockType,
realCapi:info.RealCapi,
paidUpCapitalUnit:info.PaidUpCapitalUnit,
subscribedCapital:info.SubscribedCapital,
subscribedCapitalUnit:info.SubscribedCapitalUnit,
};
// if (info.CapiDate) addInfo.capiDate = getMySqlMs(info.CapiDate);
// if (info.ShoudDate) addInfo.shoudDate = getMySqlMs(info.ShoudDate);
ownershipList.push(addInfo);
});
enterInfo.guQuanJieGou = ownershipList;
}
/**
* 企业标签表
*/
if (工商信息.TagList) {
for (let i = 0; i < 工商信息.TagList.length; i++) {
let info = 工商信息.TagList[i];
let {Type, Name} = info;
let labelInfo = await labelData.selectLabelOne({labelName:Name});
if (!labelInfo || !labelInfo.id) {
//添加
labelInfo = {
id:randomId("label"),
labelName:Name,
ctMs:new Date().valueOf(),
goal:LABELGOAL.企业,
labelType:LABELTYPE.自定义标签,
state:false
};
await labelData.createOneLabel(labelInfo);
}
let thisEnterpriseHaveLabel = false;
enterInfo.labels.forEach(itemLabelInfo => {
if (itemLabelInfo.labelId == labelInfo.id) thisEnterpriseHaveLabel = true;
})
if (!thisEnterpriseHaveLabel) enterInfo.labels.push({labelId:labelInfo.id, state:true});
}
}
/**
* 变更记录目前小程序没有涉及到这部分数据,所以直接与企查查全量更新
* 逻辑:先删除现有的,再重新添加
*/
if (工商信息.ChangeRecords && 工商信息.ChangeRecords.length) {
for (let i = 0; i < 工商信息.ChangeRecords.length; i++) {
let info = 工商信息.ChangeRecords[i];
let changeParam = {uscc, oldContent:info.AfterContent, changeDate:new Date(info.ChangeDate).valueOf()}
let changeInfo = await dynamicsData.findOne(changeParam);
if (!changeInfo || !changeInfo.id) {
let addChangeInfo = {
id:getRandomId("change"),
uscc,
enterpriseName:enterInfo.name,
fuHuaQiUscc:enterInfo.fuHuaQiUscc,
changeType:ENTERPRISECHANGETYPE.其他,
content:info.BeforeContent, //变更后
oldContent:info.AfterContent, //变更前
createTime:new Date(info.ChangeDate).valueOf(),
isRead:false
}
await dynamicsData.createDataByParam(addChangeInfo);
}
}
}
await enterInfo.save();
} else {
console.log(`企查查获取不到该企业数据:${uscc}`);
}
}
/**
* 准入尽职调查
* 逻辑:增量更新
* @param uscc
* @returns
*/
async function 准入尽职调查(uscc) {
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let {header, query} = getReqParam(uscc);
let qccselectdata:any = await getQcc('https://api.qichacha.com/AcctScan/GetInfo', query, header);
if (qccselectdata.Data) {
for (let i = 0; i < qccselectdata.Data.length; i++) {
let info = qccselectdata.Data[i];
let item = await enterpriseRiskData.findOnce({uscc, title:info.Title});
if (!item || !item.id) {
let addInfo:any = {
id:randomId("risk"),
uscc,
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
enterpriseName:enterpriseInfo.name,
title:info.Title,
description:info.Description,
passage:info.Passage,
riskType:info.RiskType,
};
if (info.TypeCode) addInfo.typeCode = parseInt(info.TypeCode);
await enterpriseRiskData.createOnce(addInfo);
}
}
}
}
/**
* 失信核查
* 逻辑:全量更新 删除之前所有的 再添加
* @param uscc
* @returns
*/
async function 失信核查(uscc) {
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let {header, query} = getReqParam(uscc);
let qccselectdata:any = await getQcc('https://api.qichacha.com/ShixinCheck/GetList', query, header);
await dishonestPersonData.removeMany({uscc});
if (qccselectdata.Data) {
let addList = [];
qccselectdata.Data.forEach(info => {
let addInfo:any = {
id:randomId("dis"),
uscc,
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
enterpriseName:enterpriseInfo.name,
anno:info.Anno,
executegov:info.Executegov,
executestatus:info.Executestatus,
executeno:info.Executeno,
actionRemark:info.ActionRemark,
amount:info.Amount,
};
addList.push(addInfo);
});
await dishonestPersonData.addMany(addList);
}
}
/**
* 严重违法核查
* 逻辑:全量更新 删除之前所有的 再添加
* @param uscc
* @returns
*/
async function 严重违法核查(uscc) {
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let {header, query} = getReqParam(uscc);
let qccselectdata:any = await getQcc('https://api.qichacha.com/SeriousIllegalCheck/GetList', query, header);
await illegalityData.removeMany({uscc});
if (qccselectdata.Data) {
let addList = [];
qccselectdata.Data.forEach(info => {
let addInfo:any = {
id:randomId("ill"),
uscc,
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
enterpriseName:enterpriseInfo.name,
type:info.Type,
addReason:info.AddReason,
addOffice:info.AddOffice,
removeReason:info.RemoveReason,
removeOffice:info.RemoveOffice,
};
addList.push(addInfo);
});
await illegalityData.addMany(addList);
}
}
/**
* 科创分
* 有则更新,无则添加
* @param uscc
* @returns
*/
async function 科创分(uscc) {
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let {header, query} = getReqParam(uscc);
let qccselectdata:any = await getQcc('https://api.qichacha.com/TechScore/GetInfo', query, header);
if (qccselectdata.Data) {
let kcf = {
industry:qccselectdata.Data.Industry.Industry,
subIndustry:qccselectdata.Data.Industry.SubIndustry,
industryRanking:qccselectdata.Data.IndustryRanking,
score:qccselectdata.Data.Score,
};
enterpriseInfo.kcf = kcf;
}
}
async function 资质证书详情查询(id) {
let {header, query} = getReqParam(id, "certId");
let qccselectdata:any = await getQcc('https://api.qichacha.com/ECICertification/GetCertificationDetailById', query, header);
return qccselectdata;
}
async function 资质证书查询(uscc) {
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let {header, query} = getReqParam(uscc);
let qccselectdata:any = await getQcc('https://api.qichacha.com/ECICertification/SearchCertification', query, header);
// let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc}, ["eId"]);
// let eId = enterpriseInfo.eId;
await qualificationsData.removeMany({uscc});
if (Array.isArray(qccselectdata)) {
let addList = [];
for (let i = 0; i < qccselectdata.length; i++) {
let qcc资质证书详情 = {};
let info = qccselectdata[i];
let qcc资质证书Id = info.Id;
qccselectdata[i]["qcc资质证书详情"] = await 资质证书详情查询(qcc资质证书Id);
}
qccselectdata.forEach(info => {
let addInfo:any = {
uscc,
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
enterpriseName:enterpriseInfo.name,
id:randomId('qua'),
name:info.Name,
type:info.Type,
no:info.No,
typeDesc:info.TypeDesc,
institutionList:info.InstitutionList ? info.InstitutionList[0] :"",
status:info.Status,
};
if (info.StartDate) addInfo.startDate = new Date(info.StartDate).valueOf();
if (info.EndDate) addInfo.endDate = new Date(info.EndDate).valueOf();
addList.push(addInfo);
});
await qualificationsData.addMany( addList);
}
return qccselectdata;
}
...@@ -39,3 +39,26 @@ export const GuanWeiHuiChnageFuHuaQiBaseConfig = { ...@@ -39,3 +39,26 @@ export const GuanWeiHuiChnageFuHuaQiBaseConfig = {
personInCharge:{type:"String"},// {key:"负责人"}, personInCharge:{type:"String"},// {key:"负责人"},
introduction:{type:"String", notMustHave:true},//孵化器简介 introduction:{type:"String", notMustHave:true},//孵化器简介
}; };
export const JiaSuEnterpriseConfig = {
name:{type:"String"},
uscc:{type:"String"},
mainBusiness:{type:"String"},
logonTime:{type:"Number"},
firstIncubationTime:{type:"Number"},
industry:{type:"[Number]"},
jiaSuZiZhi:{type:"[Number]"},
isNaturalPersonHolding:{type:"Boolean"},
leaseAddress:{type:"String"},
leasedArea:{type:"Number"},
}
export const ZuLinEnterpriseConfig = {
contractLong:{type:"Number"},
contractStartTime:{type:"Number"},
contractEndTime:{type:"Number"},
price:{type:"Number"},
area:{type:"Number"},
areaUnit:{type:"Number"},
address:{type:"String"},
}
\ No newline at end of file
...@@ -109,6 +109,7 @@ export const EnterpriseParamFormConfig = { ...@@ -109,6 +109,7 @@ export const EnterpriseParamFormConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
} }
...@@ -141,6 +142,7 @@ export const EnterpriseInPutParamFormConfig = { ...@@ -141,6 +142,7 @@ export const EnterpriseInPutParamFormConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
} }
...@@ -170,6 +172,7 @@ export const RegisterEnterpriseParamConfig = { ...@@ -170,6 +172,7 @@ export const RegisterEnterpriseParamConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
}; };
...@@ -201,6 +204,7 @@ export const MoveInEnterpriseParamConfig = { ...@@ -201,6 +204,7 @@ export const MoveInEnterpriseParamConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
}; };
...@@ -221,6 +225,7 @@ export const FinancingParamUpdateConfig = { ...@@ -221,6 +225,7 @@ export const FinancingParamUpdateConfig = {
fuHuaQiInvestmentAmount:{type:"Number", notMustHave:true},//孵化器投资金额(万元) fuHuaQiInvestmentAmount:{type:"Number", notMustHave:true},//孵化器投资金额(万元)
fuHuaQiInvestmentStyle:{type:"Number", notMustHave:true},//孵化器投资方式 fuHuaQiInvestmentStyle:{type:"Number", notMustHave:true},//孵化器投资方式
financingRounds:{type:"Number"},//融资轮次 financingRounds:{type:"Number"},//融资轮次
valuation:{type:"String"}
}; };
...@@ -240,6 +245,7 @@ export const FinancingParamUpdateConfig = { ...@@ -240,6 +245,7 @@ export const FinancingParamUpdateConfig = {
fuHuaQiInvestmentAmount:{type:"Number", notMustHave:true },//孵化器投资金额(万元) fuHuaQiInvestmentAmount:{type:"Number", notMustHave:true },//孵化器投资金额(万元)
fuHuaQiInvestmentStyle:{type:"Number", notMustHave:true },//孵化器投资方式 fuHuaQiInvestmentStyle:{type:"Number", notMustHave:true },//孵化器投资方式
financingRounds:{type:"Number"},//融资轮次 financingRounds:{type:"Number"},//融资轮次
valuation:{type:"String"}
}; };
...@@ -301,6 +307,7 @@ export const ReplenishMyEnterpriseInPutDataConfig = { ...@@ -301,6 +307,7 @@ export const ReplenishMyEnterpriseInPutDataConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
} }
...@@ -321,6 +328,7 @@ export const ReplenishMyEnterpriseCreateDataConfig = { ...@@ -321,6 +328,7 @@ export const ReplenishMyEnterpriseCreateDataConfig = {
operatingAddress:{type:"Address"},//经营地址 operatingAddress:{type:"Address"},//经营地址
leasedArea:{type:"Number"},//租赁面积(平方米) leasedArea:{type:"Number"},//租赁面积(平方米)
jiaSu:{type:"Number"},//加速企业 是=1 否 =2 jiaSu:{type:"Number"},//加速企业 是=1 否 =2
jiaSuZiZhi:{type:"[Number]", notMustHave:true},//加速资质 jiaSuZiZhi:{type:"[Number]", notMustHave:true},//加速资质
jiaSuZiZhiDesc:{type:"String", notMustHave:true},//加速资质其他 jiaSuZiZhiDesc:{type:"String", notMustHave:true},//加速资质其他
...@@ -330,6 +338,7 @@ export const ReplenishMyEnterpriseCreateDataConfig = { ...@@ -330,6 +338,7 @@ export const ReplenishMyEnterpriseCreateDataConfig = {
contractEndTime:{type:"Number"},//合同结束时间 contractEndTime:{type:"Number"},//合同结束时间
payStartTime:{type:"Number"},//租金缴纳时间 payStartTime:{type:"Number"},//租金缴纳时间
payLong:{type:"Number"},//缴纳时长 payLong:{type:"Number"},//缴纳时长
areaUnit:{type:"Number"},
} }
...@@ -420,6 +429,7 @@ export const ZlUpdateConfig = { ...@@ -420,6 +429,7 @@ export const ZlUpdateConfig = {
area:{type:"Number"},//租赁面积 area:{type:"Number"},//租赁面积
rentPayment:{type:"[Object]"},//租金缴纳情况 rentPayment:{type:"[Object]"},//租金缴纳情况
address:{type:"String"},//地址 address:{type:"String"},//地址
areaUnit:{type:"Number"}
} }
export const ZlRentPaymentUpdateConfig = { export const ZlRentPaymentUpdateConfig = {
...@@ -436,3 +446,27 @@ export const AddVisitConfig = { ...@@ -436,3 +446,27 @@ export const AddVisitConfig = {
researchType:{type:"Number"}, //调研类型 RESEARCHTYPE researchType:{type:"Number"}, //调研类型 RESEARCHTYPE
desc:{type:"String"},//备注 desc:{type:"String"},//备注
} }
/**
* 场景: 企业修改资质信息
* 备注: 所有参数为必填
*/
export const MyEnterpriseQualificationUpdateConfig = {
isHighTech:{type:"Boolean"},
highTechMs:{type:"Number"},//高新技术
isZjtx:{type:"Boolean"},
zjtxMs:{type:"Number"},//专精特新
isXjrpy:{type:"Boolean"},
xjrpyMs:{type:"Number"},//小巨人培育
isXjr:{type:"Boolean"},
xjrMs:{type:"Number"},//小巨人
beOnTheMarket:{type:"[Number]", notMustHave:true},//上市情况
isBeOnTheMarket:{type:"Boolean"}
}
export const MyEnterpriseIntellectualPropertyUpdateConfig = {
alienPatent:{type:"Number"},
classIPatent:{type:"Number"},
secondClassPatent:{type:"Number"},
}
...@@ -565,7 +565,7 @@ export enum RENTTYPE { ...@@ -565,7 +565,7 @@ export enum RENTTYPE {
export enum ZLSTATETYPE { export enum ZLSTATETYPE {
在孵企业 = 1, 在孵企业 = 1,
迁出 迁出 = 4
} }
...@@ -587,7 +587,11 @@ export enum VISITDEMAND { ...@@ -587,7 +587,11 @@ export enum VISITDEMAND {
资金, 资金,
政策, 政策,
市场, 市场,
场地 基础服务,
人才服务,
知识产权,
法律,
其他
} }
export enum RESEARCHTYPE { export enum RESEARCHTYPE {
...@@ -600,11 +604,13 @@ export enum ACTIVITYLABEL { ...@@ -600,11 +604,13 @@ export enum ACTIVITYLABEL {
人才服务 人才服务
} }
export enum ENTERPRISECHANGETYPE { export enum ENTERPRISECHANGETYPE {
注册地址变更 = 1, 注册地址变更 = 1,
高新技术认定, 高新技术认定,
企业认定, 企业认定,
股东 股东,
其他
} }
...@@ -618,3 +624,17 @@ export enum JIASUZIZHI { ...@@ -618,3 +624,17 @@ export enum JIASUZIZHI {
连续两年营收1000万以上, 连续两年营收1000万以上,
其他 其他
} }
export enum AREAUNIT {
面积 = 1,
工位
}
export enum ZHONGDIANQIYE {
上市企业 = 1,
融资企业,
高新技术企业,
小巨人企业,
专精特新企业
}
...@@ -85,7 +85,8 @@ export enum ERRORENUM { ...@@ -85,7 +85,8 @@ export enum ERRORENUM {
填报周期不能小于数据周期, 填报周期不能小于数据周期,
党员年龄分布总和大于总数, 党员年龄分布总和大于总数,
不可选择未来时间, 不可选择未来时间,
智能体调用出错请联系管理员 智能体调用出错请联系管理员,
手机号不存在
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -16,7 +16,7 @@ export async function initConfig() { ...@@ -16,7 +16,7 @@ export async function initConfig() {
if (!configInfo || !configInfo.config) throw new BizError('xml中无配置'); if (!configInfo || !configInfo.config) throw new BizError('xml中无配置');
else { else {
let {port, mongodb, secret, getOpenIdUrl, appId, sms, baidumap } = configInfo.config; let {port, mongodb, secret, getOpenIdUrl, appId, sms, baidumap, qcc } = configInfo.config;
systemConfig.port = parseInt(port[0]); systemConfig.port = parseInt(port[0]);
systemConfig.secret = secret[0]; systemConfig.secret = secret[0];
...@@ -40,6 +40,9 @@ export async function initConfig() { ...@@ -40,6 +40,9 @@ export async function initConfig() {
systemConfig.ak = baidumap[0]; systemConfig.ak = baidumap[0];
systemConfig.qccKey = qcc[0].key[0];
systemConfig.qccSecretKey = qcc[0].SecretKey[0];
} }
console.log("config init success"); console.log("config init success");
......
...@@ -497,3 +497,16 @@ export const DangJianZaiFuConfig = { ...@@ -497,3 +497,16 @@ export const DangJianZaiFuConfig = {
} }
export const JiasuEnterpriseListConfig = {
name:{key:"企业名称"},
uscc:{key:"统一信用代码 也是登录账号 不可修改"},
industry:{key:"行业领域[] 最多 选择三个"},
mainBusiness:{key:"主营业务"},//主营业务
logonTime:{key:"注册时间", changeDate:true},
firstIncubationTime:{key:"首次入孵时间", changeDate:true},
isNaturalPersonHolding:{key:"是否自然人控股"},
jiaSuZiZhi:{key:"加速资质"},
leaseAddress:{key:"租赁注册地址", iJsAdd:true},
leasedArea:{key:"面积"},
};
\ No newline at end of file
...@@ -20,4 +20,7 @@ export class ServerConfig { ...@@ -20,4 +20,7 @@ export class ServerConfig {
smsModelInitPointOut:number; smsModelInitPointOut:number;
/**百度地图api */ /**百度地图api */
ak:string ak:string
/**企查查 */
qccKey:string;
qccSecretKey:string;
} }
\ No newline at end of file
...@@ -81,8 +81,8 @@ export async function removeOneData(id:string) { ...@@ -81,8 +81,8 @@ export async function removeOneData(id:string) {
* @param source * @param source
* @param imgs * @param imgs
*/ */
export async function createActivity(id:string, desc:string, title:string ,source:string, coverImg:string ) { export async function createActivity(id:string, desc:string, title, source, coverImg, startTime, endTime, target) {
let addInfo = {id, desc, title, source, coverImg, createTimeMs:new Date().valueOf() }; let addInfo = {id, desc, title, source, coverImg, startTime, endTime, target, createTimeMs:new Date().valueOf() };
await activityModel.create(addInfo); await activityModel.create(addInfo);
} }
......
/**
* 失信核查
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const enterprisedishonestPersonSchema = new Schema({
id:String,
uscc:String,
fuHuaQiUscc:String,
enterpriseName:String,
anno:String,
executegov:String,
executestatus:String,
executeno:String,
actionRemark:String,
amount:String,
});
var enterprisedishonestPersonModel;
export function initModel(){
enterprisedishonestPersonModel = baseDB.model('enterprisedishonestperson', enterprisedishonestPersonSchema);
enterprisedishonestPersonModel.selectOnceData = async function (paramater:object) {
let selectInfo = await enterprisedishonestPersonModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function createOnce(param) {
return await enterprisedishonestPersonModel.create(param);
}
export async function findOnce(param) {
return await enterprisedishonestPersonModel.selectOnceData(param);
}
export async function findList(param) {
return await enterprisedishonestPersonModel.find(param);
}
export async function removeMany(param) {
return await enterprisedishonestPersonModel.deleteMany(param);
}
export async function addMany(params) {
await enterprisedishonestPersonModel.insertMany(params);
}
\ No newline at end of file
...@@ -55,6 +55,26 @@ const leaseScheme = new Schema({ ...@@ -55,6 +55,26 @@ const leaseScheme = new Schema({
rentEndTime:Number,//租金结束时间 rentEndTime:Number,//租金结束时间
}) })
//科创分
const kcfScheme = new Schema({
industry:String,//
subIndustry:String,//
industryRanking:String,//
score:String,//
})
/**股权结构 */
const guQuanJieGouItemScheme = new Schema({
name:String,//名称
finalBenefitPercent:String,//最终受益股份
stockPercent:String,//持股比例
stockType:String,//投资人类型
realCapi:String,//实缴出资额
paidUpCapitalUnit:String,//实缴出资额单位
subscribedCapital:String,//认缴出资额数额
subscribedCapitalUnit:String//认缴出资额单位
})
const enterpriseSchema = new Schema({ const enterpriseSchema = new Schema({
name: {type:String, index: true},//企业名称 name: {type:String, index: true},//企业名称
taskId:{type:String, index:true},//绑定的任务id taskId:{type:String, index:true},//绑定的任务id
...@@ -133,6 +153,7 @@ const enterpriseSchema = new Schema({ ...@@ -133,6 +153,7 @@ const enterpriseSchema = new Schema({
dengJiJiGuan:String,//登记机关 dengJiJiGuan:String,//登记机关
naShuiRenZiZhi:Number,//纳税人资质 naShuiRenZiZhi:Number,//纳税人资质
zuiXinNianBaoNianFen:Number,//最新年报年份 zuiXinNianBaoNianFen:Number,//最新年报年份
jingYingFanWei:String,//经营范围
//经纬度 //经纬度
lng:String,//经度 lng:String,//经度
lat:String,//纬度 lat:String,//纬度
...@@ -145,6 +166,13 @@ const enterpriseSchema = new Schema({ ...@@ -145,6 +166,13 @@ const enterpriseSchema = new Schema({
jiaSuZiZhi:{type:[Number], default:[]},//加速资质 jiaSuZiZhi:{type:[Number], default:[]},//加速资质
jiaSuZiZhiDesc:String,//选其他时 jiaSuZiZhiDesc:String,//选其他时
leaseAddress:String,//租赁地址 leaseAddress:String,//租赁地址
guQuanJieGou:{type:[guQuanJieGouItemScheme], default:[]},//股权结构
kcf:{type:kcfScheme, default:{}},//科创分
keynote:{type:[Number], default:[]},//ZHONGDIANQIYE
// gbej:{type:String, default:""},//国标二级行业
}); });
var enterpriseModel; var enterpriseModel;
......
/**
* 风险提示
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
import { BUSINESSDATATYPE } from '../../config/enum';
const enterpriseriskSchema = new Schema({
id:String,
uscc:String,
fuHuaQiUscc:String,
enterpriseName:String,
title:String,
description:String,
passage:String,
riskType:String,
typeCode:Number,
});
var enterpriseriskModel;
export function initModel(){
enterpriseriskModel = baseDB.model('enterpriserisk', enterpriseriskSchema);
enterpriseriskModel.selectOnceData = async function (paramater:object) {
let selectInfo = await enterpriseriskModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function createOnce(param) {
return await enterpriseriskModel.create(param);
}
export async function findOnce(param) {
return await enterpriseriskModel.selectOnceData(param);
}
export async function findList(param) {
return await enterpriseriskModel.find(param);
}
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const illegalitySchema = new Schema({
id:String,
uscc:String,
fuHuaQiUscc:String,
enterpriseName:String,
type:String,
addReason:String,
addOffice:String,
removeReason:String,
removeOffice:String,
});
var illegalityModel;
export function initModel(){
illegalityModel = baseDB.model('illegality', illegalitySchema);
illegalityModel.selectOnceData = async function (paramater:object) {
let selectInfo = await illegalityModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function createOnce(param) {
return await illegalityModel.create(param);
}
export async function findOnce(param) {
return await illegalityModel.selectOnceData(param);
}
export async function findList(param) {
return await illegalityModel.find(param);
}
export async function removeMany(param) {
return await illegalityModel.deleteMany(param);
}
export async function addMany(params) {
await illegalityModel.insertMany(params);
}
\ No newline at end of file
/**
* 资质证书
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const qualificationsSchema = new Schema({
id:String,
uscc:String,
fuHuaQiUscc:String,
enterpriseName:String,
name:String,//产品名称或者资质类别及等级
type:String,//证书类型
startDate:Number,//证书生效时间
endDate:Number,//证书截止日期
no:String,//证书编号
typeDesc:String,//证书类型
institutionList:String,//发证机构
status:String,//证书状态
});
var qualificationsModel;
export function initModel(){
qualificationsModel = baseDB.model('qualifications', qualificationsSchema);
qualificationsModel.selectOnceData = async function (paramater:object) {
let selectInfo = await qualificationsModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function createOnce(param) {
return await qualificationsModel.create(param);
}
export async function findOnce(param) {
return await qualificationsModel.selectOnceData(param);
}
export async function findList(param) {
return await qualificationsModel.find(param);
}
export async function removeMany(param) {
return await qualificationsModel.deleteMany(param);
}
export async function addMany(params) {
await qualificationsModel.insertMany(params);
}
\ No newline at end of file
/** /**
* 企业需求 * 企业需求
*/ */
/**
* 走访
*/
import {Schema} from 'mongoose'; import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit'; import { baseDB } from '../../db/mongo/dbInit';
...@@ -71,3 +65,7 @@ export async function createDataByParam(param) { ...@@ -71,3 +65,7 @@ export async function createDataByParam(param) {
export async function removeOneData(id:string) { export async function removeOneData(id:string) {
return await demandModel.deleteOne({id}); return await demandModel.deleteOne({id});
} }
export async function findEnterpriseListToPage(selectParam, skipCount) {
return await demandModel.find(selectParam).skip(skipCount).limit(10);
}
\ No newline at end of file
...@@ -28,6 +28,7 @@ const financingSchema = new Schema({ ...@@ -28,6 +28,7 @@ const financingSchema = new Schema({
/**2.0新加的 */ /**2.0新加的 */
logonAddress:{type:[String], default:[]},//注册地址 logonAddress:{type:[String], default:[]},//注册地址
operatingAddress:{type:[String], default:[]},//经营地址 operatingAddress:{type:[String], default:[]},//经营地址
valuation:String
}); });
var financingModel; var financingModel;
......
...@@ -41,7 +41,7 @@ export async function save(throwError=false) { ...@@ -41,7 +41,7 @@ export async function save(throwError=false) {
/** /**
* 查询孵化器分数信息 *
* @param uscc 孵化器统一信用代码 * @param uscc 孵化器统一信用代码
* @returns * @returns
*/ */
......
...@@ -47,20 +47,21 @@ export async function save(throwError=false) { ...@@ -47,20 +47,21 @@ export async function save(throwError=false) {
} }
/**
* 查询孵化器分数信息
* @param uscc 孵化器统一信用代码
* @returns
*/
export async function findOne(param) { export async function findOne(param) {
return await visitModel.selectOnceData(param); return await visitModel.selectOnceData(param);
} }
/**通过条件查询孵化器得分信息 */
export async function findPageByParam(param, skipCount) {
return await visitModel.find(param).skip(skipCount).limit(10);
}
export async function findByParam(param) { export async function findByParam(param) {
return await visitModel.find(param); return await visitModel.find(param);
} }
export async function findCountByParam(param) { export async function findCountByParam(param) {
return await visitModel.find(param).countDocuments(); return await visitModel.find(param).countDocuments();
} }
......
...@@ -43,6 +43,11 @@ export async function createLabel(goal:number, labelType:number, name:string, id ...@@ -43,6 +43,11 @@ export async function createLabel(goal:number, labelType:number, name:string, id
return await labelModel.create(addInfo); return await labelModel.create(addInfo);
} }
export async function createOneLabel(param) {
return await labelModel.create(param);
}
export async function findOnceLabel(id:string) { export async function findOnceLabel(id:string) {
return await labelModel.selectOnceData({id}); return await labelModel.selectOnceData({id});
} }
...@@ -51,6 +56,10 @@ export async function selectLabelList(param) { ...@@ -51,6 +56,10 @@ export async function selectLabelList(param) {
return await labelModel.find(param); return await labelModel.find(param);
} }
export async function selectLabelOne(param) {
return await labelModel.selectOnceData(param);
}
export async function selectLabelListToPage(param, skipNumber) { export async function selectLabelListToPage(param, skipNumber) {
return await labelModel.find(param).skip(skipNumber).limit(10); return await labelModel.find(param).skip(skipNumber).limit(10);
} }
......
...@@ -20,6 +20,7 @@ const leaseSchema = new Schema({ ...@@ -20,6 +20,7 @@ const leaseSchema = new Schema({
contractLong:Number, contractLong:Number,
price:Number,//单价 price:Number,//单价
area:Number,//租赁面积 area:Number,//租赁面积
areaUnit:Number,//单位
rentPayment:{type:[rentPaymentScheme], default:[]},//租金缴纳情况 rentPayment:{type:[rentPaymentScheme], default:[]},//租金缴纳情况
address:String,//地址 address:String,//地址
}); });
...@@ -50,6 +51,10 @@ export async function findOnceData(param) { ...@@ -50,6 +51,10 @@ export async function findOnceData(param) {
return await leaseModel.selectOnceData(param); return await leaseModel.selectOnceData(param);
} }
export async function findData(param) {
return await leaseModel.find(param);
}
export async function createData(addInfo) { export async function createData(addInfo) {
await leaseModel.create(addInfo); await leaseModel.create(addInfo);
} }
...@@ -45,7 +45,11 @@ import * as demandModel from "../../data/fuHuaQi/demand"; ...@@ -45,7 +45,11 @@ import * as demandModel from "../../data/fuHuaQi/demand";
import * as trackModel from "../../data/fuHuaQi/track"; import * as trackModel from "../../data/fuHuaQi/track";
import * as activityModel from "../../data/activity"; import * as activityModel from "../../data/activity";
import * as dynamicsModel from "../../data/enterprise/dynamics"; import * as dynamicsModel from "../../data/enterprise/dynamics";
import * as dynamicsData from "../../data/enterprise/dynamics";
import * as enterpriseRiskData from "../../data/enterprise/enterpriseRisk";
import * as dishonestPersonData from "../../data/enterprise/dishonestPerson";
import * as illegalityData from "../../data/enterprise/illegality";
import * as qualificationsData from "../../data/enterprise/qualifications";
export async function initTable() { export async function initTable() {
...@@ -95,4 +99,11 @@ export async function initTable() { ...@@ -95,4 +99,11 @@ export async function initTable() {
activityModel.initModel(); activityModel.initModel();
dynamicsModel.initModel(); dynamicsModel.initModel();
dynamicsData.initModel();
enterpriseRiskData.initModel();
dishonestPersonData.initModel();
illegalityData.initModel();
qualificationsData.initModel();
} }
\ No newline at end of file
import { test, zhenDuanBaoGao, 修复重复, 补充经纬度 } from "./biz/admin/provide"; import { test, zhenDuanBaoGao, 修复重复, 补充经纬度 } from "./biz/admin/provide";
import { initPool } from "./biz/gpt/indicatorPool"; import { initPool } from "./biz/gpt/indicatorPool";
import { initOutline } from "./biz/gpt/report"; import { initOutline } from "./biz/gpt/report";
import { updateQCCDataTask } from "./biz/qccInit";
import { initSMS } from "./biz/sms"; import { initSMS } from "./biz/sms";
import { initSystemTask } from "./biz/systemTask"; import { initSystemTask } from "./biz/systemTask";
import { initConfig, systemConfig} from "./config/serverConfig"; import { initConfig, systemConfig} from "./config/serverConfig";
...@@ -29,6 +30,7 @@ async function lanuch() { ...@@ -29,6 +30,7 @@ async function lanuch() {
// await 补充经纬度(); // await 补充经纬度();
// await test(); // await test();
// await zhenDuanBaoGao(); // await zhenDuanBaoGao();
// updateQCCDataTask();
} }
......
/** /**
* 政策速递 * 活动
*/ */
import * as asyncHandler from 'express-async-handler'; import * as asyncHandler from 'express-async-handler';
...@@ -15,7 +15,7 @@ export function setRouter(httpServer) { ...@@ -15,7 +15,7 @@ export function setRouter(httpServer) {
httpServer.post('/admin/activity/list',checkGuanWeiHuiToken,asyncHandler(listInformation)); httpServer.post('/admin/activity/list',checkGuanWeiHuiToken,asyncHandler(listInformation));
httpServer.post('/admin/activity/open',checkGuanWeiHuiToken, asyncHandler(openInformation)); httpServer.post('/admin/activity/open',checkGuanWeiHuiToken, asyncHandler(openInformation));
httpServer.post('/admin/activity/close',checkGuanWeiHuiToken, asyncHandler(closeInformation)); httpServer.post('/admin/activity/close',checkGuanWeiHuiToken, asyncHandler(closeInformation));
httpServer.post('/admin/activity/match',checkGuanWeiHuiToken, asyncHandler(closeInformation)); httpServer.post('/admin/activity/match',checkGuanWeiHuiToken, asyncHandler(matchInfomation));
} }
...@@ -27,11 +27,11 @@ export function setRouter(httpServer) { ...@@ -27,11 +27,11 @@ export function setRouter(httpServer) {
*/ */
async function addInformation(req, res) { async function addInformation(req, res) {
let reqConf = { let reqConf = {
desc:"String", title:"String" ,source:"String", coverImg:"String" desc:"String", title:"String" ,source:"String", coverImg:"String", startTime:"Number", endTime:"Number", target:"[Number]"
}; };
const NotMustHaveKeys = ["coverImg"]; const NotMustHaveKeys = ["coverImg"];
let {desc, title, source, coverImg} = eccReqParamater(reqConf, req.body, NotMustHaveKeys); let {desc, title ,source, coverImg, startTime, endTime, target} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let data = await activityBiz.addOnceInformation(desc, title, source, coverImg); let data = await activityBiz.addOnceInformation(desc, title ,source, coverImg, startTime, endTime, target);
res.success(data); res.success(data);
} }
...@@ -43,11 +43,11 @@ async function addInformation(req, res) { ...@@ -43,11 +43,11 @@ async function addInformation(req, res) {
*/ */
async function updateInformation(req, res) { async function updateInformation(req, res) {
let reqConf = { let reqConf = {
id:"String", desc:"String", title:"String" ,source:"String", coverImg:"String" id:"String", desc:"String", title:"String" ,source:"String", coverImg:"String", startTime:"Number", endTime:"Number", target:"[Number]"
}; };
const NotMustHaveKeys = ["coverImg"]; const NotMustHaveKeys = ["coverImg"];
let {id, desc, title, source, coverImg} = eccReqParamater(reqConf, req.body, NotMustHaveKeys); let {id, desc, title, source, coverImg, startTime, endTime, target} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let data = await activityBiz.updateOnceInformation(id, desc, title, source, coverImg); let data = await activityBiz.updateOnceInformation(id, desc, title, source, coverImg, startTime, endTime, target);
res.success(data); res.success(data);
} }
...@@ -85,11 +85,11 @@ async function infoInformation(req, res) { ...@@ -85,11 +85,11 @@ async function infoInformation(req, res) {
*/ */
async function listInformation(req, res) { async function listInformation(req, res) {
let reqConf = { let reqConf = {
page:"Number", selectTitle:"String", createTime:"Number", state:"Number" page:"Number", selectTitle:"String", createTime:"Number", state:"Number",target:"Number"
}; };
const NotMustHaveKeys = ["selectTitle", "createTime", "state"]; const NotMustHaveKeys = ["selectTitle", "createTime", "state", "target"];
let { selectTitle, createTime, state, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys); let { selectTitle, createTime, state, page, target } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let data = await activityBiz.selectInformation(selectTitle, createTime, state, page); let data = await activityBiz.selectInformation(selectTitle, createTime, state, target,page);
res.success(data); res.success(data);
} }
...@@ -121,3 +121,10 @@ async function closeInformation(req, res) { ...@@ -121,3 +121,10 @@ async function closeInformation(req, res) {
let data = await activityBiz.closeInformation(id); let data = await activityBiz.closeInformation(id);
res.success(data); res.success(data);
} }
async function matchInfomation(req, res) {
let reqConf = { id:"String" };
let {id} = eccReqParamater(reqConf, req.body, []);
let data = await activityBiz.selectInfoEnterprise(id);
res.success(data);
}
\ No newline at end of file
...@@ -10,7 +10,7 @@ import * as financingAdminBiz from '../../biz/admin/enterprise/financing'; ...@@ -10,7 +10,7 @@ import * as financingAdminBiz from '../../biz/admin/enterprise/financing';
import * as taskTool from '../../tools/taskTool'; import * as taskTool from '../../tools/taskTool';
import { checkGuanWeiHuiToken } from '../../middleware/user'; import { checkGuanWeiHuiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam'; import { eccReqParamater } from '../../util/verificationParam';
import * as trackBiz from '../../biz/admin/fuHuaQi/track';
export function setRouter(httpServer) { export function setRouter(httpServer) {
httpServer.post('/admin/enterprise/list',checkGuanWeiHuiToken, asyncHandler(getEnterpriseList)); httpServer.post('/admin/enterprise/list',checkGuanWeiHuiToken, asyncHandler(getEnterpriseList));
...@@ -39,13 +39,249 @@ export function setRouter(httpServer) { ...@@ -39,13 +39,249 @@ export function setRouter(httpServer) {
/**加速企业 */ /**加速企业 */
httpServer.post('/admin/enterprise/jsqy/list',checkGuanWeiHuiToken, asyncHandler(jsqy_list)); httpServer.post('/admin/enterprise/jsqy/list',checkGuanWeiHuiToken, asyncHandler(jsqy_list));
httpServer.post('/admin/enterprise/jsqy/info',checkGuanWeiHuiToken, asyncHandler(jsqy_info));
httpServer.post('/admin/enterprise/jsqy/update',checkGuanWeiHuiToken, asyncHandler(jsqy_update));
httpServer.post('/admin/enterprise/zlqy/list',checkGuanWeiHuiToken, asyncHandler(zlqy_list));
httpServer.post('/admin/enterprise/zlqy/info',checkGuanWeiHuiToken, asyncHandler(zlqy_info));
httpServer.post('/admin/enterprise/zlqy/update',checkGuanWeiHuiToken, asyncHandler(zlqy_update));
httpServer.post('/admin/enterprise/zlqy/rentPayment/list',checkGuanWeiHuiToken, asyncHandler(zlqy_rentPayment_list));
httpServer.post('/admin/enterprise/zlqy/rentPayment/update',checkGuanWeiHuiToken, asyncHandler(zlqy_rentPayment_update));
httpServer.post('/admin/enterprise/demand/list',checkGuanWeiHuiToken, asyncHandler(demand_list));
httpServer.post('/admin/enterprise/demand/label',checkGuanWeiHuiToken, asyncHandler(demand_label));
httpServer.post('/admin/enterprise/demand/info',checkGuanWeiHuiToken, asyncHandler(demand_info));
httpServer.post('/admin/enterprise/demand/create',checkGuanWeiHuiToken, asyncHandler(demand_create));
httpServer.post('/admin/enterprise/demand/update',checkGuanWeiHuiToken, asyncHandler(demand_update));
httpServer.post('/admin/enterprise/demand/del',checkGuanWeiHuiToken, asyncHandler(demand_del));
httpServer.post('/admin/enterprise/keynote/list',checkGuanWeiHuiToken, asyncHandler(keynote_list));//重点企业
httpServer.post('/admin/enterprise/keynote/activity',checkGuanWeiHuiToken, asyncHandler(keynote_activity_list));
httpServer.post('/admin/enterprise/keynote/add',checkGuanWeiHuiToken, asyncHandler(add_keynote));
httpServer.post('/admin/enterprise/keynote/del',checkGuanWeiHuiToken, asyncHandler(del_keynote));
httpServer.post('/admin/enterprise/namelist', checkGuanWeiHuiToken, asyncHandler(getNameList));
httpServer.post('/admin/enterprise/track/list',checkGuanWeiHuiToken, asyncHandler(track_list));//
httpServer.post('/admin/enterprise/track/info',checkGuanWeiHuiToken, asyncHandler(track_info));//
httpServer.post('/admin/enterprise/track/changestate',checkGuanWeiHuiToken, asyncHandler(track_changestate));//
httpServer.post('/admin/enterprise/track/del',checkGuanWeiHuiToken, asyncHandler(track_del));//
}
async function track_del(req, res) {
let reqConf = {id:'String'};
const NotMustHaveKeys = [ ];
let { id } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await trackBiz.deleteTrack(id);
res.success(result);
}
async function track_changestate(req, res) {
let reqConf = {id:'String', state:'Number'};
const NotMustHaveKeys = [ ];
let { id, state } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await trackBiz.changeTrackState(id, state);
res.success(result);
}
async function track_info(req, res) {
let reqConf = {uscc:'String'};
const NotMustHaveKeys = [ ];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await trackBiz.trackInfo(uscc);
res.success(result);
}
async function track_list(req, res) {
let reqConf = {name:'String', type:'Number', state:'Number', page:'Number'};
const NotMustHaveKeys = [ "name", "type", "state"];
let { name, type, state, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await trackBiz.trackList(name, type, state, page );
res.success(result);
}
async function del_keynote(req, res) {
let reqConf = {uscc:'String'};
const NotMustHaveKeys = [];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.delKeynote(uscc);
res.success(result);
}
async function add_keynote(req, res) {
let reqConf = {uscc:'String', label:'[Number]'};
const NotMustHaveKeys = [];
let { uscc, label } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.addKeynote(uscc, label);
res.success(result);
}
async function keynote_list(req, res) {
let reqConf = {name:'String', type:'Number', page:'Number'};
const NotMustHaveKeys = [ "name", "type"];
let { name, type, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.keynoteList(name, type, page);
res.success(result);
}
async function keynote_activity_list(req, res) {
let reqConf = {uscc:'String'};
const NotMustHaveKeys = [];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.keynoteActivityList(uscc);
res.success(result);
}
async function getNameList(req, res) {
let reqConf = {name:'String'};
const NotMustHaveKeys = [ "name"];
let { name } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.enterpriseNameList(name);
res.success(result);
}
async function demand_list(req, res) {
let reqConf = {name:'String', demand: 'Number', page:"Number"};
const NotMustHaveKeys = [ "name", "demand"];
let { name, demand, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.demandList( name, demand, page);
res.success(result);
}
async function demand_label(req, res) {
let reqConf = {uscc:'String', demand: 'Number' };
const NotMustHaveKeys = [];
let { uscc, demand } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.demandLabel( uscc, demand);
res.success(result);
}
async function demand_info(req, res) {
let reqConf = {uscc:'String'};
const NotMustHaveKeys = [];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.demandInfo(uscc);
res.success(result);
}
async function demand_create(req, res) {
let reqConf = {uscc:'String', demand: '[Number]', demandDesc:'String' };
const NotMustHaveKeys = [];
let { uscc, demand, demandDesc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.demandCreate(uscc, demand, demandDesc);
res.success(result);
}
async function demand_update(req, res) {
let reqConf = {id:'String', demand: '[Number]'};
const NotMustHaveKeys = [];
let { id, demand } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.demandUpdate(id, demand);
res.success(result);
}
async function demand_del(req, res) {
let reqConf = {id:'String'};
const NotMustHaveKeys = [];
let { id } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.removeDemand(id);
res.success(result);
}
async function zlqy_list(req, res) {
let reqConf = {name:'String', contractState: 'Number', page:"Number", state:"Number"};
const NotMustHaveKeys = [ "state", "contractState", "name"];
let { name, contractState, state, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.zlqyList( name, contractState, state, page);
res.success(result);
}
async function zlqy_info(req, res) {
let reqConf = {uscc:"String"};
const NotMustHaveKeys = [];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.zlqyInfo(uscc);
res.success(restult);
}
async function zlqy_update(req, res) {
let reqConf = {uscc:"String", param:"Object"};
const NotMustHaveKeys = [];
let { uscc, param } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.zlqyUpdate(uscc, param);
res.success(restult);
}
async function zlqy_rentPayment_list(req, res) {
let reqConf = {uscc:'String'};
const NotMustHaveKeys = [ ];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.zlqyrentPaymentList(uscc);
res.success(result);
}
async function zlqy_rentPayment_update(req, res) {
let reqConf = {uscc:"String", rentPayment:"[Object]"};
const NotMustHaveKeys = [];
let { uscc, rentPayment } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.zlqyrentPaymentUpdate(uscc, rentPayment);
res.success(restult);
} }
async function jsqy_list(req, res) { async function jsqy_list(req, res) {
let reqConf = {name:'String', industry: '[Number]', jiaSuZiZhi:'[Number]', page:"Number", isNaturalPersonHolding:"Number"};
const NotMustHaveKeys = ["createType", "fuHuaQiUscc", "industry", "state", "createTime", "name"];
let { name, industry, jiaSuZiZhi, page, isNaturalPersonHolding } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseAdminBiz.jiasuEnterprise(name, industry, jiaSuZiZhi, isNaturalPersonHolding, page);
res.success(result);
}
/**
* 企业信息回显
*/
async function jsqy_info(req, res) {
let reqConf = {uscc:"String"};
const NotMustHaveKeys = [];
let { uscc } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.jsqInfo(uscc);
res.success(restult);
} }
async function jsqy_update(req, res) {
let reqConf = {uscc:"String", param:"Object"};
const NotMustHaveKeys = [];
let { uscc, param } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.jsqyUpdate(uscc, param);
res.success(restult);
}
/** /**
* 后台管理 获取在孵企业信息列表 * 后台管理 获取在孵企业信息列表
......
import * as asyncHandler from 'express-async-handler';
import { checkGuanWeiHuiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
import * as portraitBiz from '../../biz/admin/enterprise/enterprisePortrait';
export function setRouter(httpServer) {
/** 标签管理*/
httpServer.post('/admin/portrait/enterprise',checkGuanWeiHuiToken, asyncHandler(enterprisePortrait));
}
async function enterprisePortrait(req, res) {
let reqConf = { uscc: 'String'};
const NotMustHaveKeys = [];
let {uscc} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await portraitBiz.portrait(uscc);
res.success(result);
}
\ No newline at end of file
...@@ -28,7 +28,7 @@ export function setRouter(httpServer) { ...@@ -28,7 +28,7 @@ export function setRouter(httpServer) {
/**管委会看板 */ /**管委会看板 */
httpServer.post('/admin/stats/guanweih/fuhuaqibase',checkGuanWeiHuiToken, asyncHandler(fuHuaQiBaseStats)); httpServer.post('/admin/stats/guanweih/fuhuaqibase',checkGuanWeiHuiToken, asyncHandler(fuHuaQiBaseStats));
httpServer.post('/admin/stats/guanweih/enterprisebase',checkGuanWeiHuiToken, asyncHandler(enterpriseBaseStats)); httpServer.post('/admin/stats/guanweih/enterprisebase',checkGuanWeiHuiToken, asyncHandler(enterpriseBaseStats));
httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/overview',checkGuanWeiHuiToken, asyncHandler(guanWeiHuiFHQWarningOverView)); httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/overview',checkGuanWeiHuiToken, asyncHandler(guanWeiHuiFHQWarningOverView));//弃用
httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/revenueanomaly',checkGuanWeiHuiToken, asyncHandler(getRevenueAnomaly)); httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/revenueanomaly',checkGuanWeiHuiToken, asyncHandler(getRevenueAnomaly));
httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/fuhuaqitpanomaly',checkGuanWeiHuiToken, asyncHandler(getFuHuaQiTPAnomaly)); httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/fuhuaqitpanomaly',checkGuanWeiHuiToken, asyncHandler(getFuHuaQiTPAnomaly));
httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/teamanomaly',checkGuanWeiHuiToken, asyncHandler(getTeamAnomaly)); httpServer.post('/admin/stats/guanweih/fuhuaqi/warning/teamanomaly',checkGuanWeiHuiToken, asyncHandler(getTeamAnomaly));
...@@ -37,9 +37,67 @@ export function setRouter(httpServer) { ...@@ -37,9 +37,67 @@ export function setRouter(httpServer) {
httpServer.post('/admin/stats/guanweih/enterprise/warning/revenueanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseBussinessAnomaly)); httpServer.post('/admin/stats/guanweih/enterprise/warning/revenueanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseBussinessAnomaly));
httpServer.post('/admin/stats/guanweih/enterprise/warning/txpanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseTXPAnomaly)); httpServer.post('/admin/stats/guanweih/enterprise/warning/txpanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseTXPAnomaly));
httpServer.post('/admin/stats/guanweih/enterprise/warning/teamanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseTeamAnomaly)); httpServer.post('/admin/stats/guanweih/enterprise/warning/teamanomaly',checkGuanWeiHuiToken, asyncHandler(getEnterpriseTeamAnomaly));
httpServer.post('/admin/stats/guanweih/fuhuaqi/tianbao',checkGuanWeiHuiToken, asyncHandler(fuHuaQiTianBao));//管委会看板 申报情况
httpServer.post('/admin/stats/guanweih/fuhuaqi/enterprisechange',checkGuanWeiHuiToken, asyncHandler(enterpriseChange));//管委会看板 企业变化情况
httpServer.post('/admin/stats/guanweih/fuhuaqi/valueanalysis',checkGuanWeiHuiToken, asyncHandler(valueAnalysis));//价值分析
//企业自画像
httpServer.post('/admin/stats/enterprise/portrait',checkGuanWeiHuiToken, asyncHandler(enterprisportrait));//价值分析
}
async function enterprisportrait(req, res) {
} }
async function fuHuaQiTianBao(req, res) {
let reqConf = {
startTime : 'Number',
endTime : 'Number'
};
const NotMustHaveKeys = [];
let { startTime, endTime } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await fuhuaqiBaseBiz.taskTianBao(startTime, endTime);
res.success(result);
}
async function enterpriseChange(req, res) {
let reqConf = {
year : 'Number',
};
const NotMustHaveKeys = [];
let { year } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseBaseBiz.enterpriseNumberChnageInfo(year);
res.success(result);
}
async function valueAnalysis(req, res) {
let reqConf = { year : 'Number' };
const NotMustHaveKeys = [];
let { year } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseBaseBiz.valueAnalysisStatis(year);
res.success(result);
}
/** /**
* 管理后台-数字看板-孵化器看板-基础信息 * 管理后台-数字看板-孵化器看板-基础信息
* @param req * @param req
......
...@@ -26,13 +26,16 @@ export function setRouter(httpServer) { ...@@ -26,13 +26,16 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/myenterprise/update/moveout', checkFuHuaQiToken, asyncHandler(updateMoveOut)); httpServer.post('/fuhuaqi/myenterprise/update/moveout', checkFuHuaQiToken, asyncHandler(updateMoveOut));
/**4.2 */ /**4.2 */
httpServer.post('/fuhuaqi/myenterprise/qualification/select', checkFuHuaQiToken, asyncHandler(myEnterpriseQualification)); httpServer.post('/fuhuaqi/myenterprise/qualification/select', checkFuHuaQiToken, asyncHandler(myEnterpriseQualification));
httpServer.post('/fuhuaqi/myenterprise/qualification/update', checkFuHuaQiToken, asyncHandler(updateEnterpriseQualification));
httpServer.post('/fuhuaqi/myenterprise/teaminfo/select', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo)); httpServer.post('/fuhuaqi/myenterprise/teaminfo/select', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo));
// httpServer.post('/fuhuaqi/myenterprise/team/info', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo)); httpServer.post('/fuhuaqi/myenterprise/team/info', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo));
httpServer.post('/fuhuaqi/myenterprise/team/update', checkFuHuaQiToken, asyncHandler(teamUpdate));
httpServer.post('/fuhuaqi/myenterprise/businessdata/select', checkFuHuaQiToken, asyncHandler(myEnterpriseBusinessData)); httpServer.post('/fuhuaqi/myenterprise/businessdata/select', checkFuHuaQiToken, asyncHandler(myEnterpriseBusinessData));
//重点企业 //重点企业
httpServer.post('/fuhuaqi/keynote/dynamics/homelist', checkFuHuaQiToken, asyncHandler(keynote_dynamics_home_list));//动态 httpServer.post('/fuhuaqi/keynote/dynamics/homelist', checkFuHuaQiToken, asyncHandler(keynote_dynamics_home_list));//动态
httpServer.post('/fuhuaqi/keynote/dynamics/list', checkFuHuaQiToken, asyncHandler(keynote_dynamics_list));//未读 httpServer.post('/fuhuaqi/keynote/dynamics/list', checkFuHuaQiToken, asyncHandler(keynote_dynamics_list));//未读
httpServer.post('/fuhuaqi/keynote/dynamics/changestate', checkFuHuaQiToken, asyncHandler(keynote_dynamics_change));//未读
httpServer.post('/fuhuaqi/keynote/dynamics/enterprise', checkFuHuaQiToken, asyncHandler(keynote_dynamics_enterprise));//企业动态 httpServer.post('/fuhuaqi/keynote/dynamics/enterprise', checkFuHuaQiToken, asyncHandler(keynote_dynamics_enterprise));//企业动态
httpServer.post('/fuhuaqi/keynote/list', checkFuHuaQiToken, asyncHandler(keynote_list));//企业列表 httpServer.post('/fuhuaqi/keynote/list', checkFuHuaQiToken, asyncHandler(keynote_list));//企业列表
httpServer.post('/fuhuaqi/keynote/add', checkFuHuaQiToken, asyncHandler(keynote_add));//添加企业 httpServer.post('/fuhuaqi/keynote/add', checkFuHuaQiToken, asyncHandler(keynote_add));//添加企业
...@@ -56,6 +59,15 @@ async function keynote_dynamics_list(req, res) { ...@@ -56,6 +59,15 @@ async function keynote_dynamics_list(req, res) {
res.success(result); res.success(result);
} }
async function keynote_dynamics_change(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {id: 'String' };
let { id } = eccReqParamater(reqConf, req.body);
let result = await keynoteBiz.changeReadState(id);
res.success(result);
}
async function keynote_dynamics_enterprise(req, res) { async function keynote_dynamics_enterprise(req, res) {
let reqConf = {uscc: 'String' }; let reqConf = {uscc: 'String' };
let { uscc } = eccReqParamater(reqConf, req.body); let { uscc } = eccReqParamater(reqConf, req.body);
...@@ -298,6 +310,17 @@ async function myEnterpriseQualification(req, res) { ...@@ -298,6 +310,17 @@ async function myEnterpriseQualification(req, res) {
} }
async function updateEnterpriseQualification(req, res) {
let reqConf = {intellectualPropertyParam:'Object', qualificationParam:'Object', uscc:"String" };
let {qualificationParam, uscc, intellectualPropertyParam} = eccReqParamater(reqConf, req.body);
let result = await myEnterpriseBiz.updateQualification(uscc, intellectualPropertyParam, qualificationParam);
res.success(result);
}
/** /**
* 企业团队 * 企业团队
* 4.2 * 4.2
...@@ -305,10 +328,18 @@ async function myEnterpriseQualification(req, res) { ...@@ -305,10 +328,18 @@ async function myEnterpriseQualification(req, res) {
* @param res * @param res
*/ */
async function myEnterpriseTeamInfo(req, res) { async function myEnterpriseTeamInfo(req, res) {
let reqConf = {uscc:"String"}; let reqConf = {uscc:"String", year:"Number", quarter:"Number"};
let { uscc } = eccReqParamater(reqConf, req.body); let { uscc, year, quarter } = eccReqParamater(reqConf, req.body);
let result = await myEnterpriseBiz.getMyEnterpriseTeamInfo(uscc, year, quarter);
res.success(result);
}
async function teamUpdate(req, res) {
let reqConf = {uscc:"String", year:"Number", quarter:"Number", cycsrbj:"[Number]", form:"Object"};
let { uscc, quarter, year, cycsrbj, form } = eccReqParamater(reqConf, req.body);
let result = await myEnterpriseBiz.getMyEnterpriseTeamInfo(uscc); let result = await myEnterpriseBiz.updateMyEnterpriseTeamInfo(uscc, quarter, year, cycsrbj, form);
res.success(result); res.success(result);
} }
......
...@@ -19,10 +19,42 @@ export function setRouter(httpServer) { ...@@ -19,10 +19,42 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/user/firstupdatepwdstate', checkFuHuaQiToken, asyncHandler(firstUpdatePwdState)); httpServer.post('/fuhuaqi/user/firstupdatepwdstate', checkFuHuaQiToken, asyncHandler(firstUpdatePwdState));
/**发送短信验证码 */ /**发送短信验证码 */
httpServer.post('/fuhuaqi/changepwd/sendcode', asyncHandler(sendCode)); httpServer.post('/fuhuaqi/changepwd/sendcode', asyncHandler(sendCode));
/**手机号码登录 */
httpServer.post('/fuhuaqi/phone/select', asyncHandler(login_phone_select));
httpServer.post('/fuhuaqi/phone/login', asyncHandler(login_phone));
} }
/** /**
*
* @param req
* @param res
*/
async function login_phone_select(req, res) {
let reqConf = {phone:'String', pwd:'String'};
let {phone, pwd} = eccReqParamater(reqConf, req.body);
let result = await userBiz.phoneLoginSelect(phone, pwd);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function login_phone(req, res) {
let reqConf = {phone:'String', pwd:'String', uscc:"String"};
let {phone, pwd, uscc} = eccReqParamater(reqConf, req.body);
let result = await userBiz.phoneLogin(uscc, pwd, phone);
res.success(result);
}
/**
* 忘记密码 重置密码 * 忘记密码 重置密码
* @param req * @param req
* @param res * @param res
......
...@@ -13,9 +13,8 @@ export function setRouter(httpServer) { ...@@ -13,9 +13,8 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/visit/demand/add', checkFuHuaQiToken, asyncHandler(visit_demand_add));//添加诉求 httpServer.post('/fuhuaqi/visit/demand/add', checkFuHuaQiToken, asyncHandler(visit_demand_add));//添加诉求
httpServer.post('/fuhuaqi/visit/demand/delete', checkFuHuaQiToken, asyncHandler(visit_demand_delete));//删除诉求 httpServer.post('/fuhuaqi/visit/demand/delete', checkFuHuaQiToken, asyncHandler(visit_demand_delete));//删除诉求
httpServer.post('/fuhuaqi/visit/statis/base', checkFuHuaQiToken, asyncHandler(visit_statis_base));
httpServer.post('/fuhuaqi/visit/statis/base', asyncHandler(visit_statis_base)); httpServer.post('/fuhuaqi/visit/statis/typelist', checkFuHuaQiToken, asyncHandler(visit_statis_type_list));
httpServer.post('/fuhuaqi/visit/statis/typelist', asyncHandler(visit_statis_type_list));
httpServer.post('/fuhuaqi/visit/calendar/statis', checkFuHuaQiToken, asyncHandler(visit_alendar_statis)); httpServer.post('/fuhuaqi/visit/calendar/statis', checkFuHuaQiToken, asyncHandler(visit_alendar_statis));
httpServer.post('/fuhuaqi/visit/calendar/list', checkFuHuaQiToken, asyncHandler(visit_calendar_list)); httpServer.post('/fuhuaqi/visit/calendar/list', checkFuHuaQiToken, asyncHandler(visit_calendar_list));
...@@ -137,7 +136,7 @@ async function visit_update_state(req, res) { ...@@ -137,7 +136,7 @@ async function visit_update_state(req, res) {
async function visit_track_add(req, res) { async function visit_track_add(req, res) {
let reqConf = {uscc:"String", trackType:"Number", content:"String"}; let reqConf = {uscc:"String", c:"Number", content:"String"};
let {uscc, trackType, content} = eccReqParamater(reqConf, req.body); let {uscc, trackType, content} = eccReqParamater(reqConf, req.body);
const fhqUscc = req.headers.uscc; const fhqUscc = req.headers.uscc;
......
...@@ -27,14 +27,16 @@ async function zl_home_stats(req, res) { ...@@ -27,14 +27,16 @@ async function zl_home_stats(req, res) {
async function zl_home_list(req, res) { async function zl_home_list(req, res) {
const Uscc = req.headers.uscc; const Uscc = req.headers.uscc;
let result = await leaseBiz.zlHomeList(Uscc); let reqConf = {enterpriseName:'String', htstats:"Object", stats:"Number", zjstats:"Number"};
let {enterpriseName, htstats, stats, zjstats } = eccReqParamater(reqConf, req.body, ["enterpriseName", "htstats", "stats", "zjstats"]);
let result = await leaseBiz.zlHomeList(Uscc, enterpriseName, htstats, stats, zjstats);
res.success(result); res.success(result);
} }
async function zl_home_select_list(req, res) { async function zl_home_select_list(req, res) {
let reqConf = {type:'Number',}; let reqConf = {type:'Number'};
let {type} = eccReqParamater(reqConf, req.body); let {type} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc; const Uscc = req.headers.uscc;
...@@ -44,7 +46,7 @@ async function zl_home_select_list(req, res) { ...@@ -44,7 +46,7 @@ async function zl_home_select_list(req, res) {
} }
async function zl_info(req, res) { async function zl_info(req, res) {
let reqConf = {uscc:'String',}; let reqConf = {uscc:'String'};
let {uscc} = eccReqParamater(reqConf, req.body); let {uscc} = eccReqParamater(reqConf, req.body);
let result = await leaseBiz.zlInfo(uscc); let result = await leaseBiz.zlInfo(uscc);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
*/ */
import * as asyncHandler from 'express-async-handler'; import * as asyncHandler from 'express-async-handler';
import { ZLSTATISTYPE, CONTRACTTYPE, RENTTYPE, ZLSTATETYPE, VISITSTATE, VISITENTERPRISETYPE, VISITDEMAND, RESEARCHTYPE, JIASUZIZHI, ENTERPRISECHANGETYPE, ACTIVITYLABEL, FUHUAQILV, INSTITUTIONALNATURE, FUHUAINDUSTRY, INDUSTRY, FUHUAQILNVESTMENTSTYLE, OPERATIONMODEL, TEAM, DEGREE, FINANCINGROUNDS, INSIDESTATE, VIRTUALCAUSE, MOVEOUTTYPE, MOVEOUTCAUSECLIENT, MOVEOUTCAUSENOTCLIENT, MOVEOUTTRACE, ENTERPRISETEAM, LISTINGSITUATION, BUSINESSDATATYPE, COOPERATIONMODE, SPECIALITY, TEACHERLV, ZJBEYONDLAYOUTOPERATIONMODE, CYCXFX, CYCSRBJ, FUHUAQICUSTOMTASKTYPE } from '../config/enum'; import { ZLSTATISTYPE, CONTRACTTYPE, RENTTYPE, ZLSTATETYPE, VISITSTATE, VISITENTERPRISETYPE, VISITDEMAND, RESEARCHTYPE, JIASUZIZHI, ENTERPRISECHANGETYPE, ACTIVITYLABEL, FUHUAQILV, INSTITUTIONALNATURE, FUHUAINDUSTRY, INDUSTRY, FUHUAQILNVESTMENTSTYLE, OPERATIONMODEL, TEAM, DEGREE, FINANCINGROUNDS, INSIDESTATE, VIRTUALCAUSE, MOVEOUTTYPE, MOVEOUTCAUSECLIENT, MOVEOUTCAUSENOTCLIENT, MOVEOUTTRACE, ENTERPRISETEAM, LISTINGSITUATION, BUSINESSDATATYPE, COOPERATIONMODE, SPECIALITY, TEACHERLV, ZJBEYONDLAYOUTOPERATIONMODE, CYCXFX, CYCSRBJ, FUHUAQICUSTOMTASKTYPE, ZHONGDIANQIYE } from '../config/enum';
import { selectLabelList } from '../data/label'; import { selectLabelList } from '../data/label';
import { GUANWEIHUIMANANGENTERPRISELABEL, LABELTYPE, LABELGOAL, FHQSYSTEMLABEL } from '../config/enum/labelEnum'; import { GUANWEIHUIMANANGENTERPRISELABEL, LABELTYPE, LABELGOAL, FHQSYSTEMLABEL } from '../config/enum/labelEnum';
import { NOTZHIBUTYPEENUM, ZHIBUTYPEENUM } from '../config/enum/dangJianEnum'; import { NOTZHIBUTYPEENUM, ZHIBUTYPEENUM } from '../config/enum/dangJianEnum';
...@@ -61,9 +61,23 @@ export function setRouter(httpServer) { ...@@ -61,9 +61,23 @@ export function setRouter(httpServer) {
httpServer.post('/public/enterprisechangetype', asyncHandler(enterprisechangetype) ); httpServer.post('/public/enterprisechangetype', asyncHandler(enterprisechangetype) );
httpServer.post('/public/jiasuzizhi', asyncHandler(jiasuzizhi) ); httpServer.post('/public/jiasuzizhi', asyncHandler(jiasuzizhi) );
httpServer.post('/public/zhongdian', asyncHandler(zhongdian) );
} }
async function zhongdian(req, res) {
let dataList = [];
for (let key in ZHONGDIANQIYE) {
let anyKey:any = key;
if (isNaN(anyKey)) {
let keyStr = key;
dataList.push({key:keyStr, value:ZHONGDIANQIYE[key]});
}
}
res.success({dataList});
}
async function enterprisechangetype(req, res) { async function enterprisechangetype(req, res) {
let dataList = []; let dataList = [];
......
...@@ -51,6 +51,8 @@ import * as qyvisitRouter from './enterpriseMobileClient/visit'; ...@@ -51,6 +51,8 @@ import * as qyvisitRouter from './enterpriseMobileClient/visit';
import * as activityRouter from './mobileClient/activity'; import * as activityRouter from './mobileClient/activity';
import * as adminActivityRouter from './admin/activity'; import * as adminActivityRouter from './admin/activity';
import * as portraitRouter from './admin/portrait';
export function setRouter(httpServer){ export function setRouter(httpServer){
/**下拉框等公用 路由 */ /**下拉框等公用 路由 */
publicRouters.setRouter(httpServer); publicRouters.setRouter(httpServer);
...@@ -113,4 +115,6 @@ export function setRouter(httpServer){ ...@@ -113,4 +115,6 @@ export function setRouter(httpServer){
qyvisitRouter.setRouter(httpServer); qyvisitRouter.setRouter(httpServer);
activityRouter.setRouter(httpServer); activityRouter.setRouter(httpServer);
adminActivityRouter.setRouter(httpServer); adminActivityRouter.setRouter(httpServer);
portraitRouter.setRouter(httpServer);
} }
\ 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