RDServiceImpl.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package com.goafanti.RD.service.impl;
  2. import com.goafanti.RD.bo.*;
  3. import com.goafanti.RD.service.RDService;
  4. import com.goafanti.common.bo.Result;
  5. import com.goafanti.common.constant.AFTConstants;
  6. import com.goafanti.common.dao.RdDetailsMapper;
  7. import com.goafanti.common.model.RdDetails;
  8. import com.goafanti.common.utils.excel.NewExcelUtil;
  9. import com.goafanti.common.utils.pdf.PDFUtils;
  10. import com.goafanti.common.utils.word.WordUtils;
  11. import com.goafanti.core.mybatis.BaseMybatisDao;
  12. import com.goafanti.core.mybatis.page.Pagination;
  13. import com.goafanti.core.shiro.token.TokenManager;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.*;
  21. @Service
  22. public class RDServiceImpl extends BaseMybatisDao<RdDetailsMapper> implements RDService {
  23. @Autowired
  24. private RdDetailsMapper rdDetailsMapper;
  25. @Value(value = "${upload.path}")
  26. private final String uploadPath = null;
  27. @Override
  28. public int add(RdDetails in) {
  29. in.setAid(TokenManager.getAdminId());
  30. in.setStatus(0);
  31. return rdDetailsMapper.insertSelective(in);
  32. }
  33. @Override
  34. public int update(InputRdDetails in) {
  35. return rdDetailsMapper.updateByPrimaryKeySelective(in);
  36. }
  37. @Override
  38. public int updateBrowseOrDownload(Long id, Integer type) {
  39. return rdDetailsMapper.updateBrowseOrDownload(id,type);
  40. }
  41. @Override
  42. public boolean checkRdNo(String rdNo, Long id) {
  43. int i = rdDetailsMapper.checkRdNo(rdNo,id);
  44. if (i>0)return true;
  45. return false;
  46. }
  47. @Override
  48. public OutRdDetails details(Long id) {
  49. return rdDetailsMapper.details(id);
  50. }
  51. @Override
  52. public Pagination<OutExcelRdDetails> list(InputRdList in) {
  53. Map<String, Object> param = getParam(in);
  54. return (Pagination<OutExcelRdDetails>) findPage("RdDetailsList","RdDetailsCount",param,in.getPageNo(), in.getPageSize());
  55. }
  56. private Map<String, Object> getParam(InputRdList in) {
  57. Map<String,Object> param=new HashMap<>();
  58. param.put("RdStart", in.getRdStart());
  59. param.put("RdNo", in.getRdNo());
  60. param.put("RdEnd", in.getRdEnd());
  61. param.put("RdName", in.getRdName());
  62. param.put("consultantName", in.getConsultantName());
  63. if (TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION_ASSISTANT)||TokenManager.hasRole(AFTConstants.CED)){
  64. }else {
  65. param.put("aid", TokenManager.getAdminId());
  66. }
  67. return param;
  68. }
  69. @Override
  70. public Result exportList(InputRdList in, String uploadPath) {
  71. Map<String, Object> param = getParam(in);
  72. List<OutExcelRdDetails> list = (List<OutExcelRdDetails>) findList("RdDetailsList", param, 1, 9999);
  73. NewExcelUtil<OutExcelRdDetails> newExcelUtil=new NewExcelUtil<>(OutExcelRdDetails.class);
  74. return newExcelUtil.exportExcel(list,"研发活动信息",uploadPath);
  75. }
  76. @Override
  77. public Object batchList(MultipartFile file) {
  78. NewExcelUtil<InputExcelRdDetails> newExcelUtil=new NewExcelUtil<>(InputExcelRdDetails.class);
  79. List<InputExcelRdDetails> list = null;
  80. try {
  81. list = newExcelUtil.importExcel(file.getInputStream(),2);
  82. } catch (Exception e) {
  83. e.printStackTrace();
  84. }
  85. //新增
  86. return insertBatchList(list);
  87. }
  88. private Map<String,Object> insertBatchList(List<InputExcelRdDetails> list) {
  89. String aid=TokenManager.getAdminId();
  90. Date date =new Date();
  91. Map<String,Object> map=new HashMap<>();
  92. List<InputExcelRdDetails> relust= new ArrayList<>();
  93. List<String>errors=new ArrayList<>();
  94. for (InputExcelRdDetails in : list) {
  95. relust.add(in);
  96. }
  97. for (InputExcelRdDetails in : relust) {
  98. in.setStatus(1);
  99. in.setAid(aid);
  100. in.setCreateTime(date);
  101. }
  102. if (relust.size()>0)insertBatch(relust);
  103. map.put("OK",relust.size());
  104. map.put("ERROR",errors);
  105. return map;
  106. }
  107. private void insertBatch(List<InputExcelRdDetails> relust) {
  108. List<InputExcelRdDetails> list=new ArrayList<>();
  109. for (int i = 0; i < relust.size(); i++) {
  110. list.add(relust.get(i));
  111. if (50 == list.size() || i == relust.size() - 1) {
  112. if (list.size() > 0) rdDetailsMapper.insertBatch(list);
  113. list.clear();
  114. }
  115. }
  116. }
  117. @Override
  118. public void pushDownloadDetailsWord(Long id, HttpServletResponse response) {
  119. OutWordRdDetails data = getOutWordRdDetails(id);
  120. WordUtils wordUtils=new WordUtils();
  121. wordUtils.pushWord(data,response,uploadPath);
  122. }
  123. @Override
  124. public void pushDownloadDetailsPDF(Long id, HttpServletResponse response) {
  125. OutWordRdDetails data = getOutWordRdDetails(id);
  126. PDFUtils pdfUtils=new PDFUtils();
  127. pdfUtils.pushPDF(data,response,uploadPath);
  128. }
  129. private OutWordRdDetails getOutWordRdDetails(Long id) {
  130. OutRdDetails bo = rdDetailsMapper.details(id);
  131. // rdDetailsMapper.updateBrowseOrDownload(id, 1);
  132. OutWordRdDetails data = new OutWordRdDetails();
  133. BeanUtils.copyProperties(bo, data);
  134. if (bo.getRdStartStr() != null && bo.getRdEndStr() != null) {
  135. data.setStartEndTime(bo.getRdStartStr() + "~" + bo.getRdEndStr());
  136. } else {
  137. data.setStartEndTime("");
  138. }
  139. return data;
  140. }
  141. }