基于SSM的企业设备统计分析管理系统的设计与实现系统

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

💖🔥作者主页计算机毕设木哥🔥 💖

一、项目介绍

1. 项目概述

(1) 技术选型:Spring+SpringMVC+Mybatis;搭配Shiro框架实现权限管理;用Maven管理项目依赖;前端采用Bootstrap构建页面,Thymeleaf模板引擎绑定数据;接口实现Restfull风格;
(2) 数据库:mysql -5.7.26
(3) 服务器容器:tomcat -9.0.26
(4) 开发工具:Intellij IDEA 2019版

2.1 设备

设备具有设备标识(id)、设备类型(type)、设备品牌(brand)、设备型号(model)、购置时间(purchase_time)、ERP资产编码(erp_code)、使用状态(status)、域管理状态(domainState) 使用人(master),使用部门(department),所属网络(network),MAC地址(MacAddress),IP地址(ip_Address),系统版本(systemVersion),硬盘容量(HardDisk_Size),CPU信息(CPU_info),内存信息(memory_Info),设备维护信息(maintainInfo) 等信息

1.3首页模块

1. 信息公告
首页可预览发布的公告基本信息(包括标题,日期),点击超链接可以跳转到公告列表,查看公告详细信息
2. 审批填报
由导入模板生成的审批信息填写页面,填写完毕后可以打印
3. 快捷访问
站外网站的快捷导航
4.登录
固定在页面顶部,展示用户的用户名;退出按钮可以注销登录;用户未登录无法访问台账管理模块
台账管理模块
2. 设备管理
设备信息展示与 设备台账 类似,
新增设备功能,输入设备信息以登记新增的设备.可以通过模板导入自动录入信息.
3. 账户信息
需要管理员以上权限可访问,展示用户的信息,可以对账户状态进行管理,可以增删用户以及修改密码
4. 设备台账
设备信息以列表展示在页面,可根据设备信息进行搜索,查询结果可以根据不同的方式(例如时间升/降序)排序,查询结果可以到出excel表
5. 信息维护
基本信息管理,包括设备类型,设备品牌,组织结构等
6. IP 地址
管理ip网段,可增删查改ip地址
7. 信息公告
查看,删除已发布公告;或新增公告
8. 系统管理
需超级管理员权限访问,可对管理员用户账户进行增删,修改密码操作;可查看系统日志

二、项目展示

登录页面:
在这里插入图片描述
管理员模块:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码展示


package com.rebuild.core.metadata;

import cn.devezhao.persist4j.Entity;
import cn.devezhao.persist4j.Field;
import cn.devezhao.persist4j.engine.ID;
import cn.devezhao.persist4j.metadata.BaseMeta;
import com.rebuild.core.Application;
import com.rebuild.core.metadata.easymeta.DisplayType;
import com.rebuild.core.metadata.easymeta.EasyEntity;
import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.util.Assert;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;


