shate
This commit is contained in:
		@@ -0,0 +1,657 @@
 | 
			
		||||
package com.ruoyi.web.controller.shate;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.common.core.domain.AjaxResult;
 | 
			
		||||
import com.ruoyi.common.utils.BarChart;
 | 
			
		||||
import com.ruoyi.common.utils.chartForWord.CustomXWPFDocument;
 | 
			
		||||
import com.ruoyi.common.utils.shate.PageUtils;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.system.domain_shate.*;
 | 
			
		||||
import com.ruoyi.system.service_shate.IDateUploadService;
 | 
			
		||||
import com.ruoyi.system.service_shate.IPlantingSuitabilityService;
 | 
			
		||||
import com.ruoyi.system.service_shate.ISeedingSuccessService;
 | 
			
		||||
import com.ruoyi.system.service_shate.IVegetationHealthServices;
 | 
			
		||||
import io.swagger.annotations.Api;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.util.ResourceUtils;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.w3c.dom.Document;
 | 
			
		||||
import org.w3c.dom.Node;
 | 
			
		||||
import org.w3c.dom.NodeList;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.servlet.ServletOutputStream;
 | 
			
		||||
import javax.servlet.http.HttpServletRequest;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import javax.xml.parsers.DocumentBuilder;
 | 
			
		||||
import javax.xml.parsers.DocumentBuilderFactory;
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author: JinSheng Song
 | 
			
		||||
 * @Date: 2022/7/11 15:46
 | 
			
		||||
 */
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping(value = "/api/Upload", produces = "application/json;charset=UTF-8")
 | 
			
		||||
@Api(tags = "文件上传记录")
 | 
			
		||||
 | 
			
		||||
