FlowController.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package com.yihu.hos.system.controller;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import com.yihu.hos.system.model.SystemServiceFlow;
  4. import com.yihu.hos.system.model.SystemServiceFlowClass;
  5. import com.yihu.hos.system.model.SystemServiceFlowTemp;
  6. import com.yihu.hos.system.service.FlowManager;
  7. import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
  8. import com.yihu.hos.web.framework.model.Result;
  9. import com.yihu.hos.web.framework.util.controller.BaseController;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.Model;
  12. import org.springframework.util.StringUtils;
  13. import org.springframework.web.bind.annotation.*;
  14. import org.springframework.web.multipart.MultipartFile;
  15. import org.springframework.web.multipart.commons.CommonsMultipartFile;
  16. import javax.annotation.Resource;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.OutputStream;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * 流程管理
  26. * @author HZY
  27. * @vsrsion 1.0
  28. * Created at 2016/8/18.
  29. */
  30. @RequestMapping("/flow")
  31. @Controller
  32. public class FlowController extends BaseController {
  33. @Resource(name = FlowManager.BEAN_ID)
  34. private FlowManager flowManage;
  35. /**
  36. * 流程管理管理界面
  37. *
  38. * @param model
  39. * @return
  40. */
  41. @RequestMapping("/initial")
  42. public String appInitial(Model model) {
  43. model.addAttribute("contentPage", "system/flow/flow");
  44. return "partView";
  45. }
  46. @RequestMapping("/getFlowList")
  47. @ResponseBody
  48. public Result getFlowList(HttpServletRequest request,String name,String valid) {
  49. try {
  50. Map<String, Object> params = new HashMap<>();
  51. params.put("name", name);
  52. params.put("valid", valid);
  53. String page = StringUtils.isEmpty(request.getParameter("page")) ? "1" : request.getParameter("page");
  54. String rows = StringUtils.isEmpty(request.getParameter("rows")) ? "10" : request.getParameter("rows");
  55. params.put("page", page);
  56. params.put("rows", rows);
  57. Result result = flowManage.getFlowList(params);
  58. return result;
  59. } catch (Exception ex) {
  60. ex.printStackTrace();
  61. return Result.error(ex.getMessage());
  62. }
  63. }
  64. /**
  65. * 流程管理-新增/修改页面
  66. * @param model
  67. * @param id
  68. * @return
  69. */
  70. @RequestMapping("/editorFlow")
  71. public String editorFlow(Model model, String id) {
  72. try {
  73. ObjectMapper objectMapper = new ObjectMapper();
  74. SystemServiceFlow flow = null;
  75. List<SystemServiceFlowClass> flowClassList = null;
  76. List<SystemServiceFlowTemp> flowTempList = null;
  77. if (id != null && id.length() > 0) {
  78. flow = flowManage.getFlowById(Integer.parseInt(id));
  79. flowClassList = flowManage.getFlowClassByFlowId(flow.getId());
  80. flowTempList = flowManage.getFlowTempByFlowId(flow.getId());
  81. if (ServiceFlowConstant.CLASS.equals(flow.getFileType())){
  82. model.addAttribute("flowClass", objectMapper.writeValueAsString(flowClassList));
  83. }else if (ServiceFlowConstant.JAVA.equals(flow.getFileType())){
  84. model.addAttribute("flowClass", objectMapper.writeValueAsString(flowTempList));
  85. }
  86. } else {
  87. flow = new SystemServiceFlow();
  88. flowClassList = new ArrayList<>();
  89. flowTempList = new ArrayList<>();
  90. }
  91. flow.setFlowClassArray(flowClassList);
  92. flow.setFlowTempArray(flowTempList);
  93. model.addAttribute("model", flow);
  94. model.addAttribute("contentPage", "/system/flow/editorFlow");
  95. } catch (Exception e) {
  96. e.printStackTrace();
  97. }
  98. return "pageView";
  99. }
  100. /**
  101. * 新增流程信息
  102. * @param request
  103. * @return
  104. */
  105. @RequestMapping("addFlow")
  106. @ResponseBody
  107. public Result addFlow(HttpServletRequest request,String flowClass) {
  108. try {
  109. ObjectMapper objectMapper = new ObjectMapper();
  110. SystemServiceFlow flow = objectMapper.readValue(flowClass,SystemServiceFlow.class);
  111. // SystemServiceFlow obj = new SystemServiceFlow();
  112. // BeanUtils.populate(obj, request.getParameterMap());
  113. //
  114. // List<SystemServiceFlowClass> flowClass = new ArrayList<>();
  115. // BeanUtils.populate(flowClass, request.getParameterMap());
  116. // obj.setFlowClassArray(flowClass);
  117. //
  118. // List<SystemServiceFlowTemp> flowTemps = new ArrayList<>();
  119. // BeanUtils.populate(flowTemps, request.getParameterMap());
  120. // obj.setFlowTempArray(flowTemps);
  121. return flowManage.addFlow(flow);
  122. } catch (Exception ex) {
  123. ex.printStackTrace();
  124. return Result.error(ex.getMessage());
  125. }
  126. }
  127. /**
  128. * 删除流程信息
  129. * @param request
  130. * @return
  131. */
  132. @RequestMapping("/deleteFlow")
  133. @ResponseBody
  134. public Result deleteFlow(HttpServletRequest request) {
  135. try {
  136. String id = request.getParameter("id");
  137. if (id != null && id.length() > 0) {
  138. flowManage.deleteFlow(Integer.parseInt(id));
  139. return Result.success("删除成功!");
  140. }else {
  141. return Result.error("删除失败,该流程已不存在!");
  142. }
  143. } catch (Exception e) {
  144. e.printStackTrace();
  145. return Result.error("删除失败!");
  146. }
  147. }
  148. /**
  149. * 修改流程信息
  150. */
  151. @RequestMapping("updateFlow")
  152. @ResponseBody
  153. public Result updateFlow(HttpServletRequest request,String flowClass) {
  154. try {
  155. ObjectMapper objectMapper = new ObjectMapper();
  156. SystemServiceFlow flow = objectMapper.readValue(flowClass,SystemServiceFlow.class);
  157. return flowManage.updateFlow(flow);
  158. } catch (Exception ex) {
  159. ex.printStackTrace();
  160. return Result.error(ex.getMessage());
  161. }
  162. }
  163. /**
  164. * 文件上传
  165. * @param file
  166. * @return
  167. */
  168. @RequestMapping(value = "/upload", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  169. @ResponseBody
  170. public Object upload(@RequestParam MultipartFile file) {
  171. //TODO 文件地址设置
  172. try {
  173. CommonsMultipartFile transferFile = (CommonsMultipartFile)file;
  174. return flowManage.uploadFile(transferFile);
  175. } catch (Exception e) {
  176. return Result.error("上传失败");
  177. }
  178. }
  179. /**
  180. * 图片查看
  181. * @return
  182. */
  183. @RequestMapping(value = "/read/{fileName}", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
  184. @ResponseBody
  185. public Object read(HttpServletResponse response, @PathVariable("fileName") String fileName) {
  186. try {
  187. OutputStream os = response.getOutputStream();
  188. return flowManage.readFile(os, fileName);
  189. } catch (Exception e) {
  190. return Result.error("读取失败!");
  191. }
  192. }
  193. @RequestMapping(value = "/flowTempList", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  194. @ResponseBody
  195. public Result flowTempList(String type) {
  196. try {
  197. Result result = flowManage.getFlowList(type);
  198. return result;
  199. } catch (Exception ex) {
  200. ex.printStackTrace();
  201. return Result.error(ex.getMessage());
  202. }
  203. }
  204. }