Commit 01c2a029 by lixinming

no message

parent 28f0071f
/**
* 党费管理
*
*/
import moment = require("moment");
import { BRANCHNAME, ENTRYTYPE, OPERATIONALDATATYPE, PAYTYPE, TABLENAME } from "../config/enum/enum";
import { operationalData, selectData, selectManyTableData } from "../data/operationalData";
import { changeEnumValue, eccEnumValue } from "../tools/eccEnum";
import { getClientMs, getMySqlMs } from "../tools/systemTools";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/enum/errorEnum";
/**
* 党费列表
* @param state
* @param payableMonth
* @param name
*/
export async function expensesList(state:number, payableMonth:number, name:string, pageNumber:number) {
const FuncName = "党费列表";
eccEnumValue(FuncName, 'state', PAYTYPE, state );
let selectParam:any = {payType:state};
if (payableMonth) selectParam.payableMonth = getMySqlMs(payableMonth);
if (name) selectParam.name = {"%like%":name};
let includeConf = {};
let column = ["peId", "bId", "payableMonth", "payTime", "payAmount"];
includeConf[TABLENAME.党员基础信息表] = ["name"];
let tableData = await selectManyTableData(OPERATIONALDATATYPE.多表分页, TABLENAME.党费管理表, selectParam, column, includeConf, pageNumber );
let dataCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.党费管理表, selectParam, null );
let dataList = [];
tableData.forEach(info => {
let {peId, bId, payableMonth, payTime, payAmount, partyMember} = info;
dataList.push({
peId, bId:changeEnumValue(BRANCHNAME, bId),
payableMonth:moment(payableMonth).format("YYYY-MM"),
payTime:moment(payTime).format("YYYY-MM-DD"),
payAmount,
name:partyMember.name
});
});
return {dataCount, dataList};
}
/**
* 已经缴纳 回显
* @param peId
* @returns
*/
export async function expensesInfo(peId:number) {
let column = ["peId", "payableMonth", "payAmount"];
let includeConf = {};
includeConf[TABLENAME.党员基础信息表] = ["name"];
let dbExpensesInfo = await selectManyTableData(OPERATIONALDATATYPE.多表单个, TABLENAME.党费管理表, { peId }, column, includeConf );
return {
expensesInfo:{
name:dbExpensesInfo.partyMember.name,
peId:dbExpensesInfo.peId,
payableMonth:getClientMs(dbExpensesInfo.payableMonth),
payAmount:dbExpensesInfo.payAmount
}
}
}
/**
* 修改已缴纳党费
* @param peId
* @param payAmount
*/
export async function updateExpensesPayAmount(userInfo, peId:number, payAmount:number) {
const FuncName = "修改已缴纳党费";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let expensesInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党费管理表, {peId}, ["peId", "payType"] );
if (!expensesInfo || !expensesInfo.peId) throw new BizError(ERRORENUM.目标数据不存在, FuncName, `${peId}不存在`);
if (expensesInfo.payType != PAYTYPE.已缴纳) {
throw new BizError(ERRORENUM.只能修改已缴纳数据, `${userInfo.userId}尝试${FuncName}${peId}`);
}
if (!payAmount) throw new BizError(ERRORENUM.修改金额不能为0, `${userInfo.userId}${FuncName}金额为${payAmount}` )
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.党费管理表, {payAmount}, {peId} );
return {isSuccess:true};
}
/**
* 删除已缴纳党费
* @param userInfo
* @param peId
* @returns
*/
export async function updateExpensesPayStatsToFalse(userInfo, peId:number) {
const FuncName = "修改已缴纳党费成未缴纳";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let expensesInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党费管理表, {peId}, ["peId", "payType"] );
if (!expensesInfo || !expensesInfo.peId) throw new BizError(ERRORENUM.目标数据不存在, FuncName, `${peId}不存在`);
if (expensesInfo.payType != PAYTYPE.已缴纳) {
throw new BizError(ERRORENUM.只能修改已缴纳数据, `${userInfo.userId}尝试${FuncName}${peId}`);
}
let updateDataInfo = {payAmount:0, payType:PAYTYPE.未缴纳};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.党费管理表, updateDataInfo, {peId} );
return {isSuccess:true};
}
/**
* 补录已缴党费
* @param userInfo
* @param pmId
* @param payableMonth
* @param payAmount
* @returns
*/
export async function addExpensesPayToPaid(userInfo, pmId:string, payableMonth:number, payAmount:number) {
const FuncName = "补录党费";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
if (!payAmount) throw new BizError(ERRORENUM.修改金额不能为0, `${userInfo.userId}${FuncName}金额为${payAmount}` );
let onceMemberInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党员基础信息表, {pmId}, ["pmId", "bId", "etId"] );
if ( !onceMemberInfo || !onceMemberInfo.pmId ) {
throw new BizError(ERRORENUM.用户不存在, `${userInfo.userId}尝试${FuncName}${pmId}不存在`);
}
if (onceMemberInfo.etId != ENTRYTYPE.正式党员) throw new BizError(ERRORENUM.目标用户不是正式党员, `${userInfo.userId}尝试${FuncName}${pmId}不是党员`);
let selectParam = {pmId, payableMonth:getMySqlMs(payableMonth)};
let distinctExpensesInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党费管理表, selectParam, ["peId", "payType"] );
if ( distinctExpensesInfo.peId ) {
throw new BizError(ERRORENUM.不能补录已经存在的数据, `${userInfo.userId}尝试${FuncName}时候已经存在${pmId}${selectParam.payableMonth}的数据`);
}
let addInfo = {
pmId, payAmount, payableMonth:getMySqlMs(payableMonth), bId:onceMemberInfo.bId, payType:PAYTYPE.已缴纳, payTime:getMySqlMs()
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.党费管理表, addInfo, null);
return {isSuccess:true};
}
/**未缴纳的方法 */
/**
* 未缴纳改成缴纳
* @param userInfo
* @param peId
* @param pmId
* @param bId
* @param payableMonth
* @param payAmount
*/
export async function changeToPaid(userInfo, peId:number, payAmount:number) {
const FuncName = "未缴纳改成缴纳";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let expensesInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党费管理表, {peId}, ["peId", "payType"] );
if (!expensesInfo || !expensesInfo.peId) throw new BizError(ERRORENUM.目标数据不存在, FuncName, `${peId}不存在`);
if (expensesInfo.payType == PAYTYPE.已缴纳) {
throw new BizError(ERRORENUM.目标数据已缴纳, `${userInfo.userId}尝试${FuncName}${peId}`);
}
if (!payAmount) throw new BizError(ERRORENUM.修改金额不能为0, `${userInfo.userId}${FuncName}金额为${payAmount}` );
let updateInfo = {
payTime:getMySqlMs(),
payAmount,
payType:PAYTYPE.已缴纳
};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.党费管理表, updateInfo, {peId} );
return {isSuccess:true};
}
/**
* 批量缴纳
* @param userInfo
* @param peIdList
* @param payAmount
* @returns
*/
export async function bulkChangeToPaid(userInfo, peIdList, payAmount:number) {
const FuncName = "批量缴纳";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let selectParam = {peId:{"%in%":peIdList }};
let expensesInfoList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党费管理表, selectParam, ["peId", "payType"] );
if (!payAmount) throw new BizError(ERRORENUM.修改金额不能为0, `${userInfo.userId}${FuncName}金额为${payAmount}` );
expensesInfoList.forEach(info => {
let {peId, payType} = info;
if (payType == PAYTYPE.已缴纳) {
throw new BizError(ERRORENUM.目标数据已缴纳, `${userInfo.userId}尝试${FuncName}${peId}`);
}
});
let updateInfo = {
payTime:getMySqlMs(),
payAmount,
payType:PAYTYPE.已缴纳
};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.党费管理表, updateInfo, selectParam );
return {isSuccess:true};
}
/**
* 回显未缴费信息
* @param userInfo
* @param peId
*/
export async function getUnpaidInfo(userInfo, peId:number) {
const FuncName = "录入缴纳信息";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let column = ["peId", "payableMonth", "payAmount", "bId"];
let includeConf = {};
includeConf[TABLENAME.党员基础信息表] = ["name"];
let dbExpensesInfo = await selectManyTableData(OPERATIONALDATATYPE.多表单个, TABLENAME.党费管理表, { peId }, column, includeConf );
if (!dbExpensesInfo || !dbExpensesInfo.peId) throw new BizError(ERRORENUM.目标数据不存在, FuncName, `${peId}不存在`);
if (dbExpensesInfo.payType == PAYTYPE.已缴纳) {
throw new BizError(ERRORENUM.目标数据已缴纳, `${userInfo.userId}尝试${FuncName}${peId}`);
}
return {
expensesInfo:{
name:dbExpensesInfo.partyMember.name,
peId:dbExpensesInfo.peId,
payableMonth:getClientMs(dbExpensesInfo.payableMonth),
bId:dbExpensesInfo.bId
}
}
}
/**
* 删除缴费信息
* @param userInfo
* @param pmId
* @param payableMonth
* @param payAmount
*/
export async function delUnpaidInfo(userInfo, peId:number) {
const FuncName = "录入缴纳信息";
if (!userInfo.isSuperAdmin) throw new BizError(ERRORENUM.权限不足, `${userInfo.userId}尝试${FuncName}`);
let column = ["peId", "payableMonth", "payAmount", "bId"];
let dbExpensesInfo = await selectData(OPERATIONALDATATYPE.多表单个, TABLENAME.党费管理表, { peId }, column );
if (!dbExpensesInfo || !dbExpensesInfo.peId) throw new BizError(ERRORENUM.目标数据不存在, FuncName, `${peId}不存在`);
await operationalData(OPERATIONALDATATYPE.删除, TABLENAME.党费管理表, null, { peId } );
return { isSuccess:true};
}
\ No newline at end of file
......@@ -11,7 +11,8 @@ export enum OPERATIONALDATATYPE {
分页查询='/yfs/dataserver/mysql/table/find/manytopage',
查询数据量='/yfs/dataserver/mysql/table/find/count',
多表联查='/yfs/dataserver/mysql/table/find/aggragate',
多表分页='/yfs/dataserver/mysql/table/find/aggragatetopage'
多表分页='/yfs/dataserver/mysql/table/find/aggragatetopage',
多表单个='/yfs/dataserver/mysql/table/find/aggragateone'
}
......
......@@ -20,7 +20,12 @@ export enum ERRORENUM {
管理员不可被删除,
权限不足,
目标数据不存在,
文件不存在
文件不存在,
只能修改已缴纳数据,
修改金额不能为0,
不能补录已经存在的数据,
目标数据已缴纳,
}
export enum ERRORCODEENUM {
......
......@@ -87,7 +87,7 @@ export async function selectManyTableData(url, tableName, param, column, includ
queray.column = column;
}
if (url == OPERATIONALDATATYPE.分页查询) {
if (url == OPERATIONALDATATYPE.多表分页) {
if (!pageNumber) throw new BizError(ERRORENUM.分页请设置当前页数, `pageNumber:${pageNumber};pageSize:${pageSize}`);
queray.pageNumber = pageNumber;
queray.pageSize = pageSize || 10;
......
import { expensesList } from "./biz/partyExpenses";
import { PAYTYPE } from "./config/enum/enum";
import { initConfig, systemConfig} from "./config/serverConfig";
import { httpServer } from "./net/http_server";
......@@ -7,11 +9,14 @@ async function lanuch() {
/**创建http服务 */
httpServer.createServer(systemConfig.port);
await test()
// await smsTask();
console.log('This indicates that the server is started successfully.');
}
async function test() {
expensesList(PAYTYPE.未缴纳, null, "", 1);
}
lanuch();
\ No newline at end of file
import * as asyncHandler from 'express-async-handler';
import * as partyExpensesBiz from '../biz/partyExpenses';
import { checkToken } from '../middleware/user';
import { eccReqParamater } from '../tools/eccParam';
import { PAYTYPE } from '../config/enum/enum';
export function setRouter(httpServer) {
httpServer.post('/yfs/admin/expenses/unpaid/list', checkToken, asyncHandler(unpaidList));
httpServer.post('/yfs/admin/expenses/unpaid/update', checkToken, asyncHandler(updateUnPaid));
httpServer.post('/yfs/admin/expenses/unpaid/bulk', checkToken, asyncHandler(bulkUpdateUnPaid));
httpServer.post('/yfs/admin/expenses/unpaid/info', checkToken, asyncHandler(unPaidInfo));
httpServer.post('/yfs/admin/expenses/unpaid/del', checkToken, asyncHandler(delUnPaid));
httpServer.post('/yfs/admin/expenses/paid/list', checkToken, asyncHandler(paidList));
httpServer.post('/yfs/admin/expenses/paid/info', checkToken, asyncHandler(paidInfo));
httpServer.post('/yfs/admin/expenses/paid/update', checkToken, asyncHandler(updatePaid));
httpServer.post('/yfs/admin/expenses/paid/replenish', checkToken, asyncHandler(replenishPaid));
httpServer.post('/yfs/admin/expenses/paid/del', checkToken, asyncHandler(delPaid));
}
/**
* 未缴列表
* @param req
* @param res
*/
async function unpaidList(req, res) {
let userInfo = req.userInfo;
let reqConf = { payableMonth:'Number', name:'String', pageNumber:"Number"};
let { payableMonth, name, pageNumber } = eccReqParamater(reqConf, req.body, ["name", "payableMonth"]);
let result = await partyExpensesBiz.expensesList(PAYTYPE.未缴纳, payableMonth, name, pageNumber);
res.success(result);
}
/**
* 已缴列表
* @param req
* @param res
*/
async function paidList(req, res) {
let userInfo = req.userInfo;
let reqConf = { payableMonth:'Number', name:'String', pageNumber:"Number"};
let { payableMonth, name, pageNumber } = eccReqParamater(reqConf, req.body, ["name", "payableMonth"]);
let result = await partyExpensesBiz.expensesList(PAYTYPE.已缴纳, payableMonth, name, pageNumber);
res.success(result);
}
/**
* 已缴回显
* @param req
* @param res
*/
async function paidInfo(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number' };
let { peId } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.expensesInfo(peId);
res.success(result);
}
/**
* 已缴纳 修改
* @param req
* @param res
*/
async function updatePaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number', payAmount:'Number' };
let { peId, payAmount } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.updateExpensesPayAmount(userInfo, peId, payAmount);
res.success(result);
}
/**
* 已缴纳 补充
* @param req
* @param res
*/
async function replenishPaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { payableMonth:'Number', payAmount:'Number', pmId:'String'};
let { payableMonth, payAmount, pmId } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.addExpensesPayToPaid(userInfo, pmId, payableMonth, payAmount);
res.success(result);
}
/**
* 已缴纳 删除
* @param req
* @param res
*/
async function delPaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number'};
let { peId } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.updateExpensesPayStatsToFalse(userInfo, peId);
res.success(result);
}
/**
* 未缴纳修改成已缴纳
* @param req
* @param res
*/
async function updateUnPaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number', payAmount:'Number'};
let { peId, payAmount } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.changeToPaid(userInfo, peId, payAmount);
res.success(result);
}
/**
* 批量未缴纳修改成已缴纳
* @param req
* @param res
*/
async function bulkUpdateUnPaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { peIdList:'[Number]', payAmount:'Number'};
let { peIdList, payAmount } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.bulkChangeToPaid(userInfo, peIdList, payAmount);
res.success(result);
}
/**
* 未缴纳回显
* @param req
* @param res
*/
async function unPaidInfo(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number'};
let { peId } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.getUnpaidInfo(userInfo, peId);
res.success(result);
}
/**
* 未缴纳删除
* @param req
* @param res
*/
async function delUnPaid(req, res) {
let userInfo = req.userInfo;
let reqConf = { peId:'Number'};
let { peId } = eccReqParamater(reqConf, req.body, []);
let result = await partyExpensesBiz.delUnpaidInfo(userInfo, peId);
res.success(result);
}
......@@ -6,6 +6,7 @@ import * as branchSystemRouter from "./branchSystem";
import * as organizationalLifeRouter from "./organizationalLife";
import * as thematicActivitiesRouter from "./thematicActivities";
import * as dynamicRouter from "./dynamic";
import * as partyExpensesRouter from "./partyExpenses";
export function setRouter(httpServer) {
......@@ -17,4 +18,6 @@ export function setRouter(httpServer) {
organizationalLifeRouter.setRouter(httpServer);
thematicActivitiesRouter.setRouter(httpServer);
dynamicRouter.setRouter(httpServer);
partyExpensesRouter.setRouter(httpServer);
}
\ No newline at end of file
......@@ -38,8 +38,6 @@ export function planaryArrayBecomeOfBlockData(planaryArray) {
}
//===
/**
* getBlockData 数据分块
* @param dataList 解析出来的excel二维数组
......
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