Commit 42a28161 by chenjinjing

no message

parent 7bd6fd94
......@@ -17,6 +17,7 @@ import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/errorEnum";
import * as sysTools from "../tools/system";
import * as labelData from "../data/label";
import * as negotiationData from "../data/negotiation";
import { convertLabelsToDbFormat, generateEnterpriseLabels, uniqueLabelList } from '../util/labelUtils';
import moment from "moment";
let md5 = require("md5");
......@@ -42,6 +43,37 @@ export async function enterpriseUsccList() {
/**
* 企业库-获取所有企业库和在谈在跟企业的uscc
* @param uscc
*/
export async function enterpriseNegotiationUsccList() {
/**企业库 */
let enterpriseDbList = await enterpriseData.findEnterpriseListByParam({isSettled: configEnum.STATE.});
/**组合返回结果 */
let dataList = [];
enterpriseDbList.forEach( info => {
/**截取返回数据 */
let changeData:any = extractData(splitResultConfig.enterpriseUsccListConfig, info, true);
dataList.push(changeData);
})
/**在谈在跟企业 */
let negotiationDbList = await negotiationData.findNegotiationListByParam({});
negotiationDbList.forEach( info => {
/**截取返回数据 */
let changeData:any = extractData(splitResultConfig.negotiationUsccListConfig, info, true);
dataList.push({
uscc:changeData.id,
name:changeData.name
});
})
return dataList;
}
/**
* 企业建档-新增
* @param param
*/
......
......@@ -81,21 +81,21 @@ export async function 在谈在跟(buff) {
let rowData = blockData[i];
/**枚举转换 */
let industry = [industryEnum.ALLINDUSTRY[rowData[1]]];
let registrationStatus = configEnum.REGISTRATIONSTATUS[rowData[2]];
let progressStatus = configEnum.PROGRESSSTATUS[rowData[3]];
// let registrationStatus = configEnum.REGISTRATIONSTATUS[rowData[2]];
let progressStatus = configEnum.PROGRESSSTATUS[rowData[2]];
//准备在谈在跟数据
let negotiationInfo = {
id: randomId(TABLEID.在跟在谈),
name: rowData[0],
industry: industry,
registrationStatus: registrationStatus,
// registrationStatus: registrationStatus,
progressStatus: progressStatus,
primaryContact: rowData[4],
contactDepartment: rowData[5],
progressDetails: rowData[6],
primaryContact: rowData[3],
contactDepartment: rowData[4],
progressDetails: rowData[5],
createTime:new Date().valueOf(),
}
negotiationList.push(negotiationInfo);
}
});
......
......@@ -128,7 +128,7 @@ export async function manageUpdate(id:string, param) {
/**校验枚举 */
verificationEnumTools.eccEnumValue('管理后台修改经营数据企业', 'industry', industryEnum.ALLINDUSTRY, param.industry);
verificationEnumTools.eccEnumValue('管理后台修改经营数据企业', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
// verificationEnumTools.eccEnumValue('管理后台修改经营数据企业', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
verificationEnumTools.eccEnumValue('管理后台修改经营数据企业', 'progressStatus', configEnum.PROGRESSSTATUS, param.progressStatus);
/**校验企业 */
......
......@@ -21,12 +21,12 @@ import moment from "moment";
* 在谈在跟-列表
* @param name 企业名称
* @param industry 行业领域
* @param registrationStatus 推进、注册情况
* @param progressStatus 进展情况
* @param primaryContact 负责人、首谈人
* @param contactDepartment 对接部门
* @param page 页
*/
export async function negotiationList(name:string, industry, registrationStatus:number, primaryContact:string, contactDepartment:string, page:number) {
export async function negotiationList(name:string, industry, progressStatus:number, primaryContact:string, contactDepartment:string, page:number) {
let selectParam:any = {};
if (name) {
selectParam.name = {"$regex":`${name}`};
......@@ -35,9 +35,9 @@ export async function negotiationList(name:string, industry, registrationStatus:
verificationEnumTools.eccEnumValue('管理后台获取在谈在跟列表', 'industry', industryEnum.ALLINDUSTRY, industry);
selectParam.industry = {"$in":industry};
}
if (registrationStatus) {
verificationEnumTools.eccEnumValue('管理后台获取在谈在跟列表', 'registrationStatus', configEnum.REGISTRATIONSTATUS, registrationStatus);
selectParam.registrationStatus = registrationStatus;
if (progressStatus) {
verificationEnumTools.eccEnumValue('管理后台获取在谈在跟列表', 'progressStatus', configEnum.PROGRESSSTATUS, progressStatus);
selectParam.progressStatus = progressStatus;
}
if (primaryContact) {
selectParam.primaryContact = {"$regex":`${primaryContact}`};
......@@ -61,7 +61,19 @@ export async function negotiationList(name:string, industry, registrationStatus:
industry.push(verificationEnumTools.changeEnumValue(industryEnum.ALLINDUSTRY, changeData.industry))
}
changeData.industry = industry;
changeData.registrationStatus = verificationEnumTools.changeEnumValue(configEnum.REGISTRATIONSTATUS, changeData.registrationStatus);
//细分行业领域
let subDivide = [];
if (changeData.subDivide && changeData.subDivide.length > 0) {
// 数组处理
let subDivideValue = verificationEnumTools.changeEnumValue(industryEnum.SUBDIVIDE, changeData.subDivide);
if (subDivideValue) {
subDivide.push(subDivideValue);
}
}
changeData.subDivide = subDivide;
// changeData.registrationStatus = verificationEnumTools.changeEnumValue(configEnum.REGISTRATIONSTATUS, changeData.registrationStatus);
changeData.progressStatus = verificationEnumTools.changeEnumValue(configEnum.PROGRESSSTATUS, changeData.progressStatus);
dataList.push(changeData);
......@@ -83,7 +95,10 @@ export async function negotiationCreate(param) {
if (param.industry && param.industry.length > 0) {
verificationEnumTools.eccEnumValue('管理后台新增在谈在跟', 'industry', industryEnum.ALLINDUSTRY, param.industry);
}
verificationEnumTools.eccEnumValue('管理后台新增在谈在跟', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
if (param.subDivide && param.subDivide.length > 0) {
verificationEnumTools.eccEnumValue('管理后台新增在谈在跟', 'subDivide', industryEnum.SUBDIVIDE, param.subDivide);
}
// verificationEnumTools.eccEnumValue('管理后台新增在谈在跟', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
let enterpriseInfo = await negotiationData.findNegotiationByParam({name:param.name});
if (enterpriseInfo && enterpriseInfo.name) throw new BizError(ERRORENUM.该企业已存在, `${param.name}已经在库中存在`);
......@@ -92,7 +107,8 @@ export async function negotiationCreate(param) {
id: randomId(TABLEID.在跟在谈),
name: param.name,
industry: param.industry,
registrationStatus: param.registrationStatus,
subDivide: param.subDivide,
// registrationStatus: param.registrationStatus,
progressStatus: param.progressStatus,
primaryContact: param.primaryContact,
contactDepartment: param.contactDepartment,
......@@ -124,7 +140,8 @@ export async function negotiationInfo(id:string) {
let dataInfo = {
name: negotiationDbInfo.name,
industry: negotiationDbInfo.industry,
registrationStatus: negotiationDbInfo.registrationStatus,
subDivide: negotiationDbInfo.subDivide,
// registrationStatus: negotiationDbInfo.registrationStatus,
progressStatus: negotiationDbInfo.progressStatus,
primaryContact: negotiationDbInfo.primaryContact,
contactDepartment: negotiationDbInfo.contactDepartment,
......@@ -146,7 +163,8 @@ export async function negotiationUpdate(id:string, param) {
/**校验枚举 */
verificationEnumTools.eccEnumValue('管理后台修改在谈在跟企业', 'industry', industryEnum.ALLINDUSTRY, param.industry);
verificationEnumTools.eccEnumValue('管理后台修改在谈在跟企业', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
verificationEnumTools.eccEnumValue('管理后台修改在谈在跟企业', 'subDivide', industryEnum.SUBDIVIDE, param.subDivide);
// verificationEnumTools.eccEnumValue('管理后台修改在谈在跟企业', 'registrationStatus', configEnum.REGISTRATIONSTATUS, param.registrationStatus);
verificationEnumTools.eccEnumValue('管理后台修改在谈在跟企业', 'progressStatus', configEnum.PROGRESSSTATUS, param.progressStatus);
/**校验企业 */
......@@ -184,12 +202,12 @@ export async function negotiationDelete(id:string) {
* 导出在谈在跟企业信息列表
* @param name 企业名称
* @param industry 行业领域
* @param registrationStatus 推进、注册情况
* @param progressStatus 进展情况
* @param primaryContact 负责人、首谈人
* @param contactDepartment 对接部门
* @returns 二维数组,第一行为表头,后续行为数据
*/
export async function outPutNegotiationData(name:string, industry:string[], registrationStatus:number, primaryContact:string, contactDepartment:string, id:string[]) {
export async function outPutNegotiationData(name:string, industry:string[], progressStatus:number, primaryContact:string, contactDepartment:string, id:string[]) {
/** 拼接查询条件 */
let selectParam: any = {};
if (name) {
......@@ -199,9 +217,9 @@ export async function outPutNegotiationData(name:string, industry:string[], regi
verificationEnumTools.eccEnumValue('管理后台导出在谈在跟列表', 'industry', industryEnum.ALLINDUSTRY, industry);
selectParam.industry = {"$in": industry};
}
if (registrationStatus) {
verificationEnumTools.eccEnumValue('管理后台导出在谈在跟列表', 'registrationStatus', configEnum.REGISTRATIONSTATUS, registrationStatus);
selectParam.registrationStatus = registrationStatus;
if (progressStatus) {
verificationEnumTools.eccEnumValue('管理后台导出在谈在跟列表', 'progressStatus', configEnum.PROGRESSSTATUS, progressStatus);
selectParam.progressStatus = progressStatus;
}
if (primaryContact) {
selectParam.primaryContact = {"$regex": `${primaryContact}`};
......@@ -220,24 +238,24 @@ export async function outPutNegotiationData(name:string, industry:string[], regi
const titleList = [
"企业名称",
"行业领域",
"推进状态",
"注册情况",
"细分行业领域",
"进展情况",
"负责人/首谈人",
"对接部门",
"进度详情",
// "创建时间"
"创建时间"
];
/** 字段映射 */
const keyList = [
"name",
"industry",
"subDivide",
"progressStatus",
"registrationStatus",
"primaryContact",
"contactDepartment",
"progressDetails",
// "createTime"
"createTime"
];
let dataList = [titleList]; // 第一行为表头
......@@ -252,11 +270,12 @@ export async function outPutNegotiationData(name:string, industry:string[], regi
industryText.push(verificationEnumTools.changeEnumValue(industryEnum.ALLINDUSTRY, changeData.industry));
}
changeData.industry = industryText.join("、") || "未选择";
changeData.registrationStatus = verificationEnumTools.changeEnumValue(configEnum.REGISTRATIONSTATUS, changeData.registrationStatus) || "未选择";
changeData.subDivide = verificationEnumTools.changeEnumValue(industryEnum.SUBDIVIDE, changeData.subDivide) || "未选择";
// changeData.registrationStatus = verificationEnumTools.changeEnumValue(configEnum.REGISTRATIONSTATUS, changeData.registrationStatus) || "未选择";
changeData.progressStatus = verificationEnumTools.changeEnumValue(configEnum.PROGRESSSTATUS, changeData.progressStatus) || "未选择";
/** 时间格式化 */
// changeData.createTime = changeData.createTime ? moment(changeData.createTime).format("YYYY-MM-DD HH:mm:ss") : "-";
changeData.createTime = info.createTime ? moment(info.createTime).format("YYYY-MM-DD HH:mm:ss") : "-";
/** 生成一行数据 */
let row = [];
......
......@@ -27,7 +27,7 @@ const BATCH_INTERVAL = 5 * 60 * 1000; // 批次间隔时间:5分钟
* 设置定时器,分批刷新数据
*/
export async function initApiDataStorage() {
// updateQCCDataTask();
updateQCCDataTask();
setInterval(async function () {
updateQCCDataTask();
}, 3600 * 1000 * 24); // 每天启动一次完整的数据同步
......
......@@ -401,21 +401,17 @@ export async function outPutTrackDetailsData(name: string, demand: number, track
/** 查询服务追踪数据 */
let trackDbList = await trackData.findTrackListByParam(selectParam);
/** 表头定义 */
/** 表头定义 - 新增"服务次数"列 */
const titleList = [
"企业名称",
"统一社会信用代码",
"服务次数", // 新增列
"需求类型",
"需求内容",
"联系人",
"联系方式",
"需求创建时间",
"当前跟进状态",
"跟进人",
"跟进时间",
"跟进详情",
"跟进状态",
// "跟进记录ID"
"跟进情况", // 合并所有跟进记录,每条记录用换行符分隔
];
let dataList = [titleList]; // 第一行为表头
......@@ -432,61 +428,48 @@ export async function outPutTrackDetailsData(name: string, demand: number, track
/** 时间格式化 */
const createTime = changeData.createTime ? moment(changeData.createTime).format("YYYY-MM-DD") : "-";
/** 在企业记录前添加空行(除了第一个企业) */
if (enterpriseIndex > 0) {
dataList.push(new Array(titleList.length).fill(""));
}
/** 计算该企业的服务次数(跟进记录数量) */
const serviceCount = info.details ? info.details.length : 0;
/** 处理跟进详情 */
/** 构建跟进情况文本 */
let followUpText = "";
if (info.details && info.details.length > 0) {
// 按跟进时间倒序排列,最新的在前
const sortedDetails = [...info.details].sort((a, b) =>
moment(b.followUpTime).valueOf() - moment(a.followUpTime).valueOf()
);
sortedDetails.forEach((detail, detailIndex) => {
// 构建每条跟进记录,用换行符分隔
followUpText = sortedDetails.map(detail => {
const followUpStatus = verificationEnumTools.changeEnumValue(configEnum.TRACKTYPE, detail.followUpStatus) || "未选择";
const followUpTime = detail.followUpTime ? moment(detail.followUpTime).format("YYYY-MM-DD") : "-";
/** 生成一行数据 */
let row = [
// 只在第一条记录显示企业信息,后续记录留空(Excel可以合并单元格)
detailIndex === 0 ? changeData.name || "-" : "",
detailIndex === 0 ? changeData.uscc || "-" : "",
detailIndex === 0 ? demandText : "",
detailIndex === 0 ? changeData.content || "-" : "",
detailIndex === 0 ? changeData.contact || "-" : "",
detailIndex === 0 ? changeData.contactUs || "-" : "",
detailIndex === 0 ? createTime : "",
detailIndex === 0 ? currentTrackType : "",
detail.followUpName || "-",
followUpTime,
detail.followUpDsc || "-",
followUpStatus,
// detail.tdid || "-"
];
dataList.push(row);
});
// 每条跟进记录的格式:跟进人 跟进时间 跟进详情 跟进状态
return `${detail.followUpName || "-"} ${followUpTime} ${detail.followUpDsc || "-"} ${followUpStatus}`;
}).join("\n"); // 使用换行符分隔多条记录
} else {
/** 如果没有跟进记录,显示一行基础数据 */
let row = [
changeData.name || "-",
changeData.uscc || "-",
demandText,
changeData.content || "-",
changeData.contact || "-",
changeData.contactUs || "-",
createTime,
currentTrackType,
"-",
"-",
"-",
"-",
// "-"
];
followUpText = "-";
}
dataList.push(row);
/** 生成一行数据 - 每个企业只生成一行,所有跟进记录合并到跟进情况单元格中 */
let row = [
changeData.name || "-",
serviceCount.toString(), // 新增:服务次数
demandText,
changeData.content || "-",
changeData.contact || "-",
changeData.contactUs || "-",
createTime,
currentTrackType,
followUpText, // 合并后的跟进情况,多条记录用换行符分隔
];
dataList.push(row);
/** 在企业记录后添加空行(除了最后一个企业) */
if (enterpriseIndex < trackDbList.length - 1) {
dataList.push(new Array(titleList.length).fill(""));
}
});
......@@ -495,6 +478,224 @@ export async function outPutTrackDetailsData(name: string, demand: number, track
/**
* 导出服务追踪详细信息(空行分隔不同企业)
* @param name 企业名称
* @param demand 需求类型
* @param trackType 需求跟进状态
* @returns 二维数组,第一行为表头,后续行为数据(空行分隔)
*/
// export async function outPutTrackDetailsData(name: string, demand: number, trackType: number, id:string[]) {
// /** 拼接查询条件 */
// let selectParam: any = {};
// if (name) {
// selectParam.name = { "$regex": `${name}` };
// }
// if (demand) {
// selectParam.demand = demand;
// }
// if (trackType) {
// selectParam.trackType = trackType;
// }
// if (id) {
// selectParam.id = {"$in": id};
// }
// /** 查询服务追踪数据 */
// let trackDbList = await trackData.findTrackListByParam(selectParam);
// /** 表头定义 - 将跟进相关字段合并为"跟进情况" */
// const titleList = [
// "企业名称",
// // "统一社会信用代码",
// "需求类型",
// "需求内容",
// "联系人",
// "联系方式",
// "需求创建时间",
// "当前跟进状态",
// "跟进情况", // 合并所有跟进记录,每条记录用换行符分隔
// ];
// let dataList = [titleList]; // 第一行为表头
// /** 处理每个企业的跟踪记录 */
// trackDbList.forEach((info, enterpriseIndex) => {
// /** 提取基础数据 */
// let changeData: any = extractData(splitResultConfig.trackListConfig, info, true);
// /** 枚举值转文本 */
// const demandText = verificationEnumTools.changeEnumValue(configEnum.VISITDEMAND, changeData.demand) || "未选择";
// const currentTrackType = verificationEnumTools.changeEnumValue(configEnum.TRACKTYPE, changeData.trackType) || "未选择";
// /** 时间格式化 */
// const createTime = changeData.createTime ? moment(changeData.createTime).format("YYYY-MM-DD") : "-";
// /** 构建跟进情况文本 */
// let followUpText = "";
// if (info.details && info.details.length > 0) {
// // 按跟进时间倒序排列,最新的在前
// const sortedDetails = [...info.details].sort((a, b) =>
// moment(b.followUpTime).valueOf() - moment(a.followUpTime).valueOf()
// );
// // 构建每条跟进记录,用换行符分隔
// followUpText = sortedDetails.map(detail => {
// const followUpStatus = verificationEnumTools.changeEnumValue(configEnum.TRACKTYPE, detail.followUpStatus) || "未选择";
// const followUpTime = detail.followUpTime ? moment(detail.followUpTime).format("YYYY-MM-DD") : "-";
// // 每条跟进记录的格式:跟进人 跟进时间 跟进详情 跟进状态
// return `${detail.followUpName || "-"} ${followUpTime} ${detail.followUpDsc || "-"} ${followUpStatus}`;
// }).join("\n"); // 使用换行符分隔多条记录
// } else {
// followUpText = "-";
// }
// /** 生成一行数据 - 每个企业只生成一行,所有跟进记录合并到跟进情况单元格中 */
// let row = [
// changeData.name || "-",
// // changeData.uscc || "-",
// demandText,
// changeData.content || "-",
// changeData.contact || "-",
// changeData.contactUs || "-",
// createTime,
// currentTrackType,
// followUpText, // 合并后的跟进情况,多条记录用换行符分隔
// ];
// dataList.push(row);
// /** 在企业记录后添加空行(除了最后一个企业) */
// if (enterpriseIndex < trackDbList.length - 1) {
// dataList.push(new Array(titleList.length).fill(""));
// }
// });
// return dataList;
// }
/**
* 导出服务追踪详细信息(空行分隔不同企业)
* @param name 企业名称
* @param demand 需求类型
* @param trackType 需求跟进状态
* @returns 二维数组,第一行为表头,后续行为数据(空行分隔)
*/
// export async function outPutTrackDetailsData(name: string, demand: number, trackType: number, id:string[]) {
// /** 拼接查询条件 */
// let selectParam: any = {};
// if (name) {
// selectParam.name = { "$regex": `${name}` };
// }
// if (demand) {
// selectParam.demand = demand;
// }
// if (trackType) {
// selectParam.trackType = trackType;
// }
// if (id) {
// selectParam.id = {"$in": id};
// }
// /** 查询服务追踪数据 */
// let trackDbList = await trackData.findTrackListByParam(selectParam);
// /** 表头定义 */
// const titleList = [
// "企业名称",
// "统一社会信用代码",
// "需求类型",
// "需求内容",
// "联系人",
// "联系方式",
// "需求创建时间",
// "当前跟进状态",
// "跟进人",
// "跟进时间",
// "跟进详情",
// "跟进状态",
// // "跟进记录ID"
// ];
// let dataList = [titleList]; // 第一行为表头
// /** 处理每个企业的跟踪记录 */
// trackDbList.forEach((info, enterpriseIndex) => {
// /** 提取基础数据 */
// let changeData: any = extractData(splitResultConfig.trackListConfig, info, true);
// /** 枚举值转文本 */
// const demandText = verificationEnumTools.changeEnumValue(configEnum.VISITDEMAND, changeData.demand) || "未选择";
// const currentTrackType = verificationEnumTools.changeEnumValue(configEnum.TRACKTYPE, changeData.trackType) || "未选择";
// /** 时间格式化 */
// const createTime = changeData.createTime ? moment(changeData.createTime).format("YYYY-MM-DD") : "-";
// /** 在企业记录前添加空行(除了第一个企业) */
// if (enterpriseIndex > 0) {
// dataList.push(new Array(titleList.length).fill(""));
// }
// /** 处理跟进详情 */
// if (info.details && info.details.length > 0) {
// // 按跟进时间倒序排列,最新的在前
// const sortedDetails = [...info.details].sort((a, b) =>
// moment(b.followUpTime).valueOf() - moment(a.followUpTime).valueOf()
// );
// sortedDetails.forEach((detail, detailIndex) => {
// const followUpStatus = verificationEnumTools.changeEnumValue(configEnum.TRACKTYPE, detail.followUpStatus) || "未选择";
// const followUpTime = detail.followUpTime ? moment(detail.followUpTime).format("YYYY-MM-DD") : "-";
// /** 生成一行数据 */
// let row = [
// // 只在第一条记录显示企业信息,后续记录留空(Excel可以合并单元格)
// detailIndex === 0 ? changeData.name || "-" : "",
// detailIndex === 0 ? changeData.uscc || "-" : "",
// detailIndex === 0 ? demandText : "",
// detailIndex === 0 ? changeData.content || "-" : "",
// detailIndex === 0 ? changeData.contact || "-" : "",
// detailIndex === 0 ? changeData.contactUs || "-" : "",
// detailIndex === 0 ? createTime : "",
// detailIndex === 0 ? currentTrackType : "",
// detail.followUpName || "-",
// followUpTime,
// detail.followUpDsc || "-",
// followUpStatus,
// // detail.tdid || "-"
// ];
// dataList.push(row);
// });
// } else {
// /** 如果没有跟进记录,显示一行基础数据 */
// let row = [
// changeData.name || "-",
// changeData.uscc || "-",
// demandText,
// changeData.content || "-",
// changeData.contact || "-",
// changeData.contactUs || "-",
// createTime,
// currentTrackType,
// "-",
// "-",
// "-",
// "-",
// // "-"
// ];
// dataList.push(row);
// }
// });
// return dataList;
// }
/**
* 导出服务追踪信息(简化版,明确分隔)
* @param name 企业名称
* @param demand 需求类型
......@@ -527,10 +728,11 @@ export async function outPutTrackSimpleData(name: string, demand: number, trackT
"联系方式",
"需求创建时间",
"当前跟进状态",
"服务次数",
"跟进人",
"跟进时间",
"跟进详情",
"跟进状态"
"跟进状态",
];
let dataList = [titleList];
......@@ -573,6 +775,7 @@ export async function outPutTrackSimpleData(name: string, demand: number, trackT
changeData.contactUs || "-",
createTime,
currentTrackType,
//服务次数
detail.followUpName || "-",
followUpTime,
detail.followUpDsc || "-",
......@@ -592,6 +795,7 @@ export async function outPutTrackSimpleData(name: string, demand: number, trackT
changeData.contactUs || "-",
createTime,
currentTrackType,
//服务次数
"-",
"-",
"-",
......@@ -607,5 +811,3 @@ export async function outPutTrackSimpleData(name: string, demand: number, trackT
......@@ -26,7 +26,8 @@ export const AdminUserAddConfig = {
export const NegotiationAddConfig = {
name:{type:"String"}, //企业名称
industry:{type:"[Number]"}, //行业领域
registrationStatus:{type:"Number"}, //推进、注册情况
subDivide:{type:"[Number]"}, //细分行业领域
// registrationStatus:{type:"Number"}, //推进、注册情况
progressStatus:{type:"Number"}, //进展情况
primaryContact:{type:"String"}, //负责人、首谈人
contactDepartment:{type:"String"}, //对接部门
......@@ -42,7 +43,8 @@ export const NegotiationAddConfig = {
export const NegotiationUpdateConfig = {
name:{type:"String"}, //企业名称
industry:{type:"[Number]"}, //行业领域
registrationStatus:{type:"Number"}, //推进、注册情况
subDivide:{type:"[Number]"}, //细分行业领域
// registrationStatus:{type:"Number"}, //推进、注册情况
progressStatus:{type:"Number"}, //进展情况
primaryContact:{type:"String"}, //负责人、首谈人
contactDepartment:{type:"String"}, //对接部门
......@@ -65,14 +67,14 @@ export const EnterpriseAddConfig = {
// industryCategoryGb:{type:"String"}, //国标行业门类
industry:{type:"[Number]"}, //行业领域
subDivide:{type:"[Number]", notMustHave:true}, //细分行业领域-用于小台账
property:{type:"Number"}, //企业所属物业
property:{type:"Number", notMustHave:true}, //企业所属物业
enterpriseNature:{type:"Number"}, //企业性质
leasedArea:{type:"Number"}, //租赁面积(㎡)
leasedArea:{type:"Number", notMustHave:true}, //租赁面积(㎡)
RAS:{type:"Number"}, //登记状态
jingYingFanWei:{type:"String"}, //经营范围
legalPerson:{type:"String"}, //法人
zhuceziben:{type:"String"}, //注册资本
dianHua:{type:"String"}, //电话
dianHua:{type:"String", notMustHave:true}, //电话
};
......@@ -143,7 +145,7 @@ export const ManageUpdateConfig = {
* 备注: 所有参数为必填
*/
export const TrackAddConfig = {
uscc:{type:"String"}, //统一信用代码
uscc:{type:"String", notMustHave:true}, //统一信用代码 由于要兼容在谈在跟企业添加服务追踪,改为非必填
name:{type:"String"}, //企业名称
demand:{type:"Number"}, //需求类型
content:{type:"String"}, //需求描述
......
......@@ -89,7 +89,9 @@ export enum REGISTRATIONSTATUS {
*/
export enum PROGRESSSTATUS {
初次接触 = 1,
合同洽谈,
项目落地,
项目终止,
}
......
......@@ -14,7 +14,8 @@ export const negotiationListConfig = {
id:{key:"标识"},
name:{key:"企业名称"},
industry:{key:"行业领域"},
registrationStatus:{key:"推进/注册情况"},
subDivide:{key:"细分行业领域"},
// registrationStatus:{key:"推进/注册情况"},
progressStatus:{key:"进展情况"},
primaryContact:{key:"负责人/首谈人"},
contactDepartment:{key:"对接部门"},
......@@ -60,6 +61,17 @@ export const enterpriseUsccListConfig = {
/**
* 使用端: 管理后台
* 场景: 企业库所有uscc列表
* 备注: 导出和列表共用一份配置
*/
export const negotiationUsccListConfig = {
id:{key:"标识"},
name:{key:"企业名称"}
};
/**
* 使用端: 管理后台
* 场景: 经营数据列表
* 备注: 导出和列表共用一份配置
*/
......
......@@ -10,8 +10,9 @@ const negotiationSchema = new Schema({
// uscc:{type:String, index:true}, //统一信用代码
name:{type:String, index:true}, //企业名称
industry: [Number], //行业领域 ALLINDUSTRY
registrationStatus:{type:Number, default:1}, //推进、注册情况 REGISTRATIONSTATUS: 1-洽谈中, 2-已注册, 3-已入驻, 4-已终止
progressStatus:{type:Number, default:1}, //进展情况 PROGRESSSTATUS:1-初次接触, 2-深度洽谈, 3-协议草拟, 4-协议签订, 5-项目落地
subDivide:[Number], //细分行业领域 用于小台账
registrationStatus:{type:Number, default:1}, //推进、注册情况 REGISTRATIONSTATUS: 1-洽谈中, 2-已注册, 3-已入驻, 4-已终止 弃用
progressStatus:{type:Number, default:1}, //进展情况 PROGRESSSTATUS:1-初次接触, 2-合同洽谈, 3-项目落地, 4-项目终止
progressDetails:String, //进度详情
primaryContact:String, //负责人、首谈人
contactDepartment:String, //对接部门
......
......@@ -24,7 +24,7 @@ import { sasp } from '../db/mongo/dbInit';
*/
const trackSchema = new Schema({
id:{type:String, index:true}, //标识
uscc:{type:String, index:true}, //企业uscc
uscc:{type:String, index:true}, //企业uscc 在谈在跟企业id
name:String, //企业名称
demand:Number, //需求类型 VISITDEMAND
content:String, //需求描述详情
......
......@@ -10,13 +10,13 @@ async function lanuch() {
/**初始化数据库 */
await initDB();
/**初始化底表数据 */
await initBasicData();
// await initBasicData();
/**创建http服务 */
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
/**初始化企查查数据 */
await initApiDataStorage();
// await initApiDataStorage();
}
......
......@@ -12,7 +12,7 @@ export class httpServer {
var httpServer = express();
httpServer.all('*', (req, res, next) => {
res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Headers', 'Content-Type,request-origin,userid,token');
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
......
......@@ -23,11 +23,11 @@ export function setRouter(httpServer) {
* @param res
*/
async function getNegotiationList(req, res) {
let reqConf = {name:'String', industry:'[Number]', registrationStatus:'Number', primaryContact:'String', contactDepartment:'String', page:'Number'};
const NotMustHaveKeys = ['name', 'industry', 'registrationStatus', 'primaryContact', 'contactDepartment'];
let {name, industry, registrationStatus, primaryContact, contactDepartment, page} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let reqConf = {name:'String', industry:'[Number]', progressStatus:'Number', primaryContact:'String', contactDepartment:'String', page:'Number'};
const NotMustHaveKeys = ['name', 'industry', 'progressStatus', 'primaryContact', 'contactDepartment'];
let {name, industry, progressStatus, primaryContact, contactDepartment, page} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await negotiationBiz.negotiationList(name, industry, registrationStatus, primaryContact, contactDepartment, page);
let result = await negotiationBiz.negotiationList(name, industry, progressStatus, primaryContact, contactDepartment, page);
res.success(result);
}
......@@ -94,11 +94,11 @@ async function delNegotiation(req, res) {
* @param res
*/
async function outPutNegotiation(req, res) {
let reqConf = {name:'String', industry:'[Number]', registrationStatus:'Number', primaryContact:'String', contactDepartment:'String', id:'[String]'};
const NotMustHaveKeys = ['name', 'industry', 'registrationStatus', 'primaryContact', 'contactDepartment', 'id'];
let {name, industry, registrationStatus, primaryContact, contactDepartment, id} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let reqConf = {name:'String', industry:'[Number]', progressStatus:'Number', primaryContact:'String', contactDepartment:'String', id:'[String]'};
const NotMustHaveKeys = ['name', 'industry', 'progressStatus', 'primaryContact', 'contactDepartment', 'id'];
let {name, industry, progressStatus, primaryContact, contactDepartment, id} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await negotiationBiz.outPutNegotiationData(name, industry, registrationStatus, primaryContact, contactDepartment, id);
let result = await negotiationBiz.outPutNegotiationData(name, industry, progressStatus, primaryContact, contactDepartment, id);
res.success(result);
}
......
......@@ -16,7 +16,7 @@ const config = {
"/public/industry":industryConfig.ALLINDUSTRY, //行业领域
"/public/subdivied":industryConfig.SUBDIVIDE, //细分行业领域
"/public/ras":enumConfig.RAS, //登记状态
"/public/registrationstatus":enumConfig.REGISTRATIONSTATUS, //推荐/注册情况
// "/public/registrationstatus":enumConfig.REGISTRATIONSTATUS, //推荐/注册情况 弃用
"/public/progressstatus":enumConfig.PROGRESSSTATUS, //进展情况
"/public/period":enumConfig.PERIOD, //数据时间 上半年(1-6月)、下半年(7-12月)、全年
"/public/demand":enumConfig.VISITDEMAND, //需求类型
......@@ -46,8 +46,19 @@ export function setRouter(httpServer) {
* @param req
* @param res
*/
// async function getAllUscc(req, res) {
// let result = await enterpriseBiz.enterpriseUsccList();
// res.success(result);
// }
/**
* 获取所有企业uscc
* @param req
* @param res
*/
async function getAllUscc(req, res) {
let result = await enterpriseBiz.enterpriseUsccList();
let result = await enterpriseBiz.enterpriseNegotiationUsccList();
res.success(result);
}
......
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