基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

项目介绍

学生会管理系统.主要功能包括:

后台首页:最新活动展示、最新公告、学生会部门职能介绍; 财务管理:资金报销登记、赞助商管理; 物资管理:物资借还管理、全部物资;添加、编辑、删除; 日常事务管理:工作计划管理、活动管理、文件管理; 申请请假:添加、修改、删除、查看;

我的待办;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

技术栈

  1. 后端:SpringBoot

  2. 前端:Thymeleaf+html+layui+jQuery+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml及activiti.cfg.xml配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8085 登录

    /**
     * 更新权限
     * @param quanxianv
     * @return
     */
    @RequestMapping("updatePermission")
    public resultreturn updatePermission(quanxianv quanxianv){
        try {
            permissionService.updateById(quanxianv);
            return resultreturn.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.UPDATE_ERROR;
        }
    }

    /**
     * 检查当前权限是否有子权限
     * @param quanxianv
     * @return
     */
    @RequestMapping("checkPermissionHasChildrenNode")
    public Map<String,Object> checkPermissionHasChildrenNode(quanxianv quanxianv){
        Map<String,Object> map = new HashMap<String, Object>();
        QueryWrapper<permisson> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("pid", quanxianv.getId());
        List<permisson> list = permissionService.list(queryWrapper);
        if (list.size()>0){
            map.put("value",true);
        }else {
            map.put("value",false);
        }
        return map;
    }

    /**
     * 删除权限
     * @param quanxianv
     * @return
     */
    @RequestMapping("deletePermission")
    public resultreturn deletePermission(quanxianv quanxianv){
        try {
            permissionService.removeById(quanxianv.getId());
        }
    }

}

@RestController
@RequestMapping("/goods")
public class GoodsController {

    @Autowired
    private GoodsService goodsService;

    @Autowired
    private GoodsService1 AllgoodsService;

