HiprocdefController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.zhcs.dt.controller.activiti.hiprocdef;
  2. import java.io.PrintWriter;
  3. import java.net.URLDecoder;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import javax.annotation.Resource;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import org.springframework.web.servlet.ModelAndView;
  13. import com.zhcs.dt.controller.activiti.AcBusinessController;
  14. import com.zhcs.dt.entity.Page;
  15. import com.zhcs.dt.service.activiti.hiprocdef.HiprocdefManager;
  16. import com.zhcs.dt.service.activiti.ruprocdef.RuprocdefManager;
  17. import com.zhcs.dt.util.AppUtil;
  18. import com.zhcs.dt.util.Const;
  19. import com.zhcs.dt.util.ImageAnd64Binary;
  20. import com.zhcs.dt.util.Jurisdiction;
  21. import com.zhcs.dt.util.PageData;
  22. import com.zhcs.dt.util.PathUtil;
  23. /**
  24. * 说明:历史流程任务
  25. * 创建人:FH Q313596790
  26. * 创建时间:2018-01-28
  27. */
  28. @Controller
  29. @RequestMapping(value="/hiprocdef")
  30. public class HiprocdefController extends AcBusinessController {
  31. String menuUrl = "hiprocdef/list.do"; //菜单地址(权限用)
  32. @Resource(name="hiprocdefService")
  33. private HiprocdefManager hiprocdefService;
  34. @Resource(name="ruprocdefService")
  35. private RuprocdefManager ruprocdefService;
  36. /**列表
  37. * @param page
  38. * @throws Exception
  39. */
  40. @RequestMapping(value="/list")
  41. public ModelAndView list(Page page) throws Exception{
  42. logBefore(logger, Jurisdiction.getUsername()+"列表Hiprocdef");
  43. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  44. ModelAndView mv = this.getModelAndView();
  45. PageData pd = new PageData();
  46. pd = this.getPageData();
  47. String keywords = pd.getString("keywords"); //关键词检索条件
  48. if(null != keywords && !"".equals(keywords)){
  49. pd.put("keywords", keywords.trim());
  50. }
  51. String lastStart = pd.getString("lastStart"); //开始时间
  52. String lastEnd = pd.getString("lastEnd"); //结束时间
  53. if(lastStart != null && !"".equals(lastStart)){
  54. pd.put("lastStart", lastStart+" 00:00:00");
  55. }
  56. if(lastEnd != null && !"".equals(lastEnd)){
  57. pd.put("lastEnd", lastEnd+" 00:00:00");
  58. }
  59. page.setPd(pd);
  60. List<PageData> varList = hiprocdefService.list(page); //列出Hiprocdef列表
  61. for(int i=0;i<varList.size();i++){
  62. Long ztime = Long.parseLong(varList.get(i).get("DURATION_").toString());
  63. Long tian = ztime / (1000*60*60*24);
  64. Long shi = (ztime % (1000*60*60*24))/(1000*60*60);
  65. Long fen = (ztime % (1000*60*60*24))%(1000*60*60)/(1000*60);
  66. varList.get(i).put("ZTIME", tian+"天"+shi+"时"+fen+"分");
  67. varList.get(i).put("INITATOR", getInitiator(varList.get(i).getString("PROC_INST_ID_")));//流程申请人
  68. }
  69. mv.setViewName("activiti/hiprocdef/hiprocdef_list");
  70. mv.addObject("varList", varList);
  71. mv.addObject("pd", pd);
  72. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  73. return mv;
  74. }
  75. /**查看流程信息页面
  76. * @param
  77. * @throws Exception
  78. */
  79. @RequestMapping(value="/view")
  80. public ModelAndView view()throws Exception{
  81. ModelAndView mv = this.getModelAndView();
  82. PageData pd = new PageData();
  83. pd = this.getPageData();
  84. List<PageData> varList = hiprocdefService.hivarList(pd); //列出历史流程变量列表
  85. List<PageData> hitaskList = ruprocdefService.hiTaskList(pd); //历史任务节点列表
  86. for(int i=0;i<hitaskList.size();i++){ //根据耗时的毫秒数计算天时分秒
  87. if(null != hitaskList.get(i).get("DURATION_")){
  88. Long ztime = Long.parseLong(hitaskList.get(i).get("DURATION_").toString());
  89. Long tian = ztime / (1000*60*60*24);
  90. Long shi = (ztime % (1000*60*60*24))/(1000*60*60);
  91. Long fen = (ztime % (1000*60*60*24))%(1000*60*60)/(1000*60);
  92. Long miao = (ztime % (1000*60*60*24))%(1000*60*60)%(1000*60)/1000;
  93. hitaskList.get(i).put("ZTIME", tian+"天"+shi+"时"+fen+"分"+miao+"秒");
  94. }
  95. }
  96. String FILENAME = URLDecoder.decode(pd.getString("FILENAME"), "UTF-8");
  97. createXmlAndPngAtNowTask(pd.getString("PROC_INST_ID_"),FILENAME); //生成当前任务节点的流程图片
  98. pd.put("FILENAME", FILENAME);
  99. String imgSrcPath = PathUtil.getClasspath()+Const.FILEACTIVITI+FILENAME;
  100. pd.put("imgSrc", "data:image/jpeg;base64,"+ImageAnd64Binary.getImageStr(imgSrcPath)); //解决图片src中文乱码,把图片转成base64格式显示(这样就不用修改tomcat的配置了)
  101. mv.setViewName("activiti/hiprocdef/hiprocdef_view");
  102. mv.addObject("varList", varList);
  103. mv.addObject("hitaskList", hitaskList);
  104. mv.addObject("pd", pd);
  105. return mv;
  106. }
  107. /**删除
  108. * @param out
  109. * @throws Exception
  110. */
  111. @RequestMapping(value="/delete")
  112. public void delete(PrintWriter out) throws Exception{
  113. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  114. PageData pd = new PageData();
  115. pd = this.getPageData();
  116. deleteHiProcessInstance(pd.getString("PROC_INST_ID_"));
  117. out.write("success");
  118. out.close();
  119. }
  120. /**批量删除
  121. * @param
  122. * @throws Exception
  123. */
  124. @RequestMapping(value="/deleteAll")
  125. @ResponseBody
  126. public Object deleteAll() throws Exception{
  127. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  128. PageData pd = new PageData();
  129. Map<String,Object> map = new HashMap<String,Object>();
  130. pd = this.getPageData();
  131. List<PageData> pdList = new ArrayList<PageData>();
  132. String DATA_IDS = pd.getString("DATA_IDS");
  133. if(null != DATA_IDS && !"".equals(DATA_IDS)){
  134. String ArrayDATA_IDS[] = DATA_IDS.split(",");
  135. for(int i=0;i<ArrayDATA_IDS.length;i++){
  136. deleteHiProcessInstance(ArrayDATA_IDS[i]);
  137. }
  138. pd.put("msg", "ok");
  139. }else{
  140. pd.put("msg", "no");
  141. }
  142. pdList.add(pd);
  143. map.put("list", pdList);
  144. return AppUtil.returnObject(pd, map);
  145. }
  146. }