Commit 34a13ae4 by lixinming

no message

parent 9764f721
......@@ -184,6 +184,11 @@ export async function deleteEnterpriseLabel(uscc:string, labelIdList) {
}
/**
* 标签管理选择框
* @param goal
* @returns
*/
export async function getLabelListByGoal(goal:number) {
eccEnumValue("获取标签管理", "goal", LABELGOAL, goal );
let list = await selectLabelList({goal, state:false, labelType:LABELTYPE.自定义标签});
......
/**
* 新的任务系统(自定义任务) 2024年第一个版本
* 新的任务系统(自定义任务)
* 6.0版本
*/
import moment = require("moment");
......@@ -85,7 +86,6 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
}
/**
* 任务列表
* @param fuHuaQiTaskType
......@@ -120,7 +120,6 @@ export async function taskList(fuHuaQiTaskType:number, dataCycle:number, pageNum
state = 4;
}
dataList.push({
id:customTaskId,
stateStr,
......
......@@ -86,8 +86,6 @@ export async function fuHuaQiBaseList(lv:number, institutionalNature:number, ind
let outEnterpriseNum = changeData.enterpriseTotal - changeData.zaiFuEnterpriseNum;
changeData.outEnterpriseNum = outEnterpriseNum < 0 ? 0 : outEnterpriseNum;//迁出
/**备案地址转换 */
if (changeData.hatchingGround) {
let hatchingGround = [];
......@@ -291,7 +289,6 @@ export async function outPutFuHuaQiBaseData(lv:number, institutionalNature:numbe
}
/**
* 修改账号状态 禁用/启用
* @param uscc 孵化器统一信用代码
......@@ -368,7 +365,6 @@ export async function addUser(param) {
}
/**
* 孵化器账号信息列表
* @param operationName 运营机构名称
......@@ -394,7 +390,6 @@ export async function fuHuaQiUserList(operationName:string, page:number) {
}
/**
* 查询孵化器评分排名
* @param time 月份时间戳
......
/**
* 孵化器标签管理
* 6.0功能
*/
import moment = require("moment");
import { FHQSYSTEMLABEL, LABELGOAL, LABELTYPE, LABELUPDATEROAD } from "../../../config/enum";
import { findLabelLogByParam } from "../../../data/fuHuaQi/fuHuaQiLabelLog";
......@@ -6,6 +10,7 @@ import { getEffectiveLabelMap } from "../../../data/label";
import { changeEnumValue } from "../../../util/verificationEnum";
import { updateLabelToFuHuaQi } from "../../label";
/**
* 孵化器标签列表
* @param name
......@@ -22,6 +27,7 @@ export async function fuHuaQiLabelList(name:string, page:number, labelIdList) {
let dbList = await findFuHuaQiListByPage(selectParam, (page-1)*10);
let count = await findFuHuaQiCount(selectParam);
//全量的 孵化器标签map 结构式 {id:{labelName, labelType}}
let labelMap = await getEffectiveLabelMap(LABELGOAL.孵化器);
let dataList = [];
......@@ -91,11 +97,10 @@ export async function labelLogList(uscc:string) {
/**
* 批量添加孵化器标签
* @param uscc
* @param labelIdList
* @param labelIdList 生效的标签,如果传空数组,那么会清空除系统标签外的所有标签
* @returns
*/
export async function addFuHuaQiLabel(uscc:string, labelIdList) {
let labelMap = await getEffectiveLabelMap(LABELGOAL.孵化器);
let fuHuaQiInfo = await findFuHuaQiByUSCC(uscc);
let dbLabelList = fuHuaQiInfo.labels || [];
......@@ -113,10 +118,11 @@ export async function addFuHuaQiLabel(uscc:string, labelIdList) {
return {isSuccess:true};
}
/**
* 批量删除孵化器标签
* @param uscc
* @param labelIdList
* @param labelIdList 生效的标签,如果传空数组,那么会清空除系统标签外的所有标签
* @returns
*/
export async function deleteFuHUaQiLabel(uscc:string, labelIdList) {
......
/**
* 机构资质管理
*/
import moment = require("moment");
import { COOPERATIONMODE, OPERATIONMODEL, OUTPUTTYPE, SPECIALITY, STATEENUM, TEACHERLV } from "../../../config/enum";
import { findFuHuaQiList, findFuHuaQiOperationNameMapByParam, findFuHuaQiCount, findFuHuaQiListByPage } from "../../../data/fuHuaQi/fuhuaqi";
......
......@@ -15,7 +15,7 @@ const path = require('path');
/**提问大纲 */
let outline = [];
export async function initOutline() {
export function initOutline() {
outline = [
{ title:'概述', msg:"写一段话,概述孵化器的作用与意义来表达孵化器的重要性", removeParagraph:true },
{ title:'孵化器分析', msg:"请根据已知条件,从经济学的角度分析孵化器的运行情况,要求2000个字。", context:[fuHuaQiCombinationMessage()]},
......
......@@ -200,6 +200,13 @@ export async function outLabelToFuHuaQi(fuHuaQiInfo:any, labelId:string, p1?) {
}
function sleep() {
return new Promise((resolve, reject) => {
setTimeout(()=> {
resolve({});
}, 12);
});
}
/**
* 系统标签【被动标签】即:需要系统通过其他条件(时间条件)等判断的
......@@ -209,6 +216,8 @@ export async function systemLabel() {
let usccList = await findUsccList();
let fuHuaQiNameMap = await findFuHuaQiOperationNameMapByParam({});
let addLogList = [];
let seCount = 0;
let allCount = usccList.length;
for (let i = 0; i < usccList.length; i++) {
let {uscc} = usccList[i];
let enterpriseInfo = await findEnterpriseByUscc(uscc);
......@@ -230,11 +239,14 @@ export async function systemLabel() {
else shiRuZhuFeiFu = true;
}
}
if (logonAddress) {
if (addIsInZJ(logonAddress)) logonAddressSuccess = true;
if (logonAddress && fuHuaState == FUHUASTATE.实体孵化) {
let isInZJ = await addIsInZJ(logonAddress);
if (isInZJ) {
logonAddressSuccess = true;
}
}
let shiZaiFuQiYe = zaiFuQiYeSuccess && logonAddressSuccess;//是在孵企业
let shiZaiFuQiYe = zaiFuQiYeSuccess && logonAddressSuccess && fuHuaState == FUHUASTATE.实体孵化;//是在孵企业
let qiYeRongZiDaBiao = await selectEnterpriseFinancingAmount(uscc);//企业融资达标
let yingYeShouRuDaBiao = await selectEnterpriseBusinessAmount(uscc);//营业收入达标
......@@ -337,6 +349,12 @@ export async function systemLabel() {
await enterpriseInfo.save();
await sleep();
seCount += 1;
if (i%100 == 0) {
console.log("进度", Math.ceil((seCount/allCount)*10000)/100,'%');
}
}
//添加日志
......@@ -345,6 +363,11 @@ export async function systemLabel() {
}
}
/**
* 初始化系统标签 包括 孵化器系统标签和企业系统标签
* @returns
*/
export async function initSystemLabelData() {
let labelInfo = await findOnceLabel(ENTERPRISESYSTEMLABEL.在孵企业);
if (labelInfo && labelInfo.id) {
......@@ -390,6 +413,8 @@ async function addIsInZJ(addList) {
if (!resData.error) {
let result = isPointInPolygon(resData);
return result;
} else {
console.log("地图报错", resData.errMsg);
}
return false;
}
......@@ -397,6 +422,8 @@ async function addIsInZJ(addList) {
/**
* 事件标签
* 事件标签都是系统标签
......
......@@ -115,6 +115,7 @@ export async function sendChangePwdCode(phone:string, code:string) {
/**
* 发送任务提醒
* 6.0已舍弃
* @param phoneList 发送的对象列表
* @param month 月份数
* @returns
......
......@@ -11,41 +11,172 @@ import moment = require("moment");
import { findTaskCountByParamCount, findTaskListByParam } from "../data/fuHuaQi/monthTask/task";
import * as taskTool from "../tools/taskTool";
import { provideMonthTask, retrieveMonthTask } from "./mobileFuHuaQi/fuHuaQi/task/monthTask";
import { findFuHuaQiList } from "../data/fuHuaQi/fuhuaqi";
import { findAllFuHuaQiOperationNameMap, findFuHuaQiList } from "../data/fuHuaQi/fuhuaqi";
import { sendTaskPointOut } from "./sms";
import { logHandle } from "../util/log";
import { createSmsPointOutData, findSmsPointOutData } from "../data/fuHuaQi/smsPointOut";
import { SMSTYPE } from "../config/enum";
import { CYCSRBJ, CYCXFX, FUHUASTATE, INDUSTRY, SMSTYPE, VIRTUALCAUSE } from "../config/enum";
import { dataDeclarationTask } from "./mobileEnterprise/quarterTask/dataDeclaration";
import { findQuarterTaskCountByParam } from "../data/fuHuaQi/quarterTask/quarterTask";
import { provideFuHuaQiQuarterTask } from "./mobileFuHuaQi/fuHuaQi/task/quarterTask";
import { initSystemLabelData, systemLabel } from "./label";
import { findEnterpriseList } from "../data/enterprise/enterprise";
import { extractData } from "../util/piecemeal";
import { EnterpriseListConfig } from "../config/splitResultConfig";
import { changeAddToString } from "../tools/system";
import { changeEnumValue } from "../util/verificationEnum";
const xlsx = require('node-xlsx');
const fs = require('fs');
const path = require('path');
export async function test111() {
return
/**查询内容 */
let usccMap = await findAllFuHuaQiOperationNameMap();//用于将孵化器uscc变成孵化器名称
let dataBaseList = await findEnterpriseList({labels:{"$elemMatch": { "labelId":"zfqy", "state":true }} } );
/**组合二维数组 titleList 与 keyList 要一一对应 */
const TitleList = [
"企业名称", "入库时间", "所属孵化器", "新注册/新迁入", "孵化状态", "虚拟孵化服务模式", "统一信用代码", "行业领域","主营业务",
"注册时间", "首次入孵时间", "迁入时间", "是否自然人控股", "迁入前注册地址",
"注册地址", "经营地址", "租赁面积(平方米)","创业创新方向","创业创始人背景",
"海外专利", "一类专利","二类专利",
"是否上市" , "高新技术" , "专精特新" , "小巨人培育" , "小巨人"
];//表头顺序 如果这里修改了 下面的keyList也要修改
const KeyList = [
"name", "createTime", "fuhuaqiUscc", "isCreate", "state", "virtualCause", "uscc", "industry", "mainBusiness",
"logonTime","firstIncubationTime", "timeOfImmigration", "isNaturalPersonHolding", "oldLogonAddress",
"logonAddress", "operatingAddress", "leasedArea","cycxfx","cycsrbj",
"alienPatent", "classIPatent", "secondClassPatent",
"beOnTheMarket", "highTechMs", "zjtxMs", "xjrpyMs", "xjrMs"
];//表头对应的字段顺序
let dataList = [TitleList];
dataBaseList.forEach( info => {
/**截取返回结果 */
let changeData:any = extractData(EnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
if (!info.taskId || info.enterpriseIsInPut) {
if (info.enterpriseIsInPut) changeData.isCreate = "底库数据";
else {
changeData.isCreate = (changeData.isCreate)? "补录新注册":"补录新迁入";
}
}else changeData.isCreate = (changeData.isCreate) ? "新注册" : "新迁入";
if (!changeAddToString(info.oldLogonAddress)) {
changeData.oldLogonAddress = "-";
}
if (!changeAddToString(info.logonAddress)) {
changeData.logonAddress = "-";
}
if (!changeAddToString(info.operatingAddress)) {
changeData.operatingAddress = "-";
}
changeData.cycxfx = changeEnumValue(CYCXFX, changeData.cycxfx) || "未选择";
changeData.cycsrbj = changeEnumValue(CYCSRBJ, changeData.cycsrbj) || "未选择";
changeData.isNaturalPersonHolding = changeData.isNaturalPersonHolding ? "是" : "否";
/**修改枚举值 */
changeData.industry = changeEnumValue(INDUSTRY, changeData.industry);
changeData.state = changeEnumValue(FUHUASTATE, changeData.state);
changeData.virtualCause = changeEnumValue(VIRTUALCAUSE, changeData.virtualCause);
/**- let intellectualProperty = changeData.intellectualProperty || {}
changeData.alienPatent = intellectualProperty.alienPatent || 0;
changeData.classIPatent = intellectualProperty.classIPatent || 0;
changeData.secondClassPatent = intellectualProperty.secondClassPatent || 0;
if (changeData.qualification) {
let onceData = changeData.qualification;
let beOnTheMarket = "无上市";
if (onceData.beOnTheMarket){
beOnTheMarket = verificationEnumTools.changeEnumValue( configEnum.FINANCINGROUNDS, onceData.beOnTheMarket) || "无上市"
}
changeData.beOnTheMarket = beOnTheMarket;
changeData.highTechMs = onceData.highTechMs ? new Date(onceData.highTechMs).getFullYear() : '未认证';//高新技术
changeData.zjtxMs = onceData.zjtxMs ? new Date(onceData.zjtxMs).getFullYear() : '未认证';//专精特新
changeData.xjrpyMs = onceData.xjrpyMs ? new Date(onceData.xjrpyMs).getFullYear() : '未认证';//小巨人培育
changeData.xjrMs = onceData.xjrMs ? new Date(onceData.xjrMs).getFullYear() : '未认证';//小巨人
} else {
changeData.beOnTheMarket = "无上市";//是否上市
changeData.highTechMs = '未认证';//高新技术
changeData.zjtxMs = '未认证';//专精特新
changeData.xjrpyMs = '未认证';//小巨人培育
changeData.xjrMs = '未认证';//小巨人
}
/**根据表头与key的顺序 生成小数组 */
let subList = [];
KeyList.forEach( keyStr => {
let value = changeData[keyStr];
if (value == null || value == undefined) value = "-"
subList.push( value );
});
dataList.push(subList);
});
let data = [
{
name:"sheet1",
data:dataList
}
];
let buff = xlsx.build(data);
fs.writeFileSync(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '在孵企业excel.xlsx' ), buff);
console.log();
// return dataList;
}
/**
* 初始化任务 6.0改成了 管理后台手动发放
* 初始化系统定时任务
*
*/
export async function initSystemTask() {
// return;//发布的时候要放开
// /**孵化器月度任务 */
// test111();
// return
/**
* 6.0版本后舍弃系统自动发放任务
*/
/**孵化器月度任务 */
// fuHuaQiMonthTask();
// setInterval(async function () {
// await fuHuaQiMonthTask();
// }, 3600 * 1000);
/**
* 6.0版本舍弃季度任务
*/
/**孵化器季度任务 */
// fuHuaQiQuarterTask();
// setInterval(async function () {
// await fuHuaQiQuarterTask();
// }, 3600 * 1000 * 2);
/**
* 5.0版本舍弃企业季度任务
*/
// /**企业季度任务 */
// // enterpriseQuarterTask();
// // setInterval(async function () {
// // await enterpriseQuarterTask();
// // }, 3600 * 1000 * 2);
/**
* 6.0版本后,不在发送任务提醒
*/
// /**初始化短信任务 */
// smsTask();
// setInterval(async function () {
......@@ -53,9 +184,11 @@ export async function initSystemTask() {
// }, 3600 * 1000);
// console.log(`systemTask init success`);
// console.log(`systemTask init success`);
/**这个是校验数据 */
/**
* 定时校验数据
* 6.0新加 用于标签系统
*/
await initSystemLabelData();
await systemLabel();
let lastUpdateDay = moment().format("YYYY-MM-DD");
......@@ -112,6 +245,7 @@ async function enterpriseQuarterTask() {
/**
* 短信任务 每月倒数第七天发送
* 6.0后不在发送任务提醒 舍弃
*/
async function smsTask() {
return;
......
......@@ -52,7 +52,3 @@ export async function initConfig() {
function analysisMongoConnectStr(path, port, dataBase, w, timeOutMs) {
return `mongodb://${path}:${port}/${dataBase}?w=${w}&wtimeoutMS=${timeOutMs}`
}
\ No newline at end of file
export function getEnum() {
}
\ No newline at end of file
......@@ -67,6 +67,12 @@ export async function delLabel(id) {
return await labelModel.deleteOne({id});
}
/**
* 获取标签名称与标签类型map
* @param goal 标签目标
* @returns
*/
export async function getEffectiveLabelMap(goal:number) {
let list = await labelModel.find({goal, state:false});
let map = {};
......@@ -78,6 +84,11 @@ export async function getEffectiveLabelMap(goal:number) {
}
/**
* 获取标签名称与状态map
* @param goal 标签目标
* @returns
*/
export async function getLabelNamMap(goal:number) {
let list = await labelModel.find({goal});
let nameMap = {};
......
import { jiaoyanshuju } from "./biz/admin/provide";
import { initPool } from "./biz/gpt/indicatorPool";
import { initOutline } from "./biz/gpt/report";
import { initSMS } from "./biz/sms";
......@@ -23,6 +24,7 @@ async function lanuch() {
initOutline();
/**创建http服务 */
httpServer.createServer(systemConfig.port);
// await jiaoyanshuju();
// await smsTask();
console.log('This indicates that the server is started successfully.');
}
......
var baiduMap = require('baidumap');
var bdmap = baiduMap.create({'ak':'QCxLry4y9BjIDRDIsGAerkcHrnrbo55I'});
var bdmap = baiduMap.create({'ak':'tXZNOtuhb3PJHwax0eb7DkgHP9Zh5QOb'});
import { areaList } from "../config/area";
import { get } from "../util/request";
export function changeAddresCode(address, city) {
export async function changeAddresCode(address, city) {
let p = {
address:address,
output:"json",
ak:"tXZNOtuhb3PJHwax0eb7DkgHP9Zh5QOb",
// callback:"showLocation"
}
let reuslt:any = await get("https://api.map.baidu.com/geocoding/v3/", p);
try {
if (reuslt.status == 0) {
return reuslt.result.location
}
else return {error:true, errMsg:reuslt.message};
}catch(err) {
return{error:true, errMsg:reuslt} ;
}
console.log();
return
return new Promise((resolve, reject) => {
var geocoderOption = {address, city};
bdmap.geocoder(geocoderOption, function(err, reuslt){
if (err) {
resolve({error:true});
resolve({error:true, errMsg:err});
} else {
try {
let resObj = JSON.parse(reuslt);
if (resObj.status == 0) {
resolve(resObj.result.location)
}
else resolve({error:true, errMsg:resObj.message});
}catch(err) {
resolve({error:true});
resolve({error:true, errMsg:reuslt});
}
}
});
......
......@@ -2,18 +2,15 @@
* 数据初始化
*
*/
import { FUHUAQILNVESTMENTSTYLE, FUHUAQILV, INDUSTRY, INSTITUTIONALNATURE } from "../config/enum";
import { FUHUAQILV, INDUSTRY, INSTITUTIONALNATURE } from "../config/enum";
import { createEnterpriseToList, findEnterpriseCount } from "../data/enterprise/enterprise";
import { findFinancingCount } from "../data/fuHuaQi/monthTask/financing";
import { createFuHuaQiToList, findAllFuHuaQiOperationUsccMap, findAllNotDisabledFuHuaQi, findFuHuaQiCount } from "../data/fuHuaQi/fuhuaqi";
import { createMonthTableToList, findMonthTableListCount } from "../data/fuHuaQi/monthTask/monthTable";
import { getPwdMd5 } from "./system";
import * as taskTool from "./taskTool";
const xlsx = require('node-xlsx');
const path = require('path');
const md5 = require("md5");
const fs = require('fs');
const OldTypeChangeConfig = {
"文化创意":INDUSTRY.文化创意,
......@@ -74,6 +71,7 @@ function getExcel(filePath) {
/**
* 初始化原始数据
* 6.0版本后弃用 不再检查原始数据是否存在,当需要从零部署的时候,需要把这里的return放开
*/
export async function initBasicData() {
return;
......@@ -82,6 +80,11 @@ export async function initBasicData() {
await initMonth();
}
/**
* 初始化孵化器数据
* @returns
*/
async function initFuHuaQiData() {
let count = await findFuHuaQiCount({});
if (count > 1) {
......@@ -148,6 +151,11 @@ async function initFuHuaQiData() {
console.log("---> 孵化器数据 初始化成功");
}
/**
* 初始化企业数据
* @returns
*/
async function initEnterprise() {
let count = await findEnterpriseCount({});
if (count > 10) {
......@@ -249,6 +257,11 @@ async function initEnterprise() {
console.log("---> 企业数据 初始化成功");
}
/**
* 初始化2022年12月孵化器出租率
* @returns
*/
async function initMonth() {
let count = await findMonthTableListCount({});
if (count > 10) {
......@@ -294,69 +307,3 @@ async function initMonth() {
await createMonthTableToList(addList);
console.log("---> 12月月度数据 初始化成功");
}
\ No newline at end of file
// async function initFinancing() {
// :{type:String, index:true},//融资企业统一信用代码 冗余字段
// :{type:String, index:true},//孵化器统一信用代码 冗余字段
// :String,//企业名称
// :{type:String, index:true},//任务id
// :String,//注册地址
// :String,//经营地址
// :Number,//融资金额(万元)
// :String,//投资机构名称
// :Number,//获得投资时间
// :{type:Boolean, default:false},//孵化器是否投资
// :Number,//孵化器投资金额(万元)
// :Number,//孵化器投资方式
// :{type:Boolean, default:false},//草稿锁,true为提交之后,false为草稿
// :Number,//录入时间
// industry:[Number],//领域
// logonTime:Number,//注册时间
// financingRounds:Number,//融资轮次
// let count = await findFinancingCount({});
// if (count > 10) {
// console.log("*** 融资数据 无需初始化");
// return;
// }
// let fhqList = await findAllNotDisabledFuHuaQi();
// let distinctMap = {};
// fhqList.forEach(info => {
// let {uscc, operationName} = info;
// distinctMap[operationName] = uscc;
// });
// let {sheetMap} = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '12月融资企业数据.xlsx' ));
// let dataList = sheetMap['在孵企业月度数据'];
// let addList = [];
// dataList.forEach((subList, index) => {
// let uscc = subList[4];
// let fuhuaqi = subList[3];
// let fuHuaQiUscc = distinctMap[fuhuaqi];
// if ( !fuHuaQiUscc || !uscc) {
// return;
// }
// let name = subList[2];
// let taskId = `${fuHuaQiUscc}20231`;
// let logonAdd = subList[6];
// let operatingAdd = subList[7];
// let financingAmount = subList[11] || 0;
// let investmentInstitutionsName = subList[12];
// let timeToObtainInvestment = new Date(subList[13]).valueOf();
// let fuHuaQiInvestment = subList[13] == "是" ? true : false;
// let fuHuaQiInvestmentAmount = subList[14] ||0;
// let fuHuaQiInvestmentStyle = subList[15] ? FUHUAQILNVESTMENTSTYLE.自有基金
// let draftLock = true;
// let createTime = new Date().valueOf();
// addList.push({
// });
// });
// await createFuHuaQiToList(addList);
// console.log("---> 孵化器数据 初始化成功");
// }
\ 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