public class DateUploadController
 | 
			
		||||
{
 | 
			
		||||
    @Resource
 | 
			
		||||
    IPlantingSuitabilityService plantingSuitabilityService;
 | 
			
		||||
    @Resource
 | 
			
		||||
    IVegetationHealthServices vegetationHealthServices;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private IDateUploadService service;
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    ISeedingSuccessService seedingSuccessService;
 | 
			
		||||
 | 
			
		||||
    private  String FilePathName;
 | 
			
		||||
 | 
			
		||||
    private  String ExePathName;
 | 
			
		||||
 | 
			
		||||
    private  String FilePaths;
 | 
			
		||||
 | 
			
		||||
    private  String ShpPaths;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @RequestMapping(value = "/SelectUpload",method = {RequestMethod.POST})
 | 
			
		||||
    public AjaxResult SelectUpload(@RequestBody paging paging)
 | 
			
		||||
    {
 | 
			
		||||
//        LocalDate tomorrow = LocalDate.of(2022,10,2);
 | 
			
		||||
//        LocalDate today = LocalDate.now();
 | 
			
		||||
//
 | 
			
		||||
//        if(tomorrow.isAfter(today)==false)
 | 
			
		||||
//        {
 | 
			
		||||
//            return AjaxResult.error("软件授权日期已过,请联系管理人员!");
 | 
			
		||||
//        }
 | 
			
		||||
 | 
			
		||||
        String type1=paging.getType1().replace(" ","");
 | 
			
		||||
        String type=paging.getType().replace(" ","");
 | 
			
		||||
        String type2="";
 | 
			
		||||
 | 
			
		||||
        if (paging.getType2()!=null)
 | 
			
		||||
        {
 | 
			
		||||
            type2= paging.getType2().toUpperCase();
 | 
			
		||||
        }
 | 
			
		||||
        String date=paging.getUploadTime();
 | 
			
		||||
        String name=paging.getType3();
 | 
			
		||||
        String dateTime =paging.getDateTime();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if ( name!=null && name!="")
 | 
			
		||||
        {
 | 
			
		||||
            if (name.equals("1"))
 | 
			
		||||
            {
 | 
			
		||||
                name="M_Heal%";
 | 
			
		||||
            }
 | 
			
		||||
            else if(name.equals("2"))
 | 
			
		||||
            {
 | 
			
		||||
                name="H_Heal%";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        List<DateUpload> Seeding= service.selectUpload(paging.getZone(),type.toUpperCase(), type1.toUpperCase(),
 | 
			
		||||
                type2,paging.getYear(),date,name,dateTime);
 | 
			
		||||
        pageVO vaue=new pageVO();
 | 
			
		||||
        List<?> value= PageUtils.getListPaging(Seeding,paging.getPageNum(),paging.getPageSize());
 | 
			
		||||
        vaue.setValue(value);
 | 
			
		||||
        vaue.setTotal(Seeding.size());
 | 
			
		||||
        return AjaxResult.success(vaue);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @RequestMapping(value = "/delUpload",method = {RequestMethod.POST})
 | 
			
		||||
    public AjaxResult DelUpload(@RequestBody UplodFile uplodFile)
 | 
			
		||||
    {
 | 
			
		||||
        return  delUploadFile(uplodFile.getId());
 | 
			
		||||
//        List<Integer> ids=uplodFile.getId();
 | 
			
		||||
//        Integer Seeding=0;
 | 
			
		||||
//       UploadFile file=new UploadFile();
 | 
			
		||||
//        for (int i=0; i<ids.size();i++)
 | 
			
		||||
//        {
 | 
			
		||||
//            DateUpload value= service.selectDel(ids.get(i));
 | 
			
		||||
//
 | 
			
		||||
//          String[] strs2=value.getFileName().split("\\_");
 | 
			
		||||
//
 | 
			
		||||
////           file.UploadFile1(strs2[1],value.getZone(),value.getDataTime());
 | 
			
		||||
//
 | 
			
		||||
//            Seeding= service.DelUpload(ids.get(i));
 | 
			
		||||
//            if (Seeding==0){return  AjaxResult.error("没有此id单据!"+ids.get(i));}
 | 
			
		||||
//        }
 | 
			
		||||
//
 | 
			
		||||
//        return AjaxResult.success(Seeding);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @RequestMapping(value = "/delUpload1",method = {RequestMethod.DELETE})
 | 
			
		||||
    public AjaxResult DelUpload1(@RequestParam("id") List<Integer> id)
 | 
			
		||||
    {
 | 
			
		||||
        List<Integer> ids=id;
 | 
			
		||||
        Integer Seeding=0;
 | 
			
		||||
        for (int i=0; i<ids.size();i++)
 | 
			
		||||
        {
 | 
			
		||||
            Seeding= service.DelUpload(ids.get(i));
 | 
			
		||||
            if (Seeding==0){return  AjaxResult.error("没有此id单据!"+ids.get(i));}
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(Seeding);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @RequestMapping(value = "/InitShp",method = {RequestMethod.POST})
 | 
			
		||||
    public AjaxResult InitShp(@RequestBody UplodFile uplodFile)
 | 
			
		||||
    {
 | 
			
		||||
        List<DateUpload> dateUploads=infr(uplodFile.getDateUploads());
 | 
			
		||||
 | 
			
		||||
        for (int i=0; i<dateUploads.size();i++)
 | 
			
		||||
        {
 | 
			
		||||
            Integer Seeding= service.IntoShp(dateUploads.get(i));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return AjaxResult.success("成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @RequestMapping(value = "/InitUpload",method = {RequestMethod.POST})
 | 
			
		||||
    public AjaxResult InitUpload(@RequestBody UplodFile uplodFile)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        readXml();
 | 
			
		||||
 | 
			
		||||
        List<DateUpload> dateUploads=infr(uplodFile.getDateUploads());
 | 
			
		||||
 | 
			
		||||
        for (int i=0; i<dateUploads.size();i++)
 | 
			
		||||
        {
 | 
			
		||||
            Integer Seeding= service.IntoUpload(dateUploads.get(i));
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return AjaxResult.success("成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private  List<DateUpload> infr(List<DateUpload> dateUpload)
 | 
			
		||||
    {
 | 
			
		||||
        for (int i=0;i<dateUpload.size();i++)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            String [] typesList=dateUpload.get(i).getType1().split("\\/");
 | 
			
		||||
 | 
			
		||||
            String type1=typesList[1].replace(" ","").toUpperCase();
 | 
			
		||||
 | 
			
		||||
            String type=typesList[0].replace(" ","").toUpperCase();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            Date d=new Date();
 | 
			
		||||
 | 
			
		||||
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 | 
			
		||||
 | 
			
		||||
            String dateNowStr = sdf.format(d);
 | 
			
		||||
             if(type1.equals("EVALUATIONINDICATORS"))
 | 
			
		||||
            {
 | 
			
		||||
                String[] strs = dateUpload.get(i).getFileName().split("\\.");
 | 
			
		||||
 | 
			
		||||
                String name=strs[0];
 | 
			
		||||
 | 
			
		||||
                String[] strs2=name.split("\\_");
 | 
			
		||||
 | 
			
		||||
                String[] typeValue=name.split("2");
 | 
			
		||||
 | 
			
		||||
                String type2=typeValue[0];
 | 
			
		||||
 | 
			
		||||
                String name1=strs2[strs2.length-1];
 | 
			
		||||
 | 
			
		||||
                String name2=strs2[strs2.length-2];
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setDataTime(name2);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setZone(name1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setCreatedTime(dateNowStr);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType(type);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType1(type1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setYear(name2.substring(0,4));
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType2(type2.substring(0,type2.length()-1).toUpperCase());
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setExtent1(dateUpload.get(i).getExtent().toString());
 | 
			
		||||
 | 
			
		||||
                DateUpload uploadValue=service.selectShp(name1,type,"");
 | 
			
		||||
                MyThread1 demo=new MyThread1(name.replace(".tif",""),
 | 
			
		||||
                        FilePaths+dateUpload.get(i).getData_id(),
 | 
			
		||||
                        ShpPaths+uploadValue.getData_id());
 | 
			
		||||
                demo.run();
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else if(type1.equals("BOUNDARIES"))//Boundaries
 | 
			
		||||
            {
 | 
			
		||||
                String[] strs = dateUpload.get(i).getFileName().split("\\.");
 | 
			
		||||
 | 
			
		||||
                String name=strs[0];
 | 
			
		||||
 | 
			
		||||
                String[] strs2=name.split("\\_");
 | 
			
		||||
 | 
			
		||||
                String name1=strs2[strs2.length-1];
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setZone(name1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setCreatedTime(dateNowStr);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setYear(dateNowStr.substring(0,4));
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType(type);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType1(type1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setExtent1(dateUpload.get(i).getExtent().toString());
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
             else if(type1.equals("LANDUSE"))
 | 
			
		||||
             {
 | 
			
		||||
                 String[] strs = dateUpload.get(i).getFileName().split("\\.");
 | 
			
		||||
 | 
			
		||||
                 String name=strs[0];
 | 
			
		||||
 | 
			
		||||
                 String[] strs2=name.split("\\_");
 | 
			
		||||
 | 
			
		||||
                 String[] typeValue=name.split("2");
 | 
			
		||||
 | 
			
		||||
                 String type2=typeValue[0];
 | 
			
		||||
 | 
			
		||||
                 String name1=strs2[strs2.length-1];
 | 
			
		||||
 | 
			
		||||
                 String name2=strs2[strs2.length-2];
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setDataTime(name2);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setZone(name1);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setCreatedTime(dateNowStr);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType(type);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType1(type1);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setYear(name2.substring(0,4));
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType2(type2.substring(0,type2.length()-1).toUpperCase());
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setExtent1(dateUpload.get(i).getExtent().toString());
 | 
			
		||||
 | 
			
		||||
                 DateUpload uploadValue=service.selectShp(name1,type,"");
 | 
			
		||||
                 MyThread1 demo=new MyThread1(name.replace(".tif",""),
 | 
			
		||||
                         FilePaths+dateUpload.get(i).getData_id(),
 | 
			
		||||
                         ShpPaths+uploadValue.getData_id());
 | 
			
		||||
                 demo.run();
 | 
			
		||||
 | 
			
		||||
             }
 | 
			
		||||
             else if(type1.equals("SUITABILITY"))
 | 
			
		||||
             {
 | 
			
		||||
                 String[] strs = dateUpload.get(i).getFileName().split("\\.");
 | 
			
		||||
 | 
			
		||||
                 String name=strs[0];
 | 
			
		||||
 | 
			
		||||
                 String[] strs2=name.split("\\_");
 | 
			
		||||
 | 
			
		||||
                 String[] typeValue=name.split("2");
 | 
			
		||||
 | 
			
		||||
                 String type2=typeValue[0];
 | 
			
		||||
 | 
			
		||||
                 String name1=strs2[strs2.length-1];
 | 
			
		||||
 | 
			
		||||
                 String name2=strs2[strs2.length-2];
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setDataTime(name2);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setZone(name1);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setCreatedTime(dateNowStr);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType(type);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType1(type1);
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setYear(name2.substring(0,4));
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setType2(type2.substring(0,type2.length()-1).toUpperCase());
 | 
			
		||||
 | 
			
		||||
                 dateUpload.get(i).setExtent1(dateUpload.get(i).getExtent().toString());
 | 
			
		||||
 | 
			
		||||
                 DateUpload uploadValue=service.selectShp(name1,type,"");
 | 
			
		||||
 | 
			
		||||
                 MyThread1 demo=new MyThread1(name.replace(".tif",""),
 | 
			
		||||
                         FilePaths+dateUpload.get(i).getData_id(),
 | 
			
		||||
                         ShpPaths+uploadValue.getData_id());
 | 
			
		||||
                 demo.run();
 | 
			
		||||
             }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                String[] strs = dateUpload.get(i).getFileName().split("\\.");
 | 
			
		||||
 | 
			
		||||
                String name=strs[0];
 | 
			
		||||
 | 
			
		||||
                String[] strs2=name.split("\\_");
 | 
			
		||||
 | 
			
		||||
                String name1=strs2[strs2.length-1];
 | 
			
		||||
 | 
			
		||||
                String name2=strs2[strs2.length-2];
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setDataTime(name2);
 | 
			
		||||
 | 
			
		||||
                Integer month=Integer.parseInt(name2.substring(4,6));
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setYear(name2.substring(0,4));
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setMonth(month);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setZone(name1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setCreatedTime(dateNowStr);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType(type);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setType1(type1);
 | 
			
		||||
 | 
			
		||||
                dateUpload.get(i).setExtent1(dateUpload.get(i).getExtent().toString());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                DateUpload uploadValue=service.selectShp(name1,type,"");
 | 
			
		||||
                MyThread1 demo=new MyThread1(name.replace(".tif",""),
 | 
			
		||||
                        FilePaths+dateUpload.get(i).getData_id(),
 | 
			
		||||
                        ShpPaths+uploadValue.getData_id());
 | 
			
		||||
                demo.run();
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        return  dateUpload;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 调用exe
 | 
			
		||||
     * @param fileName 文件名称
 | 
			
		||||
     * @param filePath tif文件路径
 | 
			
		||||
     * @param shpPath shp文件路径
 | 
			
		||||
     */
 | 
			
		||||
    @RequestMapping(value = "/callExe",method = {RequestMethod.GET})
 | 
			
		||||
    public  void callExe(String fileName,String filePath,String shpPath)
 | 
			
		||||
    {
 | 
			
		||||
        BufferedReader bufferedReader=null;
 | 
			
		||||
        Process proc=null;
 | 
			
		||||
        try {
 | 
			
		||||
 | 
			
		||||
//            String til = UrlFileUpload.fileUpload(filePath,FilePathName);
 | 
			
		||||
//
 | 
			
		||||
//            String shp = UrlFileUpload.fileUpload(shpPath,FilePathName);
 | 
			
		||||
            String[] cmd = {ExePathName,
 | 
			
		||||
                    fileName,
 | 
			
		||||
                    filePath+".tif",
 | 
			
		||||
                    shpPath+".zip"};
 | 
			
		||||
 | 
			
		||||
            ProcessBuilder pb = new ProcessBuilder();
 | 
			
		||||
            pb.command(cmd);
 | 
			
		||||
            proc=pb.start();
 | 
			
		||||
            System.out.println("Start calling algorithm");
 | 
			
		||||
 | 
			
		||||
            bufferedReader =new BufferedReader(new InputStreamReader(proc.getErrorStream()));
 | 
			
		||||
            String aa=null;
 | 
			
		||||
            String line=null;
 | 
			
		||||
            while ((line=bufferedReader.readLine())!=null){
 | 
			
		||||
                aa=aa+line;
 | 
			
		||||
            }
 | 
			
		||||
            System.out.println(aa);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            System.out.println(e.getMessage());;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class MyThread1 extends Thread{
 | 
			
		||||
 | 
			
		||||
        private String FileName;
 | 
			
		||||
 | 
			
		||||
        private String FilePath;
 | 
			
		||||
 | 
			
		||||
        private String ShpPath;
 | 
			
		||||
 | 
			
		||||
        public MyThread1(String fileName,String filePath,String shpPath){
 | 
			
		||||
            this.FileName = fileName;
 | 
			
		||||
            this.FilePath = filePath;
 | 
			
		||||
            this.ShpPath = shpPath;
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        @Override
 | 
			
		||||
        public void run(){
 | 
			
		||||
            callExe(FileName,FilePath,ShpPath);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @RequestMapping(value = "/delUploadFile",method = {RequestMethod.DELETE})
 | 
			
		||||
    public   AjaxResult delUploadFile(List<Integer> id) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        List<Integer> ids = id;
 | 
			
		||||
 | 
			
		||||
        UploadFile file = new UploadFile();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        for (int i = 0; i < ids.size(); i++) {
 | 
			
		||||
 | 
			
		||||
            Integer Seeding=0;
 | 
			
		||||
            DateUpload value = service.selectDel(ids.get(i));
 | 
			
		||||
 | 
			
		||||
            String type1=value.getType1();
 | 
			
		||||
            String type= value.getType();
 | 
			
		||||
 | 
			
		||||
            if (type1.equals("EVALUATIONINDICATORS")) {
 | 
			
		||||
 | 
			
		||||
                //value.getType2();
 | 
			
		||||
 | 
			
		||||
                String[] typeValue = value.getFileName().split("2");
 | 
			
		||||
                String type2 = typeValue[0];
 | 
			
		||||
                type2=type2.substring(0,type2.length()-1);
 | 
			
		||||
                file.UploadFile1(type2, value.getZone(), value.getDataTime(),service,"");
 | 
			
		||||
                Seeding= service.DelUpload(ids.get(i));
 | 
			
		||||
                if (Seeding==0){return  AjaxResult.error("没有此id单据!"+ids.get(i));}
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            // &&
 | 
			
		||||
            //                    (type1.equals("RSIMAGES") || type1.equals("PLANTINGDISTRIBUTION") || type1.equals("VEGETATIONHEALTH"))
 | 
			
		||||
            else if (type.equals("VEGETATIONHEALTH"))
 | 
			
		||||
            {
 | 
			
		||||
                String[] typeValue = value.getFileName().split("_");
 | 
			
		||||
                String resolution=typeValue[0];
 | 
			
		||||
                String type2 = "Heal";
 | 
			
		||||
                file.UploadFile1(type2, value.getZone(), value.getDataTime(),service,resolution);
 | 
			
		||||
                Seeding= service.DelUpload(ids.get(i));
 | 
			
		||||
                if (Seeding==0){return  AjaxResult.error("没有此id单据!"+ids.get(i));}
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                String[] typeValue = value.getFileName().split("_");
 | 
			
		||||
                String type2 = typeValue[0];
 | 
			
		||||
                file.UploadFile1(type2, value.getZone(), value.getDataTime(),service,"");
 | 
			
		||||
                Seeding= service.DelUpload(ids.get(i));
 | 
			
		||||
                if (Seeding==0){return  AjaxResult.error("没有此id单据!"+ids.get(i));}
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return AjaxResult.success("成功!");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public  void readXml() {
 | 
			
		||||
        try {
 | 
			
		||||
            // 创建解析器工厂
 | 
			
		||||
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 | 
			
		||||
            DocumentBuilder db = factory.newDocumentBuilder();
 | 
			
		||||
            // 创建一个Document对象
 | 
			
		||||
 | 
			
		||||
            String parent = new File(ResourceUtils.getURL("classpath:").getPath()).getParentFile().getParentFile().getParent();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            File file = new File("route.xml");
 | 
			
		||||
            Document doc =db.parse(file);
 | 
			
		||||
            NodeList routeList = doc.getElementsByTagName("Rodel");
 | 
			
		||||
            // 遍历每个book节点
 | 
			
		||||
            for (int i = 0; i < routeList.getLength(); i++) {
 | 
			
		||||
 | 
			
		||||
                // 索引从零开始
 | 
			
		||||
                org.w3c.dom.Node book = routeList.item(i);
 | 
			
		||||
                // 获取book节点所有属性集合
 | 
			
		||||
                org.w3c.dom.NamedNodeMap attrs = book.getAttributes();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                NodeList childNodes = book.getChildNodes();
 | 
			
		||||
                for (int k = 0; k < childNodes.getLength(); k++) {
 | 
			
		||||
                    // 区分,去掉空格和换行符
 | 
			
		||||
                    if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                        this.ExePathName=childNodes.item(1).getTextContent().trim();
 | 
			
		||||
 | 
			
		||||
                        this.FilePathName=childNodes.item(3).getTextContent().trim();
 | 
			
		||||
 | 
			
		||||
                        this.FilePaths=childNodes.item(5).getTextContent().trim();
 | 
			
		||||
 | 
			
		||||
                        this.ShpPaths=childNodes.item(7).getTextContent().trim();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 导出Word
 | 
			
		||||
     * @param
 | 
			
		||||
     */
 | 
			
		||||
    @RequestMapping(value = "/exportWord",method = {RequestMethod.GET})
 | 
			
		||||
    @ResponseBody
 | 
			
		||||
    public void exportWord(HttpServletResponse response, HttpServletRequest request) throws Exception {
 | 
			
		||||
        //接受前端传来的数据
 | 
			
		||||
        String year = "2022";//request.getParameter("year");
 | 
			
		||||
        String zone = "01";//request.getParameter("zone");
 | 
			
		||||
        //创建文本对象
 | 
			
		||||
        CustomXWPFDocument docxDocument = new CustomXWPFDocument();
 | 
			
		||||
        //创建标题
 | 
			
		||||
        BarChart.setTitle(docxDocument,"Evaluation report of planting monitoring in ITBA Nature Reserve");
 | 
			
		||||
        //创建第一个段落的标题
 | 
			
		||||
        BarChart.createFirstLevelTopic(docxDocument, "1.Background information");
 | 
			
		||||
        //创建第一个段落的内容
 | 
			
		||||
        BarChart.createParagraphAndInsertWord(docxDocument, "Date time: "+year);
 | 
			
		||||
        BarChart.createParagraphAndInsertWord(docxDocument, "Evaluation area: "+zone);
 | 
			
		||||
        //创建第二段落的标题
 | 
			
		||||
        BarChart.createFirstLevelTopic(docxDocument, "2.Results of remote sensing monitoring of seeding success rate");
 | 
			
		||||
        //循环判断有多少个资源
 | 
			
		||||
        List<SeedingSuccessRate> seedingSuccessRates = seedingSuccessService.sqlSeeding(zone, year);
 | 
			
		||||
        for (SeedingSuccessRate seedingSuccessRate : seedingSuccessRates) {
 | 
			
		||||
            //创建第二段落的内容
 | 
			
		||||
            BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\1.png");
 | 
			
		||||
            BarChart.setPicTitle(docxDocument, "Spatial distribution data of successful seeding regions");
 | 
			
		||||
            BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\2.png");
 | 
			
		||||
            BarChart.setPicTitle(docxDocument, "Spatial distribution data of seeding success rate");
 | 
			
		||||
            BarChart.createParagraphAndInsertWord(docxDocument, ""+BarChart.changeDate(seedingSuccessRate.getImageDate())+". The total planting area in "+seedingSuccessRate.getZone()+" area was "+BarChart.getDoubleNumber((seedingSuccessRate.getSeedingSuccessArea()/seedingSuccessRate.getSeedingSuccess())) +" hm², the vegetation survival area was "+seedingSuccessRate.getSeedingSuccessArea()+" hm², and the seeding success rate was "+seedingSuccessRate.getSeedingSuccess()+"%.");
 | 
			
		||||
        }
 | 
			
		||||
        //第三段的标题
 | 
			
		||||
        BarChart.createFirstLevelTopic(docxDocument, "3.Results of remote sensing monitoring of vegetation health");
 | 
			
		||||
        //获取ProductCode1的集合
 | 
			
		||||
        List<String> Heal_code1=new ArrayList<>();
 | 
			
		||||
        List<VegetationHealth> vegetationHealths = vegetationHealthServices.sqlInfo(zone, year);
 | 
			
		||||
        for (VegetationHealth vegetationHealth : vegetationHealths) {
 | 
			
		||||
            String productCode1 = vegetationHealth.getProductCode1();
 | 
			
		||||
            System.out.println(productCode1);
 | 
			
		||||
            Heal_code1.add(vegetationHealth.getProductCode1());
 | 
			
		||||
        }
 | 
			
		||||
        for(int i = 0; i <Heal_code1.size(); i=i+2) {
 | 
			
		||||
 | 
			
		||||
            List<VegetationHealth> vegetationHealths_M = vegetationHealthServices.sqlSeeding(zone, Heal_code1.get((i+1)), year);
 | 
			
		||||
            for (VegetationHealth vegetationHealth_m : vegetationHealths_M) {
 | 
			
		||||
                //第三段的内容
 | 
			
		||||
                //第三段的第一个小标题
 | 
			
		||||
                BarChart.createSecondLevelTopic(docxDocument, "3."+(i+1)+".Monitoring results of medium resolution data");
 | 
			
		||||
                //第三段的第一个小标题的内容
 | 
			
		||||
                BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\2.png");
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Spatial distribution data of vegetation planting area");
 | 
			
		||||
                BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\1.png");
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Spatial distribution data of vegetation health status");
 | 
			
		||||
                //插入柱状图表
 | 
			
		||||
                String[] xAxisData = new String[]{"Health", "Normal", "Not-Health"};
 | 
			
		||||
                Double m1 = vegetationHealth_m.getHealthy();
 | 
			
		||||
                Double m2 = vegetationHealth_m.getNormal();
 | 
			
		||||
                Double m3 = vegetationHealth_m.getNotHealthy();
 | 
			
		||||
                Double[] yAxisData = new Double[]{m1, m2, m3};
 | 
			
		||||
                BarChart.drawTable(docxDocument,xAxisData,yAxisData);
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Statistical data on vegetation health");
 | 
			
		||||
                BarChart.createParagraphAndInsertWord(docxDocument, ""+BarChart.changeDate(vegetationHealth_m.getImageDate())+". Based on the monitoring results of high resolution satellite images, the area of healthy vegetation growth in "+vegetationHealth_m.getZone()+" region was "+vegetationHealth_m.getHealthy()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_m.getHealthy()/vegetationHealth_m.getTotalArea())*100)+"%. The area with normal vegetation growth was "+vegetationHealth_m.getNormal()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_m.getNormal()/vegetationHealth_m.getTotalArea())*100)+"%. The area of unhealthy vegetation growth was "+vegetationHealth_m.getNotHealthy()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_m.getNotHealthy()/vegetationHealth_m.getTotalArea())*100)+"%.");
 | 
			
		||||
            }
 | 
			
		||||
            //第三段的第二个小标题
 | 
			
		||||
            List<VegetationHealth> vegetationHealths_H = vegetationHealthServices.sqlSeeding(zone, Heal_code1.get(i), year);
 | 
			
		||||
            int j=i+2;
 | 
			
		||||
            for (VegetationHealth vegetationHealth_h : vegetationHealths_H) {
 | 
			
		||||
                //第三段的第二个小标题
 | 
			
		||||
                BarChart.createSecondLevelTopic(docxDocument, "3."+j+".Monitoring results of high resolution data");
 | 
			
		||||
                //第三段的第二个小标题的内容
 | 
			
		||||
                BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\1.png");
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Spatial distribution data of vegetation planting area");
 | 
			
		||||
                BarChart.insertPic(docxDocument, "C:\\Users\\xkrs\\Desktop\\pic\\2.png");
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Spatial distribution data of vegetation health status");
 | 
			
		||||
                //此处插入图表
 | 
			
		||||
                String[] xAxisData1 = new String[]{"Health", "Normal", "Not-Health"};
 | 
			
		||||
                Double h1 = vegetationHealth_h.getHealthy();
 | 
			
		||||
                Double h2 = vegetationHealth_h.getNormal();
 | 
			
		||||
                Double h3 = vegetationHealth_h.getNotHealthy();
 | 
			
		||||
                Double[] yAxisData1 = new Double[]{h1, h2, h3};
 | 
			
		||||
                BarChart.drawTable(docxDocument,xAxisData1,yAxisData1);
 | 
			
		||||
                BarChart.setPicTitle(docxDocument, "Statistical data on vegetation health");
 | 
			
		||||
                BarChart.createParagraphAndInsertWord(docxDocument, ""+BarChart.changeDate(vegetationHealth_h.getImageDate())+". Based on the monitoring results of high resolution satellite images, the area of healthy vegetation growth in "+vegetationHealth_h.getZone()+" region was "+vegetationHealth_h.getHealthy()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_h.getHealthy()/vegetationHealth_h.getTotalArea())*100)+"%. The area with normal vegetation growth was "+vegetationHealth_h.getNormal()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_h.getNormal()/vegetationHealth_h.getTotalArea())*100)+"%. The area of unhealthy vegetation growth was "+vegetationHealth_h.getNotHealthy()+" hm², accounting for "+BarChart.getDoubleNumber((vegetationHealth_h.getNotHealthy()/vegetationHealth_h.getTotalArea())*100)+"%.");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        //第四个标题
 | 
			
		||||
        List<PlantingSuitability> plantingSuitabilities = plantingSuitabilityService.sqlSeeding(zone);
 | 
			
		||||
        for (PlantingSuitability suitability : plantingSuitabilities) {
 | 
			
		||||
            BarChart.createFirstLevelTopic(docxDocument,"4.Results of remote sensing monitoring of planting suitability");
 | 
			
		||||
            //第四个标题的内容
 | 
			
		||||
            BarChart.insertPic(docxDocument,"C:\\Users\\xkrs\\Desktop\\pic\\1.png");
 | 
			
		||||
            BarChart.setPicTitle(docxDocument,"Spatial distribution data of planting suitability");
 | 
			
		||||
            //此处插入图表
 | 
			
		||||
            String[] xAxisData2 = new String[]{"Health", "Normal", "Not-Health"};
 | 
			
		||||
            Double s1 = suitability.getVerySuitable();
 | 
			
		||||
            Double s2 = suitability.getSuitable();
 | 
			
		||||
            Double s3 = suitability.getNotSuitable();
 | 
			
		||||
            Double[] yAxisData2 = new Double[]{s1, s2, s3};
 | 
			
		||||
            BarChart.drawTable(docxDocument,xAxisData2,yAxisData2);
 | 
			
		||||
            BarChart.setPicTitle(docxDocument,"Spatial distribution data of planting suitability");
 | 
			
		||||
            BarChart.createParagraphAndInsertWord(docxDocument,"In "+suitability.getZone()+" region, the area of very suitable region was "+suitability.getVerySuitable()+" hm², accounting for "+BarChart.getDoubleNumber((suitability.getVerySuitable()/suitability.getTotalArea())*100)+"%. The area of suitable grade was "+suitability.getSuitable()+" hm², accounting for "+BarChart.getDoubleNumber((suitability.getSuitable()/suitability.getTotalArea())*100)+"%. The area of unsuitable area was "+suitability.getNotSuitable()+" hm², accounting for "+BarChart.getDoubleNumber((suitability.getNotSuitable()/suitability.getTotalArea())*100)+"%.");
 | 
			
		||||
        }
 | 
			
		||||
        response.setCharacterEncoding("UTF-8");
 | 
			
		||||
        response.setContentType("application/msword");
 | 
			
		||||
        //文件名
 | 
			
		||||
        String fileName = "Evaluation report of planting monitoring in ITBA Nature Reserve - V2.0.docx";
 | 
			
		||||
        response.setHeader("Content-Disposition","attachment;fileName="+new String(fileName.getBytes("UTF-8"), "ISO-8859-1"));
 | 
			
		||||
        ServletOutputStream responseOutputStream = response.getOutputStream();
 | 
			
		||||
        docxDocument.write(responseOutputStream);
 | 
			
		||||
        responseOutputStream.flush();
 | 
			
		||||
        responseOutputStream.close();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user