Commit de09a114 by lixinming

3.0

parent edfdd05f
......@@ -3,13 +3,15 @@
* 作者:lxm
*/
import { extractData } from "../../../util/piecemeal";
import { checkChange, extractData } from "../../../util/piecemeal";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as splitResultConfig from "../../../config/splitResultConfig";
import * as fuHuaQiData from "../../../data/fuHuaQi/fuhuaqi";
import * as configEnum from "../../../config/enum";
import * as verificationEnumTools from "../../../util/verificationEnum";
import moment = require("moment");
import { findBusinessDataByParams, findBusinessDataByParamsToPage } from "../../../data/enterprise/businessdata";
import { findEnterpriseInitialTeamsByParam, findEnterpriseInitialTeamsByParamToPage } from "../../../data/enterprise/initialTeam";
/**
......@@ -307,4 +309,158 @@ export async function outPutEnterpriseMoveOutList(name:string, fuHuaQiUscc:strin
});
return { fileName, dataList };
}
/**
* 获取企业经营数据列表
* @param name 企业名称
* @param year 年份
* @param quarters 季度
* @param page 页面
*/
export async function getBusinessDataList(name:string, year:number, quarters:number, page:number) {
let selectParam:any = {};
if (name) selectParam.name = {"$regex":`${name}`};
if (year) {
selectParam.year = year;
if (quarters) selectParam.quarters = quarters;
}
let dataBaseList = await findBusinessDataByParamsToPage(selectParam, (page-1)*10);
let dataList = [];
dataBaseList.forEach(info => {
let changeData = extractData(splitResultConfig.EnterpriseBusinessDataConfig, info, true);
dataList.push(changeData);
});
return { dataList };
}
/**
* 导出企业经营数据列表
* @param name 企业名称
* @param year 年份
* @param quarters 季度
*/
export async function outPutBusinessDataList(name:string, year:number, quarters:number, type:number) {
let fileName = "全部";
/**拼接查询条件 */
let selectParam:any = {state:configEnum.FUHUASTATE.迁出};
if (type == configEnum.OUTPUTTYPE.当前数据) {
if (name) {
selectParam.name = {"$regex":`${name}`};
}
if (year) {
selectParam.year = year;
if (quarters) selectParam.quarters = quarters;
}
fileName = "当前数据";
}
let dataBaseList = await findBusinessDataByParams(selectParam);
let keyList = [ "name", "year", "quarters", "BI", "RD", "TXP"];
let titleList = ["企业名称"," 季度"," 年度"," 营业收入"," 研发投入"," 纳税"];
let dataList = [titleList];
dataBaseList.forEach(info => {
let changeData = extractData(splitResultConfig.EnterpriseBusinessDataConfig, info, true);
let subList = [];
for (let i = 0; i < keyList.length; i++) {
let value = changeData[keyList[i]]
subList.push(value);
}
dataList.push(subList);
});
return { dataList, fileName };
}
/**
* 创始团队列表
* @param name 企业名称
* @param member 成员名称
* @param type 人才类型
* @param page 页面
*/
export async function getInitialTeamList(name:string, member:string, type:number, page:number) {
let selectParam:any = {};
if (name) selectParam.name = {"$regex":`${name}`};
if (member) selectParam.memberName = member;
if (type) {
verificationEnumTools.eccEnumValue("企业创始团队列表", "type", configEnum.ENTERPRISETEAM, type );
selectParam.type = type;
}
let dataBaseList = await findEnterpriseInitialTeamsByParamToPage(selectParam, (page-1)*10 );
let dataList = [];
dataBaseList.forEach(info => {
let changeData:any = extractData(splitResultConfig.EnterpriseInitialTeamDataListConfig, info, true);
changeData.memberDEGREE = verificationEnumTools.changeEnumValue(configEnum.DEGREE, changeData.memberDEGREE);
changeData.type = verificationEnumTools.changeEnumValue(configEnum.ENTERPRISETEAM, changeData.type);
changeData.memberSex = verificationEnumTools.changeEnumValue(configEnum.SEX, changeData.memberSex);
dataList.push(changeData);
});
return { dataList };
}
/**
* 导出企业创始团队列表
* @param name
* @param member
* @param memberType
* @param type
* @returns
*/
export async function outPutInitialTeamList(name:string, member:string, memberType:number, type:number) {
let fileName = "全部";
/**拼接查询条件 */
let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据) {
if (name) selectParam.name = {"$regex":`${name}`};
if (member) selectParam.memberName = member;
if (memberType){
verificationEnumTools.eccEnumValue("导出企业创始团队列表", "memberType", configEnum.ENTERPRISETEAM, memberType );
selectParam.type = memberType;
}
fileName = "当前数据";
}
let dataBaseList = await findEnterpriseInitialTeamsByParam(selectParam );
let keyList = [ "name", "type", "memberName", "memberSex", "memberAge", "memberDEGREE", "memberSchool", "des"];
let titleList = ["企业名称", "创始团队人才类型", "成员姓名", "成员性别", "成员出生年月", "成员最高学历", "毕业学校", "履历描述"];
let dataList = [titleList];
dataBaseList.forEach(info => {
let changeData:any = extractData(splitResultConfig.EnterpriseInitialTeamDataListConfig, info, true);
/**将枚举值转为字符 */
changeData.type = verificationEnumTools.changeEnumValue(configEnum.ENTERPRISETEAM, changeData.type);
changeData.memberDEGREE = verificationEnumTools.changeEnumValue(configEnum.DEGREE, changeData.memberDEGREE);
changeData.memberSex = verificationEnumTools.changeEnumValue(configEnum.SEX, changeData.memberSex);
let subList = [];
for (let i = 0; i < keyList.length; i++) {
let value = changeData[keyList[i]]
subList.push(value);
}
dataList.push(subList);
});
return { dataList, fileName };//todo
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ import moment = require("moment");
import * as configEnum from "../../../config/enum";
import { changeEnumValue } from "../../../util/verificationEnum";
import { extractData } from "../../../util/piecemeal";
import { selectFinancingListByParams, selectFinancingListByParamsToPage } from "../../../data/enterprise/financingInfo";
/**
......@@ -127,4 +128,83 @@ export async function outPutFinancingList(monthData:string, fuHuaQiName:string,
});
return result;
}
/**
* 获取 企业填报的融资数据
* @param name 企业名称
* @param financingRounds 融资轮次
* @param fuHuaQiInvestment 孵化器是否参与投资
* @param page 页面
*/
export async function getEnterpriseFinancing(name:string, financingRounds:number, fuHuaQiInvestment:number, page:number) {
let selectParam:any = {};
if (name) selectParam.name = {"$regex":`${name}`};
if (financingRounds) selectParam.financingRounds = financingRounds;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
let dataBaseList = await selectFinancingListByParamsToPage(selectParam, page);
let dataList = [];
dataBaseList.forEach(info => {
let changeData:any = extractData(splitResultConfig.EnterpriseFinancingDataConfig, info, true);
changeData.financingRounds = changeEnumValue(configEnum.FINANCINGROUNDS, changeData.financingRounds);
changeData.fuHuaQiInvestment = changeData.fuHuaQiInvestment ? "是" : "否";
changeData.fuHuaQiInvestmentStyle = changeEnumValue(configEnum.FUHUAQILNVESTMENTSTYLE, changeData.fuHuaQiInvestmentStyle);
dataList.push(changeData);
});
return { dataList };
}
/**
* 导出 企业填报的融资数据
* @param name
* @param financingRounds
* @param fuHuaQiInvestment
* @param type
*/
export async function outPutEnterpriseFinancing(name:string, financingRounds:number, fuHuaQiInvestment:number, type:number) {
let selectParam:any = {};
let fileName = "全部";
if (type == configEnum.OUTPUTTYPE.当前数据 ) {
/**如果选择当前数据 则拼接查询条件 */
if (name) selectParam.name = {"$regex":`${name}`};
if (financingRounds) selectParam.financingRounds = financingRounds;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
fileName = "当前数据";
}
let dataBaseList = await selectFinancingListByParams(selectParam);
let keyList = [
"name", "financingRounds", "financingAmount","investmentInstitutionsName", "timeToObtainInvestment",
"fuHuaQiInvestment", "fuHuaQiInvestmentAmount", "fuHuaQiInvestmentStyle"
];
let titleList = [
"企业名称", "融资轮次", "融资金额(万元)","投资机构名称","获得投资时间", "孵化器是否投资", "孵化器投资金额(万元)", "孵化器投资方式"
];
let dataList = [titleList];
dataBaseList.forEach(info => {
let changeData:any = extractData(splitResultConfig.EnterpriseFinancingDataConfig, info, true);
changeData.fuHuaQiInvestment = changeData.fuHuaQiInvestment ? "是" : "否";
let subList = [];
for (let i = 0; i < keyList.length; i++) {
let value = changeData[keyList[i]]
subList.push(value);
}
dataList.push(subList);
});
return { dataList, fileName };
}
\ No newline at end of file
......@@ -14,9 +14,10 @@ import { ENTERPRISEDECLARATIONTYPE } from "../../config/enum";
import { BizError } from "../../util/bizError";
import { ERRORENUM } from "../../config/errorEnum";
import { eccFormParam } from "../../util/verificationParam";
import { EnterpriseAddBusinessDataConfig, EnterpriseAddTeamDataConfig } from "../../config/eccFormParamConfig";
import { EnterpriseAddTeamDataConfig } from "../../config/eccFormParamConfig";
import { EnterpriseTeamConfig } from "../../config/splitResultConfig";
import { checkChange, extractData } from "../../util/piecemeal";
import { findEnterpriseByUscc } from "../../data/enterprise/enterprise";
/** ----------------------------------------------------- 通用方法 start -------------------------------------- */
......@@ -155,11 +156,14 @@ export async function addBusinessData(uscc:string, BI:number, RD:number, TXP:num
if(!isInTime()) throw new BizError(ERRORENUM.不在填报范围之内, `${uscc}不在时间范围内提交申报`);
let {declarationQuarter, declarationYear} = getDeclarationTime();
let enterpriseInfo = await findEnterpriseByUscc(uscc);
let businessDataInfo = await findBusinessDataByTimeAndUscc(uscc, declarationYear, declarationQuarter);
if (businessDataInfo && businessDataInfo.year) throw new BizError(ERRORENUM.请勿重复提交填报数据, `${uscc}重复的提交了经营数据`);
await createBusinessData(uscc, declarationYear, declarationQuarter, BI, RD, TXP);
await createBusinessData(uscc, declarationYear, declarationQuarter, BI, RD, TXP, enterpriseInfo.name);
return {isSuccess:true};
}
......
......@@ -6,10 +6,12 @@
import { EnterpriseQualificationUpdateConfig, EnterpriseUpdateBaseDataConfig, InitialTeamUpdateConfig } from "../../config/eccFormParamConfig";
import { ENTERPRISETEAM, INDUSTRY, LISTINGSITUATION } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { EnterpriseBaseConfig } from "../../config/splitResultConfig";
import { EnterpriseBaseConfig, EnterpriseInitialTeamConfig } from "../../config/splitResultConfig";
import * as enterpriseData from "../../data/enterprise/enterprise";
import { selectFinancingInfo } from "../../data/enterprise/financingInfo";
import { addMoneyEnterpriseInitialTeam, deleteMoneyEnterpriseInitialTeam, findEnterpriseInitialTeam, updateMoneyEnterpriseInitialTeam } from "../../data/enterprise/initialTeam";
import { findEnterpriseNewTeamData } from "../../data/enterprise/team";
import { getInitialTeamMemberId } from "../../tools/system";
import { BizError } from "../../util/bizError";
import { checkChange, checkDataHaveNull, extractData } from "../../util/piecemeal";
import { eccEnumValue } from "../../util/verificationEnum";
......@@ -35,11 +37,12 @@ function paramIsNull(param) {
/**
* 获取首页基础信(首页顶端数据)
* 知识产权,融资情况,企业资质 第一次进来会红,点开之后红点提示 会永久消失 2023-05-08
* @param uscc 企业统一信用代码
* @returns
*/
export async function getHomePageHeaderData(uscc:string) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let enterpriseInfo = await enterpriseData.selectOneEnterpriseByParam({uscc});
//企业名称
let name = enterpriseInfo.name;
......@@ -51,11 +54,10 @@ export async function getHomePageHeaderData(uscc:string) {
let memberCount = teamInfo.doctor + teamInfo.master+ teamInfo.undergraduate+ teamInfo.juniorCollege+ teamInfo.other;
let initialTeam = enterpriseInfo.initialTeam.length == 0;//创始团队缺失 true=缺失
let qualification = checkDataHaveNull(enterpriseInfo.qualification, false);//企业资质缺失 true=缺失 需要标红
let intellectualProperty = checkDataHaveNull(enterpriseInfo.intellectualProperty, false);//知识产权缺失 true=缺失 需要标红
let financingInfo = await selectFinancingInfo(uscc);//融资情况缺失 true=缺失 需要标红
let financing = checkDataHaveNull(financingInfo, false);
let qualification = !enterpriseInfo.tipsQualification; //企业资质缺失 true=缺失 需要标红
let intellectualProperty = !enterpriseInfo.tipsIntellectualProperty;//知识产权缺失 true=缺失 需要标红
let financing = !enterpriseInfo.tipsFinancingInfo; //融资情况缺失 true=缺失 需要标红
let checkEnterpriseInfo = extractData(EnterpriseBaseConfig, enterpriseInfo, false);
let baseInfo = checkDataHaveNull(checkEnterpriseInfo, true)
......@@ -76,6 +78,7 @@ export async function getHomePageHeaderData(uscc:string) {
/**
* 修改创始团队信息
* 修改 删除 添加 为一个接口 根据数据情况与老数据情况做匹配
* @param uscc 企业统一信用代码
* @param firstClassTalent 是否拥有国际一流人才
* @param teams 创始团队信息
......@@ -94,13 +97,51 @@ export async function updateInitialTeamInfo(uscc:string, firstClassTalent:boolea
if (info.des.length > 200) throw new BizError(ERRORENUM.字数超过200限制, `修改创始团队信息 下标:${index}`);
});
//是否拥有国际人才这个字段在 企业表中 需要单独做更改
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
/**赋值 */
enterpriseInfo.firstClassTalent = firstClassTalent;
enterpriseInfo.initialTeam = teams;
await enterpriseInfo.save();
let enterpriseInitialTeamList = await findEnterpriseInitialTeam(uscc);
/**匹配数据操作逻辑 */
let newTeamIdList = [];//用于匹配新数据,老数据不在新数据中 判定为被删除
teams.forEach(info => {
if (info.id && info.id != "newdata") newTeamIdList.push(info.id);//todo
});
let deleteList = [];
//老数据将出现在这个map里 用于与新数据id匹配,匹配id不在老数据中判定为添加操作
let dataBaseTeamMap = {};
enterpriseInitialTeamList.forEach(info => {
dataBaseTeamMap[info.id] = info;
if (newTeamIdList.indexOf(info.id) == -1 ) {
deleteList.push(info);
}
});
let addList = [];
let updateList = [];
teams.forEach(info => {
let {id} = info;
let dataBaseInfo = dataBaseTeamMap[id];
if (!dataBaseInfo) {//不存在老的id 判定为添加操作
info.id = getInitialTeamMemberId(uscc, info.name);
info.uscc = uscc;
info.name = enterpriseInfo.name;
addList.push(info);
} else {
//比对新老数据判断数据需不需要修改
let changeList = checkChange(info, Object.assign({name:enterpriseInfo.name, uscc}, dataBaseInfo));
if (changeList.length) updateList.push(info);
}
});
/**修改数据 */
if (addList.length) await addMoneyEnterpriseInitialTeam(addList);
if (updateList.length) await updateMoneyEnterpriseInitialTeam(updateList);
if (deleteList.length) await deleteMoneyEnterpriseInitialTeam(deleteList);
return {isSuccess:true};
}
......@@ -113,9 +154,16 @@ export async function updateInitialTeamInfo(uscc:string, firstClassTalent:boolea
*/
export async function selectInitialTeamInfo(uscc:string) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
let initialTeam = enterpriseInfo.initialTeam || [];
let firstClassTalent = enterpriseInfo.firstClassTalent;
let initialTeamList = await findEnterpriseInitialTeam(uscc);
let initialTeam = [];
initialTeamList.forEach(info => {
let changeData = extractData(EnterpriseInitialTeamConfig, info, false);
initialTeam.push(changeData);
});
return { initialTeam, firstClassTalent };
}
......@@ -134,6 +182,10 @@ export async function updateIntellectualProperty(uscc:string, alienPatent:number
enterpriseInfo.intellectualProperty = {alienPatent, classIPatent, secondClassPatent};
if (!enterpriseInfo.tipsIntellectualProperty ) {
enterpriseInfo.tipsIntellectualProperty = true;
}
await enterpriseInfo.save();
return {isSuccess:true}
......@@ -201,6 +253,10 @@ export async function updateQualification(uscc:string, param) {
enterpriseInfo.qualification = JSON.parse(JSON.stringify(param) );
if (!enterpriseInfo.tipsQualification ) {
enterpriseInfo.tipsQualification = true;
}
await enterpriseInfo.save();
return {isSuccess:true};
......
......@@ -30,6 +30,13 @@ export async function getEnterpriseFinancingList(uscc:string) {
resultList.push(updateInfo);
});
let enterpriseInfo = await findEnterpriseByUscc(uscc);
if (!enterpriseInfo.tipsFinancingInfo ) {
enterpriseInfo.tipsFinancingInfo = true;
await enterpriseInfo.save();
}
return { dataList:resultList };
}
......
......@@ -377,6 +377,7 @@ export const EnterpriseAddTeamDataConfig = {
* 备注: 所有参数为必填
*/
export const InitialTeamUpdateConfig = {
id:{type:"String"},//标识
type:{type:"Number"},//创始团队人才类型
memberName:{type:"String"},//成员姓名
memberSex:{type:"Number"},//成员性别
......
......@@ -31,7 +31,7 @@ export enum TEAM {
/**
* 孵化器创业团队 【企业端用】
* 创始团队 【企业端用】
*/
export enum ENTERPRISETEAM {
国际一流人才=2,
......
......@@ -332,6 +332,23 @@ export const EnterpriseBaseConfig = {
/**
* 使用端: 小程序端【企业入口】
* 场景: 创始团队回显
* 备注:
*/
export const EnterpriseInitialTeamConfig = {
id:{key:"id标识"},
type:{key:"创始团队人才类型"},
memberName:{key:"成员姓名"},
memberSex:{key:"成员性别"},
memberAge:{key:"成员年龄 出生年月时间戳"},
memberDEGREE:{key:"成员最高学历"},
memberSchool:{key:"毕业学校"},
des:{key:"履历描述"},
}
/**
* 使用端: 小程序端【企业入口】
* 场景: 企业的团队信息申报回显
* 备注:
*/
......@@ -345,3 +362,54 @@ export const EnterpriseTeamConfig = {
graduates:{key:"应届毕业生"},
}
/**
* 使用端: 管理后台端
* 场景: 经营数据
* 备注:
*/
export const EnterpriseBusinessDataConfig = {
name:{key:"企业名称"},
year:{key:"年份"},
quarters:{key:"季度"},
BI:{key:"营业收入"},
RD:{key:"研发投入"},
TXP:{key:"纳税"},
}
/**
* 使用端: 管理后台端
* 场景: 企业填报融资数据
* 备注:
*/
export const EnterpriseFinancingDataConfig = {
name:{key:"企业名称"},
financingRounds:{key:"融资轮次"},
financingAmount:{key:"融资金额(万元)"},
investmentInstitutionsName:{key:"投资机构名称"},
timeToObtainInvestment:{key:"获得投资时间", changeDate:true},
fuHuaQiInvestment:{key:"孵化器是否投资"},
fuHuaQiInvestmentAmount:{key:"孵化器投资金额(万元)"},
fuHuaQiInvestmentStyle:{key:"孵化器投资方式"}
}
/**
* 使用端: 管理后台端
* 场景: 创始团队列表
* 备注:
*/
export const EnterpriseInitialTeamDataListConfig = {
name:{key:"企业名称"},
type:{key:"创始团队人才类型"},
memberName:{key:"成员姓名"},
memberSex:{key:"成员性别"},
memberAge:{key:"成员年龄 出生年月时间戳", changeDate:true},
memberDEGREE:{key:"成员最高学历"},
memberSchool:{key:"毕业学校"},
des:{key:"履历描述"},
}
......@@ -9,12 +9,12 @@ const businessSchema = new Schema({
year:{type:Number, index:true},//年度
quarters:{type:Number, index:true},//季度
uscc:{type:String, index:true},
name:{type:String, index:true},//企业名称
BI:Number,//营业收入
RD:Number,//研发投入
TXP:Number,//纳税
createTime:Number,//填写时间
isSubmit:{type:Boolean, default:false},//是否提交
// isReplenish:{type:Boolean, default:false},//是否补充数据
});
var businessDataModel;
......@@ -59,7 +59,24 @@ export async function findNotSubmitBusinessDataByTimeAndUscc(uscc:string, year:n
export async function createBusinessData(uscc:string, year:number, quarters:number, BI:number, RD:number, TXP:number ) {
export async function createBusinessData(uscc:string, year:number, quarters:number, BI:number, RD:number, TXP:number, name:string) {
let addInfo = {uscc, year, quarters, BI, RD, TXP, createTime:new Date().valueOf() };
await businessDataModel.create(addInfo);
}
/**
* 根据条件查询
* @param param 查询条件
*/
export async function findBusinessDataByParamsToPage(param, skipNumber) {
return await businessDataModel.find(param).skip(skipNumber).limit(10);
}
/**
* 根据条件查询
* @param param 查询条件
*/
export async function findBusinessDataByParams(param) {
return await businessDataModel.find(param);
}
\ No newline at end of file
......@@ -20,8 +20,6 @@ const initialTeamSchema = new Schema({
des:String,//履历描述
},{_id:false});
/**企业资质 */
const qualificationSchema = new Schema({
isHighTech:Boolean,
......@@ -86,6 +84,9 @@ const enterpriseSchema = new Schema({
qualification:{type:qualificationSchema},//企业资质
intellectualProperty:{type:intellectualPropertySchema},//知识产权
firstClassTalent:{type:Boolean, default:false},//是否拥有国际一流人才 默认没有
tipsQualification:{type:Boolean, default:false},//标识-企业资质
tipsIntellectualProperty:{type:Boolean, default:false},//标识-知识产权
tipsFinancingInfo:{type:Boolean, default:false},//标识-企业融资
});
var enterpriseModel;
......
......@@ -69,4 +69,12 @@ export async function getFinancingById(id:string) {
export async function deleteFinancingById(id:string) {
return await financingInfoModel.deleteOne({id});
}
export async function selectFinancingListByParamsToPage(param, skipNumber) {
return await financingInfoModel.find(param).skip(skipNumber).limit(10);
}
export async function selectFinancingListByParams(param) {
return await financingInfoModel.find(param);
}
\ No newline at end of file
/**
* 企业资讯
*
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const informationSchema = new Schema({
id:{type:String, index:true},//唯一标识
desc:String,//描述
createTimeMs:Number,//创建时间
imgs:{type:[String], default:[]},
author:String,
createUid:String,
target:{type:[Number], default:[]},//标签
noAutomatic:{type:Boolean, default:false},//非自动状态 true=关闭,false=开启
});
var informationModel;
export function initModel(){
informationModel = baseDB.model('information', informationSchema);
informationModel.selectOnceData = async function (paramater:object) {
let selectInfo = await informationModel.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);
});
}
/**
* 创建资讯
* @param id
* @param desc
* @param createTimeMs
* @param author
* @param createUid
* @param target
*/
export async function createInformation(id:string, desc:string, imgs,author:string, createUid:string, target:number ) {
// let addInfo = {id, desc, createTimeMs, imgs, author, createUid, target, noAutomatic};
}
\ No newline at end of file
/**
* 企业创始团队
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const initialTeamSchema = new Schema({
id:{type:String, index:true}, //id标识
uscc:{type:String, index:true},//企业uscc
name:String,//企业名称
type:Number,//创始团队人才类型
memberName:String,//成员姓名
memberSex:Number,//成员性别
memberAge:Number,//成员年龄 出生年月时间戳
memberDEGREE:Number,//成员最高学历
memberSchool:String,//毕业学校
des:String,//履历描述
},{_id:false});
var initialTeamModel;
export function initModel(){
initialTeamModel = baseDB.model('enterpriseInitialTeam', initialTeamSchema);
}
/**
* 添加团队成员
* @param uscc
* @param name
* @param teamList
*/
export async function addEnterpriseInitialTeam(teamInfo ) {
return await initialTeamModel.create(teamInfo);
}
export async function findEnterpriseInitialTeam(uscc:string) {
return await initialTeamModel.find({uscc});
}
export async function deleteEnterpriseInitialTeamMember(id:string) {
await initialTeamModel.deleteOne({id});
}
export async function addMoneyEnterpriseInitialTeam(teams) {
await initialTeamModel.create(teams);
}
export async function updateMoneyEnterpriseInitialTeam(updateTeams) {
for (let i = 0; i < updateTeams.length; i++) {
let info = updateTeams[i];
let id = info.id;
delete info.id;
await initialTeamModel.updateOnd({id}, info );
}
}
export async function deleteMoneyEnterpriseInitialTeam(deleteTeams) {
for (let i = 0; i < deleteTeams.length; i++) {
let info = deleteTeams[i];
let id = info.id;
await initialTeamModel.deleteOne({id});
}
}
export async function findEnterpriseInitialTeamsByParamToPage(param, skipCount:number) {
return await initialTeamModel.find(param).skip(skipCount).limit(10);
}
export async function findEnterpriseInitialTeamsByParam(param) {
return await initialTeamModel.find(param);
}
\ No newline at end of file
......@@ -22,6 +22,16 @@ export function setRouter(httpServer) {
/**迁出企业2.0新加 */
httpServer.post('/admin/enterprise/moveoutlist',checkGuanWeiHuiToken, asyncHandler(moveOutList));
httpServer.post('/admin/data/output/moveoutlist',checkGuanWeiHuiToken, asyncHandler(outPutMoveOutList));
/**经营数据3.0新加 */
httpServer.post('/admin/enterprise/businessdatalist',checkGuanWeiHuiToken, asyncHandler(businessDataList));
httpServer.post('/admin/data/output/businessdatalist',checkGuanWeiHuiToken, asyncHandler(outPutBusinessData));
/**企业填报的融资数据3.0新加 */
httpServer.post('/admin/enterprise/financinginfolist',checkGuanWeiHuiToken, asyncHandler(financingInfoList));
httpServer.post('/admin/data/output/financinginfolist',checkGuanWeiHuiToken, asyncHandler(outPutFinancingInfoList));
/**企业创始团队列表 */
httpServer.post('/admin/enterprise/initialteam',checkGuanWeiHuiToken, asyncHandler(initialTeamList));
httpServer.post('/admin/data/output/initialteam',checkGuanWeiHuiToken, asyncHandler(outPutEnterpriseInitialTeamList));
}
......@@ -137,4 +147,100 @@ async function outPutMoveOutList(req, res) {
res.success({data:dataList, name:`迁出企业${fileName}.xlsx`});
}
/**
* 企业经营数据列表
* @param req
* @param res
*/
async function businessDataList(req, res) {
let reqConf = {name:'String', year: 'Number', quarters: 'Number', page: 'Number'};
const NotMustHaveKeys = ["name", "year", "quarters" ];
let { name, year, quarters, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.getBusinessDataList(name, year, quarters, page);
res.success(restult);
}
/**
* 导出企业经营数据列表
* @param req
* @param res
*/
async function outPutBusinessData(req, res) {
let reqConf = {name:'String', year: 'Number', quarters: 'Number', type: 'Number'};
const NotMustHaveKeys = ["name", "year", "quarters" ];
let { name, year, quarters, type } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let {dataList, fileName} = await enterpriseAdminBiz.outPutBusinessDataList(name, year, quarters, type);
res.success({data:dataList, name:`${fileName}企业经营.xlsx`});
}
/**
* 企业填报的融资数据列表
* @param req
* @param res
*/
async function financingInfoList(req, res) {
let reqConf = {name:'String', financingRounds: 'Number', fuHuaQiInvestment: 'Number', page: 'Number'};
const NotMustHaveKeys = ["name", "financingRounds", "fuHuaQiInvestment" ];
let { name, financingRounds, fuHuaQiInvestment, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await financingAdminBiz.getEnterpriseFinancing(name, financingRounds, fuHuaQiInvestment, page);
res.success(restult);
}
/**
* 导出企业填报的融资数据列表
* @param req
* @param res
*/
async function outPutFinancingInfoList(req, res) {
let reqConf = {name:'String', financingRounds: 'Number', fuHuaQiInvestment: 'Number', type: 'Number'};
const NotMustHaveKeys = ["name", "financingRounds", "fuHuaQiInvestment" ];
let { name, financingRounds, fuHuaQiInvestment, type } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let {dataList, fileName} = await financingAdminBiz.outPutEnterpriseFinancing(name, financingRounds, fuHuaQiInvestment, type);
res.success({data:dataList, name:`${fileName}企业填报融资数据.xlsx`});
}
/**
* 企业创始团队列表
* @param req
* @param res
*/
async function initialTeamList(req, res) {
let reqConf = {name:"String", member:"String", type:"Number", page: 'Number'};
const NotMustHaveKeys = ["name", "member", "type" ];
let { name, member, type, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let restult = await enterpriseAdminBiz.getInitialTeamList(name, member, type, page);
res.success(restult);
}
/**
* 导出企业创始团队列表
* @param req
* @param res
*/
async function outPutEnterpriseInitialTeamList(req, res) {
let reqConf = {name:"String", member:"String", type:"Number", memberType: 'Number'};
const NotMustHaveKeys = ["name", "member", "memberType" ];
let { name, member, type, memberType } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let {dataList, fileName} = await enterpriseAdminBiz.outPutInitialTeamList(name, member, memberType, type);
res.success({data:dataList, name:`${fileName}企业创始团队数据.xlsx`});
}
\ No newline at end of file
......@@ -23,6 +23,8 @@ export function setRouter(httpServer) {
/**企业资质 */
httpServer.post('/enterprise/qualification/update', checkEnterpriseToken, asyncHandler(updateQualification));
httpServer.post('/enterprise/qualification/info', checkEnterpriseToken, asyncHandler(qualificationInfo));
/**资讯 */
httpServer.post('/enterprise/information/list', checkEnterpriseToken, asyncHandler(informationList));
}
......@@ -153,4 +155,10 @@ async function baseInfo(req, res) {
let result = await enterpriseBiz.enterpriseBaseInfo(Uscc);
res.success(result);
}
async function informationList(req, res) {
const Uscc = req.headers.uscc;
}
\ No newline at end of file
......@@ -19,7 +19,7 @@ export function setRouter(httpServer) {
/**3.0 */
httpServer.post('/admin/provide/enterprise/enterpriseinfo',checkInterior, asyncHandler(enterpriseInfo));
/**补录数据 */
/**补录数据 已完成 */
httpServer.post('/admin/provide/basedata/inputdata',checkInterior, asyncHandler(inputData));
httpServer.post('/admin/provide/basedata/inputenterprise202304data',checkInterior, asyncHandler(inputEnterprise202304Data));
......
......@@ -176,4 +176,15 @@ export function getSMSCode() {
*/
export function getFinancingId(uscc) {
return md5(`${uscc}${new Date().valueOf()}${Math.ceil(Math.random() * 1000)}`);
}
/**
* 获取创始团队成员id
* @param uscc
* @param name
* @returns
*/
export function getInitialTeamMemberId(uscc:string, name:string) {
return md5(`${uscc}${name}${Math.ceil(Math.random() * 1000000)}`);
}
\ No newline at end of file
......@@ -115,8 +115,8 @@ export function eccFormParam(name:string, keyTypeConf:object, param:object) {
/**
* 根据conf配置校验请求参数
* @param conf 配置
* @param param 表单
* @param conf 配置
* @param param 表单
* @param skipKeys []不必填的字段
*/
export function eccReqParamater(conf:object, param, skipKeys?) {
......
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