当前位置:   article > 正文

基于springboot+vue的流动人口登记系统(前后端分离)_springboot + vue实现登记系统

springboot + vue实现登记系统

博主主页猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

本系统适合选题:流动人口、人口登记、登记系统、人员信息等。系统采用springboot+vue整合开发,前端框架主要使用了element-ui框架、数据层采用mybatis,功能齐全,界面美观。

功能介绍:

本流动人口信息管理平台主要分两个角色,即为管理员和人员。管理员可对人员管理、流动人口信息管理、暂住人口信息管理、暂住证管理、管辖单位管理、社区援助管理、辅助办公管理。人员可查看个人中心、流动人口信息管理、暂住人口信息管理、暂住证管理、管辖单位管理、社区援助管理、辅助办公管理。

系统包含技术:

后端:springboot,mybatis
前端:element-ui、layui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是登录页面

人员管理,对人员进行维护

 

流动人口信息

户口簿

社区援助管理

暂住人口信息

暂住证管理

部分代码:

文件维护

  1. /**
  2. * 上传文件
  3. */
  4. @RequestMapping("/upload")
  5. public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
  6. if (file.isEmpty()) {
  7. throw new EIException("上传文件不能为空");
  8. }
  9. String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
  10. File path = new File(ResourceUtils.getURL("classpath:static").getPath());
  11. if(!path.exists()) {
  12. path = new File("");
  13. }
  14. File upload = new File(path.getAbsolutePath(),"/upload/");
  15. if(!upload.exists()) {
  16. upload.mkdirs();
  17. }
  18. String fileName = new Date().getTime()+"."+fileExt;
  19. File dest = new File(upload.getAbsolutePath()+"/"+fileName);
  20. file.transferTo(dest);
  21. FileUtils.copyFile(dest, new File("D:\\biye\\springboot9i8kh\\src\\main\\resources\\static\\upload"+"/"+fileName));
  22. /**
  23. * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
  24. * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
  25. * 并且项目路径不能存在中文、空格等特殊字符
  26. */
  27. // FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
  28. if(StringUtils.isNotBlank(type) && type.equals("1")) {
  29. ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
  30. if(configEntity==null) {
  31. configEntity = new ConfigEntity();
  32. configEntity.setName("faceFile");
  33. configEntity.setValue(fileName);
  34. } else {
  35. configEntity.setValue(fileName);
  36. }
  37. configService.insertOrUpdate(configEntity);
  38. }
  39. return R.ok().put("file", fileName);
  40. }
  41. /**
  42. * 下载文件
  43. */
  44. @IgnoreAuth
  45. @RequestMapping("/download")
  46. public ResponseEntity<byte[]> download(@RequestParam String fileName) {
  47. try {
  48. File path = new File(ResourceUtils.getURL("classpath:static").getPath());
  49. if(!path.exists()) {
  50. path = new File("");
  51. }
  52. File upload = new File(path.getAbsolutePath(),"/upload/");
  53. if(!upload.exists()) {
  54. upload.mkdirs();
  55. }
  56. File file = new File(upload.getAbsolutePath()+"/"+fileName);
  57. if(file.exists()){
  58. /*if(!fileService.canRead(file, SessionManager.getSessionUser())){
  59. getResponse().sendError(403);
  60. }*/
  61. HttpHeaders headers = new HttpHeaders();
  62. headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
  63. headers.setContentDispositionFormData("attachment", fileName);
  64. return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
  65. }
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. }
  69. return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
  70. }

代码信息

  1. /**
  2. * 后端列表
  3. */
  4. @RequestMapping("/page")
  5. public R page(@RequestParam Map<String, Object> params,GuanxiadanweiEntity guanxiadanwei,
  6. HttpServletRequest request){
  7. EntityWrapper<GuanxiadanweiEntity> ew = new EntityWrapper<GuanxiadanweiEntity>();
  8. PageUtils page = guanxiadanweiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, guanxiadanwei), params), params));
  9. return R.ok().put("data", page);
  10. }
  11. /**
  12. * 前端列表
  13. */
  14. @IgnoreAuth
  15. @RequestMapping("/list")
  16. public R list(@RequestParam Map<String, Object> params,GuanxiadanweiEntity guanxiadanwei,
  17. HttpServletRequest request){
  18. EntityWrapper<GuanxiadanweiEntity> ew = new EntityWrapper<GuanxiadanweiEntity>();
  19. PageUtils page = guanxiadanweiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, guanxiadanwei), params), params));
  20. return R.ok().put("data", page);
  21. }
  22. /**
  23. * 列表
  24. */
  25. @RequestMapping("/lists")
  26. public R list( GuanxiadanweiEntity guanxiadanwei){
  27. EntityWrapper<GuanxiadanweiEntity> ew = new EntityWrapper<GuanxiadanweiEntity>();
  28. ew.allEq(MPUtil.allEQMapPre( guanxiadanwei, "guanxiadanwei"));
  29. return R.ok().put("data", guanxiadanweiService.selectListView(ew));
  30. }
  31. /**
  32. * 查询
  33. */
  34. @RequestMapping("/query")
  35. public R query(GuanxiadanweiEntity guanxiadanwei){
  36. EntityWrapper< GuanxiadanweiEntity> ew = new EntityWrapper< GuanxiadanweiEntity>();
  37. ew.allEq(MPUtil.allEQMapPre( guanxiadanwei, "guanxiadanwei"));
  38. GuanxiadanweiView guanxiadanweiView = guanxiadanweiService.selectView(ew);
  39. return R.ok("查询管辖单位成功").put("data", guanxiadanweiView);
  40. }
  41. /**
  42. * 后端详情
  43. */
  44. @RequestMapping("/info/{id}")
  45. public R info(@PathVariable("id") Long id){
  46. GuanxiadanweiEntity guanxiadanwei = guanxiadanweiService.selectById(id);
  47. return R.ok().put("data", guanxiadanwei);
  48. }
  49. /**
  50. * 前端详情
  51. */
  52. @IgnoreAuth
  53. @RequestMapping("/detail/{id}")
  54. public R detail(@PathVariable("id") Long id){
  55. GuanxiadanweiEntity guanxiadanwei = guanxiadanweiService.selectById(id);
  56. return R.ok().put("data", guanxiadanwei);
  57. }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号