|
@@ -0,0 +1,79 @@
|
|
|
|
+package com.sysu.admin.controller.lz.everyday;
|
|
|
|
+
|
|
|
|
+import com.alibaba.excel.context.AnalysisContext;
|
|
|
|
+import com.alibaba.excel.event.AnalysisEventListener;
|
|
|
|
+import com.sysu.admin.controller.lz.period.LzPeriod;
|
|
|
|
+import com.sysu.admin.controller.lz.tree.LzTree;
|
|
|
|
+import com.sysu.admin.controller.lz.tree.LzTreeService;
|
|
|
|
+import com.sysu.admin.utils.TextUtil;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
+
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+public class LzEveryExcelListener extends AnalysisEventListener<LzEverydayExcel> {
|
|
|
|
+ private final static SimpleDateFormat formatDate = new SimpleDateFormat("yyyy/MM/dd");
|
|
|
|
+ List<LzEveryday> list = new ArrayList<>();
|
|
|
|
+ private LzTreeService lzTreeService;
|
|
|
|
+ private LzEverydayService everydayService;
|
|
|
|
+ private LzEverydayImgService LzEverydayImgService;
|
|
|
|
+
|
|
|
|
+ public LzEveryExcelListener(LzTreeService lzTreeService, LzEverydayService everydayService, LzEverydayImgService lzEverydayImgService) {
|
|
|
|
+ this.lzTreeService = lzTreeService;
|
|
|
|
+ this.everydayService = everydayService;
|
|
|
|
+ LzEverydayImgService = lzEverydayImgService;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void invoke(LzEverydayExcel everydayExcel, AnalysisContext analysisContext) {
|
|
|
|
+ if(StringUtils.isBlank(everydayExcel.getCode()))
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ LzEveryday bean = new LzEveryday();
|
|
|
|
+ LzTree lzTree = lzTreeService.findByCode(everydayExcel.getCode());
|
|
|
|
+ bean.setTreeId(lzTree.getId());
|
|
|
|
+ LzPeriod lzPeriod = new LzPeriod();
|
|
|
|
+ lzPeriod.setId(everydayExcel.getPeriod_id());
|
|
|
|
+ bean.setLzPeriod(lzPeriod);
|
|
|
|
+ bean.setCreateDate(everydayExcel.getDate());
|
|
|
|
+ bean.setCanopyArea(everydayExcel.getCanopyArea());
|
|
|
|
+ bean.setFlowerLength(everydayExcel.getFlowerLength());
|
|
|
|
+ bean.setFlowerPercent(everydayExcel.getFlowerPercent());
|
|
|
|
+ bean.setYield(everydayExcel.getYield());
|
|
|
|
+ bean.setWhitePoint(everydayExcel.getWhitePoint());
|
|
|
|
+ everydayService.saveAndFlush(bean);
|
|
|
|
+ saveImages(bean.getId(), lzTree.getCode(), bean.getCreateDate(), everydayExcel.getImgCount());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String dateToDir(Date date) {
|
|
|
|
+ String ds = formatDate.format(date);
|
|
|
|
+ String s = TextUtil.rightSubstring("/",ds);
|
|
|
|
+ if(s.charAt(0) == '0'){
|
|
|
|
+ return TextUtil.leftSubstring("/",ds) + "/" + s.substring(1);
|
|
|
|
+ }
|
|
|
|
+ return TextUtil.leftSubstring("/",ds) + "/" + s;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<LzEverydayImage> saveImages(Integer everydayId, String treeCode, Date date, Integer imgCount){
|
|
|
|
+ String fileNameBase = dateToDir(date) + "/"+ treeCode + "/";
|
|
|
|
+ List<LzEverydayImage> res = new ArrayList<>(imgCount);
|
|
|
|
+ for(int i=1;i<=5;i++){
|
|
|
|
+ LzEverydayImage lzEverydayImage = new LzEverydayImage();
|
|
|
|
+ lzEverydayImage.setEverydayId(everydayId);
|
|
|
|
+ lzEverydayImage.setFilename(fileNameBase + i+".JPG");
|
|
|
|
+ res.add(lzEverydayImage);
|
|
|
|
+ }
|
|
|
|
+ LzEverydayImgService.saveAll(res);
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|