Commit a340ab0e by lixinming

no message

parent 514f2128
......@@ -96,6 +96,7 @@ export async function visitAlendarStatis(fuHuaQiUscc:string) {
return {dataInfo};
}
export async function visitCalendarList(fuHuaQiUscc) {
let startMs = moment().startOf("w").valueOf();
......@@ -188,8 +189,6 @@ export async function visitInfo(id:string) {
}
export async function visitUpdateState(id, state:number) {
if ( !( state == 1 || state == 2 ) ) throw new BizError(ERRORENUM.参数错误);
......@@ -215,7 +214,8 @@ export async function visitTrackAdd(fuHuaQiUscc:string, uscc:string, trackType:n
uscc,//企业uscc
enterpriseName:enterpriseInfo.enterpriseName,
trackType,//跟踪类型 VISITENTERPRISETYPE
content//内容
content,//内容
createTime:new Date().valueOf()
};
await trackData.createDataByParam(addInfo);
......@@ -223,6 +223,26 @@ export async function visitTrackAdd(fuHuaQiUscc:string, uscc:string, trackType:n
return {isSuccess:true}
}
export async function visitTrackList(uscc) {
let dbList = await trackData.findByParam({uscc});
let dataList = [];
let enterpriseName = "";
dbList.forEach(item => {
let trackType = changeEnumManyValue(VISITDEMAND, item.trackType);
enterpriseName = item.enterpriseName;
dataList.push({
id:item.id,
trackType,
time:moment(item.createTime).format("YYYY.MM.DD"),
content:item.content
});
})
return {dataList, enterpriseName};
}
export async function visitLogStatis(fuHuaQiUscc:string, year:number) {
......@@ -274,7 +294,7 @@ export async function visitLogList(fuHuaQiUscc:string, year:number) {
let dataList = [];
for (let key in monthMap) {
dataList.push({
key:changeEnumValue(VISITENTERPRISETYPE, parseInt(key)),
key,
count:monthMap[key].count,
list:monthMap[key].dataList
});
......@@ -286,9 +306,7 @@ export async function visitLogList(fuHuaQiUscc:string, year:number) {
//企业需求相关
export async function visitDemandList(fuHuaQiUscc, demand) {
/**找目标月入库的数据 */
let enterpriseCount = await enterpriseData.findEnterpriseCount({fuHuaQiUscc});
// let startMs = moment().startOf("y").valueOf();
......@@ -372,3 +390,222 @@ export async function visitDemandDelete(id) {
return {isSuccess:true};
}
//============企业端
/**
* 企业需求列表
* @param fuHuaQiUscc
* @param demand
* @returns
*/
export async function enterpriseVisitDemandList(uscc:string) {
let dbList = await demandData.findByParam({uscc});
let dataList = [];
dbList.forEach(item => {
let demand = changeEnumManyValue(VISITDEMAND, item.demand)
dataList.push({
demandDesc:item.demandDesc,
id:item.id,
demand,
time:moment(item.createTime).format("YYYY-MM-DD")
});
})
return {dataList}
}
export async function enterpriseAddDemand(uscc, demand, demandDesc) {
eccEnumValue("添加企业需求", "demand", VISITDEMAND, demand);
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc)
let enterprsieInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (!enterprsieInfo || !enterprsieInfo.uscc) {
throw new BizError(ERRORENUM.该企业不存在)
}
let addInfo = {
id:getRandomId("qyxq"),
fuHuaQiUscc:enterpriseInfo.fuHuaQiUscc,
uscc,//企业uscc
enterpriseName:enterprsieInfo.name,
createTime:new Date().valueOf(),
enterpriseType:VISITENTERPRISETYPE.数据异常企业,//VISITENTERPRISETYPE
demand,//企业需求
demandDesc
}
await demandData.createDataByParam(addInfo);
return {isSuccess:true};
}
//========================================================================管委会端
export async function gwhVisitAlendarStatis(year:number) {
let startMs = moment(`${year}-01-01 00:00:00`).valueOf();
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let lastStartMs = moment(`${year}-01-01 00:00:00`).subtract(1, 'y').valueOf();
let thisYearParma = { visitTime:{"$gt":startMs, "$lt":endMs}, state:{"$gt":VISITSTATE.走访安排}};
let dangQianCount = await visitData.findCountByParam(thisYearParma);
let lastYearParma = { visitTime:{"$gt":lastStartMs, "$lt":startMs}, state:{"$gt":VISITSTATE.走访安排}};
let liShiCount = await visitData.findCountByParam(lastYearParma);
let rate = 0;
if (dangQianCount && liShiCount) {
rate = Math.ceil((dangQianCount - liShiCount) / liShiCount * 100)
}
let anPaiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs, "$lt":endMs}, state:VISITSTATE.走访安排});
let jiLuCount = await visitData.findCountByParam({ state:{"$gt":VISITSTATE.走访安排}});
let dataInfo = {
thisYearCount:dangQianCount,
anPaiCount,
jiLuCount,
rate//同比
};
return {dataInfo};
}
export async function gwhVisitCalendarList() {
let startMs = moment().startOf("w").valueOf();
let endMs = startMs + (24* 3600* 1000 * 7);
let dbList = await visitData.findByParam({ visitTime:{"$gt":startMs, "$lt":endMs} });
let typeMap = {};
dbList.forEach(item => {
let {visitTime, accompany, leaderName, id, enterpriseName} = item;
let dateStr = moment(visitTime).format("YYYY-MM-DD");
if (!typeMap[dateStr]) typeMap[dateStr] = [];
typeMap[dateStr].push({
accompany,//陪同人员
leaderName,//出席领导
id,
enterpriseName,
time:moment(visitTime).format("HH:mm")
});
});
let dataList = [];
for (let key in typeMap) {
let itemList = typeMap[key]
dataList.push({
dateKey:key,
subList:itemList
});
}
dataList.sort( (a, b) => {return new Date(a.dateKey).valueOf()- new Date(b.dateKey).valueOf()});
return {dataList};
}
export async function gwhvisitAdd(fuHuaQiUscc:string, param) {
eccFormParam("添加走访安排", AddVisitConfig, param);
eccEnumValue("添加走访按排", "researchType", RESEARCHTYPE, param.researchType);
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(param.uscc);
if (!enterpriseInfo || !enterpriseInfo.uscc) throw new BizError(ERRORENUM.目标数据不存在)
let addInfo = {
id:getRandomId("zf"),
fuHuaQiUscc,
enterpriseName:enterpriseInfo.name,
uscc:param.uscc,
visitTime:param.visitTime,
accompany:param.accompany,
leaderName:param.leaderName,
researchType:param.researchType,
desc:param.desc,
state:VISITSTATE.走访安排,//1=初始状态 2=取消 3=完成 VISITSTATE
createTime:new Date().valueOf(),
enterpriseType:VISITENTERPRISETYPE.临近毕业企业//VISITENTERPRISETYPE
};
await visitData.createDataByParam(addInfo);
return {isSuccess:true};
}
export async function gwhVisitInfo(id:string) {
let visitInfo = await visitData.findOne({id});
let dataInfo = {
enterpriseName:visitInfo.enterpriseName,
uscc:visitInfo.uscc,
visitTime:visitInfo.visitTime,
accompany:visitInfo.accompany,
leaderName:visitInfo.leaderName,
researchType:changeEnumValue( RESEARCHTYPE, visitInfo.researchTyp),
desc:visitInfo.desc,
createTime:new Date().valueOf(),
enterpriseType:changeEnumValue(VISITENTERPRISETYPE, visitInfo.enterpriseType)
};
return {dataInfo};
}
export async function gwhVisitLogStatis(year:number) {
let startMs = moment(`${year}-01-01 00:00:00`).valueOf();
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let lastStartMs = moment(`${year}-01-01 00:00:00`).subtract(1, 'y').valueOf();
let thisYearParma = { visitTime:{"$gt":startMs, "$lt":endMs}, state:{"$gt":VISITSTATE.走访安排}};
let dangQianCount = await visitData.findCountByParam(thisYearParma);
let lastYearParma = { visitTime:{"$gt":lastStartMs, "$lt":startMs}, state:{"$gt":VISITSTATE.走访安排}};
let liShiCount = await visitData.findCountByParam(lastYearParma);
let rate = 0;
if (dangQianCount && liShiCount) {
rate = Math.ceil((dangQianCount - liShiCount) / liShiCount * 100)
}
return {dataInfo:{rate, thisYearCount:dangQianCount}};
}
export async function gwhVisitLogList(year:number) {
let startMs = moment(`${year}-01-01 00:00:00`).valueOf();
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let dbList = await visitData.findByParam({ visitTime:{"$gt":startMs, "$lt":endMs}, state:{"$gt":VISITSTATE.走访安排} });
let monthMap = {};
dbList.forEach(item => {
let {state, enterpriseName, id, visitTime} = item;
let monthNumber = moment(visitTime).format("M");
if (!monthMap[monthNumber]) {
monthMap[monthNumber] = {count:0, dataList:[]};
}
monthMap[monthNumber].count += 1;
monthMap[monthNumber].dataList.push({
enterpriseName,
id,
state:changeEnumValue(VISITSTATE, state),
visitTime:moment(visitTime).format("YYYY/MM/DD HH:mm")
});
});
let dataList = [];
for (let key in monthMap) {
dataList.push({
key,
count:monthMap[key].count,
list:monthMap[key].dataList
});
}
return {dataList}
}
......@@ -13,7 +13,8 @@ const trackSchema = new Schema({
uscc:{type:String, index:true},//企业uscc
enterpriseName:String,
trackType:Number,//跟踪类型 VISITENTERPRISETYPE
content:String//内容
content:String,//内容
createTime:Number
});
......
/**
* 企业端的需求
*/
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
import * as visitBiz from '../../biz/mobileFuHuaQi/visit';
export function setRouter(httpServer) {
httpServer.post('/enterprise/visit/demand/list', checkFuHuaQiToken, asyncHandler(visit_demand_list));//诉求列表
httpServer.post('/enterprise/visit/demand/add', checkFuHuaQiToken, asyncHandler(visit_demand_add));//添加诉求
}
async function visit_demand_list(req, res) {
const Uscc = req.headers.uscc;
let userInfo = await visitBiz.enterpriseVisitDemandList(Uscc);
res.success(userInfo);
}
async function visit_demand_add(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {demand:'[Number]', demandDesc:'String'};
let {demand, demandDesc} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.enterpriseAddDemand(Uscc, demand, demandDesc);
res.success(userInfo);
}
/**
* 管委会端
*/
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
import * as visitBiz from '../../biz/mobileFuHuaQi/visit';
export function setRouter(httpServer) {
httpServer.post('/guanweihui/visit/calendar/statis', checkFuHuaQiToken, asyncHandler(gwh_visit_alendar_statis));
httpServer.post('/guanweihui/visit/calendar/list', checkFuHuaQiToken, asyncHandler(gwh_visit_calendar_list));
httpServer.post('/guanweihui/visit/add', checkFuHuaQiToken, asyncHandler(gwh_visit_add));
httpServer.post('/guanweihui/visit/info', checkFuHuaQiToken, asyncHandler(gwh_visit_info));
httpServer.post('/guanweihui/visit/update/state', checkFuHuaQiToken, asyncHandler(gwh_visit_update_state));
httpServer.post('/guanweihui/visit/log/statis', checkFuHuaQiToken, asyncHandler(gwh_visit_log_statis));
httpServer.post('/guanweihui/visit/log/list', checkFuHuaQiToken, asyncHandler(gwh_visit_log_list));
}
/**
* 日历-统计
* @param req
* @param res
*/
async function gwh_visit_alendar_statis(req, res) {
let reqConf = {year:"Number"};
let {year} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.gwhVisitAlendarStatis(year);
res.success(userInfo);
}
async function gwh_visit_calendar_list(req, res) {
let userInfo = await visitBiz.gwhVisitCalendarList();
res.success(userInfo);
}
async function gwh_visit_add(req, res) {
let reqConf = {param:"Object"};
let {param} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let userInfo = await visitBiz.gwhvisitAdd(Uscc, param);
res.success(userInfo);
}
async function gwh_visit_info(req, res) {
let reqConf = {id:"String"};
let {id} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.gwhVisitInfo(id);
res.success(userInfo);
}
async function gwh_visit_update_state(req, res) {
let reqConf = {id:"String", state:"Number"};
let {id, state} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.visitUpdateState(id, state);
res.success(userInfo);
}
async function gwh_visit_log_statis(req, res) {
let reqConf = {year:"Number"};
let {year} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.gwhVisitLogStatis(year);
res.success(userInfo);
}
async function gwh_visit_log_list(req, res) {
let reqConf = {year:"Number"};
let {year} = eccReqParamater(reqConf, req.body);
let userInfo = await visitBiz.gwhVisitLogList( year);
res.success(userInfo);
}
\ No newline at end of file
......@@ -8,8 +8,8 @@ import * as activityBiz from '../../biz/mobileEnterprise/activity';
import { eccReqParamater } from '../../util/verificationParam';
export function setRouter(httpServer) {
httpServer.post('/enterprise/activity/list', checkEnterpriseToken, asyncHandler(activity_list));//活动列表
httpServer.post('/enterprise/activity/info', checkEnterpriseToken, asyncHandler(activity_info));//活动详情
httpServer.post('/fuhuaqi/activity/list', checkEnterpriseToken, asyncHandler(activity_list));//活动列表
httpServer.post('/fuhuaqi/activity/info', checkEnterpriseToken, asyncHandler(activity_info));//活动详情
}
async function activity_list(req, res) {
......
......@@ -15,9 +15,20 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/business/updatereport', checkFuHuaQiToken, asyncHandler(updatereportBusiness));
httpServer.post('/fuhuaqi/business/deletereport', checkFuHuaQiToken, asyncHandler(deletereportBusiness));
httpServer.post('/fuhuaqi/business/select', checkFuHuaQiToken, asyncHandler(selectBusiness));
//重点企业
// httpServer.post('/fuhuaqi/keynote/dynamics/list', checkFuHuaQiToken, asyncHandler(keynote_dynamics_list));//动态
// httpServer.post('/fuhuaqi/keynote/dynamics/unread', checkFuHuaQiToken, asyncHandler(keynote_dynamics_unread));//未读
// httpServer.post('/fuhuaqi/keynote/dynamics/read', checkFuHuaQiToken, asyncHandler(keynote_dynamics_read));//已读
// httpServer.post('/fuhuaqi/keynote/dynamics/enterprise', checkFuHuaQiToken, asyncHandler(keynote_dynamics_enterprise));//企业动态
// httpServer.post('/fuhuaqi/keynote/list', checkFuHuaQiToken, asyncHandler(keynote_list));//企业列表
// httpServer.post('/fuhuaqi/keynote/add', checkFuHuaQiToken, asyncHandler(keynote_add));//添加企业
// httpServer.post('/fuhuaqi/keynote/del', checkFuHuaQiToken, asyncHandler(keynote_add));//取消重点企业
}
/**
* 展示孵化器经营数据
* @param req
......
......@@ -16,15 +16,16 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/visit/statis/base', asyncHandler(visit_statis_base));
httpServer.post('/fuhuaqi/visit/statis/typelist', asyncHandler(visit_statis_type_list));
// httpServer.post('/fuhuaqi/visit/list', checkFuHuaQiToken, asyncHandler(visit_list));
// httpServer.post('/fuhuaqi/visit/update', checkFuHuaQiToken, asyncHandler(visit_update));
httpServer.post('/fuhuaqi/visit/calendar/statis', checkFuHuaQiToken, asyncHandler(visit_alendar_statis));
httpServer.post('/fuhuaqi/visit/calendar/list', checkFuHuaQiToken, asyncHandler(visit_calendar_list));
httpServer.post('/fuhuaqi/visit/add', checkFuHuaQiToken, asyncHandler(visit_add));
httpServer.post('/fuhuaqi/visit/info', checkFuHuaQiToken, asyncHandler(visit_info));
httpServer.post('/fuhuaqi/visit/update/state', checkFuHuaQiToken, asyncHandler(visit_update_state));
httpServer.post('/fuhuaqi/visit/track/add', checkFuHuaQiToken, asyncHandler(visit_track_add));
httpServer.post('/fuhuaqi/visit/track/list', checkFuHuaQiToken, asyncHandler(visit_track_list));
httpServer.post('/fuhuaqi/visit/log/statis', checkFuHuaQiToken, asyncHandler(visit_log_statis));
httpServer.post('/fuhuaqi/visit/log/list', checkFuHuaQiToken, asyncHandler(visit_log_list));
}
......@@ -144,6 +145,14 @@ async function visit_track_add(req, res) {
res.success(userInfo);
}
async function visit_track_list(req, res) {
let reqConf = { id:'String', };
let {id} = eccReqParamater(reqConf, req.body);
const FHQUscc = req.headers.uscc;
let userInfo = await visitBiz.visitDemandEnterpriseInfo(id);
res.success(userInfo);
}
async function visit_log_statis(req, res) {
let reqConf = {year:"Number"};
......
......@@ -46,6 +46,9 @@ import * as dangJianRouters from './mobileClient/dangJian';
import * as checkDataRouters from './admin/checkData';
import * as zhulingRouter from './mobileClient/zhuling';
import * as visitRouter from './mobileClient/visit';
import * as gwhvisitRouter from './guanWeiHuiMobileClient/visit';
import * as qyvisitRouter from './enterpriseMobileClient/visit';
import * as activityRouter from './mobileClient/activity';
export function setRouter(httpServer){
/**下拉框等公用 路由 */
......@@ -105,4 +108,7 @@ export function setRouter(httpServer){
zhulingRouter.setRouter(httpServer);
visitRouter.setRouter(httpServer);
gwhvisitRouter.setRouter(httpServer);
qyvisitRouter.setRouter(httpServer);
activityRouter.setRouter(httpServer);
}
\ No newline at end of file
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