BaseProfessionalController.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.ozs.web.controller.base;
  2. import com.ozs.base.domain.BaseProfessional;
  3. import com.ozs.base.domain.vo.BaseProfessionalVo;
  4. import com.ozs.base.service.BaseProfessionalService;
  5. import com.ozs.common.config.PurchaseConfig;
  6. import com.ozs.common.core.controller.BaseController;
  7. import com.ozs.common.core.domain.AjaxResult;
  8. import com.ozs.common.core.domain.R;
  9. import com.ozs.common.core.domain.model.LoginUser;
  10. import com.ozs.common.exception.ServiceException;
  11. import com.ozs.common.utils.StringUtils;
  12. import com.ozs.common.utils.file.FileUtils;
  13. import com.ozs.common.utils.poi.ExcelUtil;
  14. import com.ozs.plan.doman.ProvisionalPlan;
  15. import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.apache.commons.lang3.exception.ExceptionUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.http.MediaType;
  22. import org.springframework.web.bind.annotation.*;
  23. import org.springframework.web.multipart.MultipartFile;
  24. import javax.servlet.ServletOutputStream;
  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpServletResponse;
  27. import java.io.FileInputStream;
  28. import java.net.URLDecoder;
  29. import java.net.URLEncoder;
  30. import java.util.List;
  31. /**
  32. * 专业库管理
  33. *
  34. * @author sunhh
  35. */
  36. @Api(tags = "专业库管理")
  37. @RestController
  38. @RequestMapping("/base/professional")
  39. @Slf4j
  40. public class BaseProfessionalController extends BaseController {
  41. @Autowired
  42. private BaseProfessionalService baseProfessionalService;
  43. @ApiOperation(value = "新增专业库" , notes = "必传 专业库名称、一级分类、编码、父级编码;没有父级编码传0")
  44. @PostMapping("/insertProfessional")
  45. public AjaxResult insertProfessional(@RequestBody BaseProfessional baseProfessional) {
  46. if (StringUtils.isNull(baseProfessional)
  47. || StringUtils.isNull(baseProfessional.getProfessionalName())
  48. || StringUtils.isNull(baseProfessional.getProfessionalCode())
  49. || StringUtils.isNull(baseProfessional.getProfessionalGrade())
  50. || StringUtils.isNull(baseProfessional.getParentCode())) {
  51. return error("专业库名称、编码、一级分类、父级ID 不能为空");
  52. }
  53. return toAjax(baseProfessionalService.save(baseProfessional));
  54. }
  55. @ApiOperation(value = "删除专业库" , notes = "必传 id")
  56. @PostMapping("/deleteProfessional")
  57. public AjaxResult deleteProfessional(@RequestBody BaseProfessional baseProfessional) {
  58. if (StringUtils.isNull(baseProfessional) || StringUtils.isNull(baseProfessional.getId())) {
  59. return error("专业库id不能为空");
  60. }
  61. return toAjax(baseProfessionalService.removeById(baseProfessional.getId()));
  62. }
  63. @ApiOperation(value = "批量删除专业库" , notes = "必传 idList")
  64. @PostMapping("/deleteIds")
  65. public AjaxResult deleteByIdLIst(@RequestBody BaseProfessionalVo baseProfessionalVo) {
  66. baseProfessionalService.deleteIds(baseProfessionalVo.getDeleteIds());
  67. return success();
  68. }
  69. @ApiOperation(value = "修改专业库" , notes = "必传 id 及修改数据")
  70. @PostMapping("/updateProfessional")
  71. public AjaxResult updateProfessional(@RequestBody BaseProfessional baseProfessional) {
  72. if (StringUtils.isNull(baseProfessional) || StringUtils.isNull(baseProfessional.getId())) {
  73. return error("专业库id和修改数据不能为空");
  74. }
  75. return toAjax(baseProfessionalService.updateById(baseProfessional));
  76. }
  77. @ApiOperation(value = "查询专业库树结构" , notes = "非必传 查询条件:品目名称")
  78. @PostMapping("/selectBaseProfessional")
  79. public AjaxResult selectBaseProfessional(@RequestBody BaseProfessionalVo baseProfessionalVo) {
  80. List<BaseProfessionalVo> baseSupplierList = baseProfessionalService.selectBaseProfessionalVo(baseProfessionalVo);
  81. return success(baseSupplierList);
  82. }
  83. @ApiOperation(value = "导入专业库" , notes = "导入表格")
  84. @PostMapping("/importBaseProfessional")
  85. public AjaxResult importBaseProfessional(MultipartFile file, boolean updateSupport) throws Exception {
  86. ExcelUtil<BaseProfessional> util = new ExcelUtil<>(BaseProfessional.class);
  87. List<BaseProfessional> baseProfessionalList = util.importExcel(file.getInputStream());
  88. if (StringUtils.isNull(baseProfessionalList) || baseProfessionalList.size() == 0) {
  89. throw new ServiceException("导入专业库数据不能为空!");
  90. }
  91. // String operName = getUsername();
  92. String message = baseProfessionalService.importBaseProfessional(baseProfessionalList, updateSupport);
  93. return success(message);
  94. }
  95. @ApiOperation("导出专业库")
  96. @PostMapping("/exportBaseProfessional")
  97. public void exportBaseProfessional(HttpServletResponse response, @RequestBody BaseProfessionalVo baseProfessionalVo) {
  98. List<BaseProfessional> list = baseProfessionalService.selectBaseProfessional(baseProfessionalVo);
  99. ExcelUtil<BaseProfessional> util = new ExcelUtil<>(BaseProfessional.class);
  100. util.exportExcel(response, list, "专业库数据");
  101. }
  102. @ApiOperation("文件下载")
  103. @GetMapping("/downloaExcel")
  104. public void downloadZip(HttpServletRequest request, HttpServletResponse response) {
  105. try {
  106. // 文件路径
  107. String downloadPath = this.getClass().getResource("/").getPath() + "template/专业库模板.xlsx";
  108. log.info("downloadPath:{}",downloadPath);
  109. // 下载文件
  110. String realFileName = "专业库模板.xlsx";
  111. String filePath = downloadPath;
  112. response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
  113. FileUtils.setAttachmentResponseHeader(response, realFileName);
  114. FileUtils.writeBytes(filePath, response.getOutputStream());
  115. } catch (Exception e) {
  116. log.error("下载文件失败" , e);
  117. }
  118. }
  119. }