Print.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. package com.huimv.guowei.admin.utils;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.huimv.guowei.admin.entity.*;
  7. import com.huimv.guowei.admin.entity.vo.EnergyWaterVo;
  8. import com.huimv.guowei.admin.entity.vo.EnvRegularCallEggVo;
  9. import com.huimv.guowei.admin.entity.vo.WaterVo;
  10. import org.jxls.common.Context;
  11. import org.jxls.util.JxlsHelper;
  12. import java.io.FileInputStream;
  13. import java.io.FileOutputStream;
  14. import java.io.InputStream;
  15. import java.io.OutputStream;
  16. import java.math.BigDecimal;
  17. import java.text.DecimalFormat;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. public class Print {
  24. /**
  25. * 打印方法 不插入图片
  26. *
  27. * @return
  28. * @throws Exception
  29. */
  30. public static void printDuck(List<PrintEntrty> printEntrties) throws Exception {
  31. //准备数据
  32. String path = "/opt/guowei/duckTest.xls";
  33. //获取模板文件,你自己当前模板的位置 我这里为当前项目下
  34. InputStream is = new FileInputStream("/opt/guowei/duckTest.xlsx");
  35. //根据模板生成的文件保存路径 我这里保存在本地D盘
  36. OutputStream os = new FileOutputStream(path);
  37. //绑定数据
  38. Context context = new Context();
  39. List<PrintEntrtyVo> list = new ArrayList<>();
  40. for (PrintEntrty printEntrty : printEntrties) {
  41. PrintEntrtyVo printEntrtyVo = new PrintEntrtyVo();
  42. BaseDuckInfo duckInfo = printEntrty.getBaseDuckInfo();
  43. printEntrtyVo.setChiNum(duckInfo.getChiNum());
  44. printEntrtyVo.setJiaoNum(duckInfo.getJiaoNum());
  45. if (duckInfo.getDuckBreed() == 1) {
  46. printEntrtyVo.setDuckBreed("北京鸭");
  47. } else if (duckInfo.getDuckBreed() == 2) {
  48. printEntrtyVo.setDuckBreed("连城白鸭");
  49. } else if (duckInfo.getDuckBreed() == 3) {
  50. printEntrtyVo.setDuckBreed("山麻鸭");
  51. } else if (duckInfo.getDuckBreed() == 4) {
  52. printEntrtyVo.setDuckBreed("攸县麻鸭");
  53. } else if (duckInfo.getDuckBreed() == 5) {
  54. printEntrtyVo.setDuckBreed("白改鸭");
  55. } else if (duckInfo.getDuckBreed() == 6) {
  56. printEntrtyVo.setDuckBreed("缙云麻鸭");
  57. } else if (duckInfo.getDuckBreed() == 7) {
  58. printEntrtyVo.setDuckBreed("绍兴鸭(带圈白翼梢)");
  59. } else if (duckInfo.getDuckBreed() == 8) {
  60. printEntrtyVo.setDuckBreed("绍兴鸭(红毛绿翼梢)");
  61. } else if (duckInfo.getDuckBreed() == 9) {
  62. printEntrtyVo.setDuckBreed("绍兴鸭(白羽绍鸭)");
  63. }
  64. if (ObjectUtil.isEmpty(duckInfo.getDuckSex())){
  65. printEntrtyVo.setDuckSex("未填写");
  66. }
  67. else if (duckInfo.getDuckSex() == 0) {
  68. printEntrtyVo.setDuckSex("雄");
  69. } else {
  70. printEntrtyVo.setDuckSex("雌");
  71. }
  72. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  73. printEntrtyVo.setDuckDate(sdf.format(duckInfo.getDuckBirthday()));
  74. printEntrtyVo.setAddress(duckInfo.getDuckBirthplace());
  75. printEntrtyVo.setGenotype(duckInfo.getGenotype());
  76. printEntrtyVo.setNeed(duckInfo.getSpecialNeeds());
  77. printEntrtyVo.setBreedingEnv(duckInfo.getBreedingEnv());
  78. printEntrtyVo.setNowWeight(duckInfo.getNowWeight().toString());
  79. printEntrtyVo.setUnitName(duckInfo.getUnitName());
  80. printEntrtyVo.setBatchNum(duckInfo.getBatchNum());
  81. printEntrtyVo.setFeeding(printEntrty.getFeeding());
  82. printEntrtyVo.setEgg(printEntrty.getEggNum());
  83. printEntrtyVo.setEggWeight(printEntrty.getEgging());
  84. printEntrtyVo.setAvgWeight(printEntrty.getAvgWeiht());
  85. List<EnvMoveCall> envMoveCalls = printEntrty.getEnvMoveCalls();
  86. if (envMoveCalls.size() > 0) {
  87. for (int i = 0; i < envMoveCalls.size(); i++) {
  88. if (i == 0) {
  89. printEntrtyVo.setWeight1(envMoveCalls.get(i).getDuckWeight().toString());
  90. }
  91. if (i == 1) {
  92. printEntrtyVo.setWeight2(envMoveCalls.get(i).getDuckWeight().toString());
  93. }
  94. if (i == 2) {
  95. printEntrtyVo.setWeight3(envMoveCalls.get(i).getDuckWeight().toString());
  96. }
  97. if (i == 3) {
  98. printEntrtyVo.setWeight4(envMoveCalls.get(i).getDuckWeight().toString());
  99. }
  100. if (i == 4) {
  101. printEntrtyVo.setWeight5(envMoveCalls.get(i).getDuckWeight().toString());
  102. }
  103. if (i == 5) {
  104. printEntrtyVo.setWeight6(envMoveCalls.get(i).getDuckWeight().toString());
  105. }
  106. if (i == 6) {
  107. printEntrtyVo.setWeight7(envMoveCalls.get(i).getDuckWeight().toString());
  108. }
  109. if (i == 7) {
  110. printEntrtyVo.setWeight8(envMoveCalls.get(i).getDuckWeight().toString());
  111. }
  112. if (i == 8) {
  113. printEntrtyVo.setWeight9(envMoveCalls.get(i).getDuckWeight().toString());
  114. }
  115. if (i == 9) {
  116. printEntrtyVo.setWeight10(envMoveCalls.get(i).getDuckWeight().toString());
  117. }
  118. }
  119. }
  120. list.add(printEntrtyVo);
  121. }
  122. context.putVar("list", list);
  123. //生成
  124. JxlsHelper.getInstance().processTemplate(is, os, context);
  125. }
  126. public static void printEgg(List<EnvRegularCallEggVo> eggs) throws Exception {
  127. //准备数据
  128. String path = "/opt/guowei/egg.xls";
  129. //获取模板文件,你自己当前模板的位置 我这里为当前项目下
  130. InputStream is = new FileInputStream("/opt/guowei/egg.xlsx");
  131. //根据模板生成的文件保存路径 我这里保存在本地D盘
  132. OutputStream os = new FileOutputStream(path);
  133. //绑定数据
  134. Context context = new Context();
  135. List<EnvRegularCallEggVo> list = new ArrayList<>();
  136. for (EnvRegularCallEggVo egg : eggs) {
  137. EnvRegularCallEggVo eggVo = new EnvRegularCallEggVo();
  138. eggVo.setEggNum(egg.getEggNum());
  139. eggVo.setDuckCode(egg.getDuckCode());
  140. eggVo.setDate(egg.getDate());
  141. eggVo.setFeed(egg.getFeed());
  142. eggVo.setWeight(egg.getWeight());
  143. list.add(eggVo);
  144. }
  145. context.putVar("list", list);
  146. //生成
  147. JxlsHelper.getInstance().processTemplate(is, os, context);
  148. }
  149. public static void printWater(List<EnergyWater> waterVos, EnergyWater water) throws Exception {
  150. //准备数据
  151. String path = "/opt/guowei/water.xls";
  152. //获取模板文件,你自己当前模板的位置 我这里为当前项目下
  153. InputStream is = new FileInputStream("/opt/guowei/water.xlsx");
  154. //根据模板生成的文件保存路径 我这里保存在本地D盘
  155. OutputStream os = new FileOutputStream(path);
  156. //绑定数据
  157. Context context = new Context();
  158. List<WaterVo> list = new ArrayList<>();
  159. int i = 0;
  160. BigDecimal count = BigDecimal.ZERO;
  161. for (EnergyWater waterVo : waterVos) {
  162. i = i + 1;
  163. WaterVo waterVo1 = new WaterVo();
  164. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  165. String format = sdf.format(waterVo.getCreateDate());
  166. waterVo1.setWater(waterVo.getWaterValue());
  167. waterVo1.setDate(format);
  168. waterVo1.setLocation(waterVo.getChipName());
  169. list.add(waterVo1);
  170. }
  171. context.putVar("list", list);
  172. context.putVar("waterCount", water.getWaterValue());
  173. //生成
  174. JxlsHelper.getInstance().processTemplate(is, os, context);
  175. }
  176. public static void printElectricity(List<EnergyWaterVo> waterVos) throws Exception {
  177. //准备数据
  178. String path = "/opt/guowei/electricity.xls";
  179. //获取模板文件,你自己当前模板的位置 我这里为当前项目下
  180. InputStream is = new FileInputStream("/opt/guowei/electricity.xlsx");
  181. //根据模板生成的文件保存路径 我这里保存在本地D盘
  182. OutputStream os = new FileOutputStream(path);
  183. //绑定数据
  184. Context context = new Context();
  185. List<WaterVo> list = new ArrayList<>();
  186. for (EnergyWaterVo waterVo : waterVos) {
  187. WaterVo waterVo1 = new WaterVo();
  188. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  189. waterVo1.setDate(sdf.format(waterVo.getCreateDate()));
  190. waterVo1.setLocation(waterVo.getChipName());
  191. waterVo1.setWater(waterVo.getWaterValue().toString());
  192. list.add(waterVo1);
  193. }
  194. context.putVar("list", list);
  195. //生成
  196. JxlsHelper.getInstance().processTemplate(is, os, context);
  197. }
  198. public static void printChi(List<BaseDuckInfo> baseDuckInfos) throws Exception {
  199. //准备数据
  200. String path = "/opt/guowei/chi.xls";
  201. //获取模板文件,你自己当前模板的位置 我这里为当前项目下
  202. InputStream is = new FileInputStream("/opt/guowei/chi.xlsx");
  203. //根据模板生成的文件保存路径 我这里保存在本地D盘
  204. OutputStream os = new FileOutputStream(path);
  205. //绑定数据
  206. Context context = new Context();
  207. List<PrintEntrtyChi> list = new ArrayList<>();
  208. for (BaseDuckInfo baseDuckInfo : baseDuckInfos) {
  209. PrintEntrtyChi printEntrtyChi = new PrintEntrtyChi();
  210. printEntrtyChi.setUnitName(baseDuckInfo.getUnitName());
  211. printEntrtyChi.setChiNum(baseDuckInfo.getChiNum());
  212. printEntrtyChi.setJiaoNum(baseDuckInfo.getJiaoNum());
  213. list.add(printEntrtyChi);
  214. }
  215. context.putVar("list", list);
  216. //生成
  217. JxlsHelper.getInstance().processTemplate(is, os, context);
  218. }
  219. }