Commit d93495f2 by 孙香冬

党建先锋

parent 7a7c6def
......@@ -108,7 +108,7 @@ export async function updateOrganizationalLife(oId:number, param) {
if (!activityInfo) throw new BizError(ERRORENUM.未找到数据, `库中不存在id为${oId}的组织活动`);
let changeList = checkChange(param, activityInfo);
// if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${oId}数据无更新`);
if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${oId}数据无更新`);
changeList.forEach(key => {
activityInfo[key] = param[key];
......
......@@ -60,21 +60,25 @@ export async function getPartyMemberName(branchName) {
}
/**
* 创建党员基础信息
* @param param {name: "姓名", sex: 性别, birthDate: 出生年月, phone: "手机号码", levelOfEducation: "文化程度", partyJoiningTime: 入党时间, administrativePosition: 行政职务,
* remarks: "备注", entryType: 名册录入类型, partyPositions: [党内职务, ...], listedAsActivistsTime: 列为积极份子时间, talkTime: 谈话时间, loginId: "登录账号"}
* @param entryType 名册录入类型
* @param branchName 支部名称
* @return {isSuccess: true}
*/
export async function createPartyMember(param, entryType) {
export async function createPartyMember(param, entryType, branchName) {
eccFormParam("创建正式党员录入", eccFormParamConfig.CreatePartyMemberFormConfig, param);
verificationEnumTools.eccEnumValue('正式党员录入性别', 'partyActivityType', configEnum.SEX, param.partyActivityType);
verificationEnumTools.eccEnumValue('正式党员录入党内职务图例', 'partyPositionsIcon', configEnum.PARTYPOSITIONSICON, param.partyPositions);
verificationEnumTools.eccEnumValue('正式党员录入性别', 'partyActivityType', configEnum.SEX, param.sex);
verificationEnumTools.eccEnumValue('正式党员录入文化程度', 'levelOfEducation', configEnum.DEGREE, param.levelOfEducation);
verificationEnumTools.eccEnumValue('正式党员录入行政职务', 'administrativePosition', configEnum.ADMINISTRATIVEPOSITION, param.administrativePosition);
verificationEnumTools.eccEnumValue('正式党员录入党内职务', 'partyPositions', configEnum.PARTYPOSITIONS, param.partyPositions);
verificationEnumTools.eccEnumValue('正式党员名册录入类型', 'entryType', configEnum.ENTRYTYPE, param.entryType);
verificationEnumTools.eccEnumValue('正式党员录入所属科室', 'department', configEnum.DEDPARTMENT, param.department);
verificationEnumTools.eccEnumValue('正式党员名册录入类型', 'entryType', configEnum.ENTRYTYPE, entryType);
if (entryType) param.entryType = entryType;
if (branchName) param.branchName = branchName;
let partyMemberInfo:any = await partyMemberData.createPartyMember(param);
......
/**
* 小程序
* 党建先锋
*/
import * as partyVanguardData from '../../../data/partyVanguard';
import { checkChange, extractData } from "../../../util/piecemeal";
import * as verificationEnumTools from "../../../util/verificationEnum";
import * as splitResultConfig from "../../../config/splitResultConfig";
import * as configEnum from "../../../config/enum";
import { eccFormParam } from '../../../util/verificationParam';
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import moment = require('moment');
import { ERRORENUM } from '../../../config/errorEnum';
import { BizError } from '../../../util/bizError';
/**
* 党建先锋列表信息
* @param honorName 荣誉名称
* @param branchName 所属支部
* @returns vanguardList:[] 根据荣誉名称、所属支部 返回党建先锋的荣誉列表
*/
export async function getPartyVanguard(honorName:string, branchName) {
let selectParam = {};
if (honorName) selectParam["honorName"] = honorName;
selectParam["branchName"] = {$in: branchName};
let partyVanguardInfo = await partyVanguardData.findPartyVanguardeList(selectParam);
let vanguardList = [];
/**截取返回字段 */
partyVanguardInfo.forEach (info => {
let changeData:any = extractData(splitResultConfig.partyVanguardConfig, info, true);
switch (changeData.honorType) {
case 1:
changeData.color = "#C62A23";
break;
case 2:
changeData.color = "#E4B386";
break;
}
if (info.honorLevel) changeData.honorLevel = verificationEnumTools.changeEnumValue(configEnum.HONORLEVEL, info.honorLevel);
if (info.modelType) changeData.modelType = verificationEnumTools.changeEnumValue(configEnum.MODELTYPE, info.modelType);
if (info.awardTime) changeData.awardTime = moment(info.awardTime).format("YYYY-MM-DD");
if (info.grantTime) changeData.grantTime = moment(info.grantTime).format("YYYY-MM-DD");
vanguardList.push(changeData);
})
return vanguardList;
}
/**
* 党建先锋 荣誉详细信息
* @param pvId 党建先锋id
* @returns changeData:{} 根据id返回对应的荣誉详细信息
*/
export async function getPartyVanguardDetsils(pvId:number) {
let partyVanguardInfo = await partyVanguardData.findPartyVanguardById(pvId);
let changeData:any = {};
/**截取返回字段 */
changeData = extractData(splitResultConfig.partyVanguardConfig, partyVanguardInfo, true);
if (partyVanguardInfo.awardTime) changeData.awardTime = moment(partyVanguardInfo.awardTime).format("YYYY-MM-DD");
if (partyVanguardInfo.grantTime) changeData.grantTime = moment(partyVanguardInfo.grantTime).format("YYYY-MM-DD");
changeData.honorLevel = verificationEnumTools.changeEnumValue(configEnum.HONORLEVEL, partyVanguardInfo.honorLevel);
return changeData;
}
/**
* 党建先锋 新增支部先锋荣誉
* @param param {荣誉级别, 荣誉名称, 授予单位, 获奖时间, 荣誉简介}
* 参数类型 {number, string, string, number, string }
* @returns {isSuccess: true}
*/
export async function createBranchPioneer(branchName, param) {
eccFormParam("新增支部先锋荣誉", eccFormParamConfig.CreateBranchPioneerConfig, param)
if (branchName && branchName.length > 0) verificationEnumTools.eccEnumValue("新增支部先锋荣誉", "支部名称", configEnum.BRANCHNAMETYPE, branchName);
verificationEnumTools.eccEnumValue('新增支部先锋荣誉级别类型', 'honorLevel', configEnum.HONORLEVEL, param.honorLevel);
param.honorType = configEnum.HONORTYPE.支部先锋;
param.branchName = branchName;
await partyVanguardData.createPartyVanguard(param);
return {isSuccess: true};
}
/**
* 党建先锋 新建模范党员荣誉
* @param param {模范类型, 授予党员, 授予时间, 授予原因}
* 参数类型 { number, [string], number, string }
* @returns {isSuccess: true}
*/
export async function createModelParty(branchName, param) {
eccFormParam("新增模范党员荣誉", eccFormParamConfig.CreateModelPartyConfig, param)
if (branchName && branchName.length > 0) verificationEnumTools.eccEnumValue("新增模范党员荣誉", "支部名称", configEnum.BRANCHNAMETYPE, branchName);
// verificationEnumTools.eccEnumValue('新增支部先锋荣誉级别类型', 'honorLevel', configEnum.HONORLEVEL, param.honorLevel);
verificationEnumTools.eccEnumValue('新增支部先锋模范类型', 'modelType', configEnum.MODELTYPE, param.modelType);
param.honorType = configEnum.HONORTYPE.模范党员;
param.branchName = branchName;
await partyVanguardData.createPartyVanguard(param);
return {isSuccess: true};
}
/**
* 党建先锋 修改党建先锋荣誉
* @param pvId 党建先锋id 修改对应pvId的荣誉信息
* @param honorType 荣誉类型
* @param param 修改党建先锋表单
* @returns
*/
export async function updatePartyVanguard(pvId:number, honorType:number, param) {
/**校验表单参数 */
if (honorType == configEnum.HONORTYPE.支部先锋) {
eccFormParam("党建先锋荣誉表单修改", eccFormParamConfig.UpdataBranchPioneerConfig, param );
// verificationEnumTools.eccEnumValue('修改党建先锋荣誉', 'honorType', configEnum.HONORTYPE, param.honorType);
verificationEnumTools.eccEnumValue('修改党建先锋的支部先锋', 'honorLevel', configEnum.HONORLEVEL, param.honorLevel);
} else if (honorType == configEnum.HONORTYPE.模范党员) {
eccFormParam("党建先锋荣誉表单修改", eccFormParamConfig.UpdataModelPartyConfig, param );
verificationEnumTools.eccEnumValue('修改党建先锋的模范党员', 'modelType', configEnum.MODELTYPE, param.modelType);
}
let partyVanguardInfo = await partyVanguardData.findPartyVanguardById(pvId);
if (!partyVanguardInfo) throw new BizError(ERRORENUM.未找到数据, `库中不存在id为${pvId}荣誉信息`);
let changeList = checkChange(param, partyVanguardInfo);
if ( !changeList.length ) throw new BizError(ERRORENUM.数据无更新, `${pvId}数据无更新`);
changeList.forEach(key => {
partyVanguardInfo[key] = param[key];
});
await partyVanguardInfo.save();
return {isSuccess:true};
}
/**
* 删除荣誉
* @param pvId 荣誉id
* @returns {isSuccess:true}
*/
export async function deletePartyVanguard(pvId:number) {
let partyVanguardInfo = await partyVanguardData.findPartyVanguardById(pvId);
if (!partyVanguardInfo) throw new BizError(ERRORENUM.未找到数据, `库中不存在id为${pvId}荣誉信息`);
await partyVanguardData.deletePartyVanguard(pvId);
return {isSuccess:true};
}
......@@ -22,7 +22,7 @@ export const CreateActivityConfig = {
leavePartyMember:{type:"[String]", notMustHave:true},//请假党员
participatingPartyMember:{type:"[String]", notMustHave:true},//参与党员
participationRecord:{type:"String", notMustHave:true},//活动记录
branchName:{type:"Number", notMustHave:true}, //支部名称
branchName:{type:"[Number]", notMustHave:true}, //支部名称
};
......@@ -53,14 +53,16 @@ export const UpdateActivityFormConfig = {
export const CreatePartyMemberFormConfig = {
name:{type:"String"},//姓名
sex:{type:"Number"},//性别
// enterType:{type:"Number"},//名册录入类型
birthDate:{type:"Number"},//出生年月
phone:{type:"String"},//手机号码
levelOfEducation:{type:"String"},//文化程度
levelOfEducation:{type:"Number"},//文化程度
partyJoiningTime:{type:"Number"},//入党时间
administrativePosition:{type:"Number"},//行政职务
administrativePosition:{type:"Number", notMustHave:true},//行政职务
remarks:{type:"String", notMustHave:true},//备注
entryType:{type:"Number"},//名册录入类型
partyPositions:{type:"[Number]"},//党内职务
department:{type:"[Number]", notMustHave:true},//所属科室 2.0
askForTime: {type:"Number", notMustHave:true}, //申请入党时间
listedAsActivistsTime:{type:"Number", notMustHave:true},//列为积极份子时间
talkTime:{type:"Number", notMustHave:true},//谈话时间
loginId:{type:"String", notMustHave:true},//登录账号
......@@ -74,10 +76,80 @@ export const UpdateActivityFormConfig = {
* 备注: 全部非必填
*/
export const createPartyInformation = {
informationType:{type:"Number", notMustHave:true},
title:{type:"String", notMustHave:true},
branchName:{type:"Number", notMustHave:true},
informationTime:{type:"Number", notMustHave:true},
detailedInformation:{type:"String", notMustHave:true},
img:{type:"String", notMustHave:true}
}
\ No newline at end of file
informationType: {type:"Number", notMustHave:true}, //党建资讯类型
title: {type:"String", notMustHave:true}, //资讯标题
branchName: {type:"[Number]", notMustHave:true}, //支部名称
informationTime: {type:"Number", notMustHave:true}, //资讯时间
detailedInformation: {type:"String", notMustHave:true}, //资讯详细
img: {type:"String", notMustHave:true} //图片
}
/**
* 使用端: 小程序端_党建先锋
* 场景: 新增荣誉 支部先锋表单
* 备注: 全部非必填
*/
export const CreateBranchPioneerConfig = {
honorLevel: {type:"Number", notMustHave:true}, //荣誉级别
honorName: {type:"String", notMustHave:true}, //荣誉名称
grantingUnit: {type:"String", notMustHave:true}, //授予单位
awardTime: {type:"Number", notMustHave:true}, //获奖时间
honorsIntroduction: {type:"String", notMustHave:true}, //荣誉简介
};
/**
* 使用端: 小程序端_党建先锋
* 场景: 新增荣誉 模范党员表单
* 备注: 全部非必填
*/
export const CreateModelPartyConfig = {
modelType: {type:"Number", notMustHave:true}, //模范类型
grantParty: {type:"[String]", notMustHave:true}, //授予党员
grantTime: {type:"Number", notMustHave:true}, //授予时间
grantReason: {type:"String", notMustHave:true}, //授予原因
};
/**
* 使用端: 小程序端_党建先锋
* 场景: 添加制度 支部制度表单
* 备注: 全部非必填
*/
export const CreateBranchSystemConfig = {
systemTitle: {type:"String", notMustHave:true}, //制度标题
periodOfValidity: {type:"Number", notMustHave:true}, //制度有效期
releaseTime: {type:"Number", notMustHave:true}, //发布时间
systemContent: {type:"String", notMustHave:true}, //制度内容
branchName: {type:"[Number]", notMustHave:true}, //支部名称
}
/**
* 使用端: 小程序端_党建先锋
* 场景: 修改荣誉制度 支部先锋表单
* 备注: 全部非必填
*/
export const UpdataBranchPioneerConfig = {
honorLevel: {type:"Number", notMustHave:true}, //荣誉级别
honorName: {type:"String", notMustHave:true}, //荣誉名称
grantingUnit: {type:"String", notMustHave:true}, //授予单位
awardTime: {type:"Number", notMustHave:true}, //获奖时间
honorsIntroduction: {type:"String", notMustHave:true}, //荣誉简介
}
/**
* 使用端: 小程序端_党建先锋
* 场景: 修改荣誉制度 模范党员表单
* 备注: 全部非必填
*/
export const UpdataModelPartyConfig = {
modelType: {type:"Number", notMustHave:true}, //模范类型
grantParty: {type:"[String]", notMustHave:true}, //授予党员
grantTime: {type:"Number", notMustHave:true}, //授予时间
grantReason: {type:"String", notMustHave:true}, //授予原因
}
......@@ -64,7 +64,7 @@ export enum ENTRYTYPE {
/**
* 党建活动类型
* 组织生活 党建活动类型
*/
export enum ACTIVITYTYPE {
日常教育培训 = 1,
......@@ -141,11 +141,13 @@ export enum HONORTYPE {
/**
* 党建先锋 荣誉类型 honorLevel
* 党建先锋 荣誉级别 honorLevel
*/
export enum HONORLEVEL {
区级荣誉 = 1,
市级荣誉,
院级荣誉,
国家级荣誉,
}
......@@ -153,8 +155,7 @@ export enum HONORTYPE {
* 党建先锋 模范类型 modelType
*/
export enum MODELTYPE {
支部先锋 = 1,
模范党员,
党建先锋岗 = 1,
}
......
......@@ -8,7 +8,7 @@
/**
* 使用端: 小程序_党员入口
* 场景: 首页党建资讯列表
* 备注:
* 备注: 1.0
*/
export const partyInformationConfig = {
pId:{key:"pId"},
......@@ -23,7 +23,7 @@ export const partyInformationConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 组织生活详细信息
* 备注:
* 备注: 1.0
*/
export const activityInfoConfig = {
title:{key:"党建活动类型"},
......@@ -42,8 +42,8 @@ export const activityInfoConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 组织生活
* 备注:
* 场景: 组织生活列表
* 备注: 1.0
*/
export const moveAboutInfoConfig = {
oId:{key:"oId"},
......@@ -58,7 +58,7 @@ export const moveAboutInfoConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 选择党员
* 备注:
* 备注: 1.0 组织生活创建和修改选择党员
*/
export const organizationallifeConfig = {
id:{key:"id"},
......@@ -71,8 +71,8 @@ export const moveAboutInfoConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 选择党员
* 备注:
* 场景: 党员名称
* 备注: 2.0 党建名册的党员名册
*/
export const partyMemberConfig = {
id:{key:"id"},
......@@ -88,7 +88,7 @@ export const partyMemberConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 党员详情
* 备注:
* 备注: 2.0
*/
export const partyMemberDetailsConfig = {
id:{key:"id"},
......@@ -113,13 +113,14 @@ export const partyMemberDetailsConfig = {
/**
* 使用端: 小程序_党员入口
* 场景: 党建先锋列表
* 备注:
* 备注: 2.0
*/
export const partyVanguardConfig = {
pvId:{key:"党建先锋id"},
honorType:{key:"荣誉类型"},
honorLevel:{key:"荣誉级别"},
honorName:{key:"荣誉名称"},
modelType:{key:"模范类型"},
grantingUnit:{key:"授予单位"},
grantTime:{key:"授予时间"},
honorsIntroduction:{key:"荣誉简介"},
......@@ -128,3 +129,28 @@ export const partyMemberDetailsConfig = {
}
/**
* 使用端: 小程序_支部制度
* 场景: 支部制度列表
* 备注: 2.0
*/
export const branchSystemConfig = {
bId:{key:"支部制度id"},
systemTitle:{key:"制度标题"},
}
/**
* 使用端: 小程序_支部制度
* 场景: 支部制度明细
* 备注: 2.0
*/
export const branchSystemDetailsConfig = {
bId:{key:"支部制度id"},
systemTitle:{key:"制度标题"},
periodOfValidity:{key:"制度有效期"},
releaseTime:{key:"发布时间"},
systemContent:{key:"制度内容"},
branchName:{key:"支部名称"},
}
/**
* 党建先锋表
*/
import { Schema } from "mongoose";
import {yfsDB} from '../db/dbInit';
var autoIncrement = require('mongoose-auto-increment');
const partyVanguardSchema = new Schema({
pvId: {type:Number, index:{unique: true}}, //自增的党建先锋id
honorType: Number, //荣誉类型 1:支部先锋、2:模范党员
honorLevel: Number, //荣誉级别 1:区级荣誉、2:市级荣誉、3:院级荣誉、4:国家级荣誉
honorName: String, //荣誉名称
grantingUnit:String, //授予单位
awardTime: Number, //获奖时间
honorsIntroduction: String, //荣誉简介
modelType: Number,//模范类型
grantParty: {type:[String], default:[]},//授予党员
grantTime: Number,//授予时间
grantReason: String,//授予原因
branchName: {type:[Number], default:[]}, //支部名称
})
var partyVanguardModel;
export function initModel(){
partyVanguardSchema.plugin(autoIncrement.plugin, {
model: 'partyVanguardSchema',
field: 'pvId',
startAt: 1, //初始化id从1开始
incrementBy: 1 //每次自增1
});
partyVanguardModel = yfsDB.model('partyVanguard', partyVanguardSchema);
partyVanguardModel.selectOnceData = async function (paramater:object) {
let selectInfo = await partyVanguardModel.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 param 查询参数
* @returns
*/
export async function findPartyVanguardeList(param:object) {
return await partyVanguardModel.find(param);
}
/**
* 获取符合条件的党员数量
* @param param 查询参数
* @returns number 数据数量
*/
export async function groupFindPartyVanguardCount(param:object) {
return await partyVanguardModel.find(param).countDocuments();
}
/**
* 新增 支部先锋,模范党员
* @param param 所添加表单 需要提前验证
*/
export async function createPartyVanguard(param:object) {
return await partyVanguardModel.create(param);
}
/**
* 删除组织生活活动
* @param oId 活动id
* @returns
*/
export async function deletePartyVanguard(pvId:number) {
return await partyVanguardModel.deleteOne({pvId}).exec();
}
/**
* 根据id获取党建先锋详情
* @param pvId 党建先锋id
* @returns
*/
export async function findPartyVanguardById(pvId:number) {
return await partyVanguardModel.findOne({pvId});
}
\ No newline at end of file
import * as organizationalLifeModel from "../data/organizationalLife";
import * as partyInformationModel from "../data/partyInformation";
import * as partyMemberModel from "../data/partyMember";
import * as partyVanguardModel from "../data/partyVanguard";
import * as branchSystemModel from "../data/branchSystem";
export async function initTable() {
partyMemberModel.initModel();
organizationalLifeModel.initModel();
partyInformationModel.initModel();
partyVanguardModel.initModel();
branchSystemModel.initModel();
}
\ No newline at end of file
......@@ -2,16 +2,16 @@
* 小程序端 党员入口 党员基础信息
*/
import * as partyMemberBiz from '../../biz/applet/partyMember/partyMember';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import * as partyMemberBiz from '../../biz/applet/partyMember/partyMember';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/partymember/partymember/partymembername', asyncHandler(getPartyMemberName));
httpServer.post('/partymember/partymember/create', asyncHandler(createPartyMenber));
httpServer.post('/partymember/partymember/detsils', asyncHandler(partyDetsils));
httpServer.post('/partymember/partymember/delete', asyncHandler(deletePartyMember));
httpServer.post('/partymember/partymember/create', asyncHandler(createPartyMenber));
httpServer.post('/partymember/partymember/detsils', asyncHandler(partyDetsils));
httpServer.post('/partymember/partymember/delete', asyncHandler(deletePartyMember));
}
......@@ -37,10 +37,15 @@ async function getPartyMemberName(req, res) {
* @param res
*/
async function createPartyMenber(req, res) {
let reqConf = {form: 'Object', entryType: 'number'};
let reqConf = {form: 'Object', entryType: 'Number'};
let { form, entryType } = eccReqParamater(reqConf, req.body);
let branchidData = req.headers.branchid;
let branchName = [];
branchidData = branchidData.slice(1, branchidData.length-1);
branchName = branchidData.split(',');
let result = await partyMemberBiz.createPartyMember(form, entryType);
let result = await partyMemberBiz.createPartyMember(form, entryType, branchName);
res.success(result);
}
......@@ -59,7 +64,11 @@ async function partyDetsils(req, res) {
}
/**
* 删除党员信息
* @param req
* @param res
*/
async function deletePartyMember(req, res) {
let reqConf = {id: 'Number'};
let {id} = eccReqParamater(reqConf, req.body);
......
/**
* 小程序端 党员入口 党建先锋
*/
import * as partyVanguardBiz from '../../biz/applet/partyMember/partyVanguard';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
export function setRouter(httpServer) {
httpServer.post('/partymember/partyvanguard/list', asyncHandler(getPartyVanguard));
httpServer.post('/partymember/partyvanguard/detsils', asyncHandler(getPartyVanguardDetsils));
httpServer.post('/partymember/partyvanguard/createbranchpioneer', asyncHandler(createBranchPioneer));
httpServer.post('/partymember/partyvanguard/createmodelparty', asyncHandler(createModelParty));
httpServer.post('/partymember/partyvanguard/update', asyncHandler(updatePartyVanguard));
httpServer.post('/partymember/partyvanguard/delete', asyncHandler(deletePartyVanguard));
}
/**
* 党建先锋 荣誉列表
* @param req
* @param res
*/
async function getPartyVanguard(req, res) {
let reqConf = {honorName:'String'};
let {honorName} = eccReqParamater(reqConf, req.body, ["honorName"]);
let branchidData = req.headers.branchid;
let branchName = [];
branchidData = branchidData.slice(1, branchidData.length-1);
branchName = branchidData.split(',');
let result = await partyVanguardBiz.getPartyVanguard(honorName, branchName);
res.success(result);
}
/**
* 党建先锋 获取荣誉详情
* @param req
* @param res
*/
async function getPartyVanguardDetsils(req, res) {
let reqConf = {pvId:'Number'};
let {pvId} = eccReqParamater(reqConf, req.body);
let result = await partyVanguardBiz.getPartyVanguardDetsils(pvId);
res.success(result);
}
/**
* 党建先锋 新增支部先锋荣誉
* @param req
* @param res
*/
async function createBranchPioneer(req, res) {
let reqConf = {form: 'Object' };
let { form } = eccReqParamater(reqConf, req.body);
let branchidData = req.headers.branchid;
let branchName = [];
branchidData = branchidData.slice(1, branchidData.length-1);
branchName = branchidData.split(',');
let result = await partyVanguardBiz.createBranchPioneer(branchName, form);
res.success(result);
};
/**
* 党建先锋 新增模范党员荣誉
* @param req
* @param res
*/
async function createModelParty(req, res) {
let reqConf = {form: 'Object' };
let { form } = eccReqParamater(reqConf, req.body);
let branchidData = req.headers.branchid;
let branchName = [];
branchidData = branchidData.slice(1, branchidData.length-1);
branchName = branchidData.split(',');
let result = await partyVanguardBiz.createModelParty(branchName, form);
res.success(result);
};
/**
* 党建先锋 修改荣誉详细
* @param req
* @param res
*/
async function updatePartyVanguard(req, res) {
let reqConf = {pvId: 'Number', honorType: 'Number', form: 'Object' };
let { pvId, honorType, form } = eccReqParamater(reqConf, req.body);
let result = await partyVanguardBiz.updatePartyVanguard(pvId, honorType, form);
res.success(result);
}
/**
* 党建先锋 删除党建先锋荣誉数据
* @param req
* @param res
*/
async function deletePartyVanguard(req, res) {
let reqConf = {pvId: 'Number'};
let {pvId} = eccReqParamater(reqConf, req.body);
let result = await partyVanguardBiz.deletePartyVanguard(pvId);
res.success(result);
}
\ No newline at end of file
import { createPartyMember, groupFindPartyMemberCount } from "../data/partyMember";
import * as enums from "../config/enum";
import { getPwdMd5 } from "./system";
import { createActivity, groupFindActivityCount } from "../data/organizationalLife";
import { createPartyVanguard, groupFindPartyVanguardCount } from "../data/partyVanguard";
import { createBranchSystem, groupFindBranchSystemCount } from "../data/branchSystem";
const xlsx = require('node-xlsx');
const path = require('path');
const md5 = require("md5");
const PartyPositionsChangeConfig = {
"支部书记": enums.PARTYPOSITIONSICON.支部书记,
"支部副书记": enums.PARTYPOSITIONSICON.支部副书记,
"纪检委员": enums.PARTYPOSITIONSICON.纪检委员,
"组织委员": enums.PARTYPOSITIONSICON.组织委员,
"宣传委员": enums.PARTYPOSITIONSICON.宣传委员,
"党员":enums.PARTYPOSITIONSICON.党员,
"入党积极分子":enums.PARTYPOSITIONSICON.入党积极分子,
"预备党员":enums.PARTYPOSITIONSICON.预备党员,
}
const BranchNameChangeConfig = {
"党总支": enums.BRANCHNAMETYPE.党总支,
"牙防所第一支部": enums.BRANCHNAMETYPE.牙防所第一支部,
"牙防所第二支部": enums.BRANCHNAMETYPE.牙防所第二支部,
"牙防所第三支部": enums.BRANCHNAMETYPE.牙防所第三支部,
"牙防所第四支部": enums.BRANCHNAMETYPE.牙防所第四支部,
}
const DepartmentConfig = {
"口腔科": enums.DEDPARTMENT.口腔科,
"正畸科": enums.DEDPARTMENT.正畸科,
"口腔恢复科": enums.DEDPARTMENT.口腔恢复科,
"颁面外科": enums.DEDPARTMENT.颁面外科,
"牙体牙髓科": enums.DEDPARTMENT.牙体牙髓科,
"牙周科": enums.DEDPARTMENT.牙周科,
"儿童口腔科": enums.DEDPARTMENT.儿童口腔科,
}
export async function initBasicData() {
await initPartyMember();
await initOrganizationalLife();
await initPartyVanguard();
await initBranchSystem();
}
async function initPartyMember() {
let count = await groupFindPartyMemberCount({});
if (count > 5) {
console.log("***** 党员基础信息数据 无需初始化 *****");
return;
}
let {sheetMap} = getExcel(path.join(__dirname.substring(0, __dirname.indexOf("out")), "res", "牙防所基础数据收集.xlsx"));
let dataList = sheetMap["党员信息"];
let titleMap = {
"0": "name", //姓名
"1": "sex", //性别
"2": "birthDate", //出生时间
"3": "phone", //手机号码
"4": "levelOfEducation", //文化程度
"5": "partyJoiningTime", //入党时间
"6": "administrativePosition", //行政职务
"7": "remarks", //备注
"8": "entryType", //名册录入类型
"9": "partyPositions", //党内职务
"10": "listedAsActivistsTime", //列为积极份子时间(入党积极份子填写)
"11": "talkTime", //谈话时间(入党申请填写)
"12": "branchName", //支部名称
"13": "department", //所属科室
"14": "partyState", //党员状态
}
let utc = new Date();
let addList = [];
dataList.forEach( (subList, index) => {
if (!index) return; //跳过表头
let addDataInfo:any = {
firstLoginIsChangePwd:false,
}
for (let i = 0; i <= 14; i++) {
let item =subList[i];
let key = titleMap[i];
let value = item;
if (i == 1) {
value = enums.SEX[item] || 0;
}
if (i == 2 && item) {
value = new Date(item).valueOf();
}
if (i ==3) {
let itemStr = `${item}`;
if(!addDataInfo.pwd) addDataInfo.pwd = getPwdMd5(itemStr, md5(itemStr.slice(itemStr.length-6)));
else addDataInfo.pwd = getPwdMd5(itemStr, addDataInfo.pwd);
addDataInfo.loginId = itemStr;
}
if (i == 5 && item) {
value = new Date(item).valueOf();
}
if (i == 6) {
value = enums.ADMINISTRATIVEPOSITION[item] || 0;
}
if (i == 8) {
value = enums.ENTRYTYPE[item] || 1;
}
if (i == 9) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = PartyPositionsChangeConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (i == 10 && item) {
value = new Date(item).valueOf();
}
if (i == 11 && item) {
value = new Date(item).valueOf();
}
if (i == 12) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = BranchNameChangeConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (i == 13) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = DepartmentConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (i == 14) {
value = enums.PARTYSTATE[item] || 1;
}
addDataInfo[key] = value;
}
addList.push(addDataInfo);
})
await createPartyMember(addList);
console.log("---> 党员基础信息 初始化成功");
}
const HonorLevelConfig = {
"区级荣誉": enums.HONORLEVEL.区级荣誉,
"市级荣誉": enums.HONORLEVEL.市级荣誉,
}
async function initPartyVanguard() {
let count = await groupFindPartyVanguardCount({});
if (count > 1) {
console.log("***** 党建先锋数据 无需初始化 *****");
return;
}
let {sheetMap} = getExcel(path.join(__dirname.substring(0, __dirname.indexOf("out")), "res", "牙防所基础数据收集.xlsx"));
let dataList = sheetMap["党建先锋"];
let titleMap = {
"0": "honorType", //荣誉类型
"1": "honorLevel", //荣誉级别
"2": "honorName", //荣誉名称
"3": "grantingUnit", //授予单位
"4": "awardTime", //获奖时间
"5": "honorsIntroduction", //荣誉简介
"6": "modelType", //模范类型
"7": "grantParty", //授予党员
"8": "grantTime", //授予时间
"9": "grantReason", //授予原因
"10": "branchName", //支部名称
};
let addList = [];
dataList.forEach( (subList, index) => {
if (!index) return; //跳过表头
let addDataInfo:any = {
firstLoginIsChangePwd:false,
}
for (let i = 0; i <= 10; i++) {
let item =subList[i];
let key = titleMap[i];
let value = item;
if (i == 0) {
value = enums.HONORTYPE[item] || 0;
}
if (i == 1) {
value = enums.HONORLEVEL[item] || 0;
}
if (i == 4 && item) {
value = new Date(item).valueOf();
}
if (i == 6) {
value = enums.MODELTYPE[item] || 0;
}
if (i == 7) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
if (oldStr) value.push(oldStr);
});
};
}
if (i == 8 && item) {
value = new Date(item).valueOf();
}
if (i == 10) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = BranchNameChangeConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (value) addDataInfo[key] = value;
}
addList.push(addDataInfo);
})
await createPartyVanguard(addList);
console.log("---> 党建先锋信息 初始化成功");
}
async function initOrganizationalLife() {
let count = await groupFindActivityCount({});
if (count > 1) {
console.log("***** 组织生活数据 无需初始化 *****");
return;
}
let {sheetMap} = getExcel(path.join(__dirname.substring(0, __dirname.indexOf("out")), "res", "牙防所基础数据收集.xlsx"));
let dataList = sheetMap["组织生活"];
let titleMap = {
"0": "partyActivityType", //党建活动类型
"1": "activityStartTime", //活动开始时间
"2": "activityEndTime", //活动结束时间
"3": "activityAdd", //活动地点
"4": "activityHost", //活动主持人
"5": "activityNoteTaker", //活动记录人
"6": "leavePartyMember", //请假党员
"7": "participatingPartyMember", //参与党员
"8": "participationRecord", //活动记录
"9": "branchName", //支部名称
};
let addList = [];
dataList.forEach( (subList, index) => {
if (!index) return; //跳过表头
let addDataInfo:any = {
firstLoginIsChangePwd:false,
}
for (let i = 0; i <= 9; i++) {
let item =subList[i];
let key = titleMap[i];
let value = item;
if (i == 0) {
value = enums.ACTIVITYTYPE[item] || 1;
}
if (i == 1 && item) {
value = new Date(item).valueOf();
}
if (i == 2 && item) {
value = new Date(item).valueOf();
}
if (i == 4) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
// let valueNum = HonorLevelConfig[oldStr.trim()];
if (oldStr) value.push(oldStr);
});
};
}
if (i == 5) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
// let valueNum = HonorLevelConfig[oldStr.trim()];
if (oldStr) value.push(oldStr);
});
};
}
if (i == 6) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
// let valueNum = HonorLevelConfig[oldStr.trim()];
if (oldStr) value.push(oldStr);
});
};
}
if (i == 7) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
// let valueNum = HonorLevelConfig[oldStr.trim()];
if (oldStr) value.push(oldStr);
});
};
}
if (i == 9) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = BranchNameChangeConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (value) addDataInfo[key] = value;
}
addList.push(addDataInfo);
})
await createActivity(addList);
console.log("---> 组织生活信息 初始化成功");
}
async function initBranchSystem() {
let count = await groupFindBranchSystemCount({});
if (count > 1) {
console.log("***** 党建先锋数据 无需初始化 *****");
return;
}
let {sheetMap} = getExcel(path.join(__dirname.substring(0, __dirname.indexOf("out")), "res", "牙防所基础数据收集.xlsx"));
let dataList = sheetMap["支部制度"];
let titleMap = {
"0": "systemTitle", //制度标题
"1": "periodOfValidity", //制度有效期
"2": "releaseTime", //发布时间
"3": "systemContent", //制度内容
"4": "branchName", //支部名称
};
let addList = [];
dataList.forEach( (subList, index) => {
if (!index) return; //跳过表头
let addDataInfo:any = {
firstLoginIsChangePwd:false,
}
for (let i = 0; i <= 4; i++) {
let item =subList[i];
let key = titleMap[i];
let value = item;
if (i == 1 && item) {
value = new Date(item).valueOf();
}
if (i == 2 && item) {
value = new Date(item).valueOf();
}
if (i == 4) {
value = [];
if (item) {
let oldList = item.split(',');
oldList.forEach(oldStr => {
let valueNum = BranchNameChangeConfig[oldStr.trim()];
if (valueNum) value.push(valueNum);
});
};
}
if (value) addDataInfo[key] = value;
}
addList.push(addDataInfo);
})
await createBranchSystem(addList);
console.log("---> 支部制度信息 初始化成功");
}
/**
* 获取单个excel文件数据
* @param filePath
* @returns
*/
function getExcel(filePath) {
const workSheetsFromFile = xlsx.parse(filePath);
let sheetMap = {};
let sheetList = [];
for (let i = 0; i < workSheetsFromFile.length; i++) {
let sheetInfo = workSheetsFromFile[i];
sheetMap[sheetInfo.name] = sheetInfo.data;
sheetList.push(sheetInfo);
}
return {sheetMap, sheetList}
}
\ No newline at end of file
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