ssm高校工会提案管理信息系统的设计与开发178
开发工具:idea 或eclipse
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
技术:ssm
摘 要
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本高校工会提案管理信息系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此高校工会提案管理信息系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.高校工会提案管理信息系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
关键词:高校工会提案管理信息系统;SSM框架;Mysql;自动化
Abstract
The fast-paced development of the modern economy and the continuous improvement and upgrading of information technology have allowed the management of traditional data information to be upgraded to software storage, induction, and centralized management of data information. This book lending system was born in such a large environment, which can help managers to process huge data information in a short time. Using this software tool can help managers improve transaction processing efficiency and achieve double the result with half the effort. This book lending system uses the current mature and perfect SSM framework, cross-platform Java language that can be used to develop large-scale commercial websites, and Mysql database, one of the most popular RDBMS application software, for program development. It realizes the functions of book basic data management, book borrowing and return, review of registered teacher information, and announcement information release. The development of the book lending system is designed to be simple and beautiful according to the needs of the operator. The layout of the function module is consistent with the same type of website. When the program realizes the basic requirements, it also provides some practical solutions for the security problems faced by the data information. . It can be said that this program not only helps managers efficiently handle work affairs, but also realizes the integration, standardization and automation of data information.
Key Words:Book borrowing system; SSM framework; Mysql; automation
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import com.entity.CaiwuEntity;
import com.entity.FuyijiluEntity;
import com.service.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ProposalEntity;
import com.entity.view.ProposalView;
import com.entity.YonghuEntity;
import com.utils.PageUtils;
import com.utils.R;
/**
* 提案
* 后端接口
* @author
* @email
* @date 2021-04-13
*/
@RestController
@Controller
@RequestMapping("/proposal")
public class ProposalController {
private static final Logger logger = LoggerFactory.getLogger(ProposalController.class);
@Autowired
private ProposalService proposalService;
@Autowired
private FuyijiluService fuyijiluService;
@Autowired
private CaiwuService caiwuService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
params.put("orderBy","id");
PageUtils page = proposalService.queryPage(params);
//字典表数据转换
List<ProposalView> list =(List<ProposalView>)page.getList();
for(ProposalView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ProposalEntity proposal = proposalService.selectById(id);
if(proposal !=null){
//entity转view
ProposalView view = new ProposalView();
BeanUtils.copyProperties( proposal , view );//把实体数据重构到view中
//级联表
YonghuEntity yonghu = yonghuService.selectById(proposal.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ProposalEntity proposal, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,proposal:{}",this.getClass().getName(),proposal.toString());
Wrapper<ProposalEntity> queryWrapper = new EntityWrapper<ProposalEntity>()
.eq("proposal_name", proposal.getProposalName())
.eq("zirushouhcu_types", proposal.getZirushouhcuTypes())
.eq("proposal_types", proposal.getProposalTypes())
.eq("yonghu_id", proposal.getYonghuId())
.eq("shifou_types", proposal.getShifouTypes())
.eq("proposal_number", proposal.getProposalNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ProposalEntity proposalEntity = proposalService.selectOne(queryWrapper);
if(proposalEntity==null){
proposal.setInsertTime(new Date());
proposal.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// proposal.set
// }
proposalService.insert(proposal);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody ProposalEntity proposal, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,proposal:{}",this.getClass().getName(),proposal.toString());
//根据字段查询是否有相同数据
Wrapper<ProposalEntity> queryWrapper = new EntityWrapper<ProposalEntity>()
.notIn("id",proposal.getId())
.andNew()
.eq("proposal_name", proposal.getProposalName())
.eq("zirushouhcu_types", proposal.getZirushouhcuTypes())
.eq("proposal_types", proposal.getProposalTypes())
.eq("yonghu_id", proposal.getYonghuId())
.eq("shifou_types", proposal.getShifouTypes())
.eq("proposal_number", proposal.getProposalNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ProposalEntity proposalEntity = proposalService.selectOne(queryWrapper);
if("".equals(proposal.getProposalPhoto()) || "null".equals(proposal.getProposalPhoto())){
proposal.setProposalPhoto(null);
}
if(proposalEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// proposal.set
// }
proposalService.updateById(proposal);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
proposalService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 拒绝
*/
@RequestMapping("/jujue")
public R jujue(Integer ids){
ProposalEntity proposal = proposalService.selectById(ids);
if(proposal == null){
return R.error();
}
proposal.setShifouTypes(2);
proposalService.updateById(proposal);
return R.ok();
}
/**
* 附议
*/
@RequestMapping("/fuyi")
public R fuyi(Integer ids, HttpServletRequest request){
ProposalEntity proposal = proposalService.selectById(ids);
if(proposal == null){
return R.error();
}
proposal.setProposalNumber(proposal.getProposalNumber()+1);
boolean b = proposalService.updateById(proposal);
if(b){
FuyijiluEntity fuyijilu = new FuyijiluEntity();
fuyijilu.setCreateTime(new Date());
fuyijilu.setInsertTime(new Date());
fuyijilu.setYonghuId((Integer)request.getSession().getAttribute("userId"));
fuyijilu.setProposalId(ids);
Wrapper<FuyijiluEntity> queryWrapper = new EntityWrapper<FuyijiluEntity>()
.eq("proposal_id", fuyijilu.getProposalId())
.eq("yonghu_id", fuyijilu.getYonghuId())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
FuyijiluEntity fuyijiluEntity = fuyijiluService.selectOne(queryWrapper);
if(fuyijiluEntity!=null){
return R.error("你已经附议过了");
}
boolean i = fuyijiluService.insert(fuyijilu);
if(i){
return R.ok();
}
}
return R.error();
}
/**
* 同意
*/
@RequestMapping("/tongyi")
public R tongyi(Integer ids){
ProposalEntity proposal = proposalService.selectById(ids);
if(proposal == null){
return R.error();
}
proposal.setShifouTypes(1);
boolean b = proposalService.updateById(proposal);
if(b){
CaiwuEntity caiwu = caiwuService.selectById(1);
if(proposal.getZirushouhcuTypes() == 1){
caiwu.setCaiwuZhichu(caiwu.getCaiwuShouru()+ proposal.getProposalMoeny());
}else{
caiwu.setCaiwuShouru(caiwu.getCaiwuShouru()+ proposal.getProposalMoeny());
}
caiwuService.updateById(caiwu);
}
return R.ok();
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
params.put("yonghuId",request.getSession().getAttribute("userId"));
}
// 没有指定排序字段就默认id倒序
if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){
params.put("orderBy","id");
}
PageUtils page = proposalService.queryPage(params);
//字典表数据转换
List<ProposalView> list =(List<ProposalView>)page.getList();
for(ProposalView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ProposalEntity proposal = proposalService.selectById(id);
if(proposal !=null){
//entity转view
ProposalView view = new ProposalView();
BeanUtils.copyProperties( proposal , view );//把实体数据重构到view中
//级联表
YonghuEntity yonghu = yonghuService.selectById(proposal.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody ProposalEntity proposal, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,proposal:{}",this.getClass().getName(),proposal.toString());
Wrapper<ProposalEntity> queryWrapper = new EntityWrapper<ProposalEntity>()
.eq("proposal_name", proposal.getProposalName())
.eq("zirushouhcu_types", proposal.getZirushouhcuTypes())
.eq("proposal_types", proposal.getProposalTypes())
.eq("yonghu_id", proposal.getYonghuId())
.eq("shifou_types", proposal.getShifouTypes())
.eq("proposal_number", proposal.getProposalNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ProposalEntity proposalEntity = proposalService.selectOne(queryWrapper);
if(proposalEntity==null){
proposal.setInsertTime(new Date());
proposal.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// proposal.set
// }
proposalService.insert(proposal);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
}