• 基于Java+SpringBoot+Vue前后端分离码头船只货柜管理系统设计和实现


    博主介绍全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战

    🍅文末获取源码联系🍅

    👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

    2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

    Java项目精品实战案例《100套》

    Java微信小程序项目实战《100套》

    系统介绍:

    针对于码头船只货柜信息管理方面的不规范,容错率低,管理人员处理数据费工费时,采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。

    码头船只货柜管理系统能够实现货柜管理,路线管理,新闻管理,船只管理,用户管理等功能。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。

    码头船只货柜管理系统可以提高码头船只货柜信息管理问题的解决效率,优化码头船只货柜信息处理流程,提交信息处理效率。

    图4.1即为设计的系统功能结构,系统分为管理员和用户两个操作权限,管理员权限操作的功能包括管理用户,管理船只,管理路线,管理货柜,管理新闻等。用户权限操作的功能包括查看船只,查看新闻,查看路线以及货柜信息等。

    图4.1 系统功能结构

    程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

    程序操作流程图

    功能截图:

    编程人员在搭建的开发环境中,运用编程技术实现本系统设计的各个操作权限的功能。在本节中,就展示部分操作权限的功能与界面。

    5.1 管理员功能实现

    5.1.1 船只信息管理

    图5.1 即为编码实现的船只信息管理界面,管理员在该界面中新增船只信息,船只信息包括船只材质,船只型号等信息,管理员可以对船只信息进行查询,更改等操作。

    图5.1 船只信息管理界面

    5.1.2 货柜信息管理

    图5.2 即为编码实现的货柜信息管理界面,管理员在该界面中对货柜信息进行新增,货柜信息包括货柜类型,货柜型号等信息,在本界面,管理员可以更改货柜信息,查询货柜信息等。

    图5.2 货柜信息管理界面

    5.1.3 路线信息管理

    图5.3 即为编码实现的路线信息管理界面,管理员在该界面中具备对路线信息新增,查询,编辑,删除等操作权限。

    图5.3 路线信息管理界面

    5.1.4 新闻管理

    图5.4 即为编码实现的新闻管理界面,管理员在该界面中具备发布新闻,编辑新闻,查询新闻等权限。

    图5.4 新闻管理界面

    5.1.5 用户管理

    图5.5 即为编码实现的用户管理界面,管理员在该界面中为用户的账号重置密码,更改用户资料,查询用户等。

    图5.5 用户管理界面

    5.2 用户功能实现

    5.2.1 船只信息

    图5.6 即为编码实现的船只信息界面,用户在该界面中查询船只,查看船只信息。

    图5.6 船只信息界面

    5.2.2 新闻信息

    图5.7 即为编码实现的新闻信息界面,用户在该界面中查询并查看新闻信息。

    图5.7 新闻信息界面

    5.2.3 更改个人信息

    图5.8 即为编码实现的更改个人信息界面,用户在该界面中对个人信息进行查看,对登记错误的个人信息进行更改,也包括更改个人照片,更改手机号等信息。

    图5.8 更改个人信息界面

    代码实现:

    1. /**
    2. * 登录相关
    3. */
    4. @RequestMapping("users")
    5. @RestController
    6. public class UserController{
    7. @Autowired
    8. private UserService userService;
    9. @Autowired
    10. private TokenService tokenService;
    11. /**
    12. * 登录
    13. */
    14. @IgnoreAuth
    15. @PostMapping(value = "/login")
    16. public R login(String username, String password, String role, HttpServletRequest request) {
    17. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    18. if(user != null){
    19. if(!user.getRole().equals(role)){
    20. return R.error("权限不正常");
    21. }
    22. if(user==null || !user.getPassword().equals(password)) {
    23. return R.error("账号或密码不正确");
    24. }
    25. String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    26. return R.ok().put("token", token);
    27. }else{
    28. return R.error("账号或密码或权限不对");
    29. }
    30. }
    31. /**
    32. * 注册
    33. */
    34. @IgnoreAuth
    35. @PostMapping(value = "/register")
    36. public R register(@RequestBody UserEntity user){
    37. // ValidatorUtils.validateEntity(user);
    38. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    39. return R.error("用户已存在");
    40. }
    41. userService.insert(user);
    42. return R.ok();
    43. }
    44. /**
    45. * 退出
    46. */
    47. @GetMapping(value = "logout")
    48. public R logout(HttpServletRequest request) {
    49. request.getSession().invalidate();
    50. return R.ok("退出成功");
    51. }
    52. /**
    53. * 密码重置
    54. */
    55. @IgnoreAuth
    56. @RequestMapping(value = "/resetPass")
    57. public R resetPass(String username, HttpServletRequest request){
    58. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    59. if(user==null) {
    60. return R.error("账号不存在");
    61. }
    62. user.setPassword("123456");
    63. userService.update(user,null);
    64. return R.ok("密码已重置为:123456");
    65. }
    66. /**
    67. * 列表
    68. */
    69. @RequestMapping("/page")
    70. public R page(@RequestParam Map params,UserEntity user){
    71. EntityWrapper ew = new EntityWrapper();
    72. PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
    73. return R.ok().put("data", page);
    74. }
    75. /**
    76. * 信息
    77. */
    78. @RequestMapping("/info/{id}")
    79. public R info(@PathVariable("id") String id){
    80. UserEntity user = userService.selectById(id);
    81. return R.ok().put("data", user);
    82. }
    83. /**
    84. * 获取用户的session用户信息
    85. */
    86. @RequestMapping("/session")
    87. public R getCurrUser(HttpServletRequest request){
    88. Integer id = (Integer)request.getSession().getAttribute("userId");
    89. UserEntity user = userService.selectById(id);
    90. return R.ok().put("data", user);
    91. }
    92. /**
    93. * 保存
    94. */
    95. @PostMapping("/save")
    96. public R save(@RequestBody UserEntity user){
    97. // ValidatorUtils.validateEntity(user);
    98. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    99. return R.error("用户已存在");
    100. }
    101. userService.insert(user);
    102. return R.ok();
    103. }
    104. /**
    105. * 修改
    106. */
    107. @RequestMapping("/update")
    108. public R update(@RequestBody UserEntity user){
    109. // ValidatorUtils.validateEntity(user);
    110. userService.updateById(user);//全部更新
    111. return R.ok();
    112. }
    113. /**
    114. * 删除
    115. */
    116. @RequestMapping("/delete")
    117. public R delete(@RequestBody Integer[] ids){
    118. userService.deleteBatchIds(Arrays.asList(ids));
    119. return R.ok();
    120. }
    121. }

    论文参考:

    源码获取:

    大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

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

    2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

    Java项目精品实战案例《100套》

    Java微信小程序项目实战《100套》

  • 相关阅读:
    从0开始配置深度学习环境(Python)
    短视频矩阵系统源代码开发,独立saas系统搭建oem源码部署
    观察者(observer)模式(二) —— 实现线程安全的监听器
    Java多线程-线程的状态和线程常用方法
    记一次 MySQL timestamp 精度问题的排查 → 过程有点曲折
    springboot基于JAVA的电影推荐系统的开发与实现毕业设计源码112306
    PPT模板下载网站推荐
    Linux_aarch64_head.S到main.c的环境建立
    C. Keshi Is Throwing a Party- Codeforces Global Round 17
    Go Web——HttpRouter路由
  • 原文地址:https://blog.csdn.net/weixin_39709134/article/details/132798836