|  | @@ -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;
 |