Commit 88bef37f by lixinming

Merge branch 'master' of http://123.207.147.179:8888/node_server/yuyiAdminServer

# Conflicts:
#	src/config/enum/dbEnum.ts
parents a0806426 36456682
......@@ -1047,6 +1047,11 @@
"resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.2.tgz",
"integrity": "sha1-eMRQiJSYW404oNwV4ajhEHjyypM="
},
"keypress": {
"version": "0.1.0",
"resolved": "https://registry.npmmirror.com/keypress/-/keypress-0.1.0.tgz",
"integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA=="
},
"kitx": {
"version": "1.3.0",
"resolved": "https://registry.npm.taobao.org/kitx/download/kitx-1.3.0.tgz",
......@@ -1424,6 +1429,24 @@
"resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pinyin": {
"version": "4.0.0-alpha.2",
"resolved": "https://registry.npmmirror.com/pinyin/-/pinyin-4.0.0-alpha.2.tgz",
"integrity": "sha512-SED2wWr1X0QwH6rXIDgg20zS1mAk0AVMO8eM3KomUlOYzC8mNMWZnspZWhhI0M8MBIbF2xwa+5r30jTSjAqNsg==",
"requires": {
"commander": "~1.1.1"
},
"dependencies": {
"commander": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-1.1.1.tgz",
"integrity": "sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA==",
"requires": {
"keypress": "0.1.x"
}
}
}
},
"printj": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
......
......@@ -20,6 +20,7 @@
"node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1",
"officegen": "^0.6.5",
"pinyin": "^4.0.0-alpha.2",
"qs": "^6.11.0",
"request": "^2.88.0",
"svg-captcha": "^1.3.12",
......@@ -28,7 +29,6 @@
"ws": "^5.2.2",
"xml2js": "^0.4.23"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<config>
<port>9098</port>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<dbServer>http://192.168.0.105:9096</dbServer>
<imgUrl>http://192.168.0.105:9098</imgUrl>
<imgFileUrl>http://192.168.0.105:9097</imgFileUrl>
<dbServer>http://192.168.0.71:9096</dbServer>
<imgUrl>http://192.168.0.72:9098</imgUrl>
<imgFileUrl>http://192.168.0.72:9097</imgFileUrl>
<qcc>
<key>2b14555ce89346e8b96684e2e2a1c7c2</key>
<SecretKey>452AAE887A1CDCAB8C9D730BA8B8FBF0</SecretKey>
......
/**
* 企业信息
* 汇总
*
*
* */
import { ApplyForUpdateConfig, GardenNoticeUpdateConfig, PolicyUpdateConfig, RegisterUpdateConfig, SettleInForUpdateConfig } from "../config/eccParam/enterprise";
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import * as enumConfig from "../config/enum/enum";
......@@ -687,7 +684,12 @@ export async function getiprDetails(eId: string) {
}
/**
* 资质认证列表
* @param enterpriseName
* @param page
* @returns
*/
export async function qiyeRenZheng(enterpriseName, page) {
let selectParam:any = {};
if (enterpriseName) {
......@@ -735,32 +737,32 @@ export async function qiyeRenZheng(enterpriseName, page) {
let updateInfo:any = {};
for (let i = 0; i < enterprise_qualifications.length; i++) {
let item = enterprise_qualifications[i];
/**状态与时间逻辑不对的话,修改状态 */
if (item.kxTime && item.kxState != enumConfig.STATE.) {
/**状态与时间逻辑不对的话,修改状态 时间有数据,但状态为否,自动修改状态为是 */
if (item.kxTime && item.kxState != enumConfig.STATE.) {
updateInfo.kxState = enumConfig.STATE.;
item.kxState = enumConfig.STATE.;
}
if (item.zjtxTime && item.zjtxState != enumConfig.STATE.) {
if (item.zjtxTime && item.zjtxState != enumConfig.STATE.) {
updateInfo.zjtxState = enumConfig.STATE.;
item.zjtxState = enumConfig.STATE.;
}
if (item.xjrTime && item.xjrState != enumConfig.STATE.) {
if (item.xjrTime && item.xjrState != enumConfig.STATE.) {
updateInfo.xjrState = enumConfig.STATE.;
item.xjrState = enumConfig.STATE.;
}
if (item.xjrPyTime && item.xjrPyState != enumConfig.STATE.) {
if (item.xjrPyTime && item.xjrPyState != enumConfig.STATE.) {
updateInfo.xjrPyState = enumConfig.STATE.;
item.xjrPyState = enumConfig.STATE.;
}
if (item.goPublicTime && item.listedState != enumConfig.STATE.) {
if (item.goPublicTime && item.listedState != enumConfig.STATE.) {
updateInfo.listedState = enumConfig.STATE.;
item.listedState = enumConfig.STATE.;
}
if (item.gaoXinJiShuTime && item.gxjsState != enumConfig.STATE.) {
if (item.gaoXinJiShuTime && item.gxjsState != enumConfig.STATE.) {
updateInfo.gxjsState = enumConfig.STATE.;
item.gxjsState = enumConfig.STATE.;
}
if(Object.keys(updateInfo).length > 0) await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.租赁信息, updateInfo, {qId:item.qId});
if(Object.keys(updateInfo).length > 0) await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业资质, updateInfo, {qId:item.qId});
if (item.kxTime) addItem.kxTime = moment(item.kxTime).format("YYYY");
if (item.kxState) addItem.kxState = changeEnumValue(enumConfig.STATE, item.kxState);
......
......@@ -48,6 +48,13 @@ export async function enterpriseService(enterpriseName, followUpStatus, page) {
return {dataList, dataCount:allResList.length};
}
/**
* 受理
* @param esId
* @param fangKui
* @returns
*/
export async function enterpriseServiceOption(esId:string, fangKui:string) {
let selectParam:any = {esId};
let filesList = ["esId"];
......@@ -63,6 +70,14 @@ export async function enterpriseServiceOption(esId:string, fangKui:string) {
};
}
/**
* 结束
* @param esId
* @param outcome
* @param desc
* @returns
*/
export async function enterpriseServiceEnd(esId:string, outcome:number, desc:string) {
let selectParam:any = {esId};
let filesList = ["esId"];
......
/**
* 网页端企业自己申请入孵
*/
import moment = require("moment");
import { eccFormParam } from "../util/verificationParam";
import { AdminRegisterAddConfig, AdminRegisterUpdateConfig, UserRegisterAddConfig } from "../config/eccParam/enterprise";
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import { operationalData, selectData, selectManyTableData } from "../data/operationalData";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/enum/errorEnum";
import { getMySqlMs, getToken, randomId } from "../tools/system";
import { extractData } from "../util/piecemeal";
import { EnterpriseApplyForConfig } from "../config/splitResult/enterprise";
import { FUHUASTATE, RUFUSTATE, STATE } from "../config/enum/enum";
/**
* 注册
* @param phone
* @param pwd
* @returns
*/
export async function enterpriseRegister(userName:string, phone:string, pwd:string) {
/**校验密码 */
if (pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
/**校验去重 */
let userInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业用户表, {phone}, ["uId"]);
if (userInfo && userInfo.uId) throw new BizError(ERRORENUM.手机号码重复);
let addUInfo = {
uId:randomId(TABLEID.企业用户表),
userName,
phone,
pwd
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业用户表, addUInfo, {});
return {isSuccess:true};
}
/**
* 登录
* @param phone
* @param pwd
* @returns
*/
export async function enterpriseLogin(phone:string, pwd:string) {
let enterpriseUserInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业用户表, {phone}, ["uId", "phone", "pwd", "eId"]);
if (!enterpriseUserInfo || !enterpriseUserInfo.uId) throw new BizError(ERRORENUM.账号不存在);
if (enterpriseUserInfo.pwd != pwd) throw new BizError(ERRORENUM.账号或密码错误);
let updateUserInfo = {
token : getToken(enterpriseUserInfo.uId),
tokenMs : getMySqlMs()
};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业用户表, updateUserInfo, {uId:enterpriseUserInfo.uId});
let userInfo = {
userId:enterpriseUserInfo.uId,
userName:enterpriseUserInfo.userName,
phone:enterpriseUserInfo.phone,
token:updateUserInfo.token,
eId:enterpriseUserInfo.eId || ""
};
return {dataInfo:userInfo};
}
/**
* 获取入孵流程状态
* @param uId
* @returns
*/
export async function getRuFuState(uId) {
let enterpriseUserInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业用户表, {uId}, ["uId", "phone", "pwd", "eId"]);
let ruFuState = 0;
if (!enterpriseUserInfo.eId) {
ruFuState = RUFUSTATE.信息填写;
} else {
let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId:enterpriseUserInfo.eId}, ["enterpriseName", "eId", "state", "register"]);
if (enterpriseInfo.state == STATE. && enterpriseInfo.register == STATE.) ruFuState = RUFUSTATE.信息审核中;
if (enterpriseInfo.state == STATE. && enterpriseInfo.register == STATE.) {
let leaseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.租赁信息, {eId:enterpriseUserInfo.eId}, []);
if (!leaseInfo.leaseContract && !leaseInfo.entryPlan || !leaseInfo.businessLicense || !leaseInfo.agreement) ruFuState = RUFUSTATE.补充材料;
else ruFuState = RUFUSTATE.材料已提交;
}
// if (enterpriseInfo.register == 2) ruFuState = RUFUSTATE.材料审核驳回;
if (enterpriseInfo.state == STATE. && enterpriseInfo.register == STATE.) ruFuState = RUFUSTATE.材料审核完成;
}
return {ruFuState};
}
/**
* 添加信息填写
*/
export async function createRuFu(uId, param) {
const FuncName = "网页添加信息填写"
eccFormParam(FuncName, UserRegisterAddConfig, param );
let filesList = ["eId", "uscc"];
let enterpriseUserInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc:param.uscc}, filesList);
if (enterpriseUserInfo && enterpriseUserInfo.eId) {
throw new BizError(ERRORENUM.企业已存在);
}
let addEInfo = {
eId:randomId(TABLEID.企业基础信息表),
enterpriseName:param.enterpriseName,
uscc:param.uscc,
logonTime:getMySqlMs(param.logonTime),
logonAddress:JSON.stringify(["", "", "", param.logonAddress]),
mail:param.mail,//邮箱地址
state:0,
register:0
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业基础信息表, addEInfo, {});
console.log("addEInfo", addEInfo);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业用户表, {eId:addEInfo.eId}, {uId});
let fuHuaInfo = {
eId:addEInfo.eId,
fId:randomId(TABLEID.企业孵化信息),
startTime:getMySqlMs(param.fuHuaTimeStart),
endTime:getMySqlMs(param.fuHuaTimeEndTime),
state:0,
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业孵化信息, fuHuaInfo, {});
let leaseInfo = {
eId:addEInfo.eId,
leaseId:randomId(TABLEID.租赁信息),
// area:param.area,
area: param.area || null, // 可为空
unitPrice:param.unitPrice,
// roomNumber:param.roomNumber,
building: param.building|| null, // 楼号
roomNumber: param.roomNumber || null,// 室号
// startTime:getMySqlMs(param.fuHuaTimeStart), //小程序和管理后台没有填写租赁时间的位置,直接使用孵化开始时间
// endTime:getMySqlMs(param.fuHuaTimeEndTime), //小程序和管理后台没有填写租赁时间的位置,直接使用孵化结束时间
startTime: getMySqlMs(param.leaseStartTime), // 租赁开始时间
endTime: getMySqlMs(param.leaseEndTime), // 租赁结束时间
rent:param.rent,
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.租赁信息, leaseInfo, {});
let addUInfo = {
eId:addEInfo.eId,
uId:randomId(TABLEID.企业用户表),
phone:param.phone,
pwd:param.pwd,
userName:param.userName
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业用户表, addUInfo, {});
return {eId:addEInfo.eId};
}
/**
* 入孵材料回显
* @param eId
* @returns
*/
export async function getRuFu(eId:string) {
let filesList = ["eId", "uscc", "enterpriseName", "logonAddress", "logonTime"];
let enterpriseUserInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId}, filesList);
if (!enterpriseUserInfo || !enterpriseUserInfo.eId) {
throw new BizError(ERRORENUM.请先申请入孵);
}
let leaseFilesList = ["leaseId", "area", "leaseContract", "entryPlan", "businessLicense", "agreement"];
let leaseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.租赁信息, {eId}, leaseFilesList);
enterpriseUserInfo.logonAddress = JSON.parse(enterpriseUserInfo.logonAddress);
let zaifuList = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业孵化信息, {eId}, ["startTime", "endTime"]);
let dataInfo:any = extractData(EnterpriseApplyForConfig, enterpriseUserInfo);
dataInfo.logonTime = moment(enterpriseUserInfo.logonTime).format("YYYY-MM-DD");
if (zaifuList.startTime) dataInfo.startTime = new Date(zaifuList.startTime).valueOf(); //孵化开始时间
else dataInfo.startTime = "";
if (zaifuList.endTime) dataInfo.endTime = new Date(zaifuList.endTime).valueOf(); //孵化结束时间
else dataInfo.endTime = "";
// if (zaifuList.startTime || zaifuList.endTime) dataInfo.leaseTime = `${moment(zaifuList.startTime).format("YYYY-MM-DD")}至${moment(zaifuList.endTime).format("YYYY-MM-DD")}`;
dataInfo.area = leaseInfo.area;
dataInfo.leaseContract = leaseInfo.leaseContract;
dataInfo.entryPlan = leaseInfo.entryPlan;
dataInfo.businessLicense = leaseInfo.businessLicense;
dataInfo.agreement = leaseInfo.agreement;
dataInfo.leaseContractModelUrl = "/yuyi/files/房屋租赁合同模板.docx";
dataInfo.entryPlanModelUrl = "/yuyi/files/孵化企业入驻计划.xlsx";
dataInfo.businessLicenseUrl = "/yuyi/files/营业执照复印件.docx";
dataInfo.agreementModelUrl = "/yuyi/files/孵化协议模板.docx";
return {dataInfo};
}
/**
* 编辑入孵材料
* @param eId
* @param param
* @returns
*/
export async function updateRuFu(eId:string, param) {
const FuncName = "网页修改入驻信息";
eccFormParam(FuncName, AdminRegisterUpdateConfig, param );
let filesList = ["eId", "enterpriseName", "uscc", "logonTime", "state"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId}, filesList);
if (!resInfo || !resInfo.eId) {
throw new BizError(ERRORENUM.数据不存在);
}
if (resInfo.state == 1) {
throw new BizError(ERRORENUM.已审核请前往小程序登录)
}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.租赁信息, param, {eId});
return {isSuccess:true};
}
......@@ -10,62 +10,76 @@ import { getMySqlMs, randomId } from "../tools/system";
import { BizError } from "../util/bizError";
import { eccFormParam } from "../util/verificationParam";
import { PolicyUpdateConfig } from "../config/eccParam/enterprise";
import { POLICYTYPE } from "../config/enum/enum";
import { changeEnumValue } from "../util/verificationEnum";
export async function enterprisePolicyList(keywords:string, state:number, page:number) {
let selectParam:any = {};
/**
* 政策列表
* @param keywords 模糊搜索关键词
* @param state 筛选状态: 1=进行中 2=往期 其他=全部
* @param policyType 筛选政策类型: 1=财政补贴 2=资质申报 3=政策扶持
* @param page 页码
*/
export async function enterprisePolicyList(keywords:string, state:number, policyType:number, page:number) {
let selectParam:any = {};
if (keywords) selectParam.title = {"%like%":keywords};
let filesList = ["poId", "title", "source", "createTimeMs", "closeTimeMs", "isPermanent","coverImg"];
if (policyType) selectParam.policyType = policyType;//政策类型
let filesList = ["poId", "title", "source", "createTimeMs", "closeTimeMs", "isPermanent","coverImg" ,"policyType"];
let resList = await selectData(OPERATIONALDATATYPE.分页查询, TABLENAME.政策表, selectParam, filesList, page);
let dataCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.政策表, selectParam, null);
let dataList = [];
const now = moment().valueOf(); // 获取当前时间戳
resList.forEach(info => {
let closeTimeMs = info.closeTimeMs;
if (info.isPermanent == 1) closeTimeMs = '永久有效';
if (!info.closeTimeMs) closeTimeMs = "-";
// 格式化日期前检查closeTimeMs是否为'永久有效'或'-'
let formattedCloseTimeMs = closeTimeMs === '永久有效' || closeTimeMs === '-' ? closeTimeMs : moment(closeTimeMs).format("YYYY-MM-DD");
// 判断是否为永久有效政策
let formattedCreateTime = "-";
if (info.isPermanent == 1) formattedCreateTime = "永久有效";
else formattedCreateTime = moment(info.closeTimeMs).format("YYYY-MM-DD");
// 判断政策是进行中还是往期
let status = '';
if (info.isPermanent == 1) {
status = '进行中';
} else if (closeTimeMs === '-') {
status = '进行中';
status = '正在进行';
} else {
const policyEndTime = moment(closeTimeMs).valueOf();
status = policyEndTime >= now ? '进行中' : '往期';
if (info.closeTimeMs > getMySqlMs()) {
status = '正在进行';
}
if (getMySqlMs() > info.closeTimeMs) {
status = '已结束';
}
}
if (state == 1) {
if (info.isPermanent == 1 || closeTimeMs > getMySqlMs()) {
if (info.isPermanent == 1 || info.closeTimeMs > getMySqlMs()) {
dataList.push({
poId:info.poId,
title:info.title,
source:info.source,
createTimeMs: info.createTimeMs ? moment(info.createTimeMs).format("YYYY-MM-DD") : "-",
closeTimeMs:formattedCloseTimeMs,
closeTimeMs:formattedCreateTime,
isPermanent: info.isPermanent,
policyType: changeEnumValue(POLICYTYPE, info.policyType),//政策类型
//图片
coverImg:JSON.parse(info.coverImg),
//coverImg:info.coverImg ? JSON.parse(info.coverImg) : [],
status, // 发布状态
});
}
} else if (state == 2) {
if (info.isPermanent == 0 && getMySqlMs() > closeTimeMs) {
if (info.isPermanent == 0 && getMySqlMs() > info.closeTimeMs) {
dataList.push({
poId:info.poId,
title:info.title,
source:info.source,
createTimeMs: info.createTimeMs ? moment(info.createTimeMs).format("YYYY-MM-DD") : "-",
closeTimeMs:formattedCloseTimeMs,
closeTimeMs:formattedCreateTime,
isPermanent: info.isPermanent,
policyType: changeEnumValue(POLICYTYPE, info.policyType),//政策类型
//图片
coverImg:JSON.parse(info.coverImg),
//coverImg:info.coverImg ? JSON.parse(info.coverImg) : [],
status, // 发布状态
});
}
} else {
......@@ -74,24 +88,36 @@ export async function enterprisePolicyList(keywords:string, state:number, page:n
title:info.title,
source:info.source,
createTimeMs: info.createTimeMs ? moment(info.createTimeMs).format("YYYY-MM-DD") : "-",
closeTimeMs:formattedCloseTimeMs,
closeTimeMs:formattedCreateTime,
isPermanent: info.isPermanent,
policyType: changeEnumValue(POLICYTYPE, info.policyType),//政策类型
//图片
coverImg:JSON.parse(info.coverImg),
//coverImg:info.coverImg ? JSON.parse(info.coverImg) : [],
status, // 发布状态
});
}
});
return {dataList, dataCount};
}
export async function enterprisePolicyInfo(poId:string) {
let filesList = ["poId", "title", "source", "createTimeMs", "closeTimeMs", "isPermanent", "coverImg", "desc"];
let filesList = ["poId", "title", "source", "createTimeMs", "closeTimeMs", "isPermanent", "coverImg", "desc", "policyType"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.政策表, {poId}, filesList);
let status = '';
if (resInfo.isPermanent == 1) {
status = '正在进行';
} else if (resInfo.closeTimeMs > getMySqlMs()) {
status = '正在进行';
} else {
status = '已结束';
}
let dataInfo = {
title:resInfo.title,
source:resInfo.source,
......@@ -99,9 +125,13 @@ export async function enterprisePolicyInfo(poId:string) {
coverImg:resInfo.coverImg ? JSON.parse(resInfo.coverImg) : [],
// closeTimeMs:new Date(resInfo.closeTimeMs).valueOf(),
closeTimeMs: resInfo.closeTimeMs ? new Date(resInfo.closeTimeMs).valueOf() : null,
isPermanent:resInfo.isPermanent
isPermanent:resInfo.isPermanent,
policyType:resInfo.policyType,//政策类型
// policyType: changeEnumValue(POLICYTYPE, resInfo.policyType),
status, // 发布状态
};
return {dataInfo};
}
......@@ -125,6 +155,8 @@ export async function enterprisePolicyUpdate(poId:string, param) {
if (!param.coverImg) param.coverImg = '[]';
else param.coverImg = JSON.stringify(param.coverImg);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.政策表, param, {poId});
return {isSuccess:true};
......@@ -140,6 +172,7 @@ export async function enterprisePolicyAdd( param) {
else param.coverImg = JSON.stringify(param.coverImg);
param.poId = randomId(TABLEID.政策表);
param.createTimeMs = getMySqlMs();
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.政策表, param, {});
return {isSuccess:true};
......
......@@ -21,7 +21,8 @@ export const PolicyUpdateConfig = {
source:{type:"String"},// 来源
coverImg:{type:"[String]"},// 图片
closeTimeMs:{type:"Number"},// 关闭时间
isPermanent:{type:"Number"}//是否永久有效
isPermanent:{type:"Number"},//是否永久有效
policyType:{type:"Number"},// 政策类型
}
......@@ -39,14 +40,18 @@ export const SettleInForUpdateConfig = {
logonAddress:{type:"String"},//注册地址
fuHuaTimeStart:{type:"Number"},//孵化开始时间
fuHuaTimeEndTime:{type:"Number"},//孵化结束时间
leaseStartTime:{type:"Number"},//租赁开始时间
leaseEndTime:{type:"Number"},//租赁结束时间
area:{type:"Number"},//面积
// unitPrice:{type:"Number"},//单价
building:{type:"String"},//楼号
roomNumber:{type:"String"},//室号
rent:{type:"Number"},//每月租金
// totalPrice:{type:"Number"},//总价
pwd:{type:"String"},
phone:{type:"String"},
userName:{type:"String"},
mail:{type:"String"},//邮箱
uId:{type:"String"}
}
......@@ -61,27 +66,24 @@ export const RegisterUpdateConfig = {
}
export const AdminRegisterAddConfig = {
// enterpriseName:{type:"String"},//企业名称
// uscc:{type:"String"},//统一信用代码
// logonTime:{type:"Number"},//注册日期
// logonAddress:{type:"String"},//注册地址
// fuHuaTimeStart:{type:"Number"},//孵化开始时间
// fuHuaTimeEndTime:{type:"Number"},//孵化结束时间
// area:{type:"Number"},//面积
enterpriseName:{type:"String"},
uscc:{type:"String"},//信用代码
logonTime:{type:"Number"},//注册时间
logonAddress:{type:"String"},//注册地址
fuHuaTimeStart:{type:"Number"},//孵化开始时间
fuHuaTimeEndTime:{type:"Number"},//孵化结束时间
area:{type:"Number"},//面积
enterpriseName:{type:"String",required: true, message: '企业名称不能为空'},//企业名称
uscc:{type:"String",required: true, message: '统一信用代码不能为空'},//信用代码
logonTime:{type:"Number",required: true, message: '注册时间不能为空'},//注册时间
logonAddress:{type:"String",required: true, message: '注册地址不能为空'},//注册地址
fuHuaTimeStart:{type:"Number",required: true, message: '孵化开始时间不能为空'},//孵化开始时间
fuHuaTimeEndTime:{type:"Number",required: true, message: '孵化结束时间不能为空'},//孵化结束时间
area:{type:"Number", required: false},//面积非必填
// unitPrice:{type:"Number"},//单价
roomNumber:{type:"String"},//室号
rent:{type:"Number"},//每月租金
building: { type: 'string', required: false }, // 租赁楼号非必填
roomNumber:{type:"String", required: false},//室号非必填
rent:{type:"Number",required: true, message: '每月租金不能为空'},//每月租金
// totalPrice:{type:"Number"},//总价
pwd:{type:"String"},
phone:{type:"String"},
userName:{type:"String"}
pwd:{type:"String",required: true, message: '密码不能为空'},
phone:{type:"String",required: true, message: '手机号码不能为空'},
userName:{type:"String",required: true, message: '用户名不能为空'},
leaseStartTime: { type: 'Number', required: true, message: '租赁开始时间不能为空' },
leaseEndTime: { type: 'Number', required: true, message: '租赁结束时间不能为空' },
mail: { type: 'string', required: true, message: '邮箱地址不能为空' },
}
......@@ -105,16 +107,54 @@ export const YuYiBaseDataUpdateConfig = {
personCharge:{type:"String"},//负责人
phone:{type:"String"},//手机号码
synopsis:{type:"String"},//简介
totalArea:{type:"String"},//总面积
totalArea:{type:"String"},//孵化器总面积
zaifuArea:{type:"String"},//在孵面积
ziyonArea:{type:"String"},//自用面积
parkArea:{type:"String"},//新增
industrialScale:{type:"String"},
enterpriseNum:{type:"Number"},
totalAssetInvestmentAmount:{type:"String"},
numberOfInstitutionsIntroduced:{type:"String"},
introduceInstitutionalInvestment:{type:"String"}
rentRate:{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"},//推广次数
}
export const UserRegisterAddConfig = {
enterpriseName:{type:"String", required: true, message: '企业名称不能为空'},
uscc:{type:"String",required: true, message: '统一信用代码不能为空'},//信用代码
logonTime:{type:"Number", required: true, message: '注册时间不能为空'},//注册时间
logonAddress:{type:"String", required: true, message: '注册地址不能为空'},//注册地址
fuHuaTimeStart:{type:"Number", required: true, message: '孵化开始时间不能为空'},//孵化开始时间
fuHuaTimeEndTime:{type:"Number", required: true, message: '孵化结束时间不能为空'},//孵化结束时间
rent:{type:"Number", required: true, message: '每月租金不能为空'},//每月租金
leaseStartTime: { type: 'string', required: true, message: '租赁开始时间不能为空' },
leaseEndTime: { type: 'string', required: true, message: '租赁结束时间不能为空' },
mail: { type: 'string', required: true, message: '邮箱地址不能为空' },
userName: { type: 'string', required: true, message: '联系人不能为空' },
phone: { type: 'string', required: true, message: '登录手机号码不能为空' },
pwd: { type: 'string', required: true, message: '登录密码不能为空' },
building: { type: 'string', required: false }, // 租赁楼号非必填
roomNumber: { type: 'string', required: false }, // 租赁室号非必填
area: { type: 'number', required: false }, // 租赁面积非必填
}
/**
* 备份
*/
// export const UserRegisterAddConfig = {
// enterpriseName:{type:"String"},
// uscc:{type:"String"},//信用代码
// logonTime:{type:"Number"},//注册时间
// logonAddress:{type:"String"},//注册地址
// fuHuaTimeStart:{type:"Number"},//孵化开始时间
// fuHuaTimeEndTime:{type:"Number"},//孵化结束时间
// area:{type:"Number"},//面积
// roomNumber:{type:"String"},//室号
// rent:{type:"Number"},//每月租金
// }
\ No newline at end of file
......@@ -51,7 +51,11 @@ export enum TABLENAME {
资质证书 = "certification",
失信核查 = "dishonesty",
严重违法犯罪 = "break_the_law",
对外投资 = "overseas_investment"
对外投资 = "overseas_investment",
入孵申请审批表 ='approval_history',
入驻信息表 = "info_enter",
运营推广信息表 = "info_operation_promotion",
}
export enum TABLEID {
......@@ -87,5 +91,9 @@ export enum TABLEID {
资质证书 = "cc",
失信核查 = "dis",
严重违法犯罪 = "bt",
对外投资 = "ot"
对外投资 = "ot",
入孵申请审批表 = 'ah',
入驻信息表 = "ei",
运营推广信息表 = "opi",
}
\ No newline at end of file
......@@ -161,6 +161,50 @@ export enum FINANCINGROUNDS {
}
/**
* 政策类型
*/
export enum POLICYTYPE {
财政补贴 = 1,
资质申报 = 2,
政策扶持 = 3
}
/**
* 园区楼号
*/
export enum BUILDING {
"1号楼" = 1,
"3号楼" = 3,
"4号楼" = 4,
}
export enum PROMOTIONTYPE {
线上推广 = 1,
线下推广,
}
/**
* 线上推广
*/
export enum ONLINEPROMOTION {
视频号 = 1,
抖音,
小红书
}
/**
* 线下推广
*/
export enum OFFLINEPROMOTION {
活动宣讲 = 1,
三方机构合作
}
export enum OUTCOME {
未解决 = 0,
已解决
......@@ -169,7 +213,27 @@ export enum OUTCOME {
export enum STATE {
= 0,
,
}
/**
* 入孵申请审批历史-审批状态
*/
export enum CHANGESTATE {
未审核 = 0,//未审核
已通过 = 1,//已通过
已驳回 = 2,
重新提交
}
/**
* 入孵申请审批历史-审批类型
*/
export enum CHANGETYPE {
入孵申请 = 1,
入孵材料审批 = 2
}
......@@ -219,7 +283,16 @@ export enum IPRTYPECLIENTZL {
}
export enum RUFUSTATE {
信息填写 = 1,
信息审核中 = 2,
信息审核成功 = 3,
信息审核失败 = 4,
补充材料 = 5,
材料已提交 = 6,
// 材料审核驳回 = 7,
材料审核完成 = 7
}
export enum RISKTYPE {
严重违法失信 = 1510,
......
......@@ -33,7 +33,10 @@ export enum ERRORENUM {
用户已存在,
手机号码重复,
数据库错误,
该企业已迁出
该企业已迁出,
账号不存在,
密码只能由618位字符和数字组成,
请上传所有入孵材料
}
export enum ERRORCODEENUM {
......
......@@ -7,8 +7,10 @@ export enum ENTERPRISEBASE {
注册时间 = "logonTime",
注册地址 = "logonAddress",
企业规模 = "qiYeGuiMo",
孵化时间 = "fuHuaTime",
租赁时间 = "startTime",
租赁面积 = "area",
楼号 = "building",
室号 = "roomNumber"
}
......@@ -59,8 +61,11 @@ export enum ENTERPRISEBASEMOVEOUT {
迁出类型 = "moveOutType",
注册地址 = "logonAddress",
企业规模 = "qiYeGuiMo",
孵化时间 = "fuHuaTime",
租赁时间 = "startTime",
租赁面积 = "area"
租赁面积 = "area",
楼号 = "building",
室号 = "roomNumber"
}
......@@ -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:"推广次数"},
}
......@@ -24,6 +24,9 @@ export function setRouter(httpServer) {
httpServer.post('/admin/enterprise/settlein/pass', checkUser, asyncHandler(settleInPass));
httpServer.post('/admin/enterprise/settlein/update', checkUser, asyncHandler(settleUpdate));
httpServer.post('/admin/enterprise/settlein/out', checkUser, asyncHandler(settleInOut));
httpServer.post('/admin/fuhua/rufu/add', checkUser, asyncHandler(addRuFu));
httpServer.post('/admin/fuhua/rufu/info', checkUser, asyncHandler(getRuFu));
httpServer.post('/admin/fuhua/rufu/update', checkUser, asyncHandler(updateRuFu));//
//审核
httpServer.post('/admin/enterprise/settlein/examine/list', checkUser, asyncHandler(examineSettleIn));
httpServer.post('/admin/enterprise/settlein/examine/pass', checkUser, asyncHandler(examineSettleInPass));//入孵材料审核 通过
......@@ -235,8 +238,8 @@ async function enterpriseLogout(req, res) {
*/
async function policyList(req, res) {
const UserInfo = req.userInfo;
let {keywords, state, page } = req.body
let result = await zhengCeBiz.enterprisePolicyList(keywords, state, page);
let {keywords ,state ,policyType ,page } = req.body
let result = await zhengCeBiz.enterprisePolicyList(keywords ,state ,policyType ,page);
res.success(result);
}
......@@ -333,8 +336,8 @@ async function outPutTalentList(req, res) {
*/
async function enterpriseList(req, res) {
const UserInfo = req.userInfo;
let {enterpriseName, page } = req.body
let result = await zaiFuBiz.enterpriseList(enterpriseName, page);
let {enterpriseName, page, logonStartTime, logonEndTime, startTime, endTime, building } = req.body
let result = await zaiFuBiz.enterpriseList(enterpriseName, page, logonStartTime, logonEndTime, startTime, endTime, building);
res.success(result);
}
......@@ -426,7 +429,9 @@ async function enterpriseDetails(req, res) {
* @param res
*/
async function dwEnterpriseList(req, res) {
let {enterpriseName, type, files } = req.body
// let {enterpriseName, type, files,logonStartTime, logonEndTime, startTime,endTime, building } = req.body
// let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files,logonStartTime, logonEndTime, startTime,endTime, building );
let {enterpriseName, type, files} = req.body
let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files);
res.success(result);
......@@ -763,6 +768,45 @@ async function settleInOut(req, res) {
/**
* 添加入孵企业
* @param req
* @param res
*/
async function addRuFu(req, res) {
let { param } = req.body;
let result = await ruFuBiz.createRuFu(param);
res.success(result);
}
/**
* 企业入孵材料回显
* @param req
* @param res
*/
async function getRuFu(req, res) {
let { eId } = req.body
let result = await ruFuBiz.getRuFu(eId);
res.success(result);
}
/**
* 管理员编辑企业材料
* @param req
* @param res
*/
async function updateRuFu(req, res) {
let { eId, param } = req.body
let result = await ruFuBiz.updateRuFu(eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
......
......@@ -4,7 +4,7 @@
import * as asyncHandler from 'express-async-handler';
import { checkEnterpriseUser, checkInterior, checkUser } from '../middleware/user';
import { getMySqlMs, randomId } from '../tools/system';
import { getMySqlMs, getPinyinInitials, randomId } from '../tools/system';
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from '../config/enum/dbEnum';
import { changeEnumValue } from '../util/verificationEnum';
import { DEGREE, FUHUASTATE, IPRALLTYPE, ZZMM } from '../config/enum/enum';
......@@ -101,10 +101,11 @@ export async function data1210(req, res) {
let qccInfo = dataMap[enterpriseName];
let eId = randomId(TABLEID.企业基础信息表);
let pinyinName = getPinyinInitials(qccInfo.enterpriseName)
let enterpriseInfo = {//基础信息表
eId,
enterpriseName:qccInfo.enterpriseName,
pinyinName,
RAS:qccInfo.RAS,
zhuceziben:qccInfo.zhuceziben,
shijiaoziben:qccInfo.shijiaoziben,
......@@ -137,6 +138,8 @@ export async function data1210(req, res) {
leaseId:randomId(TABLEID.租赁信息),
eId,
area:subList[4] ? subList[4] : 0,
building:subList[45] || '',
// roomNumber:subList[4] || '',
roomNumber:subList[3] || '',
bankName:subList[18] || '',
};
......
......@@ -10,9 +10,6 @@ export function setRouter(httpServer) {
httpServer.post('/admin/fuhua/operate', checkUser, asyncHandler(operateData));
httpServer.post('/admin/fuhua/risk', checkUser, asyncHandler(riskData));
httpServer.post('/admin/fuhua/worth', checkUser, asyncHandler(worthDate));
httpServer.post('/admin/fuhua/rufu/add', checkUser, asyncHandler(addRuFu));
httpServer.post('/admin/fuhua/rufu/info', checkUser, asyncHandler(getRuFu));
httpServer.post('/admin/fuhua/rufu/update', checkUser, asyncHandler(updateRuFu));//
httpServer.post('/admin/fuhua/yuyi/info', checkUser, asyncHandler(yuYiRuFu));
httpServer.post('/admin/fuhua/yuyi/update', checkUser, asyncHandler(updateYuYi));
}
......@@ -68,45 +65,6 @@ async function worthDate(req, res) {
/**
* 添加入孵企业
* @param req
* @param res
*/
async function addRuFu(req, res) {
let { param } = req.body;
let result = await fuhuaBiz.createRuFu(param);
res.success(result);
}
/**
* 企业入孵材料回显
* @param req
* @param res
*/
async function getRuFu(req, res) {
let { eId } = req.body
let result = await fuhuaBiz.getRuFu(eId);
res.success(result);
}
/**
* 管理员编辑企业材料
* @param req
* @param res
*/
async function updateRuFu(req, res) {
let { eId, param } = req.body
let result = await fuhuaBiz.updateRuFu(eId, param);
res.success(result);
}
/**
* 雨艺孵化器基本信息回显
*/
async function yuYiRuFu(req, res) {
......
......@@ -25,6 +25,9 @@ const config = {
"/public/output/enterprisemoveout":outputEnumConfig.ENTERPRISEBASEMOVEOUT,
"/public/iprtypeclientqt":enumConfig.IPRTYPECLIENTQT,// 新增知识产权类型
"/public/iprtypeclientzl":enumConfig.IPRTYPECLIENTZL,// 新增知识产权专利
"/public/policytype":enumConfig.POLICYTYPE,// 政策文件类型
"/public/building":enumConfig.BUILDING,// 园区楼号
// "/public/output/basedata":outputEnumConfig.BASEDATA,
......
......@@ -6,6 +6,7 @@ import * as publicRouters from './public';
import * as enterpriseInfoRouters from './admin';
import * as fuhuaRouters from './fuhua';
import * as dbInitRouters from './dbinit';
import * as userRuFuRouters from './userRuFu';
export function setRouter(httpServer){
/**下拉框等公用 路由 */
publicRouters.setRouter(httpServer);
......@@ -15,4 +16,6 @@ export function setRouter(httpServer){
fuhuaRouters.setRouter(httpServer);
dbInitRouters.setRouter(httpServer);
userRuFuRouters.setRouter(httpServer);
}
\ No newline at end of file
/**
* 企业网页填报入孵申请
*/
import * as asyncHandler from 'express-async-handler';
import * as userRuFuBiz from '../biz/userRuFu';
export function setRouter(httpServer) {
httpServer.post('/admin/enterprise/rufu/register', asyncHandler(register));
httpServer.post('/admin/enterprise/rufu/login', asyncHandler(login));
httpServer.post('/admin/enterprise/rufu/rufustate', asyncHandler(ruFuState));
httpServer.post('/admin/enterprise/rufu/add', asyncHandler(addRuFu));
httpServer.post('/admin/enterprise/rufu/info', asyncHandler(getRuFu));
httpServer.post('/admin/enterprise/rufu/update', asyncHandler(updateRuFu));
}
/**
* 注册
* @param req
* @param res
*/
async function register(req, res) {
let {userName, phone, pwd } = req.body
let result = await userRuFuBiz.enterpriseRegister(userName, phone, pwd);
res.success(result);
}
/**
* 登录
* @param req
* @param res
*/
async function login(req, res) {
let {phone, pwd } = req.body
let result = await userRuFuBiz.enterpriseLogin(phone, pwd);
res.success(result);
}
/**
* 登录
* @param req
* @param res
*/
async function ruFuState(req, res) {
let {uId } = req.body
let result = await userRuFuBiz.getRuFuState(uId);
res.success(result);
}
/**
* 添加入孵企业
* @param req
* @param res
*/
async function addRuFu(req, res) {
let { uId, param } = req.body;
let result = await userRuFuBiz.createRuFu(uId, param);
res.success(result);
}
/**
* 企业入孵材料回显
* @param req
* @param res
*/
async function getRuFu(req, res) {
let { eId } = req.body
let result = await userRuFuBiz.getRuFu(eId);
res.success(result);
}
/**
* 管理员编辑企业材料
* @param req
* @param res
*/
async function updateRuFu(req, res) {
let { eId, param } = req.body
let result = await userRuFuBiz.updateRuFu(eId, param);
res.success(result);
}
......@@ -5,8 +5,7 @@
*/
import moment = require("moment");
import { TABLEID } from "../config/enum/dbEnum";
import pinyin from 'pinyin';
const md5 = require("md5");
......@@ -77,4 +76,22 @@ export function getMySqlMs(time?) {
export function randomCode() {
return `${Math.ceil(Math.random()*10000)}`
}
\ No newline at end of file
}
/**
* 转换名称为拼音首字母
* @param name
* @returns
*/
export function getPinyinInitials(name) {
const result = pinyin(name, {
style: pinyin.STYLE_FIRST_LETTER, // 只获取首字母
heteronym: false // 不启用多音字模式
});
// 将二维数组转换为一维字符串,如 "阿里巴巴" -> "albb"
return result.map(item => item[0].charAt(0)).join('').toUpperCase();
}
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