| 
					
				 | 
			
			
				@@ -1,19 +1,34 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.sysu.admin.controller.lz.everyday; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+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.support.base.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.utils.MySimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.utils.TextUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xiesx.fastboot.core.jpa.JpaPlusRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class LzEverydayService extends BaseService<LzEveryday, Integer> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private final static SimpleDateFormat formatDate = new SimpleDateFormat("yyyy/MM/dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private LzEverydayRepository lzEverydayRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private LzEverydayImgService lzEverydayImgService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private LzTreeService lzTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<LzEveryday> findListByTreeId(Integer treeId, Date startDate , Date endDate){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<LzEveryday> lzEverydayList = lzEverydayRepository.findAllByTreeIdAndCreateDateBetweenOrderByIdAsc(treeId, startDate, endDate); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,6 +38,81 @@ public class LzEverydayService extends BaseService<LzEveryday, Integer> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return lzEverydayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 根据图片生产测试数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testDataByImg() throws ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        File file = new File("E:\\BaiduNetdiskDownload\\荔枝系统数据\\照片数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(File yDir : file.listFiles()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String createDateStr = yDir.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(File mDir : yDir.listFiles()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                createDateStr += "/"+mDir.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(File dDir : mDir.listFiles()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    createDateStr += "/" + dDir.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for(File codeDir : dDir.listFiles()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LzEveryday bean = new LzEveryday(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LzTree lzTree = lzTreeService.findByCode(codeDir.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(lzTree == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setCreateDate(formatDate.parse(createDateStr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        String fileNameBase = dateToDir(bean.getCreateDate()) + "/" + lzTree.getCode() + "/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setPartImgUrl(fileNameBase + "part.JPG"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setTreeId(lzTree.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LzPeriod lzPeriod = new LzPeriod(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        lzPeriod.setId((lzTree.getId() % 5) + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setLzPeriod(lzPeriod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setFlowerLength(Math.random() * 1.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setFlowerPercent(Math.random()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setYield((int)(Math.random() * 500)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setWhitePoint(Math.random()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setFlowerAreaPercent(Math.random()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bean.setRedLeafPercent(Math.random()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        saveAndFlush(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        saveImages(bean.getId(), codeDir.list().length, fileNameBase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        saveTreeNewEveryDay(lzTree, bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    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, Integer imgCount, String fileNameBase){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LzEverydayImage> res = new ArrayList<>(imgCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(int i=1;i<=imgCount;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LzEverydayImage lzEverydayImage = new LzEverydayImage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lzEverydayImage.setEverydayId(everydayId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lzEverydayImage.setFilename(fileNameBase + i+".JPG"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res.add(lzEverydayImage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lzEverydayImgService.saveAll(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void saveTreeNewEveryDay(LzTree lzTree, LzEveryday lzEveryday){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(lzTree.getLzEveryday() == null || lzTree.getLzEveryday().getCreateDate().compareTo(lzEveryday.getCreateDate())  < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lzTree.setLzEveryday(lzEveryday); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //有预警就以后都要显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (lzTree.getShow() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                Integer warning = WarningCondition.getWarning(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                lzTree.setShow(warning); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lzTreeService.save(lzTree); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public JpaPlusRepository<LzEveryday, Integer> r() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return lzEverydayRepository; 
			 |