精彩专栏推荐订阅:在下方主页👇🏻👇🏻👇🏻👇🏻
💖🔥作者主页:计算机毕设木哥🔥 💖
一、项目介绍
随着经济的发展和社会的进步,企业项目管理已成为企业管理的重要组成部分。本文旨在探讨企业项目管理系统,该系统包括管理员和用户两种角色,管理员可以进行个人中心、用户管理、项目管理、项目申报管理、操作日志管理、公告管理、论坛管理、基础数据管理等操作,用户可以进行注册、登录、个人中心、论坛、公告、查看筛选项目、添加项目申报信息等操作。本文将对该系统的功能进行详细介绍,并提出可行的改进措施。
企业项目管理系统的建设对于企业管理来说具有重要的意义。在企业项目管理系统中,管理员和用户是两个重要的角色。管理员需要负责系统的全面运行和维护,包括用户管理、项目管理、项目申报管理、操作日志管理、公告管理、论坛管理、基础数据管理等。而用户则需要通过注册和登录来使用系统提供的功能,例如个人中心、论坛、公告、查看筛选项目、添加项目申报信息等。本文将对企业项目管理系统进行详细介绍,并提出可行的改进措施。
二、项目功能介绍
管理员包括以下功能:
1)个人中心:管理员可以在个人中心查看自己的个人信息和修改密码等操作。
2)用户管理:管理员可以添加、编辑、删除用户信息,并对用户进行分组管理。
3)项目管理:管理员可以创建新的项目,并添加项目的详细信息,包括项目预算、项目周期、项目内容等。
4)项目申报管理:管理员可以查看所有申报的项目信息,包括申报人、申报时间、申报内容等,并对申报的项目进行审核和管理。
5)操作日志管理:管理员可以查看所有用户的操作日志,包括登录、注销、查看项目等操作。
6)公告管理:管理员可以发布公告,并编辑、删除已有的公告。
7)论坛管理:管理员可以管理论坛中的帖子和评论,并可以对不当言论进行删除和封禁。
8)基础数据管理:管理员可以对企业项目管理系统中的一些基础数据进行管理和维护,例如部门、职务、权限等。
用户包括以下功能:
1)注册:用户可以通过注册来创建自己的账号和密码。为了保护用户的账号安全,我们采用了多种安全措施,包括密码加密存储和定期更换密码等。
2)登录:用户可以使用自己的账号和密码来登录系统。为了保护用户的隐私,我们采用了SSL加密传输技术,确保用户数据的安全性。
3)个人中心:用户可以在个人中心查看自己的个人信息,包括头像、姓名、性别等基础信息和对项目的关注度和收藏等行为信息;同时可以在个人中心进行修改密码等操作。
4)论坛:用户可以在论坛中浏览帖子和评论,并可以发表自己的评论和看法。为了维护论坛的秩序,我们制定了严格的论坛规定,并对不当言论进行删除和封禁。
5)查看筛选项目:用户可以筛选出符合自己需求的申报项目并查看详细信息。为了提高用户体验,我们提供了多种筛选条件,包括项目类型、申报人、申报时间等。
6)添加项目申报信息:用户可以申报符合自己能力和兴趣的项目信息并提交给管理员审核。为了确保项目的真实性和合法性,我们要求用户提供相关证明材料并审核通过后才能正式提交。
三、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:springboot
- 前端:vue
- 工具:IDEA或者Eclipse、JDK1.8、Maven
四、系统展示
登录模块:
首页模块:
管理员模块:
五、代码展示
public class MetadataHelper {
public static final String SPLITER = CommonsUtils.COMM_SPLITER;
public static final String SPLITER_RE = CommonsUtils.COMM_SPLITER_RE;
public static DynamicMetadataFactory getMetadataFactory() {
return (DynamicMetadataFactory) Application.getPersistManagerFactory().getMetadataFactory();
}
public static Entity[] getEntities() {
return getMetadataFactory().getEntities();
}
public static boolean containsEntity(String entityName) {
try {
return !(getEntity(entityName) instanceof GhostEntity);
} catch (MissingMetaExcetion ex) {
return false;
}
}
public static boolean containsEntity(int entityCode) {
try {
getEntity(entityCode);
return true;
} catch (MissingMetaExcetion ex) {
return false;
}
}
public static boolean containsField(String entityName, String fieldName) {
try {
return getEntity(entityName).containsField(fieldName);
} catch (MissingMetaExcetion ex) {
return false;
}
}
public static Entity getEntity(String entityName) throws MissingMetaExcetion {
try {
return getMetadataFactory().getEntity(entityName);
} catch (MissingMetaExcetion ex) {
throw new MissingMetaExcetion(Language.L("实体 [%s] 已经不存在,请检查配置", entityName.toUpperCase()));
}
}
public static Entity getEntity(int entityCode) throws MissingMetaExcetion {
try {
return getMetadataFactory().getEntity(entityCode);
} catch (MissingMetaExcetion ex) {
throw new MissingMetaExcetion(Language.L("实体 [%s] 已经不存在,请检查配置", entityCode));
}
}
public static String getEntityName(ID recordId) {
return getEntity(recordId.getEntityCode()).getName();
}
public static Field getField(String entityName, String fieldName) throws MissingMetaExcetion {
try {
return getEntity(entityName).getField(fieldName);
} catch (MissingMetaExcetion ex) {
throw new MissingMetaExcetion(
Language.L("字段 [%s] 已经不存在,请检查配置", (entityName + "#" + fieldName).toUpperCase()));
}
}
public static Field[] getReferenceToFields(Entity sourceEntity, Entity referenceEntity, boolean includeN2N) {
List<Field> fields = new ArrayList<>();
for (Field field : referenceEntity.getFields()) {
boolean isRef = field.getType() == FieldType.REFERENCE
|| (includeN2N && field.getType() == FieldType.REFERENCE_LIST);
if (isRef && field.getReferenceEntity().equals(sourceEntity)) {
fields.add(field);
}
}
return fields.toArray(new Field[0]);
}
public static Field[] getReferenceToFields(Entity sourceEntity, Entity referenceEntity) {
return getReferenceToFields(sourceEntity, referenceEntity, Boolean.FALSE);
}
public static Field[] getReferenceToFields(Entity sourceEntity, boolean includeN2N) {
List<Field> fields = new ArrayList<>();
for (Entity entity : getEntities()) {
CollectionUtils.addAll(fields, getReferenceToFields(sourceEntity, entity, includeN2N));
}
return fields.toArray(new Field[0]);
}
public static boolean isSystemField(Field field) {
return isSystemField(field.getName()) || field.getType() == FieldType.PRIMARY;
}
public static boolean isSystemField(String fieldName) {
return EntityHelper.AutoId.equalsIgnoreCase(fieldName)
|| EntityHelper.QuickCode.equalsIgnoreCase(fieldName)
|| EntityHelper.IsDeleted.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalStepNode.equalsIgnoreCase(fieldName);
}
public static boolean isCommonsField(Field field) {
return isSystemField(field) || isCommonsField(field.getName());
}
public static boolean isCommonsField(String fieldName) {
if (isSystemField(fieldName) || isApprovalField(fieldName)) return true;
return EntityHelper.OwningUser.equalsIgnoreCase(fieldName) || EntityHelper.OwningDept.equalsIgnoreCase(fieldName)
|| EntityHelper.CreatedOn.equalsIgnoreCase(fieldName) || EntityHelper.CreatedBy.equalsIgnoreCase(fieldName)
|| EntityHelper.ModifiedOn.equalsIgnoreCase(fieldName) || EntityHelper.ModifiedBy.equalsIgnoreCase(fieldName);
}
public static boolean isApprovalField(String fieldName) {
return EntityHelper.ApprovalId.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalState.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalStepNode.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalLastUser.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalLastTime.equalsIgnoreCase(fieldName)
|| EntityHelper.ApprovalLastRemark.equalsIgnoreCase(fieldName);
}
public static boolean isBizzEntity(int entityCode) {
return entityCode == EntityHelper.User || entityCode == EntityHelper.Department
|| entityCode == EntityHelper.Role || entityCode == EntityHelper.Team;
}
public static boolean isBizzEntity(Entity entity) {
return isBizzEntity(entity.getEntityCode());
}
public static boolean isBusinessEntity(Entity entity) {
if (entity.getMainEntity() != null) entity = entity.getMainEntity();
return hasPrivilegesField(entity) || EasyMetaFactory.valueOf(entity).isPlainEntity();
}
public static boolean hasPrivilegesField(Entity entity) {
return entity.containsField(EntityHelper.OwningUser) && entity.containsField(EntityHelper.OwningDept);
}
public static boolean hasApprovalField(Entity entity) {
return entity.containsField(EntityHelper.ApprovalId) && entity.containsField(EntityHelper.ApprovalState);
}
public static Field getDetailToMainField(Entity detailEntity) {
Entity main = detailEntity.getMainEntity();
Assert.isTrue(main != null, "None detail-entity");
String mainForeign = main.getName() + "Id";
if (detailEntity.containsField(mainForeign)) return detailEntity.getField(mainForeign);
for (Field field : detailEntity.getFields()) {
if (field.getType() != FieldType.REFERENCE) continue;
if (main.equals(field.getReferenceEntity()) && !field.isCreatable()) {
return field;
}
}
throw new MetadataException("Bad detail-entity (No DTM)");
}
public static Field getLastJoinField(Entity entity, String fieldPath) {
return getLastJoinField(entity, fieldPath, Boolean.FALSE);
}
public static Field getLastJoinField(Entity entity, String fieldPath, boolean compatibleN2N) {
final String[] ps = fieldPath.split("\\.");
if (fieldPath.charAt(0) == QueryCompiler.NAME_FIELD_PREFIX) {
ps[0] = ps[0].substring(1);
if (!entity.containsField(ps[0])) return null;
}
Field lastField = null;
Entity father = entity;
for (String field : ps) {
if (father != null && father.containsField(field)) {
lastField = father.getField(field);
if (lastField.getType() == FieldType.REFERENCE) {
father = lastField.getReferenceEntity();
} else if (compatibleN2N && lastField.getType() == FieldType.REFERENCE_LIST) {
father = lastField.getReferenceEntity();
} else {
father = null;
}
} else {
return null;
}
}
return lastField;
}
public static boolean checkAndWarnField(Entity entity, String fieldName) {
if (entity.containsField(fieldName)) return true;
log.warn("Unknown field `{}` in `{}`", fieldName, entity.getName());
CommonsUtils.printStackTrace();
return false;
}
public static boolean checkAndWarnField(String entityName, String fieldName) {
if (!containsEntity(entityName)) return false;
return checkAndWarnField(getEntity(entityName), fieldName);
}
public static Set<String> getEntityTags() {
Set<String> set = new TreeSet<>();
for (Entity entity : getEntities()) {
String tags = EasyMetaFactory.valueOf(entity).getExtraAttr(EasyEntityConfigProps.TAGS);
if (StringUtils.isNotBlank(tags)) {
Collections.addAll(set, tags.split(","));
}
}
return set;
}
public static ID checkSpecEntityId(String idtext, int entityCode) {
if (!ID.isId(idtext)) return null;
ID id = ID.valueOf(idtext);
return id.getEntityCode() == entityCode ? id : null;
}
}
六、项目总结
企业项目管理系统是企业内部管理的重要工具,它以管理员和用户两角色为核心,旨在协调和管理企业的各类项目与任务。系统的主要功能包括管理员的个人中心、用户管理、项目管理、项目申报管理、操作日志管理、公告管理、论坛管理以及基础数据管理等,涵盖了从项目立项到执行到完成的全程管理。同时,用户也可以通过注册和登录,使用个人中心、论坛、公告查看筛选项目以及添加项目申报信息等功能,更好地参与和管理项目流程。
企业项目管理系统的重要性体现在多个方面。首先,它可以通过规划和管理项目流程,实现资源的优化配置,有效提高项目的执行效率和成功率。其次,该系统能提升企业的信息管理水平,提高企业内部沟通和协作的效率。此外,随着数字化时代的到来,企业项目管理系统已经成为企业不可或缺的一部分,通过不断改进和优化系统功能,企业可以更好地满足自身的需求和提高管理水平。