RDContorller.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.goafanti.RD.controller;
  2. import com.goafanti.RD.bo.InputRdDetails;
  3. import com.goafanti.RD.bo.InputRdList;
  4. import com.goafanti.RD.service.RDService;
  5. import com.goafanti.common.bo.Result;
  6. import com.goafanti.common.constant.AFTConstants;
  7. import com.goafanti.common.constant.ErrorConstants;
  8. import com.goafanti.common.controller.BaseApiController;
  9. import com.goafanti.common.controller.PublicController;
  10. import com.goafanti.common.enums.AttachmentType;
  11. import com.goafanti.common.model.Attachment;
  12. import com.goafanti.common.model.RdDetails;
  13. import com.goafanti.common.utils.DateUtils;
  14. import com.goafanti.common.utils.LoggerUtils;
  15. import com.goafanti.common.utils.ParamUtils;
  16. import com.goafanti.common.utils.StringUtils;
  17. import com.goafanti.common.utils.excel.FileUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.beans.factory.annotation.Value;
  20. import org.springframework.http.MediaType;
  21. import org.springframework.validation.BindingResult;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestMethod;
  25. import org.springframework.web.bind.annotation.RequestParam;
  26. import org.springframework.web.bind.annotation.RestController;
  27. import org.springframework.web.multipart.MultipartFile;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import java.util.Date;
  31. @RestController
  32. @RequestMapping(value = "/api/admin/RD")
  33. public class RDContorller extends BaseApiController {
  34. @Autowired
  35. private RDService rdService;
  36. @Value(value = "${upload.path}")
  37. private final String uploadPath = null;
  38. @RequestMapping(value="/add",method = RequestMethod.POST)
  39. public Result add(@Validated InputRdDetails in ,BindingResult bindingResult) {
  40. Result res= new Result();
  41. if (bindingResult.hasErrors()) {
  42. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  43. ParamUtils.getParamName(in,bindingResult.getFieldError().getField())));
  44. return res;
  45. }
  46. if (rdService.checkRdNo(in.getRdNo(),null)){
  47. res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_BEING_ERROR,"研发活动编号"));
  48. return res;
  49. }
  50. if (StringUtils.isNotBlank(in.getRdStartStr())){
  51. in.setRdStart(DateUtils.StringToDate(in.getRdStartStr(), AFTConstants.YYYYMMDD));
  52. }
  53. if (StringUtils.isNotBlank(in.getRdEndStr())){
  54. in.setRdEnd(DateUtils.StringToDate(in.getRdEndStr(),AFTConstants.YYYYMMDD));
  55. }
  56. res.data(rdService.add(in));
  57. return res;
  58. }
  59. @RequestMapping(value="/update",method = RequestMethod.POST)
  60. public Result update(@Validated InputRdDetails in ,BindingResult bindingResult) {
  61. Result res= new Result();
  62. if (bindingResult.hasErrors()) {
  63. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  64. ParamUtils.getParamName(in,bindingResult.getFieldError().getField())));
  65. return res;
  66. }
  67. if (rdService.checkRdNo(in.getRdNo(),in.getId())){
  68. res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_BEING_ERROR,"研发活动编号"));
  69. return res;
  70. }
  71. if (StringUtils.isNotBlank(in.getRdStartStr())){
  72. in.setRdStart(DateUtils.StringToDate(in.getRdStartStr(), AFTConstants.YYYYMMDD));
  73. }
  74. if (StringUtils.isNotBlank(in.getRdEndStr())){
  75. in.setRdEnd(DateUtils.StringToDate(in.getRdEndStr(),AFTConstants.YYYYMMDD));
  76. }
  77. res.data(rdService.update(in));
  78. return res;
  79. }
  80. @RequestMapping(value = "/details",method = RequestMethod.GET)
  81. public Result details(Long id){
  82. Result res =new Result();
  83. res.setData(rdService.details(id));
  84. return res;
  85. }
  86. @RequestMapping(value = "/list",method = RequestMethod.GET)
  87. public Result list(InputRdList in){
  88. Result res =new Result();
  89. res.setData(rdService.list(in));
  90. return res;
  91. }
  92. @RequestMapping(value = "/exportList",method = RequestMethod.GET)
  93. public Result exportList(InputRdList in){
  94. return rdService.exportList(in,uploadPath);
  95. }
  96. /**
  97. * Excel批量导入回款
  98. *
  99. * @return
  100. */
  101. @RequestMapping(value = "/import" , method = RequestMethod.POST)
  102. public Result importTemplate(@RequestParam(value = "file", required = false) MultipartFile file) {
  103. Result res=new Result();
  104. //判断文件是否存在
  105. if(null == file){
  106. res.getError().add(buildError("文件不存在!","文件不存在!"));
  107. return res;
  108. }
  109. String fileName = file.getOriginalFilename();
  110. if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
  111. res.getError().add(buildError("格式不正确","格式不正确"));
  112. return res;
  113. }
  114. res.data(rdService.batchList(file));
  115. return res;
  116. }
  117. /**
  118. * 批量导入回款模版
  119. *
  120. * @return
  121. */
  122. @RequestMapping(value = "/downloadTemplate", method = RequestMethod.GET)
  123. public void downloadTemplate(HttpServletResponse response) {
  124. Result res = new Result();
  125. StringBuffer url= new StringBuffer(uploadPath);
  126. url=url.append("/tmp").append("/RD_details_template.xlsx");
  127. try {
  128. response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
  129. FileUtils.setAttachmentResponseHeader(response, url.toString(),"研发活动导入模版.xlsx");
  130. FileUtils.writeBytes(url.toString(), response.getOutputStream());
  131. }
  132. catch (Exception e) {
  133. LoggerUtils.error(PublicController.class,"下载文件失败", e);
  134. }
  135. }
  136. }