基于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版本;
技术栈
-
后端:SpringBoot
-
前端:Thymeleaf+html+layui+jQuery+bootstrap
使用说明
- 使用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")