    /**
     * 查询物资
     * @param
     * @return
     */
    @RequestMapping("loadAllGoods")
    public Dataobj loadAllGoods(GoodsVo goodsVo){

        IPage<goods> page = new Page<>(goodsVo.getPage(),goodsVo.getLimit());
        QueryWrapper<goods> q = new QueryWrapper<>();
     */
    @RequestMapping("deleteNotice")
    public resultreturn deleteNotice(gongaov noticeVo){
        try {
            noticeService.removeById(noticeVo);
            return resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

    /**
     * 批量删除公告
     * @param noticeVo
     * @return
     */
    @RequestMapping("batchDeleteNotice")
    public resultreturn batchDeleteNotice(gongaov noticeVo){
        try {
            Collection<Serializable> idList = new ArrayList<>();
            for (Integer id : noticeVo.getIds()) {
                idList.add(id);
            }
            noticeService.removeByIds(idList);
            return resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

}

                tak.setPi(pi);
                tak.setProcressId(procressId);
                list1.add(tak);
            }
        }
        return list1;
    }

    public List<task> findPersonalTask(String username){
        QueryWrapper<leaver> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("leaver",username).eq("status",2);
        leaver leaver=leaverService.getOne(queryWrapper);

        TaskService taskService=this.processEngine.getTaskService();

        List<org.activiti.engine.task.Task> list =this.processEngine.getTaskService()
                .createTaskQuery()
                .taskAssignee(username)//个人任务的查询
                .list();
        List<task> list1=new ArrayList<task>();

        if(list!=null && list.size()>0){
            for (org.activiti.engine.task.Task task1:list) {
                task tak=new task();
                Integer procressId = (Integer) taskService.getVariable(task1.getId(), "请假流程");
                tak.setProcressId(procressId);
                tak.setId(Integer.parseInt(task1.getId()));
                tak.setName(task1.getName());
                tak.setAssignee(task1.getAssignee());
                tak.setProcessInstanceId(task1.getProcessInstanceId());
                tak.setCreateTime(task1.getCreateTime());
                tak.setLeaver(leaver.getLeaver());
                tak.setReason(leaver.getLeavereson());
                tak.setLeaverId(leaver.getId());
                tak.setRemart(leaver.getRemark());
                tak.setTime(new Date());
                tak.setStyle(leaver.getStyle());
                list1.add(tak);
            }
        }
     * 删除请假单
     * @param id
     * @return
     */
    @RequestMapping("deleteLeave")
    public resultreturn deleteLeave(Integer id){
        try {
                leaverService.removeById(id);
                return resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

    //部署流程并开启流程
    public void deploymentProcess(String name) throws Exception{
        //请假流程部署
        Deployment deployment =this.processEngine.getRepositoryService()
                .createDeployment()//创建流程
                .name("学生会请假流程.....")//流程名称
                .addClasspathResource("diagrams/LeaveProgress.bpmn")//流程图文件
                .addClasspathResource("diagrams/LeaveProgress.png")//流程图
                .deploy();

        //获取RuntimeService对象
        RuntimeService runtimeService = this.processEngine.getRuntimeService();
        //根据流程key值,获取流程
        String processKey ="leave";

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("logintype","生活文体部").eq("remark","部长");
        User user=userService.getOne(queryWrapper);//查询生活文体部部长

        QueryWrapper<User> q=new QueryWrapper<>();
        q.eq("logintype","行政秘书部").eq("remark","部长");
        User user1=userService.getOne(q);//查询行政秘书部部长

        QueryWrapper<User> q1=new QueryWrapper<>();
        q1.eq("logintype","实践部").eq("remark","部长");
        User user2=userService.getOne(q1);

        QueryWrapper<User> q2=new QueryWrapper<>();
        q2.eq("logintype","组织部").eq("remark","部长");
        User user3=userService.getOne(q2);

        QueryWrapper<User> q3=new QueryWrapper<>();
        q3.eq("logintype","策划部").eq("remark","部长");
        User user4=userService.getOne(q3);

        QueryWrapper<User> q4=new QueryWrapper<>();
        q4.eq("logintype","宣传部").eq("remark","部长");
        User user5=userService.getOne(q4);


    @Autowired
    private PlansService plansService;

    /**
     * 查询计划
     * @param
     * @return
     */
    @RequestMapping("loadAllplans")
    public Dataobj loadAllGoods1(PlansVo plansVo){

        IPage<plans> page = new Page<>(plansVo.getPage(),plansVo.getLimit());
        QueryWrapper<plans> q = new QueryWrapper<>();
        q.like(StringUtils.isNotBlank(plansVo.getPlanname()),"planname",plansVo.getPlanname());
        q.like(StringUtils.isNotBlank(plansVo.getSumitdepart()),"sumitdepart",plansVo.getSumitdepart());
        q.like(StringUtils.isNotBlank(plansVo.getSumitor()),"sumitor",plansVo.getSumitor());
        q.orderByAsc("pid");
        plansService.page(page,q);
        List list =plansService.list(q);
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(page.getRecords(), page.getTotal());
        }
    }

    /**
     * 新建计划
     * @param
     * @return
     */
    @RequestMapping("addplans")
    public Resultreturn addGoods1(PlansVo plansVo){
        try {

            plansService.save(plansVo);
            return Resultreturn.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.ADD_ERROR;
        }
    }

    /**
     * 修改计划
     */
    @RequestMapping("updateplans")
    public Resultreturn updateGoods1(PlansVo plansVo){
        try {
            plansService.updateById(plansVo);
    //部署流程并开启流程
    public void deploymentProcess(String name) throws Exception{
        //请假流程部署
        Deployment deployment =this.processEngine.getRepositoryService()
                .createDeployment()//创建流程
                .name("学生会请假流程.....")//流程名称
                .addClasspathResource("diagrams/LeaveProgress.bpmn")//流程图文件
                .addClasspathResource("diagrams/LeaveProgress.png")//流程图
                .deploy();

        //获取RuntimeService对象
        RuntimeService runtimeService = this.processEngine.getRuntimeService();
        //根据流程key值,获取流程
        String processKey ="leave";

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("logintype","生活文体部").eq("remark","部长");
        User user=userService.getOne(queryWrapper);//查询生活文体部部长

        QueryWrapper<User> q=new QueryWrapper<>();
        q.eq("logintype","行政秘书部").eq("remark","部长");
        User user1=userService.getOne(q);//查询行政秘书部部长

        QueryWrapper<User> q1=new QueryWrapper<>();
        q1.eq("logintype","实践部").eq("remark","部长");
        User user2=userService.getOne(q1);

        QueryWrapper<User> q2=new QueryWrapper<>();
        q2.eq("logintype","组织部").eq("remark","部长");
        User user3=userService.getOne(q2);

        QueryWrapper<User> q3=new QueryWrapper<>();
        q3.eq("logintype","策划部").eq("remark","部长");
        User user4=userService.getOne(q3);

        QueryWrapper<User> q4=new QueryWrapper<>();
        q4.eq("logintype","宣传部").eq("remark","部长");
        User user5=userService.getOne(q4);

        QueryWrapper<User> q5=new QueryWrapper<>();
        q5.eq("logintype","外联部").eq("remark","部长");
        User user6=userService.getOne(q5);

        QueryWrapper<User> q6=new QueryWrapper<>();
        q6.eq("logintype","学习部").eq("remark","部长");
        User user7=userService.getOne(q6);

        QueryWrapper<User> q7=new QueryWrapper<>();
        q7.eq("logintype","学生会").eq("remark","主席");
        User user8=userService.getOne(q7);
    public Dataobj loadAllUser(userv userv){
        IPage<User> page = new Page<User>(userv.getPage(), userv.getLimit());
        QueryWrapper<User> q = new QueryWrapper<User>();
        q.like(StringUtils.isNotBlank(userv.getLoginname()),"loginname", userv.getLoginname());
        q.like(StringUtils.isNotBlank(userv.getName()),"name", userv.getName());
        q.like(StringUtils.isNotBlank(userv.getAdress()),"adress", userv.getAdress());
        //查询系统用户
        q.eq("stype", changliang.USER_TYPE_NORMAL);
        q.eq(userv.getDeptid()!=null,"deptid", userv.getDeptid());
        userService.page(page,q);

        //将所有用户数据放入list中
        List<User> list = page.getRecords();
        for (User user : list) {
            Integer deptid = user.getDeptid();
            if (deptid!=null){
                //先从缓存中去取,如果缓存中没有就去数据库中取
                dpartment one = deptService.getById(deptid);
                //设置user的部门名称
                user.setDepartname(one.getDepartname());
                //设置user的领导名称
                user.setMinistername(one.getMinistername());
            }
        }
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(list, page.getTotal());
        }
    }

    /**
     * 添加用户
     * @param userv
     * @return
     */
    @RequestMapping("addUser")
    public resultreturn addUser(userv userv){
        try {
    public String toRecordsManager() {
        return "system/myverify/RecordsManager";
    }

    /**
     * 跳转到请假单管理
     *
     * @return
     */
    @RequestMapping("toLeavesManagers")
    public String toLeavesManagers() {
        return "system/myverify/LeaveManagers";
    }

    /**
     * 跳转到日志管理
     *
     * @return
     */
    @RequestMapping("toLoginManagers")
    public String toLoginManagers() {
        return "system/login/LoginsManager";
    }

    @RequestMapping("toSocketManagers")
    public String toSocketManagers() {
        return "system/socket/SocketManager";
    }
}


@RestController
@RequestMapping("user1")
public class UserController {

    @Autowired
    UserService userService;

    @Autowired
    private IbumenService deptService;

    @Autowired
    private IjiaoseService roleService;

    @Autowired
    private LoginService loginService;

    Map<String,Client> map=new HashMap<>();

    @RequestMapping("/login")
    public resultreturn login(userv userv, String code) throws IOException{

        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = requestAttributes.getRequest();
        HttpSession session = request.getSession();
        //获得存储在session中的验证码
        String sessionCode = (String) session.getAttribute("code");
        if (code!=null&&sessionCode.equals(code)){

            AuthenticationToken token = new UsernamePasswordToken(userv.getLoginname(), userv.getPassword());
            Subject subject = SecurityUtils.getSubject();
            try {
                //对用户进行认证登陆
                subject.login(token);
                //通过subject获取以认证活动的user
                UserRenZheng userRenZheng = (UserRenZheng) subject.getPrincipal();

                //单一登录操作设置
                ServletContext application = session.getServletContext();

                Map<Integer, Object> loginMap = (Map<Integer, Object>)application.getAttribute("loginMap");
                if (loginMap == null) {
            if (deptid!=null){
                //先从缓存中去取,如果缓存中没有就去数据库中取
                dpartment one = deptService.getById(deptid);
                //设置user的部门名称
                user.setDepartname(one.getDepartname());
                //设置user的领导名称
                user.setMinistername(one.getMinistername());
            }
        }
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(list, page.getTotal());
        }
    }

    /**
     * 添加用户
     * @param userv
     * @return
     */
    @RequestMapping("addUser")
    public resultreturn addUser(userv userv){
        try {

            //设置类型
            userv.setStype(changliang.USER_TYPE_NORMAL);
            userService.save(userv);
            return resultreturn.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.ADD_ERROR;
        }
    }

    @RequestMapping("loadAllgoodsForSelect")
    public Dataobj loadAllProviderForSelect(){
        QueryWrapper<dpartment> queryWrapper = new QueryWrapper();
        List<dpartment> list = deptService.list(queryWrapper);
        return new Dataobj(list);
    }
    @RequestMapping("loadAllgoodsForSelect1")
    public Dataobj loadAllProviderForSelect1(Integer did){
        QueryWrapper<dpartment> q = new QueryWrapper();
        q.eq("did",did);

public class ServerSocket implements Runnable {
    String message="";

    public String getMessage() {
        return this.message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    java.net.ServerSocket server = null;
    Socket socket = null;
  public   List<Socket> sockets=new ArrayList<Socket>();
  public   static int socketNum=0;
    HttpSession session;

    public ServerSocket(int port) throws IOException {
        server=new java.net.ServerSocket(port);
    }

    public void sendmsg(String tf,Socket socket) {
        //写操作
        OutputStream os= null;
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            os= socket.getOutputStream();
            BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(os);
            message+="\n"+" "+"我:"+simpleDateFormat.format(new Date())+"\n"+" "+tf;
            bufferedOutputStream.write((tf).getBytes());
            bufferedOutputStream.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }

//          try {
//              os.close();
//          } catch (IOException e) {
//              e.printStackTrace();
//          }
    }

    @Override
    public void run() {

        try{
            boolean flag=true;

@RestController
@RequestMapping("/leave")
public class LeaveController {

    //获取默认的流程引擎
    private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    //实例流程id,用来记录流程,以便获取当前任务
    private String processInstanceId;

    private String progressid;

    @Autowired
    private RecordsService recordsService;
@Autowired
private UserService userService;
    public String getProcessInstanceId() {
        return processInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId;
    }

    @Autowired
    private LeaverService leaverService;

            activitysService.updateById(huodonv);
            return Resultreturn.UPDATE_SUCCESS;

        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.UPDATE_ERROR;
        }
    }

    //删除活动
    @RequestMapping("deleteactivitys")
    public Resultreturn deleteGoods1(Integer id){
        try {

            activitysService.removeById(id);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

    /**
     * 批量删除
     * @param huodonv 选中
     * @return
     */
    @RequestMapping("batchDeleteactivitys")
    public Resultreturn batchDeletefiles(huodonv huodonv){
        try {
            Collection<Serializable> idList = new ArrayList<Serializable>();
            for (Integer id : huodonv.getIds()) {
                idList.add(id);
            }
            activitysService.removeByIds(idList);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

}
               //流程实例id
               String processInstanceId=task.getProcessInstanceId();
               //查询流程定义对象
              ProcessInstance pi=this.processEngine.getRuntimeService().createProcessInstanceQuery()
                      .processInstanceId(processInstanceId)
                      .singleResult();
              //获取当前活动id
               String activityId=pi.getActivityId();

                //获取当前活动对象
               ActivityImpl activity=processDefinitionEntity.findActivity(activityId);
               session.setAttribute("activity",activity);
               act act=new act();
               List<act> acts=new ArrayList<>();
               //设置坐标
               act.setX(activity.getX());
                act.setY(activity.getY());
                act.setWidth(activity.getWidth());
                act.setHeight(activity.getHeight());
                acts.add(act);
                long g=1;
                return new Dataobj(acts,g);
           }

}
class act{
    int x;
    int y;
    int width;
    int height;

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
                return resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

    //部署流程并开启流程
    public void deploymentProcess(String name) throws Exception{
        //请假流程部署
        Deployment deployment =this.processEngine.getRepositoryService()
                .createDeployment()//创建流程
                .name("学生会请假流程.....")//流程名称
                .addClasspathResource("diagrams/LeaveProgress.bpmn")//流程图文件
                .addClasspathResource("diagrams/LeaveProgress.png")//流程图
                .deploy();

        //获取RuntimeService对象
        RuntimeService runtimeService = this.processEngine.getRuntimeService();
        //根据流程key值,获取流程
        String processKey ="leave";

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("logintype","生活文体部").eq("remark","部长");
        User user=userService.getOne(queryWrapper);//查询生活文体部部长

        QueryWrapper<User> q=new QueryWrapper<>();
        q.eq("logintype","行政秘书部").eq("remark","部长");
        User user1=userService.getOne(q);//查询行政秘书部部长

        QueryWrapper<User> q1=new QueryWrapper<>();
        q1.eq("logintype","实践部").eq("remark","部长");
        User user2=userService.getOne(q1);

        QueryWrapper<User> q2=new QueryWrapper<>();
        q2.eq("logintype","组织部").eq("remark","部长");
        User user3=userService.getOne(q2);

        QueryWrapper<User> q3=new QueryWrapper<>();
        q3.eq("logintype","策划部").eq("remark","部长");
        User user4=userService.getOne(q3);

        QueryWrapper<User> q4=new QueryWrapper<>();
        q4.eq("logintype","宣传部").eq("remark","部长");
        User user5=userService.getOne(q4);

        QueryWrapper<User> q5=new QueryWrapper<>();
        q5.eq("logintype","外联部").eq("remark","部长");
        User user6=userService.getOne(q5);

        QueryWrapper<User> q6=new QueryWrapper<>();

    @RequestMapping("loadAlllogininfo")
    public Dataobj loadAllNotice(loginV loginV){
        IPage<login> page = new Page<>(loginV.getPage(),loginV.getLimit());
        QueryWrapper<login> q = new QueryWrapper<>();
        //进行模糊查询
        q.like(StringUtils.isNotBlank(loginV.getLoginname()),"loginname",loginV.getLoginname());
        q.orderByAsc("id");
        loginService.page(page,q);
        List list =loginService.list(q);
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(page.getRecords(), page.getTotal());
        }
    }

    /**
     * 删除登陆容器
     *  @return
     */
    @RequestMapping("deleteLogin")
    public resultreturn deleteLogin(Integer id){
        try {
            loginService.removeById(id);
            return resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

    /**
     * 批量删除
     * @param
     * @return
     */
    @RequestMapping("batchDeletelogin")

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值