RuprocdefController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.zhcs.dt.controller.activiti.ruprocdef;
  2. import java.io.PrintWriter;
  3. import java.net.URLDecoder;
  4. import java.util.HashMap;
  5. import java.util.LinkedHashMap;
  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.service.system.fhsms.FhsmsManager;
  18. import com.zhcs.dt.util.AppUtil;
  19. import com.zhcs.dt.util.DateUtil;
  20. import com.zhcs.dt.util.Jurisdiction;
  21. import com.zhcs.dt.util.PageData;
  22. /**
  23. * 说明:正在运行的流程
  24. * 创建人:FH Q313596790
  25. * 修改时间:2018-02-10
  26. */
  27. @Controller
  28. @RequestMapping(value="/ruprocdef")
  29. public class RuprocdefController extends AcBusinessController {
  30. String menuUrl = "ruprocdef/list.do"; //菜单地址(权限用)
  31. @Resource(name="ruprocdefService")
  32. private RuprocdefManager ruprocdefService;
  33. // @Resource(name="fhsmsService")
  34. // private FhsmsManager fhsmsService;
  35. @Resource(name="hiprocdefService")
  36. private HiprocdefManager hiprocdefService;
  37. /**列表
  38. * @param page
  39. * @throws Exception
  40. */
  41. @RequestMapping(value="/list")
  42. public ModelAndView list(Page page) throws Exception{
  43. logBefore(logger, Jurisdiction.getUsername()+"列表Ruprocdef");
  44. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  45. ModelAndView mv = this.getModelAndView();
  46. PageData pd = new PageData();
  47. pd = this.getPageData();
  48. String keywords = pd.getString("keywords"); //关键词检索条件
  49. if(null != keywords && !"".equals(keywords)){
  50. pd.put("keywords", keywords.trim());
  51. }
  52. String lastStart = pd.getString("lastStart"); //开始时间
  53. String lastEnd = pd.getString("lastEnd"); //结束时间
  54. if(lastStart != null && !"".equals(lastStart)){
  55. pd.put("lastStart", lastStart+" 00:00:00");
  56. }
  57. if(lastEnd != null && !"".equals(lastEnd)){
  58. pd.put("lastEnd", lastEnd+" 00:00:00");
  59. }
  60. page.setPd(pd);
  61. List<PageData> varList = ruprocdefService.list(page); //列出Ruprocdef列表
  62. for(int i=0;i<varList.size();i++){
  63. varList.get(i).put("INITATOR", getInitiator(varList.get(i).getString("PROC_INST_ID_")));//流程申请人
  64. }
  65. mv.setViewName("activiti/ruprocdef/ruprocdef_list");
  66. mv.addObject("varList", varList);
  67. mv.addObject("pd", pd);
  68. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  69. return mv;
  70. }
  71. /**去委派页面
  72. * @param
  73. * @return
  74. */
  75. @RequestMapping(value="/goDelegate")
  76. public ModelAndView goDelegate(){
  77. ModelAndView mv = this.getModelAndView();
  78. PageData pd = new PageData();
  79. pd = this.getPageData();
  80. mv.setViewName("activiti/ruprocdef/ruprocdef_delegate");
  81. mv.addObject("pd", pd);
  82. return mv;
  83. }
  84. /**委派
  85. * @return
  86. * @throws Exception
  87. */
  88. @RequestMapping(value="/delegate")
  89. public ModelAndView delegate() throws Exception{
  90. ModelAndView mv = this.getModelAndView();
  91. PageData pd = new PageData();
  92. pd = this.getPageData();
  93. Map<String,Object> map = new LinkedHashMap<String, Object>();
  94. map.put("审批结果", " (任务由["+Jurisdiction.getUsername()+"]委派) "); //审批结果中记录委派
  95. setVariablesByTaskIdAsMap(pd.getString("ID_"),map); //设置流程变量
  96. setAssignee(pd.getString("ID_"),pd.getString("ASSIGNEE_"));
  97. mv.addObject("ASSIGNEE_",pd.getString("ASSIGNEE_")); //用于给待办人发送新任务消息
  98. mv.addObject("msg","success");
  99. mv.setViewName("save_result");
  100. return mv;
  101. }
  102. /**激活or挂起任务
  103. * @return
  104. * @throws Exception
  105. */
  106. @RequestMapping(value="/onoffTask")
  107. @ResponseBody
  108. public Object onoffTask()throws Exception{
  109. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  110. PageData pd = new PageData();
  111. Map<String,Object> map = new HashMap<String,Object>();
  112. pd = this.getPageData();
  113. ruprocdefService.onoffTask(pd);
  114. map.put("msg", "ok"); //返回结果
  115. return AppUtil.returnObject(pd, map);
  116. }
  117. /**作废流程
  118. * @param out
  119. * @throws Exception
  120. */
  121. @RequestMapping(value="/delete")
  122. public void delete(PrintWriter out) throws Exception{
  123. PageData pd = new PageData();
  124. pd = this.getPageData();
  125. String reason = "【作废】"+Jurisdiction.getU_name()+":"+URLDecoder.decode(pd.getString("reason"), "UTF-8"); //作废原因
  126. /**任务结束时发站内信通知审批结束*/
  127. List<PageData> hivarList = hiprocdefService.hivarList(pd); //列出历史流程变量列表
  128. for(int i=0;i<hivarList.size();i++){
  129. if("USERNAME".equals(hivarList.get(i).getString("NAME_"))){
  130. sendSms(hivarList.get(i).getString("TEXT_"));
  131. break;
  132. }
  133. }
  134. deleteProcessInstance(pd.getString("PROC_INST_ID_"),reason); //作废流程
  135. out.write("success");
  136. out.close();
  137. }
  138. /**发站内信通知审批结束
  139. * @param USERNAME
  140. * @throws Exception
  141. */
  142. public void sendSms(String USERNAME) throws Exception{
  143. PageData pd = new PageData();
  144. pd.put("SANME_ID", this.get32UUID()); //ID
  145. pd.put("SEND_TIME", DateUtil.getTime()); //发送时间
  146. pd.put("FHSMS_ID", this.get32UUID()); //主键
  147. pd.put("TYPE", "1"); //类型1:收信
  148. pd.put("FROM_USERNAME", USERNAME); //收信人
  149. pd.put("TO_USERNAME", "系统消息");
  150. pd.put("CONTENT", "您申请的任务已经被作废,请到已办任务列表查看");
  151. pd.put("STATUS", "2");
  152. // fhsmsService.save(pd);
  153. }
  154. }