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