TbDisinfectService.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.pj.project.tb_disinfect;
  2. import java.io.File;
  3. import java.io.InputStream;
  4. import java.util.*;
  5. import cn.hutool.core.bean.BeanUtil;
  6. import cn.hutool.core.date.DateUtil;
  7. import com.alibaba.excel.EasyExcel;
  8. import com.alibaba.excel.ExcelWriter;
  9. import com.alibaba.excel.write.metadata.WriteSheet;
  10. import com.alibaba.excel.write.metadata.fill.FillConfig;
  11. import com.baomidou.mybatisplus.extension.service.IService;
  12. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  13. import com.pj.current.config.MyConfig;
  14. import com.pj.project.tb_fee_details.dto.ExportFeeDetailDTO;
  15. import com.pj.project4sp.uploadfile.UploadUtil;
  16. import com.pj.utils.so.SoMap;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.core.io.ClassPathResource;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import javax.annotation.Resource;
  22. /**
  23. * Service: tb_disinfect -- 消毒申请单
  24. * @author qzy
  25. */
  26. @Service
  27. @Transactional
  28. public class TbDisinfectService extends ServiceImpl<TbDisinfectMapper, TbDisinfect> implements IService<TbDisinfect> {
  29. /** 底层 Mapper 对象 */
  30. @Autowired
  31. TbDisinfectMapper tbDisinfectMapper;
  32. @Resource
  33. MyConfig myConfig;
  34. /** 增 */
  35. void add(TbDisinfect t){
  36. this.save(t);
  37. }
  38. /** 删 */
  39. void delete(Long id){
  40. this.removeById(id);
  41. }
  42. /** 改 */
  43. void update(TbDisinfect t){
  44. this.updateById(t);
  45. }
  46. /** 查 */
  47. TbDisinfect getById(Long id){
  48. return super.getById(id);
  49. }
  50. /** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
  51. List<TbDisinfect> getList(SoMap so) {
  52. return tbDisinfectMapper.getList(so);
  53. }
  54. public String exportDisinfect(SoMap so) throws Exception{
  55. Date now = new Date();
  56. String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm");
  57. String beginTime = so.getString("beginTime");
  58. String endTime = so.getString("endTime");
  59. so.put("beginTime", beginTime + " 00:00:00");
  60. so.put("endTime", endTime + " 23:59:59");
  61. String time = beginTime + "至" + endTime;
  62. Map<String, String> head = new HashMap<>();
  63. head.put("time", time);
  64. head.put("exportTime", nowStr);
  65. List<ExportDisnfectDTO> exportList = new ArrayList<>();
  66. List<TbDisinfect> list = this.getList(so);
  67. Integer index = 0;
  68. for (TbDisinfect disinfect : list) {
  69. ExportDisnfectDTO dto = new ExportDisnfectDTO();
  70. BeanUtil.copyProperties(disinfect, dto);
  71. Double grossWeight = disinfect.getGrossWeight()*1000;
  72. dto.setIndex(++index).setGrossWeight(grossWeight.toString());
  73. exportList.add(dto);
  74. }
  75. String separator = File.separator;
  76. String today = DateUtil.today();
  77. String rootPath = UploadUtil.uploadConfig.rootFolder + separator + UploadUtil.uploadConfig.httpPrefix;
  78. String prefix = myConfig.getDomain() + UploadUtil.uploadConfig.httpPrefix;
  79. String extPath = "disinfect" + separator + today + separator;
  80. String fileName = "消毒申请记录_" + time + ".xlsx";
  81. String savePath = rootPath + separator + extPath;
  82. File saveFIle = new File(savePath);
  83. if (!saveFIle.exists()) {
  84. saveFIle.mkdirs();
  85. }
  86. ClassPathResource classPathResource = new ClassPathResource("static/disinfect.xlsx");
  87. InputStream tempInputStream =classPathResource.getInputStream();
  88. ExcelWriter excelWriter = EasyExcel.write(savePath + fileName, ExportFeeDetailDTO.class)
  89. .withTemplate(tempInputStream).build();
  90. WriteSheet writeSheet = EasyExcel.writerSheet().build();
  91. FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();//换行
  92. excelWriter.fill(head, writeSheet);
  93. excelWriter.fill(exportList, fillConfig, writeSheet);
  94. excelWriter.finish();
  95. return prefix + "/disinfect/" + today + "/消毒申请记录_" + time + ".xlsx";
  96. }
  97. }