Commit 9b93e4e8 by Zllgogo

no message

parent 2bf63abf
......@@ -4,7 +4,7 @@
import moment = require("moment");
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import { BUILDING, CHANGETYPE, EMIGRATIONTYPE, FUHUASTATE, INCOME, INDUSTRY, STATE } from "../config/enum/enum";
import { BUILDING, CHANGETYPE, EMIGRATIONTYPE, FUHUASTATE, INCOME, INDUSTRY, OFFLINEPROMOTION, ONLINEPROMOTION, PROMOTIONTYPE, STATE } from "../config/enum/enum";
import { operationalData, selectData, selectManyTableData } from "../data/operationalData";
import { getMySqlMs, randomId } from "../tools/system";
import { changeEnumValue } from "../util/verificationEnum";
......@@ -118,41 +118,38 @@ export async function getBaseData() {
/**
* 孵化器入驻信息
*/
let entryList = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.入驻信息表, {}, []);
baseData.entryInfo = {};
entryList.forEach(entry => {
const building = changeEnumValue(BUILDING, entry.building);
baseData.entryInfo[building] = {
"入驻率": entry.occupancyRate,
"入驻企业": entry.enteredEnterprises,
};
});
let entryList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.入驻信息表, {}, [`info_enterId`, `building`, `occupancyRate`, `enteredEnterprises`]);
baseData.entryInfo = {"1":{"入驻率":"", "入驻企业":""}, "3":{"入驻率":"", "入驻企业":""}, "4":{"入驻率":"", "入驻企业":""}};
if (entryList.length) {
entryList.forEach( info => {
// let building = changeEnumValue(BUILDING, info.building);
let building = info.building;
if (!baseData.entryInfo[building]) {
baseData.entryInfo[building] = { "入驻率": "", "入驻企业": "" };
}
baseData.entryInfo[building].入驻率 = info.occupancyRate;
baseData.entryInfo[building].入驻企业 = info.enteredEnterprises;
})
}
/**
* 运营推广(次数)
*/
let promotionList = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.运营推广信息表, {}, []);
baseData.promotionInfo = {
"线上推广": "",
"抖音": "",
"小红书": "",
"视频号": "",
"线下推广": "",
"活动宣讲": "",
"三方机构合作": "",
};
promotionList.forEach(promotion => {
baseData.promotionInfo["线上推广"] += promotion.onlinePromotion || "";
baseData.promotionInfo["抖音"] += promotion.tiktok || "";
baseData.promotionInfo["小红书"] += promotion.theLittleRedBook || "";
baseData.promotionInfo["视频号"] += promotion.videoNumber || "";
baseData.promotionInfo["线下推广"] += promotion.offlinePromotion || "";
baseData.promotionInfo["活动宣讲"] += promotion.eventPromotion || "";
baseData.promotionInfo["三方机构合作"] += promotion.tripartiteInstitutionalCooperation || "";
});
let promotionList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.运营推广信息表,{}, ["opId","promotionType", "promotionApp", "promotionNum"]);
baseData.promotionInfo = {"线上推广": {}, "线下推广": {}};
if (promotionList.length) {
promotionList.forEach( info => {
let appStr = "";
if (info.promotionType == PROMOTIONTYPE.线上推广) {
appStr = changeEnumValue(ONLINEPROMOTION, info.promotionApp);
baseData.promotionInfo["线上推广"][appStr] = info.promotionNum;
} else if (info.promotionType == PROMOTIONTYPE.线下推广) {
appStr = changeEnumValue(OFFLINEPROMOTION, info.promotionApp);
baseData.promotionInfo["线下推广"][appStr] = info.promotionNum;
}
})
}
return {baseData};
}
......@@ -549,18 +546,69 @@ export async function getWorthDate() {
/**
* 雨艺孵化器数据回显
*/
// export async function getYuYiFuHua() {
// let yuyiInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器信息, {uscc:"91310115069312504K"}, []);
// let dataInfo:any = extractData(YuYiBaseDataConfig, yuyiInfo);
// //兼容一下唯一一个number
// // dataInfo.enterpriseNum = dataInfo.enterpriseNum || 0;
// return {dataInfo};
// }
export async function getYuYiFuHua() {
let yuyiInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器信息, {uscc:"91310115069312504K"}, []);
let dataInfo:any = extractData(YuYiBaseDataConfig, yuyiInfo);
//兼容一下唯一一个number
dataInfo.enterpriseNum = dataInfo.enterpriseNum || 0;
return {dataInfo};
}
// 1. 获取羽翼孵化器基本信息
let yuyiInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器信息, {uscc: "91310115069312504K"}, []);
let dataInfo: any = extractData(YuYiBaseDataConfig, yuyiInfo);
// 2. 获取孵化器入驻信息
let entryList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.入驻信息表, {}, [`info_enterId`, `building`, `occupancyRate`, `enteredEnterprises`]);
let entryInfo = {"1": {"入驻率": "", "入驻企业": ""}, "3": {"入驻率": "", "入驻企业": ""}, "4": {"入驻率": "", "入驻企业": ""}};
if (entryList.length) {
entryList.forEach(info => {
// let building = changeEnumValue(BUILDING, info.building);
let building = info.building;
if (!entryInfo[building]) {
entryInfo[building] = { "入驻率": "", "入驻企业": "" };
}
entryInfo[building].入驻率 = info.occupancyRate;
entryInfo[building].入驻企业 = info.enteredEnterprises;
});
}
// 3. 获取运营推广(次数)信息
let promotionList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.运营推广信息表, {}, ["opId", "promotionType", "promotionApp", "promotionNum"]);
let promotionInfo = {"线上推广": {}, "线下推广": {}};
if (promotionList.length) {
promotionList.forEach(info => {
let appStr = "";
if (info.promotionType == PROMOTIONTYPE.线上推广) {
appStr = changeEnumValue(ONLINEPROMOTION, info.promotionApp);
promotionInfo["线上推广"][appStr] = info.promotionNum;
} else if (info.promotionType == PROMOTIONTYPE.线下推广) {
appStr = changeEnumValue(OFFLINEPROMOTION, info.promotionApp);
promotionInfo["线下推广"][appStr] = info.promotionNum;
}
});
}
// 4. 将 entryInfo 和 promotionInfo 可以合并到 dataInfo 中
// dataInfo.entryInfo = entryInfo;
// dataInfo.promotionInfo = promotionInfo;
// 4. 组装返回数据
return {
dataInfo,
entryInfo,
promotionInfo
};
}
/**
* 雨艺孵化器基本信息修改
* @param yId
* @param entryInfo {"1号楼":{入驻率:"", 入驻企业:""}, ......}
* @param promotionInfo {"线上推广":{"活动宣讲":0, "三方机构合作":0}, "线下推广":{"活动宣讲":0, "三方机构合作":0}}
*/
export async function updateYuYi(yId, param) {
const FuncName = "雨艺孵化器基本信息修改";
......@@ -570,7 +618,33 @@ export async function updateYuYi(yId, param) {
throw new BizError(ERRORENUM.数据不存在);
}
let enterInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.入驻信息表, {info_enterId:yuyiInfo.info_enterId}, [`info_enterId`, `building`, `occupancyRate`, `enteredEnterprises`]);
if (!enterInfo || !enterInfo.info_enterId) {
throw new BizError(ERRORENUM.数据不存在);
}
let promotiondbInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.运营推广信息表, {opId:yuyiInfo.opId}, ["opId", "promotionType", "promotionApp", "promotionNum"]);
if (!promotiondbInfo || !promotiondbInfo.opId) {
throw new BizError(ERRORENUM.数据不存在);
}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.羽翼孵化器信息, param, {yId});
let entryInfo = param.entryInfo;
for (let key in entryInfo) {
let updateInfo = {occupancyRate:entryInfo[key].入驻率, enteredEnterprises:entryInfo[key].入驻企业};
let updateParam = {building:key}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.入驻信息表, updateInfo, updateParam);
}
let promotionInfo = param.promotionInfo
for (let key in promotionInfo) {
for (let app in promotionInfo[key]) {
let updateInfo = {promotionNum:promotionInfo[key][app]};
let updateParam = {promotionType:key, promotionApp:app}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.入驻信息表, updateInfo, updateParam);
}
}
// await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.入驻信息表, param, {info_enterId:yuyiInfo.info_enterId});
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.运营推广信息表, param, {opId:yuyiInfo.opId});
return {isSuccess:true};
}
......
......@@ -107,7 +107,7 @@ export async function settleInEnterpriseList(page:number, enterpriseName:string)
let filesList = ["eId", "enterpriseName", "uscc", "logonTime", "logonAddress", "mail"];
let manyTableInfo:any = {}
manyTableInfo[TABLENAME.租赁信息] = {column:["area", "unitPrice", "roomNumber", "rent", "totalPrice"], where:{} };
manyTableInfo[TABLENAME.租赁信息] = {column:["area", "building","roomNumber", "rent", "startTime", "endTime"], where:{} };
manyTableInfo[TABLENAME.企业孵化信息] = {column:["state", "startTime", "endTime"], where:{} };
manyTableInfo[TABLENAME.企业用户表] = {column:["userName", "pwd", "phone", "uId"], where:{} };
manyTableInfo[TABLENAME.入孵申请审批表] = {column:["approvalId", "changeState", "createTimeMs"], where:{"%literal%":`approval_histories.changeType = ${enumConfig.CHANGETYPE.入孵申请}`, "%limit%":1} };
......@@ -124,12 +124,14 @@ export async function settleInEnterpriseList(page:number, enterpriseName:string)
leaseTime:`${moment(info.enterprise_leases[0].startTime).format("YYYY-MM-DD")}${moment(info.enterprise_leases[0].endTime).format("YYYY-MM-DD")}`,
// leaseTimeStart:info.enterprise_leases[0].startTime || 0,
// leaseTimeEnd:info.enterprise_leases[0].endTime || 0,
leaseStart: moment(info.enterprise_leases[0].startTime).format("YYYY-MM-DD"),
leaseEnd: moment(info.enterprise_leases[0].endTime).format("YYYY-MM-DD"),
// leaseStart: moment(info.enterprise_leases[0].startTime).format("YYYY-MM-DD"),//leaseStartTime
// leaseEnd: moment(info.enterprise_leases[0].endTime).format("YYYY-MM-DD"),
leaseStartTime:info.enterprise_leases[0].startTime || 0,
leaseEndTime:info.enterprise_leases[0].endTime || 0,
fuHuaTimeStart:info.enterprise_fuhuas[0].startTime||0,
fuHuaTimeEnd:info.enterprise_fuhuas[0].endTime||0,
area:info.enterprise_leases[0].area,//租赁面积
unitPrice:info.enterprise_leases[0].unitPrice,//——暂时没用
// unitPrice:info.enterprise_leases[0].unitPrice,//——暂时没用
// roomNumber:info.enterprise_leases[0].roomNumber,
building: info.enterprise_leases[0].building || "",// 园区楼号
roomNumber: info.enterprise_leases[0].roomNumber || "",// 室号
......@@ -140,7 +142,7 @@ export async function settleInEnterpriseList(page:number, enterpriseName:string)
phone:info.enterprise_users[0].phone,//登录手机号
mail:info.mail,//邮箱地址
uId:info.enterprise_users[0].uId,
totalPrice: info.enterprise_leases[0].totalPrice, // 添加年总价字段——暂时没用
// totalPrice: info.enterprise_leases[0].totalPrice, // 添加年总价字段——暂时没用
status: info.approval_historys.changeState === enumConfig.CHANGESTATE.已驳回 ? "已驳回" : "未审核" // 状态映射 todo
});
});
......@@ -207,10 +209,14 @@ export async function getRuFu(eId:string) {
else dataInfo.endTime = "";
dataInfo.area = leaseInfo.area;
dataInfo.leaseContract = leaseInfo.leaseContract;
dataInfo.entryPlan = leaseInfo.entryPlan;
dataInfo.businessLicense = leaseInfo.businessLicense;
dataInfo.agreement = leaseInfo.agreement;
// dataInfo.leaseContract = leaseInfo.leaseContract;
// dataInfo.entryPlan = leaseInfo.entryPlan;
// dataInfo.businessLicense = leaseInfo.businessLicense;
// dataInfo.agreement = leaseInfo.agreement;
dataInfo.leaseContract = getFileNameAndFormat(leaseInfo.leaseContract);
dataInfo.entryPlan = getFileNameAndFormat(leaseInfo.entryPlan);
dataInfo.businessLicense = getFileNameAndFormat(leaseInfo.businessLicense);
dataInfo.agreement = getFileNameAndFormat(leaseInfo.agreement);
dataInfo.leaseContractModelUrl = "/yuyi/files/房屋租赁合同模板.docx";
dataInfo.entryPlanModelUrl = "/yuyi/files/孵化企业入驻计划.xlsx";
......@@ -246,7 +252,7 @@ export async function settleInEnterpriseUpdate(eId:string, param) {
uscc:param.uscc,
logonTime:param.logonTime,
logonAddress:JSON.stringify(["", "", "", param.logonAddress]),
// mail:param.mail,
mail:param.mail,
};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业基础信息表, updateInfo, {eId});
......@@ -264,10 +270,12 @@ export async function settleInEnterpriseUpdate(eId:string, param) {
//如果 param.rent 和 param.area 都存在且不为零,则计算 unitPrice 为 param.rent 除以 param.area;否则,直接使用 param.unitPrice。
unitPrice: param.rent && param.area ? param.rent / param.area : param.unitPrice,
rent:param.rent,
startTime: param.fuHuaTimeStart, //租赁开始日期
endTime: param.fuHuaTimeEndTime, //租赁结束日期
// building:param.building,
// roomNumber:param.roomNumber,
// startTime: param.fuHuaTimeStart, //租赁开始日期
// endTime: param.fuHuaTimeEndTime, //租赁结束日期
startTime:param.leaseStartTimeStart,
endTime:param.leaseEndTime,
building:param.buillding,
roomNumber:param.roomNumber,
}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.租赁信息, leaseInfo, {eId});
......@@ -358,6 +366,16 @@ export async function enterpriseRegisterExamineList(enterpriseName, page) {
return {dataList, dataCount:allResList.length};
}
// 辅助函数:获取文件名和格式
function getFileNameAndFormat(fileName: string): string {
if (fileName === "未提交") return fileName;
const parts = fileName.split('.');
if (parts.length < 2) return fileName; // 如果没有找到 . 则直接返回原字符串
const name = parts.slice(0, -1).join('.');
const format = parts.pop();
return `${name}.${format}`;
}
/**
* 入孵材料审核通过
......
......@@ -40,18 +40,18 @@ export const SettleInForUpdateConfig = {
logonAddress:{type:"String"},//注册地址
fuHuaTimeStart:{type:"Number"},//孵化开始时间
fuHuaTimeEndTime:{type:"Number"},//孵化结束时间
// leaseTimeStart:{type:"Number"},//租赁开始时间
// leaseTimeEndTime:{type:"Number"},//租赁结束时间
leaseStartTime:{type:"Number"},//租赁开始时间
leaseEndTime:{type:"Number"},//租赁结束时间
area:{type:"Number"},//面积
// unitPrice:{type:"Number"},//单价
building:{type:"String"},//楼号
buillding:{type:"String"},//楼号
roomNumber:{type:"String"},//室号
rent:{type:"Number"},//每月租金
// totalPrice:{type:"Number"},//总价
pwd:{type:"String"},
phone:{type:"String"},
userName:{type:"String"},
// mail:{type:"String"},//邮箱
mail:{type:"String"},//邮箱
uId:{type:"String"}
}
......@@ -110,24 +110,17 @@ export const YuYiBaseDataUpdateConfig = {
totalArea:{type:"String"},//孵化器总面积
zaifuArea:{type:"String"},//在孵面积
rentRate:{type:"String"},//出租率
uscc:{type:"String"},//统一信用代码
building:{type:"String"},//楼号
occupancyRate:{type:"String"},//入驻率
enteredEnterprises:{type:"String"},//入驻企业
onlinePromotion:{type:"String"},//线上推广
offlinePromotion:{type:"String"},//线下推广
tiktok:{type:"String"},//抖音
theLittleRedBook:{type:"String"},//小红书
videoNumber:{type:"String"},//视频号
eventPromotion:{type:"String"},//活动宣讲
tripartiteInstitutionalCooperation:{type:"String"},//三方机构合作
// ziyonArea:{type:"String"},//自用面积
// parkArea:{type:"String"},//新增
// industrialScale:{type:"String"},
// enterpriseNum:{type:"Number"},
// totalAssetInvestmentAmount:{type:"String"},
// numberOfInstitutionsIntroduced:{type:"String"},
// introduceInstitutionalInvestment:{type:"String"}
// uscc:{type:"String"},//统一信用代码
entryInfo:{type:"object"}, //孵化器入驻信息
promotionInfo:{type:"object"},//推广信息
// building:{type:"number"},//楼号
// occupancyRate:{type:"String"},//入驻率
// enteredEnterprises:{type:"String"},//入驻企业
// promotionType:{type:"number"},//推广类型 枚举 线上推广、线下推广
// promotionApp:{type:"number"},//推广应用 枚举 抖音、小红书、视频号
// promotionNum:{type:"number"},//推广次数
}
......
......@@ -174,9 +174,34 @@ export enum POLICYTYPE {
* 园区楼号
*/
export enum BUILDING {
一号楼 = 1,
三号楼 = 3,
四号楼 = 4,
"1号楼" = 1,
"3号楼" = 3,
"4号楼" = 4,
}
export enum PROMOTIONTYPE {
线上推广 = 1,
线下推广,
}
/**
* 线上推广
*/
export enum ONLINEPROMOTION {
视频号 = 1,
抖音,
小红书
}
/**
* 线下推广
*/
export enum OFFLINEPROMOTION {
活动宣讲 = 1,
三方机构合作
}
......
......@@ -31,15 +31,22 @@ export const YuYiBaseDataConfig = {
personCharge:{key:"负责人"},
phone:{key:"手机号码"},
synopsis:{key:"简介"},
totalArea:{key:"总面积"},
totalArea:{key:"孵化器总面积"},
zaifuArea:{key:"在孵面积"},
ziyonArea:{key:"自用面积"},
parkArea:{key:"园区面积"},//新增
enterpriseNum:{key:"企业数量"},
industrialScale:{key:"产业规模"},
totalAssetInvestmentAmount:{key:"总资产投入金额"},
numberOfInstitutionsIntroduced:{key:"引入机构数量"},
introduceInstitutionalInvestment:{key:"引入机构投资"}
rentRate:{key:"出租率"},
// ziyonArea:{key:"自用面积"},
// parkArea:{key:"园区面积"},//新增
// enterpriseNum:{key:"企业数量"},
// industrialScale:{key:"产业规模"},
// totalAssetInvestmentAmount:{key:"总资产投入金额"},
// numberOfInstitutionsIntroduced:{key:"引入机构数量"},
// introduceInstitutionalInvestment:{key:"引入机构投资"},
building:{key:"楼号"},
occupancyRate:{key:"入驻率"},
enteredEnterprises:{key:"入驻企业"},
promotionType:{key:"推广类型"},
promotionApp:{key:"推广应用"},
promotionNum:{key:"推广次数"},
}
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