Commit f527f0f8 by lixinming

逻辑补充

parent 978d3441
/**
* 月度表单逻辑层
* 作者: 陈金晶
* 月度表单相关逻辑 包括孵化器月度填报的增删改查
* 月度表单在孵化器任务生成时 就会在库里存在数据
* 需求说明 1.月度填报必须填值才能提交
* 逻辑说明 1.月度表单在孵化器任务生成时一起生成
* 2.草稿锁(draftLock)默认=false draftLock=true表示这个任务被提交了 草稿锁用于判断孵化器有没有提交
* 3.提交状态(isUpdate)默认=false 这个字段=true代表编辑过 这个字段=false表示不存在此任务
* 可以通过这个字段判断孵化器有没有填报
* 4.不可以创建数据 因为数据一个月只能有一个 并且这一个系统会生成
* 5.创建和删除按钮触发 相当于更新了isUpdate的状态
*/
import { ERRORENUM } from "../../config/errorEnum";
import { BizError } from "../../util/bizError";
import * as monthData from "../../data/fuHuaQi/monthTable";
......@@ -17,7 +23,7 @@ import { OUTPUTTYPE } from "../../config/enum";
/**
* 新添加孵化器月度填报
* 小程序端
* 逻辑是 将填报编辑状态修改
* 逻辑是 将填报编辑状态修改为true 当库里=true时
* @param uscc 孵化器的统一信用代码
* @param occupancyRate 本月出租率
* @returns {isSuccess:true/false}
......@@ -26,8 +32,10 @@ export async function createReport(uscc:string, occupancyRate:number) {
const TaskId = sysTools.getTaskId(uscc);
let dataBaseInfo = await monthData.findMonthTableByTaskId(TaskId);
/**不可以重复创建 */
if ( dataBaseInfo.isUpdate ) throw new BizError(ERRORENUM.该孵化器月度填报已存在, `${uscc}重复提交了月度填报值为${occupancyRate}`);
/**更新状态和数据 */
dataBaseInfo.isUpdate = true;
dataBaseInfo.occupancyRate = occupancyRate;
......@@ -49,13 +57,16 @@ export async function updateReport(uscc:string, occupancyRate:number) {
let dataBaseInfo = await monthData.findMonthTableByTaskId(TaskId);
if (!dataBaseInfo || !dataBaseInfo.taskId) throw new BizError(ERRORENUM.未找到数据, `未找到${uscc}的月度报表` );
if ( !dataBaseInfo.isUpdate ) throw new BizError(ERRORENUM.未找到数据, `${uscc}还没有创建数据就修改了${occupancyRate}`);
if ( dataBaseInfo.draftLock ) throw new BizError(ERRORENUM.该任务已提交, `${uscc}已经提交了月度报表又 修改 数据${occupancyRate}`);
dataBaseInfo.occupancyRate = occupancyRate;
await dataBaseInfo.save();
return {isSuccess:true};
}
/**
* 删除孵化器月度报表
* 小程序端
......@@ -66,7 +77,8 @@ export async function deleteReport(uscc:string) {
const TaskId = sysTools.getTaskId(uscc);
let dataBaseInfo = await monthData.findMonthTableByTaskId(TaskId);
if (!dataBaseInfo.isUpdate) throw new BizError(ERRORENUM.未找到数据, `未找到${uscc}的月度报表`);
if ( !dataBaseInfo || !dataBaseInfo.isUpdate) throw new BizError(ERRORENUM.未找到数据, `未找到${uscc}的月度报表`);
if ( dataBaseInfo.draftLock ) throw new BizError(ERRORENUM.该任务已提交, `${uscc}已经提交了月度报表又 删除 数据`);
dataBaseInfo.isUpdate = false; //修改编辑状态
......@@ -75,9 +87,11 @@ export async function deleteReport(uscc:string) {
return {isSuccess:true};
}
/**
* 根据uscc查询月度报表
* 小程序端 回显
* 不能回显已经提交的任务
* @param uscc 企业统一信用代码
* @returns {occupancyRate:0} occupancyRate 本月出租率
*/
......@@ -86,6 +100,7 @@ export async function getMonthByUscc(uscc:string) {
let dataBaseInfo = await monthData.findMonthTableByTaskId(TaskId);
if ( !dataBaseInfo.isUpdate ) throw new BizError(ERRORENUM.未找到数据, `未找到${uscc}的月度报表` );
if ( dataBaseInfo.draftLock ) throw new BizError(ERRORENUM.该任务已提交, `${uscc}已经提交了月度报表又 回显 数据`);
let data = extractData(splitResultConfig.MonthConfig, dataBaseInfo, false);
......@@ -103,7 +118,7 @@ export async function getMonthByUscc(uscc:string) {
*/
export async function monthTableList(state:number, year:number, month:number, page:number) {
let selectParam:any = {};
// if (state) selectParam.state = state;
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
}
......@@ -140,7 +155,7 @@ export async function monthTableList(state:number, year:number, month:number, pa
*/
export async function outPutMonthTableList(state:number, year:number, month:number, type:number) {
let selectParam:any = {};
// if (state) selectParam.state = state;
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (type == OUTPUTTYPE.当前数据 ) {
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
......@@ -151,10 +166,11 @@ export async function outPutMonthTableList(state:number, year:number, month:numb
let dataBaseList = await monthData.findMonthTableList(selectParam);
let operationNameMap = await findAllFuHuaQiOperationNameMap();
let dataList = [];
let keyList = [ "operationName", "state", "time", "occupancyRate"];
let titleList = [ "运营机构名称","填报状态","数据月份","出租率(%)"];
let dataList = [titleList];
dataBaseList.forEach( info => {
let onceInfo = {
operationName:operationNameMap[info.fuHuaQiUscc],
......@@ -162,27 +178,14 @@ export async function outPutMonthTableList(state:number, year:number, month:numb
time:`${info.year}${info.month}月`,
occupancyRate:info.occupancyRate || '-'
};
dataList.push(onceInfo);
});
let keyList = [
"operationName",
"state",
"time",
"occupancyRate",
];
let titleList = [
"运营机构名称","填报状态","数据月份","出租率(%)"
];
let result = [titleList];
dataList.forEach(info => {
let subList = [];
keyList.forEach(subInfo => {
subList.push(info[subInfo] || '');
subList.push(onceInfo[subInfo] || '');
});
result.push(subList);
dataList.push(subList);
});
return result;
return dataList;
}
\ No newline at end of file
......@@ -25,7 +25,8 @@ export enum ERRORENUM {
密码只能由618位字符和数字组成,
统一社会信用代码不合法,
统一社会信用代码重复,
系统错误
系统错误,
该任务已提交
}
export enum ERRORCODEENUM {
......
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