【开源免费】基于Vue和SpringBoot的常规应急物资管理系统(附论文)

本文项目编号 T 159 ,文末自助获取源码 \color{red}{T159,文末自助获取源码} T159,文末自助获取源码


目录


一、系统介绍

当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前相关行业对于常规应急物资信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结合使用主流的程序开发技术,设计了一款基于SpringBoot+Vue的常规应急物资管理系统,可以较大地减少人力、财力的损耗,方便相关人员及时更新和保存信息。本常规应急物资管理系统是建立在B/S模式的基础之上,通过使用idea平台上编写相关的Java代码,实现对系统的功能模块的设计,使用MySQL数据库设计相关的数据表,实现对系统数据资源的管理和控制,使用SSM框架创建相关的项目主流架构,实现系统的基本框架搭建,最后再通过使用Tomcat浏览器将所研发的系统发布到网上,便于相关的用户运行和使用本系统。本文对系统进行实现的可行性分析,设计的功能及数据库规划,以及设计的主要功能模块测试等内容做了较为详细的介绍,并且在本文中也展示了系统主要的功能模块设计界面和操作界面,并对其做出了必要的解释说明,方便用户对系统进行操作和使用,以及后期的相关人员对系统进行更新和维护。本系统的实现可以极大地提高相关行业的工作效率,提升用户的使用体验,因此在现实生活中运用本系统具有很大的使用价值。

本文首先介绍了常规应急物资管理系统的研究背景与意义,其次介绍了系统的总体功能设计,接着将对系统规划好的总体功能拆分成了各个功能子模块,然后详细地对每一个小的功能子模块进行设计,最后介绍了展示设计好的功能模块以及测试结果。系统主要分为管理员角色和用户角色,具体的功能设计包括注册登录管理、用户信息管理、物资信息管理、物资运输管理等模块。注册登录管理功能是新用户在使用系统前,需要通过注册步骤,登记详细的信息资料,而后再通过输入正确的账号和密码,成功登录系统后,即可通过一系列的操作来满足自己的相关需求。用户信息管理功能是管理相关的用户信息资料,管理人员根据现实情况的需要,选择性的对用户信息记录进行更新处理。物资信息管理是管理相关的物资信息记录,保存详情的物资信息情况,方便及时响应用户的服务请求。物资运输管理是管理相关的物资运输信息记录,方便相关人员及时查看物资运输信息,如果遇到异常的物资运输信息,可以及时对其进行处理,在较短的时间内解决问题,提高用户的使用体验。

二、数据库设计

本系统采用的是MySQL存储数据,系统中使用到的主要数据表的具体展示部分如下所示。

逻辑设计阶段主要的工作是将概念设计中的E-R图,转换成方便系统进行存储和管理的二维表格形式。这一阶段也可以被称为数据库的详细设计,其直接关系到系统功能模块的正常运行、数据信息的正常更新等。在设计过程中,需要充分考虑数据库的规范性和合理性,使得能够满足系统的功能和性能需求。本系统相关的数据表格设计内容如下所示。

三、配套教程

3.1 启动教程

3.2 讲解视频

3.3 二次开发教程

四、功能截图

通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-1所示。

java 复制代码
/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		R r = R.ok();
		r.put("token", token);
		r.put("role",user.getRole());
		r.put("userId",user.getId());
		return r;
	}
/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UsersEntity user){
        EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
    	PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
}

通过设计的个人中心功能模块,管理用户可以选择修改账号密码,查看个人资料信息,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-1所示,个人信息界面设计如图5-2所示。

