Commit b133fba0 by zhangzhencai

no message

parent 537b6516
<config>
<port>9099</port>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<dbServer>http://192.168.0.105:40012</dbServer>
<dbServer>http://127.0.0.1:9096</dbServer>
</config>
\ No newline at end of file
/**
* 企业信息
* 汇总
*
*
* 企业信息汇总
* */
import { EnterpriseAwardUpdateConfig, EnterpriseCanBaoUpdateConfig, EnterpriseFaRenInfoUpdateConfig, EnterpriseFinancingUpdateConfig, EnterpriseInfomationUpdateConfig, EnterpriseIPRUpdateConfig, EnterpriseManageInfoAddConfig, EnterpriseManageInfoUpdateConfig, EnterprisePatentUpdateConfig, EnterpriseQualificationUpdateConfig, EnterpriseServiceUpdateConfig, EnterpriseTeamUpdateConfig } from "../config/eccParam/enterprise";
import { EnterpriseFaRenInfoUpdateConfig, EnterpriseInfomationUpdateConfig, EnterpriseServiceUpdateConfig } from "../config/eccParam/enterprise";
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import * as enumConfig from "../config/enum/enum";
import { EnterpriseBaseResConfig, EnterpriseFaRenInfoResConfig, EnterpriseInfomationResConfig, EnterpriseLeaseInfoResConfig, EnterpriseQualificationInfoResConfig } from "../config/splitResult/enterprise";
......@@ -22,11 +18,11 @@ import moment = require("moment");
//==登录登出
//企业用户表没有存uscc字段,先查询到企业eId,然后到用户表查询密码判断是否登录成功
export async function enterpriseLogin(uscc:string, pwd:string) {
let dbInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc}, ["eId"]);
export async function enterpriseLogin(phone:string, pwd:string) {
// let dbInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc}, ["eId"]);
let filesList = ["userName", "eId", "pwd", "uId"];
let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业用户表, {eId:dbInfo.eId}, filesList);
let filesList = ["userName", "eId", "pwd", "uId", "phone"];
let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业用户表, {phone}, filesList);
if (!enterpriseInfo || !enterpriseInfo.eId) {
throw new BizError(ERRORENUM.账号或密码错误);
......@@ -45,6 +41,7 @@ export async function enterpriseLogin(uscc:string, pwd:string) {
let userInfo = {
userId:enterpriseInfo.uId,
userName:enterpriseInfo.userName,
phone:enterpriseInfo.phone,
token:updateUserInfo.token,
};
......@@ -66,12 +63,40 @@ export async function enterpriseLogout(uId) {
}
/**
* 登录手机号绑定的其他企业列表
* @param phone
* @returns
*/
export async function enterpriseByPhone(phone:string) {
let manyTableInfo:any = {};
manyTableInfo[TABLENAME.企业基础信息表] = {column: ["enterpriseName", "uscc"], where:{} };
let filesList = ["userName", "eId"];
let enterpriseInfo = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业用户表, {phone}, filesList, manyTableInfo);
let dataList = [];
enterpriseInfo.forEach( info => {
let {enterprise} = info;
dataList.push({
enterpriseName:enterprise.enterpriseName,
eId:info.eId,
uscc:enterprise.uscc
});
})
return dataList;
}
//===首页
export async function homePage(eId:string) {
let filesList = ["enterpriseName", "eId"];
let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId}, filesList);
let canBaoFileList = ["annual", "zhuanKe", "benKe", "yanJiuSheng", "boShi", "qiTa"];
let canBaoFileList = ["annual", "zhuanKe", "benKe", "shuoshi", "boShi", "qiTa"];
let canBaoInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {eId}, canBaoFileList);
canBaoInfo.sort( (a, b) => {return new Date(b.annual).valueOf() - new Date(a.annual).valueOf()});
......@@ -80,20 +105,31 @@ export async function homePage(eId:string) {
if (canBaoInfo[0]) {
if (canBaoInfo[0].zhuanKe) chongYeRenYuan += canBaoInfo[0].zhuanKe;
if (canBaoInfo[0].benKe) chongYeRenYuan += canBaoInfo[0].benKe;
if (canBaoInfo[0].yanJiuSheng) chongYeRenYuan += canBaoInfo[0].yanJiuSheng;
if (canBaoInfo[0].shuoshi) chongYeRenYuan += canBaoInfo[0].shuoshi;
if (canBaoInfo[0].boShi) chongYeRenYuan += canBaoInfo[0].boShi;
if (canBaoInfo[0].qiTa) chongYeRenYuan += canBaoInfo[0].qiTa;
}
canBaoInfo.sort( (a, b) => {return new Date(b.annual).valueOf() - new Date(a.annual).valueOf()});
//只返回前五条
let zhengCeInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.政策表, {isPermanent:1}, {}, 1, 5);
//只返回前五条改为3条
let zhengCeInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.政策表, {isPermanent:1}, {}, 1, 3);
let zhengCeList = [];
zhengCeInfo.forEach(info => {
let {poId, title, source, createTimeMs, coverImg} = info;
zhengCeList.push( {poId, title, source, createTimeMs:moment(createTimeMs).format("YYYY-MM-DD"),
coverImg:coverImg ? JSON.parse(coverImg)[0] :''
let {poId, title, source, createTimeMs,closeTimeMs, coverImg,isPermanent} = info;
let coverImgDefault = JSON.parse(coverImg)[0];
if (!coverImgDefault) coverImgDefault = "/yuyi/files/默认图片.png";
// 判断是否为永久有效政策
let formattedCloseTime = isPermanent ? "永久有效" : moment(closeTimeMs).format("YYYY-MM-DD");
zhengCeList.push( {
poId,
title,
source,
createTimeMs,
closeTimeMs:formattedCloseTime,
coverImg:coverImgDefault
});
})
let dataInfo = {
......@@ -107,13 +143,16 @@ export async function homePage(eId:string) {
}
let thisYear = new Date().getFullYear();
let jysjFile = ["BI", "TXP", "RD", "mId"];
let thisYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, state:1, annual:getMySqlMs(`${thisYear}-01-01 00:00:00`)}, jysjFile);
let jysjFile = ["BI", "TXP", "RD", "mId","annual","quarter"];
let thisYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, state:1, annual:getMySqlMs(`${thisYear}-01-01 00:00:00`)},jysjFile);
if (thisYearjJysjInfo && thisYearjJysjInfo.mId) {
dataInfo.manage.thisYear.BI = !isNaN(thisYearjJysjInfo.BI) ? thisYearjJysjInfo.BI : "未填报";
dataInfo.manage.thisYear.TXP = !isNaN(thisYearjJysjInfo.TXP) ? thisYearjJysjInfo.TXP : "未填报";
dataInfo.manage.thisYear.RD = !isNaN(thisYearjJysjInfo.RD) ? thisYearjJysjInfo.RD : "未填报";
}
let lastYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, state:1, annual:getMySqlMs(`${thisYear-1}-01-01 00:00:00`)}, jysjFile);
if (lastYearjJysjInfo && lastYearjJysjInfo.mId) {
dataInfo.manage.lastYear.BI = !isNaN(lastYearjJysjInfo.BI) ? lastYearjJysjInfo.BI : "未填报";
......@@ -127,55 +166,59 @@ export async function homePage(eId:string) {
}
export async function taskList(eId:string, year, state) {
export async function taskList(eId:string, annual, state) {
let quarterConf = ["第一季度", "第二季度", "第三季度", "第四季度"];
let year = annual.slice(0, 4);
let annualquarter = annual.slice(4)
let quarter = 0;
quarterConf.forEach( (item, index) => {
if (annualquarter == item) {
quarter = index + 1;
}
})
let dataList:any[] = [];
let thisYear = new Date().getFullYear();
let jysjFile = ["BI", "TXP", "RD", "mId", "state", "isSubmit"];
let thisYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, annual:getMySqlMs(`${thisYear}-01-01 00:00:00`)}, jysjFile);
if (!thisYearjJysjInfo || !thisYearjJysjInfo.mId) {
//创建新的填报任务
let itemInfo = {
eId,
mId:randomId(TABLEID.企业经营信息),
annual:getMySqlMs(`${thisYear}-01-01 00:00:00`),
BI:0,
TXP:0,
RD:0,
createTime:getMySqlMs(),
state:0,
isSubmit:0,
isUpdate:0
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, itemInfo, {});
}
let lastYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, annual:getMySqlMs(`${thisYear-1}-01-01 00:00:00`)}, jysjFile);
if (!lastYearjJysjInfo || !lastYearjJysjInfo.mId) {
//创建新的填报任务
let itemInfo = {
eId,
mId:randomId(TABLEID.企业经营信息),
annual:getMySqlMs(`${thisYear-1}-01-01 00:00:00`),
BI:0,
TXP:0,
RD:0,
createTime:getMySqlMs(),
state:0,
isSubmit:0,
isUpdate:0
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, itemInfo, {});
}
let selectParam:any = {eId, annual:getMySqlMs(`${year}-01-01 00:00:00`)};
let selectParam:any = {eId, annual:getMySqlMs(`${year}-01-01 00:00:00`), quarter};
if (state == 1 ) selectParam.isSubmit = 0;
else selectParam.isSubmit = 1;
let lastYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, annual:getMySqlMs(`${year}-01-01 00:00:00`), quarter}, jysjFile);
if (!lastYearjJysjInfo || !lastYearjJysjInfo.mId) {
//创建新的填报任务
let itemInfo = {
eId,
mId:randomId(TABLEID.企业经营信息),
annual:getMySqlMs(`${year}-01-01 00:00:00`),
quarter,
BI:0,
TXP:0,
RD:0,
createTime:getMySqlMs(),
state:0,
isSubmit:0,
isUpdate:0
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, itemInfo, {});
}
let manageList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, selectParam, jysjFile);
// 按年度和季度倒序排列
manageList.sort((a, b) => {
if (a.annual === b.annual) {
return b.quarter - a.quarter;
}
return new Date(b.annual).valueOf() - new Date(a.annual).valueOf();
});
manageList.forEach(info => {
dataList.push({
mId:info.mId,
annual:moment(info.annual).format("YYYY"),
quarter: info.quarter,//新增季度
state:info.isSubmit,
remaining:!info.isSubmit ? 100:0,
isSubmit:info.isSubmit == 1
......@@ -187,6 +230,72 @@ export async function taskList(eId:string, year, state) {
}
}
// export async function taskList(eId:string, annual, state) {
// let dataList:any[] = [];
// let thisYear = new Date().getFullYear();
// let jysjFile = ["BI", "TXP", "RD", "mId", "state", "isSubmit"];
// let thisYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, annual:getMySqlMs(`${thisYear}-01-01 00:00:00`)}, jysjFile);
// if (!thisYearjJysjInfo || !thisYearjJysjInfo.mId) {
// //创建新的填报任务
// let itemInfo = {
// eId,
// mId:randomId(TABLEID.企业经营信息),
// annual:getMySqlMs(`${thisYear}-01-01 00:00:00`),
// BI:0,
// TXP:0,
// RD:0,
// createTime:getMySqlMs(),
// state:0,
// isSubmit:0,
// isUpdate:0
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, itemInfo, {});
// }
// let lastYearjJysjInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, { eId, annual:getMySqlMs(`${thisYear-1}-01-01 00:00:00`)}, jysjFile);
// if (!lastYearjJysjInfo || !lastYearjJysjInfo.mId) {
// //创建新的填报任务
// let itemInfo = {
// eId,
// mId:randomId(TABLEID.企业经营信息),
// annual:getMySqlMs(`${thisYear-1}-01-01 00:00:00`),
// BI:0,
// TXP:0,
// RD:0,
// createTime:getMySqlMs(),
// state:0,
// isSubmit:0,
// isUpdate:0
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, itemInfo, {});
// }
// let selectParam:any = {eId, annual:getMySqlMs(`${thisYear}-01-01 00:00:00`)};
// if (state == 1 ) selectParam.isSubmit = 0;
// else selectParam.isSubmit = 1;
// let manageList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, selectParam, jysjFile);
// manageList.forEach(info => {
// dataList.push({
// mId:info.mId,
// annual:moment(info.annual).format("YYYY"),
// state:info.isSubmit,
// remaining:!info.isSubmit ? 100:0,
// isSubmit:info.isSubmit == 1
// });
// });
// return {
// dataList
// }
// }
/**
* 获取企业基本信息
* 回显
......@@ -333,707 +442,26 @@ export async function enterpriseLeaseInfo(eId) {
dataInfo.enterpriseName = enterpriseInfo.enterpriseName;
dataInfo.state = changeEnumValue(enumConfig.FUHUASTATE, enterpriseInfo.enterprise_fuhuas[0].state);
if (enterpriseInfo.enterprise_leases) dataInfo.leaseTime = `${moment(enterpriseInfo.enterprise_leases[0].startTime).format("YYYY-MM-DD")}${moment(enterpriseInfo.enterprise_leases[0].endTime).format("YYYY-MM-DD")}`;
if (enterpriseInfo.enterprise_fuhuas) dataInfo.fuHuaTime = `${moment(enterpriseInfo.enterprise_fuhuas[0].startTime).format("YYYY-MM-DD")}${moment(enterpriseInfo.enterprise_fuhuas[0].endTime).format("YYYY-MM-DD")}`;
return {dataInfo};
}
//=====================================================知识产权
/**
* 知识产权信息-列表
* 回显
* @param uscc
*/
export async function enterpriseIPRInfo(eId:string) {
let filesList = ["iprId", "year", "number"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {iprId, year, number} = item;
dataList.push({
iprId,
year,
yearStr:moment(year).format("YYYY"),
number
});
});
return {dataList};
}
/**
* 知识产权信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseIPRInfo(eId, iprId, param) {
const FuncName = "企业修改知识产权"
eccFormParam(FuncName, EnterpriseIPRUpdateConfig, param );
let filesList = ["year", "number"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {iprId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
let disIprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {year:getMySqlMs(param.year), eId}, ["eId", "iprId"])
if (disIprInfo && disIprInfo.eId && disIprInfo.iprId != iprId) throw new BizError(ERRORENUM.存在重复的年份数据);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.知识产权, param, {iprId});
return {isSuccess:true};
}
/**
* 知识产权信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseIPRInfo(eId, param) {
const FuncName = "企业创建知识产权"
eccFormParam(FuncName, EnterpriseIPRUpdateConfig, param );
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {year:getMySqlMs(param.year), eId}, ["eId"])
if (iprInfo && iprInfo.eId) throw new BizError(ERRORENUM.存在重复的年份数据);
let addInfo = {
eId,
year:getMySqlMs(param.year),
number:param.number,
iprId:randomId(TABLEID.知识产权)
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, addInfo, {});
return {isSuccess:true};
}
export async function deleteEnterpriseIPRInfo(eId, iprId) {
let filesList = ["year", "number"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {iprId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.知识产权, {}, {iprId, eId});
return {isSuccess:true};
}
//====================================专利
/**
* 专利信息-列表
* 回显
* @param uscc
*/
export async function enterprisePatentInfo(eId:string) {
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业专利表, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {pId, year, number, alienPatent, classIPatent, secondClassPatent, thirdPentent} = item;
dataList.push({
pId,
year,
yearStr:moment(year).format("YYYY"),
number,
alienPatent,
classIPatent,
secondClassPatent,
thirdPentent
});
});
return {dataList};
}
/**
* 专利信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterprisePatentInfo(eId, pId, param) {
const FuncName = "企业修改知识产权"
eccFormParam(FuncName, EnterprisePatentUpdateConfig, param );
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {pId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {year:getMySqlMs(param.year), eId}, ["eId", "pId"])
if (disInfo && disInfo.eId && disInfo.pId != pId) throw new BizError(ERRORENUM.存在重复的年份数据);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业专利表, param, {pId, eId});
return {isSuccess:true};
}
/**
* 专利信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterprisePatentInfo(eId, param) {
const FuncName = "企业创建知识产权"
eccFormParam(FuncName, EnterprisePatentUpdateConfig, param );
let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {year:getMySqlMs(param.year), eId}, ["eId"])
if (disInfo && disInfo.eId) throw new BizError(ERRORENUM.存在重复的年份数据);
let addInfo = {
eId,
year:getMySqlMs(param.year),
alienPatent:param.alienPatent,
classIPatent:param.classIPatent,
secondClassPatent:param.secondClassPatent,
thirdPentent:param.thirdPentent,
pId:randomId(TABLEID.企业专利表)
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业专利表, addInfo, {});
return {isSuccess:true};
}
/**
* 专利信息-删除
* @param param0
* @returns
*/
export async function deleteEnterprisePatentInfo(eId, pId) {
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {pId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业专利表, {}, {pId, eId});
return {isSuccess:true};
}
//====================================资质
/**
* 资质信息-回显
* 回显
* @param uscc
*/
export async function enterpriseQualificationInfo(eId) {
let filesList = ["eId", "kxTime", "zjtxTime", "xjrTime", "xjrPyTime", "goPublicTime", "goPublicSector"];
let qualificationInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业资质, {eId}, filesList);
if (!qualificationInfo || !qualificationInfo.eId) {
//创建新的
let addInfo = {
eId,
qId:randomId(TABLEID.企业资质),
kxTime:0,
zjtxTime:0,
xjrTime:0,
xjrPyTime:0,
goPublicTime:0,
goPublicSector:'[]',
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业资质, addInfo, {});
addInfo.goPublicSector = JSON.parse(addInfo.goPublicSector);
return {dataInfo:addInfo};
}
if (qualificationInfo.goPublicSector) qualificationInfo.goPublicSector = JSON.parse(qualificationInfo.goPublicSector);
let resultInfo:any = extractData(EnterpriseQualificationInfoResConfig, qualificationInfo);
resultInfo.kxTime= new Date(resultInfo.kxTime).valueOf();
resultInfo.zjtxTime= new Date(resultInfo.zjtxTime).valueOf();
resultInfo.xjrTime= new Date(resultInfo.xjrTime).valueOf();
resultInfo.xjrPyTime= new Date(resultInfo.xjrPyTime).valueOf();
resultInfo.goPublicTime= new Date(resultInfo.goPublicTime).valueOf();
return {dataInfo:resultInfo};
}
/**
* 资质信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseQualificationInfo(eId, param) {
const FuncName = "企业修改资质信息";
eccFormParam(FuncName, EnterpriseQualificationUpdateConfig, param );
if (param.goPublicSector) eccEnumValue(FuncName, 'goPublicSector', enumConfig.LISTINGSITUATION, param.goPublicSector);
let filesList = ["eId", "kxTime", "zjtxTime", "xjrTime", "xjrPyTime", "goPublicTime", "goPublicSector"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业资质, {eId}, filesList)
if (!iprInfo || !iprInfo.eId) throw new BizError(ERRORENUM.当前数据不存在);
/**修改字段 */
filesList.forEach(keyStr => {
if (keyStr == "goPublicSector") return;
if (!param[keyStr]) delete param[keyStr]
});
param.goPublicSector = JSON.stringify(param.goPublicSector);
let addInfo:any = {};
if (param.kxTime) addInfo.kxTime = param.kxTime;
if (param.zjtxTime) addInfo.zjtxTime = param.zjtxTime;
if (param.xjrTime) addInfo.xjrTime = param.xjrTime;
if (param.xjrPyTime) addInfo.xjrPyTime = param.xjrPyTime;
if (param.goPublicTime) addInfo.goPublicTime = param.goPublicTime;
if (param.goPublicSector) addInfo.goPublicSector = param.goPublicSector;
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业资质, param, {eId});
return {isSuccess:true};
}
//=====================================================================荣誉奖项
/**
* 荣誉奖项-列表
* 回显
* @param uscc
*/
export async function enterpriseHonorInfo(eId) {
let filesList = ["hId", "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业荣誉, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {hId, awardName, awardingUnit, awardTime, awardLevel, awardImg} = item;
dataList.push({
hId,
awardName,
awardingUnit,
awardTime: moment(awardTime).format("YYYY"),
awardLevel:awardLevel,
awardImg:JSON.parse(awardImg),
});
});
return {dataList};
}
/**
* 荣誉奖项-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseHonorInfo(eId, hId, param) {
const FuncName = "企业修改荣誉奖项"
eccFormParam(FuncName, EnterpriseAwardUpdateConfig, param );
param.awardTime = getMySqlMs(param.awardTime);
param.awardImg = JSON.stringify(param.awardImg);
let filesList = [ "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业荣誉, {hId, eId}, filesList)
if (!iprInfo || !iprInfo.awardName) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业荣誉, param, {hId, eId});
return {isSuccess:true};
}
/**
* 荣誉奖项-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseHonorInfo(eId, param) {
const FuncName = "企业创建荣誉奖项"
eccFormParam(FuncName, EnterpriseAwardUpdateConfig, param );
let addInfo = {
eId,
hId:randomId(TABLEID.企业荣誉),
awardName:param.awardName,
awardingUnit:param.awardingUnit,
awardTime:getMySqlMs(param.awardTime),
awardLevel:param.awardLevel,
awardImg:JSON.stringify(param.awardImg),
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业荣誉, addInfo, {});
return {isSuccess:true};
}
/**
* 荣誉奖项-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseHonorInfo(eId, hId) {
let filesList = [ "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业荣誉, {hId, eId}, filesList)
if (!iprInfo || !iprInfo.awardName) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业荣誉, {}, {hId, eId});
return {isSuccess:true};
}
//=======================================团队
/**
* 创业团队-列表
* 回显
* @param uscc
*/
export async function enterpriseTeamInfo(eId) {
let filesList = ["tId", "name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.创业团队, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let { tId, name, sex, birth, degree, graduationSchool, talentType, des} = item;
dataList.push({
tId,
name,
sex:changeEnumValue(enumConfig.SEX, sex),
birth:moment(birth).format("YYYY-MM-DD"),
degree:changeEnumValue(enumConfig.DEGREE, degree),
graduationSchool,
talentType:changeEnumValue(enumConfig.ENTERPRISETEAM, talentType),
des,
});
});
return {dataList};
}
/**
* 创业团队-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseTeamInfo(eId, tId, param) {
const FuncName = "企业修改创业团队"
eccFormParam(FuncName, EnterpriseTeamUpdateConfig, param );
let filesList = ["name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.创业团队, {tId, eId}, filesList)
if (!iprInfo || !iprInfo.name) throw new BizError(ERRORENUM.当前数据不存在);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.创业团队, param, {tId, eId});
return {isSuccess:true};
}
/**
* 创业团队-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseTeamInfo(eId, param) {
const FuncName = "企业修改创业团队"
eccFormParam(FuncName, EnterpriseTeamUpdateConfig, param );
eccEnumValue(FuncName, 'sex', enumConfig.SEX, param.sex);
eccEnumValue(FuncName, 'talentType', enumConfig.ENTERPRISETEAM, param.talentType);
let addInfo = {
tId:randomId(TABLEID.创业团队),
eId,
name:param.name,
sex:param.sex,
birth:getMySqlMs(param.birth),
degree:param.degree,
graduationSchool:param.graduationSchool,
talentType:param.talentType,
des:param.des,
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.创业团队, addInfo, {});
return {isSuccess:true};
}
/**
* 创业团队-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseTeamInfo(eId, tId) {
let filesList = ["name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.创业团队, {tId, eId}, filesList)
if (!iprInfo || !iprInfo.name) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.创业团队, {}, {tId, eId});
return {isSuccess:true};
}
//==================================================参保人数
/**
* 参保信息-列表
* 回显
* @param uscc
*/
export async function enterpriseCanBaoInfo(eId) {
let filesList = ["cId", "annual" ,"zhuanKe" ,"benKe" ,"yanJiuSheng" ,"boShi" ,"qiTa"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {cId, annual, zhuanKe, benKe, yanJiuSheng, boShi, qiTa} = item;
dataList.push({
cId, annual:new Date(annual).valueOf(), zhuanKe, benKe, yanJiuSheng, boShi, qiTa
});
});
return {dataList};
}
/**
* 参保信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseCanBaoInfo(eId, cId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseCanBaoUpdateConfig, param );
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"yanJiuSheng" ,"boShi" ,"qiTa", "cId"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {cId, eId}, filesList);
if (!iprInfo || !iprInfo.annual) throw new BizError(ERRORENUM.当前数据不存在);
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, { eId, annual:getMySqlMs(param.annual)}, filesList);
if (resInfo && resInfo.annual && resInfo.cId != cId) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
/**修改字段 */
param.annual = getMySqlMs(param.annual);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.参保记录, param, {cId, eId});
return {isSuccess:true};
}
/**
* 参保信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseCanBaoInfo(eId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseCanBaoUpdateConfig, param );
let annual = getMySqlMs(param.annual);
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"yanJiuSheng" ,"boShi" ,"qiTa"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {eId, annual}, filesList);
if (resInfo && resInfo.annual) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let addInfo = {
cId:randomId(TABLEID.参保记录),
eId,
annual,
zhuanKe:param.zhuanKe,
benKe:param.benKe,
yanJiuSheng:param.yanJiuSheng,
boShi:param.boShi,
qiTa:param.qiTa,
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.参保记录, addInfo, {});
return {isSuccess:true};
}
/**
* 参保信息-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseCanBaoInfo(eId, cId) {
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"yanJiuSheng" ,"boShi" ,"qiTa"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {cId, eId}, filesList)
if (!iprInfo || !iprInfo.annual) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.参保记录, {}, {cId, eId});
//如果 startTime 或 endTime 为空或无效,可以设置默认值或提示信息:
if (enterpriseInfo.enterprise_leases) {
const startTime = moment(enterpriseInfo.enterprise_leases[0].startTime);
const endTime = moment(enterpriseInfo.enterprise_leases[0].endTime);
return {isSuccess:true};
}
//===============================================企业融资
/**
* 企业融资-列表
* 回显
* @param uscc
*/
export async function enterpriseFinancingInfo(eId) {
let filesList = ["rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {
rId,
financingAmount,
financingRounds,
fuHuaQiInvestment,
fuHuaQiInvestmentStyle,
fuHuaQiInvestmentAmount,
investmentDate,
investmentInstitutionsName,
valuation
} = item;
let info:any = {
rId, financingAmount, financingRounds, fuHuaQiInvestment,investmentDate:new Date(investmentDate).valueOf(), investmentInstitutionsName, valuation
};
if (fuHuaQiInvestment == enumConfig.STATE.) {
info.fuHuaQiInvestmentStyle = fuHuaQiInvestmentStyle;
info.fuHuaQiInvestmentAmount = fuHuaQiInvestmentAmount;
if (startTime.isValid() && endTime.isValid()) {
dataInfo.leaseTime = `${startTime.format("YYYY-MM-DD")}${endTime.format("YYYY-MM-DD")}`;
} else {
dataInfo.leaseTime = '未设置租赁日期';
}
dataList.push(info);
});
return {dataList};
}
/**
* 企业融资-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseFinancingInfo(eId, rId, param) {
const FuncName = "企业修改融资信息"
eccFormParam(FuncName, EnterpriseFinancingUpdateConfig, param );
if (param.fuHuaQiInvestment == enumConfig.STATE.) {
if (!param.fuHuaQiInvestmentStyle || !param.fuHuaQiInvestmentAmount) throw new BizError(ERRORENUM.参数错误);
} else {
param.fuHuaQiInvestmentStyle = 0;
param.fuHuaQiInvestmentAmount = 0;
}
let filesList = [ "rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业融资, {rId, eId}, filesList)
if (!iprInfo || !iprInfo.rId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业融资, param, {rId, eId});
return {isSuccess:true};
}
/**
* 企业融资-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseFinancingInfo(eId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseFinancingUpdateConfig, param );
let addInfo:any = {
rId:randomId(TABLEID.企业融资),
eId,
financingAmount:param.financingAmount,
financingRounds:param.financingRounds,
investmentDate:getMySqlMs(param.investmentDate),
investmentInstitutionsName:param.investmentInstitutionsName,
valuation:param.valuation,
};
addInfo.fuHuaQiInvestment = param.fuHuaQiInvestment;
if (param.fuHuaQiInvestment == enumConfig.STATE.) {
if (!param.fuHuaQiInvestmentStyle || !param.fuHuaQiInvestmentAmount) throw new BizError(ERRORENUM.参数错误);
addInfo.fuHuaQiInvestmentStyle = param.fuHuaQiInvestmentStyle;
addInfo.fuHuaQiInvestmentAmount = param.fuHuaQiInvestmentAmount;
} else {
param.fuHuaQiInvestmentStyle = "[]";
param.fuHuaQiInvestmentAmount = 0;
dataInfo.leaseTime = '无租赁信息';
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业融资, addInfo, {});
// if (enterpriseInfo.enterprise_leases) dataInfo.leaseTime = `${moment(enterpriseInfo.enterprise_leases[0].startTime).format("YYYY-MM-DD")}至${moment(enterpriseInfo.enterprise_leases[0].endTime).format("YYYY-MM-DD")}`;
if (enterpriseInfo.enterprise_fuhuas) dataInfo.fuHuaTime = `${moment(enterpriseInfo.enterprise_fuhuas[0].startTime).format("YYYY-MM-DD")}${moment(enterpriseInfo.enterprise_fuhuas[0].endTime).format("YYYY-MM-DD")}`;
return {isSuccess:true};
}
/**
* 企业融资-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseFinancingInfo(eId, rId) {
let filesList = ["rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业融资, {rId, eId}, filesList)
if (!iprInfo || !iprInfo.rId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业融资, {}, {rId, eId});
return {isSuccess:true};
return {dataInfo};
}
//===============================================企业服务
......@@ -1143,43 +571,55 @@ export async function deleteEnterpriseServiceInfo(eId, esId) {
export async function enterprisePolicyList(state) {
let selectParam:any = {};
if (state == 1) {
selectParam.closeTimeMs = {"%gt%":getMySqlMs()}
} else if (state == 2) {
selectParam.closeTimeMs = {"%lt%":getMySqlMs()}
} else if (state == 2) {
selectParam.closeTimeMs = {"%gt%":getMySqlMs()}
}
let filesList = ["poId", "title", "source", "createTimeMs", "coverImg"];
let resList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.政策表, {}, filesList);
let filesList = ["poId", "title", "source", "createTimeMs", "closeTimeMs", "coverImg","isPermanent"];
let resList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.政策表, selectParam, filesList);
let dataList = [];
resList.forEach(info => {
let {poId, title, source, createTimeMs, coverImg} = info;
dataList.push( {poId, title, source, createTimeMs:moment(createTimeMs).format("YYYY-MM-DD"),
coverImg:coverImg ? JSON.parse(coverImg)[0] :''
let { poId, title, source,createTimeMs, closeTimeMs, coverImg, isPermanent } = info;
// 判断是否为永久有效政策
let formattedCreateTime = isPermanent ? "永久有效" :moment(closeTimeMs).format("YYYY-MM-DD");
dataList.push( {
poId,
title,
source,
createTimeMs,
closeTimeMs:formattedCreateTime,
coverImg:coverImg ? JSON.parse(coverImg)[0] :'',
isPermanent
} );
});
return {dataList};
}
export async function enterprisePolicyInfo(poId) {
let filesList = ["poId", "desc", "title", "source", "createTimeMs", "coverImg"];
let filesList = ["poId", "desc", "title", "source", "closeTimeMs", "coverImg","isPermanent"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.政策表, {poId}, filesList);
if (!resInfo || !resInfo.poId) {
throw new BizError(ERRORENUM.数据不存在);
}
let {closeTimeMs, isPermanent } = resInfo;
// 判断是否为永久有效政策
let formattedCreateTime = isPermanent ? "永久有效" : moment(closeTimeMs).format("YYYY-MM-DD");
let dataInfo = {
poId:resInfo.poId,
desc:resInfo.desc,
title:resInfo.title,
source:resInfo.source,
createTimeMs:moment(resInfo.createTimeMs).format("YYYY-MM-DD"),
closeTimeMs: formattedCreateTime,
coverImg:JSON.parse(resInfo.coverImg)
}
......@@ -1189,103 +629,3 @@ export async function enterprisePolicyInfo(poId) {
//========================================================企业经营
export async function enterpriseManageInfo(eId, mId) {
let filesList = [ "mId", "annual", "BI", "TXP", "RD"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, mId}, filesList);
if (!resInfo || !resInfo.mId) {
throw new BizError(ERRORENUM.数据不存在);
}
let dataInfo = {
mId:resInfo.mId,
annual:moment(resInfo.annual).format("YYYY"),
BI:parseFloat(resInfo.BI),
TXP:parseFloat(resInfo.TXP),
RD:parseFloat(resInfo.RD)
}
return {dataInfo};
}
export async function updateEnterpriseManageInfo(eId, mId, param) {
const FuncName = "企业修改企业营收记录"
eccFormParam(FuncName, EnterpriseManageInfoUpdateConfig, param );
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, mId}, ["annual", "mId"]);
if (!resInfo || !resInfo.mId) throw new BizError(ERRORENUM.数据不存在);
let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, annual:resInfo.annual}, ["eId", "mId"]);
if (disInfo && disInfo.eId && disInfo.mId != mId) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let dataInfo = {
createTime:getMySqlMs(),
BI:param.BI,
TXP:param.TXP,
RD:param.RD,
isUpdate:enumConfig.STATE.
}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业经营信息, dataInfo, {eId, mId});
return {dataInfo};
}
export async function createEnterpriseManageInfo(eId, param) {
const FuncName = "企业添加企业营收记录"
eccFormParam(FuncName, EnterpriseManageInfoAddConfig, param );
let annual = getMySqlMs(param.year);
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, annual}, []);
if (resInfo.annual) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let addInfo = {
mId:randomId(TABLEID.企业经营信息),
eId,
createTime:getMySqlMs(),
annual:getMySqlMs(param.year),
BI:param.BI,
TXP:param.TXP,
RD:param.RD,
state:0
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, addInfo, {});
return {isSuccess:true};
}
export async function deleteEnterpriseManageInfo(eId, mId) {
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {mId, eId}, [])
if (!resInfo || !resInfo.mId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业经营信息, {}, {mId, eId});
return {isSuccess:true};
}
export async function enterpriseManageList(eId) {
let filesList = [ "mId", "annual", "BI", "TXP", "RD"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {eId}, filesList);
if (!resInfo) {
throw new BizError(ERRORENUM.数据不存在);
}
let dataInfo = [];
resInfo.forEach( info => {
dataInfo.push(
{
mId:info.mId,
annual:moment(info.annual).format("YYYY"),
BI:info.BI || "0.00",
TXP:info.TXP || "0.00",
RD:info.RD || "0.00"
}
)
})
return {dataInfo};
}
/**
* 企业融资
*/
import moment = require("moment");
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import { operationalData, selectData } from "../data/operationalData";
import { EnterpriseAwardUpdateConfig, EnterpriseFinancingUpdateConfig, EnterpriseManageInfoAddConfig, EnterpriseManageInfoUpdateConfig } from "../config/eccParam/enterprise";
import { eccFormParam } from "../util/verificationParam";
import { getMySqlMs, randomId } from "../tools/system";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/enum/errorEnum";
import * as enumConfig from "../config/enum/enum";
import { changeEnumValue } from "../util/verificationEnum";
//===============================================企业融资
/**
* 企业融资-列表
* 回显
* @param uscc
*/
export async function enterpriseFinancingInfo(eId) {
let filesList = ["rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {
rId,
financingAmount,
financingRounds,
fuHuaQiInvestment,
fuHuaQiInvestmentStyle,
fuHuaQiInvestmentAmount,
investmentDate,
investmentInstitutionsName,
valuation
} = item;
let info:any = {
rId, financingAmount, financingRounds, fuHuaQiInvestment,investmentDate:new Date(investmentDate).valueOf(), investmentInstitutionsName, valuation
};
if (fuHuaQiInvestment == enumConfig.STATE.) {
info.fuHuaQiInvestmentStyle = fuHuaQiInvestmentStyle;
info.fuHuaQiInvestmentAmount = fuHuaQiInvestmentAmount;
}
dataList.push(info);
});
return {dataList};
}
/**
* 企业融资-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseFinancingInfo(eId, rId, param) {
const FuncName = "企业修改融资信息"
eccFormParam(FuncName, EnterpriseFinancingUpdateConfig, param );
if (param.fuHuaQiInvestment == enumConfig.STATE.) {
if (!param.fuHuaQiInvestmentStyle || !param.fuHuaQiInvestmentAmount) throw new BizError(ERRORENUM.参数错误);
} else {
param.fuHuaQiInvestmentStyle = 0;
param.fuHuaQiInvestmentAmount = 0;
}
let filesList = [ "rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业融资, {rId, eId}, filesList)
if (!iprInfo || !iprInfo.rId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业融资, param, {rId, eId});
return {isSuccess:true};
}
/**
* 企业融资-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseFinancingInfo(eId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseFinancingUpdateConfig, param );
let addInfo:any = {
rId:randomId(TABLEID.企业融资),
eId,
financingAmount:param.financingAmount,
financingRounds:param.financingRounds,
investmentDate:getMySqlMs(param.investmentDate),
investmentInstitutionsName:param.investmentInstitutionsName,
valuation:param.valuation,
};
addInfo.fuHuaQiInvestment = param.fuHuaQiInvestment;
if (param.fuHuaQiInvestment == enumConfig.STATE.) {
if (!param.fuHuaQiInvestmentStyle || !param.fuHuaQiInvestmentAmount) throw new BizError(ERRORENUM.参数错误);
addInfo.fuHuaQiInvestmentStyle = param.fuHuaQiInvestmentStyle;
addInfo.fuHuaQiInvestmentAmount = param.fuHuaQiInvestmentAmount;
} else {
param.fuHuaQiInvestmentStyle = "[]";
param.fuHuaQiInvestmentAmount = 0;
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业融资, addInfo, {});
return {isSuccess:true};
}
/**
* 企业融资-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseFinancingInfo(eId, rId) {
let filesList = ["rId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle", "fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业融资, {rId, eId}, filesList)
if (!iprInfo || !iprInfo.rId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业融资, {}, {rId, eId});
return {isSuccess:true};
}
//========================================================企业经营
export async function enterpriseManageInfo(eId, mId) {
let filesList = [ "mId", "annual", "quarter", "BI", "TXP", "RD"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, mId}, filesList);
if (!resInfo || !resInfo.mId) {
throw new BizError(ERRORENUM.数据不存在);
}
let dataInfo = {
mId:resInfo.mId,
annual:moment(resInfo.annual).format("YYYY"),
quarter: changeEnumValue(enumConfig.QUARTER, resInfo.quarter),//新增季度
BI:parseFloat(resInfo.BI),
TXP:parseFloat(resInfo.TXP),
RD:parseFloat(resInfo.RD)
}
return {dataInfo};
}
/**
* 企业经营-添加季度
*/
// 季度配置数组
let quarterConf = ["第一季度", "第二季度", "第三季度", "第四季度"];
/**
* 辅助函数:将年度和季度字符串转换为年份和季度序号
* @param annual "2025第一季度"
* @returns
*/
function getYearAndQuarter(annual: string) {
let year = annual.slice(0, 4);
let annualquarter = annual.slice(4);
let quarter = 0;
quarterConf.forEach((item, index) => {
if (annualquarter === item) {
quarter = index + 1;
}
});
return { year, quarter };
}
export async function updateEnterpriseManageInfo(eId, mId, param) {
const FuncName = "企业修改企业营收记录"
eccFormParam(FuncName, EnterpriseManageInfoUpdateConfig, param );
//获取年份和季度
// const { year, quarter} = getYearAndQuarter(param.annual);
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, mId}, ["annual", "quarter", "mId"]);
if (!resInfo || !resInfo.mId) throw new BizError(ERRORENUM.数据不存在);
// 查询是否存在同一年度同季度的数据
// let disParam ={ eId, annual: getMySqlMs(`${resInfo.annual}-01-01 00:00:00`), quarter:resInfo.quarter };
// let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, disParam, ["eId", "mId"]);
// if (disInfo && disInfo.eId && disInfo.mId != mId) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let dataInfo = {
createTime:getMySqlMs(),
// annual:getMySqlMs(`${resInfo.annual}-01-01 00:00:00`),
// quarter:resInfo.quarter,//季度
BI:param.BI,
TXP:param.TXP,
RD:param.RD,
isUpdate:enumConfig.STATE.
}
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业经营信息, dataInfo, {eId, mId});
return {dataInfo};
}
export async function createEnterpriseManageInfo(eId, param) {
const FuncName = "企业添加企业营收记录"
eccFormParam(FuncName, EnterpriseManageInfoAddConfig, param );
// let annual = getMySqlMs(param.year);
// 获取年份和季度
const { year, quarter } = getYearAndQuarter(param.annual);
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {eId, annual: getMySqlMs(`${year}-01-01 00:00:00`), quarter}, []);
if (resInfo.annual) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let addInfo = {
mId:randomId(TABLEID.企业经营信息),
eId,
createTime:getMySqlMs(),
annual:getMySqlMs(`${year}-01-01 00:00:00`),
quarter,//季度
BI:param.BI,
TXP:param.TXP,
RD:param.RD,
state:0
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业经营信息, addInfo, {});
return {isSuccess:true};
}
export async function deleteEnterpriseManageInfo(eId, mId) {
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业经营信息, {mId, eId}, [])
if (!resInfo || !resInfo.mId) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业经营信息, {}, {mId, eId});
return {isSuccess:true};
}
export async function enterpriseManageList(eId) {
let filesList = [ "mId", "annual", "quarter", "BI", "TXP", "RD"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {eId}, filesList);
if (!resInfo) {
throw new BizError(ERRORENUM.数据不存在);
}
let annualInfo = {};
resInfo.forEach( info => {
let year = moment(info.annual).format("YYYY");
if (!annualInfo[year]) annualInfo[year] = [];
annualInfo[year].push(
{
mId:info.mId,
annual:year,
quarter: changeEnumValue(enumConfig.QUARTER, info.quarter),//新增季度
BI:info.BI || "0.00",
TXP:info.TXP || "0.00",
RD:info.RD || "0.00"
}
)
})
let dataInfo = [];
for(let key in annualInfo) {
let annual = {BI:0, TXP:0, RD:0};
annualInfo[key].forEach( item => {
annual.BI += parseFloat(item.BI);
annual.TXP += parseFloat(item.TXP);
annual.RD += parseFloat(item.RD);
})
annual["annual"] = key;
dataInfo.push(annual);
}
dataInfo.sort((a, b) => {
return b.annual - a.annual;
});
return {dataInfo};
}
/**
* 资质
*/
import moment = require("moment");
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import { operationalData, selectData } from "../data/operationalData";
import { EnterpriseAwardUpdateConfig, EnterpriseIPRUpdateConfig, EnterprisePatentUpdateConfig, EnterpriseQualificationUpdateConfig } from "../config/eccParam/enterprise";
import { eccFormParam } from "../util/verificationParam";
import { getMySqlMs, randomId } from "../tools/system";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/enum/errorEnum";
import * as enumConfig from "../config/enum/enum";
import { checkChange, extractData } from "../util/piecemeal";
import { changeEnumValue, eccEnumValue } from "../util/verificationEnum";
import { EnterpriseQualificationInfoResConfig } from "../config/splitResult/enterprise";
//------------------------------------------------荣誉奖项
/**
* 荣誉奖项-列表
* 回显
* @param uscc
*/
export async function enterpriseHonorInfo(eId) {
let filesList = ["hId", "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业荣誉, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {hId, awardName, awardingUnit, awardTime, awardLevel, awardImg} = item;
dataList.push({
hId,
awardName,
awardingUnit,
awardTime: moment(awardTime).format("YYYY"),
awardLevel:awardLevel,
awardImg:JSON.parse(awardImg),
});
});
return {dataList};
}
/**
* 荣誉奖项-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseHonorInfo(eId, hId, param) {
const FuncName = "企业修改荣誉奖项"
eccFormParam(FuncName, EnterpriseAwardUpdateConfig, param );
param.awardTime = getMySqlMs(param.awardTime);
param.awardImg = JSON.stringify(param.awardImg);
let filesList = [ "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业荣誉, {hId, eId}, filesList)
if (!iprInfo || !iprInfo.awardName) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业荣誉, param, {hId, eId});
return {isSuccess:true};
}
/**
* 荣誉奖项-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseHonorInfo(eId, param) {
const FuncName = "企业创建荣誉奖项"
eccFormParam(FuncName, EnterpriseAwardUpdateConfig, param );
let addInfo = {
eId,
hId:randomId(TABLEID.企业荣誉),
awardName:param.awardName,
awardingUnit:param.awardingUnit,
awardTime:getMySqlMs(param.awardTime),
awardLevel:param.awardLevel,
awardImg:JSON.stringify(param.awardImg),
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业荣誉, addInfo, {});
return {isSuccess:true};
}
/**
* 荣誉奖项-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseHonorInfo(eId, hId) {
let filesList = [ "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业荣誉, {hId, eId}, filesList)
if (!iprInfo || !iprInfo.awardName) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业荣誉, {}, {hId, eId});
return {isSuccess:true};
}
//=====================================================知识产权
/**
* 知识产权信息-列表
* 回显
* @param uscc
*/
export async function enterpriseIPRInfo(eId:string) {
let filesList = ["iprId", "year", "number"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, {eId}, filesList);
let yearStr = moment(iprList[0].year).format("YYYY");
let dataList:any[] = [];
iprList.forEach(item => {
let {iprId, year, number} = item;
dataList.push({
iprId,
year,
yearStr:`${yearStr}年`,
number
});
});
//倒序
dataList.sort(function(a, b) {
return parseInt(moment(b.year).format("YYYY")) - parseInt(moment(a.year).format("YYYY"));
});
return {dataList};
}
export async function enterpriseIPRByType(eId:string, iprType:number) {
let filesList = ["iprId", "year","number", "iprType","selectedValue","iprName", "iprUrl"];
let selecParam:any = {eId};
if (iprType == enumConfig.IPRTYPECLIENT.其他) {
selecParam.iprType = {"%notIn%":[enumConfig.IPRTYPECLIENT.软件著作, enumConfig.IPRTYPECLIENT.海外专利, enumConfig.IPRTYPECLIENT.发明专利]};
} else {
selecParam.iprType = iprType;
}
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, selecParam, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {iprId, year, number, iprType, selectedValue,iprName, iprUrl} = item;
let yearStr = moment(year).format("YYYY");
dataList.push({
iprId,
year,
yearStr:`${yearStr}年`,
number:1,
iprType:changeEnumValue(enumConfig.INTELLECTUALPROPERTYRIGHT, iprType),//新增知识产权类型
selectedValue:iprType,//新增选中value
iprName,//新增名称
// iprUrl:JSON.stringify(iprUrl),//新增证材料证明
iprUrl: iprUrl ? JSON.parse(iprUrl) : []//新增证材料证明
});
});
//倒序
dataList.sort(function(a, b) {
return parseInt(moment(b.year).format("YYYY")) - parseInt(moment(a.year).format("YYYY"));
});
return {dataList};
}
/**
* 知识产权信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseIPRInfo(eId, iprId, param) {
const FuncName = "企业修改知识产权"
eccFormParam(FuncName, EnterpriseIPRUpdateConfig, param );
let filesList = ["year", "iprType", "iprName", "iprUrl"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {iprId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
// let disIprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {year:getMySqlMs(param.year), eId}, ["eId", "iprId"])
// if (disIprInfo && disIprInfo.eId && disIprInfo.iprId != iprId) throw new BizError(ERRORENUM.存在重复的年份数据);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
let addInfo = {
year:getMySqlMs(param.year),
iprType:param.iprType,//新增知识产权类型
iprName:param.iprName,//新增名称
// iprUrl:param.iprUrl,//新增证明材料
iprUrl:JSON.stringify(param.iprUrl)//新增证明材料
};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.知识产权, addInfo, {iprId});
return {isSuccess:true};
}
/**
* 知识产权信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @param iprUrl:'["XXX.png", "XXX.png"]'
* @returns
*/
export async function createEnterpriseIPRInfo(eId, param) {
const FuncName = "企业创建知识产权"
eccFormParam(FuncName, EnterpriseIPRUpdateConfig, param );
// let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {year:getMySqlMs(param.year), eId}, ["eId"])
// if (iprInfo && iprInfo.eId) throw new BizError(ERRORENUM.存在重复的年份数据);
let addInfo = {
eId,
year:getMySqlMs(param.year),
iprId:randomId(TABLEID.知识产权),
iprType:param.iprType,//新增知识产权类型
iprName:param.iprName,//新增名称
// iprUrl:param.iprUrl//新增证明材料
iprUrl:JSON.stringify(param.iprUrl)//新增证明材料
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, addInfo, {});
return {isSuccess:true};
}
export async function deleteEnterpriseIPRInfo(eId, iprId) {
let filesList = ["year", "iprType", "iprName", "iprUrl"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.知识产权, {iprId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.知识产权, {}, {iprId, eId});
return {isSuccess:true};
}
//====================================专利
/**
* 专利信息-列表
* 回显
* @param uscc
*/
export async function enterprisePatentInfo(eId:string) {
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业专利表, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {pId, year, number, alienPatent, classIPatent, secondClassPatent, thirdPentent} = item;
dataList.push({
pId,
year,
yearStr:moment(year).format("YYYY"),
number,
alienPatent,
classIPatent,
secondClassPatent,
thirdPentent
});
});
return {dataList};
}
/**
* 专利信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterprisePatentInfo(eId, pId, param) {
const FuncName = "企业修改知识产权"
eccFormParam(FuncName, EnterprisePatentUpdateConfig, param );
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {pId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {year:getMySqlMs(param.year), eId}, ["eId", "pId"])
if (disInfo && disInfo.eId && disInfo.pId != pId) throw new BizError(ERRORENUM.存在重复的年份数据);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业专利表, param, {pId, eId});
return {isSuccess:true};
}
/**
* 专利信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterprisePatentInfo(eId, param) {
const FuncName = "企业创建知识产权"
eccFormParam(FuncName, EnterprisePatentUpdateConfig, param );
let disInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {year:getMySqlMs(param.year), eId}, ["eId"])
if (disInfo && disInfo.eId) throw new BizError(ERRORENUM.存在重复的年份数据);
let addInfo = {
eId,
year:getMySqlMs(param.year),
alienPatent:param.alienPatent,
classIPatent:param.classIPatent,
secondClassPatent:param.secondClassPatent,
thirdPentent:param.thirdPentent,
pId:randomId(TABLEID.企业专利表)
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.企业专利表, addInfo, {});
return {isSuccess:true};
}
/**
* 专利信息-删除
* @param param0
* @returns
*/
export async function deleteEnterprisePatentInfo(eId, pId) {
let filesList = ["pId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业专利表, {pId, eId}, filesList)
if (!iprInfo || !iprInfo.year) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.企业专利表, {}, {pId, eId});
return {isSuccess:true};
}
//====================================资质认证
/**
* 资质信息-回显
* 回显
* @param uscc
*/
export async function enterpriseQualificationInfo(eId) {
let filesList = ["eId", "kxState","kxTime","kxNumber","kxImg", "zjtxState","zjtxTime","zjtxImg",
"xjrState", "xjrTime","xjrImg","xjrPyState", "xjrPyTime","xjrPyImg",
"gxjsState","gaoXinJiShuTime","gaoXinJiShuImg","listedState", "goPublicTime", "goPublicSector","other"];
// let filesList = ["eId", "qualificationType","qualificationTime", "qualificationNum", "qualificationImg", "xjrPyTime", "goPublicTime", "goPublicSector","other"];
let qualificationData = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业资质, {eId}, filesList);
// let qualificationList = [];
// if (qualificationData.goPublicSector) {
// let qualification = JSON.parse(qualificationData.goPublicSector);
// for(let i = 0; i < qualification.length; i++){
// let qualificationType = changeEnumValue(enumConfig.LISTINGSITUATION, qualification[i]);
// qualificationList.push(qualificationType);
// }
// }
let result = {
kxState: qualificationData.kxState || 0,//新增科小状态
kxTime: qualificationData.kxTime,
kxNumber: qualificationData.kxNumber || '',//新增科小编号
kxImg: qualificationData.kxImg ? JSON.parse(qualificationData.kxImg) :[],//新增科编图片
zjtxState: qualificationData.zjtxState || 0,
zjtxTime: qualificationData.zjtxTime,
zjtxImg: qualificationData.zjtxImg ? JSON.parse(qualificationData.zjtxImg) : [],//新增专精特新证书
xjrState: qualificationData.xjrState || 0,
xjrTime: qualificationData.xjrTime,
xjrImg: qualificationData.xjrImg ? JSON.parse(qualificationData.xjrImg) : [],//新增小巨人证书
xjrPyState: qualificationData.xjrPyState || 0,
xjrPyTime: qualificationData.xjrPyTime,
xjrPyImg: qualificationData.zjtxImg ? JSON.parse(qualificationData.xjrPyImg) : [],//新增小巨人培育证书
gxjsState: qualificationData.gxjsState || 0,
gaoXinJiShuTime: qualificationData.gaoXinJiShuTime,
gaoXinJiShuImg: qualificationData.gaoXinJiShuImg ? JSON.parse(qualificationData.gaoXinJiShuImg) : [],//新增高新技术证书
listedState: qualificationData.listedState || 0,
goPublicSector: JSON.parse(qualificationData.goPublicSector) || [],
goPublicTime: qualificationData.goPublicTime,
// goPublicTime: qualificationData.goPublicTime ? moment(qualificationData.goPublicTime).valueOf() : "",
other: qualificationData.other || '',//新增其他
};
return result;
}
/**
* 资质信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseQualificationInfo(eId, param) {
const FuncName = "企业修改资质信息";
eccFormParam(FuncName, EnterpriseQualificationUpdateConfig, param );
if (param.goPublicSector) eccEnumValue(FuncName, 'goPublicSector', enumConfig.LISTINGSITUATION, param.goPublicSector);
let filesList = ["eId", "kxState","kxTime","kxNumber","kxImg", "zjtxState","zjtxTime","zjtxImg",
"xjrState", "xjrTime","xjrImg","xjrPyState", "xjrPyTime","xjrPyImg",
"gxjsState","gaoXinJiShuTime","gaoXinJiShuImg","listedState", "goPublicTime", "goPublicSector","other"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业资质, {eId}, filesList)
if (!iprInfo || !iprInfo.eId) throw new BizError(ERRORENUM.当前数据不存在);
/**修改字段 */
filesList.forEach(keyStr => {
if (keyStr == "goPublicSector" || keyStr == "kxState" || keyStr == "zjtxState"
|| keyStr == "xjrState" || keyStr == "xjrPyState" || keyStr == "gxjsState" || keyStr == "listedState"
) return;
if (!param[keyStr]) delete param[keyStr]
});
let addInfo:any = {};
if (param.kxState) addInfo.kxState = param.kxState;
if (param.goPublicSector && param.goPublicSector.length > 0) addInfo.goPublicSector = JSON.stringify(param.goPublicSector);
if (param.kxImg && param.kxImg.length > 0) addInfo.kxImg = JSON.stringify(param.kxImg);
if (param.zjtxImg && param.zjtxImg.length > 0) addInfo.zjtxImg = JSON.stringify(param.zjtxImg);
if (param.xjrImg && param.xjrImg.length > 0) addInfo.xjrImg = JSON.stringify(param.xjrImg);
if (param.xjrPyImg && param.xjrPyImg.length > 0) addInfo.xjrPyImg = JSON.stringify(param.xjrPyImg);
if (param.gaoXinJiShuImg && param.gaoXinJiShuImg.length > 0) addInfo.gaoXinJiShuImg = JSON.stringify(param.gaoXinJiShuImg);
// if (param.goPublicSector) addInfo.goPublicSector = JSON.stringify(param.goPublicSector);
// if (param.kxImg) addInfo.kxImg = JSON.stringify(param.kxImg);
if (param.kxTime) addInfo.kxTime = getMySqlMs(param.kxTime);
if (param.kxNumber) addInfo.kxNumber = param.kxNumber;//新增科小编号
if (param.zjtxState) addInfo.zjtxState = param.zjtxState;
// if (param.zjtxImg) addInfo.zjtxImg = JSON.stringify(param.zjtxImg);
if (param.zjtxTime) addInfo.zjtxTime = getMySqlMs(param.zjtxTime);
if (param.xjrState) addInfo.xjrState = param.xjrState;
// if (param.xjrImg) addInfo.xjrImg = JSON.stringify(param.xjrImg);
if (param.xjrTime) addInfo.xjrTime = getMySqlMs(param.xjrTime);
if (param.xjrPyTime) addInfo.xjrPyTime = getMySqlMs(param.xjrPyTime);
if (param.xjrPyState) addInfo.xjrPyState = param.xjrPyState;
// if (param.xjrPyImg) addInfo.xjrPyImg = JSON.stringify(param.xjrPyImg);
if (param.gxjsState) addInfo.gxjsState = param.gxjsState;
if (param.gaoXinJiShuTime) addInfo.gaoXinJiShuTime = getMySqlMs(param.gaoXinJiShuTime);//高新技术
// if (param.gaoXinJiShuImg) addInfo.gaoXinJiShuImg = JSON.stringify(param.gaoXinJiShuImg);
if (param.listedState) addInfo.listedState = param.listedState;
if (param.goPublicTime) addInfo.goPublicTime = getMySqlMs(param.goPublicTime);
if (param.other) addInfo.other = param.other;//新增其他
if (addInfo && Object.keys(addInfo).length > 0) {
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业资质, addInfo, {eId});
}
return {isSuccess:true};
}
// export async function updateEnterpriseQualificationInfo(eId, param) {
// const FuncName = "企业修改资质信息";
// // 验证参数
// eccFormParam(FuncName, EnterpriseQualificationUpdateConfig, param);
// // 处理上市板块枚举值
// if (param.goPublicSector) {
// eccEnumValue(FuncName, 'goPublicSector', enumConfig.LISTINGSITUATION, param.goPublicSector);
// }
// // 查询现有数据
// let filesList = [
// "eId", "kxState", "kxTime", "kxNumber", "kxImg",
// "zjtxState", "zjtxTime", "zjtxImg",
// "xjrState", "xjrTime", "xjrImg", "xjrPyState", "xjrPyTime", "xjrPyImg",
// "gxjsState", "gaoXinJiShuTime", "gaoXinJiShuImg", "listedState", "goPublicTime", "goPublicSector", "other"
// ];
// let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业资质, { eId }, filesList);
// if (!iprInfo || !iprInfo.eId) throw new BizError(ERRORENUM.当前数据不存在);
// // 构建需要更新的字段
// let addInfo: any = {};
// // 处理图片字段
// const imageFields = ["kxImg", "zjtxImg", "xjrImg", "xjrPyImg", "gaoXinJiShuImg"];
// imageFields.forEach(field => {
// if (param[field] && param[field].length > 0) {
// addInfo[field] = JSON.stringify(param[field]);
// }
// });
// // 处理其他字段
// const otherFields = [
// "kxState", "kxTime", "kxNumber",
// "zjtxState", "zjtxTime",
// "xjrState", "xjrTime", "xjrPyTime",
// "gxjsState", "gaoXinJiShuTime",
// "listedState", "goPublicTime", "goPublicSector", "other"
// ];
// otherFields.forEach(field => {
// if (param[field] !== undefined) {
// addInfo[field] = param[field];
// }
// });
// // 特殊处理 goPublicSector
// if (param.goPublicSector && Array.isArray(param.goPublicSector)) {
// addInfo.goPublicSector = JSON.stringify(param.goPublicSector);
// }
// // 更新数据库
// if (Object.keys(addInfo).length > 0) {
// await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业资质, addInfo, { eId });
// }
// return { isSuccess: true };
// }
/**
* 企业团队
*/
import moment = require("moment");
import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from "../config/enum/dbEnum";
import { operationalData, selectData } from "../data/operationalData";
import { eccFormParam } from "../util/verificationParam";
import { getMySqlMs, randomId } from "../tools/system";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/enum/errorEnum";
import { changeEnumValue, eccEnumValue } from "../util/verificationEnum";
import * as enumConfig from "../config/enum/enum";
import { EnterpriseCanBaoUpdateConfig, EnterpriseTeamUpdateConfig } from "../config/eccParam/enterprise";
import { checkChange } from "../util/piecemeal";
//=======================================团队
/**
* 创业团队-列表
* 回显
* @param uscc
*/
export async function enterpriseTeamInfo(eId) {
let filesList = ["tId", "name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des","certificateImg"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.创业团队, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let { tId, name, sex, birth, degree, graduationSchool, talentType, des,certificateImg} = item;
dataList.push({
tId,
name,
sex:changeEnumValue(enumConfig.SEX, sex),
birth:moment(birth).format("YYYY-MM-DD"),
degree:changeEnumValue(enumConfig.DEGREE, degree),
graduationSchool,
talentType:changeEnumValue(enumConfig.ENTERPRISETEAM, talentType),
des,
certificateImg:JSON.parse(certificateImg), // 新增证书图片返回
});
});
return {dataList};
}
/**
* 创业团队-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseTeamInfo(eId, tId, param) {
const FuncName = "企业修改创业团队"
eccFormParam(FuncName, EnterpriseTeamUpdateConfig, param );
param.birth = getMySqlMs(param.birth);
param.certificateImg = JSON.stringify(param.certificateImg);
let filesList = ["name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des", "certificateImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.创业团队, {tId, eId}, filesList)
if (!iprInfo || !iprInfo.name) throw new BizError(ERRORENUM.当前数据不存在);
/**修改字段 */
let changeList = checkChange(param, iprInfo);
if ( !changeList.length ) return {isSuccess:true};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.创业团队, param, {tId, eId});
return {isSuccess:true};
}
/**
* 创业团队-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseTeamInfo(eId, param) {
const FuncName = "企业修改创业团队"
eccFormParam(FuncName, EnterpriseTeamUpdateConfig, param );
eccEnumValue(FuncName, 'sex', enumConfig.SEX, param.sex);
eccEnumValue(FuncName, 'talentType', enumConfig.ENTERPRISETEAM, param.talentType);
let addInfo = {
tId:randomId(TABLEID.创业团队),
eId,
name:param.name,
sex:param.sex,
birth:getMySqlMs(param.birth),
degree:param.degree,
graduationSchool:param.graduationSchool,
talentType:param.talentType,
des:param.des,
certificateImg:JSON.stringify(param.certificateImg),// 新增证书图片返回
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.创业团队, addInfo, {});
return {isSuccess:true};
}
/**
* 创业团队-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseTeamInfo(eId, tId) {
let filesList = ["name" ,"sex" ,"birth" ,"degree" ,"graduationSchool" ,"talentType" ,"des","certificateImg"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.创业团队, {tId, eId}, filesList)
if (!iprInfo || !iprInfo.name) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.创业团队, {}, {tId, eId});
return {isSuccess:true};
}
//==================================================参保人数
/**
* 参保信息-列表
* 回显
* @param uscc
*/
export async function enterpriseCanBaoInfo(eId) {
let filesList = ["cId", "annual" ,"zhuanKe" ,"benKe" ,"shuoshi" ,"boShi" ,"qiTa", "boshiyishang"];
let iprList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {eId}, filesList);
let dataList:any[] = [];
iprList.forEach(item => {
let {cId, annual, zhuanKe, benKe, shuoshi, boShi, qiTa, boshiyishang} = item;
dataList.push({
cId,
annual:new Date(annual).valueOf(),
zhuanKe, benKe, shuoshi, boShi,
boshiyishang: boshiyishang || 0,
qiTa
});
});
return {dataList};
}
/**
* 参保信息-修改
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function updateEnterpriseCanBaoInfo(eId, cId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseCanBaoUpdateConfig, param );
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"shuoshi" ,"boShi", "boshiyishang","qiTa", "cId"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {cId, eId}, filesList);
if (!iprInfo || !iprInfo.annual) throw new BizError(ERRORENUM.当前数据不存在);
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, { eId, annual:getMySqlMs(param.annual)}, filesList);
if (resInfo && resInfo.annual && resInfo.cId != cId) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
/**修改字段 */
param.annual = getMySqlMs(param.annual);
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.参保记录, param, {cId, eId});
return {isSuccess:true};
}
/**
* 参保信息-添加
* @param uscc 企业统一信用代码
* @param param 表单
* @returns
*/
export async function createEnterpriseCanBaoInfo(eId, param) {
const FuncName = "企业修改参保信息"
eccFormParam(FuncName, EnterpriseCanBaoUpdateConfig, param );
let annual = getMySqlMs(param.annual);
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"shuoshi" ,"boShi" ,"boshiyishang","qiTa"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {eId, annual}, filesList);
if (resInfo && resInfo.annual) throw new BizError(ERRORENUM.不可重复添加同一年度数据);
let addInfo = {
cId:randomId(TABLEID.参保记录),
eId,
annual,
zhuanKe:param.zhuanKe,
benKe:param.benKe,
shuoshi:param.shuoshi,
boShi:param.boShi,
boshiyishang:param.boshiyishang,//博士以上
qiTa:param.qiTa,
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.参保记录, addInfo, {});
return {isSuccess:true};
}
/**
* 参保信息-删除
* @param param0
* @returns
*/
export async function deleteEnterpriseCanBaoInfo(eId, cId) {
let filesList = [ "annual" ,"zhuanKe" ,"benKe" ,"shuoshi" ,"boShi" ,"boshiyishang","qiTa"];
let iprInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.参保记录, {cId, eId}, filesList)
if (!iprInfo || !iprInfo.annual) throw new BizError(ERRORENUM.当前数据不存在);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.参保记录, {}, {cId, eId});
return {isSuccess:true};
}
......@@ -31,7 +31,10 @@ export const EnterpriseFaRenInfoUpdateConfig = {
export const EnterpriseIPRUpdateConfig = {
year:{type:"Number"}, //年度
number:{type:"Number"}, //个数
// number:{type:"Number"}, //个数
iprType:{type:"Number"}, //专利类型【枚举】
iprName:{type:"String"}, //专利名称
iprUrl:{type:"[String"},//证明材料
}
......@@ -45,12 +48,26 @@ export const EnterprisePatentUpdateConfig = {
export const EnterpriseQualificationUpdateConfig = {
kxState:{key:"Number"},//科小认定状态
kxTime:{key:"Number"},//科小认定时间
kxImg:{key:"[String]"},//新增科小图片
kxNumber:{key:"Number"},//新增科小认定编号
zjtxState:{key:"Number"},//专精特新认定状态
zjtxImg:{key:"[String]"},//新增专精特新图片
zjtxTime:{key:"Number"},//专精特新认定时间
xjrImg:{key:"[String]"},//新增小巨人证书
xjrState:{key:"Number"},//小巨人认定状态
xjrTime:{key:"Number"},//小巨人认定时间
xjrPyTime:{key:"Number"},//小巨人培育认定时间
xjrPyState:{key:"Number"},//小巨人培育认定状态
xjrPyImg:{key:"[String]"},//新增小巨人培育证书
gaoXinJiShuTime:{key:"Number"},// 新增高新技术认定时间
gaoXinJiShuImg:{key:"[String]"},//新增高新技术图片
gxjsState:{key:"Number"},//高新技术状态
listedState:{key:"Number"},//上市状态
goPublicTime:{key:"Number"},//上市时间
goPublicSector:{key:"[Number]"},//上市板块
other:{key:"Number"},//新增其他
}
......@@ -76,6 +93,7 @@ export const EnterpriseTeamUpdateConfig = {
graduationSchool:{key:"String"},//毕业学校
talentType:{key:"Number"},//人才类型
des:{key:"String"},//履历描述
certificateImg:{key:"[String]"},//新增关联图片
}
......@@ -85,8 +103,10 @@ export const EnterpriseCanBaoUpdateConfig = {
annual:{key:"Number"},//所属年报
zhuanKe:{key:"Number"},//专科
benKe:{key:"Number"},//本科
yanJiuSheng:{key:"Number"},//研究生
// yanJiuSheng:{key:"Number"},//研究生
shuoshi:{key:"Number"},//硕士
boShi:{key:"Number"},//博士
boshiyishang:{key:"Number"},//新增博士以上
qiTa:{key:"Number"},//其他
}
......@@ -111,14 +131,18 @@ export const EnterpriseServiceUpdateConfig = {
export const EnterpriseManageInfoUpdateConfig = {
// annual:{type:"Number"}, //新增年度
// quarter:{type:"Number"},//新增季度
BI:{type:"Number"},//营业收入
TXP:{type:"Number"},//纳税
RD:{type:"Number"},//研发投入
}
export const EnterpriseManageInfoAddConfig = {
year:{type:"Number"}, //年度
annual:{type:"Number"}, //年度
quarter:{type:"Number"}, //新增季度
BI:{type:"Number"},//营业收入
TXP:{type:"Number"},//纳税
RD:{type:"Number"},//研发投入
......
......@@ -21,7 +21,8 @@ export enum DEGREE {
专科 = 1,
本科,
硕士,
博士
博士,
博士以上
}
/**
......@@ -59,6 +60,7 @@ export enum LISTINGSITUATION {
A = 1,
科创板,
海外,
其他
}
......@@ -104,7 +106,9 @@ export enum FOLLOWUPSTATUS {
* 服务类别
*/
export enum NEEDCATEGORY {
物业服务 = 1,
// 物业服务 = 1,
工商税务 = 1,
代理记账,
贷款服务,
法律服务,
知识产权,
......@@ -143,4 +147,42 @@ export enum STATE {
export enum OUTCOME {
未解决 = 0,
已解决
}
export enum QUARTER {
第一季度 = 1,
第二季度,
第三季度,
第四季度
}
/**
* 知识产权类型
*/
export enum INTELLECTUALPROPERTYRIGHT {
软件著作 = 1,
发明专利,
海外专利,
植物新品种,
集成电路布图,
}
/**
* 知识产权类型 前端用
*/
export enum IPRTYPECLIENT {
其他 = 0,
软件著作 = 1,
发明专利,
海外专利,
}
/**
* 知识产权类型其他 前端用
*/
export enum IPRTYPECLIENTQT {
植物新品种 = 4,
集成电路布图
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ export enum ERRORENUM {
不可重复添加同一年度数据,
数据不存在,
不可重复提交,
存在重复的年份数据
存在重复的年份数据,
}
export enum ERRORCODEENUM {
......
......@@ -56,9 +56,14 @@ export const EnterpriseLeaseInfoResConfig = {
export const EnterpriseQualificationInfoResConfig = {
kxTime:{key:"科小认定时间"},
kxNumber:{key:"科小认定编号"},//新增科小认定编号
zjtxTime:{key:"专精特新认定时间"},
xjrTime:{key:"小巨人认定时间"},
xjrPyTime:{key:"小巨人培育认定时间"},
gaoXinJiShuTime:{key:"新高技術认定时间"},//新增高技術认定时间
goPublicTime:{key:"上市时间"},
goPublicSector:{key:"上市板块"},
other:{key:"其他"},
certificatedImg:{key:"资质认证图片"},//新增其他
}
......@@ -4,9 +4,7 @@
import * as asyncHandler from 'express-async-handler';
import * as enterpriseInfoBiz from '../biz/enterpriseInfo';
import { eccReqParamater } from '../util/verificationParam';
import { checkUser } from '../middleware/user';
import { userInfo } from 'os';
export function setRouter(httpServer) {
//登录登出
......@@ -14,7 +12,9 @@ export function setRouter(httpServer) {
httpServer.post('/xcx/enterprise/logout', checkUser, asyncHandler(logout));
/**首页 */
httpServer.post('/xcx/enterprise/home/enterpriselist', checkUser, asyncHandler(enterpriseByPhoneList));
httpServer.post('/xcx/enterprise/home/top', checkUser, asyncHandler(homePageTop));
httpServer.post('/xcx/enterprise/home/task', checkUser, asyncHandler(homePageTask));
httpServer.post('/xcx/enterprise/home/tasksubmit', checkUser, asyncHandler(homePageTaskSubmit));
httpServer.post('/xcx/enterprise/home/year', checkUser, asyncHandler(homePageYear));
......@@ -29,54 +29,6 @@ export function setRouter(httpServer) {
/**入驻信息 */
httpServer.post('/xcx/enterprise/ruzhu/info', checkUser, asyncHandler(ruZhuInfo));
//=============资质
/**知识产权 */
httpServer.post('/xcx/qualification/ipr/list', checkUser, asyncHandler(iprList));
httpServer.post('/xcx/qualification/ipr/update', checkUser, asyncHandler(iprUpdate));
httpServer.post('/xcx/qualification/ipr/add', checkUser, asyncHandler(iprAdd));
httpServer.post('/xcx/qualification/ipr/del', checkUser, asyncHandler(iprDel));
// /**专利 */
httpServer.post('/xcx/qualification/patent/list', checkUser, asyncHandler(patentList));
httpServer.post('/xcx/qualification/patent/update', checkUser, asyncHandler(patentUpdate));
httpServer.post('/xcx/qualification/patent/add', checkUser, asyncHandler(patentAdd));
httpServer.post('/xcx/qualification/patent/del', checkUser, asyncHandler(patentDel));
// /**企业认证 */
httpServer.post('/xcx/qualification/authentication/info', checkUser, asyncHandler(authenticationInfo));
httpServer.post('/xcx/qualification/authentication/update', checkUser, asyncHandler(authenticationUpdate));
// /**荣誉奖项 */
httpServer.post('/xcx/qualification/honor/list', checkUser, asyncHandler(honorList));
httpServer.post('/xcx/qualification/honor/update', checkUser, asyncHandler(honorUpdate));
httpServer.post('/xcx/qualification/honor/add', checkUser, asyncHandler(honorAdd));
httpServer.post('/xcx/qualification/honor/del', checkUser, asyncHandler(honorDel));
//=============企业团队
// /**创业团队 */
httpServer.post('/xcx/teams/originate/list', checkUser, asyncHandler(originateInfo));
httpServer.post('/xcx/teams/originate/update', checkUser, asyncHandler(originateUpdate));
httpServer.post('/xcx/teams/originate/add', checkUser, asyncHandler(originateAdd));
httpServer.post('/xcx/teams/originate/del', checkUser, asyncHandler(originateDel));
// /**参保信息 */
httpServer.post('/xcx/teams/canbao/list', checkUser, asyncHandler(canBaoInfo));
httpServer.post('/xcx/teams/canbao/update', checkUser, asyncHandler(canBaoUpdate));
httpServer.post('/xcx/teams/canbao/add', checkUser, asyncHandler(canBaoAdd));
httpServer.post('/xcx/teams/canbao/del', checkUser, asyncHandler(canBaoDel));
//=============企业融资
/**企业融资 */
httpServer.post('/xcx/finance/financing/list', checkUser, asyncHandler(financingList));
httpServer.post('/xcx/finance/financing/update', checkUser, asyncHandler(financingUpdate));
httpServer.post('/xcx/finance/financing/add', checkUser, asyncHandler(financingAdd));
httpServer.post('/xcx/finance/financing/del', checkUser, asyncHandler(financingDel));
/**企业营收 */
httpServer.post('/xcx/finance/revenue/info', checkUser, asyncHandler(revenueInfo));
httpServer.post('/xcx/finance/revenue/update', checkUser, asyncHandler(revenueUpdate));
httpServer.post('/xcx/finance/revenue/add', checkUser, asyncHandler(revenueAdd));
httpServer.post('/xcx/finance/revenue/del', checkUser, asyncHandler(revenueDel));
httpServer.post('/xcx/finance/revenue/list', checkUser, asyncHandler(revenueList));
//=============政策速递
httpServer.post('/xcx/policy/list', checkUser, asyncHandler(policyList));
httpServer.post('/xcx/policy/info', checkUser, asyncHandler(policyInfo));
......@@ -89,74 +41,6 @@ export function setRouter(httpServer) {
}
//====================================经营
/**
*
* @param req
* @param res
*/
async function revenueInfo(req, res) {
const UserInfo = req.userInfo;
let { mId } = req.body;
let result = await enterpriseInfoBiz.enterpriseManageInfo(UserInfo.eId, mId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueUpdate(req, res) {
const UserInfo = req.userInfo;
let { mId, param } = req.body;
let result = await enterpriseInfoBiz.updateEnterpriseManageInfo(UserInfo.eId, mId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueAdd(req, res) {
const UserInfo = req.userInfo;
let { param } = req.body;
let result = await enterpriseInfoBiz.createEnterpriseManageInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueDel(req, res) {
const UserInfo = req.userInfo;
let {mId} = req.body
let result = await enterpriseInfoBiz.deleteEnterpriseManageInfo(UserInfo.eId, mId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueList(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseManageList(UserInfo.eId);
res.success(result);
}
//====================================政策速递
......@@ -241,314 +125,6 @@ async function servicesAdd(req, res) {
}
//=====================企业融资
/**
*
* @param req
* @param res
*/
async function financingList(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseFinancingInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, rId } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseFinancingInfo(UserInfo.eId, rId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterpriseFinancingInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingDel(req, res) {
const UserInfo = req.userInfo;
let {rId} = req.body
let result = await enterpriseInfoBiz.deleteEnterpriseFinancingInfo(UserInfo.eId, rId);
res.success(result);
}
//==================================================参保信息
/**
*
* @param req
* @param res
*/
async function canBaoInfo(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseCanBaoInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, cId } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseCanBaoInfo(UserInfo.eId, cId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterpriseCanBaoInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoDel(req, res) {
const UserInfo = req.userInfo;
let {cId} = req.body
let result = await enterpriseInfoBiz.deleteEnterpriseCanBaoInfo(UserInfo.eId, cId);
res.success(result);
}
//===============================================荣耀
/**
*
* @param req
* @param res
*/
async function honorList(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseHonorInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, hId } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseHonorInfo(UserInfo.eId, hId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterpriseHonorInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorDel(req, res) {
const UserInfo = req.userInfo;
let {hId} = req.body;
let result = await enterpriseInfoBiz.deleteEnterpriseHonorInfo(UserInfo.eId, hId);
res.success(result);
}
//=================================================企业认证
/**
*
* @param req
* @param res
*/
async function authenticationInfo(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseQualificationInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function authenticationUpdate(req, res) {
const UserInfo = req.userInfo;
let { param } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseQualificationInfo(UserInfo.eId, param);
res.success(result);
}
//====================================专利
/**
*
* @param req
* @param res
*/
async function patentList(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterprisePatentInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, pId } = req.body
let result = await enterpriseInfoBiz.updateEnterprisePatentInfo(UserInfo.eId, pId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterprisePatentInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentDel(req, res) {
const UserInfo = req.userInfo;
let {tId } = req.body
let result = await enterpriseInfoBiz.deleteEnterprisePatentInfo(UserInfo.eId, tId);
res.success(result);
}
//-------------------------------------------------创业团队
/**
*
* @param req
* @param res
*/
async function originateInfo(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseTeamInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, tId } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseTeamInfo(UserInfo.eId, tId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterpriseTeamInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateDel(req, res) {
const UserInfo = req.userInfo;
let {tId } = req.body
let result = await enterpriseInfoBiz.deleteEnterpriseTeamInfo(UserInfo.eId, tId);
res.success(result);
}
//----------------------------------------------登录
/**
......@@ -557,8 +133,8 @@ async function originateDel(req, res) {
* @param res
*/
async function login(req, res) {
let {uscc, pwd } = req.body
let result = await enterpriseInfoBiz.enterpriseLogin(uscc, pwd );
let {phone, pwd } = req.body
let result = await enterpriseInfoBiz.enterpriseLogin(phone, pwd );
res.success(result);
}
......@@ -577,7 +153,6 @@ async function logout(req, res) {
}
//===============================入驻
/**
*
......@@ -592,9 +167,6 @@ async function ruZhuInfo(req, res) {
}
//===============================法人信息
/**
*
......@@ -623,9 +195,6 @@ async function updateFaRenInfo(req, res) {
}
//=================================我的信息
/**
*
......@@ -653,8 +222,6 @@ async function updateMyInfo(req, res) {
}
//===================================基本信息
/**
*
......@@ -669,7 +236,6 @@ async function baseInfo(req, res) {
}
async function homePageTaskSubmit(req, res) {
const UserInfo = req.userInfo;
let { mId } = req.body;
......@@ -679,61 +245,15 @@ async function homePageTaskSubmit(req, res) {
}
//===================================知识产权
/**
*
* @param req
* @param res
*/
async function iprList(req, res) {
const UserInfo = req.userInfo;
let result = await enterpriseInfoBiz.enterpriseIPRInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, iprId } = req.body
let result = await enterpriseInfoBiz.updateEnterpriseIPRInfo(UserInfo.eId, iprId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await enterpriseInfoBiz.createEnterpriseIPRInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprDel(req, res) {
async function enterpriseByPhoneList(req, res) {
const UserInfo = req.userInfo;
let {iprId } = req.body
let result = await enterpriseInfoBiz.deleteEnterpriseIPRInfo(UserInfo.eId, iprId);
let {phone} = req.body
let result = await enterpriseInfoBiz.enterpriseByPhone(phone);
res.success(result);
}
/**
* 首页
* @param req
......@@ -746,7 +266,6 @@ async function homePageTop(req, res) {
res.success(result);
}
/**
* 首页-任务
* @param req
......@@ -754,19 +273,38 @@ async function homePageTop(req, res) {
*/
async function homePageTask(req, res) {
const UserInfo = req.userInfo;
let {state, year} = req.body
let result = await enterpriseInfoBiz.taskList(UserInfo.eId, year, state);
let {state, annual} = req.body
let result = await enterpriseInfoBiz.taskList(UserInfo.eId, annual, state);
res.success(result);
}
/**
* 首页经营数据任务填报 下拉选择季度
* @param req
* @param res
*/
async function homePageYear(req, res) {
let result = {
dataList:[
{year:2024},
{year:2025},
]
};
let nowTime = new Date();
let year = nowTime.getFullYear();
let quarterConf = ["第一季度", "第二季度", "第三季度", "第四季度"];
let month = nowTime.getMonth();
let quarter = Math.floor(month / 3) + 1;
let result = {dataList:[]};
for (let i = 2024; i <= year; i++) {
for(let j = 1; j <= quarterConf.length; j++) {
let item = quarterConf[j-1];
if (i != year){
result.dataList.push({year:`${i}${item}`});
} else {
if (j <= quarter) {
result.dataList.push({year:`${i}${item}`});
}
}
}
}
res.success(result);
}
......
/**
* 企业融资
*/
import * as asyncHandler from 'express-async-handler';
import * as financeBiz from '../biz/finance';
import { checkUser } from '../middleware/user';
export function setRouter(httpServer) {
/**企业融资 */
httpServer.post('/xcx/finance/financing/list', checkUser, asyncHandler(financingList));
httpServer.post('/xcx/finance/financing/update', checkUser, asyncHandler(financingUpdate));
httpServer.post('/xcx/finance/financing/add', checkUser, asyncHandler(financingAdd));
httpServer.post('/xcx/finance/financing/del', checkUser, asyncHandler(financingDel));
/**企业营收 */
httpServer.post('/xcx/finance/revenue/info', checkUser, asyncHandler(revenueInfo));
httpServer.post('/xcx/finance/revenue/update', checkUser, asyncHandler(revenueUpdate));
httpServer.post('/xcx/finance/revenue/add', checkUser, asyncHandler(revenueAdd));
httpServer.post('/xcx/finance/revenue/del', checkUser, asyncHandler(revenueDel));
httpServer.post('/xcx/finance/revenue/list', checkUser, asyncHandler(revenueList));
}
//=====================企业融资
/**
*
* @param req
* @param res
*/
async function financingList(req, res) {
const UserInfo = req.userInfo;
let result = await financeBiz.enterpriseFinancingInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, rId } = req.body
let result = await financeBiz.updateEnterpriseFinancingInfo(UserInfo.eId, rId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await financeBiz.createEnterpriseFinancingInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function financingDel(req, res) {
const UserInfo = req.userInfo;
let {rId} = req.body
let result = await financeBiz.deleteEnterpriseFinancingInfo(UserInfo.eId, rId);
res.success(result);
}
//====================================经营
/**
*
* @param req
* @param res
*/
async function revenueInfo(req, res) {
const UserInfo = req.userInfo;
let { mId } = req.body;
let result = await financeBiz.enterpriseManageInfo(UserInfo.eId, mId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueUpdate(req, res) {
const UserInfo = req.userInfo;
let { mId, param } = req.body;
let result = await financeBiz.updateEnterpriseManageInfo(UserInfo.eId, mId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueAdd(req, res) {
const UserInfo = req.userInfo;
let { param } = req.body;
let result = await financeBiz.createEnterpriseManageInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueDel(req, res) {
const UserInfo = req.userInfo;
let {mId} = req.body
let result = await financeBiz.deleteEnterpriseManageInfo(UserInfo.eId, mId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function revenueList(req, res) {
const UserInfo = req.userInfo;
let result = await financeBiz.enterpriseManageList(UserInfo.eId);
res.success(result);
}
......@@ -16,6 +16,10 @@ const config = {
"/public/needcategory":enumConfig.NEEDCATEGORY,
"/public/fuhuaqilnvestmentstyle":enumConfig.FUHUAQILNVESTMENTSTYLE,
"/public/financingrounds":enumConfig.FINANCINGROUNDS,
"/public/intellectualpropertyright":enumConfig.INTELLECTUALPROPERTYRIGHT,// 新增知识产权类型
"/public/iprtypeclient":enumConfig.IPRTYPECLIENT,// 新增知识产权类型
"/public/iprtypeclientqt":enumConfig.IPRTYPECLIENTQT,// 新增知识产权类型
}
export function setRouter(httpServer) {
......
/**
* 资质
*/
import * as asyncHandler from 'express-async-handler';
import * as qualificationBiz from '../biz/qualification';
import { checkUser } from '../middleware/user';
export function setRouter(httpServer) {
/**知识产权 */
httpServer.post('/xcx/qualification/ipr/list', checkUser, asyncHandler(iprList));
httpServer.post('/xcx/qualification/ipr/listbytype', checkUser, asyncHandler(iprListByType));
httpServer.post('/xcx/qualification/ipr/update', checkUser, asyncHandler(iprUpdate));
httpServer.post('/xcx/qualification/ipr/add', checkUser, asyncHandler(iprAdd));
httpServer.post('/xcx/qualification/ipr/del', checkUser, asyncHandler(iprDel));
/**专利 */
httpServer.post('/xcx/qualification/patent/list', checkUser, asyncHandler(patentList));
httpServer.post('/xcx/qualification/patent/update', checkUser, asyncHandler(patentUpdate));
httpServer.post('/xcx/qualification/patent/add', checkUser, asyncHandler(patentAdd));
httpServer.post('/xcx/qualification/patent/del', checkUser, asyncHandler(patentDel));
/**资质认证 */
httpServer.post('/xcx/qualification/authentication/info', checkUser, asyncHandler(authenticationInfo));
httpServer.post('/xcx/qualification/authentication/update', checkUser, asyncHandler(authenticationUpdate));
/**荣誉奖项 */
httpServer.post('/xcx/qualification/honor/list', checkUser, asyncHandler(honorList));
httpServer.post('/xcx/qualification/honor/update', checkUser, asyncHandler(honorUpdate));
httpServer.post('/xcx/qualification/honor/add', checkUser, asyncHandler(honorAdd));
httpServer.post('/xcx/qualification/honor/del', checkUser, asyncHandler(honorDel));
}
//===================================知识产权
/**
*
* @param req
* @param res
*/
async function iprList(req, res) {
const UserInfo = req.userInfo;
let result = await qualificationBiz.enterpriseIPRInfo(UserInfo.eId);
res.success(result);
}
async function iprListByType(req, res) {
const UserInfo = req.userInfo;
let {iprType } = req.body;
let result = await qualificationBiz.enterpriseIPRByType(UserInfo.eId, iprType);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, iprId } = req.body
let result = await qualificationBiz.updateEnterpriseIPRInfo(UserInfo.eId, iprId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprAdd(req, res) {
const UserInfo = req.userInfo;
let {param} = req.body
let result = await qualificationBiz.createEnterpriseIPRInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function iprDel(req, res) {
const UserInfo = req.userInfo;
let {iprId} = req.body
let result = await qualificationBiz.deleteEnterpriseIPRInfo(UserInfo.eId, iprId);
res.success(result);
}
//====================================专利
/**
*
* @param req
* @param res
*/
async function patentList(req, res) {
const UserInfo = req.userInfo;
let result = await qualificationBiz.enterprisePatentInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, pId, file } = req.body
let result = await qualificationBiz.updateEnterprisePatentInfo(UserInfo.eId, pId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentAdd(req, res) {
const UserInfo = req.userInfo;
let {param, file } = req.body
let result = await qualificationBiz.createEnterprisePatentInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function patentDel(req, res) {
const UserInfo = req.userInfo;
let {tId } = req.body
let result = await qualificationBiz.deleteEnterprisePatentInfo(UserInfo.eId, tId);
res.success(result);
}
//=================================================资质认证
/**
*
* @param req
* @param res
*/
async function authenticationInfo(req, res) {
const UserInfo = req.userInfo;
let result = await qualificationBiz.enterpriseQualificationInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function authenticationUpdate(req, res) {
const UserInfo = req.userInfo;
let { param } = req.body
let result = await qualificationBiz.updateEnterpriseQualificationInfo(UserInfo.eId, param);
res.success(result);
}
//===============================================荣誉奖项
/**
*
* @param req
* @param res
*/
async function honorList(req, res) {
const UserInfo = req.userInfo;
let result = await qualificationBiz.enterpriseHonorInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, hId } = req.body
let result = await qualificationBiz.updateEnterpriseHonorInfo(UserInfo.eId, hId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await qualificationBiz.createEnterpriseHonorInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function honorDel(req, res) {
const UserInfo = req.userInfo;
let {hId} = req.body;
let result = await qualificationBiz.deleteEnterpriseHonorInfo(UserInfo.eId, hId);
res.success(result);
}
......@@ -4,6 +4,9 @@
import * as publicRouters from './public';
import * as enterpriseInfoRouters from './enterpriseInfo';
import * as teamsRouters from './teams';
import * as qualificationRouters from './qualification';
import * as financeRouters from './finance';
import * as filesInfoRouters from './files';
export function setRouter(httpServer){
/**下拉框等公用 路由 */
......@@ -11,6 +14,9 @@ export function setRouter(httpServer){
/**小程序企业端 入口路由 */
enterpriseInfoRouters.setRouter(httpServer);
teamsRouters.setRouter(httpServer);
qualificationRouters.setRouter(httpServer);
financeRouters.setRouter(httpServer);
filesInfoRouters.setRouter(httpServer);
}
\ No newline at end of file
/**
* 企业团队
*/
import * as asyncHandler from 'express-async-handler';
import * as teamsBiz from '../biz/teams';
import { checkUser } from '../middleware/user';
export function setRouter(httpServer) {
/**创业团队 */
httpServer.post('/xcx/teams/originate/list', checkUser, asyncHandler(originateInfo));
httpServer.post('/xcx/teams/originate/update', checkUser, asyncHandler(originateUpdate));
httpServer.post('/xcx/teams/originate/add', checkUser, asyncHandler(originateAdd));
httpServer.post('/xcx/teams/originate/del', checkUser, asyncHandler(originateDel));
/**参保信息 */
httpServer.post('/xcx/teams/canbao/list', checkUser, asyncHandler(canBaoInfo));
httpServer.post('/xcx/teams/canbao/update', checkUser, asyncHandler(canBaoUpdate));
httpServer.post('/xcx/teams/canbao/add', checkUser, asyncHandler(canBaoAdd));
httpServer.post('/xcx/teams/canbao/del', checkUser, asyncHandler(canBaoDel));
}
//-------------------------------------------------创业团队
/**
*
* @param req
* @param res
*/
async function originateInfo(req, res) {
const UserInfo = req.userInfo;
let result = await teamsBiz.enterpriseTeamInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, tId } = req.body
let result = await teamsBiz.updateEnterpriseTeamInfo(UserInfo.eId, tId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await teamsBiz.createEnterpriseTeamInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function originateDel(req, res) {
const UserInfo = req.userInfo;
let {tId } = req.body
let result = await teamsBiz.deleteEnterpriseTeamInfo(UserInfo.eId, tId);
res.success(result);
}
//==================================================参保信息
/**
*
* @param req
* @param res
*/
async function canBaoInfo(req, res) {
const UserInfo = req.userInfo;
let result = await teamsBiz.enterpriseCanBaoInfo(UserInfo.eId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoUpdate(req, res) {
const UserInfo = req.userInfo;
let {param, cId } = req.body
let result = await teamsBiz.updateEnterpriseCanBaoInfo(UserInfo.eId, cId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoAdd(req, res) {
const UserInfo = req.userInfo;
let {param } = req.body
let result = await teamsBiz.createEnterpriseCanBaoInfo(UserInfo.eId, param);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function canBaoDel(req, res) {
const UserInfo = req.userInfo;
let {cId} = req.body
let result = await teamsBiz.deleteEnterpriseCanBaoInfo(UserInfo.eId, cId);
res.success(result);
}
......@@ -70,6 +70,6 @@ export function randomId(tableName:string) {
}
export function getMySqlMs(time?) {
time = time || new Date().valueOf();
time = new Date(time).valueOf() || new Date().valueOf();
return moment(time).format("YYYY-MM-DD HH:mm:ss");
}
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