FHModelController.java 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. package com.zhcs.dt.controller.activiti.fhmodel;
  2. import java.io.PrintWriter;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.annotation.Resource;
  8. import javax.servlet.http.HttpServletResponse;
  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.AcBaseController;
  14. import com.zhcs.dt.entity.Page;
  15. import com.zhcs.dt.service.activiti.fhmodel.FHModelManager;
  16. import com.zhcs.dt.service.system.user.UserManager;
  17. import com.zhcs.dt.util.AppUtil;
  18. import com.zhcs.dt.util.Jurisdiction;
  19. import com.zhcs.dt.util.PageData;
  20. /**
  21. * 说明:工作流模型管理
  22. * 创建人:FH Admin Q- 3 1 359 6790
  23. * 创建时间:2017-12-26
  24. */
  25. @Controller
  26. @RequestMapping(value="/fhmodel")
  27. public class FHModelController extends AcBaseController{
  28. String menuUrl = "fhmodel/list.do"; //菜单地址(权限用)
  29. @Resource(name="fhmodelService")
  30. private FHModelManager fhmodelService;
  31. @Resource(name="userService")
  32. private UserManager userService;
  33. /**列表
  34. * @param page
  35. * @throws Exception
  36. */
  37. @RequestMapping(value="/list")
  38. public ModelAndView list(Page page) throws Exception{
  39. logBefore(logger, Jurisdiction.getUsername()+"列表FHModel");
  40. ModelAndView mv = this.getModelAndView();
  41. PageData pd = new PageData();
  42. pd = this.getPageData();
  43. String keywords = pd.getString("keywords"); //关键词检索条件
  44. if(null != keywords && !"".equals(keywords)){
  45. pd.put("keywords", keywords.trim());
  46. }
  47. page.setPd(pd);
  48. List<PageData> varList = fhmodelService.list(page); //列出FHModel列表
  49. mv.setViewName("activiti/fhmodel/fhmodel_list");
  50. mv.addObject("varList", varList);
  51. mv.addObject("pd", pd);
  52. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  53. return mv;
  54. }
  55. /**去新增页面
  56. * @param
  57. * @throws Exception
  58. */
  59. @RequestMapping(value="/goAdd")
  60. public ModelAndView goAdd()throws Exception{
  61. ModelAndView mv = this.getModelAndView();
  62. PageData pd = new PageData();
  63. pd = this.getPageData();
  64. pd.put("USERNAME", Jurisdiction.getUsername());
  65. pd = userService.findByUsername(pd);
  66. pd.put("process_author", pd.getString("NAME")); //通过当前用户名获取用户姓名充当流程作者
  67. mv.setViewName("activiti/fhmodel/fhmodel_edit");
  68. mv.addObject("msg", "save");
  69. mv.addObject("pd", pd);
  70. return mv;
  71. }
  72. /**保存
  73. * @param
  74. * @throws Exception
  75. */
  76. @RequestMapping(value="/save")
  77. public ModelAndView save() throws Exception{
  78. logBefore(logger, Jurisdiction.getUsername()+"新增FHModel");
  79. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  80. ModelAndView mv = this.getModelAndView();
  81. PageData pd = new PageData();
  82. pd = this.getPageData();
  83. String process_author = pd.getString("process_author"); //流程作者
  84. String name = pd.getString("name"); //流程名称
  85. String process_id = pd.getString("process_id"); //流程标识
  86. String modelname = pd.getString("modelname"); //模型名称
  87. String description = pd.getString("description"); //模型描述
  88. String category = pd.getString("category"); //模型分类
  89. String modelId = createModel(process_id,process_author,name,modelname,description,category);
  90. mv.addObject("msg","success");
  91. mv.addObject("sunval",modelId);
  92. mv.setViewName("save_result");
  93. return mv;
  94. }
  95. /**从流程定义映射模型
  96. * @param
  97. * @throws Exception
  98. */
  99. @RequestMapping(value="/saveModelFromPro")
  100. @ResponseBody
  101. public Object saveModelFromPro(){
  102. logBefore(logger, Jurisdiction.getUsername()+"新增FHModel从流程定义");
  103. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  104. PageData pd = new PageData();
  105. Map<String,Object> map = new HashMap<String,Object>();
  106. String msg = "ok";
  107. pd = this.getPageData();
  108. String processDefinitionId = pd.getString("processDefinitionId"); //流程定义ID
  109. try {
  110. saveModelFromPro(processDefinitionId);
  111. } catch (Exception e) {
  112. msg = "errer";
  113. }
  114. map.put("msg", msg);
  115. return AppUtil.returnObject(pd, map);
  116. }
  117. /**打开流程编辑器页面
  118. * @param
  119. * @throws Exception
  120. */
  121. @RequestMapping(value="/editor")
  122. public ModelAndView editor()throws Exception{
  123. ModelAndView mv = this.getModelAndView();
  124. PageData pd = new PageData();
  125. pd = this.getPageData();
  126. mv.setViewName("activiti/fhmodel/editor");
  127. mv.addObject("pd", pd);
  128. return mv;
  129. }
  130. /**去修改类型页面
  131. * @param
  132. * @throws Exception
  133. */
  134. @RequestMapping(value="/goEdit")
  135. public ModelAndView goEdit()throws Exception{
  136. ModelAndView mv = this.getModelAndView();
  137. PageData pd = new PageData();
  138. pd = this.getPageData();
  139. pd = fhmodelService.findById(pd); //根据ID读取
  140. mv.setViewName("activiti/fhmodel/fhmodel_type");
  141. mv.addObject("msg", "edit");
  142. mv.addObject("pd", pd);
  143. return mv;
  144. }
  145. /**修改类型
  146. * @param
  147. * @throws Exception
  148. */
  149. @RequestMapping(value="/edit")
  150. public ModelAndView edit() throws Exception{
  151. logBefore(logger, Jurisdiction.getUsername()+"修改FHModel类型");
  152. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  153. ModelAndView mv = this.getModelAndView();
  154. PageData pd = new PageData();
  155. pd = this.getPageData();
  156. fhmodelService.edit(pd);
  157. mv.addObject("msg","success");
  158. mv.setViewName("save_result");
  159. return mv;
  160. }
  161. /**删除
  162. * @param out
  163. * @throws Exception
  164. */
  165. @RequestMapping(value="/delete")
  166. public void delete(PrintWriter out) throws Exception{
  167. logBefore(logger, Jurisdiction.getUsername()+"删除FHModel");
  168. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  169. PageData pd = new PageData();
  170. pd = this.getPageData();
  171. String modelId = pd.getString("ID_");
  172. deleteModel(modelId);
  173. out.write("success");
  174. out.close();
  175. }
  176. /**批量删除
  177. * @param
  178. * @throws Exception
  179. */
  180. @RequestMapping(value="/deleteAll")
  181. @ResponseBody
  182. public Object deleteAll() throws Exception{
  183. logBefore(logger, Jurisdiction.getUsername()+"批量删除FHModel");
  184. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  185. PageData pd = new PageData();
  186. Map<String,Object> map = new HashMap<String,Object>();
  187. pd = this.getPageData();
  188. List<PageData> pdList = new ArrayList<PageData>();
  189. String DATA_IDS = pd.getString("DATA_IDS");
  190. if(null != DATA_IDS && !"".equals(DATA_IDS)){
  191. String ArrayDATA_IDS[] = DATA_IDS.split(",");
  192. for(int i=0;i<ArrayDATA_IDS.length;i++){
  193. deleteModel(ArrayDATA_IDS[i]);
  194. }
  195. pd.put("msg", "ok");
  196. }else{
  197. pd.put("msg", "no");
  198. }
  199. pdList.add(pd);
  200. map.put("list", pdList);
  201. return AppUtil.returnObject(pd, map);
  202. }
  203. /**部署流程定义
  204. * @return
  205. */
  206. @RequestMapping(value="/deployment")
  207. @ResponseBody
  208. public Object deployment(){
  209. logBefore(logger, Jurisdiction.getUsername()+"部署流程定义");
  210. Map<String,Object> map = new HashMap<String,Object>();
  211. PageData pd = new PageData();
  212. pd = this.getPageData();
  213. String result = "success";
  214. try{
  215. deploymentProcessDefinitionFromModelId(pd.getString("modelId"));//部署流程定义
  216. }catch (Exception e){
  217. result = "error";
  218. logger.error(e.toString(), e);
  219. }finally{
  220. map.put("result", result);
  221. logAfter(logger);
  222. }
  223. return AppUtil.returnObject(new PageData(), map);
  224. }
  225. /**判断能否正常根据模型ID导出xml文件
  226. * @return
  227. */
  228. @RequestMapping(value="/isCanexportXml")
  229. @ResponseBody
  230. public Object isCanexportXml(HttpServletResponse response){
  231. logBefore(logger, Jurisdiction.getUsername()+"判断能否正常导出模型xml");
  232. Map<String,Object> map = new HashMap<String,Object>();
  233. PageData pd = new PageData();
  234. pd = this.getPageData();
  235. String result = "success";
  236. try{
  237. isCanexportXmlFromModelId(response,pd.getString("modelId"));
  238. }catch (Exception e){
  239. result = "error";
  240. logger.error(e.toString(), e);
  241. }finally{
  242. map.put("result", result);
  243. logAfter(logger);
  244. }
  245. return AppUtil.returnObject(new PageData(), map);
  246. }
  247. /**正式根据模型ID导出xml文件
  248. * @return
  249. */
  250. @RequestMapping(value="/exportXml")
  251. public void exportXml(HttpServletResponse response){
  252. logBefore(logger, Jurisdiction.getUsername()+"导出模型xml");
  253. PageData pd = new PageData();
  254. pd = this.getPageData();
  255. try{
  256. exportXmlFromModelId(response,pd.getString("modelId")); //导出xml文件
  257. }catch (Exception e){
  258. logger.error(e.toString(), e);
  259. }finally{
  260. logAfter(logger);
  261. }
  262. }
  263. /**去预览XML页面
  264. * @param
  265. * @throws Exception
  266. */
  267. @RequestMapping(value="/goView")
  268. public ModelAndView goView()throws Exception{
  269. ModelAndView mv = this.getModelAndView();
  270. PageData pd = new PageData();
  271. pd = this.getPageData();
  272. String code = viewXmlFromModelId(pd.getString("modelId"));
  273. pd.put("code", code);
  274. mv.setViewName("activiti/fhmodel/xml_view");
  275. mv.addObject("pd", pd);
  276. return mv;
  277. }
  278. }