Commit 84624d35 by lixinming

党建。6.1

parent 8a83e293
No preview for this file type
......@@ -10,6 +10,7 @@ import * as customTaskData from "../../../data/fuHuaQi/customTask";
import { BizError } from "../../../util/bizError";
import { ERRORENUM } from "../../../config/errorEnum";
import * as taskData from "../../../data/fuHuaQi/monthTask/task";
import * as dangJianTaskData from "../../../data/fuHuaQi/monthTask/dangJian";
import * as monthTableData from "../../../data/fuHuaQi/monthTask/monthTable";
import { findAllNotDisabledFuHuaQi } from "../../../data/fuHuaQi/fuhuaqi";
import { generateMonthTaskId } from "../../../tools/taskTool";
......@@ -24,24 +25,37 @@ import { generateMonthTaskId } from "../../../tools/taskTool";
*/
export async function createTask(fuHuaQiTaskType:number, dataCycle:number, startMs:number, endMs:number) {
eccEnumValue("创建自定义任务", "", FUHUAQICUSTOMTASKTYPE, fuHuaQiTaskType);
if (fuHuaQiTaskType == FUHUAQICUSTOMTASKTYPE.月度任务) {
await createCustomMonthTask(dataCycle, startMs, endMs);
} else if (fuHuaQiTaskType == FUHUAQICUSTOMTASKTYPE.党建任务) {
await createCustomYearTask(dataCycle, startMs, endMs);
}
return {isSuccess:true};
}
/**
* 创建自定义月度任务
*/
async function createCustomMonthTask(dataCycle:number, startMs:number, endMs:number) {
//计算周期
let dataCycleTime = moment(dataCycle);
let cycleNum = dataCycleTime.format("YYYYMM");//数据周期格式化
//限制 不能创建为了数据月的任务
let thisMonth = moment().startOf('month').format('YYYYMM');
let cycleNum = dataCycleTime.format("YYYYMM");//数据周期格式化 数据月
const DataMonth = dataCycleTime.month() + 1;
const DataYear = dataCycleTime.year();
if (parseInt(cycleNum) >= parseInt(thisMonth)) throw new BizError(ERRORENUM.不可以创建未来数据月的任务);
//限制 不能创建未来数据月的任务
if (parseInt(cycleNum) >= parseInt(moment().startOf('month').format('YYYYMM'))) throw new BizError(ERRORENUM.不可以创建未来数据月的任务);
if (parseInt(cycleNum) >= parseInt(moment(startMs).format('YYYYMM')) ) throw new BizError(ERRORENUM.填报周期不能小于数据周期);
let customTaskId = `${fuHuaQiTaskType}_${cycleNum}`;
let customTaskId = `${FUHUAQICUSTOMTASKTYPE.月度任务}_${cycleNum}`;//id规则是 任务类型_周期月
let taskInfo = await customTaskData.findCustomTaskByTaskId(customTaskId);
if (taskInfo && taskInfo.customTaskId) throw new BizError(ERRORENUM.该数据周期已存在此类型任务);
await customTaskData.addTask(customTaskId, fuHuaQiTaskType, dataCycle, startMs, endMs);
await customTaskData.addTask(customTaskId, FUHUAQICUSTOMTASKTYPE.月度任务, parseInt(cycleNum), startMs, endMs);
//创建的时候要创建对应的任务
//确保数据月数据唯一
......@@ -49,6 +63,7 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
//后来改了之后 填报月与数据月可能差很多个月 为了保证数据与以前的兼容性 以及key的唯一性
//这里的key取数据月后一个月
let taskKey = dataCycleTime.add(1, 'months').format("YYYYM");
let taskCount = await taskData.findTaskCountByParamCount({key:taskKey});
if (taskCount) {
new BizError(ERRORENUM.该数据周期已存在此类型任务, `task表重复创建了${taskKey}的任务`);
......@@ -57,20 +72,18 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
let addList = [];//任务列表
let monthList = [];//月度填报列表
const MonthNumber = dataCycleTime.month()+1;
const YearNumber = dataCycleTime.year();
const MonthTableName = `${MonthNumber}月孵化器月度填报`;
const MonthTableName = `${ dataCycleTime.month()+1}月孵化器月度填报`;
let fuHuaQiList = await findAllNotDisabledFuHuaQi();
fuHuaQiList.forEach(info => {
let { uscc } = info;
let taskId = generateMonthTaskId(uscc);
addList.push(
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.孵化器月度填报, month:MonthNumber, taskId, fuHuaQiUscc:uscc, isSubmit:false, year:YearNumber},
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.新注册或迁入企业登记, month:MonthNumber, taskId, fuHuaQiUscc:uscc, isSubmit:false , year:YearNumber},
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.融资企业填报, taskId, month:MonthNumber, fuHuaQiUscc:uscc, isSubmit:false, year:YearNumber});
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.孵化器月度填报, month:DataMonth, taskId, fuHuaQiUscc:uscc, isSubmit:false, year:DataYear},
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.新注册或迁入企业登记, month:DataMonth, taskId, fuHuaQiUscc:uscc, isSubmit:false , year:DataYear},
{ key:taskKey, customTaskId:customTaskId, startTime:startMs, endTime:endMs, type:TASKTYPEENUM.融资企业填报, taskId, month:DataMonth, fuHuaQiUscc:uscc, isSubmit:false, year:DataYear});
/**任务报表的初始状态为 草稿(draftLock=fals) 未被编辑(isUpdate=false) */
monthList.push({ taskId, name:MonthTableName, fuHuaQiUscc:uscc, month:MonthNumber, year:YearNumber, draftLock:false, isUpdate:false });
monthList.push({ taskId, name:MonthTableName, fuHuaQiUscc:uscc, month:DataMonth, year:DataYear, draftLock:false, isUpdate:false });
});
try {
......@@ -81,8 +94,54 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
} catch(err) {
new BizError(ERRORENUM.系统错误, '添加任务和月度报表的时候 出现了异常 请检查数据库 ', err);
}
}
/**
* 创建自定义年度任务
*/
async function createCustomYearTask(dataCycle:number, startMs:number, endMs:number) {
//自定义任务id
let cycleNum = new Date().getFullYear();
let customTaskId = `${FUHUAQICUSTOMTASKTYPE.党建任务}_${cycleNum}`;
let taskInfo = await customTaskData.findCustomTaskByTaskId(customTaskId);
if (taskInfo && taskInfo.customTaskId) throw new BizError(ERRORENUM.该数据周期已存在此类型任务);
await customTaskData.addTask(customTaskId, FUHUAQICUSTOMTASKTYPE.党建任务, cycleNum, startMs, endMs);
//创建的时候要创建对应的任务
//确保数据月数据唯一
//说明 原本任务系统的key为数据填报月与数据月就差一个月
//后来改了之后 填报月与数据月可能差很多个月 为了保证数据与以前的兼容性 以及key的唯一性
//这里的key取数据月后一个月
return {isSuccess:true};
let taskCount = await dangJianTaskData.findCountByParam({key:cycleNum});
if (taskCount) {
new BizError(ERRORENUM.该数据周期已存在此类型任务, `task表重复创建了${cycleNum}的任务`);
return;
}
let addList = [];//任务列表
let fuHuaQiList = await findAllNotDisabledFuHuaQi();
fuHuaQiList.forEach(info => {
let { uscc } = info;
let taskId = `${uscc}${cycleNum}`;
addList.push({
taskId,
key:cycleNum,
draftLock:false,
fuHuaQiUscc:uscc
});
});
try {
//初始化 任务列表
await dangJianTaskData.createTaskToList(addList);
} catch(err) {
new BizError(ERRORENUM.系统错误, '添加党建任务的时候 出现了异常 请检查数据库 ', err);
}
}
......@@ -120,17 +179,19 @@ export async function taskList(fuHuaQiTaskType:number, dataCycle:number, pageNum
state = 4;
}
let dataCycleStr = "";
if (customTaskType == FUHUAQICUSTOMTASKTYPE.月度任务) dataCycleStr = moment(`${dataCycle}01`).format("YYYY-MM");
else if (customTaskType == FUHUAQICUSTOMTASKTYPE.党建任务) dataCycleStr = `${dataCycle}年度`;
dataList.push({
id:customTaskId,
stateStr,
state,
rate:100,
customTaskType:changeEnumValue(FUHUAQICUSTOMTASKTYPE, customTaskType),
dataCycle:moment(dataCycle).format("YYYY-MM-DD"),
dataCycle:dataCycleStr,
fillingInCycle:`${moment(startMs).format("YYYY.MM.DD")}-${moment(endMs).format("YYYY.MM.DD")}`
});
});
return {dataCount, dataList};
}
......
......@@ -9,7 +9,7 @@ import * as enterpriseData from "../../data/enterprise/enterprise";
import * as scoreBiz from "../mobileFuHuaQi/fuHuaQi/score";
import * as fuhuaqiData from "../../data/fuHuaQi/fuhuaqi";
import * as financingData from "../../data/fuHuaQi/monthTask/financing";
import { CHANGEMODE, CYCSRBJ, CYCXFX, ENTERPRISESIZE, FUHUASTATE, INDUSTRY, LISTINGSITUATION, MOVEOUTCAUSE, MOVEOUTCAUSENOTCLIENT, MOVEOUTTRACE, MOVEOUTTYPE, NASHUIRENZIZHI, RAS, SCOREWAYS, STATEENUM, TASKTYPEENUM, VIRTUALCAUSE } from "../../config/enum";
import { CHANGEMODE, CYCSRBJ, CYCXFX, ENTERPRISESIZE, FUHUAQICUSTOMTASKTYPE, FUHUASTATE, INDUSTRY, LISTINGSITUATION, MOVEOUTCAUSE, MOVEOUTCAUSENOTCLIENT, MOVEOUTTRACE, MOVEOUTTYPE, NASHUIRENZIZHI, RAS, SCOREWAYS, STATEENUM, TASKTYPEENUM, VIRTUALCAUSE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { findAllNotDisabledFuHuaQi, findFuHuaQiList } from "../../data/fuHuaQi/fuhuaqi";
import { BizError } from "../../util/bizError";
......@@ -36,6 +36,7 @@ import { extractData } from "../../util/piecemeal";
import { EnterpriseListConfig } from "../../config/splitResultConfig";
import { changeAddToString } from "../../tools/system";
import { changeEnumValue } from "../../util/verificationEnum";
import { addTask } from "../../data/fuHuaQi/customTask";
const xlsx = require('node-xlsx');
const path = require('path');
......@@ -1623,7 +1624,9 @@ export async function t() {
}
/**
* 导出在孵企业列表
*/
export async function test111() {
/**查询内容 */
let usccMap = await fuhuaqiData.findFuHuaQiOperationNameMapByParam({});//用于将孵化器uscc变成孵化器名称
......@@ -1734,3 +1737,237 @@ export async function test111() {
/** 孵化器诊断报告依赖的数据 */
export async function zhenDuanBaoGao() {
let fhqList = [
"上海狮子山企业管理有限公司",
"上海荟泉实业有限公司",
"九沐(上海)投资有限公司",
"上海闵玉物联网科技有限公司",
"上海考拉创客空间管理有限公司",
"上海雨艺创业孵化器管理有限公司"
];
async function t(name) {
let fuHuaQiInfo = await fuhuaqiData.findOnceByParam({"operationName":{"$regex":`${name}`}});
let 我的数据字段 = [
{cName:"在孵面积", key:"incubatedAcreage"},
{cName:"孵化器总面积", key:"acreageTotal"},
{cName:"孵化器自用面积", key:"acreagePersonalUse"},
{cName:"经备案孵化场地", key:"hatchingGround"},
{cName:"注册地址", key:"fuHuazhuCeDiZhi"},
{cName:"联系地址", key:"fuHuaLianXiDiZhi"}
];
let 我的数据缺失 = "";
let 我的数据缺失数量 = 0;
for (let i in 我的数据字段) {
let {cName, key} = 我的数据字段[i];
if (!fuHuaQiInfo[key]) {
我的数据缺失 += `${cName}信息、`;
我的数据缺失数量 += 1;
}
if (key == "fuHuazhuCeDiZhi" || key == "fuHuaLianXiDiZhi") {
if (!fuHuaQiInfo[key][0]) {
我的数据缺失 += `${cName}信息、`;
我的数据缺失数量 += 1;
}
}
}
let 我的数据诊断 = `我的数据:完善度:${Math.round(((我的数据字段.length - 我的数据缺失数量)/我的数据字段.length)*100)}%,`;
if (我的数据缺失数量) {
我的数据诊断 += `缺失${我的数据缺失},请尽快完善。`;
} else {
我的数据诊断 += "无信息缺失。"
}
let 我的信息字段 = [
{cName:"注册时间", key:"logonTime"},
{cName:"孵化器级别", key:"lv"},
{cName:"认定时间", key:"identificationTime"},
{cName:"孵化领域", key:"industry"},
{cName:"机构性质", key:"institutionalNature"},
{cName:"运营模式", key:"operationModel"},
{cName:"创业团队", key:"foundingTeam"},
{cName:"联系人", key:"liaison"},
{cName:"联系电话", key:"liaisonPhone"},
{cName:"孵化器简介", key:"introduction"},
];
let 我的信息缺失 = "";
let 我的信息缺失数量 = 0;
for (let i in 我的信息字段) {
let {cName, key} = 我的信息字段[i];
if (!fuHuaQiInfo[key]) {
我的信息缺失 += `${cName}信息、`;
我的信息缺失数量 += 1;
}
if (key == "foundingTeam") {
if (!fuHuaQiInfo[key][0]) {
我的信息缺失 += `${cName}信息、`;
我的信息缺失数量 += 1;
}
}
}
let 我的信息诊断 = `我的信息:完善度:${Math.round(((我的信息字段.length - 我的信息缺失数量)/我的信息字段.length)*100)}%,`;
if (我的信息缺失数量) {
我的信息诊断 += `缺失${我的信息缺失},请尽快完善。`;
} else {
我的信息诊断 += "无信息缺失。"
}
/**任务填报 */
let taskKeyList = [20246, 20245, 20244, 20243, 20242, 20241];
let taskList = await taskData.findTaskListByParam({fuHuaQiUscc:fuHuaQiInfo.uscc, key:{"$in":taskKeyList} });
let 任务填报 = "近六个月任务填报中,";
let 最新一次出租率Id = '';
taskList.forEach(element => {
let { isSubmit, type, key, taskId} = element;
if (!isSubmit) {
if (type == TASKTYPEENUM.新注册或迁入企业登记) 任务填报 += `${key}缺失新入孵企业登记,`;
else if (type == TASKTYPEENUM.孵化器月度填报) 任务填报 += `${key}缺失出租率登记,`;
else 任务填报 += `${key}缺失企业融资登记,`;
}
if (isSubmit && type == TASKTYPEENUM.孵化器月度填报 && key == 20246) {
最新一次出租率Id = taskId;
}
});
if (任务填报 == "近六个月任务填报中,") {
任务填报 += `出租率填报状况正常,企业融资情况填报正常,新增企业填报正常。均按时填报。`;
}
/**企业信息填报情况 */
let 企业信息诊断 = `我的数据中孵化器总面积为${fuHuaQiInfo.acreageTotal}㎡,自用面积为${fuHuaQiInfo.acreagePersonalUse}㎡,在孵面积为${fuHuaQiInfo.incubatedAcreage}㎡,`;
if ((fuHuaQiInfo.acreageTotal - fuHuaQiInfo.acreagePersonalUse) != fuHuaQiInfo.incubatedAcreage) {
企业信息诊断 += '自用面积与在孵面积的和不等于总面积,请核对信息正确性。';
}
let thisFuHuaInfo = await enterpriseData.statsFuHuaQiEnterpriseArea(fuHuaQiInfo.uscc);
企业信息诊断 += `在孵企业${thisFuHuaInfo.count}家,企业信息中占孵面积共计${thisFuHuaInfo.areaCount}㎡。`;
if (thisFuHuaInfo.areaCount > fuHuaQiInfo.incubatedAcreage) {
企业信息诊断 += '企业占孵面积高于在孵面积,明显不合理,需要考虑是否存在未迁出企业影响信息的正确性。'
} else {
if (最新一次出租率Id) {
let newTaskInfo = await monthTableData.findMonthTableByTaskId(最新一次出租率Id);
企业信息诊断 += `最新一次填报的出租率为${newTaskInfo.occupancyRate}%,`;
let 高或低 = '';
let 企业面积计算 = Math.round(thisFuHuaInfo.areaCount/fuHuaQiInfo.incubatedAcreage * 10000)/100
if (newTaskInfo.occupancyRate > 企业面积计算 ) {
高或低 = '高';
} else 高或低 = '低';
let 程度 = '';
if ( Math.abs(newTaskInfo.occupancyRate - 企业面积计算) >= 10) {
程度 = '远';
}else {
程度 = '略';
}
企业信息诊断 += `${程度}${高或低}于企业出租面积计算出来的出租率(${企业面积计算}%)。可能原因为企业信息未及时更新,还需着重校验每个企业占孵面积。`
} else {
企业信息诊断 += `最近一月没有任务提交。`;
}
}
let list = await enterpriseData.findEnterpriseList({fuHuaQiUscc:fuHuaQiInfo.uscc, state:{"$ne":4} });
let 缺失注册时间 = 0;
let 缺失注册时间的企业 = '';
let 缺失注册地址 = 0;
let 缺失经营地址 = 0;
let 缺失迁入前地址 = 0;
let 非新建企业 = 0;
let 实体孵化未填报孵化面积 = 0;
let 名单 = [];
let 主营业务缺失 = 0;
list.forEach(info => {
if (!info.logonAddress || !info.logonAddress[0]) 缺失注册地址 += 1;
if (!info.operatingAddress || !info.operatingAddress[0]) 缺失经营地址 += 1;
if (!info.isCreate) {
非新建企业 += 1;
if (!info.oldLogonAddress || !info.oldLogonAddress[0]) 缺失迁入前地址 += 1;
}
if (!info.logonTime) {
缺失注册时间 += 1;
缺失注册时间的企业 = info.name;
}
if (info.state == FUHUASTATE.实体孵化 && !info.leasedArea) {
实体孵化未填报孵化面积 += 1;
名单.push(info.name);
}
if (!info.mainBusiness) 主营业务缺失 += 1;
});
let count = list.length;
let 企业信息对比 = `非迁出企业共计${count}家,`;
if (缺失注册时间) 企业信息对比 += `${缺失注册时间}家企业缺失注册时间,`;
if (缺失注册地址) 企业信息对比 += `${缺失注册地址}家企业缺失注册地址,`;
if (缺失经营地址) 企业信息对比 += `${缺失经营地址}家企业缺失经营地址,`;
if (主营业务缺失) 企业信息对比 += `${主营业务缺失}家企业缺失主营业务,`;
if (缺失迁入前地址) {
企业信息对比 += `${非新建企业}家非新建企业中${缺失迁入前地址}家企业缺失迁入前地址。`
}
if (实体孵化未填报孵化面积) {
if (实体孵化未填报孵化面积 <= 2) {
企业信息对比+=`存在${实体孵化未填报孵化面积}家实体孵化企业未填报占孵面积,名单如下:`;
名单.forEach(subItem => {
企业信息对比 += `“${subItem}”、`;
})
} else {
企业信息对比 += `${count}家企业中有${实体孵化未填报孵化面积}家企业未填报占孵面积,信息缺失比较严重,请及时补充。`
}
}
console.log("=================================");
console.log(name);
console.log(我的数据诊断);
console.log(我的信息诊断);
console.log(任务填报);
console.log(企业信息诊断);
console.log(企业信息对比);
console.log("=================================");
console.log("=================================");
console.log("=================================");
console.log();
}
for (let i in fhqList) {
await t(fhqList[i]);
console.log();
}
}
/**
* 修复自定义任务
*/
export async function xiuFuCustomTask() {
//找到任务表中出现过的数据月份
let keyList = await taskData.statsTaskYearAndMonth();
let list = [];
keyList.forEach(info => {
let {_id} = info;
let {year, month} = _id;
let monthStr = month <=9 ? `0${month}` : `${month}`;
list.push({year:_id.year, month:_id.month, key:parseInt(`${year}${monthStr}`)});
});
list.sort((a, b) => {return a.key - b.key});
for (let i in list) {
let {year, month} = list[i];
let monthStr = month <=9 ? `0${month}` : `${month}`;
let dataCycle = parseInt(`${year}${monthStr}`);
let customTaskType = FUHUAQICUSTOMTASKTYPE.月度任务;
let customTaskId = `${customTaskType}_${dataCycle}`;
let startMs = moment(new Date(`${year}-${monthStr}-01 00:00:00`)).add(1, 'months').valueOf();
let endMs = moment(new Date(`${year}-${monthStr}-01 00:00:00`)).add(2, 'months').valueOf() - 1000;
await addTask(customTaskId, customTaskType, dataCycle, startMs, endMs);
//关联对应的任务
await taskData.updateTaskCustomTaskId(year, month, customTaskId);
}
console.log("数据更新完成");
//添加信息到自定义任务表中
}
\ No newline at end of file
......@@ -2,6 +2,8 @@
* ai聊天模块
*/
import { cozeGet, cozePost, post } from "../../util/request"
const request = require('request')
const AK = "SjRG4fWy8ByvLSmpBX3X7zyl"
const SK = "vA1jj6TbQoY4bXqzgZBEewNoi1eZAFoS"
......@@ -55,4 +57,50 @@ export async function checkMsg(msg:string, preConditions?) {
})
}
/**
* 字节智能体
*/
export async function cozeMsg(msg:string) {
let header = {
Authorization:'Bearer pat_2mhpgd35eLzZsh9nPghVMquAEqy73KXfDAfuqps0IWy2TT1m75P6lfuYedZGkwfW',
"Content-Type":"application/json"
};
let url = 'https://api.coze.cn/v3/chat';
let body = {
bot_id :"7395108996510089266",
conversation_id:"7397235079933902887",
user_id:"user",
stream:false,
query:msg,
auto_save_history:true
};
let result:any = await cozePost(url, body, header);
if (result.data) {
let {status, conversation_id, id} = result.data;
if (status == "in_progress") {
let max = 10;
for (let i = 0; i < max; i++) {
await sleep(1000);
let query = {conversation_id, chat_id:id};
let itemRes = await cozeGet('https://api.coze.cn/v3/chat/retrieve', query, header);
console.log(itemRes);
}
}
}
console.log();
}
function sleep(time) {
return new Promise((resolve, reject) => {
setTimeout(()=> {
resolve({});
}, time);
});
}
\ No newline at end of file
......@@ -33,6 +33,8 @@ export async function registerEnterprise(uscc:string, param) {
eccFormParam("新注册企业", eccFormParamConfig.RegisterEnterpriseParamConfig, param);
verificationEnumTools.eccEnumValue('添加新注册企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now) throw new BizError(ERRORENUM.不可选择未来时间);
/**不能出现重复的统一社会信用代码 草稿的也不行 */
let dataBaseInfo = await enterpriseData.findEnterpriseByUscc(param.uscc);
......@@ -59,8 +61,11 @@ export async function registerEnterprise(uscc:string, param) {
export async function updateRegisterEnterprise(uscc:string, param) {
/**校验表单参数 */
eccFormParam("新注册企业表单修改", eccFormParamConfig.EnterpriseParamFormConfig, param );
verificationEnumTools.eccEnumValue('修改新注册企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now) throw new BizError(ERRORENUM.不可选择未来时间);
let dataBaseInfo = await enterpriseData.findEnterpriseByDraftId(param.draftId);
if (!dataBaseInfo || !dataBaseInfo.uscc) throw new BizError(ERRORENUM.未找到数据, `库中不存在${param.uscc}这个企业`);
......@@ -97,6 +102,9 @@ export async function updateRegisterEnterprise(uscc:string, param) {
export async function moveInEnterprise(uscc:string, param) {
/**校验表单参数 */
eccFormParam("迁入企业登记", eccFormParamConfig.MoveInEnterpriseParamConfig, param );
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now || param.timeOfImmigration > now) throw new BizError(ERRORENUM.不可选择未来时间);
verificationEnumTools.eccEnumValue('添加迁入企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
......@@ -152,6 +160,8 @@ export async function moveInEnterprise(uscc:string, param) {
export async function updateMoveInEnterprise(uscc:string, param) {
/**校验表单参数 */
eccFormParam("修改迁入企业登记信息", eccFormParamConfig.EnterpriseInPutParamFormConfig, param);
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now || param.timeOfImmigration > now) throw new BizError(ERRORENUM.不可选择未来时间);
verificationEnumTools.eccEnumValue('修改迁入企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
......
......@@ -390,6 +390,8 @@ export async function updateMyEnterpriseBaseInfo(fuHuaQiUscc:string, param) {
*/
export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) {
eccFormParam("补录新迁入企业信息", eccFormParamConfig.ReplenishMyEnterpriseInPutDataConfig, param );
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now || param.timeOfImmigration > now) throw new BizError(ERRORENUM.不可选择未来时间);
verificationEnumTools.eccEnumValue('补录新迁入企业信息', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
......@@ -447,6 +449,9 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) {
eccFormParam("补录新迁入企业信息", eccFormParamConfig.ReplenishMyEnterpriseCreateDataConfig, param );
let now = new Date().valueOf();
if ( param.logonTime > now || param.firstIncubationTime > now) throw new BizError(ERRORENUM.不可选择未来时间);
verificationEnumTools.eccEnumValue('补录新迁入企业信息', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
......
/**
* 党建任务
*/
import * as eccParamConfig from "../../../config/eccParam/fuHuaQi";
import * as splitResultConfig from "../../../config/splitResultConfig";
import { STATEENUM } from "../../../config/enum";
import { NOTZHIBUTYPEENUM, SZZCFHJGSFCLDZBENUM, ZHIBUTYPEENUM } from "../../../config/enum/dangJianEnum";
import { ERRORENUM } from "../../../config/errorEnum";
import { findDangJianTaskListByTaskId } from "../../../data/fuHuaQi/monthTask/dangJian";
import { BizError } from "../../../util/bizError";
import { checkChange, extractData } from "../../../util/piecemeal";
import { eccEnumValue } from "../../../util/verificationEnum";
import { eccFormParam } from "../../../util/verificationParam";
/**
* 党建任务-众创孵化信息采集
* @param uscc
*/
export async function replenishZhongChuang(uscc:string, param) {
const FunName = '补充众创孵化信息采集';
/**校验表单参数 */
eccFormParam(FunName, eccParamConfig.DangJianZhongChuangConfig, param);
/**校验枚举 */
eccEnumValue(FunName, '董事长是党员', STATEENUM, param.zcdszdy);
eccEnumValue(FunName, '众创孵化机构是否建设党建园地', STATEENUM, param.zcfhjgsfjsdjyd);
eccEnumValue(FunName, '众创孵化机构是否成立党支部', STATEENUM, param.zcjgsfcldzs);
eccEnumValue(FunName, '众创孵化机构党支部类型', SZZCFHJGSFCLDZBENUM, param.zcjgsfcldzslx);
if (param.zcjgsfcldzs == STATEENUM.) {
eccEnumValue(FunName, '存在支部时众创孵化机构党支部类型', ZHIBUTYPEENUM, param.zcjgsfcldzslx);
if (!param.zbmc) throw new BizError(ERRORENUM.参数错误, '缺少支部名称');
if (param.dzbsfkzshyk) {
if (param.hdcs == undefined || param.hdcs == null || param.cyrs == undefined || param.cyrs == null) {
throw new BizError(ERRORENUM.参数错误, '活动人数或参与人数');
}
} else {
param.hdcs = 0;//活动次数
param.cyrs = 0;//参与人数
}
} else if (param.zcjgsfcldzs == STATEENUM.) {
eccEnumValue(FunName, '不存在支部时众创孵化机构党支部类型', NOTZHIBUTYPEENUM, param.zcjgsfcldzslx);
param.zbmc = '';//支部名称
param.dzbsfkzshyk = false;//党支部是否开展三会一课
param.hdcs = 0;//活动次数
param.cyrs = 0;//参与人数
}
const TaskId = `${uscc}${new Date().getFullYear()}`;
let dangJianTaskInfo = await findDangJianTaskListByTaskId(TaskId);
/**修改值 */
let changeList = checkChange(param, dangJianTaskInfo);
if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${param.uscc}数据无更新`);
changeList.forEach(key => {
dangJianTaskInfo[key] = param[key];
});
await dangJianTaskInfo.save();
return {isSuccess:true};
}
/**
* 众创孵化信息采集 回显
* @param uscc
*/
export async function zhongChuangInfo(uscc:string) {
const TaskId = `${uscc}${new Date().getFullYear()}`;
let dangJianTaskInfo = await findDangJianTaskListByTaskId(TaskId);
if (!dangJianTaskInfo || !dangJianTaskInfo.taskId) throw new BizError(ERRORENUM.未找到数据, `库中不存在uscc=${uscc}这个年度任务`);
let dataInfo = extractData(splitResultConfig.DangJianZhongChuangConfig, dangJianTaskInfo, false);
return {dataInfo};
}
/**
* 党建任务-在孵企业信息采集
* @param uscc
*/
export async function replenishZaiFu(uscc:string, param) {
const FunName = '补充在孵企业信息采集';
/**校验表单参数 */
eccFormParam(FunName, eccParamConfig.DangJianZaiFuConfig, param);
/**校验枚举 */
eccEnumValue(FunName, '在孵企业党建', STATEENUM, param.zfqydj);
if ((param.dy70h+param.dy80h+param.dy90h) > param.zfqydysl) throw new BizError(ERRORENUM.党员年龄分布总和大于总数);
if (param.zfqydj == STATEENUM.) {
if (!param.zfqydzbdjList.length) throw new BizError(ERRORENUM.参数错误, '缺少党支部信息');
let itemConfig = {
name:{type:"String"},//支部名称
type:{type:"Number"},//支部类型
count:{type:"Number"},//党员数量
dzbsfkzshyk:{type:"Boolean"},//党支部是否开展三会一课
hdcs:{type:"Number", notMustHave:true},//活动次数
cyrs:{type:"Number", notMustHave:true},//参与人数
};
for (let i in param.zfqydzbdjList) {
let item = param.zfqydzbdjList[i];
eccFormParam(FunName+'党支部登记', itemConfig, item);
eccEnumValue(FunName+'党支部登记', '支部类型', ZHIBUTYPEENUM, item.type);
if (item.dzbsfkzshyk) {
if (item.hdcs == undefined || item.hdcs == null || item.cyrs == undefined || item.cyrs == null) {
throw new BizError(ERRORENUM.参数错误, '活动人数或参与人数');
}
} else {
item.hdcs = 0;//活动次数
item.cyrs = 0;//参与人数
}
}
} else {
param.zfqydzbdjList = [];
}
const TaskId = `${uscc}${new Date().getFullYear()}`;
let dangJianTaskInfo = await findDangJianTaskListByTaskId(TaskId);
/**修改值 */
let changeList = checkChange(param, dangJianTaskInfo);
if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${param.uscc}数据无更新`);
changeList.forEach(key => {
dangJianTaskInfo[key] = param[key];
});
await dangJianTaskInfo.save();
return {isSuccess:true};
}
/**
* 党建任务-在孵企业信息采集回显
* @param uscc
*/
export async function zaiFuInfo(uscc:string) {
const TaskId = `${uscc}${new Date().getFullYear()}`;
let dangJianTaskInfo = await findDangJianTaskListByTaskId(TaskId);
if (!dangJianTaskInfo || !dangJianTaskInfo.taskId) throw new BizError(ERRORENUM.未找到数据, `库中不存在uscc=${uscc}这个年度任务`);
let dataInfo = extractData(splitResultConfig.DangJianZaiFuConfig, dangJianTaskInfo, false);
return {dataInfo};
}
......@@ -28,6 +28,7 @@ import * as scoreBiz from "../score";
import { enterpriseLabelEvent } from "../../../label";
import { changeEnumValue } from "../../../../util/verificationEnum";
import { LABELEVENT } from "../../../../config/enum/labelEnum";
import { findCustomTaskByTaskId } from "../../../../data/fuHuaQi/customTask";
/**
......@@ -41,6 +42,17 @@ export async function fuHuaQiTaskList(uscc:string) {
const TaskId = taskTool.getTaskId(uscc);
let taskMap = await taskData.findFuHuaQiTaskByTaskId(TaskId);
//任务还没被创建
if (!taskMap[TASKTYPEENUM.孵化器月度填报]) return {taskList:[]};
//查询这个任务是否正在进行中
let customTaskInfo = await findCustomTaskByTaskId(taskMap[TASKTYPEENUM.孵化器月度填报].customTaskId);
if (customTaskInfo && customTaskInfo.customTaskId) {
let now = new Date().valueOf();
if (now < customTaskInfo.startMs || now > customTaskInfo.endMs) {
return {taskList:[]};
}
}
let result = [];
for (let key in TASKTYPEENUM) {
......
/**
* 年度任务
* 未来这里的任务列表要和其他两个任务和一起
*/
import moment = require("moment");
import { findDangJianTaskListByTaskId } from "../../../../data/fuHuaQi/monthTask/dangJian";
import { ERRORENUM } from "../../../../config/errorEnum";
import { BizError } from "../../../../util/bizError";
import { DANGJIANTASKTYPEENUM, YEARTASKTYPEENUM } from "../../../../config/enum";
import { changeEnumValue } from "../../../../util/verificationEnum";
import { findCustomTaskByTaskId } from "../../../../data/fuHuaQi/customTask";
/**
* 孵化器的任务列表 (待办任务)
* 小程序端
* @param uscc 孵化器统一信用
* @returns [{key:1, title:'', list:[] }]
*/
export async function fuHuaQiYearTaskList(uscc:string) {
let year = new Date().getFullYear();
let taskId = `${uscc}${year}`;
let taskInfo = await findDangJianTaskListByTaskId(taskId);
let result = [];
if (taskInfo && taskInfo.taskId && !taskInfo.draftLock) {
//查询这个任务是否正在进行中
let customTaskInfo = await findCustomTaskByTaskId(taskInfo.customTaskId);
if (customTaskInfo && customTaskInfo.customTaskId) {
let now = new Date().valueOf();
if (now < customTaskInfo.startMs || now > customTaskInfo.endMs) {
return {taskList:[]};
}
}
result.push({
title:"党建工作",
key:YEARTASKTYPEENUM.党建任务,
list:[
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.众创孵化信息采集),
id:DANGJIANTASKTYPEENUM.众创孵化信息采集
},
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.在孵企业信息采集),
id:DANGJIANTASKTYPEENUM.在孵企业信息采集
}
]
});
}
return {taskList:result};
}
/**
* 孵化器 已办任务列表
* 小程序端 6.1
* 只显示本周期 已经办理的任务
* @param uscc 孵化器统一信用
* @returns [{type:1, title:'', list:[] }]
*/
export async function fuHuaQiYearTaskCompletedList(uscc:string, selectTime:number) {
let year = new Date().getFullYear();
let taskId = `${uscc}${year}`;
let taskInfo = await findDangJianTaskListByTaskId(taskId);
let editable = new Date(selectTime).getFullYear() == new Date().getFullYear();
let result = [];
if (taskInfo && taskInfo.taskId && year == taskInfo.key) {
result.push({
title:"党建工作",
key:YEARTASKTYPEENUM.党建任务,
editable,
list:[
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.众创孵化信息采集),
id:DANGJIANTASKTYPEENUM.众创孵化信息采集
},
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.在孵企业信息采集),
id:DANGJIANTASKTYPEENUM.在孵企业信息采集
}
]
});
}
return {taskList:result};
}
/**
* 孵化器 过期任务列表
* 小程序端 6.1
* 只显示上周期 过期任务
* @param uscc 孵化器统一信用
* @returns [{type:1, title:'', list:[] }]
*/
export async function fuHuaQiYearTaskPastdueList(uscc:string, selectTime) {
let year = new Date(selectTime).getFullYear();
let taskId = `${uscc}${year}`;
let taskInfo = await findDangJianTaskListByTaskId(taskId);
let result = [];
if (taskInfo.taskId && !taskInfo.draftLock) {
result.push({
title:"党建工作",
key:YEARTASKTYPEENUM.党建任务,
list:[
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.众创孵化信息采集),
id:DANGJIANTASKTYPEENUM.众创孵化信息采集
},
{
name:changeEnumValue(DANGJIANTASKTYPEENUM, DANGJIANTASKTYPEENUM.在孵企业信息采集),
id:DANGJIANTASKTYPEENUM.在孵企业信息采集
}
]
});
}
return {taskList:result};
}
/**
* 提交任务
* 小程序端
* @param uscc 孵化器统一信用代码
* @param taskType 任务类型
* @returns {isSuccess:true/false}
*/
export async function checkYearTask(uscc:string) {
let year = new Date().getFullYear();
let taskId = `${uscc}${year}`;
let dangJianTaskInfo = await findDangJianTaskListByTaskId(taskId);
/**提交限制 */
if (!dangJianTaskInfo || !dangJianTaskInfo.taskId) throw new BizError(ERRORENUM.任务不存在, uscc, taskId);
if ( dangJianTaskInfo.draftLock ) throw new BizError(ERRORENUM.不能重复提交任务, uscc);
dangJianTaskInfo.draftLock = true;
await dangJianTaskInfo.save();
return {isSuccess:true};
}
......@@ -4,7 +4,7 @@
*/
import moment = require("moment");
import { TASKTYPEENUM } from "../../../config/enum";
import { GUANWEIHUIHOMEPAGESUBTYPE, TASKTYPEENUM } from "../../../config/enum";
import { ERRORENUM } from "../../../config/errorEnum";
import { fuHuaQiEnterpairseCount } from "../../../data/enterprise/enterprise";
import { findFuHuaQiOperationNameMapByParam } from "../../../data/fuHuaQi/fuhuaqi";
......@@ -22,14 +22,18 @@ export async function taskMonthsList() {
let cycleList = await distinctCycle();
let dataList = [];
cycleList.forEach(taskId => {
let str = `${taskId}`;
let dateKey = `${str.slice(0, 4)}-${str.slice(4, 10)}`
cycleList.forEach(info => {
let {_id} = info;
let dateKey = `${_id.year}-${_id.month}`;
let monthStr = _id.month <=9 ? `0${_id.month}` : `${_id.month}`;
let sortKey = `${_id.year}${monthStr}`;
dataList.push({
key:dateKey,
value:parseInt(str)
value:parseInt(dateKey),
sortKey:parseInt(sortKey)
});
});
dataList.sort( (a, b) => {return a.sortKey-b.sortKey});
return {dataList}
}
......@@ -42,17 +46,19 @@ export async function taskMonthsList() {
* @param taskMonth
* @param name
* @param page
* @param subType
* @returns
*/
export async function taskList(submitType:number, taskYear:number, taskMonth:number, name:string, page:number) {
export async function taskList(submitType:number, dataYear:number, dataMonth:number, name:string, page:number, subType?) {
if (submitType<1 || submitType>3) throw new BizError(ERRORENUM.参数错误);
let fuHuaQiMap = {};
//获取数据年月
let dataTime = moment(new Date(`${taskYear}-${taskMonth}-1 00:00:01`).valueOf()).subtract(1,'month');
let year = dataTime.year();
let month = dataTime.month()+1;
let taskKey = `${taskYear}${taskMonth}`;
let year = dataYear
let month = dataMonth
//获取填报key
let TianBaoDataTime = moment(new Date(`${dataYear}-${dataMonth}-1 00:00:01`).valueOf()).add(1,'month');
let taskKey = `${TianBaoDataTime.year()}${TianBaoDataTime.month() + 1}`;
//获取任务状态
let takList = await findTaskListByParam({year, month});
......@@ -79,6 +85,7 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num
}
});
/**出租率 */
let monthTaskList = await findMonthTableList({year, month});
......@@ -112,23 +119,53 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num
if (name) nameMapParam = {operationName: {"$regex":`${name}`} };
let fhqNameMap = await findFuHuaQiOperationNameMapByParam(nameMapParam);
let allDataList = [];
for (let uscc in fuHuaQiMap) {
if (fhqNameMap[uscc]) {
fuHuaQiMap[uscc]["name"] = fhqNameMap[uscc];
let itemState = 0;
if (fuHuaQiMap[uscc].month.isSubmit == false || fuHuaQiMap[uscc].enterprise.isSubmit == false || fuHuaQiMap[uscc].financing.isSubmit == false) {
itemState = 3;
if (subType) {
fuHuaQiMap[uscc]["name"] = fhqNameMap[uscc];
switch (subType) {
case GUANWEIHUIHOMEPAGESUBTYPE.新注册:
if (fuHuaQiMap[uscc].enterprise.isSubmit && parseInt(fuHuaQiMap[uscc].enterprise.registerCount)) {
allDataList.push(fuHuaQiMap[uscc]);
}
break;
case GUANWEIHUIHOMEPAGESUBTYPE.新迁入:
if (fuHuaQiMap[uscc].enterprise.isSubmit && parseInt(fuHuaQiMap[uscc].enterprise.importCount)) {
allDataList.push(fuHuaQiMap[uscc]);
}
break;
case GUANWEIHUIHOMEPAGESUBTYPE.出租率:
if (fuHuaQiMap[uscc].month.isSubmit) {
allDataList.push(fuHuaQiMap[uscc]);
}
break;
case GUANWEIHUIHOMEPAGESUBTYPE.融资额:
case GUANWEIHUIHOMEPAGESUBTYPE.融资企业:
if (fuHuaQiMap[uscc].financing.isSubmit && fuHuaQiMap[uscc].financing.count != '-') {
allDataList.push(fuHuaQiMap[uscc]);
}
break;
}
} else {
itemState = 2;
fuHuaQiMap[uscc]["name"] = fhqNameMap[uscc];
let itemState = 0;
if (fuHuaQiMap[uscc].month.isSubmit == false || fuHuaQiMap[uscc].enterprise.isSubmit == false || fuHuaQiMap[uscc].financing.isSubmit == false) {
itemState = 3;
} else {
itemState = 2;
}
if (itemState == submitType || submitType == 1) allDataList.push(fuHuaQiMap[uscc]);
}
if (itemState == submitType || submitType == 1) allDataList.push(fuHuaQiMap[uscc]);
}
}
let dataCount = Object.keys(fuHuaQiMap).length;
let dataCount = allDataList.length;
/**在全量结果数据里做分页 */
let dataList = allDataList.splice((page-1)*10, page*10);
......
......@@ -18,9 +18,10 @@ import { LABELGOAL } from "../../config/enum/labelEnum";
/**
* 主页
* @param year 数据年
* @param month
* @param month 数据月
*/
export async function stagingHomePageTop(year:number, month:number) {
//上一个月周期 用于计算同比环比
let lastMonthDate = moment(new Date(`${year}-${month}-1 00:00:00`).valueOf()).subtract(1, 'month');
let lastYear = lastMonthDate.year();
let lastMonth = lastMonthDate.month() + 1;
......@@ -39,26 +40,29 @@ export async function stagingHomePageTop(year:number, month:number) {
for (let key in taskStatsMap) {
if (taskStatsMap[key]) submitCount += 1;
}
let tianBaoMonth = moment(new Date(`${year}-${month}-1 00:00:00`).valueOf()).add(1, 'month');
let nextMonthTaskId = `${tianBaoMonth.year()}${tianBaoMonth.month() + 1}`;
let statsList = [];
//新注册企业
let registerCount = await findEnterpriseCount({taskId:{"$regex":`${year}${month}$`}, isCreate:true, draftLock:true});
let registerCount = await findEnterpriseCount({taskId:{"$regex":`${nextMonthTaskId}$`}, isCreate:true, draftLock:true});
let lastMonthRegisterCount = await findEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, isCreate:true});
statsList.push({key:"新注册企业", value:registerCount, mom:Math.round(((registerCount-lastMonthRegisterCount)/lastMonthRegisterCount)*10000)/100 });
//新迁入企业
let moveInCount = await findEnterpriseCount({taskId:{"$regex":`${year}${month}$`}, isCreate:false});
let moveInCount = await findEnterpriseCount({taskId:{"$regex":`${nextMonthTaskId}$`}, isCreate:false});
let lastMonthMoveInCount = await findEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, isCreate:false});
statsList.push({key:"新迁入企业", value:moveInCount, mom:Math.round(((moveInCount-lastMonthMoveInCount)/lastMonthMoveInCount)*10000)/100 });
//平均出租率
let occupancyRateAVG = await statsAvgOccupancyRate(year, month);
let lastMonthOccupancyRateAVG = await statsAvgOccupancyRate(lastYear, lastMonth);
statsList.push({key:"平均出租率", value:occupancyRateAVG, mom:Math.round(((occupancyRateAVG-lastMonthOccupancyRateAVG)/lastMonthOccupancyRateAVG)*10000)/100 });
statsList.push({key:"平均出租率", value:occupancyRateAVG, mom:Math.round(((occupancyRateAVG-lastMonthOccupancyRateAVG)/lastMonthOccupancyRateAVG)*10000)/100 } );
//融资企业数
let financingEnterpriseCount = await statsFinancingEnterpriseCount({taskId:{"$regex":`${year}${month}$`}, draftLock:true});
let financingEnterpriseCount = await statsFinancingEnterpriseCount({taskId:{"$regex":`${nextMonthTaskId}$`}, draftLock:true});
let lastMonthFinancingEnterpriseCount = await statsFinancingEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, draftLock:true});
statsList.push({key:"融资企业", value:financingEnterpriseCount, mom:Math.round(((financingEnterpriseCount-lastMonthFinancingEnterpriseCount)/lastMonthFinancingEnterpriseCount)*10000)/100 });
//融资额
let financingCount = await statsFinancingCount({taskId:{"$regex":`${year}${month}$`}, draftLock:true});
let financingCount = await statsFinancingCount({taskId:{"$regex":`${nextMonthTaskId}$`}, draftLock:true});
let lastMonthFinancingCount = await statsFinancingCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, draftLock:true});
statsList.push({key:"融资额", value:financingCount, mom:Math.round(((financingCount-lastMonthFinancingCount)/lastMonthFinancingCount)*10000)/100 });
......
......@@ -2,7 +2,6 @@
* 埋点主要逻辑
*/
import { ENTERPRISENODEENUM, FUHUAQINODEENUM, POINTTYPEENUM } from "../config/pointConfig";
import { logError } from "../util/log";
import { post } from "../util/request";
......
......@@ -315,4 +315,37 @@ export const FuHuaQiBusinessDataConfig = {
MIS:{type:"Number"},//其他
NP:{type:"Number"},//净利润
TP:{type:"Number"},//纳税
}
\ No newline at end of file
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 党建-众创孵化信息采集
*/
export const DangJianZhongChuangConfig = {
zcdszdy:{type:"Number"},//董事长是党员
szzcfhjgdyrs:{type:"Number"},//所在众创孵化机构党员人数
zcfhjgsfjsdjyd:{type:"Number"},//众创孵化机构是否建设党建园地 STATEENUM
zcjgsfcldzs:{type:"Number"},//众创孵化机构是否成立党支部 STATEENUM
zcjgsfcldzslx:{type:"Number"},//类型 SZZCFHJGSFCLDZBENUM
zbmc:{type:"String", notMustHave:true},//支部名称
dzbsfkzshyk:{type:"Boolean", notMustHave:true},//党支部是否开展三会一课
hdcs:{type:"Number", notMustHave:true },//活动次数
cyrs:{type:"Number", notMustHave:true },//参与人数
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 党建-在孵企业信息采集
*/
export const DangJianZaiFuConfig = {
zfqydysl:{type:"Number"},//在孵企业党员数量
zfqycsrszgdysl:{type:"Number"},//在孵企业是中共党员数量
dy70h:{type:"Number"},//70后
dy80h:{type:"Number"},//80后
dy90h:{type:"Number"},//90后
jy:{type:"String"},//建议
zfqydj:{type:"Number"},//在孵企业党建 STATEENUM
zfqydzbdjList:{type:"[object]"},//党支部登记
}
......@@ -15,6 +15,21 @@ export enum QUARTERTASKTYPEENUM {
孵化器经营状况 = 4,//季度任务
}
/**
* 年度任务
*/
export enum YEARTASKTYPEENUM {
党建任务 = 100
}
/**
* 党建任务下的类型
*/
export enum DANGJIANTASKTYPEENUM {
众创孵化信息采集 = 101,
在孵企业信息采集 = 102
}
/**
* 孵化器级别
......@@ -488,7 +503,8 @@ export enum CYCSRBJ {
* 孵化器自定义任务类型
*/
export enum FUHUAQICUSTOMTASKTYPE {
月度任务 = 1
月度任务 = 1,
党建任务 = 2
}
......@@ -512,3 +528,12 @@ export enum NASHUIRENZIZHI {
一般纳税人,
增值税一般纳税人
}
export enum GUANWEIHUIHOMEPAGESUBTYPE {
新注册 = 1,
新迁入 = 2,
出租率,
融资企业,
融资额
}
\ No newline at end of file
/**
* 党建依赖枚举
*/
/**
* 所在众创孵化机构是否成立党支部
*/
export enum SZZCFHJGSFCLDZBENUM {
独立党支部 = 2,
联合党支部,
计划建党支部=11,
暂无计划
}
/**
* 支部类型
*/
export enum ZHIBUTYPEENUM {
独立党支部 = 2,
联合党支部
}
/**
* 未选择时支部类型
*/
export enum NOTZHIBUTYPEENUM {
计划建党支部=11,
暂无计划
}
......@@ -82,7 +82,9 @@ export enum ERRORENUM {
缺少月份参数,
多余年份与月份参数,
不可以创建未来数据月的任务,
填报周期不能小于数据周期
填报周期不能小于数据周期,
党员年龄分布总和大于总数,
不可选择未来时间
}
export enum ERRORCODEENUM {
......
......@@ -452,4 +452,40 @@ export const FuHuaQiBusinessDataInfoConfig = {
MIS:{key:"其他"},
NP:{key:"净利润"},
TP:{key:"纳税"},
}
\ No newline at end of file
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 众创孵化信息采集 回显
*/
export const DangJianZhongChuangConfig = {
zcdszdy:{key:"董事长是党员 "},
szzcfhjgdyrs:{key:"所在众创孵化机构党员人数"},
zcfhjgsfjsdjyd:{key:"众创孵化机构是否建设党建园地"},
zcjgsfcldzs:{key:"众创孵化机构是否成立党支部"},
zcjgsfcldzslx:{key:"类型"},
zbmc:{key:"支部名称"},
dzbsfkzshyk:{key:"党支部是否开展三会一课"},
hdcs:{key:"活动次数"},
cyrs:{key:"参与人数"},
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 众创孵化信息采集 回显
*/
export const DangJianZaiFuConfig = {
zfqydysl:{key:"在孵企业党员数量"},//
zfqycsrszgdysl:{key:"在孵企业是中共党员数量"},//
dy70h:{key:"70后"},//
dy80h:{key:"80后"},//
dy90h:{key:"90后"},//
jy:{key:"建议"},//
zfqydj:{key:"在孵企业党建"},//
zfqydzbdjList:{key:"[党支部登记]"},//
}
......@@ -603,4 +603,27 @@ export async function statsEnterpriseLabels() {
}
]);
return subList;
}
export async function statsFuHuaQiEnterpriseArea(fuHuaQiUscc:string) {
let result = await enterpriseModel.aggregate([
{
"$match":{
fuHuaQiUscc
}
},
{
$group: {
_id:"$fuHuaQiUscc",
"count": {
"$sum":1
},
"areaCount": {
"$sum":"$leasedArea"
},
}
}
]);
return result[0];
}
\ No newline at end of file
......@@ -5,12 +5,13 @@ import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
const customTaskSchema = new Schema({
customTaskId:{type:String, index:true},//格式 fuHuaQiTaskType_数据周期的YYYYMM
customTaskId:{type:String, index:true},//格式 fuHuaQiTaskType_数据周期的YYYYMM (没错,是数据周期)
customTaskType:{type:Number},//类型 遵循 FUHUAQICUSTOMTASKTYPE
dataCycle:{type:Number},//数据周期 202401 格式
startMs:{type:Number},
endMs:{type:Number},
isExtension:{type:Boolean, default:false}//是否延期
isExtension:{type:Boolean, default:false},//是否延期
ct:{type:Number}
});
var customTaskModel;
......@@ -55,7 +56,7 @@ export async function findCustomTaskByTaskId(customTaskId:string) {
* @returns
*/
export async function findCustomTaskListByPage(param, skipCount) {
return await customTaskModel.find(param).skip(skipCount).limit(10);
return await customTaskModel.find(param).sort({ct:-1}).skip(skipCount).limit(10);
}
......@@ -73,5 +74,5 @@ export async function findCustomTaskCount(param) {
* @param endMs
*/
export async function addTask(customTaskId:string, customTaskType:number, dataCycle:number, startMs:number, endMs:number ) {
await customTaskModel.create({customTaskId, customTaskType, dataCycle, startMs, endMs});
await customTaskModel.create({customTaskId, customTaskType, dataCycle, startMs, endMs, ct:new Date().valueOf()});
}
......@@ -190,7 +190,7 @@ export async function findFuHuaQiOperationNameMapByParam(param) {
* @returns map key:运营机构名称 value:uscc
*/
export async function findAllFuHuaQiOperationUsccMap() {
let dataList = await fuHuaQiModel.find({isTest:null});
let dataList = await fuHuaQiModel.find({isTest:{"$ne":true}});
let map = {};
dataList.forEach(info => {
map[info.operationName] = info.uscc;
......@@ -204,7 +204,7 @@ export async function findAllFuHuaQiOperationUsccMap() {
* @returns {} key=孵化器统一信用 value=企业数量
*/
export async function groupFindFuHuaQi() {
let match = {draftLock:true, isTest:null};//前置条件
let match = {draftLock:true, isTest:{"$ne":true}};//前置条件
let dataList = await fuHuaQiModel.aggregate([{$match:match},{$group:{_id:"$fuHuaQiUscc",count:{$sum:1}}}]).exec();
let result = {};
dataList.forEach(info => {
......@@ -221,7 +221,7 @@ export async function findAllFuHuaQiOperationUsccMap() {
* @returns []
*/
export async function findAllNotDisabledFuHuaQi() {
return await fuHuaQiModel.find({userState:false, isTest:null}, 'uscc operationName');
return await fuHuaQiModel.find({userState:false, isTest:{"$ne":true}}, 'uscc operationName');
}
......@@ -250,7 +250,7 @@ export async function createFuHuaQiToList(fuHuaQiList:object) {
* @returns {}
*/
export async function findFuHuaQiByBindId(bindId:string) {
return await fuHuaQiModel.find({bindId, isTest:null});
return await fuHuaQiModel.find({bindId, isTest:{"$ne":true}});
}
......@@ -268,10 +268,10 @@ export async function findFuHuaQiFilesDataByParam(param, files) {
export async function statsFuHuaQiLabels() {
let subList = await fuHuaQiModel.aggregate([
let subList = await fuHuaQiModel.aggregate([
{$match:{isTest:{"$ne":true}}},
{
$unwind: "$labels",
isTest:null
$unwind: "$labels"
},
{
$group: {
......@@ -279,14 +279,20 @@ export async function statsFuHuaQiLabels() {
"count": {
"$sum": {
"$cond": [
{ "$eq": ["$labels.state", true] }, // 假设 specificValue 是您想要检查的值
1,
0
{ "$eq": ["$labels.state", true] },
1,
0
]
}
}
}
}
]);
return subList;
}
export async function findOnceByParam(param) {
return await fuHuaQiModel.findOne(param);
}
\ No newline at end of file
/**
* 孵化器月度填报表
* draftLock 草稿锁 当任务提交的时候,将此字段改为true
* occupancyRate 取%号前的数据 例如 填报数据为80% 库中数据为80
* name 为系统生成 此月填报上一月内容 即2月填报时 name中月份为1月 2023-02-06 确定此需求
*
*/
import {Schema} from 'mongoose';
import { baseDB } from '../../../db/mongo/dbInit';
import { STATEENUM } from '../../../config/enum';
/**党支部登记 */
const zfqydzbdjSchema = new Schema({
name:String,//支部名称
type:Number,//支部类型 ZHIBUTYPEENUM
count:Number,//党员数量
dzbsfkzshyk:Boolean,//党支部是否开展三会一课
hdcs:Number,//活动次数
cyrs:Number,//参与人数
},{_id:false});
const dangJianTableSchema = new Schema({
taskId:{type:String, index:true},//任务id
key:{type:Number, index:true},//年度 2024 格式是YYYY
fuHuaQiUscc:{type:String, index:true},//孵化器uscc
/**众创孵化器信息采集 */
zcdszdy:{type:Number, default:STATEENUM.未选},//董事长是党员 STATEENUM
szzcfhjgdyrs:Number,//所在众创孵化机构党员人数
zcfhjgsfjsdjyd:{type:Number, default:STATEENUM.未选},//众创孵化机构是否建设党建园地 STATEENUM
zcjgsfcldzs:{type:Number, default:STATEENUM.未选},//众创孵化机构是否成立党支部 STATEENUM
zcjgsfcldzslx:Number,//众创孵化机构党支部类型 SZZCFHJGSFCLDZBENUM
zbmc:String,//支部名称
dzbsfkzshyk:Boolean,//党支部是否开展三会一课
hdcs:Number,//活动次数
cyrs:Number,//参与人数
/**在孵企业信息采集 */
zfqydysl:Number,//在孵企业党员数量
zfqycsrszgdysl:Number,//在孵企业是中共党员数量
dy70h:Number,//70后
dy80h:Number,//80后
dy90h:Number,//90后
jy:String,//建议
zfqydj:{type:Number, default:STATEENUM.未选},//在孵企业党建 STATEENUM
zfqydzbdjList:{type:[zfqydzbdjSchema], default:[]},//党支部登记
//提交状态
draftLock:{type:Boolean, default:false},//草稿锁,true为提交之后,false为草稿
submitTime:Number,//提交时间
customTaskId:{type:String}//自定义任务id 用于找关联数据
});
var dangJianTableModel;
export function initModel(){
dangJianTableModel = baseDB.model('dangJianTable', dangJianTableSchema);
dangJianTableModel.selectOnceData = async function (paramater:object) {
let selectInfo = await dangJianTableModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function findCountByParam(param) {
return await dangJianTableModel.find(param).countDocuments();
}
/**
* 批量创建任务
* @param taskList 任务列表
*/
export async function createTaskToList(taskList:object) {
await dangJianTableModel.insertMany(taskList);
}
export async function findDangJianTaskListByTaskId(taskId:string) {
return await dangJianTableModel.selectOnceData({taskId});
}
......@@ -27,7 +27,7 @@ const fuHuaQiTaskSchema = new Schema({
submitCount:{type:Number, default:0},//提交数量 默认0
startTime:{type:Number, default:0},//任务开始时间 6.0加入
endTime:{type:Number, default:0},//任务结束时间 6.0加入
customTaskId:{type:Number}//自定义任务id 用于找关联数据
customTaskId:{type:String}//自定义任务id 用于找关联数据
});
......@@ -62,7 +62,7 @@ export async function findFuHuaQiTaskByTaskId(taskId:string) {
let findList = await fuHuaQiTaskModel.find({taskId}).exec() || [];
let taskMap = {};
findList.forEach(item => {
taskMap[item.type] = {isSubmit:item.isSubmit, month:item.month};
taskMap[item.type] = {isSubmit:item.isSubmit, month:item.month, customTaskId:item.customTaskId};
});
return taskMap;
}
......@@ -150,6 +150,12 @@ export async function updateSubmitCount(taskId:string, type:number, count:number
await fuHuaQiTaskModel.updateOne({type, taskId}, {$set:{submitCount:count}});
}
/**
* 6.0数据维护
*/
export async function updateTaskCustomTaskId(year:number, month:number, customTaskId:string) {
await fuHuaQiTaskModel.updateOne({month, year}, {$set:{customTaskId:customTaskId}});
}
/**
* 获取单个月的所有孵化器的填报率
......@@ -177,5 +183,14 @@ export async function findOneFuHuaQiMonthTaskData(selectParam) {
* 填报周期
*/
export async function distinctCycle() {
return await fuHuaQiTaskModel.distinct('key');
return await fuHuaQiTaskModel.aggregate([{"$group":{
_id:{year:"$year", month:"$month"}
}}]);
}
export async function statsTaskYearAndMonth() {
return await fuHuaQiTaskModel.aggregate([{"$group":{
_id:{year:"$year", month:"$month"}
}}]);
}
\ No newline at end of file
......@@ -35,6 +35,8 @@ import * as enterpriseLabelLogModel from "../../data/enterprise/enterpriseLabelL
import * as fuHuaQiLabelLogModel from "../../data/fuHuaQi/fuHuaQiLabelLog";
import * as customTaskModel from "../../data/fuHuaQi/customTask";
/**党建任务 */
import * as dangJianModel from "../../data/fuHuaQi/monthTask/dangJian";
export async function initTable() {
......@@ -74,5 +76,5 @@ export async function initTable() {
fuHuaQiLabelLogModel.initModel();
customTaskModel.initModel();
dangJianModel.initModel();
}
\ No newline at end of file
import { zhenDuanBaoGao } from "./biz/admin/provide";
import { initPool } from "./biz/gpt/indicatorPool";
import { initOutline } from "./biz/gpt/report";
import { initSMS } from "./biz/sms";
......@@ -24,6 +25,8 @@ async function lanuch() {
/**创建http服务 */
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
// await zhenDuanBaoGao();
}
......
......@@ -19,10 +19,10 @@ export function setRouter(httpServer) {
httpServer.post('/admin/data/output/businesstasklist',checkGuanWeiHuiToken, asyncHandler(outPutQBusinessTaskList));
/**自定义任务 */
// httpServer.post('/admin/task/customtask/fuhuaqi/list', checkGuanWeiHuiToken, asyncHandler(customTaskList));
// httpServer.post('/admin/task/customtask/fuhuaqi/add', checkGuanWeiHuiToken, asyncHandler(addCustomTask));
// httpServer.post('/admin/task/customtask/fuhuaqi/recovery', checkGuanWeiHuiToken, asyncHandler(recoveryCustomTask));
// httpServer.post('/admin/task/customtask/fuhuaqi/changecycle', checkGuanWeiHuiToken, asyncHandler(changeCustomTaskCycle));
httpServer.post('/admin/task/customtask/fuhuaqi/list', checkGuanWeiHuiToken, asyncHandler(customTaskList));
httpServer.post('/admin/task/customtask/fuhuaqi/add', checkGuanWeiHuiToken, asyncHandler(addCustomTask));
httpServer.post('/admin/task/customtask/fuhuaqi/recovery', checkGuanWeiHuiToken, asyncHandler(recoveryCustomTask));
httpServer.post('/admin/task/customtask/fuhuaqi/changecycle', checkGuanWeiHuiToken, asyncHandler(changeCustomTaskCycle));
}
......
......@@ -65,15 +65,16 @@ async function fuHuaQiInfo(req, res) {
async function fuHuaQiTaskList(req, res) {
let reqConf = {
type:'Number',
type:'Number',
subType:'Number',
year:'Number',
month:'Number',
name:'String',
page:'Number'
};
let {type, year, month, name, page} = eccReqParamater(reqConf, req.body, ["name"]);
let {type, year, month, name, page, subType} = eccReqParamater(reqConf, req.body, ["name", "subType"]);
let result = await fuHuaQiManageTaskBiz.taskList(type, year, month, name, page);
let result = await fuHuaQiManageTaskBiz.taskList(type, year, month, name, page, subType);
res.success(result);
}
......
/**
* 小程序端 孵化器入口 党建表单
*/
import * as asyncHandler from 'express-async-handler';
import * as dangJianBiz from '../../biz/mobileFuHuaQi/fuHuaQi/dangJian';
import { checkFuHuaQiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/dangjian/zhongchuang/info', checkFuHuaQiToken, asyncHandler(infoZhongChuang));
httpServer.post('/fuhuaqi/dangjian/zhongchuang/replenish', checkFuHuaQiToken, asyncHandler(replenishZhongChuang));
httpServer.post('/fuhuaqi/dangjian/zaifu/info', checkFuHuaQiToken, asyncHandler(infoZaiFu));
httpServer.post('/fuhuaqi/dangjian/zaifu/replenish', checkFuHuaQiToken, asyncHandler(replenishZaiFu));
}
async function infoZhongChuang(req, res) {
const Uscc = req.headers.uscc;
let result = await dangJianBiz.zhongChuangInfo(Uscc);
res.success(result);
}
async function replenishZhongChuang(req, res) {
let reqConf = {form: 'Object' };
let { form } = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let result = await dangJianBiz.replenishZhongChuang(Uscc, form);
res.success(result);
}
async function infoZaiFu(req, res) {
const Uscc = req.headers.uscc;
let result = await dangJianBiz.zaiFuInfo(Uscc);
res.success(result);
}
async function replenishZaiFu(req, res) {
let reqConf = {form: 'Object' };
let { form } = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let result = await dangJianBiz.replenishZaiFu(Uscc, form);
res.success(result);
}
......@@ -8,6 +8,7 @@ import * as asyncHandler from 'express-async-handler';
import * as baseBiz from '../../biz/mobileFuHuaQi/fuHuaQi/base';
import * as taskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/monthTask';
import * as quarterTaskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/quarterTask';
import * as yearTaskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/yearTask';
import * as scoreBiz from '../../biz/mobileFuHuaQi/fuHuaQi/score';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
......@@ -31,6 +32,11 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/quartertask/submit', checkFuHuaQiToken, asyncHandler(submitQuarterTask));//提交待办任务
httpServer.post('/fuhuaqi/quartertask/completedlist', checkFuHuaQiToken, asyncHandler(quarterTaskCompletedList));//已办任务
httpServer.post('/fuhuaqi/quartertask/pastduelist', checkFuHuaQiToken, asyncHandler(quarterTaskPastDueList));//过期任务
/**党建任务 */
httpServer.post('/fuhuaqi/yeartask/dangjian/list', checkFuHuaQiToken, asyncHandler(dangJianTaskList));//待办任务
httpServer.post('/fuhuaqi/yeartask/dangjian/submit', checkFuHuaQiToken, asyncHandler(submitDangJianTask));//提交待办任务
httpServer.post('/fuhuaqi/yeartask/dangjian/completedlist', checkFuHuaQiToken, asyncHandler(dangJianTaskCompletedList));//已办任务
httpServer.post('/fuhuaqi/yeartask/dangjian/pastduelist', checkFuHuaQiToken, asyncHandler(dangJianTaskPastDueList));//过期任务
/**分数 */
httpServer.post('/fuhuaqi/score/ranklist', checkFuHuaQiToken, asyncHandler(scoreRankList));
httpServer.post('/fuhuaqi/score/log', checkFuHuaQiToken, asyncHandler(scoreLog));
......@@ -266,6 +272,67 @@ async function quarterTaskPastDueList(req, res) {
}
/**
* 党建任务列表
* 3.1
* @param req
* @param res
*/
async function dangJianTaskList(req, res) {
const Uscc = req.headers.uscc;
let taskListObj = await yearTaskBiz.fuHuaQiYearTaskList(Uscc);
res.success(taskListObj);
}
/**
* 季度任务 提交任务
* 3.1
* @param req
* @param res
*/
async function submitDangJianTask(req, res) {
const Uscc = req.headers.uscc;
let result = await yearTaskBiz.checkYearTask(Uscc);
res.success(result);
}
/**
* 季度任务 已办任务
* 3.1
* @param req
* @param res
*/
async function dangJianTaskCompletedList(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {selectTime:'Number'};
let { selectTime } = eccReqParamater(reqConf, req.body);
let result = await yearTaskBiz.fuHuaQiYearTaskCompletedList(Uscc, selectTime);
res.success(result);
}
/**
* 季度任务 过期任务
* 3.1
* @param req
* @param res
*/
async function dangJianTaskPastDueList(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {selectTime:'Number'};
let { selectTime } = eccReqParamater(reqConf, req.body);
let result = await yearTaskBiz.fuHuaQiYearTaskPastdueList(Uscc, selectTime);
res.success(result);
}
/**
* 首页政策列表
* @param req
......
......@@ -57,6 +57,8 @@ export function setRouter(httpServer) {
/**第一次企业数据清洗 */
httpServer.post('/admin/provide/enterprise/etl1', checkInterior, asyncHandler(etlfirst) );
/** */
httpServer.post('/admin/provide/fuhuaqi/customtask/6', checkInterior, asyncHandler(customTaskAndTaskId) );
}
......@@ -216,4 +218,9 @@ async function outPutOnceEnterpriseFor91310115MA1K4TB91Q(req, res) {
async function etlfirst(req, res) {
await provideBiz.ETL();
res.success({isUsccess:true});
}
async function customTaskAndTaskId(req, res) {
await provideBiz.xiuFuCustomTask();
res.success({isUsccess:true});
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import * as asyncHandler from 'express-async-handler';
import { FUHUAQILV, INSTITUTIONALNATURE, FUHUAINDUSTRY, INDUSTRY, FUHUAQILNVESTMENTSTYLE, OPERATIONMODEL, TEAM, DEGREE, FINANCINGROUNDS, INSIDESTATE, VIRTUALCAUSE, MOVEOUTTYPE, MOVEOUTCAUSECLIENT, MOVEOUTCAUSENOTCLIENT, MOVEOUTTRACE, ENTERPRISETEAM, LISTINGSITUATION, BUSINESSDATATYPE, COOPERATIONMODE, SPECIALITY, TEACHERLV, ZJBEYONDLAYOUTOPERATIONMODE, CYCXFX, CYCSRBJ, FUHUAQICUSTOMTASKTYPE } from '../config/enum';
import { selectLabelList } from '../data/label';
import { GUANWEIHUIMANANGENTERPRISELABEL, LABELTYPE, LABELGOAL, FHQSYSTEMLABEL } from '../config/enum/labelEnum';
import { NOTZHIBUTYPEENUM, ZHIBUTYPEENUM } from '../config/enum/dangJianEnum';
export function setRouter(httpServer) {
httpServer.post('/public/fuhuaqilv', asyncHandler(getFuHuaQiLv));
......@@ -43,7 +44,9 @@ export function setRouter(httpServer) {
httpServer.post('/public/enterpriseselectlist', asyncHandler(enterpriseSelectList) );
httpServer.post('/public/admin/enterprilabelselectlist', asyncHandler(enterpriLabelSelectList) );
httpServer.post('/public/fuhuaqiselectlist', asyncHandler(fuHuaQiSelectList) );
/**6.1 */
httpServer.post('/public/zhibutypeselect', asyncHandler(fuHuaQiZhiBuTypeSelectList) );
httpServer.post('/public/notzhibutypeselect', asyncHandler(fuHuaQiNotZhiBuTypeSelectList) );
}
/**
......@@ -543,3 +546,35 @@ async function fuHuaQiSelectList(req, res) {
res.success({dataList});
}
/**
* 成立支部类型
* @param req
* @param res
*/
async function fuHuaQiZhiBuTypeSelectList(req, res) {
let lvList = [];
for (let key in ZHIBUTYPEENUM ) {
let anyKey:any = key;
if (isNaN(anyKey)) {
lvList.push({key, value:ZHIBUTYPEENUM[key]});
}
}
res.success({lvList});
}
/**
* 未成立支部类型
* @param req
* @param res
*/
async function fuHuaQiNotZhiBuTypeSelectList(req, res) {
let lvList = [];
for (let key in NOTZHIBUTYPEENUM) {
let anyKey:any = key;
if (isNaN(anyKey)) {
lvList.push({key, value:NOTZHIBUTYPEENUM[key]});
}
}
res.success({lvList});
}
\ No newline at end of file
......@@ -41,6 +41,8 @@ import * as adminLabelsRouters from './admin/labels';
import * as guanWeiHuiMobileClientRouters from './guanWeiHuiMobileClient/manange';
import * as guanWeiHuiMobileClientUserRouters from './guanWeiHuiMobileClient/user';
import * as dangJianRouters from './mobileClient/dangJian';
export function setRouter(httpServer){
/**下拉框等公用 路由 */
publicRouters.setRouter(httpServer);
......@@ -89,4 +91,7 @@ export function setRouter(httpServer){
/**管委会 */
guanWeiHuiMobileClientRouters.setRouter(httpServer);
guanWeiHuiMobileClientUserRouters.setRouter(httpServer);
/**党建 */
dangJianRouters.setRouter(httpServer);
}
\ No newline at end of file
......@@ -37,9 +37,9 @@ export function post(url, body, headers) {
json: true,
headers: Object.assign(header, headers),
body: body
}, function(error, response, body) {
}, function(error, response, resBody) {
if (!error && response.statusCode == 200) {
resolve(body);
resolve(resBody);
}
else {
// reject(error)
......@@ -66,3 +66,41 @@ export function postForm(url, body, headers) {
});
})
}
export function cozePost(url, body, headers) {
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
let header = {"content-type": "application/json"};
return new Promise((resolve, reject)=>{
request({
url: url,
method: "POST",
json: true,
headers: Object.assign(header, headers),
body: body
}, function(error, response, resBody) {
if (!error) {
resolve(resBody);
}
else {
resolve(error);
}
});
})
}
export function cozeGet(url:string, query?, headers?) {
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
return new Promise((resolve, reject)=>{
let paramater:any = { url, json:true };
if (query) paramater.qs = query;
if (headers) paramater.headers = headers;
request.get(paramater, function (err, r, body) {
if (!err) {
resolve(body);
}
else {
resolve(err);
}
});
})
}
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