/** * Copyright © 2015-2020 JeePlus All rights reserved. */ package com.jeeplus.modules.sportsign.web; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.common.collect.Lists; import com.jeeplus.common.utils.DateUtils; import com.jeeplus.common.utils.MyBeanUtils; import com.jeeplus.common.config.Global; import com.jeeplus.common.persistence.Page; import com.jeeplus.common.web.BaseController; import com.jeeplus.common.utils.StringUtils; import com.jeeplus.common.utils.excel.ExportExcel; import com.jeeplus.common.utils.excel.ImportExcel; import com.jeeplus.modules.sportsign.entity.SportSign; import com.jeeplus.modules.sportsign.entity.SportSignExportVo; import com.jeeplus.modules.sportsign.service.SportSignService; import com.jeeplus.modules.sys.utils.DictUtils; /** * 课外活动签到Controller * @author 金龙 * @version 2016-09-26 */ @Controller @RequestMapping(value = "${adminPath}/sportsign/sportSign") public class SportSignController extends BaseController { @Autowired private SportSignService sportSignService; @ModelAttribute public SportSign get(@RequestParam(required=false) String id) { SportSign entity = null; if (StringUtils.isNotBlank(id)){ entity = sportSignService.get(id); } if (entity == null){ entity = new SportSign(); } return entity; } /** * 课外活动签到列表页面 * @throws ParseException */ @RequiresPermissions("sportsign:sportSign:list") @RequestMapping(value = {"list", ""}) public String list(SportSign sportSign, HttpServletRequest request, HttpServletResponse response, Model model) throws ParseException { String aa=request.getParameter("signEnterTime"); String bb=request.getParameter("signOutTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53) Date date=new Date(); Date datenow=date; Calendar calendar = Calendar.getInstance();//日历对象 calendar.setTime(date);//设置当前日期 calendar.add(Calendar.MONTH, -1);//月份减一 Date startdate= calendar.getTime(); if(aa!=null) { startdate= sdf.parse(aa); } if(bb!=null){ datenow =sdf.parse(bb); } sportSign.setSignEnterTime(startdate); sportSign.setSignOutTime(datenow); Page page = sportSignService.findPage(new Page(request, response), sportSign); model.addAttribute("page", page); return "modules/sportsign/sportSignList"; } /** * 查看,增加,编辑课外活动签到表单页面 */ @RequiresPermissions(value={"sportsign:sportSign:view","sportsign:sportSign:add","sportsign:sportSign:edit"},logical=Logical.OR) @RequestMapping(value = "form") public String form(SportSign sportSign, Model model) { model.addAttribute("sportSign", sportSign); return "modules/sportsign/sportSignForm"; } /** * 保存课外活动签到 */ @RequiresPermissions(value={"sportsign:sportSign:add","sportsign:sportSign:edit"},logical=Logical.OR) @RequestMapping(value = "save") public String save(SportSign sportSign, Model model, RedirectAttributes redirectAttributes) throws Exception{ if (!beanValidator(model, sportSign)){ return form(sportSign, model); } if(!sportSign.getIsNewRecord()){//编辑表单保存 SportSign t = sportSignService.get(sportSign.getId());//从数据库取出记录的值 MyBeanUtils.copyBeanNotNull2Bean(sportSign, t);//将编辑表单中的非NULL值覆盖数据库记录中的值 sportSignService.save(t);//保存 }else{//新增表单保存 sportSignService.save(sportSign);//保存 } addMessage(redirectAttributes, "保存课外活动签到成功"); return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } /** * 删除课外活动签到 */ @RequiresPermissions("sportsign:sportSign:del") @RequestMapping(value = "delete") public String delete(SportSign sportSign, RedirectAttributes redirectAttributes) { sportSignService.delete(sportSign); addMessage(redirectAttributes, "删除课外活动签到成功"); return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } /** * 批量删除课外活动签到 */ @RequiresPermissions("sportsign:sportSign:del") @RequestMapping(value = "deleteAll") public String deleteAll(String ids, RedirectAttributes redirectAttributes) { String idArray[] =ids.split(","); for(String id : idArray){ sportSignService.delete(sportSignService.get(id)); } addMessage(redirectAttributes, "删除课外活动签到成功"); return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } /** * 导出excel文件 */ @RequiresPermissions("sportsign:sportSign:export") @RequestMapping(value = "export", method=RequestMethod.POST) public String exportFile(SportSign sportSign, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { try { String fileName = "课外活动签到"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; Page page = sportSignService.findPage(new Page(request, response, -1), sportSign); // SportSign里的deptid 转换成dictType 显示在excel中 DictUtils.setSportSignDictType(page.getList()); new ExportExcel("课外活动签到", SportSignExportVo.class).setDataList(page.getList()).write(response, fileName).dispose(); return null; } catch (Exception e) { addMessage(redirectAttributes, "导出课外活动签到记录失败!失败信息:"+e.getMessage()); } return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } /** * 导入Excel数据 */ @RequiresPermissions("sportsign:sportSign:import") @RequestMapping(value = "import", method=RequestMethod.POST) public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) { try { int successNum = 0; ImportExcel ei = new ImportExcel(file, 1, 0); List list = ei.getDataList(SportSign.class); for (SportSign sportSign : list){ sportSignService.save(sportSign); } addMessage(redirectAttributes, "已成功导入 "+successNum+" 条课外活动签到记录"); } catch (Exception e) { addMessage(redirectAttributes, "导入课外活动签到失败!失败信息:"+e.getMessage()); } return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } /** * 下载导入课外活动签到数据模板 */ @RequiresPermissions("sportsign:sportSign:import") @RequestMapping(value = "import/template") public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) { try { String fileName = "课外活动签到数据导入模板.xlsx"; List list = Lists.newArrayList(); new ExportExcel("课外活动签到数据", SportSign.class, 1).setDataList(list).write(response, fileName).dispose(); return null; } catch (Exception e) { addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage()); } return "redirect:"+Global.getAdminPath()+"/sportsign/sportSign/?repage"; } }