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"; ...@@ -10,6 +10,7 @@ import * as customTaskData from "../../../data/fuHuaQi/customTask";
import { BizError } from "../../../util/bizError"; import { BizError } from "../../../util/bizError";
import { ERRORENUM } from "../../../config/errorEnum"; import { ERRORENUM } from "../../../config/errorEnum";
import * as taskData from "../../../data/fuHuaQi/monthTask/task"; 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 * as monthTableData from "../../../data/fuHuaQi/monthTask/monthTable";
import { findAllNotDisabledFuHuaQi } from "../../../data/fuHuaQi/fuhuaqi"; import { findAllNotDisabledFuHuaQi } from "../../../data/fuHuaQi/fuhuaqi";
import { generateMonthTaskId } from "../../../tools/taskTool"; import { generateMonthTaskId } from "../../../tools/taskTool";
...@@ -24,24 +25,37 @@ 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) { export async function createTask(fuHuaQiTaskType:number, dataCycle:number, startMs:number, endMs:number) {
eccEnumValue("创建自定义任务", "", FUHUAQICUSTOMTASKTYPE, fuHuaQiTaskType); 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 dataCycleTime = moment(dataCycle);
let cycleNum = dataCycleTime.format("YYYYMM");//数据周期格式化 let cycleNum = dataCycleTime.format("YYYYMM");//数据周期格式化 数据月
const DataMonth = dataCycleTime.month() + 1;
//限制 不能创建为了数据月的任务 const DataYear = dataCycleTime.year();
let thisMonth = moment().startOf('month').format('YYYYMM');
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.填报周期不能小于数据周期); 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); let taskInfo = await customTaskData.findCustomTaskByTaskId(customTaskId);
if (taskInfo && taskInfo.customTaskId) throw new BizError(ERRORENUM.该数据周期已存在此类型任务); 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 ...@@ -49,6 +63,7 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
//后来改了之后 填报月与数据月可能差很多个月 为了保证数据与以前的兼容性 以及key的唯一性 //后来改了之后 填报月与数据月可能差很多个月 为了保证数据与以前的兼容性 以及key的唯一性
//这里的key取数据月后一个月 //这里的key取数据月后一个月
let taskKey = dataCycleTime.add(1, 'months').format("YYYYM"); let taskKey = dataCycleTime.add(1, 'months').format("YYYYM");
let taskCount = await taskData.findTaskCountByParamCount({key:taskKey}); let taskCount = await taskData.findTaskCountByParamCount({key:taskKey});
if (taskCount) { if (taskCount) {
new BizError(ERRORENUM.该数据周期已存在此类型任务, `task表重复创建了${taskKey}的任务`); new BizError(ERRORENUM.该数据周期已存在此类型任务, `task表重复创建了${taskKey}的任务`);
...@@ -57,20 +72,18 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start ...@@ -57,20 +72,18 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
let addList = [];//任务列表 let addList = [];//任务列表
let monthList = [];//月度填报列表 let monthList = [];//月度填报列表
const MonthNumber = dataCycleTime.month()+1; const MonthTableName = `${ dataCycleTime.month()+1}月孵化器月度填报`;
const YearNumber = dataCycleTime.year();
const MonthTableName = `${MonthNumber}月孵化器月度填报`;
let fuHuaQiList = await findAllNotDisabledFuHuaQi(); let fuHuaQiList = await findAllNotDisabledFuHuaQi();
fuHuaQiList.forEach(info => { fuHuaQiList.forEach(info => {
let { uscc } = info; let { uscc } = info;
let taskId = generateMonthTaskId(uscc); let taskId = generateMonthTaskId(uscc);
addList.push( 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:DataMonth, taskId, fuHuaQiUscc:uscc, isSubmit:false, year:DataYear},
{ 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:DataMonth, taskId, fuHuaQiUscc:uscc, isSubmit:false , year:DataYear},
{ 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.融资企业填报, taskId, month:DataMonth, fuHuaQiUscc:uscc, isSubmit:false, year:DataYear});
/**任务报表的初始状态为 草稿(draftLock=fals) 未被编辑(isUpdate=false) */ /**任务报表的初始状态为 草稿(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 { try {
...@@ -81,8 +94,54 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start ...@@ -81,8 +94,54 @@ export async function createTask(fuHuaQiTaskType:number, dataCycle:number, start
} catch(err) { } catch(err) {
new BizError(ERRORENUM.系统错误, '添加任务和月度报表的时候 出现了异常 请检查数据库 ', 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 ...@@ -120,17 +179,19 @@ export async function taskList(fuHuaQiTaskType:number, dataCycle:number, pageNum
state = 4; state = 4;
} }
let dataCycleStr = "";
if (customTaskType == FUHUAQICUSTOMTASKTYPE.月度任务) dataCycleStr = moment(`${dataCycle}01`).format("YYYY-MM");
else if (customTaskType == FUHUAQICUSTOMTASKTYPE.党建任务) dataCycleStr = `${dataCycle}年度`;
dataList.push({ dataList.push({
id:customTaskId, id:customTaskId,
stateStr, stateStr,
state, state,
rate:100, rate:100,
customTaskType:changeEnumValue(FUHUAQICUSTOMTASKTYPE, customTaskType), 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")}` fillingInCycle:`${moment(startMs).format("YYYY.MM.DD")}-${moment(endMs).format("YYYY.MM.DD")}`
}); });
}); });
return {dataCount, dataList}; return {dataCount, dataList};
} }
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* ai聊天模块 * ai聊天模块
*/ */
import { cozeGet, cozePost, post } from "../../util/request"
const request = require('request') const request = require('request')
const AK = "SjRG4fWy8ByvLSmpBX3X7zyl" const AK = "SjRG4fWy8ByvLSmpBX3X7zyl"
const SK = "vA1jj6TbQoY4bXqzgZBEewNoi1eZAFoS" const SK = "vA1jj6TbQoY4bXqzgZBEewNoi1eZAFoS"
...@@ -55,4 +57,50 @@ export async function checkMsg(msg:string, preConditions?) { ...@@ -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) { ...@@ -33,6 +33,8 @@ export async function registerEnterprise(uscc:string, param) {
eccFormParam("新注册企业", eccFormParamConfig.RegisterEnterpriseParamConfig, param); eccFormParam("新注册企业", eccFormParamConfig.RegisterEnterpriseParamConfig, param);
verificationEnumTools.eccEnumValue('添加新注册企业', 'industry', configEnum.INDUSTRY, param.industry); verificationEnumTools.eccEnumValue('添加新注册企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); 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); let dataBaseInfo = await enterpriseData.findEnterpriseByUscc(param.uscc);
...@@ -59,8 +61,11 @@ export async function registerEnterprise(uscc:string, param) { ...@@ -59,8 +61,11 @@ export async function registerEnterprise(uscc:string, param) {
export async function updateRegisterEnterprise(uscc:string, param) { export async function updateRegisterEnterprise(uscc:string, param) {
/**校验表单参数 */ /**校验表单参数 */
eccFormParam("新注册企业表单修改", eccFormParamConfig.EnterpriseParamFormConfig, param ); eccFormParam("新注册企业表单修改", eccFormParamConfig.EnterpriseParamFormConfig, param );
verificationEnumTools.eccEnumValue('修改新注册企业', 'industry', configEnum.INDUSTRY, param.industry); verificationEnumTools.eccEnumValue('修改新注册企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); 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); let dataBaseInfo = await enterpriseData.findEnterpriseByDraftId(param.draftId);
if (!dataBaseInfo || !dataBaseInfo.uscc) throw new BizError(ERRORENUM.未找到数据, `库中不存在${param.uscc}这个企业`); if (!dataBaseInfo || !dataBaseInfo.uscc) throw new BizError(ERRORENUM.未找到数据, `库中不存在${param.uscc}这个企业`);
...@@ -97,6 +102,9 @@ export async function updateRegisterEnterprise(uscc:string, param) { ...@@ -97,6 +102,9 @@ export async function updateRegisterEnterprise(uscc:string, param) {
export async function moveInEnterprise(uscc:string, param) { export async function moveInEnterprise(uscc:string, param) {
/**校验表单参数 */ /**校验表单参数 */
eccFormParam("迁入企业登记", eccFormParamConfig.MoveInEnterpriseParamConfig, 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); verificationEnumTools.eccEnumValue('添加迁入企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
...@@ -152,6 +160,8 @@ export async function moveInEnterprise(uscc:string, param) { ...@@ -152,6 +160,8 @@ export async function moveInEnterprise(uscc:string, param) {
export async function updateMoveInEnterprise(uscc:string, param) { export async function updateMoveInEnterprise(uscc:string, param) {
/**校验表单参数 */ /**校验表单参数 */
eccFormParam("修改迁入企业登记信息", eccFormParamConfig.EnterpriseInPutParamFormConfig, 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); verificationEnumTools.eccEnumValue('修改迁入企业', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
......
...@@ -390,6 +390,8 @@ export async function updateMyEnterpriseBaseInfo(fuHuaQiUscc:string, param) { ...@@ -390,6 +390,8 @@ export async function updateMyEnterpriseBaseInfo(fuHuaQiUscc:string, param) {
*/ */
export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) { export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) {
eccFormParam("补录新迁入企业信息", eccFormParamConfig.ReplenishMyEnterpriseInPutDataConfig, 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); verificationEnumTools.eccEnumValue('补录新迁入企业信息', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法);
...@@ -447,6 +449,9 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param) ...@@ -447,6 +449,9 @@ export async function replenishMyEnterpriseInPutInfo(fuHuaQiUscc:string, param)
export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) { export async function replenishMyEnterpriseCreateInfo(fuHuaQiUscc:string, param) {
eccFormParam("补录新迁入企业信息", eccFormParamConfig.ReplenishMyEnterpriseCreateDataConfig, 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); verificationEnumTools.eccEnumValue('补录新迁入企业信息', 'industry', configEnum.INDUSTRY, param.industry);
if ( !sysTools.eccUscc(param.uscc) ) throw new BizError(ERRORENUM.统一社会信用代码不合法); 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"; ...@@ -28,6 +28,7 @@ import * as scoreBiz from "../score";
import { enterpriseLabelEvent } from "../../../label"; import { enterpriseLabelEvent } from "../../../label";
import { changeEnumValue } from "../../../../util/verificationEnum"; import { changeEnumValue } from "../../../../util/verificationEnum";
import { LABELEVENT } from "../../../../config/enum/labelEnum"; import { LABELEVENT } from "../../../../config/enum/labelEnum";
import { findCustomTaskByTaskId } from "../../../../data/fuHuaQi/customTask";
/** /**
...@@ -41,6 +42,17 @@ export async function fuHuaQiTaskList(uscc:string) { ...@@ -41,6 +42,17 @@ export async function fuHuaQiTaskList(uscc:string) {
const TaskId = taskTool.getTaskId(uscc); const TaskId = taskTool.getTaskId(uscc);
let taskMap = await taskData.findFuHuaQiTaskByTaskId(TaskId); 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 = []; let result = [];
for (let key in TASKTYPEENUM) { 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 @@ ...@@ -4,7 +4,7 @@
*/ */
import moment = require("moment"); import moment = require("moment");
import { TASKTYPEENUM } from "../../../config/enum"; import { GUANWEIHUIHOMEPAGESUBTYPE, TASKTYPEENUM } from "../../../config/enum";
import { ERRORENUM } from "../../../config/errorEnum"; import { ERRORENUM } from "../../../config/errorEnum";
import { fuHuaQiEnterpairseCount } from "../../../data/enterprise/enterprise"; import { fuHuaQiEnterpairseCount } from "../../../data/enterprise/enterprise";
import { findFuHuaQiOperationNameMapByParam } from "../../../data/fuHuaQi/fuhuaqi"; import { findFuHuaQiOperationNameMapByParam } from "../../../data/fuHuaQi/fuhuaqi";
...@@ -22,14 +22,18 @@ export async function taskMonthsList() { ...@@ -22,14 +22,18 @@ export async function taskMonthsList() {
let cycleList = await distinctCycle(); let cycleList = await distinctCycle();
let dataList = []; let dataList = [];
cycleList.forEach(taskId => { cycleList.forEach(info => {
let str = `${taskId}`; let {_id} = info;
let dateKey = `${str.slice(0, 4)}-${str.slice(4, 10)}` let dateKey = `${_id.year}-${_id.month}`;
let monthStr = _id.month <=9 ? `0${_id.month}` : `${_id.month}`;
let sortKey = `${_id.year}${monthStr}`;
dataList.push({ dataList.push({
key:dateKey, key:dateKey,
value:parseInt(str) value:parseInt(dateKey),
sortKey:parseInt(sortKey)
}); });
}); });
dataList.sort( (a, b) => {return a.sortKey-b.sortKey});
return {dataList} return {dataList}
} }
...@@ -42,17 +46,19 @@ export async function taskMonthsList() { ...@@ -42,17 +46,19 @@ export async function taskMonthsList() {
* @param taskMonth * @param taskMonth
* @param name * @param name
* @param page * @param page
* @param subType
* @returns * @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.参数错误); if (submitType<1 || submitType>3) throw new BizError(ERRORENUM.参数错误);
let fuHuaQiMap = {}; let fuHuaQiMap = {};
//获取数据年月 //获取数据年月
let dataTime = moment(new Date(`${taskYear}-${taskMonth}-1 00:00:01`).valueOf()).subtract(1,'month'); let year = dataYear
let year = dataTime.year(); let month = dataMonth
let month = dataTime.month()+1; //获取填报key
let taskKey = `${taskYear}${taskMonth}`; 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}); let takList = await findTaskListByParam({year, month});
...@@ -79,6 +85,7 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num ...@@ -79,6 +85,7 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num
} }
}); });
/**出租率 */ /**出租率 */
let monthTaskList = await findMonthTableList({year, month}); let monthTaskList = await findMonthTableList({year, month});
...@@ -112,23 +119,53 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num ...@@ -112,23 +119,53 @@ export async function taskList(submitType:number, taskYear:number, taskMonth:num
if (name) nameMapParam = {operationName: {"$regex":`${name}`} }; if (name) nameMapParam = {operationName: {"$regex":`${name}`} };
let fhqNameMap = await findFuHuaQiOperationNameMapByParam(nameMapParam); let fhqNameMap = await findFuHuaQiOperationNameMapByParam(nameMapParam);
let allDataList = []; let allDataList = [];
for (let uscc in fuHuaQiMap) { for (let uscc in fuHuaQiMap) {
if (fhqNameMap[uscc]) { if (fhqNameMap[uscc]) {
fuHuaQiMap[uscc]["name"] = fhqNameMap[uscc]; if (subType) {
let itemState = 0; fuHuaQiMap[uscc]["name"] = fhqNameMap[uscc];
if (fuHuaQiMap[uscc].month.isSubmit == false || fuHuaQiMap[uscc].enterprise.isSubmit == false || fuHuaQiMap[uscc].financing.isSubmit == false) { switch (subType) {
itemState = 3; 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 { } 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); let dataList = allDataList.splice((page-1)*10, page*10);
......
...@@ -18,9 +18,10 @@ import { LABELGOAL } from "../../config/enum/labelEnum"; ...@@ -18,9 +18,10 @@ import { LABELGOAL } from "../../config/enum/labelEnum";
/** /**
* 主页 * 主页
* @param year 数据年 * @param year 数据年
* @param month * @param month 数据月
*/ */
export async function stagingHomePageTop(year:number, month:number) { export async function stagingHomePageTop(year:number, month:number) {
//上一个月周期 用于计算同比环比
let lastMonthDate = moment(new Date(`${year}-${month}-1 00:00:00`).valueOf()).subtract(1, 'month'); let lastMonthDate = moment(new Date(`${year}-${month}-1 00:00:00`).valueOf()).subtract(1, 'month');
let lastYear = lastMonthDate.year(); let lastYear = lastMonthDate.year();
let lastMonth = lastMonthDate.month() + 1; let lastMonth = lastMonthDate.month() + 1;
...@@ -39,26 +40,29 @@ export async function stagingHomePageTop(year:number, month:number) { ...@@ -39,26 +40,29 @@ export async function stagingHomePageTop(year:number, month:number) {
for (let key in taskStatsMap) { for (let key in taskStatsMap) {
if (taskStatsMap[key]) submitCount += 1; 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 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}); let lastMonthRegisterCount = await findEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, isCreate:true});
statsList.push({key:"新注册企业", value:registerCount, mom:Math.round(((registerCount-lastMonthRegisterCount)/lastMonthRegisterCount)*10000)/100 }); 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}); let lastMonthMoveInCount = await findEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, isCreate:false});
statsList.push({key:"新迁入企业", value:moveInCount, mom:Math.round(((moveInCount-lastMonthMoveInCount)/lastMonthMoveInCount)*10000)/100 }); statsList.push({key:"新迁入企业", value:moveInCount, mom:Math.round(((moveInCount-lastMonthMoveInCount)/lastMonthMoveInCount)*10000)/100 });
//平均出租率 //平均出租率
let occupancyRateAVG = await statsAvgOccupancyRate(year, month); let occupancyRateAVG = await statsAvgOccupancyRate(year, month);
let lastMonthOccupancyRateAVG = await statsAvgOccupancyRate(lastYear, lastMonth); 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}); let lastMonthFinancingEnterpriseCount = await statsFinancingEnterpriseCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, draftLock:true});
statsList.push({key:"融资企业", value:financingEnterpriseCount, mom:Math.round(((financingEnterpriseCount-lastMonthFinancingEnterpriseCount)/lastMonthFinancingEnterpriseCount)*10000)/100 }); 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}); let lastMonthFinancingCount = await statsFinancingCount({taskId:{"$regex":`${lastYear}${lastMonth}$`}, draftLock:true});
statsList.push({key:"融资额", value:financingCount, mom:Math.round(((financingCount-lastMonthFinancingCount)/lastMonthFinancingCount)*10000)/100 }); statsList.push({key:"融资额", value:financingCount, mom:Math.round(((financingCount-lastMonthFinancingCount)/lastMonthFinancingCount)*10000)/100 });
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
* 埋点主要逻辑 * 埋点主要逻辑
*/ */
import { ENTERPRISENODEENUM, FUHUAQINODEENUM, POINTTYPEENUM } from "../config/pointConfig";
import { logError } from "../util/log"; import { logError } from "../util/log";
import { post } from "../util/request"; import { post } from "../util/request";
......
...@@ -315,4 +315,37 @@ export const FuHuaQiBusinessDataConfig = { ...@@ -315,4 +315,37 @@ export const FuHuaQiBusinessDataConfig = {
MIS:{type:"Number"},//其他 MIS:{type:"Number"},//其他
NP:{type:"Number"},//净利润 NP:{type:"Number"},//净利润
TP:{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 { ...@@ -15,6 +15,21 @@ export enum QUARTERTASKTYPEENUM {
孵化器经营状况 = 4,//季度任务 孵化器经营状况 = 4,//季度任务
} }
/**
* 年度任务
*/
export enum YEARTASKTYPEENUM {
党建任务 = 100
}
/**
* 党建任务下的类型
*/
export enum DANGJIANTASKTYPEENUM {
众创孵化信息采集 = 101,
在孵企业信息采集 = 102
}
/** /**
* 孵化器级别 * 孵化器级别
...@@ -488,7 +503,8 @@ export enum CYCSRBJ { ...@@ -488,7 +503,8 @@ export enum CYCSRBJ {
* 孵化器自定义任务类型 * 孵化器自定义任务类型
*/ */
export enum FUHUAQICUSTOMTASKTYPE { export enum FUHUAQICUSTOMTASKTYPE {
月度任务 = 1 月度任务 = 1,
党建任务 = 2
} }
...@@ -512,3 +528,12 @@ export enum NASHUIRENZIZHI { ...@@ -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 { ...@@ -82,7 +82,9 @@ export enum ERRORENUM {
缺少月份参数, 缺少月份参数,
多余年份与月份参数, 多余年份与月份参数,
不可以创建未来数据月的任务, 不可以创建未来数据月的任务,
填报周期不能小于数据周期 填报周期不能小于数据周期,
党员年龄分布总和大于总数,
不可选择未来时间
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -452,4 +452,40 @@ export const FuHuaQiBusinessDataInfoConfig = { ...@@ -452,4 +452,40 @@ export const FuHuaQiBusinessDataInfoConfig = {
MIS:{key:"其他"}, MIS:{key:"其他"},
NP:{key:"净利润"}, NP:{key:"净利润"},
TP:{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() { ...@@ -603,4 +603,27 @@ export async function statsEnterpriseLabels() {
} }
]); ]);
return subList; 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'; ...@@ -5,12 +5,13 @@ import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit'; import { baseDB } from '../../db/mongo/dbInit';
const customTaskSchema = new Schema({ const customTaskSchema = new Schema({
customTaskId:{type:String, index:true},//格式 fuHuaQiTaskType_数据周期的YYYYMM customTaskId:{type:String, index:true},//格式 fuHuaQiTaskType_数据周期的YYYYMM (没错,是数据周期)
customTaskType:{type:Number},//类型 遵循 FUHUAQICUSTOMTASKTYPE customTaskType:{type:Number},//类型 遵循 FUHUAQICUSTOMTASKTYPE
dataCycle:{type:Number},//数据周期 202401 格式 dataCycle:{type:Number},//数据周期 202401 格式
startMs:{type:Number}, startMs:{type:Number},
endMs:{type:Number}, endMs:{type:Number},
isExtension:{type:Boolean, default:false}//是否延期 isExtension:{type:Boolean, default:false},//是否延期
ct:{type:Number}
}); });
var customTaskModel; var customTaskModel;
...@@ -55,7 +56,7 @@ export async function findCustomTaskByTaskId(customTaskId:string) { ...@@ -55,7 +56,7 @@ export async function findCustomTaskByTaskId(customTaskId:string) {
* @returns * @returns
*/ */
export async function findCustomTaskListByPage(param, skipCount) { 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) { ...@@ -73,5 +74,5 @@ export async function findCustomTaskCount(param) {
* @param endMs * @param endMs
*/ */
export async function addTask(customTaskId:string, customTaskType:number, dataCycle:number, startMs:number, endMs:number ) { 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) { ...@@ -190,7 +190,7 @@ export async function findFuHuaQiOperationNameMapByParam(param) {
* @returns map key:运营机构名称 value:uscc * @returns map key:运营机构名称 value:uscc
*/ */
export async function findAllFuHuaQiOperationUsccMap() { export async function findAllFuHuaQiOperationUsccMap() {
let dataList = await fuHuaQiModel.find({isTest:null}); let dataList = await fuHuaQiModel.find({isTest:{"$ne":true}});
let map = {}; let map = {};
dataList.forEach(info => { dataList.forEach(info => {
map[info.operationName] = info.uscc; map[info.operationName] = info.uscc;
...@@ -204,7 +204,7 @@ export async function findAllFuHuaQiOperationUsccMap() { ...@@ -204,7 +204,7 @@ export async function findAllFuHuaQiOperationUsccMap() {
* @returns {} key=孵化器统一信用 value=企业数量 * @returns {} key=孵化器统一信用 value=企业数量
*/ */
export async function groupFindFuHuaQi() { 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 dataList = await fuHuaQiModel.aggregate([{$match:match},{$group:{_id:"$fuHuaQiUscc",count:{$sum:1}}}]).exec();
let result = {}; let result = {};
dataList.forEach(info => { dataList.forEach(info => {
...@@ -221,7 +221,7 @@ export async function findAllFuHuaQiOperationUsccMap() { ...@@ -221,7 +221,7 @@ export async function findAllFuHuaQiOperationUsccMap() {
* @returns [] * @returns []
*/ */
export async function findAllNotDisabledFuHuaQi() { 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) { ...@@ -250,7 +250,7 @@ export async function createFuHuaQiToList(fuHuaQiList:object) {
* @returns {} * @returns {}
*/ */
export async function findFuHuaQiByBindId(bindId:string) { 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) { ...@@ -268,10 +268,10 @@ export async function findFuHuaQiFilesDataByParam(param, files) {
export async function statsFuHuaQiLabels() { export async function statsFuHuaQiLabels() {
let subList = await fuHuaQiModel.aggregate([ let subList = await fuHuaQiModel.aggregate([
{$match:{isTest:{"$ne":true}}},
{ {
$unwind: "$labels", $unwind: "$labels"
isTest:null
}, },
{ {
$group: { $group: {
...@@ -279,14 +279,20 @@ export async function statsFuHuaQiLabels() { ...@@ -279,14 +279,20 @@ export async function statsFuHuaQiLabels() {
"count": { "count": {
"$sum": { "$sum": {
"$cond": [ "$cond": [
{ "$eq": ["$labels.state", true] }, // 假设 specificValue 是您想要检查的值 { "$eq": ["$labels.state", true] },
1, 1,
0 0
] ]
} }
} }
} }
} }
]); ]);
return subList; 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({ ...@@ -27,7 +27,7 @@ const fuHuaQiTaskSchema = new Schema({
submitCount:{type:Number, default:0},//提交数量 默认0 submitCount:{type:Number, default:0},//提交数量 默认0
startTime:{type:Number, default:0},//任务开始时间 6.0加入 startTime:{type:Number, default:0},//任务开始时间 6.0加入
endTime:{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) { ...@@ -62,7 +62,7 @@ export async function findFuHuaQiTaskByTaskId(taskId:string) {
let findList = await fuHuaQiTaskModel.find({taskId}).exec() || []; let findList = await fuHuaQiTaskModel.find({taskId}).exec() || [];
let taskMap = {}; let taskMap = {};
findList.forEach(item => { 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; return taskMap;
} }
...@@ -150,6 +150,12 @@ export async function updateSubmitCount(taskId:string, type:number, count:number ...@@ -150,6 +150,12 @@ export async function updateSubmitCount(taskId:string, type:number, count:number
await fuHuaQiTaskModel.updateOne({type, taskId}, {$set:{submitCount:count}}); 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) { ...@@ -177,5 +183,14 @@ export async function findOneFuHuaQiMonthTaskData(selectParam) {
* 填报周期 * 填报周期
*/ */
export async function distinctCycle() { 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 ...@@ -35,6 +35,8 @@ import * as enterpriseLabelLogModel from "../../data/enterprise/enterpriseLabelL
import * as fuHuaQiLabelLogModel from "../../data/fuHuaQi/fuHuaQiLabelLog"; import * as fuHuaQiLabelLogModel from "../../data/fuHuaQi/fuHuaQiLabelLog";
import * as customTaskModel from "../../data/fuHuaQi/customTask"; import * as customTaskModel from "../../data/fuHuaQi/customTask";
/**党建任务 */
import * as dangJianModel from "../../data/fuHuaQi/monthTask/dangJian";
export async function initTable() { export async function initTable() {
...@@ -74,5 +76,5 @@ export async function initTable() { ...@@ -74,5 +76,5 @@ export async function initTable() {
fuHuaQiLabelLogModel.initModel(); fuHuaQiLabelLogModel.initModel();
customTaskModel.initModel(); customTaskModel.initModel();
dangJianModel.initModel();
} }
\ No newline at end of file
import { zhenDuanBaoGao } from "./biz/admin/provide";
import { initPool } from "./biz/gpt/indicatorPool"; import { initPool } from "./biz/gpt/indicatorPool";
import { initOutline } from "./biz/gpt/report"; import { initOutline } from "./biz/gpt/report";
import { initSMS } from "./biz/sms"; import { initSMS } from "./biz/sms";
...@@ -24,6 +25,8 @@ async function lanuch() { ...@@ -24,6 +25,8 @@ async function lanuch() {
/**创建http服务 */ /**创建http服务 */
httpServer.createServer(systemConfig.port); httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
// await zhenDuanBaoGao();
} }
......
...@@ -19,10 +19,10 @@ export function setRouter(httpServer) { ...@@ -19,10 +19,10 @@ export function setRouter(httpServer) {
httpServer.post('/admin/data/output/businesstasklist',checkGuanWeiHuiToken, asyncHandler(outPutQBusinessTaskList)); 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/list', checkGuanWeiHuiToken, asyncHandler(customTaskList));
// httpServer.post('/admin/task/customtask/fuhuaqi/add', checkGuanWeiHuiToken, asyncHandler(addCustomTask)); 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/recovery', checkGuanWeiHuiToken, asyncHandler(recoveryCustomTask));
// httpServer.post('/admin/task/customtask/fuhuaqi/changecycle', checkGuanWeiHuiToken, asyncHandler(changeCustomTaskCycle)); httpServer.post('/admin/task/customtask/fuhuaqi/changecycle', checkGuanWeiHuiToken, asyncHandler(changeCustomTaskCycle));
} }
......
...@@ -65,15 +65,16 @@ async function fuHuaQiInfo(req, res) { ...@@ -65,15 +65,16 @@ async function fuHuaQiInfo(req, res) {
async function fuHuaQiTaskList(req, res) { async function fuHuaQiTaskList(req, res) {
let reqConf = { let reqConf = {
type:'Number', type:'Number',
subType:'Number',
year:'Number', year:'Number',
month:'Number', month:'Number',
name:'String', name:'String',
page:'Number' 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); 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'; ...@@ -8,6 +8,7 @@ import * as asyncHandler from 'express-async-handler';
import * as baseBiz from '../../biz/mobileFuHuaQi/fuHuaQi/base'; import * as baseBiz from '../../biz/mobileFuHuaQi/fuHuaQi/base';
import * as taskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/monthTask'; import * as taskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/monthTask';
import * as quarterTaskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task/quarterTask'; 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 * as scoreBiz from '../../biz/mobileFuHuaQi/fuHuaQi/score';
import { eccReqParamater } from '../../util/verificationParam'; import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user'; import { checkFuHuaQiToken } from '../../middleware/user';
...@@ -31,6 +32,11 @@ export function setRouter(httpServer) { ...@@ -31,6 +32,11 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/quartertask/submit', checkFuHuaQiToken, asyncHandler(submitQuarterTask));//提交待办任务 httpServer.post('/fuhuaqi/quartertask/submit', checkFuHuaQiToken, asyncHandler(submitQuarterTask));//提交待办任务
httpServer.post('/fuhuaqi/quartertask/completedlist', checkFuHuaQiToken, asyncHandler(quarterTaskCompletedList));//已办任务 httpServer.post('/fuhuaqi/quartertask/completedlist', checkFuHuaQiToken, asyncHandler(quarterTaskCompletedList));//已办任务
httpServer.post('/fuhuaqi/quartertask/pastduelist', checkFuHuaQiToken, asyncHandler(quarterTaskPastDueList));//过期任务 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/ranklist', checkFuHuaQiToken, asyncHandler(scoreRankList));
httpServer.post('/fuhuaqi/score/log', checkFuHuaQiToken, asyncHandler(scoreLog)); httpServer.post('/fuhuaqi/score/log', checkFuHuaQiToken, asyncHandler(scoreLog));
...@@ -266,6 +272,67 @@ async function quarterTaskPastDueList(req, res) { ...@@ -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 * @param req
......
...@@ -57,6 +57,8 @@ export function setRouter(httpServer) { ...@@ -57,6 +57,8 @@ export function setRouter(httpServer) {
/**第一次企业数据清洗 */ /**第一次企业数据清洗 */
httpServer.post('/admin/provide/enterprise/etl1', checkInterior, asyncHandler(etlfirst) ); 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) { ...@@ -216,4 +218,9 @@ async function outPutOnceEnterpriseFor91310115MA1K4TB91Q(req, res) {
async function etlfirst(req, res) { async function etlfirst(req, res) {
await provideBiz.ETL(); await provideBiz.ETL();
res.success({isUsccess:true}); 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'; ...@@ -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 { 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 { selectLabelList } from '../data/label';
import { GUANWEIHUIMANANGENTERPRISELABEL, LABELTYPE, LABELGOAL, FHQSYSTEMLABEL } from '../config/enum/labelEnum'; import { GUANWEIHUIMANANGENTERPRISELABEL, LABELTYPE, LABELGOAL, FHQSYSTEMLABEL } from '../config/enum/labelEnum';
import { NOTZHIBUTYPEENUM, ZHIBUTYPEENUM } from '../config/enum/dangJianEnum';
export function setRouter(httpServer) { export function setRouter(httpServer) {
httpServer.post('/public/fuhuaqilv', asyncHandler(getFuHuaQiLv)); httpServer.post('/public/fuhuaqilv', asyncHandler(getFuHuaQiLv));
...@@ -43,7 +44,9 @@ export function setRouter(httpServer) { ...@@ -43,7 +44,9 @@ export function setRouter(httpServer) {
httpServer.post('/public/enterpriseselectlist', asyncHandler(enterpriseSelectList) ); httpServer.post('/public/enterpriseselectlist', asyncHandler(enterpriseSelectList) );
httpServer.post('/public/admin/enterprilabelselectlist', asyncHandler(enterpriLabelSelectList) ); httpServer.post('/public/admin/enterprilabelselectlist', asyncHandler(enterpriLabelSelectList) );
httpServer.post('/public/fuhuaqiselectlist', asyncHandler(fuHuaQiSelectList) ); 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) { ...@@ -543,3 +546,35 @@ async function fuHuaQiSelectList(req, res) {
res.success({dataList}); 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'; ...@@ -41,6 +41,8 @@ import * as adminLabelsRouters from './admin/labels';
import * as guanWeiHuiMobileClientRouters from './guanWeiHuiMobileClient/manange'; import * as guanWeiHuiMobileClientRouters from './guanWeiHuiMobileClient/manange';
import * as guanWeiHuiMobileClientUserRouters from './guanWeiHuiMobileClient/user'; import * as guanWeiHuiMobileClientUserRouters from './guanWeiHuiMobileClient/user';
import * as dangJianRouters from './mobileClient/dangJian';
export function setRouter(httpServer){ export function setRouter(httpServer){
/**下拉框等公用 路由 */ /**下拉框等公用 路由 */
publicRouters.setRouter(httpServer); publicRouters.setRouter(httpServer);
...@@ -89,4 +91,7 @@ export function setRouter(httpServer){ ...@@ -89,4 +91,7 @@ export function setRouter(httpServer){
/**管委会 */ /**管委会 */
guanWeiHuiMobileClientRouters.setRouter(httpServer); guanWeiHuiMobileClientRouters.setRouter(httpServer);
guanWeiHuiMobileClientUserRouters.setRouter(httpServer); guanWeiHuiMobileClientUserRouters.setRouter(httpServer);
/**党建 */
dangJianRouters.setRouter(httpServer);
} }
\ No newline at end of file
...@@ -37,9 +37,9 @@ export function post(url, body, headers) { ...@@ -37,9 +37,9 @@ export function post(url, body, headers) {
json: true, json: true,
headers: Object.assign(header, headers), headers: Object.assign(header, headers),
body: body body: body
}, function(error, response, body) { }, function(error, response, resBody) {
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
resolve(body); resolve(resBody);
} }
else { else {
// reject(error) // reject(error)
...@@ -66,3 +66,41 @@ export function postForm(url, body, headers) { ...@@ -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