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);