package com.se.simu.service.Impl; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonFormat; import com.se.simu.config.PropertiesConfig; import com.se.simu.domain.po.DataPo; import com.se.simu.domain.po.SimuPo; import com.se.simu.helper.StringHelper; import com.se.simu.service.ResultService; import com.se.simu.service.SwwFilesDealService; import com.se.simu.service.UwService; import io.swagger.annotations.ApiModelProperty; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.File; import java.util.Date; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Slf4j @Service public class SwwFilesDealServiceImpl implements SwwFilesDealService { @Resource private PropertiesConfig config; @Resource private UwService uwService; @Resource private ResultService resultService; @Override public Object readSwwFile(String filePath) { DataPo dataPo = new DataPo(); dataPo.setPid(0); dataPo.setName("处理sww文件"); dataPo.setInPath("H:\\simu\\semout\\testsem\\.out\\testsem.sww"); dataPo.setOutPath("H:\\simu\\semout\\testsem\\.out"); String json_data = "{\"pid\":0,\"name\":\"20241213135203\",\"inPath\":\"20241213135203\",\"outPath\":\"20241213135203\",\"startTime\":1727661600000,\"minx\":116.64388473935195,\"miny\":39.884315914604464,\"maxx\":116.64754729082588,\"maxy\":39.887069143903496,\"total\":50,\"duration\":60,\"floodStart\":60,\"floodEnd\":180,\"floodHeight\":1,\"floodType\":\"沙袋\",\"floodMinx\":116.64388473935195,\"floodMiny\":39.884315914604464,\"floodMaxx\":116.64754729082588,\"floodMaxy\":39.887069143903496,\"epsg\":4548}"; JSONObject jsonObject = JSON.parseObject(json_data); System.out.println("jsonObject = " + jsonObject); // // @ApiModelProperty("开始时间") // @JSONField(format = "yyyy-MM-dd HH:mm:ss") // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // private Date startTime; // // @ApiModelProperty("最小X") // private Double minx; // // @ApiModelProperty("最小Y") // private Double miny; // // @ApiModelProperty("最大X") // private Double maxx; // // @ApiModelProperty("最大Y") // private Double maxy; // // @ApiModelProperty("降雨量(mm)") // private Double total; // // @ApiModelProperty("时长(min)") // private Integer duration; // // @ApiModelProperty("是否为防汛(0-否,1-是)") // private Integer isFlood; // // @ApiModelProperty("防汛开始时间(秒)") // private Integer floodStart; // // @ApiModelProperty("防汛结束时间(秒)") // private Integer floodEnd; // // @ApiModelProperty("防汛高度(mm)") // private Double floodHeight; // // @ApiModelProperty("防汛类型(沙袋,防水板)") // private String floodType; // // @ApiModelProperty("防汛最小X") // private Double floodMinx; // // @ApiModelProperty("防汛最小Y") // private Double floodMiny; // // @ApiModelProperty("防汛最大X") // private Double floodMaxx; // // @ApiModelProperty("防汛最大Y") // private Double floodMaxy; // // @ApiModelProperty("坐标系ID") // private Integer epsg; // 读取sww文件 asyncCall(dataPo); return null; } private void asyncCall(DataPo dataPo) { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.execute(new Runnable() { @Override @SneakyThrows public void run() { copeDeal(dataPo); } }); executor.shutdown(); } private void copeDeal(DataPo data) { try { uwService.callExe(data); // uwService.copeWaterFiles(); // uwService.copeDrainFiles(data); uwService.copeSwwDrainFiles(data); // resultService.process(data); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } }