989764d6b6a9d5830a0a7999033409e5f130449f.svn-base 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package org.jeecg.modules.demo.test.controller;
  2. import java.io.IOException;
  3. import java.io.UnsupportedEncodingException;
  4. import java.net.URLDecoder;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Map;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import org.jeecg.common.api.vo.Result;
  11. import org.jeecg.common.system.query.QueryGenerator;
  12. import org.jeecg.common.util.oConvertUtils;
  13. import org.jeecg.modules.demo.test.entity.JoaDemo;
  14. import org.jeecg.modules.demo.test.service.IJoaDemoService;
  15. import org.jeecgframework.poi.excel.ExcelImportUtil;
  16. import org.jeecgframework.poi.excel.def.NormalExcelConstants;
  17. import org.jeecgframework.poi.excel.entity.ExportParams;
  18. import org.jeecgframework.poi.excel.entity.ImportParams;
  19. import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.PostMapping;
  22. import org.springframework.web.bind.annotation.GetMapping;
  23. import org.springframework.web.bind.annotation.PostMapping;
  24. import org.springframework.web.bind.annotation.PostMapping;
  25. import org.springframework.web.bind.annotation.RequestBody;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RequestMethod;
  28. import org.springframework.web.bind.annotation.RequestParam;
  29. import org.springframework.web.bind.annotation.RestController;
  30. import org.springframework.web.multipart.MultipartFile;
  31. import org.springframework.web.multipart.MultipartHttpServletRequest;
  32. import org.springframework.web.servlet.ModelAndView;
  33. import com.alibaba.fastjson.JSON;
  34. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  35. import com.baomidou.mybatisplus.core.metadata.IPage;
  36. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  37. import lombok.extern.slf4j.Slf4j;
  38. /**
  39. * @Description: 流程测试
  40. * @Author: jeecg-boot
  41. * @Date: 2019-05-14
  42. * @Version: V1.0
  43. */
  44. @RestController
  45. @RequestMapping("/test/joaDemo")
  46. @Slf4j
  47. public class JoaDemoController {
  48. @Autowired
  49. private IJoaDemoService joaDemoService;
  50. /**
  51. * 分页列表查询
  52. * @param joaDemo
  53. * @param pageNo
  54. * @param pageSize
  55. * @param req
  56. * @return
  57. */
  58. @GetMapping(value = "/list")
  59. public Result<IPage<JoaDemo>> queryPageList(JoaDemo joaDemo,
  60. @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
  61. @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
  62. HttpServletRequest req) {
  63. Result<IPage<JoaDemo>> result = new Result<IPage<JoaDemo>>();
  64. QueryWrapper<JoaDemo> queryWrapper = QueryGenerator.initQueryWrapper(joaDemo, req.getParameterMap());
  65. Page<JoaDemo> page = new Page<JoaDemo>(pageNo, pageSize);
  66. IPage<JoaDemo> pageList = joaDemoService.page(page, queryWrapper);
  67. result.setSuccess(true);
  68. result.setResult(pageList);
  69. return result;
  70. }
  71. /**
  72. * 添加
  73. * @param joaDemo
  74. * @return
  75. */
  76. @PostMapping(value = "/add")
  77. public Result<JoaDemo> add(@RequestBody JoaDemo joaDemo) {
  78. Result<JoaDemo> result = new Result<JoaDemo>();
  79. try {
  80. joaDemoService.save(joaDemo);
  81. result.success("添加成功!");
  82. } catch (Exception e) {
  83. log.error(e.getMessage(),e);
  84. result.error500("操作失败");
  85. }
  86. return result;
  87. }
  88. /**
  89. * 编辑
  90. * @param joaDemo
  91. * @return
  92. */
  93. @PostMapping(value = "/edit")
  94. public Result<JoaDemo> edit(@RequestBody JoaDemo joaDemo) {
  95. Result<JoaDemo> result = new Result<JoaDemo>();
  96. JoaDemo joaDemoEntity = joaDemoService.getById(joaDemo.getId());
  97. if(joaDemoEntity==null) {
  98. result.error500("未找到对应实体");
  99. }else {
  100. boolean ok = joaDemoService.updateById(joaDemo);
  101. //TODO 返回false说明什么?
  102. if(ok) {
  103. result.success("修改成功!");
  104. }
  105. }
  106. return result;
  107. }
  108. /**
  109. * 通过id删除
  110. * @param id
  111. * @return
  112. */
  113. @PostMapping(value = "/delete")
  114. public Result<JoaDemo> delete(@RequestParam(name="id",required=true) String id) {
  115. Result<JoaDemo> result = new Result<JoaDemo>();
  116. JoaDemo joaDemo = joaDemoService.getById(id);
  117. if(joaDemo==null) {
  118. result.error500("未找到对应实体");
  119. }else {
  120. boolean ok = joaDemoService.removeById(id);
  121. if(ok) {
  122. result.success("删除成功!");
  123. }
  124. }
  125. return result;
  126. }
  127. /**
  128. * 批量删除
  129. * @param ids
  130. * @return
  131. */
  132. @PostMapping(value = "/deleteBatch")
  133. public Result<JoaDemo> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
  134. Result<JoaDemo> result = new Result<JoaDemo>();
  135. if(ids==null || "".equals(ids.trim())) {
  136. result.error500("参数不识别!");
  137. }else {
  138. this.joaDemoService.removeByIds(Arrays.asList(ids.split(",")));
  139. result.success("删除成功!");
  140. }
  141. return result;
  142. }
  143. /**
  144. * 通过id查询
  145. * @param id
  146. * @return
  147. */
  148. @GetMapping(value = "/queryById")
  149. public Result<JoaDemo> queryById(@RequestParam(name="id",required=true) String id) {
  150. Result<JoaDemo> result = new Result<JoaDemo>();
  151. JoaDemo joaDemo = joaDemoService.getById(id);
  152. if(joaDemo==null) {
  153. result.error500("未找到对应实体");
  154. }else {
  155. result.setResult(joaDemo);
  156. result.setSuccess(true);
  157. }
  158. return result;
  159. }
  160. /**
  161. * 导出excel
  162. *
  163. * @param request
  164. * @param response
  165. */
  166. @RequestMapping(value = "/exportXls")
  167. public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
  168. // Step.1 组装查询条件
  169. QueryWrapper<JoaDemo> queryWrapper = null;
  170. try {
  171. String paramsStr = request.getParameter("paramsStr");
  172. if (oConvertUtils.isNotEmpty(paramsStr)) {
  173. String deString = URLDecoder.decode(paramsStr, "UTF-8");
  174. JoaDemo joaDemo = JSON.parseObject(deString, JoaDemo.class);
  175. queryWrapper = QueryGenerator.initQueryWrapper(joaDemo, request.getParameterMap());
  176. }
  177. } catch (UnsupportedEncodingException e) {
  178. e.printStackTrace();
  179. }
  180. //Step.2 AutoPoi 导出Excel
  181. ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
  182. List<JoaDemo> pageList = joaDemoService.list(queryWrapper);
  183. //导出文件名称
  184. mv.addObject(NormalExcelConstants.FILE_NAME, "流程测试列表");
  185. mv.addObject(NormalExcelConstants.CLASS, JoaDemo.class);
  186. mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("流程测试列表数据", "导出人:Jeecg", "导出信息"));
  187. mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
  188. return mv;
  189. }
  190. /**
  191. * 通过excel导入数据
  192. *
  193. * @param request
  194. * @param response
  195. * @return
  196. */
  197. @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  198. public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
  199. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  200. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  201. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  202. MultipartFile file = entity.getValue();// 获取上传文件对象
  203. ImportParams params = new ImportParams();
  204. params.setTitleRows(2);
  205. params.setHeadRows(1);
  206. params.setNeedSave(true);
  207. try {
  208. List<JoaDemo> listJoaDemos = ExcelImportUtil.importExcel(file.getInputStream(), JoaDemo.class, params);
  209. for (JoaDemo joaDemoExcel : listJoaDemos) {
  210. joaDemoService.save(joaDemoExcel);
  211. }
  212. return Result.ok("文件导入成功!数据行数:" + listJoaDemos.size());
  213. } catch (Exception e) {
  214. log.error(e.getMessage(),e);
  215. return Result.error("文件导入失败:"+e.getMessage());
  216. } finally {
  217. try {
  218. file.getInputStream().close();
  219. } catch (IOException e) {
  220. e.printStackTrace();
  221. }
  222. }
  223. }
  224. return Result.ok("文件导入失败!");
  225. }
  226. }