MyleaveController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package com.zhcs.dt.controller.fhoa.myleave;
  2. import java.io.PrintWriter;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.LinkedHashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import javax.annotation.Resource;
  12. import org.springframework.beans.propertyeditors.CustomDateEditor;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.WebDataBinder;
  15. import org.springframework.web.bind.annotation.InitBinder;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import org.springframework.web.servlet.ModelAndView;
  19. import com.zhcs.dt.controller.activiti.AcStartController;
  20. import com.zhcs.dt.entity.Page;
  21. import com.zhcs.dt.service.fhoa.myleave.MyleaveManager;
  22. import com.zhcs.dt.util.AppUtil;
  23. import com.zhcs.dt.util.Jurisdiction;
  24. import com.zhcs.dt.util.ObjectExcelView;
  25. import com.zhcs.dt.util.PageData;
  26. /**
  27. * 说明:请假申请
  28. * 创建人:FH Q313596790
  29. * 修改时间:2018-02-09
  30. */
  31. @Controller
  32. @RequestMapping(value="/myleave")
  33. public class MyleaveController extends AcStartController {
  34. String menuUrl = "myleave/list.do"; //菜单地址(权限用)
  35. @Resource(name="myleaveService")
  36. private MyleaveManager myleaveService;
  37. /**保存请假单
  38. * @param
  39. * @throws Exception
  40. */
  41. @RequestMapping(value="/save")
  42. public ModelAndView save(){
  43. logBefore(logger, Jurisdiction.getUsername()+"新增Myleave");
  44. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  45. ModelAndView mv = this.getModelAndView();
  46. PageData pd = new PageData();
  47. pd = this.getPageData();
  48. pd.put("MYLEAVE_ID", this.get32UUID()); //主键
  49. pd.put("USERNAME", Jurisdiction.getUsername()); //用户名
  50. try {
  51. /** 工作流的操作 **/
  52. Map<String,Object> map = new LinkedHashMap<String, Object>();
  53. map.put("请假人员", Jurisdiction.getU_name()); //当前用户的姓名
  54. map.put("开始时间", pd.getString("STARTTIME"));
  55. map.put("结束时间", pd.getString("ENDTIME"));
  56. map.put("请假时长", pd.getString("WHENLONG"));
  57. map.put("请假类型", pd.getString("TYPE"));
  58. map.put("请假事由", pd.getString("REASON"));
  59. map.put("USERNAME", Jurisdiction.getUsername()); //指派代理人为当前用户
  60. startProcessInstanceByKeyHasVariables("KEY_leave",map); //启动流程实例(请假单流程)通过KEY
  61. myleaveService.save(pd); //记录存入数据库
  62. mv.addObject("ASSIGNEE_",Jurisdiction.getUsername()); //用于给待办人发送新任务消息
  63. mv.addObject("msg","success");
  64. } catch (Exception e) {
  65. mv.addObject("errer","errer");
  66. mv.addObject("msgContent","请联系管理员部署相应业务流程!");
  67. }
  68. mv.setViewName("save_result");
  69. return mv;
  70. }
  71. /**删除
  72. * @param out
  73. * @throws Exception
  74. */
  75. @RequestMapping(value="/delete")
  76. public void delete(PrintWriter out) throws Exception{
  77. logBefore(logger, Jurisdiction.getUsername()+"删除Myleave");
  78. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  79. PageData pd = new PageData();
  80. pd = this.getPageData();
  81. myleaveService.delete(pd);
  82. out.write("success");
  83. out.close();
  84. }
  85. /**修改
  86. * @param
  87. * @throws Exception
  88. */
  89. @RequestMapping(value="/edit")
  90. public ModelAndView edit() throws Exception{
  91. logBefore(logger, Jurisdiction.getUsername()+"修改Myleave");
  92. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  93. ModelAndView mv = this.getModelAndView();
  94. PageData pd = new PageData();
  95. pd = this.getPageData();
  96. myleaveService.edit(pd);
  97. mv.addObject("msg","success");
  98. mv.setViewName("save_result");
  99. return mv;
  100. }
  101. /**列表
  102. * @param page
  103. * @throws Exception
  104. */
  105. @RequestMapping(value="/list")
  106. public ModelAndView list(Page page) throws Exception{
  107. logBefore(logger, Jurisdiction.getUsername()+"列表Myleave");
  108. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  109. ModelAndView mv = this.getModelAndView();
  110. PageData pd = new PageData();
  111. pd = this.getPageData();
  112. String keywords = pd.getString("keywords"); //关键词检索条件
  113. if(null != keywords && !"".equals(keywords)){
  114. pd.put("keywords", keywords.trim());
  115. }
  116. pd.put("USERNAME", "admin".equals(Jurisdiction.getUsername())?"":Jurisdiction.getUsername()); //除admin用户外,只能查看自己的数据
  117. page.setPd(pd);
  118. List<PageData> varList = myleaveService.list(page); //列出Myleave列表
  119. mv.setViewName("fhoa/myleave/myleave_list");
  120. mv.addObject("varList", varList);
  121. mv.addObject("pd", pd);
  122. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  123. return mv;
  124. }
  125. /**去新增页面
  126. * @param
  127. * @throws Exception
  128. */
  129. @RequestMapping(value="/goAdd")
  130. public ModelAndView goAdd()throws Exception{
  131. ModelAndView mv = this.getModelAndView();
  132. PageData pd = new PageData();
  133. pd = this.getPageData();
  134. mv.setViewName("fhoa/myleave/myleave_edit");
  135. mv.addObject("msg", "save");
  136. mv.addObject("pd", pd);
  137. return mv;
  138. }
  139. /**去修改页面
  140. * @param
  141. * @throws Exception
  142. */
  143. @RequestMapping(value="/goEdit")
  144. public ModelAndView goEdit()throws Exception{
  145. ModelAndView mv = this.getModelAndView();
  146. PageData pd = new PageData();
  147. pd = this.getPageData();
  148. pd = myleaveService.findById(pd); //根据ID读取
  149. mv.setViewName("fhoa/myleave/myleave_edit");
  150. mv.addObject("msg", "edit");
  151. mv.addObject("pd", pd);
  152. return mv;
  153. }
  154. /**批量删除
  155. * @param
  156. * @throws Exception
  157. */
  158. @RequestMapping(value="/deleteAll")
  159. @ResponseBody
  160. public Object deleteAll() throws Exception{
  161. logBefore(logger, Jurisdiction.getUsername()+"批量删除Myleave");
  162. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  163. PageData pd = new PageData();
  164. Map<String,Object> map = new HashMap<String,Object>();
  165. pd = this.getPageData();
  166. List<PageData> pdList = new ArrayList<PageData>();
  167. String DATA_IDS = pd.getString("DATA_IDS");
  168. if(null != DATA_IDS && !"".equals(DATA_IDS)){
  169. String ArrayDATA_IDS[] = DATA_IDS.split(",");
  170. myleaveService.deleteAll(ArrayDATA_IDS);
  171. pd.put("msg", "ok");
  172. }else{
  173. pd.put("msg", "no");
  174. }
  175. pdList.add(pd);
  176. map.put("list", pdList);
  177. return AppUtil.returnObject(pd, map);
  178. }
  179. /**导出到excel
  180. * @param
  181. * @throws Exception
  182. */
  183. @RequestMapping(value="/excel")
  184. public ModelAndView exportExcel() throws Exception{
  185. logBefore(logger, Jurisdiction.getUsername()+"导出Myleave到excel");
  186. if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  187. ModelAndView mv = new ModelAndView();
  188. PageData pd = new PageData();
  189. pd = this.getPageData();
  190. Map<String,Object> dataMap = new HashMap<String,Object>();
  191. List<String> titles = new ArrayList<String>();
  192. titles.add("用户名"); //1
  193. titles.add("类型"); //2
  194. titles.add("开始时间"); //3
  195. titles.add("结束时间"); //4
  196. titles.add("时长"); //5
  197. titles.add("事由"); //6
  198. titles.add("审批意见"); //7
  199. dataMap.put("titles", titles);
  200. List<PageData> varOList = myleaveService.listAll(pd);
  201. List<PageData> varList = new ArrayList<PageData>();
  202. for(int i=0;i<varOList.size();i++){
  203. PageData vpd = new PageData();
  204. vpd.put("var1", varOList.get(i).getString("USERNAME")); //1
  205. vpd.put("var2", varOList.get(i).getString("TYPE")); //2
  206. vpd.put("var3", varOList.get(i).getString("STARTTIME")); //3
  207. vpd.put("var4", varOList.get(i).getString("ENDTIME")); //4
  208. vpd.put("var5", varOList.get(i).getString("WHENLONG")); //5
  209. vpd.put("var6", varOList.get(i).getString("REASON")); //6
  210. vpd.put("var7", varOList.get(i).getString("OPINION")); //7
  211. varList.add(vpd);
  212. }
  213. dataMap.put("varList", varList);
  214. ObjectExcelView erv = new ObjectExcelView();
  215. mv = new ModelAndView(erv,dataMap);
  216. return mv;
  217. }
  218. @InitBinder
  219. public void initBinder(WebDataBinder binder){
  220. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  221. binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  222. }
  223. }