@SuppressWarnings("SuspiciousToArrayCall")
public class MetadataSorter {

    
    public static Entity[] sortEntities() {
        return sortEntities(null, true, true);
    }

    
    public static Entity[] sortEntities(ID user, boolean includesBizz, boolean includesDetail) {
        List<BaseMeta> entities = new ArrayList<>();
        for (Entity e : MetadataHelper.getEntities()) {
            if (!e.isQueryable()) continue;
            if (!includesDetail && e.getMainEntity() != null) continue;

            EasyEntity easyEntity = EasyMetaFactory.valueOf(e);
            if (easyEntity.isBuiltin() && !easyEntity.isPlainEntity()) continue;

            Entity checkEntity = e;
            if (includesDetail && e.getMainEntity() != null) checkEntity = e.getMainEntity();

            if (user == null || !MetadataHelper.hasPrivilegesField(checkEntity)) {
                entities.add(e);
            } else if (Application.getPrivilegesManager().allowRead(user, checkEntity.getEntityCode())) {
                entities.add(e);
            }
        }

        sortByLabel(entities);

        
        if (includesDetail) {
            List<BaseMeta> entities2 = new ArrayList<>();
            for (BaseMeta o : entities) {
                Entity me = (Entity) o;
                if (me.getDetailEntity() == null && me.getMainEntity() == null) {
                    entities2.add(me);
                } else if (me.getDetailEntity() != null) {
                    entities2.add(me);

                    for (BaseMeta de : entities) {
                        if (me.equals(((Entity) de).getMainEntity())) entities2.add(de);
                    }
                }
            }

            entities = entities2;
        }

        if (includesBizz) {
            entities.add(MetadataHelper.getEntity(EntityHelper.User));
            entities.add(MetadataHelper.getEntity(EntityHelper.Department));
            entities.add(MetadataHelper.getEntity(EntityHelper.Role));
            entities.add(MetadataHelper.getEntity(EntityHelper.Team));
        }

        return entities.toArray(new Entity[0]);
    }

    
    public static Entity[] sortDetailEntities(Entity mainEntity) {
        Assert.notNull(mainEntity.getDetailEntity(), "None main entity : " + mainEntity);

        List<BaseMeta> entities = new ArrayList<>();
        CollectionUtils.addAll(entities, mainEntity.getDetialEntities());
        sortByLabel(entities);
        return entities.toArray(new Entity[0]);
    }

    
    public static Field[] sortFields(Entity entity, DisplayType... usesTypes) {
        return sortFields(entity.getFields(), usesTypes);
    }

    
    public static Field[] sortFields(Field[] fields, DisplayType... usesTypes) {
        List<BaseMeta> fieldsList = new ArrayList<>();
        for (Field field : fields) {
            if (MetadataHelper.isSystemField(field)) continue;

            if (usesTypes.length == 0) {
                fieldsList.add(field);
            } else {
                DisplayType dt = EasyMetaFactory.getDisplayType(field);
                for (DisplayType use : usesTypes) {
                    if (dt == use) fieldsList.add(field);
                }
            }
        }

        return sortByLevel(fieldsList);
    }

    
    static Field[] sortByLevel(List<BaseMeta> fields) {
        List<BaseMeta> othersFields = new ArrayList<>();
        List<BaseMeta> commonsFields = new ArrayList<>();
        List<BaseMeta> approvalFields = new ArrayList<>();

        for (BaseMeta field : fields) {
            if (MetadataHelper.isApprovalField(field.getName())) {
                approvalFields.add(field);
            } else if (MetadataHelper.isCommonsField((Field) field)) {
                commonsFields.add(field);
            } else {
                othersFields.add(field);
            }
        }

        sortByLabel(othersFields);
        List<BaseMeta> allFields = new ArrayList<>(othersFields);

        sortByLabel(commonsFields);
        allFields.addAll(commonsFields);

        sortByLabel(approvalFields);
        allFields.addAll(approvalFields);

        return allFields.toArray(new Field[0]);
    }

    
    public static void sortByLabel(List<BaseMeta> metas) {
        if (metas.size() <= 1) return;

        Comparator<Object> comparator = Collator.getInstance(Locale.CHINESE);
        metas.sort((foo, bar) -> {
            String fooLetter = EasyMetaFactory.getLabel(foo);
            String barLetter = EasyMetaFactory.getLabel(bar);
            return comparator.compare(fooLetter, barLetter);
        });
    }
}

四、项目总结

本文详细介绍了一个基于SSM的企业设备统计分析管理系统的设计与实现过程。该系统通过自动化、智能化的方式提高了设备管理的效率和精度,为企业管理层提供了决策支持。实验结果表明,系统具有一定的可行性和实用性。然而,系统仍存在一些不足之处,需要进一步优化和改进。未来的研究方向包括优化系统性能、增强系统功能、提高用户体验等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕业设计木哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值