java 复制代码
/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        usersService.update(user,null);
        return R.ok("密码已重置为:123456");
}
/**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UsersEntity user = usersService.selectById(id);
        return R.ok().put("data", user);
}

通过设计的健康打卡管理功能模块,管理用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-3所示。

java 复制代码
/**
    * 健康打卡后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody DakaEntity daka, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,daka:{}",this.getClass().getName(),daka.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            daka.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<DakaEntity> queryWrapper = new EntityWrapper<DakaEntity>()
            .notIn("id",daka.getId())
            .andNew()
            .eq("yonghu_id", daka.getYonghuId())
            .eq("insert_time", new SimpleDateFormat("yyyy-MM-dd").format(daka.getInsertTime()))
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        DakaEntity dakaEntity = dakaService.selectOne(queryWrapper);
        if(dakaEntity==null){
            dakaService.updateById(daka);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

通过设计的基础数据管理功能模块,管理用户可以管理相关的物资类型信息记录,比如进行查看物资类型的详细信息,修改物资类型的名称信息,删除已经失效的物资类型信息记录等操作,物资类型管理界面设计如图5-4所示。

java 复制代码
/**
    * 基础数据后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody DictionaryEntity dictionary, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        //根据字段查询是否有相同数据
        Wrapper<DictionaryEntity> queryWrapper = new EntityWrapper<DictionaryEntity>()
            .notIn("id",dictionary.getId())
            .eq("dic_code", dictionary.getDicCode())
            .eq("index_name", dictionary.getIndexName())
            ;

        if(dictionary.getDicCode().contains("_erji_types")){
            queryWrapper.eq("super_id",dictionary.getSuperId());
        }
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        DictionaryEntity dictionaryEntity = dictionaryService.selectOne(queryWrapper);
        if(dictionaryEntity==null){
            dictionaryService.updateById(dictionary);//根据id更新
            //如果字典表修改数据的话,把数据再重新查出,放入监听器中
            List<DictionaryEntity> dictionaryEntities = dictionaryService.selectList(new EntityWrapper<DictionaryEntity>());
            ServletContext servletContext = request.getServletContext();
            Map<String, Map<Integer,String>> map = new HashMap<>();
            for(DictionaryEntity d :dictionaryEntities){
                Map<Integer, String> m = map.get(d.getDicCode());
                if(m ==null || m.isEmpty()){
                    m = new HashMap<>();
                }
                m.put(d.getCodeIndex(),d.getIndexName());
                map.put(d.getDicCode(),m);
            }
            servletContext.setAttribute("dictionaryMap",map);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
}

通过设计的物资管理功能模块,管理用户可以管理相关的物资信息记录,比如进行查看物资的详细信息,修改物资的库存信息,删除已经失效的物资信息记录等操作,物资管理界面设计如图5-5所示。

java 复制代码
/**
    * 物资后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody WuziEntity wuzi, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,wuzi:{}",this.getClass().getName(),wuzi.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        //根据字段查询是否有相同数据
        Wrapper<WuziEntity> queryWrapper = new EntityWrapper<WuziEntity>()
            .notIn("id",wuzi.getId())
            .andNew()
            .eq("wuzi_name", wuzi.getWuziName())
            .eq("wuzi_types", wuzi.getWuziTypes())
            .eq("wuzi_kucun_number", wuzi.getWuziKucunNumber())
            .eq("wuzi_danwei", wuzi.getWuziDanwei())
            .eq("wuzi_delete", wuzi.getWuziDelete())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        WuziEntity wuziEntity = wuziService.selectOne(queryWrapper);
        if("".equals(wuzi.getWuziPhoto()) || "null".equals(wuzi.getWuziPhoto())){
                wuzi.setWuziPhoto(null);
        }
        if(wuziEntity==null){
            wuziService.updateById(wuzi);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
}

通过设计的物资申请管理功能模块,管理用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,修改物资的申请时间信息,删除已经失效的物资申请信息记录等操作,物资申请管理界面设计如图5-6所示。

java 复制代码
/**
    * 物资申请后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            wuzishenqing.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));


            wuzishenqing.setInsertTime(new Date());
            wuzishenqing.setWuzishenqingYesnoTypes(1);
            wuzishenqing.setCreateTime(new Date());
            wuzishenqingService.insert(wuzishenqing);
            return R.ok();

    }

    /**
    * 物资申请后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());

            wuzishenqingService.updateById(wuzishenqing);//根据id更新
            return R.ok();

}

通过设计的物资运输管理功能模块,管理用户可以管理相关的物资运输信息记录,比如进行查看物资运输的详细信息,修改物资运输的当前状态信息,删除已经失效的物资运输信息记录等操作,物资运输管理界面设计如图5-7所示。

java 复制代码
/**
    * 物资运输后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");


            wuziyunshu.setUpdateTime(new Date());
            wuziyunshu.setInsertTime(new Date());
            wuziyunshu.setCreateTime(new Date());
            wuziyunshuService.insert(wuziyunshu);
            return R.ok();

    }

    /**
    * 物资运输后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());

        wuziyunshu.setUpdateTime(new Date());
            wuziyunshuService.updateById(wuziyunshu);//根据id更新
            return R.ok();
}

通过设计的用户管理功能模块,管理用户可以管理相关的用户信息资料,比如进行查看用户的详细资料,修改用户的联系方式,删除已经注销的用户信息记录等操作,用户管理界面设计如图5-8所示。

java 复制代码
/**
    * 用户后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        //根据字段查询是否有相同数据
        Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
            .notIn("id",yonghu.getId())
            .andNew()
            .eq("username", yonghu.getUsername())
            .or()
            .eq("yonghu_phone", yonghu.getYonghuPhone())
            .or()
            .eq("yonghu_id_number", yonghu.getYonghuIdNumber())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
        if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){
                yonghu.setYonghuPhoto(null);
        }
        if(yonghuEntity==null){
            yonghuService.updateById(yonghu);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");
        }
}

通过设计的部门管理功能模块,管理用户可以管理相关的部门信息记录,比如进行查看部门的详细信息,修改部门的职责信息,删除已经失效的部门信息记录等操作,部门管理界面设计如图5-9所示。

java 复制代码
/**
    * 部门后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody BumenEntity bumen, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,bumen:{}",this.getClass().getName(),bumen.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        //根据字段查询是否有相同数据
        Wrapper<BumenEntity> queryWrapper = new EntityWrapper<BumenEntity>()
            .notIn("id",bumen.getId())
            .andNew()
            .eq("bumen_name", bumen.getBumenName())
            .eq("bumen_zhize", bumen.getBumenZhize())
            .eq("bumen_number", bumen.getBumenNumber())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        BumenEntity bumenEntity = bumenService.selectOne(queryWrapper);
        if(bumenEntity==null){
            bumenService.updateById(bumen);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-10所示。

通过设计的个人中心管理功能模块,用户可以选择查看个人资料信息,选择更新个人相关的资料信息记录;也可以选择修改账号密码,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-11所示,个人信息界面设计如图5-12所示。

通过设计的健康打卡管理功能模块,用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-13所示。

通过设计的物资管理功能模块,管理用户可以查看相关的物资信息记录,可以查到物资名称、物资图片、物资类型、物资库存等详细信息,物资管理界面设计如图5-14所示。

通过设计的物资申请管理功能模块,用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,新增相关的物资申请信息记录,物资申请管理界面设计如图5-15所示。

通过设计的物资运输管理功能模块,用户可以查看相关的物资运输信息记录,比如查到物资名称、物资图片、单位、运输数量、当前状态等详细信息,物资运输管理界面设计如图5-16所示。

五、文案资料

5.1 选题背景

近年来,第三产业发展非常迅速,诸如计算机服务、旅游、娱乐、体育等服务行业,对整个社会的经济建设起到了极大地促进作用,这一点是毋庸置疑的。现下,国家也出台了一系列的政策来支持和鼓励第三服务产业的发展与完善,用以带动社会经济的发展。所以,整体来说,国家是比较提倡发展第三方服务行业的。纵观计算机领域的整个发展历程,从计算机的诞生到现在,已经有几百年的历史了,计算机应用技术也逐步趋于成熟,并且相关的设计人员也在不断地对其进行改进和完善。再到如今,计算机已经发展成为一个比较热门的行业了。在高校中,计算机、人工智能等专业热度非常高,许多学生在选择专业的时候,大都优先考虑计算机专业。在社会上,计算机类行业也成为了比较受欢迎的行业,从在浏览器中访问的网址,到手机上的各种应用程序,再到大型的软件服务设备,基本上都离不开计算机技术支持,以及硬件的支撑。

如今,互联网几乎遍布于世界的各个角落,人工智能、大数据占据越来越重要的地位,比如疫情期间,通过大数据技术进行筛查,确定哪些人员无接触史,哪些人员需要重点观察,由此可以在极短的时间内,以最快的速度对疫情进行防控。在这个大背景环境的推动下,本人通过学习Java语言、MySQL数据库、SSM框架等相关的计算机技术,打好坚实的技术基础,方便后期对系统进行研发。而后再通过对系统进行分析,确定系统的总体功能需求,以及实现的可能性,方便接下来详细地设计相关的功能模块,最后成功的研发了一款基于SpringBoot+Vue的常规应急物资管理系统。本系统改善了传统的管理模式,将原先的手工记录和管理信息,改进为使用计算机存储和管理信息记录,极大地方便了工作人员对相关数据进行处理,为相关行业节约了不少的员工费用和管理开销,并且能够在较短的时间内响应用户的需求,这种便捷的操作,对于用户来说可以节省不少时间和精力,也省去了不少的麻烦,极大地方便了用户。

传统的信息管理模式,主要是以人力为主进行管理和控制,由工作人员负责登记用户信息,再通过对照之前的信息记录,确定是否给用户提供相关的使用需求,以及如何提供能让用户满意的使用需求。这种管理模式已经适应不了时代的变化了,正在不断地走下坡路,并且逐步被信息化管理模式所取代。所谓的信息化管理模式,是现在主流的一种管理模式,其通过与计算机技术相结合的方式,对行业的整个工作模式和服务流程进行改进和完善。其主要通过使用计算机等设备,将工作服务流程电子化,并且进行存储记录,用以提高行业整体的服务水平。结合计算机技术,本人研发出一款基于SpringBoot+Vue的常规应急物资管理系统,采用电子化的方式对数据信息进行存储,便于工作人员对相关信息进行记录和管理,有利于提高相关行业的工作运营效率以及工作人员的管理速度,以此更好的满足用户的相关需求,最终达到提升用户的使用感受的目的,由此可见设计和实现本系统具有重要的意义和价值。

5.2 国内外研究现状

美国是最先发展计算机技术的众多国家之一,早在上个世纪,美国的计算机技术就快速地发展起来,并且运用在军事、医院、学校、社会服务等场所。日本、德国等国家紧随其后,不断地发展和完善计算机技术,侧重将医疗、社会服务等领域与计算机技术相结合。而后随着社会的发展与进步,计算机技术逐渐趋于成熟。许多发达国家在探索将计算机技术应用于各行各业中时,从另一个角度来看,也在不断地推进相关行业的信息化管理进程,使得相关行业管理也变得更加网络化、信息化。有许多专家表示,可以结合使用图像处理软件、人工智能技术等相关工具,深度地分析常规应急物资管理系统,主要从简化运行操作,加设功能模块,美化系统界面,保障数据安全等方面,更深层次地提升和优化系统,并且尽可能地在理想状态下做到实时的信息共享。

国内的计算机技术的发展虽然晚于国外,尤其是美国、英国、德国等发达国家。但是我国的计算机技术发展势头非常迅猛,近些年,也逐渐走向成熟和完善的阶段。现在,选择网上购物已经成为人们日常生活的一种常态趋势,当然这也离不开对于天猫、支付宝、微信等应用软件的使用。许多企业结合使用了云计算、人工智能等先进的计算机技术,自主研发了行业相关的信息管理系统,计算机技术逐渐趋于成熟,使用设计的功能逐渐趋于完备。结合计算机技术,采用主流的B/S开发结构模式开发一款基于SpringBoot+Vue的常规应急物资管理系统。由此,本系统能够支持工作人员随时随地的通过使用浏览器进行访问操作,支持随时随地对相关的常规应急物资信息进行管理,便于及时为用户提供一定的功能服务。并且所设计的系统基本上能够符合用户的客观使用需求,有利于充分协调相关行业的人力、财力、物力等资源,不断提高相关工作人员的管理质量和水平。

六、核心代码

6.1 查询数据

java 复制代码
    @RequestMapping("/lists")
    public R list( GukeEntity guke){
       	EntityWrapper<GukeEntity> ew = new EntityWrapper<GukeEntity>();
      	ew.allEq(MPUtil.allEQMapPre( guke, "guke")); 
        return R.ok().put("data", gukeService.selectListView(ew));
    }

6.2 新增数据

java 复制代码
    @RequestMapping("/add")
    public R add(@RequestBody GukeEntity guke, HttpServletRequest request){
    	guke.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(guke);
    	GukeEntity user = gukeService.selectOne(new EntityWrapper<GukeEntity>().eq("zhanghao", guke.getZhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}
		guke.setId(new Date().getTime());
        gukeService.insert(guke);
        return R.ok();
    }

6.3 删除数据

java 复制代码
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        gukeService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

本文项目编号 T159,希望给大家带来帮助!

相关推荐
heart000_116 分钟前
基于SpringBoot的智能问诊系统设计与隐私保护策略
java·spring boot·后端
YUELEI11832 分钟前
vue3 使用sass变量
前端·css·sass
枣仁_1 小时前
大型语言模型(LLM)深度解析
前端·javascript·面试
程序员马晓博1 小时前
用上OpenManus啦,这玩意有点像...
前端
修己xj1 小时前
写作利器,一款极简的Markdown 编辑器
开源
鱼樱前端1 小时前
36道我命由我不由天的JavaScript 基础面试题详解
前端·javascript·面试
嘉琪coder1 小时前
显示器报废,win笔记本远程连接mac mini4 3种方法实测
前端·windows·mac
小杨4041 小时前
springboot框架项目实践应用三(监控运维组件admin)
spring boot·后端·监控
hrrrrb2 小时前
【CSS3】筑基篇
前端·css·css3