FlowController.java 7.8 KB

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