springboot基于Web的林业信息管理系统的设计与实现

收藏关注不迷路,源码文章末


一、项目介绍

  林业信息管理系统利用Java框架开发的一款管理系统,数据存储到MySQL中,客户端前台使用Vue技术对界面进行设计和实现。本文先充分调查林业信息管理系统的需求分析,深入剖析系统应该具有的功能,并设计完善的数据库。利用成熟的开发技术完成编码工作,最后进行投入前的测试工作。最终,完成前台和后台的林业信息管理系统的功能,主要包括森林资源的数量和质量、森林类型和各地类的空间配置、林龄和径级的分布、生长、枯损等动态信息,育苗管理,造林、营林、采伐、加工的各项计划的申请和批准等业务流程管理,报表管理等,通过前后台实现数据的传递。
关键词:Web;Java语言;林业信息;在线管理

二、开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

林业信息管理系统可以为林业局领导提供业务管理功能,林业局领导也就是系统的管理员,具有会员管理、系统管理、森林资源信息管理、空间配置管理、林龄动态管理、育苗信息管理、计划审核管理的权限,添加或者删除用户基本信息,发布通知公告,对历史通知公告信息进行删除操作,
客户主要是查看个人信息,查看计划信息,计划申请,并提交计划到系统中。在反馈模块还可以参与讨论、发表问题。查看管理员发布的通知公告。
其中系统用例图如3.1所示:
在这里插入图片描述

图3.1系统用例图
其中用户登录中,通过Vue访问该林业信息管理系统,选择登录界面,进行登录。登录成功进入到系统,登录失败,提示用户不存在,需要重新输入正确的用户名和密码。
用户管理中,先运行林业信息管理系统,然后录入林业信息,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
计划申请管理中,启动林业信息管理系统,进入到计划申请创建的页面,填写创建计划申请的基本信息,创建成功后更新计划申请数据库表的记录。在计划申请修改或者删除的页面,完成操作后,更新计划申请数据库表的记录。在计划申请列表界面,查询所有的计划申请数据库表的记录,然后绑定数据到计划申请列表中。
森林资源管理中,启动林业信息管理系统,进入到森林资源创建的页面,填写创建森林资源的基本信息,创建成功后更新森林资源数据库表的记录。在森林资源修改或者删除的页面,完成操作后,更新森林资源数据库表的记录。在森林资源列表界面,查询所有的森林资源数据库表的记录,然后绑定数据到森林资源列表中。

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六 文章目录

目 录
摘 要 2
Abstract 3
目 录 5
1系统概述 8
1.1 研究的背景和意义 8
1.2 国内外研究现状 9
1.3 研究内容 9
2系统技术 11
2.1 Java技术 11
2.2 MYSQL数据库 11
2.3 JSON数据 12
3系统需求分析 13
3.1 可行性分析 13
3.1.1 经济可行性 13
3.1.2 技术可行性 13
3.1.3 法律可行性 13
3.2 需求分析 13
3.2.1 非功能性需求 13
3.2.2 功能性需求 14
4系统设计 17
4.1 架构设计 17
4.2 功能设计 18
4.2.1 管理员功能设计 18
4.2.3 会员功能设计 19
4.3 数据库设计 19
4.3.1 数据库设计原则 19
4.3.2 数据库ER图设计 20
4.3.3 数据库表设计 21
5 系统实现 26
5.1 后台功能实现 26
5.1.1 管理员登录功能实现 26
5.1.2 用户管理功能实现 26
5.1.3 林业信息管理功能实现 28
5.2.4 林业资源统计实现 28
5.2.5 计划申请审核功能实现 29
5.2 前台功能实现 30
5.2.1 会员登录管理实现 30
5.2.2 个人中心功能实现 31
5.3.3 林业信息查看功能实现 31
5.3.4 计划申请功能实现 32
第6章 系统测试 34
6.1 程序测试 34
6.2 测试用例 35
6.3 系统测试结果 36
结论 38
参考文献 39
致谢 40

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QQ1039692211

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

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

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

打赏作者

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

抵扣说明:

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

余额充值