 段飞宇
					
					2 years ago
						段飞宇
					
					2 years ago
					
				
				 49 changed files with 3104 additions and 0 deletions
			
			
		| @ -0,0 +1,20 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project xmlns="http://maven.apache.org/POM/4.0.0" | ||||||
|  |          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||||
|  |          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||||
|  |     <modelVersion>4.0.0</modelVersion> | ||||||
|  |     <parent> | ||||||
|  |         <groupId>com.hnac.hzims</groupId> | ||||||
|  |         <artifactId>hzims-service-api</artifactId> | ||||||
|  |         <version>4.0.0-SNAPSHOT</version> | ||||||
|  |     </parent> | ||||||
|  | 
 | ||||||
|  |     <artifactId>water-rain-api</artifactId> | ||||||
|  | 
 | ||||||
|  |     <properties> | ||||||
|  |         <maven.compiler.source>8</maven.compiler.source> | ||||||
|  |         <maven.compiler.target>8</maven.compiler.target> | ||||||
|  |         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||||
|  |     </properties> | ||||||
|  | 
 | ||||||
|  | </project> | ||||||
| @ -0,0 +1,26 @@ | |||||||
|  | package com.hnac.hzims.waterrain.bo; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | 
 | ||||||
|  | public class StationResp { | ||||||
|  |     private StStbprpB stStbprpB; | ||||||
|  | 
 | ||||||
|  |     private Object obj; | ||||||
|  | 
 | ||||||
|  |     public StStbprpB getStStbprpB() { | ||||||
|  |         return stStbprpB; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setStStbprpB(StStbprpB stStbprpB) { | ||||||
|  |         this.stStbprpB = stStbprpB; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Object getObj() { | ||||||
|  |         return obj; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setObj(Object obj) { | ||||||
|  |         this.obj = obj; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class HzStPptnR implements Serializable { | ||||||
|  |     private String stcd; | ||||||
|  |     private Date tm; | ||||||
|  |     private Double drp; | ||||||
|  | } | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class HzStRiverR implements Serializable { | ||||||
|  |     private String stcd; | ||||||
|  |     private Date tm; | ||||||
|  |     private Double z; | ||||||
|  |     private Double q; | ||||||
|  | } | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class HzStRsvrR implements Serializable { | ||||||
|  |     private String stcd;//测站编码
 | ||||||
|  |     private Date tm;//时间
 | ||||||
|  |     private Double rz; //水位
 | ||||||
|  |     private Double inq;//流量
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class ReorganizeData { | ||||||
|  |     private String yearMonth; | ||||||
|  |     private String stcd; | ||||||
|  |     private String sttp; | ||||||
|  |     private List<Map<String,Object>> data; | ||||||
|  | } | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class ReorganizeLog implements Serializable { | ||||||
|  |     private String stcd; | ||||||
|  |     private String yearMonth; | ||||||
|  |     private String operateUser; | ||||||
|  |     private String checkUser; | ||||||
|  | } | ||||||
| @ -0,0 +1,74 @@ | |||||||
|  | package com.hnac.hzims.waterrain.entity; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.annotation.TableName; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  | import org.springblade.core.mp.base.BaseEntity; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 水雨情测站信息表 | ||||||
|  |  */ | ||||||
|  | @Data | ||||||
|  | @TableName("st_stbprp_b") | ||||||
|  | public class StStbprpB extends BaseEntity { | ||||||
|  |     @ApiModelProperty("机构id") | ||||||
|  |     private String orgId; | ||||||
|  |     @ApiModelProperty("河流id") | ||||||
|  |     private String rvid; | ||||||
|  |     @ApiModelProperty("水系id") | ||||||
|  |     private String hnid; | ||||||
|  |     @ApiModelProperty("流域id") | ||||||
|  |     private String bsid; | ||||||
|  |     @ApiModelProperty("测站编码") | ||||||
|  |     private String stcd; | ||||||
|  |     @ApiModelProperty("测站名称") | ||||||
|  |     private String stnm; | ||||||
|  |     @ApiModelProperty("河流名称") | ||||||
|  |     private String rvnm; | ||||||
|  |     @ApiModelProperty("水系名称") | ||||||
|  |     private String hnnm; | ||||||
|  |     @ApiModelProperty("流域名称") | ||||||
|  |     private String bsnm; | ||||||
|  |     @ApiModelProperty("经度(度分秒)") | ||||||
|  |     private String lgtd; | ||||||
|  |     @ApiModelProperty("纬度(度分秒)") | ||||||
|  |     private String lttd; | ||||||
|  |     @ApiModelProperty("站址") | ||||||
|  |     private String stlc; | ||||||
|  |     @ApiModelProperty("行政区划码") | ||||||
|  |     private String addvcd; | ||||||
|  |     @ApiModelProperty("基面修正基值") | ||||||
|  |     private Double mdbz; | ||||||
|  |     @ApiModelProperty("基面修正参数") | ||||||
|  |     private Double mdpr; | ||||||
|  |     @ApiModelProperty("基面名称") | ||||||
|  |     private String dtmnm; | ||||||
|  |     @ApiModelProperty("基面高程") | ||||||
|  |     private Double dtmel; | ||||||
|  |     @ApiModelProperty("站类") | ||||||
|  |     private String sttp; | ||||||
|  |     @ApiModelProperty("拍报段次") | ||||||
|  |     private Double dfrtms; | ||||||
|  |     @ApiModelProperty("拍报项目") | ||||||
|  |     private String fritm; | ||||||
|  |     @ApiModelProperty("报讯等级") | ||||||
|  |     private String frgrd; | ||||||
|  |     @ApiModelProperty("始报年月") | ||||||
|  |     private String bgfrym; | ||||||
|  |     @ApiModelProperty("截报年月") | ||||||
|  |     private String edfrym; | ||||||
|  |     @ApiModelProperty("管理机构") | ||||||
|  |     private String admauth; | ||||||
|  |     @ApiModelProperty("测站岸别") | ||||||
|  |     private String stbk; | ||||||
|  |     @ApiModelProperty("集水面积") | ||||||
|  |     private Double drna; | ||||||
|  |     @ApiModelProperty("拼音码") | ||||||
|  |     private String phcd; | ||||||
|  |     @ApiModelProperty("数值经度") | ||||||
|  |     private Double nlgtd; | ||||||
|  |     @ApiModelProperty("数值纬度") | ||||||
|  |     private Double nlttd; | ||||||
|  |     @ApiModelProperty("水库编码") | ||||||
|  |     private String rscd; | ||||||
|  | } | ||||||
| @ -0,0 +1,35 @@ | |||||||
|  | package com.hnac.hzims.waterrain.enums; | ||||||
|  | 
 | ||||||
|  | public enum HistoryDataCalcTypeEnum { | ||||||
|  |     ZERO(0,"整点值/最早值"), | ||||||
|  |     ONE(1,"最大值"), | ||||||
|  |     TWO(2,"最小值"), | ||||||
|  |     THREE(3,"平均值"), | ||||||
|  |     FOUR(4,"累计值/和值"), | ||||||
|  |     FIVE(5,"变化值/差值"), | ||||||
|  |     SIX(6,"最新值"); | ||||||
|  | 
 | ||||||
|  |     Integer strategy; | ||||||
|  |     String desc; | ||||||
|  | 
 | ||||||
|  |     HistoryDataCalcTypeEnum(Integer strategy, String desc){ | ||||||
|  |         this.strategy = strategy; | ||||||
|  |         this.desc = desc; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Integer getStrategy() { | ||||||
|  |         return strategy; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setStrategy(Integer strategy) { | ||||||
|  |         this.strategy = strategy; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getDesc() { | ||||||
|  |         return desc; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDesc(String desc) { | ||||||
|  |         this.desc = desc; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,35 @@ | |||||||
|  | package com.hnac.hzims.waterrain.enums; | ||||||
|  | 
 | ||||||
|  | public enum WaterFlowRainEnum { | ||||||
|  |     RR("RR","水库水文站"), | ||||||
|  |     ZZ("ZZ","河道水位站"), | ||||||
|  |     ZQ("ZQ","河道水文站"), | ||||||
|  |     PP("PP","雨量站"), | ||||||
|  | 
 | ||||||
|  |     LEVEL("level","水位"), | ||||||
|  |     FLOW("flow","流量"), | ||||||
|  |     RAIN("rain","降水"); | ||||||
|  |     private String code; | ||||||
|  |     private String name; | ||||||
|  | 
 | ||||||
|  |     WaterFlowRainEnum(String code,String name){ | ||||||
|  |         this.code=code; | ||||||
|  |         this.name=name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getCode() { | ||||||
|  |         return code; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setCode(String code) { | ||||||
|  |         this.code = code; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getName() { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setName(String name) { | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,28 @@ | |||||||
|  | package com.hnac.hzims.waterrain.feign; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import org.springframework.cloud.openfeign.FeignClient; | ||||||
|  | import org.springframework.web.bind.annotation.GetMapping; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | @FeignClient( | ||||||
|  |         value = "water-rain-monitor", | ||||||
|  |         url = "${feign.water-rain-monitor:}" | ||||||
|  | ) | ||||||
|  | public interface IStStbprpBClient { | ||||||
|  |     String API_PREFIX = "/stStbprpBClient"; | ||||||
|  |     String DETAIL = API_PREFIX + "/detail"; | ||||||
|  |     String LIST = API_PREFIX + "/list"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取测站详情 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @GetMapping(DETAIL) | ||||||
|  |     StStbprpB detail(LambdaQueryWrapper wrapper); | ||||||
|  | 
 | ||||||
|  |     @GetMapping(LIST) | ||||||
|  |     List<StStbprpB> list(LambdaQueryWrapper wrapper); | ||||||
|  | } | ||||||
| @ -0,0 +1,19 @@ | |||||||
|  | package com.hnac.hzims.waterrain.feign; | ||||||
|  | 
 | ||||||
|  | import org.springframework.cloud.openfeign.FeignClient; | ||||||
|  | import org.springframework.web.bind.annotation.GetMapping; | ||||||
|  | 
 | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @FeignClient( | ||||||
|  |         value = "water-rain-monitor", | ||||||
|  |         url = "${feign.water-rain-monitor:}" | ||||||
|  | ) | ||||||
|  | public interface IStStbprpBDataClient { | ||||||
|  |     String API_PREFIX = "/stStbprpBDataClient"; | ||||||
|  |     String QUERYMAXORMIN = API_PREFIX + "/queryMaxOrMin"; | ||||||
|  | 
 | ||||||
|  |     @GetMapping(QUERYMAXORMIN) | ||||||
|  |     Map<String, String> queryMaxOrMin(String deviceCode, Date startTime, Date endTime, Integer calcType,Integer saveTimeType,Integer timeInterval, String col); | ||||||
|  | } | ||||||
| @ -0,0 +1,9 @@ | |||||||
|  | package com.hnac.hzims.waterrain.vo; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class StStbprpBVo extends StStbprpB { | ||||||
|  |     private String sttpName; | ||||||
|  | } | ||||||
| @ -0,0 +1,77 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project xmlns="http://maven.apache.org/POM/4.0.0" | ||||||
|  |          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||||
|  |          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||||
|  |     <modelVersion>4.0.0</modelVersion> | ||||||
|  |     <parent> | ||||||
|  |         <groupId>com.hnac.hzims</groupId> | ||||||
|  |         <artifactId>hzims-service</artifactId> | ||||||
|  |         <version>4.0.0-SNAPSHOT</version> | ||||||
|  |     </parent> | ||||||
|  | 
 | ||||||
|  |     <artifactId>water-rain</artifactId> | ||||||
|  | 
 | ||||||
|  |     <properties> | ||||||
|  |         <maven.compiler.source>8</maven.compiler.source> | ||||||
|  |         <maven.compiler.target>8</maven.compiler.target> | ||||||
|  |         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||||
|  |     </properties> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <dependencies> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-core-boot</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-starter-swagger</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-starter-oss-all</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>com.baomidou</groupId> | ||||||
|  |             <artifactId>dynamic-datasource-spring-boot-starter</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-core-test</artifactId> | ||||||
|  |             <scope>test</scope> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-core-auto</artifactId> | ||||||
|  |             <scope>compile</scope> | ||||||
|  |         </dependency> | ||||||
|  | 
 | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>com.hnac.hzims</groupId> | ||||||
|  |             <artifactId>water-rain-api</artifactId> | ||||||
|  |             <version>${hzims.project.version}</version> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>com.alibaba</groupId> | ||||||
|  |             <artifactId>easyexcel</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-core-boot</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.springblade</groupId> | ||||||
|  |             <artifactId>blade-common</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>com.hnac.hzinfo.data</groupId> | ||||||
|  |             <artifactId>hzinfo-data-sdk</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>com.hnac.hzims</groupId> | ||||||
|  |             <artifactId>common-api</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |     </dependencies> | ||||||
|  | 
 | ||||||
|  | </project> | ||||||
| @ -0,0 +1,29 @@ | |||||||
|  | package com.hnac.hzims.waterrain; | ||||||
|  | 
 | ||||||
|  | import org.mybatis.spring.annotation.MapperScan; | ||||||
|  | import org.springblade.core.cloud.feign.EnableBladeFeign; | ||||||
|  | import org.springblade.core.launch.BladeApplication; | ||||||
|  | import org.springframework.boot.builder.SpringApplicationBuilder; | ||||||
|  | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; | ||||||
|  | import org.springframework.cloud.client.SpringCloudApplication; | ||||||
|  | import org.springframework.context.annotation.ComponentScan; | ||||||
|  | import org.springframework.scheduling.annotation.EnableScheduling; | ||||||
|  | 
 | ||||||
|  | //水雨情模块
 | ||||||
|  | @EnableBladeFeign(basePackages = {"org.springblade","com.hnac"}) | ||||||
|  | @SpringCloudApplication | ||||||
|  | @MapperScan("com.hnac.hzims.**.mapper.**") | ||||||
|  | @EnableScheduling | ||||||
|  | @ComponentScan(basePackages = {"com.hnac.hzims.*"}) | ||||||
|  | public class WaterRainApplication extends SpringBootServletInitializer { | ||||||
|  |     public final static String APP_NAME = "water-rain"; | ||||||
|  | 
 | ||||||
|  |     public static void main(String[] args) { | ||||||
|  |         BladeApplication.run(APP_NAME, WaterRainApplication.class, args); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { | ||||||
|  |         return BladeApplication.createSpringApplicationBuilder(builder, APP_NAME, WaterRainApplication.class); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,51 @@ | |||||||
|  | package com.hnac.hzims.waterrain.controller; | ||||||
|  | 
 | ||||||
|  | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; | ||||||
|  | import io.swagger.annotations.Api; | ||||||
|  | import io.swagger.annotations.ApiImplicitParam; | ||||||
|  | import io.swagger.annotations.ApiImplicitParams; | ||||||
|  | import io.swagger.annotations.ApiOperation; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import org.springblade.core.secure.utils.AuthUtil; | ||||||
|  | import org.springblade.core.tool.api.R; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeLog; | ||||||
|  | import com.hnac.hzims.waterrain.service.IReorganizeLogService; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.web.bind.annotation.GetMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RestController; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/waterRain/reorganizeLog") | ||||||
|  | @AllArgsConstructor | ||||||
|  | @Api(value = "整编日志", tags = "整编日志接口") | ||||||
|  | public class ReorganizeLogController { | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     IReorganizeLogService reorganizeLogService; | ||||||
|  | 
 | ||||||
|  |     @GetMapping("/detail") | ||||||
|  |     @ApiImplicitParams({ | ||||||
|  |             @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "yearMonth", value = "年月", paramType = "query", dataType = "string") | ||||||
|  |     }) | ||||||
|  |     @ApiOperationSupport(order = 1) | ||||||
|  |     @ApiOperation(value = "详情", notes = "传入stcd+yearMonth") | ||||||
|  |     public R<ReorganizeLog> detail(String stcd,String yearMonth) { | ||||||
|  |         ReorganizeLog reorganizeLog = reorganizeLogService.queryReorganizeLog(stcd, yearMonth); | ||||||
|  |         return R.data(reorganizeLog); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @GetMapping("/check") | ||||||
|  |     @ApiImplicitParams({ | ||||||
|  |             @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "yearMonth", value = "年月", paramType = "query", dataType = "string") | ||||||
|  |     }) | ||||||
|  |     @ApiOperationSupport(order = 1) | ||||||
|  |     @ApiOperation(value = "校核", notes = "传入stcd+yearMonth") | ||||||
|  |     public R<Boolean> check(String stcd,String yearMonth) { | ||||||
|  |         boolean flag = reorganizeLogService.check(stcd, yearMonth, AuthUtil.getUserName()); | ||||||
|  |         return R.data(flag,"校核成功"); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,151 @@ | |||||||
|  | package com.hnac.hzims.waterrain.controller; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; | ||||||
|  | import io.swagger.annotations.*; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import org.springblade.common.cache.CacheNames; | ||||||
|  | import org.springblade.core.boot.ctrl.BladeController; | ||||||
|  | import org.springblade.core.mp.support.Condition; | ||||||
|  | import org.springblade.core.mp.support.Query; | ||||||
|  | import org.springblade.core.tool.api.R; | ||||||
|  | import org.springblade.core.tool.utils.Func; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBService; | ||||||
|  | import com.hnac.hzims.waterrain.util.GisUtil; | ||||||
|  | import com.hnac.hzims.waterrain.util.ParamUtil; | ||||||
|  | import com.hnac.hzims.waterrain.vo.StStbprpBVo; | ||||||
|  | import com.hnac.hzims.waterrain.wrapper.StStbprpBWrapper; | ||||||
|  | import org.springframework.web.bind.annotation.*; | ||||||
|  | import springfox.documentation.annotations.ApiIgnore; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/waterRain/stStbprpB") | ||||||
|  | @AllArgsConstructor | ||||||
|  | @Api(value = "水雨情测站信息表", tags = "水雨情测站信息表接口") | ||||||
|  | public class StStbprpBController extends BladeController implements CacheNames { | ||||||
|  |     private final IStStbprpBService stStbprpBService; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 分页 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @GetMapping("/pageList") | ||||||
|  |     @ApiImplicitParams({ | ||||||
|  |             @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "stnm", value = "测站名称", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "rscd", value = "水库编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "sttp", value = "站类", paramType = "query", dataType = "string") | ||||||
|  |     }) | ||||||
|  |     @ApiOperationSupport(order = 1) | ||||||
|  |     @ApiOperation(value = "分页", notes = "传入StStbprpB") | ||||||
|  |     public R<IPage<StStbprpBVo>> pageList(@ApiIgnore @RequestParam Map<String, Object> param, Query query) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper= ParamUtil.conditionStStbprpB(param); | ||||||
|  |         IPage<StStbprpB> pages = stStbprpBService.page(Condition.getPage(query), wrapper); | ||||||
|  |         return R.data(StStbprpBWrapper.build().pageVO(pages)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 列表 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @GetMapping("/list") | ||||||
|  |     @ApiImplicitParams({ | ||||||
|  |             @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "stnm", value = "测站名称", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "rscd", value = "水库编码", paramType = "query", dataType = "string"), | ||||||
|  |             @ApiImplicitParam(name = "sttp", value = "站类", paramType = "query", dataType = "string") | ||||||
|  |     }) | ||||||
|  |     @ApiOperationSupport(order = 2) | ||||||
|  |     @ApiOperation(value = "列表", notes = "传入StStbprpB") | ||||||
|  |     public R<List<StStbprpBVo>> list(@ApiIgnore @RequestParam Map<String, Object> param) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=ParamUtil.conditionStStbprpB(param); | ||||||
|  |         List<StStbprpB> list = stStbprpBService.list(wrapper); | ||||||
|  |         return R.data(StStbprpBWrapper.build().listVO(list)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 详情 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @GetMapping("/detail") | ||||||
|  |     @ApiOperationSupport(order = 3) | ||||||
|  |     @ApiOperation(value = "详情", notes = "传入StStbprpB") | ||||||
|  |     public R<StStbprpBVo> detail(StStbprpB stStbprpB) { | ||||||
|  |         StStbprpB detail = stStbprpBService.getOne(Condition.getQueryWrapper(stStbprpB)); | ||||||
|  |         return R.data(StStbprpBWrapper.build().entityVO(detail)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 新增 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @PostMapping("/save") | ||||||
|  |     @ApiOperationSupport(order = 4) | ||||||
|  |     @ApiOperation(value = "新增", notes = "传入stStbprpB") | ||||||
|  |     public R save(@RequestBody StStbprpB stStbprpB) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=new LambdaQueryWrapper(); | ||||||
|  |         wrapper.eq(StStbprpB::getIsDeleted,stStbprpB.getIsDeleted()); | ||||||
|  |         wrapper.eq(StStbprpB::getStcd,stStbprpB.getStcd()); | ||||||
|  |         List<StStbprpB> list = stStbprpBService.list(wrapper); | ||||||
|  |         if(list!=null && !list.isEmpty()){ | ||||||
|  |             return R.fail("测站编码已存在"); | ||||||
|  |         } | ||||||
|  |         wrapper=new LambdaQueryWrapper(); | ||||||
|  |         wrapper.eq(StStbprpB::getIsDeleted,stStbprpB.getIsDeleted()); | ||||||
|  |         wrapper.eq(StStbprpB::getStnm,stStbprpB.getStnm()); | ||||||
|  |         list = stStbprpBService.list(wrapper); | ||||||
|  |         if(list!=null && !list.isEmpty()){ | ||||||
|  |             return R.fail("测站名称已存在"); | ||||||
|  |         } | ||||||
|  |         //将经纬度转为度分秒
 | ||||||
|  |         GisUtil.dealGisData(stStbprpB); | ||||||
|  |         return R.status(stStbprpBService.save(stStbprpB)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 修改 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @PostMapping("/update") | ||||||
|  |     @ApiOperationSupport(order = 5) | ||||||
|  |     @ApiOperation(value = "修改", notes = "传入StStbprpB") | ||||||
|  |     public R update(@RequestBody StStbprpB stStbprpB) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=new LambdaQueryWrapper(); | ||||||
|  |         wrapper.eq(StStbprpB::getStcd,stStbprpB.getStcd()); | ||||||
|  |         wrapper.eq(StStbprpB::getIsDeleted,stStbprpB.getIsDeleted()); | ||||||
|  |         wrapper.ne(StStbprpB::getId,stStbprpB.getId()); | ||||||
|  |         List<StStbprpB> list = stStbprpBService.list(wrapper); | ||||||
|  |         if(list!=null && !list.isEmpty()){ | ||||||
|  |             return R.fail("测站编码已存在"); | ||||||
|  |         } | ||||||
|  |         wrapper=new LambdaQueryWrapper(); | ||||||
|  |         wrapper.eq(StStbprpB::getIsDeleted,stStbprpB.getIsDeleted()); | ||||||
|  |         wrapper.eq(StStbprpB::getStnm,stStbprpB.getStnm()); | ||||||
|  |         wrapper.ne(StStbprpB::getId,stStbprpB.getId()); | ||||||
|  |         list = stStbprpBService.list(wrapper); | ||||||
|  |         if(list!=null && !list.isEmpty()){ | ||||||
|  |             return R.fail("测站名称已存在"); | ||||||
|  |         } | ||||||
|  |         //将经纬度转为度分秒
 | ||||||
|  |         GisUtil.dealGisData(stStbprpB); | ||||||
|  |         return R.status(stStbprpBService.updateById(stStbprpB)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 删除 | ||||||
|  |      */ | ||||||
|  |     @PostMapping("/remove") | ||||||
|  |     @ApiOperationSupport(order = 6) | ||||||
|  |     @ApiOperation(value = "逻辑删除", notes = "ids") | ||||||
|  |     public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { | ||||||
|  |         boolean temp = stStbprpBService.deleteLogic(Func.toLongList(ids)); | ||||||
|  |         return R.status(temp); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,163 @@ | |||||||
|  | package com.hnac.hzims.waterrain.controller; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.hnac.hzims.cache.CaffeineCacheUtil; | ||||||
|  | import com.hnac.hzims.entity.Report; | ||||||
|  | import com.hnac.hzims.entity.YearReport; | ||||||
|  | import com.hnac.hzims.util.CommonUtil; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; | ||||||
|  | import io.swagger.annotations.Api; | ||||||
|  | import io.swagger.annotations.ApiOperation; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import org.apache.commons.lang3.StringUtils; | ||||||
|  | import org.springblade.common.cache.CacheNames; | ||||||
|  | import org.springblade.core.boot.ctrl.BladeController; | ||||||
|  | import org.springblade.core.mp.support.Condition; | ||||||
|  | import org.springblade.core.mp.support.Query; | ||||||
|  | import org.springblade.core.secure.utils.AuthUtil; | ||||||
|  | import org.springblade.core.tool.api.R; | ||||||
|  | import com.hnac.hzims.waterrain.bo.StationResp; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBDataService; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMethod; | ||||||
|  | import org.springframework.web.bind.annotation.RequestParam; | ||||||
|  | import org.springframework.web.bind.annotation.RestController; | ||||||
|  | 
 | ||||||
|  | import java.util.Arrays; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/waterRain/stStbprpBData") | ||||||
|  | @AllArgsConstructor | ||||||
|  | @Api(value = "水雨情测站数据", tags = "水雨情测站数据接口") | ||||||
|  | public class StStbprpBDataController extends BladeController implements CacheNames { | ||||||
|  |     private final IStStbprpBDataService stStbprpBDataService; | ||||||
|  | 
 | ||||||
|  |     //获取实时数据
 | ||||||
|  |     @ApiOperation("实时数据") | ||||||
|  |     @RequestMapping(value = "getRealData", method = RequestMethod.GET) | ||||||
|  |     public R getRealData(String stcd) { | ||||||
|  |         List<FieldsData> realData = stStbprpBDataService.getRealData(stcd); | ||||||
|  |         return R.data(realData,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("根据测站查询历史数据") | ||||||
|  |     @RequestMapping(value = "getDataByHour", method = RequestMethod.GET) | ||||||
|  |     public R getDataByHour(String stcd,String yearMonth) { | ||||||
|  |         List<Map<String,Object>> yearReport = stStbprpBDataService.getDataByHour(stcd,yearMonth); | ||||||
|  |         return R.data(yearReport,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("表头列") | ||||||
|  |     @RequestMapping(value = "/getTableHead", method = RequestMethod.GET) | ||||||
|  |     public R getTableHead(String stcd) { | ||||||
|  |         //查询基础数据
 | ||||||
|  |         List<AnalyzeInstanceFieldVO> report = stStbprpBDataService.getSignages(stcd); | ||||||
|  |         return R.data(report,"查询成功"); | ||||||
|  |     } | ||||||
|  |     /** | ||||||
|  |      * 获取某站点年度统计报表 | ||||||
|  |      * | ||||||
|  |      * @param stcd 测站点 | ||||||
|  |      * @param year 统计年份 yyyy | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @ApiOperation("年度统计报表") | ||||||
|  |     @RequestMapping(value = "getYearReport", method = RequestMethod.GET) | ||||||
|  |     public R getYearReport(String stcd, Integer year,String sttp,String col) { | ||||||
|  |         String key=stcd+"_"+year+"_"+col; | ||||||
|  |         YearReport report =CaffeineCacheUtil.getYear(key); | ||||||
|  |         if(report!=null){ | ||||||
|  |             return R.data(report,"查询缓存成功"); | ||||||
|  |         } | ||||||
|  |         YearReport yearReport = stStbprpBDataService.getYearReport(stcd, year,sttp, col); | ||||||
|  |         CaffeineCacheUtil.addYear(key,yearReport); | ||||||
|  |         return R.data(yearReport,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("水量年度统计报表") | ||||||
|  |     @RequestMapping(value = "getWaterYearReport", method = RequestMethod.GET) | ||||||
|  |     public R getWaterYearReport(String stcd, Integer year,String sttp) { | ||||||
|  |         YearReport yearReport = stStbprpBDataService.getWaterYearReport(stcd, year,sttp); | ||||||
|  |         return R.data(yearReport,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("水量年度统计报表") | ||||||
|  |     @RequestMapping(value = "getRainYearReport", method = RequestMethod.GET) | ||||||
|  |     public R getRainYearReport(String stcd, Integer year,String sttp,String col) { | ||||||
|  |         YearReport yearReport = stStbprpBDataService.getRainYearReport(stcd, year,sttp,col); | ||||||
|  |         return R.data(yearReport,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("基础数据报表,数据查询和统计分析使用接口") | ||||||
|  |     @RequestMapping(value = "/getReportData", method = RequestMethod.GET) | ||||||
|  |     public R getReportData( | ||||||
|  |             String[] stcds, String beginSpt, String endSpt, String type,String sttp,String col) { | ||||||
|  |         Map<String,Date> res=CommonUtil.getStartEnd(beginSpt,endSpt); | ||||||
|  |         if(res == null){ | ||||||
|  |             return R.data(500,false, "日期格式错误"); | ||||||
|  |         } | ||||||
|  |         String key=stcds.toString()+"_"+beginSpt+"_"+endSpt+"_"+type+"_"+col; | ||||||
|  |         Report report = CaffeineCacheUtil.get(key); | ||||||
|  |         if(report!=null){ | ||||||
|  |             return R.data(report,"查询成功"); | ||||||
|  |         } | ||||||
|  |         //查询基础数据
 | ||||||
|  |         report = stStbprpBDataService | ||||||
|  |                 .getReportData(Arrays.asList(stcds), res.get("begin"), res.get("end"), type, sttp,col); | ||||||
|  |         CaffeineCacheUtil.add(key,report); | ||||||
|  |         return R.data(report,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("水量基础数据报表,数据查询和统计分析使用接口") | ||||||
|  |     @RequestMapping(value = "/getWaterReportData", method = RequestMethod.GET) | ||||||
|  |     public R getWaterReportData( | ||||||
|  |             String[] stcds, String beginSpt, String endSpt, String type,String sttp) { | ||||||
|  |         Map<String,Date> res= CommonUtil.getStartEnd(beginSpt,endSpt); | ||||||
|  |         if(res == null){ | ||||||
|  |             return R.data(500,false, "日期格式错误"); | ||||||
|  |         } | ||||||
|  |         //查询基础数据
 | ||||||
|  |         Report report = stStbprpBDataService | ||||||
|  |                 .getWaterReportData(Arrays.asList(stcds), res.get("begin"), res.get("end"), type, sttp); | ||||||
|  |         return R.data(report,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("app 水雨情接口") | ||||||
|  |     @RequestMapping(value = "page", method = RequestMethod.GET) | ||||||
|  |     public R page(String sttp,String name, Query page) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=new LambdaQueryWrapper(); | ||||||
|  |         if(StringUtils.isNotBlank(sttp)) { | ||||||
|  |             wrapper.in(StStbprpB::getSttp,sttp.split(",")); | ||||||
|  |         } | ||||||
|  |         if(StringUtils.isNotBlank(name)) { | ||||||
|  |             wrapper.like(StStbprpB::getStnm, name); | ||||||
|  |         } | ||||||
|  |         wrapper.like(StStbprpB::getCreateDept, AuthUtil.getDeptId()); | ||||||
|  |         IPage<StationResp> pageList = stStbprpBDataService.pageData(wrapper, Condition.getPage(page)); | ||||||
|  |         return R.data(pageList,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation("app 获取实时数据") | ||||||
|  |     @RequestMapping(value = "getLastValue", method = RequestMethod.GET) | ||||||
|  |     public R getLastValue(@RequestParam String stcd) { | ||||||
|  |         Object obj = stStbprpBDataService.getLastValue(stcd); | ||||||
|  |         return R.data(obj,"查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,145 @@ | |||||||
|  | package com.hnac.hzims.waterrain.controller; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.excel.EasyExcel; | ||||||
|  | import io.swagger.annotations.Api; | ||||||
|  | import io.swagger.annotations.ApiOperation; | ||||||
|  | import org.springblade.core.secure.utils.AuthUtil; | ||||||
|  | import org.springblade.core.tool.api.R; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeData; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeLog; | ||||||
|  | import com.hnac.hzims.waterrain.listener.UploadWaterFlowRainDataListener; | ||||||
|  | import com.hnac.hzims.waterrain.service.IReorganizeLogService; | ||||||
|  | import com.hnac.hzims.waterrain.service.IWaterRainReorganizeService; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.web.bind.annotation.RequestBody; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMethod; | ||||||
|  | import org.springframework.web.bind.annotation.RestController; | ||||||
|  | import org.springframework.web.multipart.MultipartFile; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/waterRain/reorganize") | ||||||
|  | @Api(tags = "水雨情数据整编接口") | ||||||
|  | public class WaterRainReorganizeController { | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     IWaterRainReorganizeService reorganizeDataService; | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     IReorganizeLogService reorganizeLogService; | ||||||
|  | 
 | ||||||
|  |     //批量新增
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation(value = "水雨情数据保存",notes = "水雨情数据保存") | ||||||
|  |     @RequestMapping(value = "/batchInsert", method = RequestMethod.POST) | ||||||
|  |     public R batchInsert(@RequestBody ReorganizeData data) { | ||||||
|  |         //判定是否已整编
 | ||||||
|  |         String stcd=data.getStcd(); | ||||||
|  |         String yearMonth=data.getYearMonth(); | ||||||
|  |         String sttp=data.getSttp(); | ||||||
|  |         boolean flag=reorganizeLogService.getReorganizeLog(stcd,yearMonth); | ||||||
|  |         if(flag){ | ||||||
|  |            return R.fail(data.getYearMonth()+"数据已整编"); | ||||||
|  |         } | ||||||
|  |         //删除数据,防止插入主键冲突
 | ||||||
|  |         reorganizeDataService.delData(stcd,sttp,yearMonth); | ||||||
|  |         flag=reorganizeDataService.batchInsert(data); | ||||||
|  |         if(flag){ | ||||||
|  |             ReorganizeLog reorganizeLog=new ReorganizeLog(); | ||||||
|  |             reorganizeLog.setStcd(stcd); | ||||||
|  |             reorganizeLog.setYearMonth(yearMonth); | ||||||
|  |             reorganizeLog.setOperateUser(AuthUtil.getUserName()); | ||||||
|  |             reorganizeLogService.insertReorganizeLog(reorganizeLog); | ||||||
|  |             return R.data("数据整编成功"); | ||||||
|  |         }else{ | ||||||
|  |             return R.fail(500,"数据整编失败"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //批量导入
 | ||||||
|  |     /** | ||||||
|  |      * @param file  excel文件 | ||||||
|  |      * @param sttp | ||||||
|  |      * @param stcd | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     @ApiOperation(value = "水雨情数据导入",notes = "水雨情数据导入") | ||||||
|  |     @RequestMapping(value = "/uploadWaterFlowRain", method = RequestMethod.POST) | ||||||
|  |     public R uploadReservoir(MultipartFile file, String sttp,String stcd,String yearMonth) { | ||||||
|  |         //判定是否已整编
 | ||||||
|  |         boolean flag=reorganizeLogService.getReorganizeLog(stcd,yearMonth); | ||||||
|  |         if(flag){ | ||||||
|  |             return R.data(yearMonth+"数据已整编"); | ||||||
|  |         } | ||||||
|  |         if(file == null){ | ||||||
|  |             return R.fail(500,"未上传文件"); | ||||||
|  |         } | ||||||
|  |         String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); | ||||||
|  |         if("xls".equals(suffix) || "xlsx".equals(suffix)){ | ||||||
|  |             try { | ||||||
|  |                 //删除数据,防止插入主键冲突
 | ||||||
|  |                 reorganizeDataService.delData(stcd, sttp, yearMonth); | ||||||
|  |                 List<String> errMessage=getMessage(file,sttp,stcd); | ||||||
|  |                 if (errMessage.isEmpty()) { | ||||||
|  |                     ReorganizeLog reorganizeLog=new ReorganizeLog(); | ||||||
|  |                     reorganizeLog.setStcd(stcd); | ||||||
|  |                     reorganizeLog.setYearMonth(yearMonth); | ||||||
|  |                     reorganizeLog.setOperateUser(AuthUtil.getUserName()); | ||||||
|  |                     reorganizeLogService.insertReorganizeLog(reorganizeLog); | ||||||
|  |                     return R.data(true,"导入成功"); | ||||||
|  |                 } else { | ||||||
|  |                     return R.data(500,errMessage,"导入失败,请查看具体详情"); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |             }catch (IOException e){ | ||||||
|  |                 return R.fail(500,"导入失败,文件流获取出错"); | ||||||
|  |             } | ||||||
|  |         }else{ | ||||||
|  |             return R.fail(500,"导入文件格式不对,请按模板文件格式来"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private List<String> getMessage(MultipartFile file, String sttp,String stcd) throws IOException { | ||||||
|  |         List<String> errMessage=new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |         UploadWaterFlowRainDataListener uploadDataListener = new UploadWaterFlowRainDataListener(reorganizeDataService,sttp,stcd,0); | ||||||
|  | 
 | ||||||
|  |         EasyExcel.read(file.getInputStream(), uploadDataListener).sheet().doReadSync(); | ||||||
|  | 
 | ||||||
|  |         errMessage.addAll(uploadDataListener.getErrMessage()); | ||||||
|  | 
 | ||||||
|  |         return errMessage; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @ApiOperation(value = "整编后数据查询",notes = "整编后数据查询") | ||||||
|  |     @RequestMapping(value = "/queryData", method = RequestMethod.GET) | ||||||
|  |     public R queryData(String stcd,String sttp,String yearMonth) { | ||||||
|  |         //判定是否已整编
 | ||||||
|  |         boolean flag=reorganizeLogService.getReorganizeLog(stcd,yearMonth); | ||||||
|  |         if(!flag){ | ||||||
|  |             return R.data(200,null,"数据未整编,无法查询到数据"); | ||||||
|  |         } | ||||||
|  |         List<Map<String,Object>> list=reorganizeDataService.queryData(stcd,sttp,yearMonth); | ||||||
|  |         return R.data(list,"数据查询成功"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //重新整编
 | ||||||
|  |     @ApiOperation(value = "重新整编",notes = "重新整编") | ||||||
|  |     @RequestMapping(value = "/afresh", method = RequestMethod.GET) | ||||||
|  |     public R afresh(String stcd,String yearMonth) { | ||||||
|  |         //删除整编日志
 | ||||||
|  |         reorganizeLogService.delReorganizeLog(stcd, yearMonth); | ||||||
|  |         return R.data(true,"可以重新整编了"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,26 @@ | |||||||
|  | package com.hnac.hzims.waterrain.feign; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBService; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.web.bind.annotation.RestController; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | public class StStbprpBClient implements IStStbprpBClient{ | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     private IStStbprpBService stStbprpBService; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public StStbprpB detail(LambdaQueryWrapper wrapper) { | ||||||
|  |         return stStbprpBService.getOne(wrapper); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<StStbprpB> list(LambdaQueryWrapper wrapper) { | ||||||
|  |         return stStbprpBService.list(wrapper); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | package com.hnac.hzims.waterrain.feign; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBDataService; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.web.bind.annotation.RestController; | ||||||
|  | 
 | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @RestController | ||||||
|  | public class StStbprpBDataClient implements IStStbprpBDataClient{ | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     IStStbprpBDataService stStbprpBDataService; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Map<String, String> queryMaxOrMin(String deviceCode, Date startTime, Date endTime, Integer calcType, Integer saveTimeType, Integer timeInterval, String col) { | ||||||
|  |         return stStbprpBDataService.queryMaxOrMin(deviceCode,startTime,endTime,calcType,col); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,336 @@ | |||||||
|  | package com.hnac.hzims.waterrain.listener; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.excel.context.AnalysisContext; | ||||||
|  | import com.alibaba.excel.event.AnalysisEventListener; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStPptnR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRiverR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRsvrR; | ||||||
|  | import com.hnac.hzims.waterrain.enums.WaterFlowRainEnum; | ||||||
|  | import com.hnac.hzims.waterrain.service.IWaterRainReorganizeService; | ||||||
|  | import org.apache.commons.lang3.StringUtils; | ||||||
|  | 
 | ||||||
|  | import java.text.ParseException; | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.*; | ||||||
|  | 
 | ||||||
|  | public class UploadWaterFlowRainDataListener extends AnalysisEventListener<Map<Integer,String>> { | ||||||
|  |     //每00条在invoke中执行一次,剩余的会在doAfterAllAnalysed中执行
 | ||||||
|  |     private static final int BATCH_COUNT = 200; | ||||||
|  |     private List<String> errMessage; | ||||||
|  |     //对应的测站类型
 | ||||||
|  |     private String sttp; | ||||||
|  |     //对应的测站编码
 | ||||||
|  |     private String stcd; | ||||||
|  |     //头部信息
 | ||||||
|  |     private List<String> head; | ||||||
|  | 
 | ||||||
|  |     //数据的起始列数(从0开始算)
 | ||||||
|  |     private int firstColumn; | ||||||
|  | 
 | ||||||
|  |     List<Map<Integer,String>> list = new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |     private IWaterRainReorganizeService waterRainReorganizeService;; | ||||||
|  | 
 | ||||||
|  |     public UploadWaterFlowRainDataListener(IWaterRainReorganizeService waterRainReorganizeService, String sttp, | ||||||
|  |                                            String stcd, int firstColumn) { | ||||||
|  |         this.waterRainReorganizeService = waterRainReorganizeService; | ||||||
|  |         this.sttp = sttp; | ||||||
|  |         this.stcd = stcd; | ||||||
|  |         this.firstColumn = firstColumn; | ||||||
|  |         errMessage = new ArrayList<>(); | ||||||
|  |         head = new ArrayList<>(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public String getSttp() { | ||||||
|  |         return sttp; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setSttp(String sttp) { | ||||||
|  |         this.sttp = sttp; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<String> getErrMessage() { | ||||||
|  |         return errMessage; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setErrMessage(List<String> errMessage) { | ||||||
|  |         this.errMessage = errMessage; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { | ||||||
|  |         for(int i=0;i<headMap.size();i++) { | ||||||
|  |             head.add(headMap.get(i)); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void invoke(Map<Integer,String> map, AnalysisContext analysisContext) { | ||||||
|  |         list.add(map); | ||||||
|  |         // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
 | ||||||
|  |         if (list.size() >= BATCH_COUNT) { | ||||||
|  |             saveData(); | ||||||
|  |             //  存储完成清理 list
 | ||||||
|  |             list.clear(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void doAfterAllAnalysed(AnalysisContext analysisContext) { | ||||||
|  |         if(!list.isEmpty()) { | ||||||
|  |             saveData(); | ||||||
|  |         } | ||||||
|  |         list.clear(); | ||||||
|  |         head.clear(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void saveData() { | ||||||
|  |         //逐条执行
 | ||||||
|  |         try { | ||||||
|  | //            dealData();
 | ||||||
|  |             //批量执行
 | ||||||
|  |               batchDealDataList(); | ||||||
|  |         } catch (ParseException e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void dealData() throws ParseException { | ||||||
|  |         Map<String,String> data=checkData(sttp); | ||||||
|  |         if ("true".equals(data.get("flag"))) { | ||||||
|  |             for (Map<Integer, String> map : list) { | ||||||
|  |                 //组装批量数据
 | ||||||
|  |                 saveEntity(map, sttp, stcd); | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             errMessage.add(data.get("msg")); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //批量执行
 | ||||||
|  |     private void batchDealDataList() throws ParseException { | ||||||
|  |         List<HzStPptnR> stPptnRList=new ArrayList<>(); | ||||||
|  |         List<HzStRiverR> stRiverRList=new ArrayList<>(); | ||||||
|  |         List<HzStRsvrR> stRsvrRList=new ArrayList<>(); | ||||||
|  |         Map<String,String> data=checkData(sttp); | ||||||
|  |         if ("true".equals(data.get("flag"))) { | ||||||
|  |             for (Map<Integer,String> map : list) { | ||||||
|  | 
 | ||||||
|  |                 //组装批量数据
 | ||||||
|  |                 Map<String,Object> res=getOneObj(map,sttp,stcd); | ||||||
|  |                 if(res!=null) { | ||||||
|  |                     if(WaterFlowRainEnum.PP.getCode().equals(sttp)) { | ||||||
|  |                         Object stPptnR = res.get(WaterFlowRainEnum.PP.getCode()); | ||||||
|  |                         stPptnRList.addAll((List<HzStPptnR>) stPptnR); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     if(WaterFlowRainEnum.ZZ.getCode().equals(sttp)) { | ||||||
|  |                         Object stRiverR = res.get(WaterFlowRainEnum.ZZ.getCode()); | ||||||
|  |                         stRiverRList.addAll((List<HzStRiverR>) stRiverR); | ||||||
|  |                         stRiverR = res.get(WaterFlowRainEnum.ZQ.getCode()); | ||||||
|  |                         stRiverRList.addAll((List<HzStRiverR>) stRiverR); | ||||||
|  |                     } | ||||||
|  |                     if(WaterFlowRainEnum.ZQ.getCode().equals(sttp)) { | ||||||
|  |                         Object stRiverR = res.get(WaterFlowRainEnum.ZQ.getCode()); | ||||||
|  |                         stRiverRList.addAll((List<HzStRiverR>) stRiverR); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     if(WaterFlowRainEnum.RR.getCode().equals(sttp)) { | ||||||
|  |                         Object stRsvrR = res.get(WaterFlowRainEnum.RR.getCode()); | ||||||
|  |                         stRsvrRList.addAll((List<HzStRsvrR>) stRsvrR); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             errMessage.add(data.get("msg")); | ||||||
|  |         } | ||||||
|  |         //批量插入
 | ||||||
|  |         if(stPptnRList!=null && !stPptnRList.isEmpty() ) {//雨量站
 | ||||||
|  |             waterRainReorganizeService.batchStPptnR(stPptnRList); | ||||||
|  |         } | ||||||
|  |         if(stRiverRList!=null && !stRiverRList.isEmpty()) {//河道水文、水位站
 | ||||||
|  |             waterRainReorganizeService.batchStRiverR(stRiverRList); | ||||||
|  |         } | ||||||
|  |         if(stRsvrRList!=null && !stRsvrRList.isEmpty()) {//水库水文站
 | ||||||
|  |             waterRainReorganizeService.batchStRsvrR(stRsvrRList); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private Map<String,Object> getOneObj(Map<Integer,String> map,String sttp,String stcd) throws ParseException { | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); | ||||||
|  |         Map<String,Object> res=new HashMap<>(); | ||||||
|  | 
 | ||||||
|  |             Date dd=sdf.parse(map.get(0)); | ||||||
|  | 
 | ||||||
|  |             if(WaterFlowRainEnum.RR.getCode().equals(sttp)){ | ||||||
|  |                 HzStRsvrR stRsvrR=new HzStRsvrR(); | ||||||
|  |                 stRsvrR.setStcd(stcd); | ||||||
|  |                 stRsvrR.setTm(dd); | ||||||
|  | 
 | ||||||
|  |                 String data=map.get(1); | ||||||
|  |                 stRsvrR.setRz(Double.valueOf(data)); | ||||||
|  | 
 | ||||||
|  |                 data=map.get(2); | ||||||
|  |                 stRsvrR.setInq(Double.valueOf(data)); | ||||||
|  | 
 | ||||||
|  |                 List<HzStRsvrR> dataRes=(List<HzStRsvrR>)res.get(sttp);; | ||||||
|  |                 if(dataRes==null || dataRes.isEmpty()) { | ||||||
|  |                     dataRes=new ArrayList<>(); | ||||||
|  |                 } | ||||||
|  |                 dataRes.add(stRsvrR); | ||||||
|  |                 res.put(sttp,dataRes); | ||||||
|  |             } | ||||||
|  |             if(WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)){ | ||||||
|  |                 HzStRiverR stRiverR=new HzStRiverR(); | ||||||
|  |                 stRiverR.setStcd(stcd); | ||||||
|  |                 stRiverR.setTm(dd); | ||||||
|  |                 String z=map.get(1); | ||||||
|  |                 stRiverR.setZ(Double.valueOf(z)); | ||||||
|  |                 String q=map.get(2); | ||||||
|  |                 stRiverR.setQ(Double.valueOf(q)); | ||||||
|  |                 List<HzStRiverR> dataRes=(List<HzStRiverR>)res.get(sttp); | ||||||
|  |                 if(dataRes==null || dataRes.isEmpty()) { | ||||||
|  |                     dataRes=new ArrayList<>(); | ||||||
|  |                 } | ||||||
|  |                 dataRes.add(stRiverR); | ||||||
|  |                 res.put(sttp,dataRes); | ||||||
|  |             } | ||||||
|  |             if(WaterFlowRainEnum.PP.getCode().equals(sttp)){ | ||||||
|  |                 HzStPptnR stPptnR=new HzStPptnR(); | ||||||
|  |                 String drp=map.get(1); | ||||||
|  |                 stPptnR.setStcd(stcd); | ||||||
|  |                 stPptnR.setTm(dd); | ||||||
|  |                 stPptnR.setDrp(Double.valueOf(drp)); | ||||||
|  |                 List<HzStPptnR> dataRes=null; | ||||||
|  |                 if(res.get(sttp)!=null) { | ||||||
|  |                     dataRes=(List<HzStPptnR>)res.get(sttp); | ||||||
|  |                     dataRes.add(stPptnR); | ||||||
|  |                 }else{ | ||||||
|  |                     dataRes=new ArrayList<>(); | ||||||
|  |                 } | ||||||
|  |                 res.put(sttp,dataRes); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         return res; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void saveEntity(Map<Integer,String> map,String sttp,String stcd) throws ParseException { | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); | ||||||
|  | 
 | ||||||
|  |         String dateStr=map.get(0); | ||||||
|  |         Date dd=sdf.parse(dateStr); | ||||||
|  | 
 | ||||||
|  |         if(WaterFlowRainEnum.RR.getCode().equals(sttp)){ | ||||||
|  |             HzStRsvrR stRsvrR=new HzStRsvrR(); | ||||||
|  |             stRsvrR.setStcd(stcd); | ||||||
|  |             stRsvrR.setTm(dd); | ||||||
|  |             String rz=map.get(1); | ||||||
|  |             stRsvrR.setRz(Double.valueOf(rz)); | ||||||
|  | 
 | ||||||
|  |             String inq=map.get(2); | ||||||
|  |             stRsvrR.setInq(Double.valueOf(inq)); | ||||||
|  | 
 | ||||||
|  |             waterRainReorganizeService.insertHzStRsvrR(stRsvrR); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)){ | ||||||
|  |             HzStRiverR stRiverR=new HzStRiverR(); | ||||||
|  |             stRiverR.setStcd(stcd); | ||||||
|  |             stRiverR.setTm(dd); | ||||||
|  |             String z=map.get(1); | ||||||
|  |             stRiverR.setZ(Double.valueOf(z)); | ||||||
|  |             String q=map.get(2); | ||||||
|  |             stRiverR.setQ(Double.valueOf(q)); | ||||||
|  | 
 | ||||||
|  |             waterRainReorganizeService.insertHzStRiverR(stRiverR); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.PP.getCode().equals(sttp)){//降雨
 | ||||||
|  |             HzStPptnR stPptnR=new HzStPptnR(); | ||||||
|  |             stPptnR.setStcd(stcd); | ||||||
|  |             stPptnR.setTm(dd); | ||||||
|  |             String drp=map.get(1); | ||||||
|  |             stPptnR.setDrp(Double.valueOf(drp)); | ||||||
|  | 
 | ||||||
|  |             waterRainReorganizeService.insertHzStPptnR(stPptnR); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //校核某一行的数据
 | ||||||
|  |     Map<String,String> checkData(String sttp) { | ||||||
|  |         Map<String, String> data = new HashMap<>(); | ||||||
|  |         String msg="请检查导入数据中"; | ||||||
|  |         for (Map<Integer,String> map : list) { | ||||||
|  |             String dateStr = map.get(0); | ||||||
|  | 
 | ||||||
|  |             String columnStr = ""; | ||||||
|  | 
 | ||||||
|  |             if (WaterFlowRainEnum.RR.getCode().equals(sttp)) { | ||||||
|  |                 String rz = map.get(1); | ||||||
|  |                 String inq = map.get(2); | ||||||
|  |                 if (StringUtils.isBlank(rz)) { | ||||||
|  |                     columnStr += dateStr + "的水位数据为空"; | ||||||
|  |                     if (StringUtils.isBlank(inq)) { | ||||||
|  |                         columnStr += ",流量数据为空"; | ||||||
|  |                         data.put("msg", msg + "," + columnStr); | ||||||
|  |                         data.put("flag", "false"); | ||||||
|  |                         return data; | ||||||
|  |                     } | ||||||
|  |                     data.put("msg", msg + "," + columnStr); | ||||||
|  |                     data.put("flag", "false"); | ||||||
|  |                     return data; | ||||||
|  |                 } else { | ||||||
|  |                     if (StringUtils.isBlank(inq)) { | ||||||
|  |                         columnStr += dateStr + "的流量数据为空"; | ||||||
|  |                         data.put("msg", msg + "," + columnStr); | ||||||
|  |                         data.put("flag", "false"); | ||||||
|  |                         return data; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)) { | ||||||
|  |                 String z = map.get(1); | ||||||
|  |                 String q = map.get(2); | ||||||
|  |                 if (StringUtils.isBlank(z)) { | ||||||
|  |                     columnStr += dateStr + "的水位数据为空"; | ||||||
|  |                     if (StringUtils.isBlank(q)) { | ||||||
|  |                         columnStr += ",流量数据为空"; | ||||||
|  |                         data.put("msg", msg + "," + columnStr); | ||||||
|  |                         data.put("flag", "false"); | ||||||
|  |                         return data; | ||||||
|  |                     } | ||||||
|  |                     data.put("msg", msg + "," + columnStr); | ||||||
|  |                     data.put("flag", "false"); | ||||||
|  |                     return data; | ||||||
|  |                 } else { | ||||||
|  |                     if (StringUtils.isBlank(q)) { | ||||||
|  |                         columnStr += dateStr + "的流量数据为空;"; | ||||||
|  |                         data.put("msg", msg + "," + columnStr); | ||||||
|  |                         data.put("flag", "false"); | ||||||
|  |                         return data; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (WaterFlowRainEnum.PP.getCode().equals(sttp)) {//降雨
 | ||||||
|  |                 String drp = map.get(1); | ||||||
|  |                 if (StringUtils.isBlank(drp)) { | ||||||
|  |                     columnStr += dateStr + "的降雨量数据为空"; | ||||||
|  |                     data.put("msg", msg + "," + columnStr); | ||||||
|  |                     data.put("flag", "false"); | ||||||
|  |                     return data; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if ("".equals(columnStr)) { | ||||||
|  |                 data.put("msg", ""); | ||||||
|  |                 data.put("flag", "true"); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return data; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | package com.hnac.hzims.waterrain.mapper; | ||||||
|  | 
 | ||||||
|  | import org.apache.ibatis.annotations.Param; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeLog; | ||||||
|  | 
 | ||||||
|  | public interface ReorganizeLogMapper { | ||||||
|  |     int insert(ReorganizeLog reorganizeLog); | ||||||
|  |     ReorganizeLog queryReorganizeLog(@Param("stcd") String stcd, @Param("yearMonth") String yearMonth); | ||||||
|  |     int checkOk(ReorganizeLog reorganizeLog); | ||||||
|  |     int delReorganizeLog(@Param("stcd") String stcd, @Param("yearMonth") String yearMonth); | ||||||
|  | } | ||||||
| @ -0,0 +1,33 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||||
|  | <mapper namespace="com.hnac.hzims.waterrain.mapper.ReorganizeLogMapper"> | ||||||
|  |     <resultMap id="BaseResult" type="com.hnac.hzims.waterrain.entity.ReorganizeLog"> | ||||||
|  |         <result jdbcType="VARCHAR" property="stcd" column="stcd"/> | ||||||
|  |         <result jdbcType="VARCHAR" property="yearMonth" column="year_month"/> | ||||||
|  |         <result jdbcType="VARCHAR" property="operateUser" column="operate_user"/> | ||||||
|  |         <result jdbcType="VARCHAR" property="checkUser" column="check_user"/> | ||||||
|  |     </resultMap> | ||||||
|  |     <insert id="insert" parameterType="com.hnac.hzims.waterrain.entity.ReorganizeLog"> | ||||||
|  |         insert into reorganize_log(stcd,`year_month`,operate_user,check_user) | ||||||
|  |         values (#{stcd,jdbcType=VARCHAR},#{yearMonth,jdbcType=VARCHAR}, | ||||||
|  |         #{operateUser,jdbcType=VARCHAR},#{checkUser,jdbcType=VARCHAR}) | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <select id="queryReorganizeLog" resultMap="BaseResult"> | ||||||
|  |         select stcd,`year_month`,operate_user,check_user | ||||||
|  |         from reorganize_log | ||||||
|  |         where stcd=#{stcd} and `year_month`=#{yearMonth} | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <update id="checkOk" parameterType="com.hnac.hzims.waterrain.entity.ReorganizeLog"> | ||||||
|  |         update reorganize_log | ||||||
|  |         set check_user=#{checkUser} | ||||||
|  |         where stcd=#{stcd} and `year_month`=#{yearMonth} | ||||||
|  |     </update> | ||||||
|  | 
 | ||||||
|  |     <delete id="delReorganizeLog"> | ||||||
|  |         delete | ||||||
|  |         from reorganize_log | ||||||
|  |         where stcd=#{stcd} and `year_month`=#{yearMonth} | ||||||
|  |     </delete> | ||||||
|  | </mapper> | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.hnac.hzims.waterrain.mapper; | ||||||
|  | 
 | ||||||
|  | import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | 
 | ||||||
|  | public interface StStbprpBMapper extends UserDataScopeBaseMapper<StStbprpB> { | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,5 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||||
|  | <mapper namespace="com.hnac.hzims.waterrain.mapper.StStbprpBMapper"> | ||||||
|  | 
 | ||||||
|  | </mapper> | ||||||
| @ -0,0 +1,28 @@ | |||||||
|  | package com.hnac.hzims.waterrain.mapper; | ||||||
|  | 
 | ||||||
|  | import org.apache.ibatis.annotations.Param; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStPptnR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRiverR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRsvrR; | ||||||
|  | 
 | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | public interface WaterRainReorganizeMapper { | ||||||
|  |     int batchStPptnR(@Param("list") List<HzStPptnR> list); | ||||||
|  |     int batchStRiverR(@Param("list")List<HzStRiverR> list); | ||||||
|  |     int batchStRsvrR(@Param("list")List<HzStRsvrR> list); | ||||||
|  | 
 | ||||||
|  |     int insertHzStPptnR(HzStPptnR hzStPptnR); | ||||||
|  |     int insertHzStRsvrR(HzStRsvrR hzStRsvrR); | ||||||
|  |     int insertHzStRiverR(HzStRiverR hzStRiverR); | ||||||
|  | 
 | ||||||
|  |     List<Map<String,Object>> queryStPptnR(@Param("stcd") String stcd, @Param("start") Date start, @Param("end") Date end); | ||||||
|  |     List<Map<String,Object>> queryStRsvrR(@Param("stcd")String stcd,@Param("start") Date start, @Param("end") Date end); | ||||||
|  |     List<Map<String,Object>> queryStRiverR(@Param("stcd")String stcd,@Param("start") Date start, @Param("end") Date end); | ||||||
|  | 
 | ||||||
|  |     int delStPptnR(@Param("stcd") String stcd, @Param("start") Date start, @Param("end") Date end); | ||||||
|  |     int delStRsvrR(@Param("stcd")String stcd,@Param("start") Date start, @Param("end") Date end); | ||||||
|  |     int delStRiverR(@Param("stcd")String stcd,@Param("start") Date start, @Param("end") Date end); | ||||||
|  | } | ||||||
| @ -0,0 +1,150 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||||
|  | <mapper namespace="com.hnac.hzims.waterrain.mapper.WaterRainReorganizeMapper"> | ||||||
|  | 
 | ||||||
|  |     <insert id="batchStPptnR" parameterType="com.hnac.hzims.waterrain.entity.HzStPptnR"> | ||||||
|  |         insert into st_pptn_r(STCD,TM,DRP) values | ||||||
|  |         <foreach collection="list" separator="," item="cus"> | ||||||
|  |             (#{cus.stcd}, #{cus.tm},#{cus.drp}) | ||||||
|  |         </foreach> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <insert id="batchStRiverR" parameterType="com.hnac.hzims.waterrain.entity.HzStRiverR"> | ||||||
|  |         insert into st_river_r(STCD,TM,Z,Q) | ||||||
|  |         <foreach collection="list" separator="," item="cus"> | ||||||
|  |             (#{cus.stcd}, #{cus.tm},#{cus.z},#{cus.q}) | ||||||
|  |         </foreach> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <insert id="batchStRsvrR" parameterType="com.hnac.hzims.waterrain.entity.HzStRsvrR"> | ||||||
|  |         insert into st_rsvr_r(STCD,TM,RZ,INQ) | ||||||
|  |         <foreach collection="list" separator="," item="cus"> | ||||||
|  |             (#{cus.stcd}, #{cus.tm},#{cus.rz},#{cus.inq}) | ||||||
|  |         </foreach> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <insert id="insertHzStPptnR" parameterType="com.hnac.hzims.waterrain.entity.HzStPptnR"> | ||||||
|  |         insert into st_pptn_r | ||||||
|  |         <trim prefix="(" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 STCD, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 TM, | ||||||
|  |             </if> | ||||||
|  |             <if test="drp != null" > | ||||||
|  |                 DRP, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |         <trim prefix="values (" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 #{stcd,jdbcType=CHAR}, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 #{tm,jdbcType=TIMESTAMP}, | ||||||
|  |             </if> | ||||||
|  |             <if test="drp != null" > | ||||||
|  |                 #{drp,jdbcType=DECIMAL}, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <insert id="insertHzStRiverR" parameterType="com.hnac.hzims.waterrain.entity.HzStRiverR"> | ||||||
|  |         insert into st_river_r | ||||||
|  |         <trim prefix="(" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 STCD, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 TM, | ||||||
|  |             </if> | ||||||
|  |             <if test="z != null" > | ||||||
|  |                 Z, | ||||||
|  |             </if> | ||||||
|  |             <if test="q != null" > | ||||||
|  |                 Q, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |         <trim prefix="values (" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 #{stcd,jdbcType=CHAR}, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 #{tm,jdbcType=TIMESTAMP}, | ||||||
|  |             </if> | ||||||
|  |             <if test="z != null" > | ||||||
|  |                 #{z,jdbcType=DECIMAL}, | ||||||
|  |             </if> | ||||||
|  |             <if test="q != null" > | ||||||
|  |                 #{q,jdbcType=DECIMAL}, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <insert id="insertHzStRsvrR" parameterType="com.hnac.hzims.waterrain.entity.HzStRsvrR"> | ||||||
|  |         insert into st_rsvr_r | ||||||
|  |         <trim prefix="(" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 STCD, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 TM, | ||||||
|  |             </if> | ||||||
|  |             <if test="rz != null" > | ||||||
|  |                 RZ, | ||||||
|  |             </if> | ||||||
|  |             <if test="inq != null" > | ||||||
|  |                 INQ, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |         <trim prefix="values (" suffix=")" suffixOverrides="," > | ||||||
|  |             <if test="stcd != null" > | ||||||
|  |                 #{stcd,jdbcType=CHAR}, | ||||||
|  |             </if> | ||||||
|  |             <if test="tm != null" > | ||||||
|  |                 #{tm,jdbcType=TIMESTAMP}, | ||||||
|  |             </if> | ||||||
|  |             <if test="rz != null" > | ||||||
|  |                 #{rz,jdbcType=DECIMAL}, | ||||||
|  |             </if> | ||||||
|  |             <if test="inq != null" > | ||||||
|  |                 #{inq,jdbcType=DECIMAL}, | ||||||
|  |             </if> | ||||||
|  |         </trim> | ||||||
|  |     </insert> | ||||||
|  | 
 | ||||||
|  |     <select id="queryStPptnR" resultType="java.util.Map"> | ||||||
|  |         select DATE_FORMAT(tm,'%Y-%m-%d %H') as tm,drp as rain from st_pptn_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |         order by tm | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <select id="queryStRsvrR" resultType="java.util.Map"> | ||||||
|  |         select DATE_FORMAT(tm,'%Y-%m-%d %H') as tm,rz as water_level,inq as flow from st_rsvr_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |         order by tm | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <select id="queryStRiverR" resultType="java.util.Map"> | ||||||
|  |         select DATE_FORMAT(tm,'%Y-%m-%d %H') as tm,z as water_level,q as flow from st_river_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |         order by tm | ||||||
|  |     </select> | ||||||
|  | 
 | ||||||
|  |     <delete id="delStPptnR"> | ||||||
|  |         delete from st_pptn_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |     </delete> | ||||||
|  | 
 | ||||||
|  |     <delete id="delStRsvrR"> | ||||||
|  |         delete from st_rsvr_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |     </delete> | ||||||
|  | 
 | ||||||
|  |     <delete id="delStRiverR"> | ||||||
|  |         delete from st_river_r | ||||||
|  |         where stcd=#{stcd} and tm between #{start} and #{end} | ||||||
|  |     </delete> | ||||||
|  | 
 | ||||||
|  | </mapper> | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeLog; | ||||||
|  | 
 | ||||||
|  | public interface IReorganizeLogService { | ||||||
|  |     boolean getReorganizeLog(String stcd,String yearMonth); | ||||||
|  |     ReorganizeLog queryReorganizeLog(String stcd, String yearMonth); | ||||||
|  |     boolean insertReorganizeLog(ReorganizeLog reorganizeLog); | ||||||
|  |     boolean check(String stcd,String yearMonth,String checkUser); | ||||||
|  | 
 | ||||||
|  |     boolean delReorganizeLog(String stcd,String yearMonth); | ||||||
|  | } | ||||||
| @ -0,0 +1,47 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.hnac.hzims.entity.Report; | ||||||
|  | import com.hnac.hzims.entity.YearReport; | ||||||
|  | import com.hnac.hzims.waterrain.bo.StationResp; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | public interface IStStbprpBDataService { | ||||||
|  | 
 | ||||||
|  |     //获取计算值(最大  最小  平均等等)
 | ||||||
|  |     Map<String, String> queryMaxOrMin(String deviceCode, Date startTime, Date endTime, | ||||||
|  |                                           Integer calcType, String col); | ||||||
|  | 
 | ||||||
|  |     //获取最新值以及差值
 | ||||||
|  |     List<Map<String,Object>> getLastValues(List<String> stcds,String sttp); | ||||||
|  | 
 | ||||||
|  |     //过程线
 | ||||||
|  |     Report getReportData(List<String> deviceCode, Date begin, Date end, String type , String sttp, String col); | ||||||
|  | 
 | ||||||
|  |     //水量过程线
 | ||||||
|  |     Report getWaterReportData(List<String> deviceCodes, Date begin, Date end, String type, String sttp); | ||||||
|  | 
 | ||||||
|  |     //年报表
 | ||||||
|  |     YearReport getYearReport(String stcd, Integer year, String sttp, String col); | ||||||
|  | 
 | ||||||
|  |     //水量年报表
 | ||||||
|  |     YearReport getWaterYearReport(String deviceCode, Integer year,String sttp); | ||||||
|  |     //将于年报
 | ||||||
|  |     YearReport getRainYearReport(String deviceCode, Integer year,String sttp,String col); | ||||||
|  | 
 | ||||||
|  |     Object getLastValue(String stcd); | ||||||
|  | 
 | ||||||
|  |     IPage<StationResp> pageData(LambdaQueryWrapper wrapper, IPage page); | ||||||
|  | 
 | ||||||
|  |     List<FieldsData> getRealData(String stcd); | ||||||
|  |     List<AnalyzeInstanceFieldVO> getSignages(String stcd); | ||||||
|  | 
 | ||||||
|  |     List<Map<String,Object>>  getDataByHour(String stcd,String yearMonth); | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service; | ||||||
|  | 
 | ||||||
|  | import org.springblade.core.mp.base.BaseService; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | 
 | ||||||
|  | public interface IStStbprpBService extends BaseService<StStbprpB> { | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,34 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStPptnR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRiverR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRsvrR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeData; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | public interface IWaterRainReorganizeService { | ||||||
|  | 
 | ||||||
|  |     boolean batchInsert(ReorganizeData data); | ||||||
|  | 
 | ||||||
|  |     void batchStPptnR(List<HzStPptnR> list); | ||||||
|  |     void batchStRiverR(List<HzStRiverR> list); | ||||||
|  |     void batchStRsvrR(List<HzStRsvrR> list); | ||||||
|  | 
 | ||||||
|  |     int insertHzStPptnR(HzStPptnR hzStPptnR); | ||||||
|  |     int insertHzStRsvrR(HzStRsvrR hzStRsvrR); | ||||||
|  |     int insertHzStRiverR(HzStRiverR hzStRiverR); | ||||||
|  | 
 | ||||||
|  |     List<Map<String,Object>> queryStPptnR(String stcd,String yearMonth); | ||||||
|  |     List<Map<String,Object>> queryStRsvrR(String stcd,String yearMonth); | ||||||
|  |     List<Map<String,Object>> queryStRiverR(String stcd,String yearMonth); | ||||||
|  | 
 | ||||||
|  |     boolean delStPptnR(String stcd,String yearMonth); | ||||||
|  |     boolean delStRsvrR(String stcd,String yearMonth); | ||||||
|  |     boolean delStRiverR(String stcd,String yearMonth); | ||||||
|  | 
 | ||||||
|  |     List<Map<String,Object>> queryData(String stcd,String sttp,String yearMonth); | ||||||
|  |     boolean delData(String stcd,String sttp,String yearMonth); | ||||||
|  | } | ||||||
| @ -0,0 +1,4 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service; | ||||||
|  | 
 | ||||||
|  | public interface IWaterRainService { | ||||||
|  | } | ||||||
| @ -0,0 +1,45 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service.impl; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeLog; | ||||||
|  | import com.hnac.hzims.waterrain.mapper.ReorganizeLogMapper; | ||||||
|  | import com.hnac.hzims.waterrain.service.IReorganizeLogService; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | import javax.annotation.Resource; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class ReorganizeLogServiceImpl implements IReorganizeLogService { | ||||||
|  | 
 | ||||||
|  |     @Resource | ||||||
|  |     ReorganizeLogMapper reorganizeLogMapper; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean getReorganizeLog(String stcd, String yearMonth) { | ||||||
|  |         ReorganizeLog reorganizeLog=queryReorganizeLog(stcd,yearMonth); | ||||||
|  |         return reorganizeLog!=null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public ReorganizeLog queryReorganizeLog(String stcd, String yearMonth) { | ||||||
|  |         return reorganizeLogMapper.queryReorganizeLog(stcd,yearMonth); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean insertReorganizeLog(ReorganizeLog reorganizeLog) { | ||||||
|  |         return reorganizeLogMapper.insert(reorganizeLog)>0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean check(String stcd, String yearMonth, String checkUser) { | ||||||
|  |         ReorganizeLog reorganizeLog=new ReorganizeLog(); | ||||||
|  |         reorganizeLog.setStcd(stcd); | ||||||
|  |         reorganizeLog.setYearMonth(yearMonth); | ||||||
|  |         reorganizeLog.setCheckUser(checkUser); | ||||||
|  |         return reorganizeLogMapper.checkOk(reorganizeLog)>0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean delReorganizeLog(String stcd, String yearMonth) { | ||||||
|  |         return reorganizeLogMapper.delReorganizeLog(stcd,yearMonth)>0; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,896 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service.impl; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||||
|  | import com.hnac.hzims.entity.*; | ||||||
|  | import com.hnac.hzims.enums.QueryDateTypeEnum; | ||||||
|  | import com.hnac.hzims.util.CommonUtil; | ||||||
|  | import com.hnac.hzims.util.ReportDateUtil; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.po.AnalyseCodeByAnalyseDataPO; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.po.AnalyzeDataConditionPO; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.vo.AnalyseDataTaosVO; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeDataConditionVO; | ||||||
|  | import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; | ||||||
|  | import com.hnac.hzinfo.datasearch.real.po.RealDataSearchPO; | ||||||
|  | import com.hnac.hzinfo.sdk.analyse.AnalyseDataSearchClient; | ||||||
|  | import com.hnac.hzinfo.sdk.analyse.po.ComputeBaseStrategyPO; | ||||||
|  | import com.hnac.hzinfo.sdk.analyse.vo.DeviceSinglePropsValueQuery; | ||||||
|  | import com.hnac.hzinfo.sdk.analyse.vo.DeviceSinglePropsValueVO; | ||||||
|  | import com.hnac.hzinfo.sdk.core.response.Result; | ||||||
|  | import com.hnac.hzinfo.sdk.real.RealDataSearchClient; | ||||||
|  | import org.apache.commons.lang3.time.DateUtils; | ||||||
|  | import com.hnac.hzims.waterrain.bo.*; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBDataService; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBService; | ||||||
|  | import com.hnac.hzims.waterrain.util.DateUtil; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | import java.math.BigDecimal; | ||||||
|  | import java.text.ParseException; | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.time.*; | ||||||
|  | import java.util.*; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class StStbprpBDataServiceImpl implements IStStbprpBDataService { | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     AnalyseDataSearchClient analyseDataSearchClient; | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     RealDataSearchClient realDataSearchClient; | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     IStStbprpBService stStbprpBService; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Object getLastValue(String stcd) { | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=new LambdaQueryWrapper(); | ||||||
|  |         wrapper.eq(StStbprpB::getStcd,stcd); | ||||||
|  |         wrapper.eq(StStbprpB::getIsDeleted,0); | ||||||
|  |         StStbprpB resp = stStbprpBService.getOne(wrapper); | ||||||
|  |         return getLastValue(resp); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private Object getLastValue(StStbprpB resp){ | ||||||
|  |         List<String> stcds=new ArrayList<>(); | ||||||
|  |         stcds.add(resp.getStcd()); | ||||||
|  |         List<Map<String,Object>> dataList = getLastValues(stcds, resp.getSttp()); | ||||||
|  |         if(dataList!=null && !dataList.isEmpty()) { | ||||||
|  |             return dataList.get(0); | ||||||
|  |         }else{ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public IPage<StationResp> pageData(LambdaQueryWrapper wrapper, IPage page) { | ||||||
|  |         IPage<StStbprpB> pageList = stStbprpBService.page(page, wrapper); | ||||||
|  |         IPage<StationResp> list = new Page(pageList.getCurrent(),pageList.getSize()); | ||||||
|  |         int count=(int)pageList.getTotal(); | ||||||
|  |         List<String> stcds=new ArrayList<>(); | ||||||
|  |         for (StStbprpB resp : pageList.getRecords()) { | ||||||
|  |             stcds.add(resp.getStcd()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         List<StationResp> records=new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |         for (StStbprpB resp : pageList.getRecords()) { | ||||||
|  |             StationResp temp = new StationResp(); | ||||||
|  |             temp.setStStbprpB(resp); | ||||||
|  |             temp.setObj(getLastValue(resp)); | ||||||
|  |             records.add(temp); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         list.setPages(pageList.getPages()); | ||||||
|  |         list.setRecords(records); | ||||||
|  |         list.setTotal(count); | ||||||
|  | 
 | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<FieldsData> getRealData(String stcd) { | ||||||
|  |         RealDataSearchPO po=new RealDataSearchPO(); | ||||||
|  |         po.setAnalyzeCode(stcd); | ||||||
|  |         List<AnalyzeInstanceFieldVO> list=getSignages(stcd); | ||||||
|  |         if(list==null || list.isEmpty()){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         List<String> signages=new ArrayList<>(); | ||||||
|  |         for(AnalyzeInstanceFieldVO vo:list){ | ||||||
|  |             signages.add(vo.getSignage()); | ||||||
|  |         } | ||||||
|  |         po.setSignages(signages); | ||||||
|  |         Result<List<FieldsData>> result=realDataSearchClient.getRealDataByDeviceCode(po); | ||||||
|  |         if(result==null || !result.isSuccess()){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         return result.getData(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<AnalyzeInstanceFieldVO> getSignages(String stcd){ | ||||||
|  |         //查询列
 | ||||||
|  |         Result<List<AnalyzeInstanceFieldVO>> result=analyseDataSearchClient.getInstanceFieldByAnalyseCode(stcd,1,""); | ||||||
|  |         if(result==null || !result.isSuccess()){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         List<AnalyzeInstanceFieldVO> analyzeInstanceFieldVOS=result.getData(); | ||||||
|  |         return analyzeInstanceFieldVOS; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String, Object>> getDataByHour(String stcd,String yearMonth) { | ||||||
|  |         List<Map<String, Object>> list=new ArrayList<>(); | ||||||
|  |         Map<String,Date> dateMap=DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  | 
 | ||||||
|  |         if(begin==null || endSt==null){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         LocalDateTime start = LocalDateTime.ofInstant(begin.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         LocalDateTime end = LocalDateTime.ofInstant(endSt.toInstant(), ZoneId.systemDefault()); | ||||||
|  | 
 | ||||||
|  |         List<AnalyzeInstanceFieldVO> vos=getSignages(stcd); | ||||||
|  |         if(vos==null || vos.isEmpty()){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         Map<String,List<ReportData>> map=new HashMap<>(); | ||||||
|  |         int count=0; | ||||||
|  |         for(AnalyzeInstanceFieldVO vo:vos) { | ||||||
|  |             List<ReportData> reportDataList = getDataByDeviceCode(stcd, 6,2,start,end, vo.getSignage()); | ||||||
|  |             map.put(vo.getSignage(),reportDataList); | ||||||
|  |             count = reportDataList.size(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         for (int i = 0; i < count; i++) { | ||||||
|  |             Map<String,Object> res=new HashMap<>(); | ||||||
|  |             for(AnalyzeInstanceFieldVO vo:vos) { | ||||||
|  |                 List<ReportData> reportDataList=map.get(vo.getSignage()); | ||||||
|  |                 ReportData reportData=reportDataList.get(i); | ||||||
|  |                 res.put("tm",reportData.getKeyStr()); | ||||||
|  |                 res.put(vo.getSignage(),reportData.getVal()); | ||||||
|  |             } | ||||||
|  |             list.add(res); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //获取测站 水量年报表
 | ||||||
|  |     @Override | ||||||
|  |     public YearReport getWaterYearReport(String deviceCode, Integer year, String sttp) { | ||||||
|  |         YearReport yearReport=getYearReport(deviceCode, year, sttp,"flow"); | ||||||
|  |         dealYearReport(yearReport); | ||||||
|  |         return yearReport; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealRainYearReport(YearReport yearReport){ | ||||||
|  |         if(yearReport!=null){ | ||||||
|  |             List<ReportUnit> monthList=yearReport.getMonthList(); | ||||||
|  |             dealMonthList(monthList,yearReport.getYear()); | ||||||
|  |             List<ReportData> yearList=yearReport.getYearList(); | ||||||
|  |             dealYearList(yearList,yearReport.getYear()); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealYearReport(YearReport yearReport){ | ||||||
|  |         if(yearReport!=null){ | ||||||
|  |             List<List<String>> dayList=yearReport.getDayList(); | ||||||
|  |             dealDayList(dayList); | ||||||
|  |             List<ReportUnit> monthList=yearReport.getMonthList(); | ||||||
|  |             dealMonthList(monthList,yearReport.getYear()); | ||||||
|  |             List<ReportData> yearList=yearReport.getYearList(); | ||||||
|  |             dealYearList(yearList,yearReport.getYear()); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealDayList(List<List<String>> dayList){ | ||||||
|  |         for(List<String> list:dayList){ | ||||||
|  |             if(list!=null && !list.isEmpty()) { | ||||||
|  |                 for (int i=0,size=list.size(); i<size; i++) { | ||||||
|  |                     String str=list.get(i); | ||||||
|  |                     if (!"-".equals(str)) { | ||||||
|  |                         list.set(i,getNewVal(str,"day","")); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealMonthList(List<ReportUnit> monthList,int year){ | ||||||
|  |         if(monthList!=null && !monthList.isEmpty()) { | ||||||
|  |             for (ReportUnit reportUnit:monthList) { | ||||||
|  |                 String key=reportUnit.getKey(); | ||||||
|  |                 if(!key.contains("时间")){ | ||||||
|  |                     List<String> list=reportUnit.getDataList(); | ||||||
|  |                     dealMonthDataList(list,year); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealMonthDataList(List<String> list,int year){ | ||||||
|  |         if(list!=null && !list.isEmpty()){ | ||||||
|  |             for (int i=0,size=list.size(); i<size; i++) { | ||||||
|  |                 String str=list.get(i); | ||||||
|  |                 if (!"-".equals(str)) { | ||||||
|  |                     int month= i+1; | ||||||
|  |                     //   String monthStr = month < 9 ? "0"+month:""+month;
 | ||||||
|  |                     list.set(i,getNewVal(str,"month",year+"-"+month)); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealYearList(List<ReportData> yearList,int year){ | ||||||
|  |         for(ReportData reportData:yearList){ | ||||||
|  |             String keyStr=reportData.getKeyStr(); | ||||||
|  |             if(!keyStr.contains("时间")){ | ||||||
|  |                 String str=reportData.getVal(); | ||||||
|  |                 if (!"-".equals(str)) { | ||||||
|  |                     reportData.setVal(getNewVal(str, "year", year + "")); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //获取测站 水量过程线
 | ||||||
|  |     @Override | ||||||
|  |     public Report getWaterReportData(List<String> deviceCodes, Date begin, Date end, String type, String sttp) { | ||||||
|  |         Report report=getReportData(deviceCodes, begin, end, type, sttp,"flow"); | ||||||
|  |         dealReportData(report,type); | ||||||
|  |         return report; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealReportData(Report report, String dateType){ | ||||||
|  |         if(report!=null) { | ||||||
|  |             List<ReportUnit> list = report.getData(); | ||||||
|  |             if(list!=null && !list.isEmpty()) { | ||||||
|  |                 for (ReportUnit reportUnit : list) { | ||||||
|  |                     String key = reportUnit.getKey(); | ||||||
|  |                     List<String> dataList = reportUnit.getDataList(); | ||||||
|  |                     dealDataList(dataList, dateType, key); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     void dealDataList(List<String> dataList,String dateType,String key){ | ||||||
|  |         if(dataList!=null && !dataList.isEmpty()) { | ||||||
|  |             for (int i = 0,size=dataList.size(); i<size;i++) { | ||||||
|  |                 String value=dataList.get(i); | ||||||
|  |                 if(!"-".equals(value)) { | ||||||
|  |                     dataList.set(i,getNewVal(value,dateType,key)); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     String getNewVal(String value,String dateType,String key){ | ||||||
|  |         long xishu=1; | ||||||
|  |         if(QueryDateTypeEnum.YEAR.getQueryDateType().equals(dateType)){//年
 | ||||||
|  |             int year = Integer.valueOf(key); | ||||||
|  |             if((year%4==0 && year%100!=0) || (year%400==0)){ | ||||||
|  |                 xishu = 31622400;//366天的秒数
 | ||||||
|  |             }else{ | ||||||
|  |                 xishu = 31536000;//365天的秒数
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if(QueryDateTypeEnum.MONTH.getQueryDateType().equals(dateType)){//月
 | ||||||
|  |             String[] keys=key.split("-"); | ||||||
|  |             int day=getDaysByYearMonth(Integer.valueOf(keys[0]),Integer.valueOf(keys[1])); | ||||||
|  |             xishu = day*86400;//day天的秒数 0.004425
 | ||||||
|  |         } | ||||||
|  |         if(QueryDateTypeEnum.DAY.getQueryDateType().equals(dateType)){//日
 | ||||||
|  |             xishu = 86400;//1天的秒数
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(QueryDateTypeEnum.HOUR.getQueryDateType().equals(dateType)){//时
 | ||||||
|  |             xishu = 3600;//1小时的秒数
 | ||||||
|  |         } | ||||||
|  |         if(value!=null && !"-".equals(value) && !"".equals(value.trim())) { | ||||||
|  |             BigDecimal result = new BigDecimal(value).multiply(new BigDecimal(xishu)); | ||||||
|  |             return String.format("%.3f", result); | ||||||
|  |         }else{ | ||||||
|  |             return "-"; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static int getDaysByYearMonth(int year, int month) { | ||||||
|  |         Calendar a = Calendar.getInstance(); | ||||||
|  |         a.set(Calendar.YEAR, year); | ||||||
|  |         a.set(Calendar.MONTH, month - 1); | ||||||
|  |         a.set(Calendar.DATE, 1); | ||||||
|  |         a.roll(Calendar.DATE, -1); | ||||||
|  |         int maxDate = a.get(Calendar.DATE); | ||||||
|  |         return maxDate; | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //获取测站年报表
 | ||||||
|  |     @Override | ||||||
|  |     public YearReport getRainYearReport(String deviceCode, Integer year, String sttp, String col) { | ||||||
|  |         //初始化年份
 | ||||||
|  |         YearReport yearReport = new YearReport(); | ||||||
|  |         yearReport.init(deviceCode, year); | ||||||
|  |         //拿到一年数据
 | ||||||
|  |         Date begin = ReportDateUtil.getDate(year, 0, 1, 8, 0, 0); | ||||||
|  |         Date end = ReportDateUtil.getNextDate(begin, Calendar.YEAR); | ||||||
|  |         List<ReportData> yearReportData = listDataReport(begin, end, QueryDateTypeEnum.DAY,deviceCode,sttp, col); | ||||||
|  |         //年度数据转化到报表里,计算每月数据和年数据
 | ||||||
|  |         try { | ||||||
|  |             toYearRainReport(yearReport, yearReportData, col,sttp); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         //返回数据
 | ||||||
|  |         return yearReport; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public YearReport getYearReport(String deviceCode, Integer year, String sttp, String col) { | ||||||
|  |         //初始化年份
 | ||||||
|  |         YearReport yearReport = new YearReport(); | ||||||
|  |         yearReport.init(deviceCode, year); | ||||||
|  |         //拿到一年数据
 | ||||||
|  |         Date begin = ReportDateUtil.getDate(year, 0, 1, 8, 0, 0); | ||||||
|  |         Date end = ReportDateUtil.getNextDate(begin, Calendar.YEAR); | ||||||
|  |         List<ReportData> yearReportData = listDataReport(begin, end, QueryDateTypeEnum.DAY,deviceCode,sttp, col); | ||||||
|  |         //年度数据转化到报表里,计算每月数据和年数据
 | ||||||
|  |         try { | ||||||
|  |             toYearReport(yearReport, yearReportData, col,sttp); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         //返回数据
 | ||||||
|  |         return yearReport; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 年度数据转化到报表里,然後计算每月统计数据和年统计数据 | ||||||
|  |      * | ||||||
|  |      * @param yearReport | ||||||
|  |      * @param yearReportData | ||||||
|  |      * @param col | ||||||
|  |      * @throws ParseException | ||||||
|  |      */ | ||||||
|  |     private void toYearReport(YearReport yearReport, List<ReportData> yearReportData, String col,String sttp) | ||||||
|  |             throws ParseException { | ||||||
|  |         //先把数据转化到设计的二维链表里
 | ||||||
|  |         SimpleDateFormat sdf = ReportDateUtil.getSimpleDateFormatByType(QueryDateTypeEnum.DAY); | ||||||
|  |         Calendar calendar = Calendar.getInstance(); | ||||||
|  |         for (ReportData reportData : yearReportData) { | ||||||
|  |             Date tempDay = sdf.parse(reportData.getKeyStr()); | ||||||
|  |             calendar.setTime(tempDay); | ||||||
|  |             int month = calendar.get(Calendar.MONTH); | ||||||
|  |             int day = calendar.get(Calendar.DAY_OF_MONTH); | ||||||
|  |             String value=reportData.getVal(); | ||||||
|  | 
 | ||||||
|  |             if(value!=null && !"-".equals(value) && !"".equals(value.trim())){ | ||||||
|  |                 value = new BigDecimal(value).setScale(3,BigDecimal.ROUND_DOWN).toString(); | ||||||
|  |             } | ||||||
|  |             yearReport.setDayValue(month, day,value); | ||||||
|  |         } | ||||||
|  |         //初始化每月列表
 | ||||||
|  |         yearReport.initMonthList(new String[]{ | ||||||
|  |                 StandardData.STANDARD_AVG, | ||||||
|  |                 StandardData.STANDARD_MAX, | ||||||
|  |                 StandardData.STANDARD_MAX_DATE, | ||||||
|  |                 StandardData.STANDARD_MIN, | ||||||
|  |                 StandardData.STANDARD_MIN_DATE | ||||||
|  |         }); | ||||||
|  |         //计算每月统计数据
 | ||||||
|  |         calcMonth(yearReport, col,sttp); | ||||||
|  |         //计算年数据
 | ||||||
|  |         calcYear(yearReport, col,sttp); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private void toYearRainReport(YearReport yearReport, List<ReportData> yearReportData, String col,String sttp) | ||||||
|  |             throws ParseException { | ||||||
|  |         //先把数据转化到设计的二维链表里
 | ||||||
|  |         SimpleDateFormat sdf = ReportDateUtil.getSimpleDateFormatByType(QueryDateTypeEnum.DAY); | ||||||
|  |         Calendar calendar = Calendar.getInstance(); | ||||||
|  |         for (ReportData reportData : yearReportData) { | ||||||
|  |             Date tempDay = sdf.parse(reportData.getKeyStr()); | ||||||
|  |             calendar.setTime(tempDay); | ||||||
|  |             int month = calendar.get(Calendar.MONTH); | ||||||
|  |             int day = calendar.get(Calendar.DAY_OF_MONTH); | ||||||
|  |             String value=reportData.getVal(); | ||||||
|  | 
 | ||||||
|  |             if(value!=null && !"-".equals(value) && !"".equals(value.trim())){ | ||||||
|  |                 value = new BigDecimal(value).setScale(3,BigDecimal.ROUND_DOWN).toString(); | ||||||
|  |             } | ||||||
|  |             yearReport.setDayValue(month, day,value); | ||||||
|  |         } | ||||||
|  |         //初始化每月列表
 | ||||||
|  |         yearReport.initMonthList(new String[]{ | ||||||
|  |                 StandardData.STANDARD_AVG, | ||||||
|  |                 StandardData.STANDARD_MAX, | ||||||
|  |                 StandardData.STANDARD_MAX_DATE, | ||||||
|  |                 StandardData.STANDARD_MIN, | ||||||
|  |                 StandardData.STANDARD_MIN_DATE | ||||||
|  |         }); | ||||||
|  | //        //计算每月统计数据
 | ||||||
|  | //        calcRainMonth(yearReport);
 | ||||||
|  | //        //计算年数据
 | ||||||
|  | //        calcRainYear(yearReport, col,sttp);
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | //    private void calcRainMonth(YearReport yearReport) {
 | ||||||
|  | //        StandardData standardData =null;
 | ||||||
|  | //        String stcd = yearReport.getStcd();
 | ||||||
|  | //        List<List<String>> dayList = yearReport.getDayList();
 | ||||||
|  | //        for (int month = 0; month < dayList.size(); month++) {
 | ||||||
|  | //            if (Objects.isNull(standardData)) {
 | ||||||
|  | //                standardData = new StandardData();
 | ||||||
|  | //            }
 | ||||||
|  | //            standardData.dealNullData();
 | ||||||
|  | //
 | ||||||
|  | //
 | ||||||
|  | //            if(avgValue!=null && !avgValue.isEmpty()) {
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_AVG, month, avgValue.get(0).getVal());
 | ||||||
|  | ////                yearReport.setMonthValue(StandardData.STANDARD_AVG, month, avgValue.get(stcd));
 | ||||||
|  | //            }else{
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_AVG, month, "-");
 | ||||||
|  | //            }
 | ||||||
|  | //
 | ||||||
|  | //            if(maxValue!=null) {
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MAX, month, maxValue.get(stcd));
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MAX_DATE, month, maxValue.get("tm"));
 | ||||||
|  | //            }else{
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MAX, month, "-");
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MAX_DATE, month, "-");
 | ||||||
|  | //            }
 | ||||||
|  | //
 | ||||||
|  | //            if(minValue!=null) {
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MIN, month, minValue.get(stcd));
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MIN_DATE, month, minValue.get("tm"));
 | ||||||
|  | //            }else{
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MIN, month, "-");
 | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_MIN_DATE, month, "-");
 | ||||||
|  | //            }
 | ||||||
|  | //
 | ||||||
|  | //        }
 | ||||||
|  | //    }
 | ||||||
|  | 
 | ||||||
|  |     private void calcMonth(YearReport yearReport, String col,String sttp) { | ||||||
|  |         //SimpleDateFormat sdf = ReportDateUtil.getSimpleDateFormatByType(QueryDateTypeEnum.DAY);
 | ||||||
|  |         //获取日报表数据
 | ||||||
|  |         StandardData standardData =null; | ||||||
|  |         String stcd = yearReport.getStcd(); | ||||||
|  |         List<List<String>> dayList = yearReport.getDayList(); | ||||||
|  |         for (int month = 0; month < dayList.size(); month++) { | ||||||
|  |             Date begin = ReportDateUtil.getDate(yearReport.getYear(), month, 1, 8, 0, 0); | ||||||
|  |             Date end = ReportDateUtil.getNextDate(begin, Calendar.MONTH); | ||||||
|  |             //拿到一个月的统计数据
 | ||||||
|  |             Map<String,String> maxValue= queryMaxOrMin(stcd, begin, end,1,col); | ||||||
|  |             Map<String,String> minValue= queryMaxOrMin(stcd, begin, end,2,col); | ||||||
|  | //            Map<String,String> avgValue= queryMaxOrMin(stcd, begin, end,3,col);
 | ||||||
|  |             List<ReportData> avgValue= listDataReport( begin, end,QueryDateTypeEnum.MONTH,stcd,sttp,col); | ||||||
|  | 
 | ||||||
|  |             if (Objects.isNull(standardData)) { | ||||||
|  |                 standardData = new StandardData(); | ||||||
|  |             } | ||||||
|  |             standardData.dealNullData(); | ||||||
|  |             if(avgValue!=null && !avgValue.isEmpty()) { | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_AVG, month, avgValue.get(0).getVal()); | ||||||
|  | //                yearReport.setMonthValue(StandardData.STANDARD_AVG, month, avgValue.get(stcd));
 | ||||||
|  |             }else{ | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_AVG, month, "-"); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if(maxValue!=null && maxValue.get(stcd)!=null) { | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MAX, month, maxValue.get(stcd)); | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MAX_DATE, month, maxValue.get("tm")); | ||||||
|  |             }else{ | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MAX, month, "-"); | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MAX_DATE, month, "-"); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if(minValue!=null && minValue.get(stcd)!=null) { | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MIN, month, minValue.get(stcd)); | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MIN_DATE, month, minValue.get("tm")); | ||||||
|  |             }else{ | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MIN, month, "-"); | ||||||
|  |                 yearReport.setMonthValue(StandardData.STANDARD_MIN_DATE, month, "-"); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void calcYear(YearReport yearReport, String col,String sttp) { | ||||||
|  |         StandardData standardData =null; | ||||||
|  |         String stcd = yearReport.getStcd(); | ||||||
|  |         Date begin = ReportDateUtil.getDate(yearReport.getYear(), 0, 1, 8, 0, 0); | ||||||
|  |         Date end = ReportDateUtil.getNextDate(begin, Calendar.YEAR); | ||||||
|  |         Map<String,String> maxValue= queryMaxOrMin(stcd, begin, end,1, col); | ||||||
|  |         Map<String,String> minValue= queryMaxOrMin(stcd, begin, end,2, col); | ||||||
|  | //        Map<String,String> avgValue= queryMaxOrMin(stcd, begin, end,3, col);
 | ||||||
|  |         List<ReportData> avgValue= listDataReport( begin, end,QueryDateTypeEnum.YEAR,stcd,sttp,col); | ||||||
|  |         if (Objects.isNull(standardData)) { | ||||||
|  |             standardData = new StandardData(); | ||||||
|  |         } | ||||||
|  |         standardData.dealNullData(); | ||||||
|  |         List<ReportData> yearList = new ArrayList<>(); | ||||||
|  |         if(avgValue!=null && !avgValue.isEmpty()){ | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_AVG, avgValue.get(0).getVal())); | ||||||
|  | //            yearList.add(new ReportData(StandardData.STANDARD_AVG, avgValue.get(stcd)));
 | ||||||
|  |         }else{ | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_AVG, "-")); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(maxValue!=null && maxValue.get(stcd)!=null) { | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MAX, maxValue.get(stcd))); | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MAX_DATE, maxValue.get("tm"))); | ||||||
|  |         }else{ | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MAX, "-")); | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MAX_DATE, "-")); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(minValue!=null && minValue.get(stcd)!=null) { | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MIN, minValue.get(stcd))); | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MIN_DATE, minValue.get("tm"))); | ||||||
|  |         }else{ | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MIN, "-")); | ||||||
|  |             yearList.add(new ReportData(StandardData.STANDARD_MIN_DATE, "-")); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         yearReport.setYearList(yearList); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //获取测站过程线
 | ||||||
|  |     @Override | ||||||
|  |     public Report getReportData(List<String> deviceCodes, Date begin, Date end, String type,String sttp,String col) { | ||||||
|  |         //检查数据是否正常并转化
 | ||||||
|  |         final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); | ||||||
|  |         if(deviceCodes==null || deviceCodes.size()<=0){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(dtEnum ==null){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //初始化报表
 | ||||||
|  |         Report report = new Report(); | ||||||
|  |         report.initBaseReport(deviceCodes.size(), begin, end, dtEnum); | ||||||
|  |         //设置基础数据
 | ||||||
|  |         for (int i = 0; i < deviceCodes.size(); i++) { | ||||||
|  |             String deviceCode = deviceCodes.get(i); | ||||||
|  |             //获取数据库某个站点不同时间要求的数据
 | ||||||
|  |             List<ReportData> timeDataList = listDataReport(begin, end,dtEnum,deviceCode,sttp,col); | ||||||
|  | 
 | ||||||
|  |             for (ReportData reportData : timeDataList) { | ||||||
|  |                 String value=reportData.getVal(); | ||||||
|  | //                if(value!=null && !"-".equals(value) && !"".equals(value.trim())){
 | ||||||
|  | //                    value = new BigDecimal(value).setScale(3,BigDecimal.ROUND_DOWN).toString();
 | ||||||
|  | //                }
 | ||||||
|  |                 report.setBaseCell(reportData.getKeyStr(), i, value); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return report; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private List<ReportData> listDataReport(Date begin,Date endSt,QueryDateTypeEnum dtEnum,String deviceCode,String sttp,String col) { | ||||||
|  |         List<ReportData> list=new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |         //周期类型: 0-> s(秒) 1->、m(分)、2->h(小时)3->、d(天)4->、w(周)5->、n(自然月)、6->y(自然年)
 | ||||||
|  |         Integer saveTimeType=2; | ||||||
|  |         if(QueryDateTypeEnum.DAY.equals(dtEnum)){ | ||||||
|  |             saveTimeType = 3; | ||||||
|  |         } | ||||||
|  |         if(QueryDateTypeEnum.MONTH.equals(dtEnum)){ | ||||||
|  |             saveTimeType = 5; | ||||||
|  |         } | ||||||
|  |         if(QueryDateTypeEnum.YEAR.equals(dtEnum)){ | ||||||
|  |             saveTimeType = 6; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         LocalDateTime start = LocalDateTime.ofInstant(begin.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         LocalDateTime end = LocalDateTime.ofInstant(endSt.toInstant(), ZoneId.systemDefault()); | ||||||
|  | 
 | ||||||
|  |         if(sttp.contains("RR") || sttp.contains("ZZ") || sttp.contains("ZQ")){ | ||||||
|  |             return getDataByDeviceCode(deviceCode, 3, saveTimeType, start, end, col); | ||||||
|  |         } | ||||||
|  |         if("PP".equals(sttp)){ | ||||||
|  |           return getDataByDeviceCode(deviceCode, 4, saveTimeType, start, end, col); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     List<ReportData> getDataByDeviceCode(String deviceCode,Integer accessRules,Integer saveTimeType, | ||||||
|  |                                    LocalDateTime start,LocalDateTime end,String col){ | ||||||
|  |         List<ReportData> reportData=new ArrayList<>(); | ||||||
|  |         AnalyseCodeByAnalyseDataPO po=new AnalyseCodeByAnalyseDataPO(); | ||||||
|  |         po.setDeviceCode(deviceCode); | ||||||
|  | 
 | ||||||
|  |         List<AnalyzeDataConditionPO> signboardConditions=new ArrayList<>(); | ||||||
|  |         AnalyzeDataConditionPO conditionPO=new AnalyzeDataConditionPO(); | ||||||
|  |         conditionPO.setBeginTime(start); | ||||||
|  |         conditionPO.setEndTime(end); | ||||||
|  |         conditionPO.setSignages(col); | ||||||
|  | //        conditionPO.setKeepFigures(3);
 | ||||||
|  |         conditionPO.setAccessRules(accessRules); | ||||||
|  |         conditionPO.setSaveTimeType(saveTimeType); | ||||||
|  |         conditionPO.setTimeInterval(1); | ||||||
|  |         conditionPO.setFull(1); | ||||||
|  |         signboardConditions.add(conditionPO); | ||||||
|  |         po.setSignboardConditions(signboardConditions); | ||||||
|  | 
 | ||||||
|  |         Result<List<AnalyzeDataConditionVO>> result=analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); | ||||||
|  |         if(result==null || !result.isSuccess()){ | ||||||
|  |             return reportData; | ||||||
|  |         } | ||||||
|  |         List<AnalyzeDataConditionVO> datas=result.getData(); | ||||||
|  |         if(datas==null || datas.isEmpty()){ | ||||||
|  |             return reportData; | ||||||
|  |         } | ||||||
|  |         for(AnalyzeDataConditionVO vo:datas){ | ||||||
|  |             List<AnalyseDataTaosVO> dataTaosVOs=vo.getList(); | ||||||
|  |             for(AnalyseDataTaosVO vv:dataTaosVOs) { | ||||||
|  |                 if(vo.getSignage().equals(col)) { | ||||||
|  |                     ReportData data=new ReportData(); | ||||||
|  |                     data.setKeyStr(CommonUtil.getKeyBySaveTimeType(vv.getTs(),saveTimeType)); | ||||||
|  |                     String val=vv.getVal(); | ||||||
|  |                     data.setStcd(deviceCode); | ||||||
|  |                     data.setVal(val); | ||||||
|  |                     if(val!=null && !"".equals(val)) { | ||||||
|  |                         data.setValue(Double.valueOf(vv.getVal())); | ||||||
|  |                     }else{ | ||||||
|  |                         data.setValue(0.0); | ||||||
|  |                     } | ||||||
|  |                     data.setName(vo.getName()); | ||||||
|  |                     reportData.add(data); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return reportData; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     //获取测站最新值
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String,Object>> getLastValues(List<String> stcds,String sttp) { | ||||||
|  |         List<Map<String,Object>> result=new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |         List<DeviceSinglePropsValueVO> oldRzList=null; | ||||||
|  |         List<DeviceSinglePropsValueVO> oldInqList=null; | ||||||
|  |         List<DeviceSinglePropsValueVO> oldDrpList=null; | ||||||
|  | 
 | ||||||
|  |         List<DeviceSinglePropsValueVO> rzList=null; | ||||||
|  |         List<DeviceSinglePropsValueVO> inqList=null; | ||||||
|  |         List<DeviceSinglePropsValueVO> drpList=null; | ||||||
|  | 
 | ||||||
|  |         Date endTime =new Date(); | ||||||
|  |         Date beginTime= DateUtils.addMinutes(endTime,-60); | ||||||
|  |         Date beginTime1= DateUtils.addMinutes(beginTime,-60); | ||||||
|  |         //获取一个最新值
 | ||||||
|  |         if("RR".equals(sttp) || "ZQ".equals(sttp)){ | ||||||
|  |             rzList = getNewValue(stcds, "water_level", beginTime, endTime); | ||||||
|  |             inqList = getNewValue(stcds, "flow", beginTime, endTime); | ||||||
|  | 
 | ||||||
|  |             oldRzList = getNewValue(stcds, "water_level", beginTime1, beginTime); | ||||||
|  |             oldInqList = getNewValue(stcds, "flow", beginTime1, beginTime); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if("PP".equals(sttp)) { | ||||||
|  |             drpList = getNewValue(stcds, "rain", beginTime, endTime); | ||||||
|  |             oldDrpList = getNewValue(stcds, "rain", beginTime1, beginTime); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if("ZZ".equals(sttp)){ | ||||||
|  |             rzList = getNewValue(stcds, "water_level", beginTime, endTime); | ||||||
|  | //            inqList = getNewValue(stcds, "inq", beginTime, endTime);
 | ||||||
|  | 
 | ||||||
|  |             oldRzList = getNewValue(stcds, "water_level", beginTime1, beginTime); | ||||||
|  | //            oldInqList = getNewValue(stcds, "inq", beginTime1, beginTime);
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         for(String stcd:stcds) { | ||||||
|  |             Map<String,Object> map=new HashMap<>(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             map.put("stcd",stcd); | ||||||
|  |             if("RR".equals(sttp) || "ZQ".equals(sttp)){ | ||||||
|  |                 boolean inqFlag = true; | ||||||
|  |                 boolean rzFlag = true; | ||||||
|  |                 BigDecimal rz=getDataByStcd(stcd,rzList); | ||||||
|  |                 map.put("rz",rz); | ||||||
|  |                 BigDecimal inq=getDataByStcd(stcd,inqList); | ||||||
|  |                 map.put("inq",inq); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                 BigDecimal oldRz=getDataByStcd(stcd,oldRzList); | ||||||
|  |                 if (oldRz.compareTo(rz) > 0) { | ||||||
|  |                     rzFlag = false; | ||||||
|  |                 } | ||||||
|  |                 map.put("isRiseRz",rzFlag); | ||||||
|  | 
 | ||||||
|  |                 BigDecimal oldInq=getDataByStcd(stcd,oldInqList); | ||||||
|  |                 if (oldInq.compareTo(inq) > 0) { | ||||||
|  |                     inqFlag = false; | ||||||
|  |                 } | ||||||
|  |                 map.put("isRiseInq",inqFlag); | ||||||
|  |             } | ||||||
|  |             if("PP".equals(sttp)){ | ||||||
|  |                 boolean inqDrp = true; | ||||||
|  |                 BigDecimal drp=getDataByStcd(stcd,drpList); | ||||||
|  |                 map.put("drp",drp); | ||||||
|  | 
 | ||||||
|  |                 BigDecimal oldDrp=getDataByStcd(stcd,oldDrpList); | ||||||
|  |                 if (oldDrp.compareTo(drp) > 0) { | ||||||
|  |                     inqDrp = false; | ||||||
|  |                 } | ||||||
|  |                 map.put("isRiseDrp",inqDrp); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if("ZZ".equals(sttp)){ | ||||||
|  |                 boolean rzFlag = true; | ||||||
|  |                 BigDecimal rz=getDataByStcd(stcd,rzList); | ||||||
|  |                 map.put("rz",rz); | ||||||
|  | 
 | ||||||
|  |                 BigDecimal oldRz=getDataByStcd(stcd,oldRzList); | ||||||
|  |                 if (oldRz.compareTo(rz) > 0) { | ||||||
|  |                     rzFlag = false; | ||||||
|  |                 } | ||||||
|  |                 map.put("isRiseRz",rzFlag); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             result.add(map); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return result; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private BigDecimal getDataByStcd(String stcd,List<DeviceSinglePropsValueVO> data){ | ||||||
|  |         if(data==null || data.isEmpty()){ | ||||||
|  |             return BigDecimal.ZERO; | ||||||
|  |         } | ||||||
|  |         for(DeviceSinglePropsValueVO vo:data){ | ||||||
|  |             if(stcd.equals(vo.getDeviceCode())){ | ||||||
|  |                 String value=String.valueOf(vo.getValue()); | ||||||
|  |                 if(vo.getValue()!=null && !"".equals(value)) { | ||||||
|  |                     return new BigDecimal(value); | ||||||
|  |                 }else{ | ||||||
|  |                     return BigDecimal.ZERO; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return BigDecimal.ZERO; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     List<DeviceSinglePropsValueVO> getNewValue(List<String> stcds,String col,Date beginTime,Date endTime){ | ||||||
|  |         //获取一个最新值
 | ||||||
|  |         DeviceSinglePropsValueQuery query = new DeviceSinglePropsValueQuery(); | ||||||
|  |         query.setAccessRule("6"); | ||||||
|  |         query.setDeviceCodes(stcds); | ||||||
|  |         query.setSignage(col); | ||||||
|  |         query.setBeginTime(beginTime); | ||||||
|  |         query.setEndTime(endTime); | ||||||
|  |         Result<List<DeviceSinglePropsValueVO>> res=analyseDataSearchClient.getValueOfBacthDeviceCode(query); | ||||||
|  |         if(res==null || !res.isSuccess()){ | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         List<DeviceSinglePropsValueVO> list=res.getData(); | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取 对应(计算)值的遥测值 | ||||||
|  |      * @param deviceCode 设备编码 | ||||||
|  |      * @param startTime 开始时间 | ||||||
|  |      * @param endTime 结束时间 | ||||||
|  |      * @param calcType 0=最早值、1=最大值、2=最小值、3=平均值、4=(累计值/和值)、5=(变化值/差值) 6=最新值 | ||||||
|  | //     * @param saveTimeType 0-> s(秒) 1->、m(分)、2->h(小时)3->、d(天)4->、w(周)5->、n(自然月)、6->y(自然年)
 | ||||||
|  |      * @param col 对应的物理值 英文 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     @Override | ||||||
|  |     public Map<String,String> queryMaxOrMin(String deviceCode, Date startTime, Date endTime, | ||||||
|  |                                                 Integer calcType, String col) { | ||||||
|  |         Map<String,String> res=new HashMap<>(); | ||||||
|  | 
 | ||||||
|  |         List<String> signages=new ArrayList<>(); | ||||||
|  |         signages.add(col); | ||||||
|  |         ComputeBaseStrategyPO po=new ComputeBaseStrategyPO(); | ||||||
|  |         LocalDateTime start = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         po.setBeginTime(start); | ||||||
|  |         LocalDateTime end = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         po.setEndTime(end); | ||||||
|  |         po.setAccessRules(calcType); | ||||||
|  |         po.setDeviceCode(deviceCode); | ||||||
|  |         po.setSignages(signages); | ||||||
|  |         Result<List<AnalyseDataTaosVO>> result=analyseDataSearchClient.getComputeBaseStrategy(po); | ||||||
|  |         if(result==null || !result.isSuccess()){ | ||||||
|  |             return res; | ||||||
|  |         } | ||||||
|  |         List<AnalyseDataTaosVO> datas=result.getData(); | ||||||
|  | 
 | ||||||
|  |         if(datas!=null && !datas.isEmpty()){ | ||||||
|  |             for(AnalyseDataTaosVO vo:datas) { | ||||||
|  | //                if(col.equals(vo.getSignage())) {
 | ||||||
|  |                     String value=vo.getVal(); | ||||||
|  |                     String tm=vo.getTs(); | ||||||
|  |                     res.put(deviceCode, value); | ||||||
|  |                     res.put("tm", tm); | ||||||
|  | 
 | ||||||
|  | //                }
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return res; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private AnalyseCodeByAnalyseDataPO getAnalyseCodeByAnalyseDataPO(String deviceCode,Date startTime,Date endTime,Integer calcType, | ||||||
|  |                                                                      Integer saveTimeType,Integer timeInterval,String col){ | ||||||
|  |         AnalyseCodeByAnalyseDataPO analyzeDataCondition=new AnalyseCodeByAnalyseDataPO(); | ||||||
|  |         analyzeDataCondition.setDeviceCode(deviceCode); | ||||||
|  | 
 | ||||||
|  |         List<AnalyzeDataConditionPO> signboardConditions=new ArrayList<>(); | ||||||
|  |         AnalyzeDataConditionPO conditionPO=new AnalyzeDataConditionPO(); | ||||||
|  |         LocalDateTime start = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         conditionPO.setBeginTime(start); | ||||||
|  |         LocalDateTime end = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault()); | ||||||
|  |         conditionPO.setEndTime(end); | ||||||
|  |         conditionPO.setAccessRules(calcType); | ||||||
|  |         if(timeInterval == null) { | ||||||
|  |             timeInterval = calcTimeInterval(saveTimeType, start, end); | ||||||
|  |             //加1的目的 就是对小数位进行统一处理
 | ||||||
|  |             conditionPO.setTimeInterval(timeInterval + 1); | ||||||
|  |         }else{ | ||||||
|  |             conditionPO.setTimeInterval(timeInterval); | ||||||
|  |         } | ||||||
|  |         conditionPO.setSaveTimeType(saveTimeType); | ||||||
|  |         conditionPO.setFull(1); | ||||||
|  |         conditionPO.setSignages(col); | ||||||
|  | 
 | ||||||
|  | //        conditionPO.setKeepFigures(3);
 | ||||||
|  | 
 | ||||||
|  |         signboardConditions.add(conditionPO); | ||||||
|  |         analyzeDataCondition.setSignboardConditions(signboardConditions); | ||||||
|  |         return analyzeDataCondition; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //计算时间间隔
 | ||||||
|  |     private static Integer calcTimeInterval(Integer saveTimeType,LocalDateTime start,LocalDateTime end){ | ||||||
|  |         Duration duration = Duration.between(start,end); | ||||||
|  |         switch (saveTimeType) { | ||||||
|  |             case 1://分
 | ||||||
|  |                 return (int)duration.toMinutes(); | ||||||
|  |             case 2://时
 | ||||||
|  |                 return (int)duration.toHours(); | ||||||
|  |             case 3://天
 | ||||||
|  |                 return (int)duration.toDays(); | ||||||
|  |             case 4://周
 | ||||||
|  |                 return (int)duration.toDays()/7; | ||||||
|  |             case 5://月
 | ||||||
|  |                 LocalDate startDate = start.toLocalDate(); | ||||||
|  |                 LocalDate endDate = end.toLocalDate(); | ||||||
|  |                 return Period.between(startDate, endDate).getMonths(); | ||||||
|  |             case 6://年
 | ||||||
|  |                 startDate = start.toLocalDate(); | ||||||
|  |                 endDate = end.toLocalDate(); | ||||||
|  |                 return Period.between(startDate, endDate).getYears(); | ||||||
|  |             default: | ||||||
|  |                 return (int)duration.getSeconds(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service.impl; | ||||||
|  | 
 | ||||||
|  | import org.springblade.core.mp.base.BaseServiceImpl; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.mapper.StStbprpBMapper; | ||||||
|  | import com.hnac.hzims.waterrain.service.IStStbprpBService; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class StStbprpBServiceImpl extends BaseServiceImpl<StStbprpBMapper, StStbprpB> implements IStStbprpBService { | ||||||
|  | } | ||||||
| @ -0,0 +1,235 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service.impl; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStPptnR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRiverR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.HzStRsvrR; | ||||||
|  | import com.hnac.hzims.waterrain.entity.ReorganizeData; | ||||||
|  | import com.hnac.hzims.waterrain.enums.WaterFlowRainEnum; | ||||||
|  | import com.hnac.hzims.waterrain.mapper.WaterRainReorganizeMapper; | ||||||
|  | import com.hnac.hzims.waterrain.service.IWaterRainReorganizeService; | ||||||
|  | import com.hnac.hzims.waterrain.util.DateUtil; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | import javax.annotation.Resource; | ||||||
|  | import java.text.ParseException; | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class WaterRainReorganizeServiceImpl implements IWaterRainReorganizeService { | ||||||
|  |     @Resource | ||||||
|  |     WaterRainReorganizeMapper waterRainReorganizeMapper; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean batchInsert(ReorganizeData data) { | ||||||
|  |         String sttp=data.getSttp(); | ||||||
|  |         if(WaterFlowRainEnum.RR.getCode().equals(sttp)){ | ||||||
|  |             List<HzStRsvrR> list=dealHzStRsvrR(data); | ||||||
|  |             if(list!=null && !list.isEmpty()) { | ||||||
|  |                 batchStRsvrR(list); | ||||||
|  |                 return true; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)){ | ||||||
|  |             List<HzStRiverR> list=dealHzStRiverR(data); | ||||||
|  |             if(list!=null && !list.isEmpty()) { | ||||||
|  |                 batchStRiverR(list); | ||||||
|  |                 return true; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.PP.getCode().equals(sttp)){ | ||||||
|  |             List<HzStPptnR> list=dealHzStPptnR(data); | ||||||
|  |             if(list!=null && !list.isEmpty()) { | ||||||
|  |                 batchStPptnR(list); | ||||||
|  |                 return true; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private List<HzStRsvrR> dealHzStRsvrR(ReorganizeData data){ | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); | ||||||
|  |         List<HzStRsvrR> list=new ArrayList<>(); | ||||||
|  |         List<Map<String,Object>> mapList=data.getData(); | ||||||
|  |         if(mapList!=null && !mapList.isEmpty()){ | ||||||
|  |             for(Map<String,Object> param:mapList){ | ||||||
|  | 
 | ||||||
|  |                 String tm=String.valueOf(param.get("tm")); | ||||||
|  |                 String rz=String.valueOf(param.get("water_level")); | ||||||
|  |                 String inq=String.valueOf(param.get("flow")); | ||||||
|  | 
 | ||||||
|  |                 HzStRsvrR stRsvrR=new HzStRsvrR(); | ||||||
|  |                 stRsvrR.setStcd(data.getStcd()); | ||||||
|  |                 stRsvrR.setInq(Double.valueOf(inq)); | ||||||
|  |                 stRsvrR.setRz(Double.valueOf(rz)); | ||||||
|  |                 try { | ||||||
|  |                     stRsvrR.setTm(sdf.parse(tm)); | ||||||
|  |                 } catch (ParseException e) { | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|  |                 list.add(stRsvrR); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private List<HzStRiverR> dealHzStRiverR(ReorganizeData data){ | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); | ||||||
|  |         List<HzStRiverR> list=new ArrayList<>(); | ||||||
|  |         List<Map<String,Object>> mapList=data.getData(); | ||||||
|  |         if(mapList!=null && !mapList.isEmpty()){ | ||||||
|  |             for(Map<String,Object> param:mapList){ | ||||||
|  | 
 | ||||||
|  |                 String tm=String.valueOf(param.get("tm")); | ||||||
|  |                 String z=String.valueOf(param.get("water_level")); | ||||||
|  |                 String q=String.valueOf(param.get("flow")); | ||||||
|  | 
 | ||||||
|  |                 HzStRiverR stRiverR=new HzStRiverR(); | ||||||
|  |                 stRiverR.setStcd(data.getStcd()); | ||||||
|  |                 stRiverR.setQ(Double.valueOf(q)); | ||||||
|  |                 stRiverR.setZ(Double.valueOf(z)); | ||||||
|  |                 try { | ||||||
|  |                     stRiverR.setTm(sdf.parse(tm)); | ||||||
|  |                 } catch (ParseException e) { | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|  |                 list.add(stRiverR); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private List<HzStPptnR> dealHzStPptnR(ReorganizeData data){ | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); | ||||||
|  |         List<HzStPptnR> list=new ArrayList<>(); | ||||||
|  |         List<Map<String,Object>> mapList=data.getData(); | ||||||
|  |         if(mapList!=null && !mapList.isEmpty()){ | ||||||
|  |             for(Map<String,Object> param:mapList){ | ||||||
|  | 
 | ||||||
|  |                 String tm=String.valueOf(param.get("tm")); | ||||||
|  |                 String drp=String.valueOf(param.get("rain")); | ||||||
|  | 
 | ||||||
|  |                 HzStPptnR stPptnR=new HzStPptnR(); | ||||||
|  |                 stPptnR.setStcd(data.getStcd()); | ||||||
|  |                 stPptnR.setDrp(Double.valueOf(drp)); | ||||||
|  |                 try { | ||||||
|  |                     stPptnR.setTm(sdf.parse(tm)); | ||||||
|  |                 } catch (ParseException e) { | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|  |                 list.add(stPptnR); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void batchStPptnR(List<HzStPptnR> list) { | ||||||
|  |         waterRainReorganizeMapper.batchStPptnR(list); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void batchStRiverR(List<HzStRiverR> list) { | ||||||
|  |         waterRainReorganizeMapper.batchStRiverR(list); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void batchStRsvrR(List<HzStRsvrR> list) { | ||||||
|  |         waterRainReorganizeMapper.batchStRsvrR(list); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int insertHzStPptnR(HzStPptnR hzStPptnR) { | ||||||
|  |         return waterRainReorganizeMapper.insertHzStPptnR(hzStPptnR); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int insertHzStRsvrR(HzStRsvrR hzStRsvrR) { | ||||||
|  |         return waterRainReorganizeMapper.insertHzStRsvrR(hzStRsvrR); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int insertHzStRiverR(HzStRiverR hzStRiverR) { | ||||||
|  |         return waterRainReorganizeMapper.insertHzStRiverR(hzStRiverR); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String, Object>> queryStPptnR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap=DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.queryStPptnR(stcd,begin,endSt); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String, Object>> queryStRsvrR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap=DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.queryStRsvrR(stcd,begin,endSt); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String, Object>> queryStRiverR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap= DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.queryStRiverR(stcd,begin,endSt); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean delStPptnR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap= DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.delStPptnR(stcd,begin,endSt)>0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean delStRsvrR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap= DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.delStRsvrR(stcd,begin,endSt)>0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean delStRiverR(String stcd, String yearMonth) { | ||||||
|  |         Map<String,Date> dateMap= DateUtil.getStartEnd(yearMonth); | ||||||
|  |         Date begin= dateMap.get("start"); | ||||||
|  |         Date endSt= dateMap.get("end"); | ||||||
|  |         return waterRainReorganizeMapper.delStRiverR(stcd,begin,endSt)>0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Map<String, Object>> queryData(String stcd, String sttp, String yearMonth) { | ||||||
|  |         if(WaterFlowRainEnum.RR.getCode().equals(sttp)){ | ||||||
|  |             return queryStRsvrR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)){ | ||||||
|  |             return queryStRiverR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.PP.getCode().equals(sttp)){ | ||||||
|  |             return queryStPptnR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean delData(String stcd, String sttp, String yearMonth) { | ||||||
|  |         if(WaterFlowRainEnum.RR.getCode().equals(sttp)){ | ||||||
|  |             return delStRsvrR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.ZZ.getCode().equals(sttp) || WaterFlowRainEnum.ZQ.getCode().equals(sttp)){ | ||||||
|  |             return delStRiverR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         if(WaterFlowRainEnum.PP.getCode().equals(sttp)){ | ||||||
|  |             return delStPptnR(stcd,yearMonth); | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.hnac.hzims.waterrain.service.impl; | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.service.IWaterRainService; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class WaterRainServiceImpl implements IWaterRainService { | ||||||
|  | } | ||||||
| @ -0,0 +1,31 @@ | |||||||
|  | package com.hnac.hzims.waterrain.util; | ||||||
|  | 
 | ||||||
|  | import java.text.ParseException; | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.Calendar; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | public class DateUtil { | ||||||
|  |     public static Map<String,Date> getStartEnd(String yearMonth){ | ||||||
|  |         Map<String,Date> data=new HashMap<>(); | ||||||
|  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||||||
|  |         try { | ||||||
|  |             Date begin = sdf.parse(yearMonth+"-01 00:00:00"); | ||||||
|  |             // 最大天数
 | ||||||
|  |             Date endSt = sdf.parse(yearMonth+"-"+getMaxDayByYearMonth(begin)+" 23:59:59"); | ||||||
|  |             data.put("start",begin); | ||||||
|  |             data.put("end",endSt); | ||||||
|  |         } catch (ParseException e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |         } | ||||||
|  |         return data; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static int getMaxDayByYearMonth(Date start) { | ||||||
|  |         Calendar calendar = Calendar.getInstance(); | ||||||
|  |         calendar.setTime(start); | ||||||
|  |         return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,64 @@ | |||||||
|  | package com.hnac.hzims.waterrain.util; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | 
 | ||||||
|  | import java.math.BigDecimal; | ||||||
|  | 
 | ||||||
|  | public class GisUtil { | ||||||
|  |     public static void dealGisData(StStbprpB stStbprpB){ | ||||||
|  |         if(stStbprpB!=null) { | ||||||
|  |             stStbprpB.setLgtd(dealData(stStbprpB.getNlgtd())); | ||||||
|  |             stStbprpB.setLttd(dealData(stStbprpB.getNlttd())); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | //    public static void main(String[] args) {
 | ||||||
|  | //        System.out.println(dealData(new BigDecimal("10.121806")));
 | ||||||
|  | //    }
 | ||||||
|  | 
 | ||||||
|  |     private static String dealData(Double data0){ | ||||||
|  |         if(data0!=null && new BigDecimal(data0).compareTo(BigDecimal.ZERO)!=0) { | ||||||
|  |             BigDecimal data=new BigDecimal(data0); | ||||||
|  |             //度
 | ||||||
|  |             String str=intVal(data)+"°"; | ||||||
|  | 
 | ||||||
|  |             //分
 | ||||||
|  |             String dataStr = String.valueOf(data); | ||||||
|  |             if(dataStr.indexOf(".")>-1) { | ||||||
|  |                 String[] dataArr = dataStr.split("\\."); | ||||||
|  |                 data = mul("0." + dataArr[1]); | ||||||
|  |                 str += intVal(data) + "'"; | ||||||
|  |             }else{ | ||||||
|  |                 str += "0'"; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //秒
 | ||||||
|  |             dataStr=String.valueOf(data); | ||||||
|  |             if(dataStr.indexOf(".")>-1) { | ||||||
|  |                 String[] dataArr = dataStr.split("\\."); | ||||||
|  |                 data = mul("0." + dataArr[1]); | ||||||
|  |                 str+=data.setScale(5, BigDecimal.ROUND_DOWN).stripTrailingZeros()+"\""; | ||||||
|  |             }else{ | ||||||
|  |                 str += "0\""; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             return str; | ||||||
|  |         } | ||||||
|  |         return "0°"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static int intVal(BigDecimal data){ | ||||||
|  |         return data.setScale( 0, BigDecimal.ROUND_DOWN).intValue(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static BigDecimal mul(String data){ | ||||||
|  |         return new BigDecimal(data).multiply(new BigDecimal("60")); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | //    public static void main(String[] args) {
 | ||||||
|  | //        String str=dealData(new BigDecimal("0.0"));
 | ||||||
|  | //        System.out.println(str);
 | ||||||
|  | //    }
 | ||||||
|  | } | ||||||
| @ -0,0 +1,26 @@ | |||||||
|  | package com.hnac.hzims.waterrain.util; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | 
 | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | public class ParamUtil { | ||||||
|  |     public static LambdaQueryWrapper<StStbprpB> conditionStStbprpB(Map<String, Object> param){ | ||||||
|  |         LambdaQueryWrapper<StStbprpB> wrapper=new LambdaQueryWrapper(); | ||||||
|  |         if(param.get("stcd")!=null) { | ||||||
|  |             wrapper.like(StStbprpB::getStcd,param.get("stcd")); | ||||||
|  |         } | ||||||
|  |         if(param.get("stnm")!=null && !"".equals(param.get("stnm").toString())) { | ||||||
|  |             wrapper.like(StStbprpB::getStnm,param.get("stnm")); | ||||||
|  |         } | ||||||
|  |         if(param.get("sttp")!=null) { | ||||||
|  |             String sttp=param.get("sttp").toString(); | ||||||
|  |             wrapper.in(StStbprpB::getSttp,sttp.split(",")); | ||||||
|  |         } | ||||||
|  |         if(param.get("rscd")!=null) { | ||||||
|  |             wrapper.like(StStbprpB::getRscd,param.get("rscd")); | ||||||
|  |         } | ||||||
|  |         return wrapper; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,27 @@ | |||||||
|  | package com.hnac.hzims.waterrain.wrapper; | ||||||
|  | 
 | ||||||
|  | import org.springblade.core.mp.support.BaseEntityWrapper; | ||||||
|  | import org.springblade.core.tool.utils.BeanUtil; | ||||||
|  | import org.springblade.core.tool.utils.Func; | ||||||
|  | import org.springblade.system.cache.DictCache; | ||||||
|  | import com.hnac.hzims.waterrain.entity.StStbprpB; | ||||||
|  | import com.hnac.hzims.waterrain.vo.StStbprpBVo; | ||||||
|  | 
 | ||||||
|  | import java.util.Objects; | ||||||
|  | 
 | ||||||
|  | public class StStbprpBWrapper extends BaseEntityWrapper<StStbprpB, StStbprpBVo> { | ||||||
|  |     public StStbprpBWrapper() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static StStbprpBWrapper build() { | ||||||
|  |         return new StStbprpBWrapper(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public StStbprpBVo entityVO(StStbprpB stStbprpB) { | ||||||
|  |         StStbprpBVo stbprpBVo = (StStbprpBVo) Objects.requireNonNull(BeanUtil.copy(stStbprpB, StStbprpBVo.class)); | ||||||
|  |         String sttpName = DictCache.getValue("st_station_type", Func.toStr(stbprpBVo.getSttp())); | ||||||
|  |         stbprpBVo.setSttpName(sttpName); | ||||||
|  |         return stbprpBVo; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,30 @@ | |||||||
|  | #服务器端口 | ||||||
|  | server: | ||||||
|  |   port: 8200 | ||||||
|  | 
 | ||||||
|  | #数据源配置 | ||||||
|  | #spring: | ||||||
|  | #  datasource: | ||||||
|  | #    url: ${blade.datasource.dev.url} | ||||||
|  | #    username: ${blade.datasource.dev.username} | ||||||
|  | #    password: ${blade.datasource.dev.password} | ||||||
|  | 
 | ||||||
|  | spring: | ||||||
|  |   #排除DruidDataSourceAutoConfigure | ||||||
|  |   autoconfigure: | ||||||
|  |     exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure | ||||||
|  |   datasource: | ||||||
|  |     dynamic: | ||||||
|  |       #设置默认的数据源或者数据源组,默认值即为master | ||||||
|  |       primary: master | ||||||
|  |       datasource: | ||||||
|  |         master: | ||||||
|  |           url: jdbc:mysql://127.0.0.1:3306/equipment?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true | ||||||
|  |           username: root | ||||||
|  |           password: 123456 | ||||||
|  |         slave: | ||||||
|  |           url: jdbc:mysql://127.0.0.1:3306/equipment?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true | ||||||
|  |           username: root | ||||||
|  |           password: 123456 | ||||||
|  | demo: | ||||||
|  |   name: aaa | ||||||
| @ -0,0 +1,28 @@ | |||||||
|  | #服务器端口 | ||||||
|  | server: | ||||||
|  |   port: 8200 | ||||||
|  | 
 | ||||||
|  | #数据源配置 | ||||||
|  | #spring: | ||||||
|  | #  datasource: | ||||||
|  | #    url: ${blade.datasource.prod.url} | ||||||
|  | #    username: ${blade.datasource.prod.username} | ||||||
|  | #    password: ${blade.datasource.prod.password} | ||||||
|  | 
 | ||||||
|  | spring: | ||||||
|  |   #排除DruidDataSourceAutoConfigure | ||||||
|  |   autoconfigure: | ||||||
|  |     exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure | ||||||
|  |   datasource: | ||||||
|  |     dynamic: | ||||||
|  |       #设置默认的数据源或者数据源组,默认值即为master | ||||||
|  |       primary: master | ||||||
|  |       datasource: | ||||||
|  |         master: | ||||||
|  |           url: ${blade.datasource.demo.master.url} | ||||||
|  |           username: ${blade.datasource.demo.master.username} | ||||||
|  |           password: ${blade.datasource.demo.master.password} | ||||||
|  |         slave: | ||||||
|  |           url: ${blade.datasource.demo.slave.url} | ||||||
|  |           username: ${blade.datasource.demo.slave.username} | ||||||
|  |           password: ${blade.datasource.demo.slave.password} | ||||||
| @ -0,0 +1,28 @@ | |||||||
|  | #服务器端口 | ||||||
|  | server: | ||||||
|  |   port: 8200 | ||||||
|  | 
 | ||||||
|  | #数据源配置 | ||||||
|  | #spring: | ||||||
|  | #  datasource: | ||||||
|  | #    url: ${blade.datasource.test.url} | ||||||
|  | #    username: ${blade.datasource.test.username} | ||||||
|  | #    password: ${blade.datasource.test.password} | ||||||
|  | 
 | ||||||
|  | spring: | ||||||
|  |   #排除DruidDataSourceAutoConfigure | ||||||
|  |   autoconfigure: | ||||||
|  |     exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure | ||||||
|  |   datasource: | ||||||
|  |     dynamic: | ||||||
|  |       #设置默认的数据源或者数据源组,默认值即为master | ||||||
|  |       primary: master | ||||||
|  |       datasource: | ||||||
|  |         master: | ||||||
|  |           url: ${blade.datasource.demo.master.url} | ||||||
|  |           username: ${blade.datasource.demo.master.username} | ||||||
|  |           password: ${blade.datasource.demo.master.password} | ||||||
|  |         slave: | ||||||
|  |           url: ${blade.datasource.demo.slave.url} | ||||||
|  |           username: ${blade.datasource.demo.slave.username} | ||||||
|  |           password: ${blade.datasource.demo.slave.password} | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | #mybatis-plus配置 | ||||||
|  | mybatis-plus: | ||||||
|  |   mapper-locations: classpath:com/hnac/hzims/**/mapper/*Mapper.xml | ||||||
|  |   #实体扫描,多个package用逗号或者分号分隔 | ||||||
|  |   typeAliasesPackage: com.hnac.hzims.**.entity | ||||||
|  | 
 | ||||||
|  | #swagger扫描路径配置 | ||||||
|  | swagger: | ||||||
|  |   base-packages: | ||||||
|  |     - org.springbalde | ||||||
|  |     - com.hnac | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  |   _  _     ____    ___   __  __    ___             _   _     ___            _   _     ___ | ||||||
|  |  | || |   |_  /   |_ _| |  \/  |  / __|     o O O | | | |   | _ \    o O O | | | |   | _ \ | ||||||
|  |  | __ |    / /     | |  | |\/| |  \__ \    o      | |_| |   |  _/   o      | |_| |   |  _/ | ||||||
|  |  |_||_|   /___|   |___| |_|__|_|  |___/   TS__[O]  \___/   _|_|_   TS__[O]  \___/   _|_|_ | ||||||
|  | _|"""""|_|"""""|_|"""""|_|"""""|_|"""""| {======|_|"""""|_| """ | {======|_|"""""|_| """ | | ||||||
|  | "`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'./o--000'"`-0-0-'"`-0-0-'./o--000'"`-0-0-'"`-0-0-' | ||||||
|  | 
 | ||||||
					Loading…
					
					
				
		Reference in new issue