Commit 1f834465 by lixinming

no message

parent 69e71289
<config>
<port>30001</port>
<mongodb>mongodb://192.168.12.79:27017/adminDB?w=1&wtimeoutMS=30000</mongodb>
<mongodb>
<path>127.0.0.1</path>
<port>27017</port>
<w>1</w>
<dataBase>baseDB</dataBase>
<wtimeoutMS>30000</wtimeoutMS>
</mongodb>
</config>
\ No newline at end of file
......@@ -5,8 +5,11 @@
*
*/
import { TASKTYPEENUM } from "../../config/enum";
import { findEnterpriseListByTaskId } from "../../data/enterprise/enterprise";
import { findFinancingListByTaskId } from "../../data/enterprise/financing";
import { findFuHuaQiTaskByKeyAndUscc } from "../../data/fuHuaQi/task";
import { getTaskId } from "../../util/tools";
/**
......@@ -15,12 +18,40 @@ import { findFuHuaQiTaskByKeyAndUscc } from "../../data/fuHuaQi/task";
* @returns
*/
export async function fuHuaQiTaskList(uscc:string) {
/**
* 返回格式 [{type:, }]
*/
let result = [];
const timeKey = `${new Date().getFullYear()}${new Date().getMonth()+1}`;
let taskList = await findFuHuaQiTaskByKeyAndUscc(uscc, timeKey);
if (!taskList.length) {
let taskMap = await findFuHuaQiTaskByKeyAndUscc(uscc, timeKey);
let taskTypeMapConf = {};
for (let key in TASKTYPEENUM) {
let k:any = key;
if (isNaN(k)) taskTypeMapConf[TASKTYPEENUM[key]] = key;
}
const TaskId = getTaskId(uscc);
for (let typeStr in taskTypeMapConf) {
let typeKey = parseInt(typeStr);
let onceObj = { key:typeStr, enterpriseList:[]};
if (!taskMap[typeStr]) { //没有提交任务
if (TASKTYPEENUM.孵化器月度填报 == typeKey ) {
// enterpriseList.push();
continue;
}
let dataList = [];
if (TASKTYPEENUM.新注册或迁入企业登记 == typeKey ) dataList = await findEnterpriseListByTaskId(TaskId);
if (TASKTYPEENUM.融资企业填报 == typeKey) dataList = await findFinancingListByTaskId(TaskId);
dataList.forEach(info => {
onceObj.enterpriseList.push(info.name);
});
}
result.push(onceObj);
}
return result;
}
export enum ERRORENUM {
未找到数据,
参数错误,
export enum TASKTYPEENUM {
孵化器月度填报=1,
融资企业填报,
新注册或迁入企业登记
}
......@@ -18,8 +18,13 @@ export async function initConfig() {
let {port, mongodb } = configInfo.config;
systemConfig.port = parseInt(port[0]);
systemConfig.mongodbStr = mongodb[0]
const MongoPath = mongodb[0].path[0];
const MongoPort = mongodb[0].port[0];
const MongoW = mongodb[0].w[0];
const MongoDataBase = mongodb[0].dataBase[0];
const MongoWtimeoutMS = mongodb[0].wtimeoutMS[0];
systemConfig.mongodbStr = analysisMongoConnectStr( MongoPath, MongoPort, MongoDataBase, MongoW, MongoWtimeoutMS);
}
console.log("config init success");
......@@ -29,6 +34,10 @@ export async function initConfig() {
}
}
function analysisMongoConnectStr(path, port, dataBase, w, timeOutMs) {
return `mongodb://${path}:${port}/${dataBase}?w=${w}&wtimeoutMS=${timeOutMs}`
}
export function getEnum() {
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ import { baseDB } from '../../db/dbInit';
const enterpriseSchema = new Schema({
name: {type:String, index: true},//企业名称
id:{type:String, index:true},//唯一标识
taskId:{type:String, index:true},//任务id
uscc:{type:String, index: true},//统一信用代码
logonTime:Number,//注册时间
logonAdd:String,//注册地址
......@@ -22,3 +22,12 @@ var enterpriseModel;
export function initModel(){
enterpriseModel = baseDB.model('enterprise', enterpriseSchema);
}
/**
* 通过taskId 获取此次任务提交的企业列表
* @param taskId
* @returns
*/
export async function findEnterpriseListByTaskId(taskId:string) {
return await enterpriseModel.findOne({taskId}).exec();
}
\ No newline at end of file
......@@ -2,8 +2,9 @@ import {Schema} from 'mongoose';
import { baseDB } from '../../db/dbInit';
const financingSchema = new Schema({
uscc:{type:String, key:true},//统一信用代码
id:{type:String, key:true},//唯一标识
uscc:{type:String, index:true},//统一信用代码
name:String,//企业名称
taskId:{type:String, index:true},//任务id
createTime:Number,//入库时间
financingTime:Number,//获得融资时间
financingAmount:Number,//融资金额(万元)
......@@ -12,9 +13,19 @@ const financingSchema = new Schema({
fuHuaQiInvestment:{type:Boolean, default:false},//孵化器是否投资
fuHuaQiInvestmentAmount:Number,//孵化器投资金额(万元)
fuHuaQiInvestmentStyle:Number,//孵化器投资方式
draftLock:{type:Boolean, default:false},//草稿锁,true为提交之后,false为草稿
});
var financingModel;
export function initModel(){
financingModel = baseDB.model('financing', financingSchema);
}
/**
* 通过taskId 获取此次任务提交的融资列表
* @param taskId
* @returns
*/
export async function findFinancingListByTaskId(taskId:string) {
return await financingModel.findOne({taskId}).exec();
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import { baseDB } from '../../db/dbInit';
const fuHuaQiTaskSchema = new Schema({
key:{type:String, index:true},//任务标识 格式为:YYYYMM
type: {type:Number,index: true},//任务类型
taskId:String,//任务id
fuHuaQiUscc:String,//任务所属孵化器id
createTime:Number,//提交时间
relevanceId:String,//任务关联的表 financing 或 enterprise 的id
......@@ -16,6 +17,10 @@ export function initModel(){
}
export async function findFuHuaQiTaskByKeyAndUscc(uscc:string, key:string) {
let result = await fuHuaQiTaskModel.find({uscc, key}).exec();
return result;
let findList = await fuHuaQiTaskModel.find({uscc, key}).exec() || [];
let taskMap = {};
findList.forEach(item => {
taskMap[item.key] = item;
});
return taskMap;
}
\ No newline at end of file
......@@ -6,14 +6,16 @@ let defaultOptions = {
// reconnectTries:1000,
// reconnectInterval:3000,
keepAlive: 1,
connectTimeoutMS: 30000,
connectTimeoutMS: 3000,
useCreateIndex: true,
useUnifiedTopology: true
};
};
export async function createDbConnect(connectUrl:string, options?:object) {
if (!connectUrl) throw new Error(`wrong connect url ${connectUrl}`);
if (!options) options = defaultOptions;
return await mongoose.createConnection(connectUrl, options).catch((err)=>{throw err});
return await mongoose.createConnection(connectUrl, options).catch(
(err)=>{
throw err
});
}
......@@ -8,11 +8,13 @@ var baseDB;
export async function initDB() {
//如果配置了mongoServerConstVal 才会连接mongo
if (systemConfig.mongodbStr) {
console.log(systemConfig.mongodbStr)
baseDB = await createDbConnect(systemConfig.mongodbStr).catch(err => {
throw err
});
await initTable();
console.log('init mongodb success');
} else {
throw new BizError("xml中未配置mongo连接字符串 无法连接到mongodb");
}
......
import * as taskinModel from "../data/fuHuaQi/task";
import * as fuhuaqiinModel from "../data/fuHuaQi/fuhuaqi";
import * as enterpriseinModel from "../data/enterprise/enterprise";
import * as financinginModel from "../data/enterprise/financing";
export async function initTable() {
taskinModel.initModel();
fuhuaqiinModel.initModel();
enterpriseinModel.initModel();
financinginModel.initModel();
}
\ No newline at end of file
import { fuHuaQiTaskList } from "./biz/fuHuqQi/task";
import { initConfig, systemConfig} from "./config/serverConfig";
import { initDB } from "./db/dbInit";
import { httpServer } from "./net/http_server";
async function lanuch() {
await initConfig();//初始化配置解析
await initDB();
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
await t();
}
async function t() {
await fuHuaQiTaskList('111');
}
lanuch();
\ 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