RDServiceImpl.java 5.6 KB

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