news 2026/5/1 7:34:54

[免费]SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[免费]SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】,分享下哈。

项目视频演示

https://www.bilibili.com/video/BV1fTq2B9EQ2/

项目介绍

在经济困难学生资助体系中,传统的人工管理方式显得低效,并且在数据统计和信息处理上容易出现错误,这给管理工作带来了极大的复杂性。为了应对这一挑战,适应“互联网+”时代的发展需求,采用信息技术来提升管理效率成为当务之急。在此背景下,开发一个勤工助学信息管理系统显得尤为重要,该系统旨在实现学生信息的在线填写与审核,不仅提高了管理的透明度和公平性,也显著减轻了管理人员的负担,为学生提供了更多便利。

系统展示

部分代码

package com.controller; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Map; import java.util.HashMap; import java.util.Iterator; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import com.utils.ValidatorUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.annotation.IgnoreAuth; import com.entity.YonggongbumenEntity; import com.entity.view.YonggongbumenView; import com.service.YonggongbumenService; import com.service.TokenService; import com.utils.PageUtils; import com.utils.R; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.CommonUtil; import java.io.IOException; /** * 用工部门 * 后端接口 */ @RestController @RequestMapping("/yonggongbumen") public class YonggongbumenController { @Autowired private YonggongbumenService yonggongbumenService; @Autowired private TokenService tokenService; /** * 登录 */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", username)); if(u==null || !u.getMima().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(u.getId(), username,"yonggongbumen", "用工部门" ); return R.ok().put("token", token); } /** * 注册 */ @IgnoreAuth @RequestMapping("/register") public R register(@RequestBody YonggongbumenEntity yonggongbumen){ //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("注册用户已存在"); } Long uId = new Date().getTime(); yonggongbumen.setId(uId); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 退出 */ @RequestMapping("/logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } /** * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); YonggongbumenEntity u = yonggongbumenService.selectById(id); return R.ok().put("data", u); } /** * 密码重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", username)); if(u==null) { return R.error("账号不存在"); } u.setMima("123456"); yonggongbumenService.updateById(u); return R.ok("密码已重置为:123456"); } /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,YonggongbumenEntity yonggongbumen, HttpServletRequest request){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); PageUtils page = yonggongbumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonggongbumen), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,YonggongbumenEntity yonggongbumen, HttpServletRequest request){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); PageUtils page = yonggongbumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonggongbumen), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( YonggongbumenEntity yonggongbumen){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); ew.allEq(MPUtil.allEQMapPre( yonggongbumen, "yonggongbumen")); return R.ok().put("data", yonggongbumenService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(YonggongbumenEntity yonggongbumen){ EntityWrapper< YonggongbumenEntity> ew = new EntityWrapper< YonggongbumenEntity>(); ew.allEq(MPUtil.allEQMapPre( yonggongbumen, "yonggongbumen")); YonggongbumenView yonggongbumenView = yonggongbumenService.selectView(ew); return R.ok("查询用工部门成功").put("data", yonggongbumenView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ YonggongbumenEntity yonggongbumen = yonggongbumenService.selectById(id); return R.ok().put("data", yonggongbumen); } /** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ YonggongbumenEntity yonggongbumen = yonggongbumenService.selectById(id); return R.ok().put("data", yonggongbumen); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ yonggongbumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("用户已存在"); } yonggongbumen.setId(new Date().getTime()); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ yonggongbumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("用户已存在"); } yonggongbumen.setId(new Date().getTime()); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 修改 */ @RequestMapping("/update") @Transactional public R update(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ //ValidatorUtils.validateEntity(yonggongbumen); yonggongbumenService.updateById(yonggongbumen);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ yonggongbumenService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper<YonggongbumenEntity> wrapper = new EntityWrapper<YonggongbumenEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = yonggongbumenService.selectCount(wrapper); return R.ok().put("count", count); } }

源码下载

链接:https://pan.baidu.com/s/1CDx7vu0HpEvkqxWR44N8JA
提取码:1234

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:31:56

半导体设备互锁管理程序技术方案

半导体设备互锁管理程序技术方案一、技术架构设计采用分层架构实现高内聚低耦合&#xff1a;设备层&#xff1a;通过OPC UA/SECS/GEM协议与PLC通信服务层&#xff1a;实现SEMI E84/E87标准的核心逻辑应用层&#xff1a;WPF MVVM架构管理UI交互数据层&#xff1a;时序数据库存储…

作者头像 李华
网站建设 2026/4/24 14:20:29

LangFlow能否替代传统代码开发?专家视角下的利弊权衡

LangFlow能否替代传统代码开发&#xff1f;专家视角下的利弊权衡 在AI应用爆发式增长的今天&#xff0c;一个有趣的现象正在发生&#xff1a;越来越多的产品经理、业务分析师甚至高校学生&#xff0c;开始不写一行代码就搭建出能调用大模型、检索知识库、自动回复用户问题的智能…

作者头像 李华
网站建设 2026/5/1 6:45:51

LangFlow vs 手动编码:哪种方式更适合LangChain应用开发?

LangFlow vs 手动编码&#xff1a;哪种方式更适合LangChain应用开发&#xff1f; 在大语言模型&#xff08;LLM&#xff09;迅速渗透各行各业的今天&#xff0c;构建基于自然语言理解与生成能力的应用已成为AI工程的核心任务。LangChain 作为主流框架之一&#xff0c;为开发者提…

作者头像 李华
网站建设 2026/4/21 20:14:34

LangFlow开发节日促销主题创意工坊

LangFlow开发节日促销主题创意工坊 在电商营销节奏日益加快的今天&#xff0c;一场“双十一”或“618”的背后&#xff0c;往往是上百条文案、数十种风格、多轮A/B测试的密集碰撞。传统依赖人工撰写与技术反复调试的模式&#xff0c;已难以应对这种高强度、快迭代的创意需求。更…

作者头像 李华