Commit e2b75076 by 孙香冬
parents 0c546391 e6a966f3
......@@ -12,7 +12,7 @@ import { findEnterpriseListByTaskId, updateEnterpriseDraftLock } from "../../dat
import { findFinancingListByTaskId, updateFinancingDraftLock } from "../../data/enterprise/financing";
import { findAllFuHuaQi } from "../../data/fuHuaQi/fuhuaqi";
import { findmonthTableByTaskId, findmonthTableListByTaskId } from "../../data/fuHuaQi/monthTable";
import { createTaskData, createTaskToList, findFuHuaQiTaskByKeyAndUscc, findTaskByTaskId, findTaskCountByKey } from "../../data/fuHuaQi/task";
import { findEnterpriseByTaskIdAndType, createTaskToList, findFuHuaQiTaskByTaskId, findTaskByTaskId, findTaskCountByKey } from "../../data/fuHuaQi/task";
import { BizError } from "../../util/bizError";
import { logConsole, logHandle } from "../../util/log";
import { extractData, getTaskId, getTimeKey } from "../../util/tools";
......@@ -27,20 +27,23 @@ export async function fuHuaQiTaskList(uscc:string) {
let result = [];
const TimeKey = getTimeKey();
let taskMap = await findFuHuaQiTaskByKeyAndUscc(uscc, TimeKey);
const TaskId = getTaskId(uscc);
let taskMap = await findFuHuaQiTaskByTaskId(TaskId);
let taskTypeMapConf = {};
for (let key in TASKTYPEENUM) {
let k:any = key;
if (isNaN(k)) taskTypeMapConf[TASKTYPEENUM[key]] = key;
}
const TaskId = getTaskId(uscc);
for (let typeStr in taskTypeMapConf) {
let typeKey = parseInt(typeStr);
let onceObj = { key:typeKey, title:taskTypeMapConf[typeStr], enterpriseList:[]};
if (!taskMap[typeStr]) { //没有提交任务
let onceTaskInfo = taskMap[typeStr];
if (!onceTaskInfo.isSubmit) { //没有提交任务
let dataList = [];
switch(typeKey) {
......@@ -70,15 +73,16 @@ export async function fuHuaQiTaskList(uscc:string) {
export async function checkTask(uscc:string, taskType:number) {
const TimeKey = getTimeKey();
const TaskId = getTaskId(uscc);
let taskMap = await findFuHuaQiTaskByKeyAndUscc(uscc, TimeKey);
let taskInfo = await findEnterpriseByTaskIdAndType(TaskId, taskType);
if ( taskMap[taskType] ) throw new BizError(ERRORENUM.不能重复提交任务, uscc, taskType);
if (!taskInfo) throw new BizError(ERRORENUM.任务不存在, uscc, TaskId);
if ( taskInfo.isSubmit ) throw new BizError(ERRORENUM.不能重复提交任务, uscc, taskType);
switch (taskType) {
case TASKTYPEENUM.孵化器月度填报:
let tableInfo = await findmonthTableByTaskId(TaskId);
if (!tableInfo) throw new BizError(ERRORENUM.该报表需要填写本月内容后提交, uscc, taskType);
if ( tableInfo.draftLock ) throw new BizError(ERRORENUM.不能重复提交任务, uscc, taskType, 'lock = true');
if ( tableInfo.draftLock ) throw new BizError(ERRORENUM.不能重复提交任务, uscc, taskType, '月度表lock = true');
tableInfo.draftLock = true;
await tableInfo.save();
break;
......@@ -91,7 +95,10 @@ export async function checkTask(uscc:string, taskType:number) {
}
//添加一条任务
await createTaskData(uscc, TimeKey, TaskId, taskType);
taskInfo.isSubmit = true;
taskInfo.submitTime = new Date().valueOf();
await taskInfo.save();
return {isSuccess:true};
}
......
......@@ -18,6 +18,7 @@ export enum ERRORENUM {
密码长度不能超过24个字符,
账号不存在,
已入库的企业不能删除,
任务不存在
}
export enum ERRORCODEENUM {
......
......@@ -15,7 +15,7 @@ const fuHuaQiTaskSchema = new Schema({
type: {type:Number,index: true},//任务类型
taskId:String,//任务id
fuHuaQiUscc:String,//任务所属孵化器id
createTime:Number,//提交时间
submitTime:Number,//提交时间
// relevanceId:String,//任务关联的表 financing 或 enterprise 的id 弃用
isSubmit:Boolean,//是否提交
});
......@@ -23,33 +23,48 @@ const fuHuaQiTaskSchema = new Schema({
var fuHuaQiTaskModel;
export function initModel(){
fuHuaQiTaskModel = baseDB.model('fuHuaQiTask', fuHuaQiTaskSchema);
fuHuaQiTaskModel.selectOnceData = async function (paramater:object) {
let selectInfo = await fuHuaQiTaskModel.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);
});
}
/**
* 通过统一信用代码和任务日期标识 查询孵化器任务
* @param uscc 孵化器代码
* @param key 任务日期标识
* @returns {YYYYMM:{}, YYYYMM:{}}
* 通过任务id 查询孵化器任务
* @param taskId 任务id
* @returns {1:{}, 2:{}}
*/
export async function findFuHuaQiTaskByKeyAndUscc(uscc:string, key:string) {
let findList = await fuHuaQiTaskModel.find({fuHuaQiUscc:uscc, key}).exec() || [];
export async function findFuHuaQiTaskByTaskId(taskId:string) {
let findList = await fuHuaQiTaskModel.find({taskId}).exec() || [];
let taskMap = {};
findList.forEach(item => {
taskMap[item.type] = 1;
taskMap[item.type] = item;
});
return taskMap;
}
/**
* 归档时添加任务信息
* @param uscc 统一信用代码
* @param key 任务日期标识
* 通过任务id和类型获取任务信息
* 支持.save方法保存对象修改
* @param taskId 任务id
* @param type 任务类型
* @returns {}
*/
export async function createTaskData(uscc:string, key:string, taskId:string, type:number ) {
let addInfo = {key, type, taskId, fuHuaQiUscc:uscc, createTime:new Date().valueOf()};
await fuHuaQiTaskModel.create(addInfo);
export async function findEnterpriseByTaskIdAndType(taskId:string, type:number) {
return await fuHuaQiTaskModel.selectOnceData({taskId, type});
}
......
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