diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/pom.xml new file mode 100644 index 0000000..71b49d0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-dam-safety-monitor-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TBuilding.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TBuilding.java new file mode 100644 index 0000000..ac34d74 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TBuilding.java @@ -0,0 +1,24 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 建筑物信息表 + */ +@Data +@TableName("t_building") +public class TBuilding extends BaseEntity { + @ApiModelProperty("水库编号") + private String rscd; + @ApiModelProperty("建筑物名称") + private String name; + @ApiModelProperty("建筑物分级路径") + private String ipath; + @ApiModelProperty("简介") + private String brief; + @ApiModelProperty("图片地址") + private String attach; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TProjInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TProjInfo.java new file mode 100644 index 0000000..6e66a05 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TProjInfo.java @@ -0,0 +1,38 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * 工程物信息表 + */ +@Data +@TableName("t_projinfo") +@EqualsAndHashCode(callSuper = true) +public class TProjInfo extends BaseEntity { + @ApiModelProperty("水库编码") + private String rscd; + @ApiModelProperty("工程名称") + private String projName; + @ApiModelProperty("工程编号") + private String projCode; + @ApiModelProperty("开工日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date startDate; + @ApiModelProperty("竣工日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date completeDate; + @ApiModelProperty("蓄水日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date storeWaterDate; + @ApiModelProperty("工程所在位置") + private String location; + @ApiModelProperty("备注") + private String rm; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TSectionConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TSectionConfig.java new file mode 100644 index 0000000..8df2e9f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/TSectionConfig.java @@ -0,0 +1,34 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 大坝断面数据配置表 + */ +@Data +@TableName("t_section_config") +public class TSectionConfig implements Serializable { + @ApiModelProperty("渗流量测点编号") + @TableId(type = IdType.INPUT) + private String stcd; + @ApiModelProperty("断面编号") + private String sectionNo; + @ApiModelProperty("是否显示浸润线") + private String opinion; + @ApiModelProperty("x轴") + private BigDecimal xzhou; + @ApiModelProperty("y轴最大值") + private BigDecimal ymax; + @ApiModelProperty("y轴最小值") + private BigDecimal ymin; + @ApiModelProperty("警戒值") + private BigDecimal warm; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDamsB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDamsB.java new file mode 100644 index 0000000..7e6f43a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDamsB.java @@ -0,0 +1,32 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 断面特征点信息表 + */ +@Data +@TableName("wrp_dams_b") +public class WrpDamsB implements Serializable { + @ApiModelProperty("断面编号") + private String damcd; + @ApiModelProperty("特征点编号") + @TableId(type= IdType.INPUT) + private String damscd; + @ApiModelProperty("特征点名称") + private String damsnm; + @ApiModelProperty("起点距(m)") + private BigDecimal redi; + @ApiModelProperty("高程(m)") + private BigDecimal poel; + @ApiModelProperty("更新时间") + private Date dtuptm; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrhrdsmp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrhrdsmp.java new file mode 100644 index 0000000..80b892e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrhrdsmp.java @@ -0,0 +1,56 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + *水平位移监测测点 + */ +@Data +@TableName("wrp_dfr_srhrdsmp") +@EqualsAndHashCode(callSuper = true) +public class WrpDfrSrhrdsmp extends BaseEntity { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("断面编号") + private String damcd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("轴距") + private BigDecimal ofax; + @ApiModelProperty("高程") + private BigDecimal el; + @ApiModelProperty("基准值 X") + private BigDecimal stvlx; + @ApiModelProperty("基准值 Y") + private BigDecimal stvly; + @ApiModelProperty("位移阈值") + private BigDecimal xyhrds; + @ApiModelProperty("型式") + private String tp; + @ApiModelProperty("基础情况") + private String bsin; + @ApiModelProperty("安装日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date indt; + @ApiModelProperty("测定日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dtdt; + @ApiModelProperty("仪器编号") + private String dvcd; + @ApiModelProperty("经度") + private BigDecimal eslg; + @ApiModelProperty("纬度") + private BigDecimal nrlt; + @ApiModelProperty("备注") + private String rm; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsbp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsbp.java new file mode 100644 index 0000000..786ca2d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsbp.java @@ -0,0 +1,55 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 监测基点表 + */ +@Data +@TableName("wrp_dfr_srvrdsbp") +@EqualsAndHashCode(callSuper = true) +public class WrpDfrSrvrdsbp extends BaseEntity { + @ApiModelProperty("水库代码") + private String rscd; + @ApiModelProperty("水工建筑物id") + private Long hycncd; + @ApiModelProperty("基点编号") + private String bpcd; + @ApiModelProperty("考证信息日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date txindt; + @ApiModelProperty("基点类型") + private String bptp; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("轴距") + private BigDecimal ofax; + @ApiModelProperty("高程") + private BigDecimal el; + @ApiModelProperty("型式") + private String tp; + @ApiModelProperty("基础情况") + private String bsin; + @ApiModelProperty("安装日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date indt; + @ApiModelProperty("测定日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dtdt; + @ApiModelProperty("经度") + private BigDecimal lgtd; + @ApiModelProperty("纬度") + private BigDecimal lttd; + @ApiModelProperty("工作状态") + private String wkcn; + @ApiModelProperty("备注") + private String rm; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsmp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsmp.java new file mode 100644 index 0000000..fb47eeb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpDfrSrvrdsmp.java @@ -0,0 +1,53 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 垂直位移监测测点 + */ +@Data +@TableName("wrp_dfr_srvrdsmp") +@EqualsAndHashCode(callSuper = true) +public class WrpDfrSrvrdsmp extends BaseEntity { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("断面编号") + private String damcd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("轴距") + private BigDecimal ofax; + @ApiModelProperty("初始高程") + private BigDecimal inel; + @ApiModelProperty("位移阈值") + private BigDecimal vrds; + @ApiModelProperty("型式") + private String tp; + @ApiModelProperty("基础情况") + private String bsin; + @ApiModelProperty("安装日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date indt; + @ApiModelProperty("测定日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dtdt; + @ApiModelProperty("仪器编号") + private String dvcd; + @ApiModelProperty("经度") + private BigDecimal eslg; + @ApiModelProperty("纬度") + private BigDecimal nrlt; + @ApiModelProperty("备注") + private String rm; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSectionB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSectionB.java new file mode 100644 index 0000000..4159e39 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSectionB.java @@ -0,0 +1,38 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; + +/** + * 大坝断面信息表 + */ +@Data +@TableName("wrp_section_b") +@EqualsAndHashCode(callSuper = true) +public class WrpSectionB extends BaseEntity { + @ApiModelProperty("水库编号") + private String rscd; + @ApiModelProperty("建筑物id") + private Long buildingId; + @ApiModelProperty("断面编码") + private String damcd; + @ApiModelProperty("断面名称") + private String damnm; + @ApiModelProperty("防渗墙类型") + private String wallType; + @ApiModelProperty("断面长度") + private BigDecimal damlen; + @ApiModelProperty("断面宽度") + private BigDecimal damwd; + @ApiModelProperty("备注") + private String rm; + @ApiModelProperty("预留字段") + private String text; + @ApiModelProperty("图片地址") + private String attach; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgPztb.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgPztb.java new file mode 100644 index 0000000..7e3884c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgPztb.java @@ -0,0 +1,58 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 测压管测点 + */ +@Data +@TableName("wrp_spg_pztb") +@EqualsAndHashCode(callSuper = true) +public class WrpSpgPztb extends BaseEntity { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("断面编号") + private String damcd; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("坝轴距") + private BigDecimal ofax; + @ApiModelProperty("监测部位") + private String msps; + + @ApiModelProperty("监测类型") + private String mstp; + @ApiModelProperty("安装高程") + private BigDecimal el; + @ApiModelProperty("进水段底高程") + private BigDecimal ipbtel; + @ApiModelProperty("进水段顶高程") + private BigDecimal iptpel; + @ApiModelProperty("管口高程") + private BigDecimal tbtpel; + @ApiModelProperty("管底高程") + private BigDecimal tbbtel; + @ApiModelProperty("水位阈值高程") + private BigDecimal pztbtel; + + @ApiModelProperty("仪器编号") + private String dvcd; + @ApiModelProperty("经度") + private BigDecimal eslg; + @ApiModelProperty("纬度") + private BigDecimal nrlt; + @ApiModelProperty("备注") + private String rm; + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpprmp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpprmp.java new file mode 100644 index 0000000..019f351 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpprmp.java @@ -0,0 +1,52 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 渗流压力测点信息表 + */ +@Data +@TableName("wrp_spg_spprmp") +@EqualsAndHashCode(callSuper = true) +public class WrpSpgSpprmp extends BaseEntity { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("断面编码") + private String damcd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("考证信息日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date txindt; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("轴距") + private BigDecimal ofax; + @ApiModelProperty("高程") + private BigDecimal el; + @ApiModelProperty("监测类型") + private String mstp; + @ApiModelProperty("透水段底高程") + private BigDecimal pmbtel; + @ApiModelProperty("透水段顶高程") + private BigDecimal pmtpel; + @ApiModelProperty("安装日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date indt; + @ApiModelProperty("仪器出厂编号") + private String dvfccd; + @ApiModelProperty("工作状态") + private String wkcn; + @ApiModelProperty("备注") + private String rm; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpqnmp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpqnmp.java new file mode 100644 index 0000000..4f26d7b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/entity/WrpSpgSpqnmp.java @@ -0,0 +1,45 @@ +package org.springblade.damsafety.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 渗流量测点 + */ +@Data +@TableName("wrp_spg_spqnmp") +@EqualsAndHashCode(callSuper = true) +public class WrpSpgSpqnmp extends BaseEntity { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("断面编号") + private String damcd; + @ApiModelProperty("桩号") + private String ch; + @ApiModelProperty("轴距") + private BigDecimal ofax; + @ApiModelProperty("高程") + private BigDecimal el; + @ApiModelProperty("渗流阈值") + private BigDecimal spprwl; + @ApiModelProperty("安装日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date indt; + @ApiModelProperty("仪器编号") + private String dvcd; + @ApiModelProperty("经度") + private BigDecimal eslg; + @ApiModelProperty("纬度") + private BigDecimal nrlt; + @ApiModelProperty("备注") + private String rm; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/feign/IWrpSectionBClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/feign/IWrpSectionBClient.java new file mode 100644 index 0000000..c12f15b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/feign/IWrpSectionBClient.java @@ -0,0 +1,26 @@ +package org.springblade.damsafety.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.damsafety.vo.WrpSectionBVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = "dam-safety", + url = "${feign.dam-safety:}" +) +public interface IWrpSectionBClient { + String API_PREFIX = "/wrpSectionBClient"; + String LIST = API_PREFIX + "/list"; + + /** + * 获取断面列表 + * + * @return + */ + @GetMapping(LIST) + R> list(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TBuildingVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TBuildingVo.java new file mode 100644 index 0000000..d786042 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TBuildingVo.java @@ -0,0 +1,8 @@ +package org.springblade.damsafety.vo; + +import lombok.Data; +import org.springblade.damsafety.entity.TBuilding; + +public class TBuildingVo extends TBuilding { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TProjInfoVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TProjInfoVo.java new file mode 100644 index 0000000..edc283b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/TProjInfoVo.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.TProjInfo; + +public class TProjInfoVo extends TProjInfo { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrhrdsmpVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrhrdsmpVo.java new file mode 100644 index 0000000..6fd1d6c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrhrdsmpVo.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpDfrSrhrdsmp; + +public class WrpDfrSrhrdsmpVo extends WrpDfrSrhrdsmp { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsbpVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsbpVo.java new file mode 100644 index 0000000..ed41462 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsbpVo.java @@ -0,0 +1,6 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; + +public class WrpDfrSrvrdsbpVo extends WrpDfrSrvrdsbp { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsmpVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsmpVo.java new file mode 100644 index 0000000..e50f2f9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpDfrSrvrdsmpVo.java @@ -0,0 +1,6 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; + +public class WrpDfrSrvrdsmpVo extends WrpDfrSrvrdsmp { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSectionBVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSectionBVO.java new file mode 100644 index 0000000..544cc6f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSectionBVO.java @@ -0,0 +1,15 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; +import org.springblade.damsafety.entity.WrpSectionB; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = true) +public class WrpSectionBVO extends WrpSectionB { + //测点集合 + private List points; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgPztbVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgPztbVo.java new file mode 100644 index 0000000..41501b5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgPztbVo.java @@ -0,0 +1,6 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpSpgPztb; + +public class WrpSpgPztbVo extends WrpSpgPztb { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpprmpVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpprmpVo.java new file mode 100644 index 0000000..a9b4a85 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpprmpVo.java @@ -0,0 +1,6 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpSpgSpprmp; + +public class WrpSpgSpprmpVo extends WrpSpgSpprmp { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpqnmpVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpqnmpVo.java new file mode 100644 index 0000000..07e7aa8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/dam-safety-monitor-service-api/src/main/java/org/springblade/damsafety/vo/WrpSpgSpqnmpVo.java @@ -0,0 +1,6 @@ +package org.springblade.damsafety.vo; + +import org.springblade.damsafety.entity.WrpSpgSpqnmp; + +public class WrpSpgSpqnmpVo extends WrpSpgSpqnmp { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/pom.xml new file mode 100644 index 0000000..e40490c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/pom.xml @@ -0,0 +1,17 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-engineering-management-api + ${project.artifactId} + jar + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/src/main/java/org/springblade/engineer_management/util/DownLoadUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/src/main/java/org/springblade/engineer_management/util/DownLoadUtil.java new file mode 100644 index 0000000..9f0ac95 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/engineering-management-service-api/src/main/java/org/springblade/engineer_management/util/DownLoadUtil.java @@ -0,0 +1,33 @@ +package org.springblade.engineer_management.util; + +import org.apache.commons.io.FileUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; + +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; + +public class DownLoadUtil { + public DownLoadUtil() { + } + + public static ResponseEntity downLoad(File downFile) throws IOException { + if (!downFile.exists()) { +// throw new HZException("500", "该文件不存在,请查证"); + return null; + } else { + byte[] data = FileUtils.readFileToByteArray(downFile); + return downLoad(data, downFile.getName()); + } + } + + public static ResponseEntity downLoad(byte[] data, String downName) throws IOException { + HttpHeaders headers = new HttpHeaders(); + headers.setContentDispositionFormData("attachment", URLEncoder.encode(downName, "UTF-8")); + headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); + return new ResponseEntity(data, headers, HttpStatus.OK); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/general-dispatching-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/general-dispatching-service-api/pom.xml new file mode 100644 index 0000000..87b6407 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/general-dispatching-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-general-dispatching-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/pom.xml new file mode 100644 index 0000000..66e3b54 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-hz3000-real-data-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/DataGridModel.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/DataGridModel.java new file mode 100644 index 0000000..a252fc3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/DataGridModel.java @@ -0,0 +1,39 @@ +package org.springblade.hz3000_real_data.entity; + + +import java.io.Serializable; +import java.util.List; + +public class DataGridModel implements Serializable { + private static final long serialVersionUID = 8591890308861767849L; + private long total = 0L; + private List rows; + private List footer; + + public DataGridModel() { + } + + public List getFooter() { + return this.footer; + } + + public void setFooter(List footer) { + this.footer = footer; + } + + public long getTotal() { + return this.total; + } + + public void setTotal(long total) { + this.total = total; + } + + public List getRows() { + return this.rows; + } + + public void setRows(List rows) { + this.rows = rows; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/ListPageUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/ListPageUtil.java new file mode 100644 index 0000000..b46b4b0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/ListPageUtil.java @@ -0,0 +1,28 @@ +package org.springblade.hz3000_real_data.entity; + +import java.util.Collections; +import java.util.List; + +public class ListPageUtil { + public ListPageUtil() { + } + + public List getPagedList(int pageNum, int pageSize, List data) { + if (pageNum > 0 && pageSize > 0) { + int fromIndex = (pageNum - 1) * pageSize; + if (fromIndex >= data.size()) { + return Collections.emptyList(); + } else { + int toIndex = pageNum * pageSize; + if (toIndex >= data.size()) { + toIndex = data.size(); + } + + return data.subList(fromIndex, toIndex); + } + } else { + return data; + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/SystemPath.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/SystemPath.java new file mode 100644 index 0000000..1211855 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/entity/SystemPath.java @@ -0,0 +1,47 @@ +package org.springblade.hz3000_real_data.entity; + +public class SystemPath { + private static String SYSTEM_NAME = System.getProperty("os.name").toLowerCase(); + + public SystemPath() { + } + + public static String getSysPath() { + String path = Thread.currentThread().getContextClassLoader().getResource("").toString(); + String temp = path.replaceFirst("file:/", "").replaceFirst("WEB-INF/classes/", ""); + String separator = System.getProperty("file.separator"); + String resultPath = temp.replaceAll("/", separator + separator); + return resultPath; + } + + public static String getClassPath() { + String path = Thread.currentThread().getContextClassLoader().getResource("").toString(); + String temp = path.replaceFirst("file:/", ""); + String separator = System.getProperty("file.separator"); + String resultPath = temp.replaceAll("/", separator + separator); + return resultPath; + } + + public static String getSystempPath() { + return System.getProperty("java.io.tmpdir"); + } + + public static String getSeparator() { + return System.getProperty("file.separator"); + } + + public static boolean isWindows() { + return SYSTEM_NAME.indexOf("win") >= 0; + } + + public static boolean isLinux() { + return SYSTEM_NAME.indexOf("linux") >= 0; + } + +// public static void main(String[] args) { +// System.out.println(getSysPath()); +// System.out.println(System.getProperty("java.io.tmpdir")); +// System.out.println(getSeparator()); +// System.out.println(getClassPath()); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/BasePoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/BasePoint.java new file mode 100644 index 0000000..7631cbd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/BasePoint.java @@ -0,0 +1,112 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 数据点基础类 + * + * @author ypj + */ +@ApiModel("原始点") +public class BasePoint extends Point { + private static final long serialVersionUID = 6878843178471415799L; + @ApiModelProperty(value = "组id") + private String groupId; + @ApiModelProperty(value = "组名称") + private String groupName; + @ApiModelProperty(value = "站点id") + private String factoryId; + @ApiModelProperty(value = "站点名称") + private String factoryName; + @ApiModelProperty(value = "通道号") + private String channelIndex; + @ApiModelProperty(value = "模块号") + private String moduleIndex; + @ApiModelProperty(value = "地址号") + private String addressIndex; + @ApiModelProperty(value = "数据类型") + private Integer dataType; + @ApiModelProperty(value = "站点id") + private String stationId; + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getFactoryId() { + return factoryId; + } + + public void setFactoryId(String factoryId) { + this.factoryId = factoryId; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getChannelIndex() { + return channelIndex; + } + + public void setChannelIndex(String channelIndex) { + this.channelIndex = channelIndex; + } + + public String getModuleIndex() { + return moduleIndex; + } + + public void setModuleIndex(String moduleIndex) { + this.moduleIndex = moduleIndex; + } + + public String getAddressIndex() { + return addressIndex; + } + + public void setAddressIndex(String addressIndex) { + this.addressIndex = addressIndex; + } + + public Integer getDataType() { + return dataType; + } + + public void setDataType(Integer dataType) { + this.dataType = dataType; + } + + public String getStationId() { + return stationId; + } + + public void setStationId(String stationId) { + this.stationId = stationId; + } + + public void setBaseInfo(String stationId, String factoryId, String factoryName, String groupId, String groupName) { + this.stationId = stationId; + this.factoryId = factoryId; + this.factoryName = factoryName; + this.groupId = groupId; + this.groupName = groupName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/DataGroup.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/DataGroup.java new file mode 100644 index 0000000..20f4cb0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/DataGroup.java @@ -0,0 +1,192 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel +public class DataGroup extends Point { + private static final long serialVersionUID = -5427155903332937386L; + @ApiModelProperty(value = "厂id") + private String factoryId; + @ApiModelProperty(value = "厂名称") + private String factoryName; + @ApiModelProperty(value = "是否加锁") + private Boolean unlock; + @ApiModelProperty(value = "遥测列表") + private List telemetryPointList; + @ApiModelProperty(value = "遥控列表") + private List telecontrolPointList; + @ApiModelProperty(value = "遥信列表") + private List telesignalPointList; + @ApiModelProperty(value = "事件列表") + private List eventPointList; + @ApiModelProperty(value = "字符串列表") + private List strPointList; + @ApiModelProperty(value = "告警总数") + private Integer soeSize = 0; + @ApiModelProperty(value = "遥测总数") + private Integer ycSize = 0; + @ApiModelProperty(value = "遥控总数") + private Integer ykSize = 0; + @ApiModelProperty(value = "遥信总数") + private Integer yxSize = 0; + @ApiModelProperty(value = "字符串总数") + private Integer strSize = 0; + + @ApiModelProperty(value = "事件组") + private GroupType soeGroup; + @ApiModelProperty(value = "遥测组") + private GroupType ycGroup; + @ApiModelProperty(value = "遥信组") + private GroupType yxGroup; + @ApiModelProperty(value = "遥控组") + private GroupType ykGroup; + @ApiModelProperty(value = "字符串组") + private GroupType strGroup; + + public GroupType getSoeGroup() { + return soeGroup; + } + + public void setSoeGroup(GroupType soeGroup) { + this.soeGroup = soeGroup; + } + + public GroupType getYcGroup() { + return ycGroup; + } + + public void setYcGroup(GroupType ycGroup) { + this.ycGroup = ycGroup; + } + + public GroupType getYxGroup() { + return yxGroup; + } + + public void setYxGroup(GroupType yxGroup) { + this.yxGroup = yxGroup; + } + + public GroupType getYkGroup() { + return ykGroup; + } + + public void setYkGroup(GroupType ykGroup) { + this.ykGroup = ykGroup; + } + + public String getFactoryId() { + return factoryId; + } + + public void setFactoryId(String factoryId) { + this.factoryId = factoryId; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public Boolean isUnlock() { + return unlock; + } + + public void setUnlock(Boolean unlock) { + this.unlock = unlock; + } + + public List getTelemetryPointList() { + return telemetryPointList; + } + + public void setTelemetryPointList(List telemetryPointList) { + this.telemetryPointList = telemetryPointList; + } + + public List getTelecontrolPointList() { + return telecontrolPointList; + } + + public void setTelecontrolPointList(List telecontrolPointList) { + this.telecontrolPointList = telecontrolPointList; + } + + public List getTelesignalPointList() { + return telesignalPointList; + } + + public void setTelesignalPointList(List telesignalPointList) { + this.telesignalPointList = telesignalPointList; + } + + public List getEventPointList() { + return eventPointList; + } + + public void setEventPointList(List eventPointList) { + this.eventPointList = eventPointList; + } + + public List getStrPointList() { + return strPointList; + } + + public void setStrPointList(List strPointList) { + this.strPointList = strPointList; + } + + public int getSoeSize() { + return soeSize; + } + + public void setSoeSize(Integer soeSize) { + this.soeSize = soeSize; + } + + public int getYcSize() { + return ycSize; + } + + public void setYcSize(Integer ycSize) { + this.ycSize = ycSize; + } + + public int getYkSize() { + return ykSize; + } + + public void setYkSize(Integer ykSize) { + this.ykSize = ykSize; + } + + public int getYxSize() { + return yxSize; + } + + public void setYxSize(Integer yxSize) { + this.yxSize = yxSize; + } + + public GroupType getStrGroup() { + return strGroup; + } + + public void setStrGroup(GroupType strGroup) { + this.strGroup = strGroup; + } + + public Integer getStrSize() { + return strSize; + } + + public void setStrSize(Integer strSize) { + this.strSize = strSize; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Factory.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Factory.java new file mode 100644 index 0000000..fec3cfd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Factory.java @@ -0,0 +1,71 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.springblade.hz3000_real_data.fac.utils.LanguageUtils; + +import java.util.List; + +@ApiModel("厂信息") +public class Factory extends Point { + private static final long serialVersionUID = -4443313438904921892L; + @ApiModelProperty(value = "站点编号") + private String stationNum; + @ApiModelProperty(value = "组编号") + private String theGroupNum; + @ApiModelProperty(value = "组集合") + private List groups; + @ApiModelProperty(value = "组id") + private String theGroupId; + @ApiModelProperty(value = "组总数") + private Integer groupSize = 0; + + public String getStationNum() { + return stationNum; + } + + public void setStationNum(String stationNum) { + this.stationNum = stationNum; + } + + public String getTheGroupNum() { + return theGroupNum; + } + + public void setTheGroupNum(String theGroupNum) { + this.theGroupNum = theGroupNum; + } + + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + public String getTheGroupId() { + return theGroupId; + } + + public void setTheGroupId(String theGroupId) { + this.theGroupId = theGroupId; + } + + public void toEnglishName() { + LanguageUtils.toEnglishName(this); + } + + public void toChineseName() { + LanguageUtils.toChinessName(this); + } + + public int getGroupSize() { + return groupSize; + } + + public void setGroupSize(Integer groupSize) { + this.groupSize = groupSize; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/GroupType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/GroupType.java new file mode 100644 index 0000000..aec8304 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/GroupType.java @@ -0,0 +1,32 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("组类型") +public class GroupType extends BasePoint { + private static final long serialVersionUID = -5013035391910210737L; + + @ApiModelProperty(value = "点列表") + List pointList; + + Integer childrenCount = 0; + + public Integer getChildrenCount() { + return childrenCount; + } + + public void setChildrenCount(Integer childrenCount) { + this.childrenCount = childrenCount; + } + + public List getPointList() { + return pointList; + } + + public void setPointList(List pointList) { + this.pointList = pointList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/LanguageInterface.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/LanguageInterface.java new file mode 100644 index 0000000..e13b26d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/LanguageInterface.java @@ -0,0 +1,15 @@ +package org.springblade.hz3000_real_data.fac.entity; + +public interface LanguageInterface { + String getName(); + + void setName(String name); + + String getEng(); + + void setEng(String eng); + + String getChn(); + + void setChn(String chn); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Point.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Point.java new file mode 100644 index 0000000..2e5fddc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/Point.java @@ -0,0 +1,81 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +@ApiModel("点信息") +public class Point implements Serializable ,LanguageInterface{ + private static final long serialVersionUID = 4657709877092481867L; + /** + * id + */ + @ApiModelProperty(value = "id") + private String id; + /** + * 名称 + */ + @ApiModelProperty(value = "名称") + private String name; + /** + * 中文 + */ + @ApiModelProperty(value = "中文") + private String chn; + /** + * 英文 + */ + @ApiModelProperty(value = "英文") + private String eng; + /** + * 节点类型 + */ + @ApiModelProperty(value = "节点类型") + private Integer pointType = 0; + + public Integer getPointType() { + return pointType; + } + + public void setPointType(Integer pointType) { + this.pointType = pointType; + } + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + public String getChn() { + return chn; + } + + @Override + public void setChn(String chn) { + this.chn = chn; + } + + @Override + public String getEng() { + return eng; + } + + @Override + public void setEng(String eng) { + this.eng = eng; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/SoePoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/SoePoint.java new file mode 100644 index 0000000..8c0b965 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/SoePoint.java @@ -0,0 +1,95 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + + +@ApiModel("点信息") +public class SoePoint extends BasePoint { + + private static final long serialVersionUID = 4592781482217840848L; + + @ApiModelProperty(value = "类型") + private String type; + @ApiModelProperty(value = "告警类型") + private String alarmType; + @ApiModelProperty(value = "告警声音") + private String alarmSound; + @ApiModelProperty(value = "动作列表") + private String actionNameList; + @ApiModelProperty(value = "动作单位列表") + private String actionUnitList; + @ApiModelProperty(value = "组id") + private String groupId; + @ApiModelProperty(value = "动作名称数组") + private List actionNameListArray; + @ApiModelProperty(value = "动作单位数组") + private List actionUnitListArray; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmSound() { + return alarmSound; + } + + public void setAlarmSound(String alarmSound) { + this.alarmSound = alarmSound; + } + + public String getActionNameList() { + return actionNameList; + } + + public void setActionNameList(String actionNameList) { + this.actionNameList = actionNameList; + } + + public String getActionUnitList() { + return actionUnitList; + } + + public void setActionUnitList(String actionUnitList) { + this.actionUnitList = actionUnitList; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public List getActionNameListArray() { + return actionNameListArray; + } + + public void setActionNameListArray(List actionNameListArray) { + this.actionNameListArray = actionNameListArray; + } + + public List getActionUnitListArray() { + return actionUnitListArray; + } + + public void setActionUnitListArray(List actionUnitListArray) { + this.actionUnitListArray = actionUnitListArray; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YcPoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YcPoint.java new file mode 100644 index 0000000..34b242f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YcPoint.java @@ -0,0 +1,10 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; + +@ApiModel("遥测点信息") +public class YcPoint extends BasePoint { + + private static final long serialVersionUID = -4522390387219103139L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YkPoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YkPoint.java new file mode 100644 index 0000000..faa0b64 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YkPoint.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * @author ypj + * + */ +@ApiModel("遥控点信息") +public class YkPoint extends BasePoint { + + private static final long serialVersionUID = 7000254579441509126L; + @ApiModelProperty(value = "说明") + private String explain; + + public String getExplain() { + return explain; + } + + public void setExplain(String explain) { + this.explain = explain; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YxPoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YxPoint.java new file mode 100644 index 0000000..c461a99 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/entity/YxPoint.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.fac.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * @author ypj + * + */ +@ApiModel("遥信点信息") +public class YxPoint extends BasePoint { + + private static final long serialVersionUID = -8093857719124678389L; + @ApiModelProperty(value = "告警类型") + private String alarmType; + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/enums/LanguageEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/enums/LanguageEnum.java new file mode 100644 index 0000000..4359169 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/enums/LanguageEnum.java @@ -0,0 +1,20 @@ +package org.springblade.hz3000_real_data.fac.enums; + +public enum LanguageEnum { + Chinese("cn", "汉语"), English("en", "英语"); + private final String code; + private final String desc; + + LanguageEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/utils/LanguageUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/utils/LanguageUtils.java new file mode 100644 index 0000000..397a7aa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/fac/utils/LanguageUtils.java @@ -0,0 +1,101 @@ +package org.springblade.hz3000_real_data.fac.utils; + +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.LanguageEnum; + +import java.util.List; + +public class LanguageUtils { + public static final String CURRENT_LANGUAGE = "currentLanguage"; + + public static void toEnglishName(LanguageInterface entity) { + String eng = entity.getEng(); + if (eng != null && eng.length() > 0) { + entity.setName(eng); + } + } + + public static void toChinessName(LanguageInterface entity) { + String chn = entity.getChn(); + if (chn != null && chn.length() > 0) { + entity.setName(chn); + } + } + + public static void toEnglishName(List list) { + for (LanguageInterface entity : list) { + toEnglishName(entity); + } + } + + public static void toChinessName(List list) { + for (LanguageInterface entity : list) { + toChinessName(entity); + } + } + + public void changeNameByLanguage(LanguageInterface entity, String language) { + if (null != language) { + if (LanguageEnum.English.equals(language)) { + toEnglishName(entity); + } else { + toChinessName(entity); + } + } + } + + public static void changeNameByLanguage(List list, String language) { + if (null != language) { + if (LanguageEnum.English.equals(language)) { + toEnglishName(list); + } else { + toChinessName(list); + } + } + } + + public static void changeAllToEnglish(List factoryList) { + for (Factory factory : factoryList) { + toEnglishName(factory); + List groupList = factory.getGroups(); + if (null != groupList) { + for (DataGroup group : groupList) { + toEnglishName(group); + List ycPointList = group.getTelemetryPointList(); + if (null != ycPointList) { + for (YcPoint ycPoint : ycPointList) { + toEnglishName(ycPoint); + } + } + List yxPointList = group.getTelesignalPointList(); + if(null != yxPointList){ + for(YxPoint yxPoint: yxPointList ){ + toEnglishName(yxPoint); + } + } + List ykPointList = group.getTelecontrolPointList(); + if(null != ykPointList){ + for (YkPoint ykPoint : ykPointList){ + toEnglishName(ykPoint); + } + } + List soePointList = group.getEventPointList(); + if(null != soePointList){ + for(SoePoint soePoint : soePointList){ + toEnglishName(soePoint); + } + } + } + } + } + } + +// public static void main(String[] arg) { +// LanguageInterface entity = new YcPoint(); +// entity.setName("中文"); +// entity.setChn("粤语"); +// entity.setEng("English"); +// toEnglishName(entity); +// System.out.println(entity.getName()); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000HistoryDataClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000HistoryDataClient.java new file mode 100644 index 0000000..5bdc61f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000HistoryDataClient.java @@ -0,0 +1,24 @@ +package org.springblade.hz3000_real_data.feign; + +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = "hz3000-real-data", + url = "${feign.hz3000-real-data:}" +) +public interface IHz3000HistoryDataClient { + String API_PREFIX = "/hz3000HistoryDataClient"; + String GET_HISTORY_DATA = API_PREFIX + "/queryHisDateOfTimeRange"; + + /** + * 获取测站详情 + * @return + */ + @GetMapping(GET_HISTORY_DATA) + Map> queryHisDateOfTimeRange(List realIds, String start, String end); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000RealDataClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000RealDataClient.java new file mode 100644 index 0000000..61718ae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/feign/IHz3000RealDataClient.java @@ -0,0 +1,29 @@ +package org.springblade.hz3000_real_data.feign; + +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = "hz3000-real-data", + url = "${feign.hz3000-real-data:}" +) +public interface IHz3000RealDataClient { + String API_PREFIX = "/hz3000RealDataClient"; + String GET_REAL_DATA_BY_ID = API_PREFIX + "/getRealDataById"; + String GET_REAL_DATA = API_PREFIX + "/getRealData"; + + /** + * 获取测站详情 + * @return + */ + @GetMapping(GET_REAL_DATA_BY_ID) + Map getRealDataById(String[] realIds, String stationId); + + @GetMapping(GET_REAL_DATA) + List getRealData(List ids,int type,String stationId); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java new file mode 100644 index 0000000..9ce9d22 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java @@ -0,0 +1,72 @@ +package org.springblade.hz3000_real_data.history.entity; + +import java.util.Date; + +public class HisDataYc { + private double val; + private Date datatime; + private int q; + private int _msec; + + public double getVal() { + return val; + } + + public void setVal(double val) { + this.val = val; + } + + public Date getDatatime() { + return datatime; + } + + public void setDatatime(Date datatime) { + this.datatime = datatime; + } + + public int getQ() { + return q; + } + + public void setQ(int q) { + this.q = q; + } + + public int get_Msec() { + return _msec; + } + + public void set_Msec(int _msec) { + this._msec = _msec; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((datatime == null) ? 0 : datatime.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + HisDataYc other = (HisDataYc) obj; + if (datatime == null) { + if (other.datatime != null) + return false; + } else if (!datatime.equals(other.datatime)) + return false; + return true; + } + + @Override + public String toString() { + return "HisDataYc [val=" + val + ", datatime=" + datatime + ", q=" + q + ", _msec=" + _msec + "]"; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HistoryRequestResult.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HistoryRequestResult.java new file mode 100644 index 0000000..154f748 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/history/entity/HistoryRequestResult.java @@ -0,0 +1,95 @@ +package org.springblade.hz3000_real_data.history.entity; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class HistoryRequestResult { + + private String realId; + + private Double val; + + private String datatime; + + private int q; + + public HistoryRequestResult(String realId, String datatime) { + this.realId = realId; + this.datatime = datatime; + } + + public HistoryRequestResult() { + } + + @JsonProperty("hzrealid") + public String getRealId() { + return realId; + } + + public void setRealId(String realId) { + this.realId = realId; + } + + public Double getVal() { + return val; + } + + public void setVal(Double val) { + this.val = val; + } + + public String getDatatime() { + return datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } + + public int getQ() { + return q; + } + + public void setQ(int q) { + this.q = q; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((datatime == null) ? 0 : datatime.hashCode()); + result = prime * result + q; + result = prime * result + ((realId == null) ? 0 : realId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + HistoryRequestResult other = (HistoryRequestResult) obj; + if (datatime == null) { + if (other.datatime != null) + return false; + } else if (!datatime.equals(other.datatime)) + return false; + if (q != other.q) + return false; + if (realId == null) { + if (other.realId != null) + return false; + } else if (!realId.equals(other.realId)) + return false; + return true; + } + + @Override + public String toString() { + return "HistoryRequestResult [realId=" + realId + ", val=" + val + ", datatime=" + datatime + ", q=" + q + "]"; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/real/entity/Data.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/real/entity/Data.java new file mode 100644 index 0000000..cc514cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/real/entity/Data.java @@ -0,0 +1,55 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + + +import org.springblade.hz3000_real_data.fac.entity.BasePoint; + +import java.io.Serializable; +import java.util.Date; + +public class Data implements Serializable { + private static final long serialVersionUID = -3968193306625634915L; + private double value; + private Date time; + private BasePoint point; + private int q; + + public Data() { + } + + public double getValue() { + return this.value; + } + + public void setValue(double value) { + this.value = value; + } + + public Date getTime() { + return this.time; + } + + public void setTime(Date time) { + this.time = time; + } + + public BasePoint getPoint() { + return this.point; + } + + public void setPoint(BasePoint point) { + this.point = point; + } + + public int getQ() { + return this.q; + } + + public void setQ(int q) { + this.q = q; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/util/RSAUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/util/RSAUtils.java new file mode 100644 index 0000000..0ddc3bc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hz3000-real-data-service-api/src/main/java/org/springblade/hz3000_real_data/util/RSAUtils.java @@ -0,0 +1,183 @@ +package org.springblade.hz3000_real_data.util; + +import javax.crypto.Cipher; +import java.math.BigInteger; +import java.security.KeyFactory; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.RSAPrivateKeySpec; +import java.security.spec.RSAPublicKeySpec; +import java.util.HashMap; + +public class RSAUtils { + public static final String PUBLIC_KEY = "public"; + public static final String PRIVATE_KEY = "private"; + + public RSAUtils() { + } + + public static HashMap getKeys() throws NoSuchAlgorithmException { + HashMap map = new HashMap(); + KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); + keyPairGen.initialize(1024); + KeyPair keyPair = keyPairGen.generateKeyPair(); + RSAPublicKey publicKey = (RSAPublicKey)keyPair.getPublic(); + RSAPrivateKey privateKey = (RSAPrivateKey)keyPair.getPrivate(); + map.put("public", publicKey); + map.put("private", privateKey); + return map; + } + + public static RSAPublicKey getPublicKey(String modulus, String exponent) { + try { + BigInteger b1 = new BigInteger(modulus); + BigInteger b2 = new BigInteger(exponent); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + RSAPublicKeySpec keySpec = new RSAPublicKeySpec(b1, b2); + return (RSAPublicKey)keyFactory.generatePublic(keySpec); + } catch (Exception var6) { + var6.printStackTrace(); + return null; + } + } + + public static RSAPrivateKey getPrivateKey(String modulus, String exponent) { + try { + BigInteger b1 = new BigInteger(modulus); + BigInteger b2 = new BigInteger(exponent); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(b1, b2); + return (RSAPrivateKey)keyFactory.generatePrivate(keySpec); + } catch (Exception var6) { + var6.printStackTrace(); + return null; + } + } + + public static String encryptByPublicKey(String data, RSAPublicKey publicKey) throws Exception { + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(1, publicKey); + int key_len = publicKey.getModulus().bitLength() / 8; + String[] datas = splitString(data, key_len - 11); + String mi = ""; + String[] var6 = datas; + int var7 = datas.length; + + for(int var8 = 0; var8 < var7; ++var8) { + String s = var6[var8]; + mi = mi + bcd2Str(cipher.doFinal(s.getBytes())); + } + + return mi; + } + + public static String decryptByPrivateKey(String data, RSAPrivateKey privateKey) throws Exception { + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(2, privateKey); + int key_len = privateKey.getModulus().bitLength() / 8; + byte[] bytes = data.getBytes(); + byte[] bcd = ASCII_To_BCD(bytes, bytes.length); + String ming = ""; + byte[][] arrays = splitArray(bcd, key_len); + byte[][] var8 = arrays; + int var9 = arrays.length; + + for(int var10 = 0; var10 < var9; ++var10) { + byte[] arr = var8[var10]; + ming = ming + new String(cipher.doFinal(arr)); + } + + return ming; + } + + public static byte[] ASCII_To_BCD(byte[] ascii, int asc_len) { + byte[] bcd = new byte[asc_len / 2]; + int j = 0; + + for(int i = 0; i < (asc_len + 1) / 2; ++i) { + bcd[i] = asc_to_bcd(ascii[j++]); + bcd[i] = (byte)((j >= asc_len ? 0 : asc_to_bcd(ascii[j++])) + (bcd[i] << 4)); + } + + return bcd; + } + + public static byte asc_to_bcd(byte asc) { + byte bcd; + if (asc >= 48 && asc <= 57) { + bcd = (byte)(asc - 48); + } else if (asc >= 65 && asc <= 70) { + bcd = (byte)(asc - 65 + 10); + } else if (asc >= 97 && asc <= 102) { + bcd = (byte)(asc - 97 + 10); + } else { + bcd = (byte)(asc - 48); + } + + return bcd; + } + + public static String bcd2Str(byte[] bytes) { + char[] temp = new char[bytes.length * 2]; + + for(int i = 0; i < bytes.length; ++i) { + char val = (char)((bytes[i] & 240) >> 4 & 15); + temp[i * 2] = (char)(val > '\t' ? val + 65 - 10 : val + 48); + val = (char)(bytes[i] & 15); + temp[i * 2 + 1] = (char)(val > '\t' ? val + 65 - 10 : val + 48); + } + + return new String(temp); + } + + public static String[] splitString(String string, int len) { + int x = string.length() / len; + int y = string.length() % len; + int z = 0; + if (y != 0) { + z = 1; + } + + String[] strings = new String[x + z]; + String str = ""; + + for(int i = 0; i < x + z; ++i) { + if (i == x + z - 1 && y != 0) { + str = string.substring(i * len, i * len + y); + } else { + str = string.substring(i * len, i * len + len); + } + + strings[i] = str; + } + + return strings; + } + + public static byte[][] splitArray(byte[] data, int len) { + int x = data.length / len; + int y = data.length % len; + int z = 0; + if (y != 0) { + z = 1; + } + + byte[][] arrays = new byte[x + z][]; + + for(int i = 0; i < x + z; ++i) { + byte[] arr = new byte[len]; + if (i == x + z - 1 && y != 0) { + System.arraycopy(data, i * len, arr, 0, y); + } else { + System.arraycopy(data, i * len, arr, 0, len); + } + + arrays[i] = arr; + } + + return arrays; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/pom.xml new file mode 100644 index 0000000..18d9d62 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-hzinfo-inspect-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/Constants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/Constants.java new file mode 100644 index 0000000..eb9b690 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/Constants.java @@ -0,0 +1,8 @@ +package org.springblade.hzinfo_inspect; + +/** + * @Author: py + */ +public class Constants { + public final static String APP_NAME = "hzinfo-inspect"; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/InspectReportEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/InspectReportEntity.java new file mode 100644 index 0000000..62d8872 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/InspectReportEntity.java @@ -0,0 +1,29 @@ +package org.springblade.hzinfo_inspect.gather.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class InspectReportEntity implements Serializable { + private static final long serialVersionUID = -3296006758328565445L; + + @ApiModelProperty("人员ID") + private Long userId; + + @ApiModelProperty("姓名") + private String userName; + + @ApiModelProperty("完成任务情况") + private String completeSituation; + + @ApiModelProperty("未完成任务情况") + private String incompleteSituation; + + @ApiModelProperty("工时") + private Integer hours; + + @ApiModelProperty("发现问题数量") + private Integer findProblemCount; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java new file mode 100644 index 0000000..2d5a9bd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java @@ -0,0 +1,164 @@ +package org.springblade.hzinfo_inspect.gather.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_hi_task_gather") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "TaskGather对象", description = "巡检任务统计数据集合对象,集控站使用") +public class TaskGatherEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty("租户ID") + private String tenantId; + + /** + * 用户id + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "用户id") + private Long userId; + /** + * 用户名称 + */ + @ApiModelProperty(value = "用户名称") + private String userName; + /** + * 路径id + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "路径id") + private Long routeId; + /** + * + */ + @ApiModelProperty(value = "路径名称") + private String routeName; + /** + * 问题数 + */ + @ApiModelProperty(value = "问题数") + private Long problemNum; + /** + * 计划ID + */ + @ApiModelProperty(value = "计划ID") + private Long planId; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式") + private String type; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String planName; + /** + * 任务批次号 + */ + @ApiModelProperty(value = "任务批次号") + private String batchNumber; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周 + */ + @ApiModelProperty(value = "计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周") + private String cycle; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + private String method; + /** + * 任务计划开始时间 + */ + @ApiModelProperty(value = "任务计划开始时间") + private LocalDateTime planStartTime; + /** + * 任务计划结束时间 + */ + @ApiModelProperty(value = "任务计划结束时间") + private LocalDateTime planEndTime; + /** + * 任务实际开始时间 + */ + @ApiModelProperty(value = "任务实际开始时间") + private LocalDateTime startTime; + /** + * 任务实际结束时间 + */ + @ApiModelProperty(value = "任务实际结束时间") + private LocalDateTime endTime; + /** + * 巡检报备 0 未报备 1已报备 + */ + @ApiModelProperty(value = "巡检报备 0 未报备 1已报备") + private String keepOnRecord; + /** + * 巡检类型标识: 0普通巡检,1,视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1,视频自动巡检,2机器人巡检") + private String autoVideo; + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @ApiModelProperty(value = "计划类型,common常规任务,temporary临时任务") + private String planType; + /** + * 任务开始前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务开始前 是否发送提醒短信 标识") + private Boolean startRemindFlag; + /** + * 任务结束前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务结束前 是否发送提醒短信 标识") + private Boolean endRemindFlag; + /** + * 开始前提醒时间 + */ + @ApiModelProperty(value = "开始前提醒时间") + private LocalDateTime startRemindTime; + /** + * 结束前提醒时间 + */ + @ApiModelProperty(value = "结束前提醒时间") + private LocalDateTime endRemindTime; + + public String getStrPlanStartTime(){ + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return dfShort.format(getPlanStartTime()); + } + + public Long getProblemNum() { + if(problemNum == null){ + return 0L; + } + return problemNum; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/feign/IInspectGatherClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/feign/IInspectGatherClient.java new file mode 100644 index 0000000..3ec4e29 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/feign/IInspectGatherClient.java @@ -0,0 +1,38 @@ +package org.springblade.hzinfo_inspect.gather.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherReportVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IInspectGatherClient { + + String API_PREFIX = "/feign/gather"; + String LIST_GATHER_TASK_BY_DISPOSER = API_PREFIX + "/listGatherTaskByDisposer"; + String LIST_TASK_GATHER_REPORT = API_PREFIX + "/listTaskGatherReport"; + String LIST_BY_TIME_AND_PERSON = API_PREFIX + "/listByTimeAndPerson"; + String INSPECT_CONCLUSION = API_PREFIX + "/getInspectConclusion"; + + @GetMapping(LIST_GATHER_TASK_BY_DISPOSER) + R> listGatherTaskByDisposer(@RequestParam("disposer") String disposer); + + @PostMapping(LIST_TASK_GATHER_REPORT) + List listTaskGatherReport(@RequestBody Map params); + + @PostMapping(LIST_BY_TIME_AND_PERSON) + List listByTimeAndPerson(@RequestBody Map params); + + @PostMapping(INSPECT_CONCLUSION) + List> getInspectConclusion(@RequestBody Map params); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherReportVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherReportVO.java new file mode 100644 index 0000000..fdfbb9e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherReportVO.java @@ -0,0 +1,30 @@ +package org.springblade.hzinfo_inspect.gather.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class TaskGatherReportVO implements Serializable { + + private static final long serialVersionUID = 8220246531084664333L; + + @ApiModelProperty("人员ID") + private Long userId; + + @ApiModelProperty("姓名") + private String userName; + + @ApiModelProperty("完成任务情况") + private String completeSituation; + + @ApiModelProperty("未完成任务情况") + private String incompleteSituation; + + @ApiModelProperty("工时") + private Long hours; + + @ApiModelProperty("发现问题数量") + private Long findProblemCount; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/PlanContants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/PlanContants.java new file mode 100644 index 0000000..d585832 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/PlanContants.java @@ -0,0 +1,182 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan; + +import lombok.Getter; + +/** + * @author ninglong + * + */ +public interface PlanContants { + + String INSPECT_TYPE = "inspectType";//字典表巡检类型 + + /**计划状态字典key**/ + String PLAN_STATUS = "planStatus"; + + public enum PlanTypeEnum{ + /** + * 计划人员模式 + */ + USER_TYPE("0"), + /** + * 计划岗位模式 + */ + POSITION_TYPE("1"), + /** + * 计划机构模式 + */ + ORG_TYPE("2"), + /** + * 计划自由模式 + */ + FREE_TYPE("3"), + /** + * 计划班次模式 + */ + CLASS_TYPE("4"); + @Getter + private String type; + private PlanTypeEnum(String type){ + this.type = type; + } + } + + /** + * 0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交 + */ + public enum PlanStatusEnum{ + /** + * 待审核 + */ + PLAN_AUTH("0"), + /** + * 已审核 + */ + CHECK_STATUS("1"), + /** + * 派发中 + */ + UNDERWAY_STATUS("2"), + /** + * 暂停 + */ + PAUSE_STATUS("3"), + /** + * 结束 + */ + FINISH_STATUS("4"), + /** + * 审核不通过 + */ + AUTH_STOP("5"), + /** + * 待提交 + */ + PLAN_SUBMIT("6"); + + @Getter + private String status; + private PlanStatusEnum(String status){ + this.status = status; + } + } + + public enum PlanCycleEnum { + /** + * 计划周期每次 + */ + NEVER_CYCLE("0"), + /** + * 计划周期每天 + */ + EVERYDAY_CYCLE("1"), + /** + * 计划周期每月 + */ + EVERYMONTH_CYCLE("2"), + /** + * 计划周期每季度 + */ + EVERYQUARTER_CYCLE("3"), + /** + * 计划周期每周 + */ + EVERYWEEK_CYCLE("5"), + /** + * 计划周期每周 + */ + EVERYYEAR_CYCLE("4"); + @Getter + private String cycle; + private PlanCycleEnum(String cycle){ + this.cycle = cycle; + } + } + + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @Getter + public enum PlanMethodEnum{ + SEIZE("0"),CONCURRENT("1"); + private String method; + private PlanMethodEnum(String method){ + this.method = method; + } + } + + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @Getter + enum PlanContentTypeEnum{ + COMMON("common"),TEMP("temporary"); + private String desc; + private PlanContentTypeEnum(String desc){ + this.desc = desc; + } + } + + /** + * 巡检类型, 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @Getter + enum InspectTypeEnum{ + /** + * 0普通巡检 + */ + COMMON("0"), + /** + * 1视频自动巡检 + */ + VIDEO("1"), + /** + * 2机器人巡检 + */ + ROBOT("2"), + //防汛巡检 + FLOOD("3"), + //特殊巡检 + SPECIAL("4"); + + private String val; + InspectTypeEnum(String val){ + this.val = val; + } + } + + /** + * 是否立即生产任务 1-是 0-否 + */ + @Getter + enum GenTaskImmediateEnum{ + YES(1),NO(0); + private int flag; + GenTaskImmediateEnum(int flag){ + this.flag = flag; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java new file mode 100644 index 0000000..d5bf21d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java @@ -0,0 +1,197 @@ +package org.springblade.hzinfo_inspect.plan.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; +import java.time.LocalDateTime; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_re_plan") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检计划", description = "巡检计划") +@ToString +public class PlanEntity extends BaseEntity { + + private static final long serialVersionUID = 765388503678954943L; + + /** + * 计划编码 + */ + @ApiModelProperty(value = "计划编码") + private String code; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String name; + /** + * 计划开始时间 + */ + @ApiModelProperty(value = "计划开始时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate startTime; + /** + * 计划结束时间 + */ + @ApiModelProperty(value = "计划结束时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate endTime; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 5 临时任务 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 班次模式 5 临时任务") + private String type; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + private String method; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "计划周期 0: 每次 1:每天 2:每月 3:每季度 4:每年 5:每周") + private String cycle; + /** + * 审批人 + */ + @ApiModelProperty(value = "审批人") + private Long approver; + /** + * 审批时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "审批时间 ") + private LocalDateTime approveTime; + /** + * 计划来源 1巡检 2点检 + */ + @ApiModelProperty(value = "计划来源 1巡检 2点检") + private String fromSource; + + /** + * 是否立即生产任务 1-是 0-否 + */ + @ApiModelProperty(value = "是否立即生产任务 1-是 0-否") + private Integer taskFlg; + + /** + * 执行时间-开始(HH:mm:ss) + */ + @ApiModelProperty(value = "执行时间-开始(HH:mm:ss)") + @TableField(exist = false) + private String execStartTime; + + /** + * 执行时间-结束(HH:mm:ss) + */ + @ApiModelProperty(value = "执行时间-结束(HH:mm:ss)") + @TableField(exist = false) + private String execEndTime; + + /** + * 执行结束时间是否是第二天,只针对巡检周期为“每天”的任务 + */ + @ApiModelProperty(value = "执行结束时间是否是第二天") + @TableField(exist = false) + private Boolean isNextDay; + + /** + * 巡检路线数据 + * [{"sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"},{"sort":2,"objectId":"191","objectName":"厂房","templateId":"2235","templateName":"人员考勤"}] + */ + @ApiModelProperty(value = "巡检路线数据 : [{\"sort\":1,\"objectId\":\"225\",\"objectName\":\"人员考勤\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"},{\"sort\":2,\"objectId\":\"191\",\"objectName\":\"厂房\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"}]" ) + private String routeData; + /** + * 巡检路线ID字段 + */ + @ApiModelProperty(value = "巡检路线ID字段") + private Long routeId; + /** + * 路线名称 + */ + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 开始前提醒(分钟) + */ + @ApiModelProperty(value = "开始前提醒(分钟)") + private Integer startRemind; + /** + * 结束前提醒(分钟) + */ + @ApiModelProperty(value = "结束前提醒(分钟)") + private Integer endRemind; + /** + * 一天任务次数 + */ + @ApiModelProperty(value = "一天任务次数") + private Integer taskTimesADay; + /** + * 任务执行时间json数据 + * json格式:execStartTime表示开始时间,execEndTime表示结束时间 + * [{"execStartTime":"08:00:00","execEndTime":"20:40:00","isNextDay":true,"classId":1417678653371785217},{"execStartTime":"08:00:00","execEndTime":"20:40:00"}] + */ + @ApiModelProperty(value = "任务执行时间json数据,json格式:[{\"execStartTime\":\"08:00:00\",\"execEndTime\":\"20:40:00\"},{\"execStartTime\":\"08:00:00\",\"execEndTime\":\"20:40:00\"}]") + private String execTimeJson; + /** + * 开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 " ^ "隔开 + */ + @ApiModelProperty(value = "开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 ^ 隔开") + private String aiCheckItems; + + /** + * 巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检") + private String autoVideo; + + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @ApiModelProperty(value = "计划类型,common常规任务,temporary临时任务 ") + private String planType; + + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + + /** + * 值班id + */ + @TableField(exist=false) + @ApiModelProperty(value = "值班id") + private Long dutyId; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java new file mode 100644 index 0000000..d5c6b19 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java @@ -0,0 +1,34 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * + * 巡检计划对象模板 + * @author ninglong + */ +@Data +@TableName("hz_st_re_plan_object_template") +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PlanObjectTemplateEntity extends BaseEntity { + + private static final long serialVersionUID = -2081929783559311856L; + + private Long planId; + private Long objectId; + private Long templateId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java new file mode 100644 index 0000000..64e9ef4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划机构 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划机构") +@TableName("hz_st_re_plan_org") +@EqualsAndHashCode(callSuper = true) +public class PlanOrgEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="机构id") + private Long orgId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java new file mode 100644 index 0000000..a05db91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划岗位 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划岗位") +@TableName("hz_st_re_plan_position") +@EqualsAndHashCode(callSuper = true) +public class PlanPositionEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="用户id") + private Long positionId; +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java new file mode 100644 index 0000000..42f12c1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划用户 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划用户") +@TableName("hz_st_re_plan_user") +@EqualsAndHashCode(callSuper = true) +public class PlanUserEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="用户id") + private Long userId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java new file mode 100644 index 0000000..17d45bb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java @@ -0,0 +1,43 @@ +package org.springblade.hzinfo_inspect.plan.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.springblade.core.mp.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * 实体类 + * @author py + */ +@Data +@TableName("hz_st_re_route") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "Route对象", description = "巡检路径") +public class RouteEntity extends BaseEntity { + + private static final long serialVersionUID = 643218503830864943L; + + /** + * 路线名称 + */ + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 路线数据 + * json list + * 格式: + * [{"sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"},{"sort":2,"objectId":"191","objectName":"厂房","templateId":"2235","templateName":"人员考勤"}] + */ + @ApiModelProperty(value = "路线数据: [{\"sort\":1,\"objectId\":\"225\",\"objectName\":\"人员考勤\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"},{\"sort\":2,\"objectId\":\"191\",\"objectName\":\"厂房\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"}]") + private String routeData; + + /** + * 巡检类型标识 + */ + @ApiModelProperty(value = " 巡检类型标识 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/feign/IInspectPlanClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/feign/IInspectPlanClient.java new file mode 100644 index 0000000..265f566 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/feign/IInspectPlanClient.java @@ -0,0 +1,27 @@ +package org.springblade.hzinfo_inspect.plan.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.plan.vo.PlanVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IInspectPlanClient { + String API_PREFIX = "/feign/plan"; + String ADD_AND_CHECK_PLAN = API_PREFIX + "/addPlanAndChecked"; + + + /** + * 新增巡检计划 并审核、生成任务 + * @param plan + * @return 返回taskId list + */ + @PostMapping(ADD_AND_CHECK_PLAN) + R> addPlanAndChecked(@RequestBody PlanVO plan); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanListQueryVO.java new file mode 100644 index 0000000..eac30a8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanListQueryVO.java @@ -0,0 +1,89 @@ +package org.springblade.hzinfo_inspect.plan.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @author ninglong + * @create 2020-08-26 8:25 + */ +@Getter +@Setter +@ApiModel(value = "计划列表查询对象") +public class PlanListQueryVO implements Serializable { + private static final long serialVersionUID = -7257795401205244042L; + + /** + * 计划编码 + */ + @ApiModelProperty(value = "计划编码") + @QueryField(condition = SqlCondition.LIKE) + private String code; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + @QueryField(condition = SqlCondition.LIKE) + private String name; + /** + * 计划开始时间 + */ + @ApiModelProperty(value = "计划开始时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate startTime; + /** + * 计划结束时间 + */ + @ApiModelProperty(value = "计划结束时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate endTime; + + /** + * 巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检") + @QueryField(condition = SqlCondition.EQUAL) + private String autoVideo; + + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式") + @QueryField(condition = SqlCondition.EQUAL) + private String type; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + @QueryField(condition = SqlCondition.EQUAL) + private String method; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "计划周期 0: 每次 1:每天 2:每月 3:每季度 4:每年 5:每周") + @QueryField(condition = SqlCondition.EQUAL) + private String cycle; + + @ApiModelProperty("业务状态 0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交") + @QueryField(condition = SqlCondition.EQUAL) + private Integer status; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanObjectTemplateVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanObjectTemplateVO.java new file mode 100644 index 0000000..a4d108f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanObjectTemplateVO.java @@ -0,0 +1,38 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 巡检计划对象模板vo + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划对象模板") +public class PlanObjectTemplateVO implements Serializable{ + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="巡检计划对象模板id") + private Long id; + @ApiModelProperty(value="对象id") + private Long objectId; + @ApiModelProperty(value="对象名称") + private String objectName; + @ApiModelProperty(value="模板id") + private Long templateId; + @ApiModelProperty(value="模板名称") + private String templateName; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanTaskListVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanTaskListVO.java new file mode 100644 index 0000000..97f44d3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanTaskListVO.java @@ -0,0 +1,60 @@ +package org.springblade.hzinfo_inspect.plan.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 巡检计划任务对象 + * @author ninglong + * @create 2020-08-21 10:26 + */ +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "巡检计划任务对象") +public class PlanTaskListVO implements Serializable { + /** + * 任务id + */ + @ApiModelProperty(value = "任务id") + private Long taskId; + /** + * 任务批次号 + */ + @ApiModelProperty(value = "任务批次号") + private String batchNumber; + + /** + * 任务计划开始时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务计划开始时间") + private LocalDateTime planStartTime; + /** + * 任务计划结束时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务计划结束时间") + private LocalDateTime planEndTime; + + @ApiModelProperty(value = "任务状态") + private Integer status; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanVO.java new file mode 100644 index 0000000..b969c40 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/PlanVO.java @@ -0,0 +1,187 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 巡检计划vo + * @author ninglong + */ +@Data +@ApiModel(value="巡检计划vo") +public class PlanVO extends BaseEntity implements Serializable { + + private static final long serialVersionUID = -2714872219464298746L; + + @ApiModelProperty(value = "计划id") + private Long id; + + @ApiModelProperty(value = "0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交") + private Integer status; + /** + * 计划编码 + */ + @ApiModelProperty(value = "计划编码") + private String code; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称,长度必须为1到128") + @Size(min=1,max = 128,message ="计划名称长度必须为1到128") + private String name; +/* + @ApiModelProperty(value="班次id") + private Long classId; + + *//** + * 值班班次名称 + *//* + @ApiModelProperty(value = "值班班次名称") + private String className;*/ + + /** + * 计划开始时间 + */ + @ApiModelProperty(value = "计划开始时间") + @JsonFormat(pattern="yyyy-MM-dd") + private LocalDate startTime; + /** + * 计划结束时间 + */ + @ApiModelProperty(value = "计划结束时间") + @JsonFormat(pattern="yyyy-MM-dd") + private LocalDate endTime; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 班次") + private String type; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + private String method; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "计划周期 0: 每次 1:每天 2:每月 3:每季度 4:每年 5:每周") + private String cycle; + /** + * 审批人 + */ + @ApiModelProperty(value = "审批人") + private Long approver; + /** + * 审批时间 + */ + @ApiModelProperty(value = "审批时间 ") + private LocalDateTime approveTime; + /** + * 计划来源 1巡检 2点检 + */ + @ApiModelProperty(value = "计划来源 1巡检 2点检",hidden = true) + private String fromSource; + + + @ApiModelProperty(value = "巡检计划对象模板id") + private List planObjectTemplates = Lists.newArrayList(); + + @ApiModelProperty(value = "任务") + private List tasks = Lists.newArrayList(); + + @ApiModelProperty(value = "巡检计划模式人员id") + private List planUsers = Lists.newArrayList(); + @ApiModelProperty(value = "巡检计划模式人员名称") + private List planUserNames = Lists.newArrayList(); + @ApiModelProperty(value = "巡检计划模式岗位id") + private List planPosts = Lists.newArrayList(); + @ApiModelProperty(value = "巡检计划模式岗位名称") + private List planPostNames = Lists.newArrayList(); + @ApiModelProperty(value = "巡检计划模式机构id") + private List planOrgs = Lists.newArrayList(); + @ApiModelProperty(value = "巡检计划模式机构名称") + private List planOrgNames = Lists.newArrayList(); + + /** hzims add begin **/ + + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @ApiModelProperty(value = "计划类型,common常规任务,temporary临时任务 ") + private String planType; + + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + + /** + * 是否立即生产任务 1-是 0-否 + */ + @ApiModelProperty(value = "是否立即生产任务 1-是 0-否") + private Integer taskFlg; + + /** + * 巡检路线数据 + */ + @ApiModelProperty(value = "巡检路线数据") + private String routeData; + /** + * 巡检路线ID字段 + */ + @ApiModelProperty(value = "巡检路线ID字段") + private Long routeId; + /** + * 路线名称 + */ + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 开始前提醒(分钟) + */ + @ApiModelProperty(value = "开始前提醒(分钟)") + private Integer startRemind; + /** + * 结束前提醒(分钟) + */ + @ApiModelProperty(value = "结束前提醒(分钟)") + private Integer endRemind; + /** + * 一天任务次数 + */ + @ApiModelProperty(value = "一天任务次数") + private Integer taskTimesADay; + /** + * 任务执行时间json数据 + */ + @ApiModelProperty(value = "任务执行时间json数据") + private String execTimeJson; + /** + * 开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 " ^ "隔开 + */ + @ApiModelProperty(value = "开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 ^ 隔开") + private String aiCheckItems; + + /** + * 是否视频自动巡检 + */ + @ApiModelProperty(value = "是否视频自动巡检") + private String autoVideo; + + /** hzims add end **/ + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RoutObject.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RoutObject.java new file mode 100644 index 0000000..8ea453c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RoutObject.java @@ -0,0 +1,23 @@ +package org.springblade.hzinfo_inspect.plan.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 巡检路径内容 + * "sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"} + * @Author: py + */ +@Data +public class RoutObject implements Serializable { + private Integer sort; + private Long objectId; + private String objectName; + private Long templateId; + private String templateName; + private BigDecimal lng; + private BigDecimal lat; +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RouteVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RouteVO.java new file mode 100644 index 0000000..2eaaa08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/plan/vo/RouteVO.java @@ -0,0 +1,19 @@ +package org.springblade.hzinfo_inspect.plan.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.plan.entity.RouteEntity; + +/** + * 模型VO + * + * @author py + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RouteVO extends RouteEntity { + + private static final long serialVersionUID = 765388503830864943L; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/feign/IInspectReportClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/feign/IInspectReportClient.java new file mode 100644 index 0000000..69662e6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/feign/IInspectReportClient.java @@ -0,0 +1,21 @@ +package org.springblade.hzinfo_inspect.report.feign; + +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.report.vo.AlarmRoutReportVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IInspectReportClient { + String API_PREFIX = "/feign/report"; + String GET_ALARAM_REPORT = API_PREFIX + "/getAlarmReport"; + + @PostMapping(GET_ALARAM_REPORT) + Map getAlarmReport(@RequestParam("depts") List depts, @RequestParam("date") String date); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmRoutReportVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmRoutReportVO.java new file mode 100644 index 0000000..bedd052 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmRoutReportVO.java @@ -0,0 +1,9 @@ +package org.springblade.hzinfo_inspect.report.vo; + +import lombok.Data; + +@Data +public class AlarmRoutReportVO { + private Long overNum ; // 过检次数 + private Long missingNum; // 漏检次数 +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmTaskGatherReportVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmTaskGatherReportVO.java new file mode 100644 index 0000000..8bec76f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/report/vo/AlarmTaskGatherReportVO.java @@ -0,0 +1,11 @@ +package org.springblade.hzinfo_inspect.report.vo; + +import lombok.Data; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; + +@Data +public class AlarmTaskGatherReportVO extends TaskGatherEntity { + + private Long dept; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/DictConstants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/DictConstants.java new file mode 100644 index 0000000..756a36d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/DictConstants.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.safeproduct.constants; + +/** + * @author xiashandong + * @created 2021/5/27 10:09 + **/ +public interface DictConstants { + /**危险源应用类型key**/ + String SAFE_DANGER_SOURCE_APPLY_TYPE = "safe_danger_source_apply_type"; + /**危险源类型**/ + String DANGER_TYPE = "dangerType"; + /**危险等级**/ + String RISK_LEVEL = "riskLevel"; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/RoleConstant.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/RoleConstant.java new file mode 100644 index 0000000..63fff7c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/constants/RoleConstant.java @@ -0,0 +1,11 @@ +package org.springblade.hzinfo_inspect.safeproduct.constants; + +/** + * @author hx + */ +public interface RoleConstant { + /**站长**/ + String STATION_AGENT = "stationAgent"; + /**安全评审**/ + String SAFE_REVIEWER = "safetyReviewer"; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceEntity.java new file mode 100644 index 0000000..296217f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceEntity.java @@ -0,0 +1,72 @@ +package org.springblade.hzinfo_inspect.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + + +/** + * @author xiashandong + * @created 2020/9/1 15:19 + **/ +@Data +@TableName("hzims_safe_danger_source") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "危险源对象", description = "") +public class DangerSourceEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + private String tenantId; + + /** + * 危险源类型 1=作业活动 2=设备 + */ + @ApiModelProperty(value = "危险源类型 1=作业活动 2=设备") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer type; + /** + * 设备ID + */ + @ApiModelProperty(value = "设备ID") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long eqId; + /** + * 危险源名称 + */ + @ApiModelProperty(value = "危险源名称") + private String name; + /** + * 危险因素 + */ + @ApiModelProperty(value = "危险因素") + private String dangerEle; + + /** + * 应用类型 + */ + @ApiModelProperty(value = "应用类型") + private String applyType; + /** + * 可能导致的事故 + */ + @ApiModelProperty(value = "可能导致的事故") + private String cause; + /** + * 措施 + */ + @ApiModelProperty(value = "措施") + private String measures; + /** + * 风险等级 + */ + @ApiModelProperty(value = "风险等级 10=稍有危险 20=一般危险 30=显著危险 40=高度危险") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer level; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceLevelRecordEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceLevelRecordEntity.java new file mode 100644 index 0000000..37754b3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourceLevelRecordEntity.java @@ -0,0 +1,65 @@ +package org.springblade.hzinfo_inspect.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * @author xiashandong + * @created 2020/9/1 15:23 + **/ +@Data +@TableName("hzims_safe_danger_source_level_record") +@ApiModel(value = "危险源等级变更记录对象", description = "") +public class DangerSourceLevelRecordEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 危险源ID + */ + @ApiModelProperty(value = "危险源ID") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long sourceId; + /** + * 原等级 + */ + @ApiModelProperty(value = "原等级") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer orgiLevel; + /** + * 新等级 + */ + @ApiModelProperty(value = "新等级") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer newLevel; + /** + * 评级类型 0=降级 1=升级 + */ + @ApiModelProperty(value = "评级类型 0=降级 1=升级") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer type; + /** + * 工作流ID + */ + @ApiModelProperty(value = "工作流ID") + private String flowId; + /** + * 变更时间 + */ + @ApiModelProperty(value = "变更时间") + private Date updateTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourcePositionEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourcePositionEntity.java new file mode 100644 index 0000000..2f047d4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/entity/DangerSourcePositionEntity.java @@ -0,0 +1,56 @@ +package org.springblade.hzinfo_inspect.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hzims_safe_danger_source_position") +@ApiModel(value = "危险源位置对象", description = "") +public class DangerSourcePositionEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 危险源ID + */ + @ApiModelProperty(value = "危险源ID", hidden = true) + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long sourceId; + /** + * 平面图顶部距离 + */ + @ApiModelProperty(value = "平面图顶部距离") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Double paddingTop; + /** + * 平面图左边距 + */ + @ApiModelProperty(value = "平面图左边距") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Double paddingLeft; + /** + * 经度 + */ + @ApiModelProperty(value = "经度") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Double lgtd; + /** + * 纬度 + */ + @ApiModelProperty(value = "纬度") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Double lttd; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/IDangerSourceClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/IDangerSourceClient.java new file mode 100644 index 0000000..3e7e8cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/IDangerSourceClient.java @@ -0,0 +1,34 @@ +package org.springblade.hzinfo_inspect.safeproduct.feign; + +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IDangerSourceClient { + String API_PREFIX = "/feign/dangerSource"; + String DETAILS = API_PREFIX + "/details"; + String LIST_BY_DEPT_ID = API_PREFIX + "/listByDeptId"; + + /** + * 根据ID集合查询详情集,并按照传入的ids排序 + * + * @author xiashandong + **/ + @GetMapping(DETAILS) + List details(@RequestParam("ids") String[] ids); + + /** + * 根据条件查询危险源 + * + * @author xiashandong + **/ + @GetMapping(LIST_BY_DEPT_ID) + List listByDeptId(@RequestParam("deptId") String deptId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/TaskContants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/TaskContants.java new file mode 100644 index 0000000..d65f861 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/TaskContants.java @@ -0,0 +1,170 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task; + +import lombok.Getter; + +import java.util.HashSet; +import java.util.Set; + +/** + * @author ninglong + * + */ +public interface TaskContants { + /** + * 处理同时开启几个任务的 + */ + String OPEN_MULTIPLE_TASK = "hzims.tasks.flag"; + /** + * 流程key + */ + final String PROGROM_FLOWABLE_KEY = "inspectProgram"; + + /** + * 巡检任务类型字典key + */ + String INSPECT_TASK_TYPE = "inspectType"; + + /** + * 流程key + */ + final String TASK_USER = "problemUser"; + + /** + * 0未开始 1进行中 2暂停 3已完成 4未完成 + * @author ninglong + * + */ + public enum TaskStatusEnum{ + /** + * 任务状态未开始常量值 + */ + INIT_STATUS("0"), + /** + * 任务状态进行中常量值 + */ + UNDERWAY_STATUS("1"), + /** + * 任务状态暂停常量值 + */ + PAUSE_STATUS("2"), + /** + * 任务状态已完成常量值 + */ + FINISH_STATUS("3"), + /** + * 任务状态未完成常量值 + */ + UNFINISH_STATUS("4"); + @Getter + private String status; + private TaskStatusEnum(String status){ + this.status = status; + } + } + + /** + * 领用状态 0:未领用 1:已领用 + * @author ninglong + */ + public enum ClaimStatusEnum{ + /** + * 0:未领用 + */ + UN_COLLECT("0"), + /** + * 1:已领用 + */ + COLLECT("1"); + @Getter + private String status; + private ClaimStatusEnum(String status){ + this.status = status; + } + } + + /** + * 报备模式 0 任务报备 1 人员报备 + * @author ninglong + */ + public enum TaskRecordTypeEnum{ + task("0"),people("1"); + @Getter + private String type; + private TaskRecordTypeEnum(String type){ + this.type = type; + } + } + /** + * 巡检备案 0 未备案 1已备案 + * @author ninglong + */ + public enum keepOnRecordEnum{ + no("0"),yes("1"); + @Getter + private String type; + private keepOnRecordEnum(String type){ + this.type = type; + } + } + + /** + * 是否问题 0:否 1 是 默认0 + * @author ninglong + */ + public enum ProblemEnum{ + no("0"),yes("1"); + @Getter + private String type; + private ProblemEnum(String type){ + this.type = type; + } + } + + /** + * 完成标识 0 不可用 1 可用 + * @author ninglong + * + */ + public enum AvailableEnum{ + no("0"),yes("1"); + @Getter + private String type; + private AvailableEnum(String type){ + this.type = type; + } + } + + /** + * 当前状态 0 不可用 1 可用 + * @author py + * + */ + public enum CurrentStatusEnum{ + normal("1"), abnormal("0") ; + @Getter + private String type; + private CurrentStatusEnum(String type){ + this.type = type; + } + } + + enum StatusEnum{ + /** + * 状态未完成 + */ + INIT_STATUS(0), + /** + * 任务状态已完成 + */ + FINISH_STATUS(1); + @Getter + private Integer status; + private StatusEnum(Integer status){ + this.status = status; + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskEntity.java new file mode 100644 index 0000000..346fa7b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskEntity.java @@ -0,0 +1,169 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.List; + + +/** + * 实体类 + * @author Chill + */ +@Data +@TableName("hz_st_ex_task") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检任务对象", description = "巡检任务") +public class TaskEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 计划ID + */ + @ApiModelProperty(value = "计划ID") + private Long planId; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式") + private String type; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String planName; + /** + * 任务批次号 + */ + @ApiModelProperty(value = "任务批次号") + private String batchNumber; + /** + * 任务计划开始时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务计划开始时间") + private LocalDateTime planStartTime; + /** + * 任务计划结束时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务计划结束时间") + private LocalDateTime planEndTime; + /** + * 任务实际开始时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务实际开始时间") + private LocalDateTime startTime; + /** + * 任务实际结束时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "任务实际结束时间") + private LocalDateTime endTime; + /** + * 巡检备案 0 未备案 1已备案 + */ + @ApiModelProperty(value = "任务报备 0 未报备 1已报备") + private String keepOnRecord; + + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周") + private String cycle; + + @ApiModelProperty(value = "任务模式:0抢占,1并发") + private String method; + + @TableField(exist=false) + @ApiModelProperty(value = "任务执行人") + private String userName; + + @TableField(exist=false) + @ApiModelProperty(value = "任务执行人id") + private Long userId; + + @TableField(exist=false) + @ApiModelProperty(value = "任务执行人手机号码") + private String userPhone; + + @TableField(exist=false) + @ApiModelProperty(value = "巡检路线的点") + private List point; + + /** + * 巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 3防汛巡检 4特殊巡检") + private String autoVideo; + + /** + * hld + */ + + @ApiModelProperty(value = "计划类型") + private String planType; + + /** + * 任务开始前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务开始前 是否发送提醒短信 标识") + private Boolean startRemindFlag ; + /** + * 任务结束前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务结束前 是否发送提醒短信 标识") + private Boolean endRemindFlag ; + + + @ApiModelProperty(value = "计划、任务增加开始前提醒时间") + private LocalDateTime startRemindTime; + + + @ApiModelProperty(value = "计划、任务增加结束前提醒时间") + private LocalDateTime endRemindTime; + + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + + /** + * 值班id + */ + @ApiModelProperty(value = "值班id") + private Long dutyId; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskClient.java new file mode 100644 index 0000000..43b97fe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskClient.java @@ -0,0 +1,30 @@ +package org.springblade.hzinfo_inspect.task.feign; + +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IInspectTaskClient { + String API_PREFIX = "/feign/inspect/task"; + String QUERY_BY_PLAN_START_TIME = API_PREFIX + "/queryByPlanStartTime"; + String QUERY_BY_PLAN_START_TIME_AND_DEPT = API_PREFIX + "/queryByPlanStartTimeAndDept"; + + /** + * 根据创建时间查询巡检任务列表 + **/ + @GetMapping(QUERY_BY_PLAN_START_TIME) + List queryByPlanStartTime(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate); + + /** + * 根据创建时间及创建部门查询巡检任务列表 + **/ + @GetMapping(QUERY_BY_PLAN_START_TIME_AND_DEPT) + List queryByPlanStartTimeAndDept(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate, @RequestParam("depts") List depts); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskReportClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskReportClient.java new file mode 100644 index 0000000..cd26a8c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/feign/IInspectTaskReportClient.java @@ -0,0 +1,52 @@ +package org.springblade.hzinfo_inspect.task.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.Constants; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.vo.DutyInspectTaskVO; +import org.springblade.hzinfo_inspect.task.vo.TaskReportVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; +import java.util.Map; + +@FeignClient( + value = Constants.APP_NAME +) +public interface IInspectTaskReportClient { + String API_PREFIX = "real/time/task"; + String TO_RECEIVE = API_PREFIX + "/toReceives"; + String EXECUTROY = API_PREFIX + "/executorys"; + String EXECUTED = API_PREFIX + "/executeds"; + String DAY_ALL = API_PREFIX + "/dayAll"; + String CLASS_ALL = API_PREFIX + "/classAll"; + String INSPECT_TASK_REPORT = API_PREFIX + "/getInspectTaskReport"; + String INSPECT_TASK_CONCLUSION = API_PREFIX + "/getReportConClusion"; + String GET_DUTY_INSPEC_TTASK = API_PREFIX + "/getDutyInspectTask"; + + @PostMapping(TO_RECEIVE) + List toReceives(); + + @PostMapping(EXECUTROY) + List executorys(); + + @PostMapping(EXECUTED) + List executeds(); + + @PostMapping(DAY_ALL) + List dayAll(); + + @PostMapping(CLASS_ALL) + List classAll(@RequestBody Map params); + + @PostMapping(INSPECT_TASK_REPORT) + List getInspectTaskReport(@RequestBody Map params); + + @PostMapping(INSPECT_TASK_CONCLUSION) + Map getReportConclusion(@RequestBody Map params); + + @PostMapping(GET_DUTY_INSPEC_TTASK) + R getDutyInspectTask(@RequestBody Map params); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/DutyInspectTaskVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/DutyInspectTaskVO.java new file mode 100644 index 0000000..396a481 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/DutyInspectTaskVO.java @@ -0,0 +1,16 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode +public class DutyInspectTaskVO { + + @ApiModelProperty("巡检任务总数") + private Integer inspectTaskSum; + + @ApiModelProperty("巡检任务完成数") + private Integer inspectTaskFinish; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskReportVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskReportVO.java new file mode 100644 index 0000000..785057c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-inspect-service-api/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskReportVO.java @@ -0,0 +1,35 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author hx + */ +@Data +@EqualsAndHashCode +public class TaskReportVO { + private static final long serialVersionUID = 8220246531084664333L; + + @ApiModelProperty("人员ID") + private Long userId; + + @ApiModelProperty("姓名") + private String userName; + + @ApiModelProperty("完成任务情况") + private String completeSituation; + + @ApiModelProperty("未完成任务情况") + private String incompleteSituation; + + @ApiModelProperty("工时") + private Long hours; + + @ApiModelProperty("发现问题数量") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long findProblemCount; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/pom.xml new file mode 100644 index 0000000..10a777c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + hzinfo-ris-pxhd-common-service-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/QueryDateTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/QueryDateTypeEnum.java new file mode 100644 index 0000000..a6700f6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/QueryDateTypeEnum.java @@ -0,0 +1,35 @@ +package org.springblade.ris_common.entity; + +public enum QueryDateTypeEnum { + //时 + HOUR("hour"), + //日 + DAY("day"), + //月 + MONTH("month"), + //年 + YEAR("year"); + + private String queryDateType; + + QueryDateTypeEnum(String queryDateType) { + this.queryDateType = queryDateType; + } + + public static QueryDateTypeEnum getInstance(String queryDateType) { + for (QueryDateTypeEnum queryTypeEnum : QueryDateTypeEnum.values()) { + if (queryTypeEnum.getQueryDateType().equals(queryDateType)) { + return queryTypeEnum; + } + } + return null; + } + + public String getQueryDateType() { + return queryDateType; + } + + public void setQueryDateType(String queryDateType) { + this.queryDateType = queryDateType; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/Report.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/Report.java new file mode 100644 index 0000000..b873539 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/Report.java @@ -0,0 +1,272 @@ +package org.springblade.ris_common.entity; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.ris_common.util.ReportDateUtil; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 提供出去的报表 + * 提供基础业务数据以及统计数据 + * + * @Author: liugang + * @Date: 2019/7/8 15:03 + */ +public class Report { + + /** + * (唯一标识key,标题名称value), + */ + private List> title; + + /** + * 报表基础数据 + */ + private List data; + + /** + * 附加报表统计数据 + */ + private List standardData; + + /** + * 初始化基础报表数据 + * 把数据全部置为初始状态("-") + * + * @return + */ + public void initBaseReport(int size, Date begin, Date end, QueryDateTypeEnum dtEnum) { + data = new ArrayList<>(); + Calendar cal = Calendar.getInstance(); + cal.setTime(begin); + SimpleDateFormat sdf = ReportDateUtil.getSimpleDateFormatByType(dtEnum); + int step = ReportDateUtil.getCalendarType(dtEnum); + Date temp = cal.getTime(); + while (temp.before(end)) { + String key = sdf.format(temp); + ReportUnit unit = new ReportUnit(); + unit.init(key, size); + data.add(unit); + cal.set(step, cal.get(step) + 1); + temp = cal.getTime(); + } + } + + public void initBaseReportMonth(int day,int month){ + data = new ArrayList<>(); + for(int i=1;i<=day;i++){ + String key=i> 9 ? ""+i:"0"+i; + ReportUnit unit = new ReportUnit(); + unit.init(key, month); + data.add(unit); + } + ReportUnit unit = new ReportUnit(); + unit.init("max", month); + data.add(unit); + + unit = new ReportUnit(); + unit.init("maxDate", month); + data.add(unit); + + unit = new ReportUnit(); + unit.init("min", month); + data.add(unit); + + unit = new ReportUnit(); + unit.init("minDate", month); + data.add(unit); + + unit = new ReportUnit(); + unit.init("avg", month); + data.add(unit); + } + + public void initBaseReportMaxMin(int size, Date begin, Date end, QueryDateTypeEnum dtEnum) { + initBaseReport(size, begin, end, dtEnum); + ReportUnit unit = new ReportUnit(); + unit.init("max", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("maxDate", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("min", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("minDate", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("avg", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("range", size);//极差 + data.add(unit); + } + + public void initBaseReportHistory(int size){ + data = new ArrayList<>(); + ReportUnit unit = new ReportUnit(); + unit.init("max", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("maxDate", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("min", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("minDate", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("avg", size); + data.add(unit); + + unit = new ReportUnit(); + unit.init("range", size);//极差 + data.add(unit); + } + + public void initCompareBaseReport(int size, Date begin, Date end, QueryDateTypeEnum dtEnum) { + data = new ArrayList<>(); + Calendar cal = Calendar.getInstance(); + cal.setTime(begin); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); + int step = ReportDateUtil.getCalendarType(dtEnum); + Date temp = cal.getTime(); + while (temp.before(end)) { + String key = sdf.format(temp); + ReportUnit unit = new ReportUnit(); + unit.init(key, size); + data.add(unit); + cal.set(step, cal.get(step) + 1); + temp = cal.getTime(); + } + } + + public void initBaseRingReport(int size, Date begin, Date end, QueryDateTypeEnum dtEnum){ + data = new ArrayList<>(); + Calendar cal = Calendar.getInstance(); + cal.setTime(begin); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + int step = ReportDateUtil.getCalendarType(dtEnum); + Date temp = cal.getTime(); + while (temp.before(end)) { + String key = sdf.format(temp); + ReportUnit unit = new ReportUnit(); + unit.init(key, size); + data.add(unit); + cal.set(step, cal.get(step) + 1); + temp = cal.getTime(); + } + } + + public void initRingBaseReport(int size, Date begin, Date end, QueryDateTypeEnum dtEnum) { + data = new ArrayList<>(); + Calendar cal = Calendar.getInstance(); + cal.setTime(begin); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); + int step = ReportDateUtil.getCalendarType(dtEnum); + Date temp = cal.getTime(); + while (temp.before(end)) { + String key = sdf.format(temp); + ReportUnit unit = new ReportUnit(); + unit.init(key, size); + data.add(unit); + cal.set(step, cal.get(step) + 1); + temp = cal.getTime(); + } + } + + /** + * 初始化统计数据 + * + * @param size 大小 + * @param keys 统计数据类型 + */ + public void initStandardReport(int size, String[] keys) { + standardData = new ArrayList<>(); + for (String key : keys) { + standardData.add(initSingleStandard(key, size)); + } + } + + private ReportUnit initSingleStandard(String key, int size) { + ReportUnit unit = new ReportUnit(); + unit.setKey(key); + unit.setDataList(new ArrayList<>()); + for (int i = 0; i < size; i++) { + unit.getDataList().add("-"); + } + return unit; + } + + /** + * 修改唯一标识标定的数据对象(基础数据) + * + * @param key 唯一标识 + * @param index 修改的数据索引 + * @param value 修改的值 + */ + public void setBaseCell(String key, int index, String value) { + for (ReportUnit unit : data) { + if (unit.getKey().equals(key)) { + unit.getDataList().set(index, value); + } + } + } + + /** + * 修改唯一标识标定的数据对象(标准数据) + * + * @param key 唯一标识 + * @param index 修改的数据索引 + * @param value 修改的值 + */ + public void setStandardCell(String key, int index, String value) { + for (ReportUnit unit : standardData) { + if (unit.getKey().equals(key)) { + unit.getDataList().set(index, value); + } + } + } + + public List> getTitle() { + return title; + } + + public void setTitle(List> title) { + this.title = title; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public List getStandardData() { + return standardData; + } + + public void setStandardData(List standardData) { + this.standardData = standardData; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportData.java new file mode 100644 index 0000000..3feadff --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportData.java @@ -0,0 +1,107 @@ +package org.springblade.ris_common.entity; + +/** + * 封装一个key,value键值对象 + * 可能是数据库返回查询数据 + * 也可能是使用的对象由于数据需要置为- + * 所以采用String存储处理 + * + * @Author: liugang + * @Date: 2019/7/8 16:02 + */ +public class ReportData { + + private String keyStr; + + private String keyDate; + + private String val; + //测站 或 属性 + private String stcd; + //属性名 + private String name; + + private Double value; + + private int month=-1; + + private String day; + + public String getDay() { + return day; + } + + public void setDay(String day) { + this.day = day; + } + + public int getMonth() { + return month; + } + + public void setMonth(int month) { + this.month = month; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public ReportData() { + } + + public String getKeyDate() { + return keyDate; + } + + public void setKeyDate(String keyDate) { + this.keyDate = keyDate; + } + + public ReportData(String keyStr, String val) { + this.keyStr = keyStr; + this.val = val; + } + + public String getKeyStr() { + return keyStr; + } + + public void setKeyStr(String keyStr) { + this.keyStr = keyStr; + } + + public String getVal() { + return val; + } + + public void setVal(String val) { + this.val = val; + } + + public Double getValue() { + if(val!=null) { + if(val.indexOf("-")==-1) { + return Double.valueOf(val); + } + } + return 0.0; + } + + public void setValue(Double value) { + this.value = value; + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportUnit.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportUnit.java new file mode 100644 index 0000000..17a15b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/ReportUnit.java @@ -0,0 +1,34 @@ +package org.springblade.ris_common.entity; + +import java.util.ArrayList; +import java.util.List; + +public class ReportUnit { + private String key; + + private List dataList; + + public void init(String key, int size) { + this.key = key; + dataList = new ArrayList<>(); + for (int i = 0; i < size; i++) { + dataList.add("-"); + } + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public List getDataList() { + return dataList; + } + + public void setDataList(List dataList) { + this.dataList = dataList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/StandardData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/StandardData.java new file mode 100644 index 0000000..09b940b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/StandardData.java @@ -0,0 +1,174 @@ +package org.springblade.ris_common.entity; + +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.Objects; + +public class StandardData { + public static final String STANDARD_AVG = "平均值"; + public static final String STANDARD_MAX = "最大值"; + public static final String STANDARD_MAX_DATE = "最大值出现的时间"; + public static final String STANDARD_MIN = "最小值"; + public static final String STANDARD_MIN_DATE = "最小值出现的时间"; + public static final String STANDARD_AMPLITUDE = "最大变幅"; + public static final String STANDARD_SUM = "总量"; + + /** + * 平均值 + */ + private String dataAvg; + /** + * 最大值 + */ + private String dataMax; + /** + * 最大值时间 + */ + private String dataMaxDate; + /** + * 最小值 + */ + private String dataMin; + /** + * 最小值出现时间 + */ + private String dataMinDate; + /** + * 最大变幅 + */ + private String amplitude; + /** + * 总量 + */ + private String dataSum; + + /** + * 比较并处理最大值和最大值日期 + * + * @param value 被比较值 + * @param date 日期 + */ + public void compareDealMax(String value, String date) { + if (Objects.isNull(dataMax)) { + dataMax = value; + dataMaxDate = date; + } else { + if (Double.valueOf(dataMax) < Double.valueOf(value)) { + dataMax = value; + dataMaxDate = date; + } + } + } + + /** + * 比较并处理最小值和最小值日期 + * + * @param value 被比较值 + * @param date 日期 + */ + public void compareDealMin(String value, String date) { + if (Objects.isNull(dataMin)) { + dataMin = value; + dataMinDate = date; + } else { + if (Double.valueOf(value) < Double.valueOf(dataMin)) { + dataMin = value; + dataMinDate = date; + } + } + } + + /** + * 默认计算总和,如有其他逻辑请继承后改写 + * + * @param value + */ + public void countSum(String value) { + if (Objects.isNull(dataSum)) { + dataSum = value; + } else { + dataSum = new BigDecimal(value).add(new BigDecimal(dataSum)).toString(); + } + } + + /** + * 处理空数据,如果数据为空则置- + */ + public void dealNullData() { + if (StringUtils.isEmpty(dataAvg)) { + dataAvg = "-"; + } + if (StringUtils.isEmpty(dataMax)) { + dataMax = "-"; + } + if (StringUtils.isEmpty(dataMaxDate)) { + dataMaxDate = "-"; + } + if (StringUtils.isEmpty(dataMin)) { + dataMin = "-"; + } + if (StringUtils.isEmpty(dataMinDate)) { + dataMinDate = "-"; + } + if (StringUtils.isEmpty(dataSum)) { + dataSum = "-"; + } + } + + public String getDataAvg() { + return dataAvg; + } + + public void setDataAvg(String dataAvg) { + this.dataAvg = dataAvg; + } + + public String getDataMax() { + return dataMax; + } + + public void setDataMax(String dataMax) { + this.dataMax = dataMax; + } + + public String getDataMaxDate() { + return dataMaxDate; + } + + public void setDataMaxDate(String dataMaxDate) { + this.dataMaxDate = dataMaxDate; + } + + public String getDataMin() { + return dataMin; + } + + public void setDataMin(String dataMin) { + this.dataMin = dataMin; + } + + public String getDataMinDate() { + return dataMinDate; + } + + public void setDataMinDate(String dataMinDate) { + this.dataMinDate = dataMinDate; + } + + public String getAmplitude() { + return amplitude; + } + + public void setAmplitude(String amplitude) { + this.amplitude = amplitude; + } + + public String getDataSum() { + return dataSum; + } + + public void setDataSum(String dataSum) { + this.dataSum = dataSum; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/YearReport.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/YearReport.java new file mode 100644 index 0000000..5793a61 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/entity/YearReport.java @@ -0,0 +1,177 @@ +package org.springblade.ris_common.entity; + + +import org.springblade.ris_common.util.ReportDateUtil; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class YearReport { + private static final int MAX_DAY = 31; + + private int year; + private String stcd; + + /** + * 一个List代表1个月 + * 1个List有31个Double对象代表每一天 + * 如果没有数据或者天不存在就用-表示 + */ + private List> dayList; + + /** + * 一个key代表统计数据类型,value代表每个月统计数据值 + * 例如<最大值,12个月的数据> + * 最大值,最小值,平均值等等组成一个List + */ + private List monthList; + + /** + * 全年统计数据 + */ + private List yearList; + + public void init(String stcd, Integer year) { + this.year = year; + this.stcd = stcd; + initDayList(); + } + + /** + * 依据年份初始化年度报表,每个月的每天都加上- + * 目前不存在的年份也加上了- + * 如果有需求,则只把有日期的天上加上- + */ + public void initDayList() { + dayList = new ArrayList<>(); + for (int month = 0; month <= ReportDateUtil.MAX_MONTH; month++) { + dayList.add(new ArrayList<>()); + for (int day = 0; day < MAX_DAY; day++) { + dayList.get(month).add("-"); + } + } + } + + /** + * 初始化月份统计数据 + * + * @param keys 最大值,最小值,平均值等 + */ + public void initMonthList(String[] keys) { + monthList = new ArrayList<>(); + for (String key : keys) { + ReportUnit reportUnit = new ReportUnit(); + reportUnit.setKey(key); + List list = new ArrayList<>(); + for (int month = 0; month <= ReportDateUtil.MAX_MONTH; month++) { + list.add("-"); + } + reportUnit.setDataList(list); + monthList.add(reportUnit); + } + } + + /** + * 获取某类型每个月的数据 + * + * @param key + * @return + */ + public ReportUnit getMonthKeyList(String key) { + for (ReportUnit reportUnit : monthList) { + if (reportUnit.getKey().equals(key)) { + return reportUnit; + } + } + return null; + } + + /** + * 提供出去的设置每天数据 + * + * @param month 0-11月 + * @param day 1-31日 + * @param value 值 + */ + public void setDayValue(int month, int day, String value) { + dayList.get(month).set(day - 1, value); + } + + /** + * 提供出去的设置每月的统计数据 + * + * @param key 类型(最大值,最小值等) + * @param month 0-11月 + * @param value 值 + */ + public void setMonthValue(String key, int month, String value) { + for (ReportUnit reportUnit : monthList) { + if (reportUnit.getKey().equals(key)) { + reportUnit.getDataList().set(month, value); + } + } + } + + /** + * 针对数据进行求和计算 + * + * @param list + * @return + */ + public String sum(List list) { + String temp = null; + for (String data : list) { + if ("-".equals(data) || Double.valueOf(data) <= 0) { + continue; + } + if (Objects.isNull(temp)) { + temp = data; + } else { + temp = new BigDecimal(temp).add(new BigDecimal(data)).toString(); + } + } + return temp; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public List> getDayList() { + return dayList; + } + + public void setDayList(List> dayList) { + this.dayList = dayList; + } + + public List getMonthList() { + return monthList; + } + + public void setMonthList(List monthList) { + this.monthList = monthList; + } + + public List getYearList() { + return yearList; + } + + public void setYearList(List yearList) { + this.yearList = yearList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/CommonUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/CommonUtil.java new file mode 100644 index 0000000..8ef6c1f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/CommonUtil.java @@ -0,0 +1,147 @@ +package org.springblade.ris_common.util; + +import org.springblade.ris_common.entity.QueryDateTypeEnum; +import org.springblade.ris_common.entity.ReportData; + +import java.text.SimpleDateFormat; +import java.util.*; + +public class CommonUtil { + /** + * 检查查询类型是否符合 + * + * @param type + */ + public static QueryDateTypeEnum checkType(String type) { + QueryDateTypeEnum dtEnum = QueryDateTypeEnum.getInstance(type); + if (Objects.isNull(dtEnum)) { + return null; + } + return dtEnum; + } + + public static Date getHistoryDate(Date now,int year){ + Calendar calendar = Calendar.getInstance(); //创建Calendar 的实例 + calendar.setTime(now); + calendar.add(Calendar.YEAR, -year);//当前时间减去一年,即一年前的时间 + return calendar.getTime(); + } + + public static String getLastDayOfMonth(String yearMonth) + { + String[] arr=yearMonth.split("-"); + Calendar cal = Calendar.getInstance(); + //设置年份 + int year=Integer.valueOf(arr[0]); + cal.set(Calendar.YEAR,year); + //设置月份 + int month=Integer.valueOf(arr[1]); + cal.set(Calendar.MONTH, month-1); + //获取某月最大天数 + int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + //设置日历中月份的最大天数 + cal.set(Calendar.DAY_OF_MONTH, lastDay); + //格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + + return lastDayOfMonth; + } + + public static int getYearGap(Date start,Date end){ + Calendar calStartTime = Calendar.getInstance(); //获取日历实例 + Calendar calEndTime = Calendar.getInstance(); + calStartTime.setTime(start); + calEndTime.setTime(end); + return calEndTime.get(Calendar.YEAR) - calStartTime.get(Calendar.YEAR); + } + + + public static Map getStartEnd(String beginSpt, String endSpt){ + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date begin = null; + Date end = null; + try { + begin = sdf.parse(beginSpt); + end = sdf.parse(endSpt); + } catch (Exception e) { + return null; + } + + Map res=new HashMap<>(); + res.put("begin",begin); + res.put("end",end); + return res; + } + + public static String getKey(String str) { + String[] arr=str.split(" "); + String arr0=arr[0]; + String[] keys=arr0.split("-"); + String key=keys[1]+"-"+keys[2]; + return key; + } + + + public static List getReportDataBySignage(List timeDataList, String signage){ + List list=new ArrayList<>(); + for(ReportData data:timeDataList){ + if(signage.equals(data.getStcd())){ + list.add(data); + } + } + return list; + } + + public static int getMonth(String key) { + String[] keys = key.split("-"); + String month = keys[1]; + return Integer.valueOf(month); + } + + public static String getDay(String key) { + String[] keys = key.split("-"); + String dayHour = keys[2]; + String[] dayHourArr=dayHour.split(" "); + return dayHourArr[0]; + } + + public static int getHour(String key) { + String[] keys = key.split(" "); + String dayHour = keys[1]; + String[] dayHourArr=dayHour.split(":"); + return Integer.valueOf(dayHourArr[0]); + } + + //0-> s(秒) 1->、m(分)、2->h(小时)3->、d(天)4->、w(周)5->、n(自然月)、6->y(自然年) + public static String getKeyBySaveTimeType(String key,Integer saveTimeType){ + if(saveTimeType.intValue() == 2){//小时 + int index=key.indexOf(":"); + if(index>0) { + String tmp = key.substring(0, index); + return tmp; + } + } + if(saveTimeType.intValue() == 3){//天 + String[] arr=key.split(" "); + return arr[0]; + } + if(saveTimeType.intValue() == 5){//月 + int index=key.lastIndexOf("-"); + if(index>0) { + String tmp = key.substring(0, index); + return tmp; + } + } + if(saveTimeType.intValue() == 6){//年 + int index = key.indexOf("-"); + if(index>0) { + String tmp = key.substring(0, index); + return tmp; + } + } + return key; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/ReportDateUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/ReportDateUtil.java new file mode 100644 index 0000000..e7bdfa7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/hzinfo-ris-common-service-api/src/main/java/org/springblade/ris_common/util/ReportDateUtil.java @@ -0,0 +1,116 @@ +package org.springblade.ris_common.util; + +import org.apache.commons.lang3.StringUtils; +import org.springblade.ris_common.entity.QueryDateTypeEnum; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +public class ReportDateUtil { + public static final int MAX_MONTH = 11; + + public static int getDateDiff(Date begin, Date end, int step) { + //初始化差距 + int diff = 0; + Calendar cal = Calendar.getInstance(); + cal.setTime(begin); + Date temp = cal.getTime(); + while (temp.before(end)) { + diff++; + cal.set(step, cal.get(step) + 1); + temp = cal.getTime(); + } + return diff; + } + + /** + * 获取日期 + * + * @param year 年 + * @param month 月(0-11) + * @param day 日(1-31) + * @param hour 时 + * @param minute 分 + * @param second 秒 + * @return + */ + public static Date getDate(int year, int month, int day, int hour, int minute, int second) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, day); + calendar.set(Calendar.HOUR_OF_DAY, hour); + calendar.set(Calendar.MINUTE, minute); + calendar.set(Calendar.SECOND, second); + calendar.set(Calendar.MILLISECOND, 0); + Date date = calendar.getTime(); + return date; + } + + /** + * 获取下一个日期(下一年,下一月,下一日等) + * + * @param curDate + * @param field + * @return + */ + public static Date getNextDate(Date curDate, int field) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(curDate); + calendar.set(field, calendar.get(field) + 1); + return calendar.getTime(); + } + + /** + * 依据查询类型获取时间格式类型 + * + * @param dtEnum + * @return + */ + public static SimpleDateFormat getSimpleDateFormatByType(QueryDateTypeEnum dtEnum) { + switch (dtEnum) { + case HOUR: + return new SimpleDateFormat("yyyy-MM-dd HH"); + case DAY: + return new SimpleDateFormat("yyyy-MM-dd"); + case MONTH: + return new SimpleDateFormat("yyyy-MM"); + case YEAR: + return new SimpleDateFormat("yyyy"); + default: + return new SimpleDateFormat("yyyy-MM-dd"); + } + } + + /** + * 依据查询类型获取日历类型 + * + * @param dtEnum + * @return + */ + public static int getCalendarType(QueryDateTypeEnum dtEnum) { + switch (dtEnum) { + case HOUR: + return Calendar.HOUR_OF_DAY; + case DAY: + return Calendar.DAY_OF_MONTH; + case MONTH: + return Calendar.MONTH; + case YEAR: + return Calendar.YEAR; + default: + return Calendar.DAY_OF_MONTH; + } + } + + /*** + * 年月日时分秒 转年月日 + */ + public static String getYMDStr(String ymd) { + if(StringUtils.isNotEmpty(ymd)){ + return ymd.substring(0,11); + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/pom.xml new file mode 100644 index 0000000..1caaea7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-messaging-center-service-api + + ${project.artifactId} + jar + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageGroup.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageGroup.java new file mode 100644 index 0000000..6e3566b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageGroup.java @@ -0,0 +1,12 @@ +package org.springblade.messaging_center.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_send_message_group") +@Data +public class HzMessageGroup extends BaseEntity { + private String groupName; + private String personIds; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageRelation.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageRelation.java new file mode 100644 index 0000000..9033dfb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/HzMessageRelation.java @@ -0,0 +1,11 @@ +package org.springblade.messaging_center.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class HzMessageRelation implements Serializable { + private Long id; + private Long ruleId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageInfo.java new file mode 100644 index 0000000..09b1422 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageInfo.java @@ -0,0 +1,31 @@ +package org.springblade.messaging_center.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class MessageInfo implements Serializable { + private Long id; + //标题 + private String title; + //发送人id + private Long sendUserId; + //接收人id + private Long receiveUserId; + //内容 + private String content; + //发送时间 + private Date sendTime; + //确认时间 + private Date okTime; + //消息类型 1通知消息 2处理消息 + private int msgType; + //消息状态 0未读 1已读/已确认/未处理 2已处理 + private int status; + //消息等级 1紧急 2重要 3一般 4不重要 + private int msgLevel; + //模板id + private Long templateId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageRule.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageRule.java new file mode 100644 index 0000000..96a5e80 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageRule.java @@ -0,0 +1,41 @@ +package org.springblade.messaging_center.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class MessageRule implements Serializable { + //规则id + private Long id; + //字段code + private String code; + //字段名称 + private String name; + //单位 + private String unit; + //数据来源 1 redis(hz3000) 2数据平台 3数据库 4日期数据 5常量 + private String dataSource; + //取值方式 max min avg common + private String queryType; + //取值信息 + //1 遥测id+站点id+type "{\"ycId\":\"1\",\"stationId\":\"0\",\"type\":\"1\"}" + //2 deviceCode+属性code + //3 数据库+表+字段 + private String valueInfo; + //周期类型 S M H D + private String periodType; + //时间间隔 + private int dtGap; + //判定规则 大于gt 小于lt eq等于 gq大于等于 lq小于等于 + private String compareRule; + //判定值 + private BigDecimal compareValue; + //判定后的消息 为空则不加入模板消息中 不为空则替换到模板消息中 + private String compareMsg; + //数据格式化 + private String format; + //租户 + private String tenantId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageTemplate.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageTemplate.java new file mode 100644 index 0000000..05b17d9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/MessageTemplate.java @@ -0,0 +1,48 @@ +package org.springblade.messaging_center.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class MessageTemplate implements Serializable { + //模板id + private Long id; + //模板标题 + private String title; + //消息模板 + //系统级格式 {sk}上游水位{rz}下游水位{blrz} + //用户级格式 XX水库上游水位XXm下游水位XXm + private String content; + //定时规则 + private String cron; + //模板状态(0暂停、1启用) + private Integer status; + //人员来源 1人员 2部门 3角色 4自定义组 + private Integer personType; + //租户id + private String tenantId; + //对应人员来源id + private String personTypeIds; + //类型(系统system/用户user) + private String type; + //操作规则 (确认/创建任务规则) 1确认 2处理 + private Integer operate; + + //用于统计和分析的字段 + //模板类型(message 消息类 warn告警类) + private String templateType; + /** + * 模板类型细分 + * message day每日汛情 + * warn level 水位告警 + * warn flow流量告警 + * warn rain雨量告警 + * warn moisture墒情告警 + * warn soe soe告警 + */ + private String templateTypeSeg; + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/SendMsgInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/SendMsgInfo.java new file mode 100644 index 0000000..c65bf63 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/entity/SendMsgInfo.java @@ -0,0 +1,13 @@ +package org.springblade.messaging_center.entity; + +import lombok.Data; + +import java.util.ArrayList; + +@Data +public class SendMsgInfo { + private Long id;//模板id + private String title; + private String content; + private ArrayList tags; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/CompareRuleEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/CompareRuleEnum.java new file mode 100644 index 0000000..40ad014 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/CompareRuleEnum.java @@ -0,0 +1,39 @@ +package org.springblade.messaging_center.enums; + +public enum CompareRuleEnum { + GT("gt","大于"), + LT("lt","小于"), + GQ("gq","大于等于"), + LQ("lq","小于等于"); + private String type; + private String name; + CompareRuleEnum(String type,String name){ + this.type = type; + this.name = name; + } + + public static String getNameByType(String type){ + for(CompareRuleEnum compareRuleEnum:CompareRuleEnum.values()){ + if(compareRuleEnum.getType().equals(type)){ + return compareRuleEnum.getName(); + } + } + return "通知消息"; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgLevelEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgLevelEnum.java new file mode 100644 index 0000000..ffe17d1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgLevelEnum.java @@ -0,0 +1,39 @@ +package org.springblade.messaging_center.enums; + +public enum MsgLevelEnum { + ONE(1,"紧急"), + TWO(2,"重要"), + THREE(3,"一般"), + FOUR(4,"不重要"); + private int type; + private String name; + MsgLevelEnum(int type,String name){ + this.type = type; + this.name = name; + } + + public static String getNameByType(int type){ + for(MsgLevelEnum msgLevelEnum:MsgLevelEnum.values()){ + if(msgLevelEnum.getType() == type){ + return msgLevelEnum.getName(); + } + } + return "不重要"; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgRuleDataSourceEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgRuleDataSourceEnum.java new file mode 100644 index 0000000..3a57975 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgRuleDataSourceEnum.java @@ -0,0 +1,42 @@ +package org.springblade.messaging_center.enums; + +public enum MsgRuleDataSourceEnum { + //1 redis(hz3000) 2数据平台 3数据库 4日期数据 5常量 + ONE("1","redis(hz3000)"), + TWO("2","数据平台"), + THREE("3","数据库"), + FOUR("4","日期"), + FIVE("5","常量"); + private String code; + private String name; + + MsgRuleDataSourceEnum(String code,String name){ + this.code = code; + this.name = name; + } + + public static String getNameByCode(String code){ + for(MsgRuleDataSourceEnum ruleDataSourceEnum:MsgRuleDataSourceEnum.values()){ + if(ruleDataSourceEnum.getCode() == code){ + return ruleDataSourceEnum.getName(); + } + } + return null; + } + + 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgStatusEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgStatusEnum.java new file mode 100644 index 0000000..decb7db --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgStatusEnum.java @@ -0,0 +1,38 @@ +package org.springblade.messaging_center.enums; + +public enum MsgStatusEnum { + ZERO(0,"未读"), + ONE(1,"已读/已确认/未处理"), + TWO(2,"已处理"); + private int type; + private String name; + MsgStatusEnum(int type, String name){ + this.type = type; + this.name = name; + } + + public static String getNameByType(int type){ + for(MsgStatusEnum msgStatusEnum:MsgStatusEnum.values()){ + if(msgStatusEnum.getType() == type){ + return msgStatusEnum.getName(); + } + } + return "未读"; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgTypeEnum.java new file mode 100644 index 0000000..e8fe344 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/enums/MsgTypeEnum.java @@ -0,0 +1,37 @@ +package org.springblade.messaging_center.enums; + +public enum MsgTypeEnum { + ONE(1,"通知消息"), + TWO(2,"处理消息"); + private int type; + private String name; + MsgTypeEnum(int type,String name){ + this.type = type; + this.name = name; + } + + public static String getNameByType(int type){ + for(MsgTypeEnum msgTypeEnum:MsgTypeEnum.values()){ + if(msgTypeEnum.getType() == type){ + return msgTypeEnum.getName(); + } + } + return "通知消息"; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/feign/IMessagingClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/feign/IMessagingClient.java new file mode 100644 index 0000000..262bde4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/messaging-center-service-api/src/main/java/org/springblade/messaging_center/feign/IMessagingClient.java @@ -0,0 +1,24 @@ +package org.springblade.messaging_center.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient( + value = "messaging-center", + url = "${feign.messaging-center:}" +) +public interface IMessagingClient { + String API_PREFIX = "/messagingClient"; + String SEND_MESSAGE = API_PREFIX + "/sendMessage"; + + /** + * 获取断面列表 + * + * @return + */ + @PostMapping(SEND_MESSAGE) + R sendMessage(@RequestBody SendMsgInfo info,Long userId); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/pom.xml new file mode 100644 index 0000000..dd89bbe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/pom.xml @@ -0,0 +1,85 @@ + + + + org.springblade + HZInfo-RIS + 4.5.0.RELEASE + + + 4.0.0 + + hzinfo-ris-pxhd-service-api + ${project.artifactId} + 4.5.0.RELEASE + + + dam-safety-monitor-service-api + reservoir-baseinfo-service-api + water-rain-monitor-service-api + engineering-management-service-api + general-dispatching-service-api + video-image-service-api + hzinfo-inspect-service-api + hzinfo-ris-common-service-api + hz3000-real-data-service-api + messaging-center-service-api + + + pom + + + UTF-8 + + + + + org.springblade + blade-starter-swagger + + + blade-core-tool + org.springblade + + + swagger-models + io.swagger + + + springfox-swagger2 + io.springfox + + + springfox-swagger-common + io.springfox + + + + + org.springblade + blade-starter-mybatis + + + + org.springframework.cloud + spring-cloud-openfeign-core + + + org.springblade + blade-starter-cache + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + ${project.name} + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/pom.xml new file mode 100644 index 0000000..923dc76 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-reservoir-baseinfo-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/CityInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/CityInfo.java new file mode 100644 index 0000000..a202e2b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/CityInfo.java @@ -0,0 +1,161 @@ +package org.springblade.reservoirbase.entity; + +import java.io.Serializable; + +public class CityInfo implements Serializable{ + private static final long serialVersionUID = 1075992483263570718L; + /** @pdOid 50cce6a8-6e85-49eb-8341-85bb0cbc3b80 */ + private String cityX; + private String cityY; + private String cityname; + private String centername; + private String pyName; + private String state1;// 神马转神马,每个数代表一个天气现象;0.晴 1.多云 2.阴 6.雨夹雪 .. + private String state2;// 神马转神马,每个数代表一个天气现象;0.晴 1.多云 2.阴 6.雨夹雪 .. + private String stateDetailed; + private String tem1; // 最低温低;30 + private String tem2; // 最高温度;37 + private String temNow; + private String windState; + private String windDir; + private String windPower; + private String humidity; + private String time; + private String url; + + public String getcityX() { + return cityX; + } + + public void setcityX(String cityX) { + this.cityX = cityX; + } + + public String getcityY() { + return cityY; + } + + public void setcityY(String cityY) { + this.cityY = cityY; + } + + public String getcityname() { + return cityname; + } + + public void setcityname(String cityname) { + this.cityname = cityname; + } + + public String getcentername() { + return centername; + } + + public void setcentername(String centername) { + this.centername = centername; + } + + public String getpyName() { + return pyName; + } + + public void setpyName(String pyName) { + this.pyName = pyName; + } + + public String getstate1() { + return state1; + } + + public void setstate1(String state1) { + this.state1 = state1; + } + + public String getstate2() { + return state2; + } + + public void setstate2(String state2) { + this.state2 = state2; + } + + public String getstateDetailed() { + return stateDetailed; + } + + public void setstateDetailed(String stateDetailed) { + this.stateDetailed = stateDetailed; + } + + public String gettem1() { + return tem1; + } + + public void settem1(String tem1) { + this.tem1 = tem1; + } + + public String gettem2() { + return tem2; + } + + public void settem2(String tem2) { + this.tem2 = tem2; + } + + public String gettemNow() { + return temNow; + } + + public void settemNow(String temNow) { + this.temNow = temNow; + } + + public String getwindState() { + return windState; + } + + public void setwindState(String windState) { + this.windState = windState; + } + + public String getwindDir() { + return windDir; + } + + public void setwindDir(String windDir) { + this.windDir = windDir; + } + + public String getwindPower() { + return windPower; + } + + public void setwindPower(String windPower) { + this.windPower = windPower; + } + + public String gethumidity() { + return humidity; + } + + public void sethumidity(String humidity) { + this.humidity = humidity; + } + + public String gettime() { + return time; + } + + public void settime(String time) { + this.time = time; + } + + public String geturl() { + return url; + } + + public void seturl(String url) { + this.url = url; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGate.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGate.java new file mode 100644 index 0000000..398c600 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGate.java @@ -0,0 +1,48 @@ +package org.springblade.reservoirbase.entity; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class IrrBDGate { + private String strobeCode; + + private String stcd; + + private String deptId; + + private String watergateCode; + + private String producingArea; + + private String factory; + + private String strobeType; + + private String strobeMaterial; + + private BigDecimal height; + + private BigDecimal width; + + private BigDecimal thickness; + + private String motivity; + + private String type; + + private Short velocity; + + private String areaCode; + + private String lrcd; + + private String szhldm; + + private Float dongj; + + private Float beiw; + + private Float discharge; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGateRefData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGateRefData.java new file mode 100644 index 0000000..cf540ae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/IrrBDGateRefData.java @@ -0,0 +1,14 @@ +package org.springblade.reservoirbase.entity; + +import lombok.Data; + +@Data +public class IrrBDGateRefData { + private String strobeCode; + + private String refstcd; + + private String refqpoint; + + private String refzpoint; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Irrbireach.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Irrbireach.java new file mode 100644 index 0000000..f100d55 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Irrbireach.java @@ -0,0 +1,28 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; + +/** + * 河流表 + */ +@Data +@TableName("irrbireach") +public class Irrbireach extends BaseEntity { + @ApiModelProperty("河流编码") + private String riverCode; + @ApiModelProperty("河流名称") + private String riverName; + @ApiModelProperty("河槽平均宽度(米)") + private BigDecimal riverWidth; + @ApiModelProperty("河槽平均流量(立方米/秒)") + private BigDecimal riverFlux; + @ApiModelProperty("经纬度") + private String coordinateset; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrBsin.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrBsin.java new file mode 100644 index 0000000..f712d5f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrBsin.java @@ -0,0 +1,61 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 水库信息表 + */ +@Data +@TableName("st_rsr_bsin") +public class StRsrBsin extends BaseEntity { + @ApiModelProperty("水库代码") + private String rscd; + @ApiModelProperty("水库名称") + private String rtunm; + @ApiModelProperty("主管部门") + private String cmdp; + @ApiModelProperty("主管部门联系电话") + private String cmdptel; + @ApiModelProperty("河流名称") + private String rvcd; + @ApiModelProperty("水系名称") + private String hnnm; + @ApiModelProperty("流域名称") + private String ctcd; + @ApiModelProperty("东经") + private BigDecimal eslg; + @ApiModelProperty("北纬") + private BigDecimal nrlt; + @ApiModelProperty("站址") + private String stlc; + @ApiModelProperty("行政区划码") + private String addvcd; + @ApiModelProperty("基面名称") + private String dtmnm; + @ApiModelProperty("基面高程") + private BigDecimal dtmel; + @ApiModelProperty("基面修正值") + private BigDecimal dtpr; + @ApiModelProperty("报汛等级") + private String frgrd; + @ApiModelProperty("集水面积") + private BigDecimal drna; + @ApiModelProperty("拼音码") + private String phcd; + @ApiModelProperty("启用标志") + private String usfl; + @ApiModelProperty("备注") + private String comments; + @ApiModelProperty("建成时间") + private Date buildTime; + @ApiModelProperty("最大坝高") + private BigDecimal maxdmhg; + @ApiModelProperty("坝型") + private String dmtp; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrHych.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrHych.java new file mode 100644 index 0000000..edeb69b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRsrHych.java @@ -0,0 +1,63 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 水库防洪信息 + */ +@Data +@TableName("st_rsr_hych") +public class StRsrHych implements Serializable { + @ApiModelProperty("水库代码") + @TableId(type = IdType.INPUT) + private String rscd; + @ApiModelProperty("水库类型") + private String rsvrtp; + @ApiModelProperty("坝顶高程") + private BigDecimal damel; + @ApiModelProperty("控制流域面积") + private BigDecimal cnctar; + @ApiModelProperty("校核洪水位") + private BigDecimal chfl; + @ApiModelProperty("设计洪水位") + private BigDecimal dsfl; + @ApiModelProperty("正常高水位") + private BigDecimal normz; + @ApiModelProperty("死水位") + private BigDecimal ddwz; + @ApiModelProperty("汛限水位") + private BigDecimal mjfl; + @ApiModelProperty("兴利水位") + private BigDecimal actz; + @ApiModelProperty("总库容") + private BigDecimal ttcp; + @ApiModelProperty("防洪库容") + private BigDecimal fldcp; + @ApiModelProperty("兴利库容") + private BigDecimal actcp; + @ApiModelProperty("死库容") + private BigDecimal ddcp; + @ApiModelProperty("历史最高库水位") + private BigDecimal hhrz; + @ApiModelProperty("历史最大蓄水量") + private BigDecimal hmxw; + @ApiModelProperty("历史最高库水位(蓄水量)时间") + private Date maxleveltime; + @ApiModelProperty("低水位告警值") + private BigDecimal laz; + @ApiModelProperty("启动预报流量标准") + private BigDecimal sfq; + @ApiModelProperty("时间戳") + private Date moditime; + @ApiModelProperty("更新时间") + private Date dtuptm; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRtuParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRtuParam.java new file mode 100644 index 0000000..ce279c9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StRtuParam.java @@ -0,0 +1,52 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 遥测终端信息 + */ +@Data +@TableName("st_rtu_param") +public class StRtuParam implements Serializable { + @ApiModelProperty("水库代码") + private String rscd; + @ApiModelProperty("设备编号") + private String emtc; + @ApiModelProperty("设备类型") + private String emtp; + @ApiModelProperty("通道数") + private String csum; + @ApiModelProperty("通道 1 类型(主)") + private String mmid; + @ApiModelProperty("通道 2 类型(备)") + private String msid; + @ApiModelProperty("卡号 1") + private String mmcid; + @ApiModelProperty("卡号 2") + private String mscid; + @ApiModelProperty("加报时间间隔") + private BigDecimal atmri; + @ApiModelProperty("采样间隔") + private BigDecimal si; + @ApiModelProperty("电压信息") + private BigDecimal vbat; + @ApiModelProperty("其他工况信息") + private String otherInfo; + @ApiModelProperty("硬件信息") + private String hver; + @ApiModelProperty("软件信息") + private String sver; + @ApiModelProperty("添加时间") + private Date rsatime; + @ApiModelProperty("更新时间") + private Date dtuptm; + @ApiModelProperty("上线时间") + private Date oltime; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StZvarlB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StZvarlB.java new file mode 100644 index 0000000..b29cc18 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/StZvarlB.java @@ -0,0 +1,42 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 库(湖)容曲线表 + */ +@Data +@TableName("st_zvarl_b") +public class StZvarlB implements Serializable { + @JsonSerialize( using = ToStringSerializer.class) + @TableId( value = "id", type = IdType.ASSIGN_ID) + @ApiModelProperty("主键id") + private Long id; + @ApiModelProperty("库(湖)编码") + private String rscd; + @ApiModelProperty("测量时间") + private Date mstm; + @ApiModelProperty("点序号") + private Integer ptno; + @ApiModelProperty("库水位(m)") + private BigDecimal rz; + @ApiModelProperty("库容") + private BigDecimal w; + @ApiModelProperty("水域面积") + private BigDecimal wsfa; + @ApiModelProperty("修改时间") + private Date moditime; + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/SystemInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/SystemInfo.java new file mode 100644 index 0000000..1e6b817 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/SystemInfo.java @@ -0,0 +1,51 @@ +package org.springblade.reservoirbase.entity; + +import java.util.Map; + +public class SystemInfo { + private String systemName; + private String gisUrl; + private String gisLevel; + private String areaCode; + private Map gisInfo; + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getSystemName() { + return systemName; + } + + public void setSystemName(String systemName) { + this.systemName = systemName; + } + + public String getGisUrl() { + return gisUrl; + } + + public void setGisUrl(String gisUrl) { + this.gisUrl = gisUrl; + } + + public Map getGisInfo() { + return gisInfo; + } + + public void setGisInfo(Map gisInfo) { + this.gisInfo = gisInfo; + } + + public String getGisLevel() { + return gisLevel; + } + + public void setGisLevel(String gisLevel) { + this.gisLevel = gisLevel; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/ThreeDutyPerson.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/ThreeDutyPerson.java new file mode 100644 index 0000000..abbce5c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/ThreeDutyPerson.java @@ -0,0 +1,23 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +@Data +@TableName("three_duty_person") +public class ThreeDutyPerson extends BaseEntity { + @ApiModelProperty("责任人姓名") + private String dutyName; + @ApiModelProperty("职务") + private String position; + @ApiModelProperty("联系方式") + private String phone; + @ApiModelProperty("责任人类型") + private String dutyType; + @ApiModelProperty("主要职责") + private String mainJob; + @ApiModelProperty("所属水库") + private String rscd; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Weather.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Weather.java new file mode 100644 index 0000000..14eb65e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/Weather.java @@ -0,0 +1,96 @@ +package org.springblade.reservoirbase.entity; + +public class Weather implements Cloneable { + + private String province; //省份 + private String location; //地点 + private String humidity; //湿度 + private String nowTemperature; //当前温度 + private String updateTime; //更新时间 + + private String dateStr; //日期 + private String highTemperature; //最高温度 + private String lowTemperature; //最低温度 + private String weather; //天气 + private String windDirection; //风向 + private String windLevel; //风力 + + public String getProvince() { + return province; + } + public void setProvince(String province) { + this.province = province; + } + public String getLocation() { + return location; + } + public void setLocation(String location) { + this.location = location; + } + public String getHumidity() { + return humidity; + } + public void setHumidity(String humidity) { + this.humidity = humidity; + } + public String getNowTemperature() { + return nowTemperature; + } + public void setNowTemperature(String nowTemperature) { + this.nowTemperature = nowTemperature; + } + public String getUpdateTime() { + return updateTime; + } + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + public String getDateStr() { + return dateStr; + } + public void setDateStr(String dateStr) { + this.dateStr = dateStr; + } + public String getHighTemperature() { + return highTemperature; + } + public void setHighTemperature(String highTemperature) { + this.highTemperature = highTemperature; + } + public String getLowTemperature() { + return lowTemperature; + } + public void setLowTemperature(String lowTemperature) { + this.lowTemperature = lowTemperature; + } + public String getWeather() { + return weather; + } + public void setWeather(String weather) { + this.weather = weather; + } + public String getWindDirection() { + return windDirection; + } + public void setWindDirection(String windDirection) { + this.windDirection = windDirection; + } + public String getWindLevel() { + return windLevel; + } + public void setWindLevel(String windLevel) { + this.windLevel = windLevel; + } + + @Override + public Object clone() { + Weather weather = null; + try { + weather = (Weather) super.clone(); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + return weather; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqAdlrrB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqAdlrrB.java new file mode 100644 index 0000000..8b5b091 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqAdlrrB.java @@ -0,0 +1,20 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + *行政区划与湖库关系 + */ +@Data +@TableName("wq_adlrr_b") +public class WqAdlrrB implements Serializable { + private Long id; + @ApiModelProperty("行政区划码") + private String addvcd; + @ApiModelProperty("湖库代码") + private String lrcd; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrinfB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrinfB.java new file mode 100644 index 0000000..5fcb102 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrinfB.java @@ -0,0 +1,30 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; + +/** + *湖库表 + */ +@Data +@TableName("wq_lrinf_b") +public class WqLrinfB extends BaseEntity { + @ApiModelProperty("湖库代码") + private String lrcd; + @ApiModelProperty("水域类型") + private String watp; + @ApiModelProperty("湖(库)名称") + private String lrnm; + @ApiModelProperty("湖(库)面积") + private BigDecimal lrar; + @ApiModelProperty("水库库容") + private BigDecimal rscp; + @ApiModelProperty("经纬度") + private String coordinateset; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrsrB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrsrB.java new file mode 100644 index 0000000..4bbd3b3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqLrsrB.java @@ -0,0 +1,20 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 湖库与测站关系 + */ +@Data +@TableName("wq_lrsr_b") +public class WqLrsrB implements Serializable { + private Long id; + @ApiModelProperty("湖库代码") + private String lrcd; + @ApiModelProperty("测站编码") + private String stcd; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqWrrlrrB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqWrrlrrB.java new file mode 100644 index 0000000..c6c1887 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/entity/WqWrrlrrB.java @@ -0,0 +1,20 @@ +package org.springblade.reservoirbase.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + *水资源分区与湖库关系 + */ +@Data +@TableName("wq_wrrlrr_b") +public class WqWrrlrrB implements Serializable { + private Long id; + @ApiModelProperty("水资源分区码") + private String wrrcd; + @ApiModelProperty("湖库代码") + private String lrcd; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStRsrBsinClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStRsrBsinClient.java new file mode 100644 index 0000000..bcdd8c1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStRsrBsinClient.java @@ -0,0 +1,23 @@ +package org.springblade.reservoirbase.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +@FeignClient( + value = "reservoir-baseinfo", + url = "${feign.reservoir-baseinfo:}" +) +public interface IStRsrBsinClient { + String API_PREFIX = "/stRsrBsinClient"; + String GET_ONE = API_PREFIX + "/getOne"; + + /** + * 获取断面列表 + * + * @return + */ + @GetMapping(GET_ONE) + StRsrBsin getOne(LambdaQueryWrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStZvarlBClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStZvarlBClient.java new file mode 100644 index 0000000..d788505 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/feign/IStZvarlBClient.java @@ -0,0 +1,30 @@ +package org.springblade.reservoirbase.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.math.BigDecimal; +import java.util.List; + +@FeignClient( + value = "reservoir-baseinfo", + url = "${feign.reservoir-baseinfo:}" +) +public interface IStZvarlBClient { + String API_PREFIX = "/stZvarlBClient"; + String LIST = API_PREFIX + "/list"; + String CALC_RESP = API_PREFIX + "/calcResp"; + + /** + * 获取库容曲线 + * @return + */ + @GetMapping(LIST) + List list(LambdaQueryWrapper wrapper); + + @GetMapping(CALC_RESP) + BigDecimal calcResp(List list, BigDecimal rz); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/StRsrBsinVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/StRsrBsinVo.java new file mode 100644 index 0000000..890a38e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/StRsrBsinVo.java @@ -0,0 +1,38 @@ +package org.springblade.reservoirbase.vo; + +import org.springblade.reservoirbase.entity.StRsrBsin; + +public class StRsrBsinVo extends StRsrBsin { + + //行政区划名称 + private String addvcdnm; + /*** 水位*/ + private String waterLevel; + + /*** 库容*/ + private String capacity; + + public String getAddvcdnm() { + return addvcdnm; + } + + public void setAddvcdnm(String addvcdnm) { + this.addvcdnm = addvcdnm; + } + + public String getWaterLevel() { + return waterLevel; + } + + public void setWaterLevel(String waterLevel) { + this.waterLevel = waterLevel; + } + + public String getCapacity() { + return capacity; + } + + public void setCapacity(String capacity) { + this.capacity = capacity; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqAdlrrBVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqAdlrrBVo.java new file mode 100644 index 0000000..9677c55 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqAdlrrBVo.java @@ -0,0 +1,6 @@ +package org.springblade.reservoirbase.vo; + +import org.springblade.reservoirbase.entity.WqAdlrrB; + +public class WqAdlrrBVo extends WqAdlrrB { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqLrsrBVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqLrsrBVo.java new file mode 100644 index 0000000..0030393 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqLrsrBVo.java @@ -0,0 +1,6 @@ +package org.springblade.reservoirbase.vo; + +import org.springblade.reservoirbase.entity.WqLrsrB; + +public class WqLrsrBVo extends WqLrsrB { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqWrrlrrBVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqWrrlrrBVo.java new file mode 100644 index 0000000..86e9954 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/reservoir-baseinfo-service-api/src/main/java/org/springblade/reservoirbase/vo/WqWrrlrrBVo.java @@ -0,0 +1,6 @@ +package org.springblade.reservoirbase.vo; + +import org.springblade.reservoirbase.entity.WqWrrlrrB; + +public class WqWrrlrrBVo extends WqWrrlrrB { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/pom.xml new file mode 100644 index 0000000..300598e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-video-image-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StCamInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StCamInfo.java new file mode 100644 index 0000000..79261af --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StCamInfo.java @@ -0,0 +1,49 @@ +package org.springblade.video_image.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 摄像头信息 + */ +@Data +@TableName("st_cam_info") +public class StCamInfo implements Serializable { + @ApiModelProperty("水库代码") + private String rscd; + @ApiModelProperty("测点编号") + private String mpcd; + @ApiModelProperty("摄像头编号") + private String camcd; + @ApiModelProperty("摄像头名称") + private String camName; + @ApiModelProperty("类型") + private String camType; + @ApiModelProperty("类别") + private String camClass; + @ApiModelProperty("摄像头机号") + private String camNo; + @ApiModelProperty("像素") + private BigDecimal camPixel; + @ApiModelProperty("变焦") + private BigDecimal camZoom; + @ApiModelProperty("拍照频率") + private BigDecimal imgRate; + @ApiModelProperty("国际编码") + private BigDecimal camGbsn; + @ApiModelProperty("部位") + private String fdPostion; + @ApiModelProperty("经度") + private BigDecimal lgtd; + @ApiModelProperty("纬度") + private BigDecimal lttd; + @ApiModelProperty("说明") + private String fdDesc; + @ApiModelProperty("创建时间") + private Date addTime; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbCam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbCam.java new file mode 100644 index 0000000..79b8aea --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbCam.java @@ -0,0 +1,29 @@ +package org.springblade.video_image.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 摄像头配置 + */ +@Data +@TableName("st_gb_cam") +public class StGbCam implements Serializable { + @ApiModelProperty("测站编码") + private String stcd; + @ApiModelProperty("摄像头编号") + private String camcd; + @ApiModelProperty("国标编码") + private String camsipcd; + @ApiModelProperty("通道编码") + private String camsipvcd; + @ApiModelProperty("通道数") + private BigDecimal tdnum; + @ApiModelProperty("通道名称") + private String tdname; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbSip.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbSip.java new file mode 100644 index 0000000..acaac1b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/video-image-service-api/src/main/java/org/springblade/video_image/entity/StGbSip.java @@ -0,0 +1,29 @@ +package org.springblade.video_image.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * GB服务器配置 + */ +@Data +@TableName("st_gb_sip") +public class StGbSip implements Serializable { + @ApiModelProperty("平台国标编码") + private String gbfcd; + @ApiModelProperty("域") + private String gbny; + @ApiModelProperty("ip") + private String gbsevip; + @ApiModelProperty("设备端口") + private BigDecimal gbskt; + @ApiModelProperty("用户名") + private String usname; + @ApiModelProperty("密码") + private String uspws; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/pom.xml new file mode 100644 index 0000000..7bf3476 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + hzinfo-ris-pxhd-service-api + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-water-rain-monitor-api + ${project.artifactId} + jar + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/bo/StationResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/bo/StationResp.java new file mode 100644 index 0000000..4abf44f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/bo/StationResp.java @@ -0,0 +1,25 @@ +package org.springblade.water_rain_monitor.bo; + +import org.springblade.water_rain_monitor.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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStPptnR.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStPptnR.java new file mode 100644 index 0000000..c6dcad2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStPptnR.java @@ -0,0 +1,35 @@ +package org.springblade.water_rain_monitor.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +public class HzStPptnR implements Serializable { + private String stcd; + private Date tm; + private BigDecimal drp; + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public Date getTm() { + return tm; + } + + public void setTm(Date tm) { + this.tm = tm; + } + + public BigDecimal getDrp() { + return drp; + } + + public void setDrp(BigDecimal drp) { + this.drp = drp; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRiverR.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRiverR.java new file mode 100644 index 0000000..901044a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRiverR.java @@ -0,0 +1,44 @@ +package org.springblade.water_rain_monitor.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +public class HzStRiverR implements Serializable { + private String stcd; + private Date tm; + private BigDecimal z; + private BigDecimal q; + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public Date getTm() { + return tm; + } + + public void setTm(Date tm) { + this.tm = tm; + } + + public BigDecimal getZ() { + return z; + } + + public void setZ(BigDecimal z) { + this.z = z; + } + + public BigDecimal getQ() { + return q; + } + + public void setQ(BigDecimal q) { + this.q = q; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRsvrR.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRsvrR.java new file mode 100644 index 0000000..fa9db0e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/HzStRsvrR.java @@ -0,0 +1,45 @@ +package org.springblade.water_rain_monitor.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +public class HzStRsvrR implements Serializable { + private String stcd;//测站编码 + private Date tm;//时间 + private BigDecimal rz; //水位 + private BigDecimal inq;//流量 + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public Date getTm() { + return tm; + } + + public void setTm(Date tm) { + this.tm = tm; + } + + public BigDecimal getRz() { + return rz; + } + + public void setRz(BigDecimal rz) { + this.rz = rz; + } + + public BigDecimal getInq() { + return inq; + } + + public void setInq(BigDecimal inq) { + this.inq = inq; + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeData.java new file mode 100644 index 0000000..021d42a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeData.java @@ -0,0 +1,14 @@ +package org.springblade.water_rain_monitor.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> data; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeLog.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeLog.java new file mode 100644 index 0000000..fa73420 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/ReorganizeLog.java @@ -0,0 +1,13 @@ +package org.springblade.water_rain_monitor.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; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/StStbprpB.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/StStbprpB.java new file mode 100644 index 0000000..6778bd1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/entity/StStbprpB.java @@ -0,0 +1,74 @@ +package org.springblade.water_rain_monitor.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; + +/** + * 水雨情测站信息表 + */ +@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 BigDecimal mdbz; + @ApiModelProperty("基面修正参数") + private BigDecimal mdpr; + @ApiModelProperty("基面名称") + private String dtmnm; + @ApiModelProperty("基面高程") + private BigDecimal dtmel; + @ApiModelProperty("站类") + private String sttp; + @ApiModelProperty("拍报段次") + private BigDecimal 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 BigDecimal drna; + @ApiModelProperty("拼音码") + private String phcd; + @ApiModelProperty("数值经度") + private BigDecimal nlgtd; + @ApiModelProperty("数值纬度") + private BigDecimal nlttd; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/HistoryDataCalcTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/HistoryDataCalcTypeEnum.java new file mode 100644 index 0000000..4863f1e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/HistoryDataCalcTypeEnum.java @@ -0,0 +1,35 @@ +package org.springblade.water_rain_monitor.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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/WaterFlowRainEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/WaterFlowRainEnum.java new file mode 100644 index 0000000..66e0a24 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/enums/WaterFlowRainEnum.java @@ -0,0 +1,35 @@ +package org.springblade.water_rain_monitor.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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBClient.java new file mode 100644 index 0000000..c424f97 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBClient.java @@ -0,0 +1,28 @@ +package org.springblade.water_rain_monitor.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.water_rain_monitor.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 list(LambdaQueryWrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBDataClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBDataClient.java new file mode 100644 index 0000000..84dd25b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/feign/IStStbprpBDataClient.java @@ -0,0 +1,20 @@ +package org.springblade.water_rain_monitor.feign; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.Date; +import java.util.List; +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 queryMaxOrMin(String deviceCode, Date startTime, Date endTime, Integer calcType,Integer saveTimeType,Integer timeInterval, String col); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/vo/StStbprpBVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/vo/StStbprpBVo.java new file mode 100644 index 0000000..246e216 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service-api/water-rain-monitor-service-api/src/main/java/org/springblade/water_rain_monitor/vo/StStbprpBVo.java @@ -0,0 +1,9 @@ +package org.springblade.water_rain_monitor.vo; + +import lombok.Data; +import org.springblade.water_rain_monitor.entity.StStbprpB; + +@Data +public class StStbprpBVo extends StStbprpB { + private String sttpName; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/pom.xml new file mode 100644 index 0000000..1415ce0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/pom.xml @@ -0,0 +1,96 @@ + + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + + 4.0.0 + + pxhd-dam-safety-monitor + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + org.springblade + pxhd-dam-safety-monitor-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-starter-datascope + 4.5.0.RELEASE + compile + + + org.springblade + hzinfo-ris-pxhd-common-service-api + 4.5.0.RELEASE + compile + + + com.hnac.hzinfo.data + hzinfo-data-sdk + 4.5.0.RELEASE + compile + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/DamSafetyMonitorApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/DamSafetyMonitorApplication.java new file mode 100644 index 0000000..88391df --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/DamSafetyMonitorApplication.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety; + +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; + +/** + * Demo启动器 + * + * @author Chill + */ +@EnableBladeFeign +@SpringCloudApplication +public class DamSafetyMonitorApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="dam-safety-monitor"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, DamSafetyMonitorApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, DamSafetyMonitorApplication.class); + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/config/DamSafetyMonitorConfiguration.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/config/DamSafetyMonitorConfiguration.java new file mode 100644 index 0000000..2e6306d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/config/DamSafetyMonitorConfiguration.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety.config; + + +//import com.hnac.hzinfo.dam_safety_monitor.props.DamSafetyMonitorProperties; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +/** + * 配置feign、mybatis包名、properties + * + * @author Chill + */ +//@Configuration +////@EnableFeignClients({"org.springblade"}) +//@MapperScan({"org.springblade.**.mapper.**", "com.hnac.hzinfo.**.mapper.**"}) +////@EnableConfigurationProperties(DamSafetyMonitorProperties.class) +//public class DamSafetyMonitorConfiguration { +// +//} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/DamSafetyDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/DamSafetyDataController.java new file mode 100644 index 0000000..2a749b7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/DamSafetyDataController.java @@ -0,0 +1,212 @@ +package org.springblade.damsafety.controller; + +import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; +import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; +import com.hnac.hzinfo.sdk.analyse.vo.DeviceSinglePropsValueVO; +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.common.cache.CacheNames; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.damsafety.entity.TProjInfo; +import org.springblade.damsafety.service.IDamSafetyDataService; +import org.springblade.damsafety.service.ITProjInfoService; +import org.springblade.ris_common.entity.QueryDateTypeEnum; +import org.springblade.ris_common.entity.Report; +import org.springblade.ris_common.util.CommonUtil; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.text.SimpleDateFormat; +import java.util.*; + +@RestController +@RequestMapping("/damSafety/data") +@AllArgsConstructor +@Api(value = "大坝安全数据查询接口", tags = "大坝安全数据查询接口") +public class DamSafetyDataController extends BladeController implements CacheNames { + private final IDamSafetyDataService damSafetyDataService; + + + @ApiOperation("实时数据接口") + @RequestMapping(value = "/getRealData", method = RequestMethod.GET) + public R getRealData(String deviceCode){ + List data = damSafetyDataService.getRealData(deviceCode); + return R.data(data,"查询成功"); + } + + //过程线 + @ApiOperation("基础数据报表,数据查询和统计分析使用接口") + @RequestMapping(value = "/getReportData", method = RequestMethod.GET) + public R getReportData(String deviceCode, String beginSpt, String endSpt, String type, Integer accessRules,String col){ + Map res= CommonUtil.getStartEnd(beginSpt,endSpt); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Report report = damSafetyDataService.getReportData(Arrays.asList(deviceCodes),type,accessRules, res.get("begin"), res.get("end"),col); + return R.data(report,"查询成功"); + } + + @ApiOperation("大坝浸润线") + @RequestMapping(value = "/getSeepageLine", method = RequestMethod.GET) + public R getSeepageLine(String deviceCode, String beginSpt, String endSpt,String col){ + Map res= CommonUtil.getStartEnd(beginSpt,endSpt); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + List data = damSafetyDataService.getSeepageLine(Arrays.asList(deviceCodes), res.get("begin"), res.get("end"),col); + return R.data(data,"查询成功"); + } + + @ApiOperation("用于渗压水位过程线,相同业务场景也可用此接口") + @RequestMapping(value = "/getReportDataByDeviceCode", method = RequestMethod.GET) + public R getReportData(String deviceCode, String beginSpt, String endSpt, String type, Integer accessRules){ + Map res= CommonUtil.getStartEnd(beginSpt,endSpt); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + //查询基础数据 + Report report = damSafetyDataService.getReportDataByDeviceCode(deviceCode,type,accessRules, res.get("begin"), res.get("end")); + return R.data(report,"查询成功"); + } + + @ApiOperation("表头列") + @RequestMapping(value = "/getTableHead", method = RequestMethod.GET) + public R getTableHead(String stcd) { + //查询基础数据 + List report = damSafetyDataService.getSignages(stcd); + return R.data(report,"查询成功"); + } + + //==============================报表接口========================== + @ApiOperation("渗压年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "传渗压属性字段", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getYearSpprReport", method = RequestMethod.GET) + public R getYearSpprReport(String rscd,String deviceCode,String year,String col) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Map data = damSafetyDataService.getYearSpprReport(rscd,Arrays.asList(deviceCodes),res.get("begin"), res.get("end"),col); + return R.data(data,"查询成功"); + } + + //==============================报表接口========================== + @ApiOperation("渗流年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "传渗流属性字段", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getYearSpqnReport", method = RequestMethod.GET) + public R getYearSpqnReport(String rscd,String deviceCode,String year,String col) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Map data = damSafetyDataService.getYearSpprReport(rscd,Arrays.asList(deviceCodes),res.get("begin"), res.get("end"),col); + return R.data(data,"查询成功"); + } + + + @ApiOperation("水平位移年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getYearHrdsReport", method = RequestMethod.GET) + public R getYearHrdsReport(String deviceCode,String year) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Map data = damSafetyDataService.getYearHrdsReport(Arrays.asList(deviceCodes),res.get("begin"), res.get("end")); + return R.data(data,"查询成功"); + } + + @ApiOperation("垂直位移年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "传垂直位移属性字段", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getYearVrdsReport", method = RequestMethod.GET) + public R getYearVrdsReport(String deviceCode,String year,String col) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Report data = damSafetyDataService.getYearVrdsReport(Arrays.asList(deviceCodes),res.get("begin"), res.get("end"),col); + return R.data(data,"查询成功"); + } + + @ApiOperation("压力(应力)年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "传垂直位移属性字段", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getYearStressReport", method = RequestMethod.GET) + public R getYearStressReport(String deviceCode,String year,String col) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + Report data = damSafetyDataService.getYearVrdsReport(Arrays.asList(deviceCodes),res.get("begin"), res.get("end"),col); + return R.data(data,"查询成功"); + } + + private final ITProjInfoService tProjInfoService; + @ApiOperation("大坝报表 无工程竣工日期将默认查询三年的历史数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceCode", value = "仪器模型code", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "queryType", value = "year 或 month", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "yearMonth", value = "年份或者年月", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "属性字段", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getDamReport", method = RequestMethod.GET) + public R getDamReport(String deviceCode,String queryType,String yearMonth,String col) { + Map res = CommonUtil.getStartEnd(yearMonth + "-01-01 00:00:00", yearMonth + "-12-31 23:59:59"); + String type="month"; + if(QueryDateTypeEnum.MONTH.getQueryDateType().equals(queryType)) { + String yearMonthDay = CommonUtil.getLastDayOfMonth(yearMonth); + type="day"; + res = CommonUtil.getStartEnd(yearMonth + "-01 00:00:00", yearMonthDay + " 23:59:59"); + } + + List dd=tProjInfoService.list(); + int yearGap=3; + if(dd!=null && !dd.isEmpty()){ + Date completeDate=dd.get(0).getCompleteDate(); + if(completeDate!=null) { + yearGap = CommonUtil.getYearGap(completeDate, res.get("begin")); + } + } + //查询基础数据 + String[] deviceCodes=deviceCode.split(","); + String[] cols=col.split(","); + if(cols.length == 1) {//渗压、垂直位移 + Map data = damSafetyDataService.getDamReport(Arrays.asList(deviceCodes),type, res.get("begin"), res.get("end"), cols[0],yearGap); + return R.data(data,"查询成功"); + } + + if(cols.length == 2) {//水平位移 + Map xData = damSafetyDataService.getDamReport(Arrays.asList(deviceCodes),type, res.get("begin"), res.get("end"), cols[0],yearGap); + Map yData = damSafetyDataService.getDamReport(Arrays.asList(deviceCodes),type, res.get("begin"), res.get("end"), cols[1],yearGap); + Map data=new HashMap<>(); + data.put("xData",xData); + data.put("yData",yData); + return R.data(data,"查询成功"); + } + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/FileUploadController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/FileUploadController.java new file mode 100644 index 0000000..37ae0fd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/FileUploadController.java @@ -0,0 +1,57 @@ +package org.springblade.damsafety.controller; + +import io.swagger.annotations.Api; +import org.springblade.damsafety.service.IFileUploadService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.api.R; +import org.springframework.beans.factory.annotation.Autowired; +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 org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@RestController +@RequestMapping("/damSafety/fileUpload") +@AllArgsConstructor +@Api(value = "大坝文件上传", tags = "大坝文件上传接口") +public class FileUploadController { + + @Autowired + IFileUploadService iImageUploadService; + + @RequestMapping(value="/uploadFile", method = {RequestMethod.POST}) + @ApiOperation(notes ="上传单个文件", value = "上传单个文件") + public R addImage(@RequestParam("file") MultipartFile file){ + try { + Object path = iImageUploadService.addFile(file,"fileInfo"); + if (path!=null) { + return R.data(path); + } else { + return R.fail("操作失败"); + } + }catch (Exception e) { + return R.fail("操作失败"); + } + } + + @RequestMapping(value="/uploadFiles", method = {RequestMethod.POST}) + @ApiOperation(notes ="上传多文件", value = "上传多文件") + public R addFiles(@RequestParam("files") MultipartFile[] files){ + try { + List paths = iImageUploadService.addFiles(files,"fileInfo"); + if (paths!=null) { + return R.data(paths); + } else { + return R.fail("操作失败"); + } + }catch (Exception e) { + return R.fail("操作失败"); + } + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TBuildingController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TBuildingController.java new file mode 100644 index 0000000..9a582ba --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TBuildingController.java @@ -0,0 +1,114 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.TBuilding; +import org.springblade.damsafety.service.ITBuildingService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.TBuildingVo; +import org.springblade.damsafety.wrapper.TBuildingWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/tBuilding") +@AllArgsConstructor +@Api(value = "建筑物", tags = "建筑物接口") +public class TBuildingController extends BladeController implements CacheNames { + private final ITBuildingService tBuildingService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "name", value = "建筑物名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入tBuilding") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionTBuilding(param); + IPage pages = tBuildingService.page(Condition.getPage(query), wrapper); + return R.data(TBuildingWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "name", value = "建筑物名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入tBuilding") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionTBuilding(param); + List list = tBuildingService.list(wrapper); + return R.data(TBuildingWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入tBuilding") + public R detail(TBuilding tBuilding) { + TBuilding detail = tBuildingService.getOne(Condition.getQueryWrapper(tBuilding)); + return R.data(TBuildingWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入tBuilding") + public R save(@RequestBody TBuilding tBuilding) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(TBuilding::getName,tBuilding.getName()); + List list = tBuildingService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("建筑物名称已存在"); + } + return R.status(tBuildingService.save(tBuilding)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入tBuilding") + public R update(@RequestBody TBuilding tBuilding) { + return R.status(tBuildingService.updateById(tBuilding)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = tBuildingService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TProjInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TProjInfoController.java new file mode 100644 index 0000000..632e42d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TProjInfoController.java @@ -0,0 +1,131 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.TProjInfo; +import org.springblade.damsafety.service.ITProjInfoService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.TProjInfoVo; +import org.springblade.damsafety.wrapper.TProjInfoWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/tProjInfo") +@AllArgsConstructor +@Api(value = "工程信息", tags = "工程信息接口") +public class TProjInfoController extends BladeController implements CacheNames { + + private final ITProjInfoService tProjInfoService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "projName", value = "工程名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "projCode", value = "工程编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入tProjInfo") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionTProjInfo(param); + IPage pages = tProjInfoService.page(Condition.getPage(query), wrapper); + return R.data(TProjInfoWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "projName", value = "工程名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "projCode", value = "工程编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入tProjInfo") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionTProjInfo(param); + List list = tProjInfoService.list(wrapper); + return R.data(TProjInfoWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入tProjInfo") + public R detail(TProjInfo tProjInfo) { + TProjInfo detail = tProjInfoService.getOne(Condition.getQueryWrapper(tProjInfo)); + return R.data(TProjInfoWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入tProjInfo") + public R save(@RequestBody TProjInfo tProjInfo) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(TProjInfo::getProjCode,tProjInfo.getProjCode()); + List list = tProjInfoService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("工程编码已存在"); + } + + wrapper=new LambdaQueryWrapper(); + wrapper.eq(TProjInfo::getProjName,tProjInfo.getProjName()); + list = tProjInfoService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("工程名称已存在"); + } + + return R.status(tProjInfoService.save(tProjInfo)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入tProjInfo") + public R update(@RequestBody TProjInfo tProjInfo) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(TProjInfo::getProjCode,tProjInfo.getProjCode()); + wrapper.ne(TProjInfo::getId,tProjInfo.getId()); + List list = tProjInfoService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("工程编码已存在"); + } + return R.status(tProjInfoService.updateById(tProjInfo)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = tProjInfoService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TSectionConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TSectionConfigController.java new file mode 100644 index 0000000..87a9cfd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/TSectionConfigController.java @@ -0,0 +1,114 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.TSectionConfig; +import org.springblade.damsafety.service.ITSectionConfigService; +import org.springblade.damsafety.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/tSectionConfig") +@AllArgsConstructor +@Api(value = "断面配置", tags = "断面配置接口") +public class TSectionConfigController extends BladeController implements CacheNames { + private final ITSectionConfigService tSectionConfigService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "sectionNo", value = "断面编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入TSectionConfig") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionTSectionConfig(param); + IPage pages = tSectionConfigService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "sectionNo", value = "断面编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入TSectionConfig") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionTSectionConfig(param); + List list = tSectionConfigService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入tSectionConfig") + public R detail(TSectionConfig tSectionConfig) { + TSectionConfig detail = tSectionConfigService.getOne(Condition.getQueryWrapper(tSectionConfig)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入tSectionConfig") + public R save(@RequestBody TSectionConfig tSectionConfig) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(TSectionConfig::getStcd,tSectionConfig.getStcd()); + List list = tSectionConfigService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("该测点编号配置已存在"); + } + + return R.status(tSectionConfigService.save(tSectionConfig)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入tSectionConfig") + public R update(@RequestBody TSectionConfig tSectionConfig) { + return R.status(tSectionConfigService.updateById(tSectionConfig)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "stcd") + public R remove(@ApiParam(value = "测点编号集合") @RequestParam String stcd) { + List list=Func.toStrList(stcd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(TSectionConfig::getStcd,list); + boolean temp = tSectionConfigService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDamsBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDamsBController.java new file mode 100644 index 0000000..4f732d8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDamsBController.java @@ -0,0 +1,124 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.TSectionConfig; +import org.springblade.damsafety.entity.WrpDamsB; +import org.springblade.damsafety.service.IWrpDamsBService; +import org.springblade.damsafety.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpDamsB") +@AllArgsConstructor +@Api(value = "断面特征点信息", tags = "断面特征点信息接口") +public class WrpDamsBController extends BladeController implements CacheNames { + private final IWrpDamsBService wrpDamsBService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damscd", value = "特征点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damsnm", value = "特征点名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpDamsB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpDamsB(param); + IPage pages = wrpDamsBService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damscd", value = "特征点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damsnm", value = "特征点名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpDamsB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpDamsB(param); + List list = wrpDamsBService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpDamsB") + public R detail(WrpDamsB wrpDamsB) { + WrpDamsB detail = wrpDamsBService.getOne(Condition.getQueryWrapper(wrpDamsB)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpDamsB") + public R save(@RequestBody WrpDamsB wrpDamsB) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpDamsB::getDamscd,wrpDamsB.getDamscd()); + List list = wrpDamsBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"特征点编号已存在"); + } + + wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpDamsB::getDamsnm,wrpDamsB.getDamsnm()); + list = wrpDamsBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"特征点名称已存在"); + } + + return R.status(wrpDamsBService.save(wrpDamsB)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpDamsB") + public R update(@RequestBody WrpDamsB wrpDamsB) { + return R.status(wrpDamsBService.updateById(wrpDamsB)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "damscd") + public R remove(@ApiParam(value = "特征点编号集合") @RequestParam String damscd) { + List list=Func.toStrList(damscd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(WrpDamsB::getDamscd,list); + boolean temp = wrpDamsBService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrhrdsmpController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrhrdsmpController.java new file mode 100644 index 0000000..41b7be8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrhrdsmpController.java @@ -0,0 +1,128 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpDfrSrhrdsmp; +import org.springblade.damsafety.service.IWrpDfrSrhrdsmpService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpDfrSrhrdsmpVo; +import org.springblade.damsafety.wrapper.WrpDfrSrhrdsmpWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpDfrSrhrdsmp") +@AllArgsConstructor +@Api(value = "水平位移监测测点", tags = "水平位移监测测点接口") +public class WrpDfrSrhrdsmpController extends BladeController implements CacheNames { + private final IWrpDfrSrhrdsmpService wrpDfrSrhrdsmpService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpDfrSrhrdsmp") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpDfrSrhrdsmp(param); + IPage pages = wrpDfrSrhrdsmpService.page(Condition.getPage(query), wrapper); + return R.data(WrpDfrSrhrdsmpWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpDfrSrhrdsmp") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpDfrSrhrdsmp(param); + List list = wrpDfrSrhrdsmpService.list(wrapper); + return R.data(WrpDfrSrhrdsmpWrapper.build().listVO(list)); + } + + + /** + * 查询水平位移断面 + */ + @GetMapping("/section") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询水平位移断面") + public R>> section() { + List> list = wrpDfrSrhrdsmpService.section(); + //返回断面加仪器数据 + return R.data(list,"查询断面成功"); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpDfrSrhrdsmp") + public R detail(WrpDfrSrhrdsmp wrpDfrSrhrdsmp) { + WrpDfrSrhrdsmp detail = wrpDfrSrhrdsmpService.getOne(Condition.getQueryWrapper(wrpDfrSrhrdsmp)); + return R.data(WrpDfrSrhrdsmpWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpDfrSrhrdsmp") + public R save(@RequestBody WrpDfrSrhrdsmp wrpDfrSrhrdsmp) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpDfrSrhrdsmp::getMpcd,wrpDfrSrhrdsmp.getMpcd()); + List list = wrpDfrSrhrdsmpService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"测点编号已存在"); + } + return R.status(wrpDfrSrhrdsmpService.save(wrpDfrSrhrdsmp)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpDfrSrhrdsmp") + public R update(@RequestBody WrpDfrSrhrdsmp wrpDfrSrhrdsmp) { + return R.status(wrpDfrSrhrdsmpService.updateById(wrpDfrSrhrdsmp)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpDfrSrhrdsmpService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsbpController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsbpController.java new file mode 100644 index 0000000..721b89e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsbpController.java @@ -0,0 +1,118 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpDfrSrvrdsbp; +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; +import org.springblade.damsafety.service.IWrpDfrSrvrdsbpService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpDfrSrvrdsbpVo; +import org.springblade.damsafety.wrapper.WrpDfrSrvrdsbpWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpDfrSrvrdsbp") +@AllArgsConstructor +@Api(value = "监测基点表", tags = "监测基点接口") +public class WrpDfrSrvrdsbpController extends BladeController implements CacheNames { + private final IWrpDfrSrvrdsbpService wrpDfrSrvrdsbpService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "hycncd", value = "水工建筑物id", paramType = "query", dataType = "long"), + @ApiImplicitParam(name = "bpcd", value = "基点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "bptp", value = "基点类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入WrpDfrSrvrdsbp") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpDfrSrvrdsbp(param); + IPage pages = wrpDfrSrvrdsbpService.page(Condition.getPage(query), wrapper); + return R.data(WrpDfrSrvrdsbpWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "hycncd", value = "水工建筑物id", paramType = "query", dataType = "long"), + @ApiImplicitParam(name = "bpcd", value = "基点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "bptp", value = "基点类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入WrpDfrSrvrdsbp") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpDfrSrvrdsbp(param); + List list = wrpDfrSrvrdsbpService.list(wrapper); + return R.data(WrpDfrSrvrdsbpWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpDfrSrvrdsbp") + public R detail(WrpDfrSrvrdsbp wrpDfrSrvrdsbp) { + WrpDfrSrvrdsbp detail = wrpDfrSrvrdsbpService.getOne(Condition.getQueryWrapper(wrpDfrSrvrdsbp)); + return R.data(WrpDfrSrvrdsbpWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpDfrSrvrdsbp") + public R save(@RequestBody WrpDfrSrvrdsbp wrpDfrSrvrdsbp) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpDfrSrvrdsbp::getBpcd,wrpDfrSrvrdsbp.getBpcd()); + List list = wrpDfrSrvrdsbpService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"基点编号已存在"); + } + return R.status(wrpDfrSrvrdsbpService.save(wrpDfrSrvrdsbp)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpDfrSrvrdsbp") + public R update(@RequestBody WrpDfrSrvrdsbp wrpDfrSrvrdsbp) { + return R.status(wrpDfrSrvrdsbpService.updateById(wrpDfrSrvrdsbp)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpDfrSrvrdsbpService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsmpController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsmpController.java new file mode 100644 index 0000000..df0ded6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpDfrSrvrdsmpController.java @@ -0,0 +1,128 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpDfrSrvrdsmp; +import org.springblade.damsafety.service.IWrpDfrSrvrdsmpService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpDfrSrvrdsmpVo; +import org.springblade.damsafety.wrapper.WrpDfrSrvrdsmpWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpDfrSrvrdsmp") +@AllArgsConstructor +@Api(value = "垂直位移监测测点", tags = "垂直位移监测测点接口") +public class WrpDfrSrvrdsmpController extends BladeController implements CacheNames { + private final IWrpDfrSrvrdsmpService wrpDfrSrvrdsmpService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpDfrSrvrdsmp") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpDfrSrvrdsmp(param); + IPage pages = wrpDfrSrvrdsmpService.page(Condition.getPage(query), wrapper); + return R.data(WrpDfrSrvrdsmpWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpDfrSrvrdsmp") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpDfrSrvrdsmp(param); + List list = wrpDfrSrvrdsmpService.list(wrapper); + return R.data(WrpDfrSrvrdsmpWrapper.build().listVO(list)); + } + + + /** + * 查询垂直位移断面 + */ + @GetMapping("/section") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询垂直位移断面") + public R>> section() { + List> list = wrpDfrSrvrdsmpService.section(); + //返回断面加仪器数据 + return R.data(list,"查询断面成功"); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpDfrSrvrdsmp") + public R detail(WrpDfrSrvrdsmp wrpDfrSrvrdsmp) { + WrpDfrSrvrdsmp detail = wrpDfrSrvrdsmpService.getOne(Condition.getQueryWrapper(wrpDfrSrvrdsmp)); + return R.data(WrpDfrSrvrdsmpWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpDfrSrvrdsmp") + public R save(@RequestBody WrpDfrSrvrdsmp wrpDfrSrvrdsmp) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpDfrSrvrdsmp::getMpcd,wrpDfrSrvrdsmp.getMpcd()); + List list = wrpDfrSrvrdsmpService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"测点编号已存在"); + } + return R.status(wrpDfrSrvrdsmpService.save(wrpDfrSrvrdsmp)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpDfrSrvrdsmp") + public R update(@RequestBody WrpDfrSrvrdsmp wrpDfrSrvrdsmp) { + return R.status(wrpDfrSrvrdsmpService.updateById(wrpDfrSrvrdsmp)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpDfrSrvrdsmpService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSectionBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSectionBController.java new file mode 100644 index 0000000..410bfaa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSectionBController.java @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springblade.damsafety.service.IWrpSectionBService; +import org.springblade.damsafety.entity.WrpSectionB; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpSectionBVO; +import org.springblade.damsafety.wrapper.WrpSectionBWrapper; +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 org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +/** + * 大坝断面控制器 + * + * @author Chill + */ +@RestController +@RequestMapping("/damSafety/wrpSectionB") +@AllArgsConstructor +@Api(value = "大坝断面", tags = "大坝断面接口") +public class WrpSectionBController extends BladeController implements CacheNames { + + private final IWrpSectionBService wrpSectionBService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "buildingId", value = "建筑物id", paramType = "query", dataType = "long"), + @ApiImplicitParam(name = "damcd", value = "断面编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damnm", value = "断面名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "wallType", value = "防渗墙类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpSectionB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpSectionB(param); + IPage pages = wrpSectionBService.page(Condition.getPage(query), wrapper); + return R.data(WrpSectionBWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "buildingId", value = "建筑物id", paramType = "query", dataType = "long"), + @ApiImplicitParam(name = "damcd", value = "断面编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damnm", value = "断面名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "wallType", value = "防渗墙类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpSectionB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpSectionB(param); + List list = wrpSectionBService.list(wrapper); + return R.data(WrpSectionBWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpSectionB") + public R detail(WrpSectionB WrpSectionB) { + WrpSectionB detail = wrpSectionBService.getOne(Condition.getQueryWrapper(WrpSectionB)); + return R.data(WrpSectionBWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpSectionB") + public R save(@RequestBody WrpSectionB wrpSectionB) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpSectionB::getDamcd,wrpSectionB.getDamcd()); + List list = wrpSectionBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"断面编码已存在"); + } + + wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpSectionB::getDamnm,wrpSectionB.getDamnm()); + list = wrpSectionBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"断面名称已存在"); + } + + return R.status(wrpSectionBService.save(wrpSectionB)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpSectionB") + public R update(@RequestBody WrpSectionB wrpSectionB) { + return R.status(wrpSectionBService.updateById(wrpSectionB)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpSectionBService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgPztbController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgPztbController.java new file mode 100644 index 0000000..257cd90 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgPztbController.java @@ -0,0 +1,126 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpSpgPztb; +import org.springblade.damsafety.service.IWrpSpgPztbService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpSpgPztbVo; +import org.springblade.damsafety.wrapper.WrpSpgPztbWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpSpgPztb") +@AllArgsConstructor +@Api(value = "测压管测点", tags = "测压管测点接口") +public class WrpSpgPztbController extends BladeController implements CacheNames { + private final IWrpSpgPztbService wrpSpgPztbService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpSpgPztb") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpSpgPztb(param); + IPage pages = wrpSpgPztbService.page(Condition.getPage(query), wrapper); + return R.data(WrpSpgPztbWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpSpgPztb") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpSpgPztb(param); + List list = wrpSpgPztbService.list(wrapper); + return R.data(WrpSpgPztbWrapper.build().listVO(list)); + } + + /** + * 查询测压管断面 + */ + @GetMapping("/section") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询测压管断面") + public R>> section() { + List> list = wrpSpgPztbService.section(); + //返回断面加仪器数据 + return R.data(list,"查询断面成功"); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpSpgPztb") + public R detail(WrpSpgPztb wrpSpgPztb) { + WrpSpgPztb detail = wrpSpgPztbService.getOne(Condition.getQueryWrapper(wrpSpgPztb)); + return R.data(WrpSpgPztbWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpSpgPztb") + public R save(@RequestBody WrpSpgPztb wrpSpgPztb) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpSpgPztb::getMpcd,wrpSpgPztb.getMpcd()); + List list = wrpSpgPztbService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"测点编号已存在"); + } + return R.status(wrpSpgPztbService.save(wrpSpgPztb)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpSpgPztb") + public R update(@RequestBody WrpSpgPztb wrpSpgPztb) { + return R.status(wrpSpgPztbService.updateById(wrpSpgPztb)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpSpgPztbService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpprmpController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpprmpController.java new file mode 100644 index 0000000..b971d44 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpprmpController.java @@ -0,0 +1,129 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpSpgSpprmp; +import org.springblade.damsafety.service.IWrpSpgSpprmpService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpSpgSpprmpVo; +import org.springblade.damsafety.wrapper.WrpSpgSpprmpWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpSpgSpprmp") +@AllArgsConstructor +@Api(value = "渗流压力测点信息", tags = "渗流压力测点信息接口") +public class WrpSpgSpprmpController extends BladeController implements CacheNames { + private final IWrpSpgSpprmpService wrpSpgSpprmpService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "ch", value = "桩号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpSpgSpprmp") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpSpgSpprmp(param); + IPage pages = wrpSpgSpprmpService.page(Condition.getPage(query), wrapper); + return R.data(WrpSpgSpprmpWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "ch", value = "桩号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpSpgSpprmp") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpSpgSpprmp(param); + List list = wrpSpgSpprmpService.list(wrapper); + return R.data(WrpSpgSpprmpWrapper.build().listVO(list)); + } + + + /** + * 查询渗压断面 + */ + @GetMapping("/section") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询渗压断面") + public R>> section() { + List> list = wrpSpgSpprmpService.section(); + //返回断面加仪器数据 + return R.data(list,"查询断面成功"); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpSpgSpprmp") + public R detail(WrpSpgSpprmp wrpSpgSpprmp) { + WrpSpgSpprmp detail = wrpSpgSpprmpService.getOne(Condition.getQueryWrapper(wrpSpgSpprmp)); + return R.data(WrpSpgSpprmpWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpSpgSpprmp") + public R save(@RequestBody WrpSpgSpprmp wrpSpgSpprmp) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpSpgSpprmp::getMpcd,wrpSpgSpprmp.getMpcd()); + List list = wrpSpgSpprmpService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"测点编号已存在"); + } + return R.status(wrpSpgSpprmpService.save(wrpSpgSpprmp)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpSpgSpprmp") + public R update(@RequestBody WrpSpgSpprmp wrpSpgSpprmp) { + return R.status(wrpSpgSpprmpService.updateById(wrpSpgSpprmp)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpSpgSpprmpService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpqnmpController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpqnmpController.java new file mode 100644 index 0000000..55e7289 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/controller/WrpSpgSpqnmpController.java @@ -0,0 +1,125 @@ +package org.springblade.damsafety.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 org.springblade.damsafety.entity.WrpSpgSpqnmp; +import org.springblade.damsafety.service.IWrpSpgSpqnmpService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpSpgSpqnmpVo; +import org.springblade.damsafety.wrapper.WrpSpgSpqnmpWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/damSafety/wrpSpgSpqnmp") +@AllArgsConstructor +@Api(value = "渗流量测点", tags = "渗流量测点接口") +public class WrpSpgSpqnmpController extends BladeController implements CacheNames { + private final IWrpSpgSpqnmpService wrpSpgSpqnmpService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wrpSpgSpqnmp") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpSpgSpqnmp(param); + IPage pages = wrpSpgSpqnmpService.page(Condition.getPage(query), wrapper); + return R.data(WrpSpgSpqnmpWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "damcd", value = "断面编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wrpSpgSpqnmp") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWrpSpgSpqnmp(param); + List list = wrpSpgSpqnmpService.list(wrapper); + return R.data(WrpSpgSpqnmpWrapper.build().listVO(list)); + } + + /** + * 查询渗流断面 + */ + @GetMapping("/section") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询渗流断面") + public R>> section() { + List> list = wrpSpgSpqnmpService.section(); + //返回断面加仪器数据 + return R.data(list,"查询断面成功"); + } + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wrpSpgSpqnmp") + public R detail(WrpSpgSpqnmp wrpSpgSpqnmp) { + WrpSpgSpqnmp detail = wrpSpgSpqnmpService.getOne(Condition.getQueryWrapper(wrpSpgSpqnmp)); + return R.data(WrpSpgSpqnmpWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wrpSpgSpqnmp") + public R save(@RequestBody WrpSpgSpqnmp wrpSpgSpqnmp) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WrpSpgSpqnmp::getMpcd,wrpSpgSpqnmp.getMpcd()); + List list = wrpSpgSpqnmpService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return R.data(500,false,"测点编号已存在"); + } + return R.status(wrpSpgSpqnmpService.save(wrpSpgSpqnmp)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wrpSpgSpqnmp") + public R update(@RequestBody WrpSpgSpqnmp wrpSpgSpqnmp) { + return R.status(wrpSpgSpqnmpService.updateById(wrpSpgSpqnmp)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wrpSpgSpqnmpService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/feign/WrpSectionBClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/feign/WrpSectionBClient.java new file mode 100644 index 0000000..53b2592 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/feign/WrpSectionBClient.java @@ -0,0 +1,29 @@ +package org.springblade.damsafety.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.core.tool.api.R; +import org.springblade.damsafety.entity.WrpSectionB; +import org.springblade.damsafety.service.IWrpSectionBService; +import org.springblade.damsafety.util.ParamUtil; +import org.springblade.damsafety.vo.WrpSectionBVO; +import org.springblade.damsafety.wrapper.WrpSectionBWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + + +import java.util.List; +import java.util.Map; + +@RestController +public class WrpSectionBClient implements IWrpSectionBClient { + + @Autowired + private IWrpSectionBService wrpSectionBService; + + @Override + public R> list(Map param) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWrpSectionB(param); + List list = wrpSectionBService.list(wrapper); + return R.data(WrpSectionBWrapper.build().listVO(list)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.java new file mode 100644 index 0000000..52ecda5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.java @@ -0,0 +1,8 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.TBuilding; + +public interface TbBuildingMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.xml new file mode 100644 index 0000000..f20a305 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbBuildingMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.java new file mode 100644 index 0000000..f9d75c8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.java @@ -0,0 +1,8 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.TProjInfo; + +public interface TbProjInfoMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.xml new file mode 100644 index 0000000..2d90a1f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbProjInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.java new file mode 100644 index 0000000..6784d98 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.damsafety.entity.TSectionConfig; + +public interface TbSectionConfigMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.xml new file mode 100644 index 0000000..bb05695 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/TbSectionConfigMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.java new file mode 100644 index 0000000..544b4a1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.damsafety.entity.WrpDamsB; + +public interface WrpDamsBMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.xml new file mode 100644 index 0000000..38edd81 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDamsBMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.java new file mode 100644 index 0000000..2c35029 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.mapper; + +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpDfrSrhrdsmp; + +import java.util.List; +import java.util.Map; + +public interface WrpDfrSrhrdsmpMapper extends UserDataScopeBaseMapper { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.xml new file mode 100644 index 0000000..be6178a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrhrdsmpMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.java new file mode 100644 index 0000000..fbc8470 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.java @@ -0,0 +1,8 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; + +public interface WrpDfrSrvrdsbpMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.xml new file mode 100644 index 0000000..dc0aad9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsbpMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.java new file mode 100644 index 0000000..e5dcf9c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.java @@ -0,0 +1,13 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; + +import java.util.List; +import java.util.Map; + +public interface WrpDfrSrvrdsmpMapper extends UserDataScopeBaseMapper { + List> section(); +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.xml new file mode 100644 index 0000000..703411f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpDfrSrvrdsmpMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.java new file mode 100644 index 0000000..f9dc26d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpSectionB; + +/** + * Mapper 接口 请不要使用TSectionMapper,否则扫描到的是TSectionMapper 而不是 tSectionMapper 导致找不到mapper + * @author Chill + */ +public interface WrpSectionBMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.xml new file mode 100644 index 0000000..7dba81f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSectionBMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.java new file mode 100644 index 0000000..1478b3b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.java @@ -0,0 +1,12 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpSpgPztb; + +import java.util.List; +import java.util.Map; + +public interface WrpSpgPztbMapper extends UserDataScopeBaseMapper { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.xml new file mode 100644 index 0000000..8e37a21 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgPztbMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.java new file mode 100644 index 0000000..085c402 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.java @@ -0,0 +1,12 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpSpgSpprmp; + +import java.util.List; +import java.util.Map; + +public interface WrpSpgSpprmpMapper extends UserDataScopeBaseMapper { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.xml new file mode 100644 index 0000000..82273b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpprmpMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.java new file mode 100644 index 0000000..9b96666 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.java @@ -0,0 +1,13 @@ +package org.springblade.damsafety.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.damsafety.entity.WrpSpgSpqnmp; + +import java.util.List; +import java.util.Map; + +public interface WrpSpgSpqnmpMapper extends UserDataScopeBaseMapper { + List> section(); +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.xml new file mode 100644 index 0000000..656b474 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/mapper/WrpSpgSpqnmpMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IDamSafetyDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IDamSafetyDataService.java new file mode 100644 index 0000000..4ef6c5a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IDamSafetyDataService.java @@ -0,0 +1,27 @@ +package org.springblade.damsafety.service; + +import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; +import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; +import com.hnac.hzinfo.sdk.analyse.vo.DeviceSinglePropsValueVO; +import org.springblade.damsafety.entity.WrpDamsB; +import org.springblade.ris_common.entity.Report; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface IDamSafetyDataService { + Report getReportData(List deviceCodes, String type, Integer accessRules, Date begin, Date end, String col); + List getSeepageLine(List deviceCodes, Date begin, Date end, String col); + Report getReportDataByDeviceCode(String deviceCode, String type, Integer accessRules, Date begin, Date end); + List getSignages(String stcd); + + Map getYearSpprReport(String rscd,List deviceCodes, Date begin, Date end,String col); + Map getYearHrdsReport(List deviceCodes,Date begin, Date end); + Report getYearVrdsReport(List deviceCodes,Date begin, Date end,String col); + + Map getDamReport(List deviceCodes,String type, Date begin, Date end,String col,int yearGap); + + List getRealData(String deviceCode); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IFileUploadService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IFileUploadService.java new file mode 100644 index 0000000..0bea22a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IFileUploadService.java @@ -0,0 +1,10 @@ +package org.springblade.damsafety.service; + +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +public interface IFileUploadService { + String addFile(MultipartFile file,String childPath); + List addFiles(MultipartFile[] files,String childPath); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITBuildingService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITBuildingService.java new file mode 100644 index 0000000..7b08a27 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITBuildingService.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.TBuilding; + +public interface ITBuildingService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITProjInfoService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITProjInfoService.java new file mode 100644 index 0000000..1c2d685 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITProjInfoService.java @@ -0,0 +1,7 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.TProjInfo; + +public interface ITProjInfoService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITSectionConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITSectionConfigService.java new file mode 100644 index 0000000..7254123 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/ITSectionConfigService.java @@ -0,0 +1,23 @@ +package org.springblade.damsafety.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.damsafety.entity.TSectionConfig; + +import java.util.List; + +public interface ITSectionConfigService{ + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + + TSectionConfig getOne(QueryWrapper wrapper); + + boolean save(TSectionConfig entity); + + boolean updateById(TSectionConfig entity); + + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDamsBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDamsBService.java new file mode 100644 index 0000000..4f48359 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDamsBService.java @@ -0,0 +1,24 @@ +package org.springblade.damsafety.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.damsafety.entity.WrpDamsB; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +public interface IWrpDamsBService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + + WrpDamsB getOne(QueryWrapper wrapper); + + boolean save(WrpDamsB entity); + + boolean updateById(WrpDamsB entity); + + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrhrdsmpService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrhrdsmpService.java new file mode 100644 index 0000000..a5c6612 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrhrdsmpService.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpDfrSrhrdsmp; + +import java.util.List; +import java.util.Map; + +public interface IWrpDfrSrhrdsmpService extends BaseService { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsbpService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsbpService.java new file mode 100644 index 0000000..ccffc2b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsbpService.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; + +import java.util.List; +import java.util.Map; + +public interface IWrpDfrSrvrdsbpService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsmpService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsmpService.java new file mode 100644 index 0000000..66f7f31 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpDfrSrvrdsmpService.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; + +import java.util.List; +import java.util.Map; + +public interface IWrpDfrSrvrdsmpService extends BaseService { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSectionBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSectionBService.java new file mode 100644 index 0000000..fd53d3f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSectionBService.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpSectionB; + +/** + * 服务类 + * + * @author Chill + */ +public interface IWrpSectionBService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgPztbService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgPztbService.java new file mode 100644 index 0000000..df2243a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgPztbService.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpSpgPztb; + +import java.util.List; +import java.util.Map; + +public interface IWrpSpgPztbService extends BaseService { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpprmpService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpprmpService.java new file mode 100644 index 0000000..7362b31 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpprmpService.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpSpgSpprmp; + +import java.util.List; +import java.util.Map; + +public interface IWrpSpgSpprmpService extends BaseService { + List> section(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpqnmpService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpqnmpService.java new file mode 100644 index 0000000..97b9d07 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/IWrpSpgSpqnmpService.java @@ -0,0 +1,12 @@ +package org.springblade.damsafety.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.damsafety.entity.WrpSpgSpqnmp; + +import java.util.List; +import java.util.Map; + +public interface IWrpSpgSpqnmpService extends BaseService { + List> section(); +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/DamSafetyDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/DamSafetyDataServiceImpl.java new file mode 100644 index 0000000..ffecf91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/DamSafetyDataServiceImpl.java @@ -0,0 +1,537 @@ +package org.springblade.damsafety.service.impl; + +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.po.ComputeBaseStrategyPO; +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.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.StringUtils; +import org.springblade.damsafety.service.IDamSafetyDataService; +import org.springblade.ris_common.entity.QueryDateTypeEnum; +import org.springblade.ris_common.entity.Report; +import org.springblade.ris_common.entity.ReportData; +import org.springblade.ris_common.util.CommonUtil; +import org.springblade.ris_common.util.ReportDateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; + +@Service +public class DamSafetyDataServiceImpl implements IDamSafetyDataService { + + @Autowired + AnalyseDataSearchClient analyseDataSearchClient; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Override + public Report getReportData(List deviceCodes, String type, Integer accessRules, Date begin, Date end, 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 timeDataList = listDataReport(begin,end,dtEnum,deviceCode,accessRules,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(); +// } + if(value == null){ + value = "-"; + } + report.setBaseCell(reportData.getKeyStr(), i, value); + } + } + return report; + } + + @Override + public List getSeepageLine(List deviceCodes, Date begin, Date end, String col) { + return getEightHourData(deviceCodes,"0",begin,end,col); + } + + List getEightHourData(List deviceCodes, String accessRules,Date begin, Date end,String col){ + DeviceSinglePropsValueQuery query=new DeviceSinglePropsValueQuery(); + query.setDeviceCodes(deviceCodes); + query.setSignage(col); + query.setAccessRule(accessRules); + query.setBeginTime(begin); + query.setEndTime(end); + Result> result=analyseDataSearchClient.getValueOfBacthDeviceCode(query); + List list=result.getData(); + return list; + } + + @Override + public List getSignages(String stcd){ + //查询列 + Result> result=analyseDataSearchClient.getInstanceFieldByAnalyseCode(stcd,1,""); + List analyzeInstanceFieldVOS=result.getData(); + return analyzeInstanceFieldVOS; + } + + @Override + public Map getYearSpprReport(String rscd,List deviceCodes, Date begin, Date end,String col) { + String type="day"; + Report report=getYearDataReport(deviceCodes,type,begin,end,col); + + //根据水库模型获取数据 + Report data=getMaxMinByDeviceCode(rscd,type,6,begin,end); + Map res=new HashMap<>(); + res.put("spprData",report); + res.put("reservoirData",data); + return res; + } + + @Override + public Map getYearHrdsReport(List deviceCodes, Date begin, Date end) { + Report xData=getYearDataReport(deviceCodes,"day",begin,end,"xhrds"); + Report yData=getYearDataReport(deviceCodes,"day",begin,end,"yhrds"); + Map res=new HashMap<>(); + res.put("xData",xData); + res.put("yData",yData); + return res; + } + + @Override + public Report getYearVrdsReport(List deviceCodes, Date begin, Date end, String col) { + return getYearDataReport(deviceCodes,"day",begin,end,col); + } + + @Override + public Map getDamReport(List deviceCodes,String type, Date begin, Date end, String col,int yearGap) { + Map res=new HashMap<>(); + Report report=getYearDataReport(deviceCodes,type,begin,end,col); + res.put("nowData",report); + //历史时间对应的历史数据 + Date historyDate=CommonUtil.getHistoryDate(begin,yearGap); + Report historyData=getHistoryData(deviceCodes,"year", historyDate, end, col); + res.put("historyData",historyData); + return res; + } + + @Override + public List getRealData(String stcd) { + RealDataSearchPO po=new RealDataSearchPO(); + po.setAnalyzeCode(stcd); + List list=getSignages(stcd); + if(list==null && list.isEmpty()){ + return null; + } + List signages=new ArrayList<>(); + for(AnalyzeInstanceFieldVO vo:list){ + signages.add(vo.getSignage()); + } + po.setSignages(signages); + Result> result=realDataSearchClient.getRealDataByDeviceCode(po); + return result.getData(); + } + + public Report getHistoryData(List deviceCodes,String type, Date begin, Date end, String col){ + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(deviceCodes==null || deviceCodes.size()<=0){ + return null; + } + int count=deviceCodes.size(); + //初始化报表 + Report report = new Report(); + report.initBaseReportHistory(count); + //设置基础数据 + for (int i = 0; i < count; i++) { + String deviceCode = deviceCodes.get(i); +// List dataList = listDataReport(param,dtEnum,deviceCode,1,col); +// dealMaxMin(report,i,dataList); + //获取数据库某个站点不同时间要求的数据 + List maxList = listDataReport(begin, end,dtEnum,deviceCode,1,col); + List minList = listDataReport(begin, end,dtEnum,deviceCode,2,col); + List avgList = listDataReport(begin, end,dtEnum,deviceCode,3,col); + dealHistoryMaxMin(report,i,maxList,minList,avgList); + } + return report; + } + + private void dealHistoryMaxMin(Report report ,int i,List maxList,List minList,List avgList){ + BigDecimal maxValue=BigDecimal.ZERO; + BigDecimal minValue=BigDecimal.ZERO; + BigDecimal avg=BigDecimal.ZERO; + if(maxList!=null && !maxList.isEmpty()){ + ReportData maxObj=maxList.get(0); + maxValue = new BigDecimal(maxObj.getValue()).setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("maxDate", i, ReportDateUtil.getYMDStr(maxObj.getKeyDate())); + } + + if(minList!=null && !minList.isEmpty()){ + ReportData minObj=minList.get(0); + minValue = new BigDecimal(minObj.getValue()).setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("minDate", i, ReportDateUtil.getYMDStr(minObj.getKeyDate())); + } + + if(avgList!=null && !avgList.isEmpty()){ + ReportData avgObj=avgList.get(0); + avg = new BigDecimal(avgObj.getValue()).setScale(3,BigDecimal.ROUND_HALF_UP); + } + + report.setBaseCell("max", i, String.valueOf(maxValue)); + report.setBaseCell("min", i, String.valueOf(minValue)); + report.setBaseCell("avg", i, String.valueOf(avg)); + + BigDecimal range=maxValue.subtract(minValue); + BigDecimal tmpRang=range.setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("range", i, String.valueOf(tmpRang));//极差 + } + + private Report getYearDataReport(List deviceCodes,String type, Date begin, Date end, String col){ + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(deviceCodes==null || deviceCodes.size()<=0){ + return null; + } + + int count=deviceCodes.size(); + //初始化报表 + Report report = new Report(); + report.initBaseReportMaxMin(count, begin, end, dtEnum); + //设置基础数据 + for (int i = 0; i < count; i++) { + String deviceCode = deviceCodes.get(i); + //获取数据库某个站点不同时间要求的数据 + List timeDataList = listDataReport(begin, end,dtEnum,deviceCode,6,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(); +// } + if(value == null){ + value = "-"; + } + report.setBaseCell(reportData.getKeyStr(), i, value); + } + dealMaxMin(report,i,timeDataList); + } + return report; + } + + private void dealMaxMin(Report report ,int i,List timeDataList){ + if(timeDataList==null || timeDataList.isEmpty()){ + return; + } + Optional max = timeDataList.stream().max(Comparator.comparingDouble(ReportData::getValue)); + ReportData maxObj = max.get(); + double maxValue=maxObj.getValue(); + report.setBaseCell("max", i, String.valueOf(maxValue)); + report.setBaseCell("maxDate", i, ReportDateUtil.getYMDStr(maxObj.getKeyDate())); + + Optional min = timeDataList.stream().min(Comparator.comparingDouble(ReportData::getValue)); + ReportData minObj = min.get(); + double minValue=minObj.getValue(); + report.setBaseCell("min", i, String.valueOf(minValue)); + report.setBaseCell("minDate", i, ReportDateUtil.getYMDStr(minObj.getKeyDate())); + + Double avgs = timeDataList.stream().mapToDouble(ReportData::getValue).average().orElse(0D); + BigDecimal avg=new BigDecimal(String.valueOf(avgs)).setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("avg", i, String.valueOf(avg)); + + BigDecimal range=new BigDecimal(maxValue).subtract(new BigDecimal(minValue)); + BigDecimal tmpRang=range.setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("range", i, String.valueOf(tmpRang));//极差 + + } + + + public Report getMaxMinByDeviceCode(String deviceCode, String type, Integer accessRules, Date start, Date end) { + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(deviceCode==null || "".equals(deviceCode)){ + return null; + } + + if(dtEnum ==null){ + return null; + } + + //设置基础数据 + List signages=getSignages(deviceCode); + //初始化报表 + Report report = new Report(); + report.initBaseReportMaxMin(signages.size(), start, end, dtEnum); + + //获取数据库某个站点不同时间要求的数据 + List timeDataList = listDataReport(start, end,dtEnum,deviceCode,accessRules,signages); + for(int i=0;i tmpList=CommonUtil.getReportDataBySignage(timeDataList,signage); + + dealMaxMin(report,i,tmpList); + + for (ReportData reportData : tmpList) { + String value = reportData.getVal(); +// if (value != null && !"-".equals(value) && !"".equals(value.trim())) { +// value = new BigDecimal(value).setScale(3, BigDecimal.ROUND_DOWN).toString(); +// } + + if(value == null){ + value = "-"; + } + + report.setBaseCell(reportData.getKeyStr(), i, value); + } + } + + return report; + } + + @Override + public Report getReportDataByDeviceCode(String deviceCode, String type, Integer accessRules, Date start, Date end) { + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(deviceCode==null || "".equals(deviceCode)){ + return null; + } + + if(dtEnum ==null){ + return null; + } + + //设置基础数据 + List signages=getSignages(deviceCode); + if(signages==null || signages.isEmpty()){ + return null; + } + //初始化报表 + Report report = new Report(); + report.initBaseReport(signages.size(), start, end, dtEnum); + + //获取数据库某个站点不同时间要求的数据 + List timeDataList = listDataReport(start, end,dtEnum,deviceCode,accessRules,signages); + for(int i=0;i tmpList=CommonUtil.getReportDataBySignage(timeDataList,signage); + for (ReportData reportData : tmpList) { + String value = reportData.getVal(); +// if (value != null && !"-".equals(value) && !"".equals(value.trim())) { +// value = new BigDecimal(value).setScale(3, BigDecimal.ROUND_DOWN).toString(); +// } + + if(value == null){ + value = "-"; + } + + report.setBaseCell(reportData.getKeyStr(), i, value); + } + } + + return report; + } + + //查询多个code对应的同一个值 + List getDataByDeviceCodes(List deviceCodes,Date begin,Date end,String accessRules,String col){ + DeviceSinglePropsValueQuery query=new DeviceSinglePropsValueQuery(); + query.setBeginTime(begin); + query.setEndTime(end); + query.setDeviceCodes(deviceCodes); + query.setSignage(col); + query.setAccessRule(accessRules); + Result> result=analyseDataSearchClient.getValueOfBacthDeviceCode(query); + List datas=result.getData(); + return datas; + } + + + private List listDataReport(Date begin,Date endSt, QueryDateTypeEnum dtEnum, String deviceCode, Integer accessRules, List signages) { + //周期类型: 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()); + + return getDataByDeviceCode(deviceCode,accessRules,saveTimeType,start,end,signages); + } + + + private List listDataReport(Date begin,Date endSt,QueryDateTypeEnum dtEnum,String deviceCode,Integer accessRules,String col) { + + //周期类型: 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()); + + return getDataByDeviceCode(deviceCode, accessRules, saveTimeType, start, end, col); + } + + List getDataByDeviceCode(String deviceCode,Integer accessRules,Integer saveTimeType, + LocalDateTime start,LocalDateTime end,List signages){ + List reportData=new ArrayList<>(); + AnalyseCodeByAnalyseDataPO po=new AnalyseCodeByAnalyseDataPO(); + po.setDeviceCode(deviceCode); + + List signboardConditions=new ArrayList<>(); + + for(AnalyzeInstanceFieldVO vo:signages) { + AnalyzeDataConditionPO conditionPO = new AnalyzeDataConditionPO(); + conditionPO.setBeginTime(start); + conditionPO.setEndTime(end); + conditionPO.setSignages(vo.getSignage()); +// conditionPO.setKeepFigures(3); + conditionPO.setAccessRules(accessRules); + conditionPO.setSaveTimeType(saveTimeType); + conditionPO.setTimeInterval(1); + conditionPO.setFull(1); + signboardConditions.add(conditionPO); + } + + po.setSignboardConditions(signboardConditions); + + Result> result=analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); + if(result==null){ + return reportData; + } + List datas=result.getData(); + if(datas==null || datas.isEmpty()){ + return reportData; + } + for(AnalyzeDataConditionVO vo:datas){ + List dataTaosVOs=vo.getList(); + for(AnalyseDataTaosVO vv:dataTaosVOs) { + ReportData data=new ReportData(); + data.setKeyStr(CommonUtil.getKeyBySaveTimeType(vv.getTs(),saveTimeType)); + data.setKeyDate(vv.getTs()); + data.setStcd(vo.getSignage());//测站变成属性值 + data.setVal(vv.getVal()); + data.setName(vo.getName()); + reportData.add(data); + } + } + return reportData; + } + + List getDataByDeviceCode(String deviceCode,Integer accessRules,Integer saveTimeType, + LocalDateTime start,LocalDateTime end,String col){ + List reportData=new ArrayList<>(); + AnalyseCodeByAnalyseDataPO po=new AnalyseCodeByAnalyseDataPO(); + po.setDeviceCode(deviceCode); + + List 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> result=analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); + if(result==null){ + return reportData; + } + List datas=result.getData(); + if(datas==null || datas.isEmpty()){ + return reportData; + } + for(AnalyzeDataConditionVO vo:datas){ + if(vo.getSignage().equals(col)) { + List dataTaosVOs=vo.getList(); + for(AnalyseDataTaosVO vv:dataTaosVOs) { + ReportData data=new ReportData(); + data.setKeyStr(CommonUtil.getKeyBySaveTimeType(vv.getTs(),saveTimeType)); + data.setKeyDate(vv.getTs()); + data.setStcd(deviceCode); + data.setVal(vv.getVal()); + data.setName(vo.getName()); + reportData.add(data); + } + } + } + return reportData; + } + + //按时间范围求最大值、最小值 + public List queryMaxOrMin(String deviceCode, Date startTime, Date endTime, + Integer calcType, String col) { + List res=new ArrayList<>(); + + List 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> result=analyseDataSearchClient.getComputeBaseStrategy(po); + if(result==null){ + return res; + } + List datas=result.getData(); + + if(datas!=null && !datas.isEmpty()){ + for(AnalyzeDataConditionVO vo:datas) { + if(col.equals(vo.getSignage()) && vo.getVo()!=null) { + ReportData reportData=new ReportData(); + String val=vo.getVo().getVal(); + String tm=vo.getVo().getTs(); + reportData.setKeyStr(tm); + reportData.setStcd(deviceCode); + reportData.setVal(val); + res.add(reportData); + } + } + } + + return res; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/FileUploadServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/FileUploadServiceImpl.java new file mode 100644 index 0000000..1f7826f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/FileUploadServiceImpl.java @@ -0,0 +1,64 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.damsafety.service.IFileUploadService; +import org.apache.commons.io.FileUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Service +public class FileUploadServiceImpl implements IFileUploadService { + @Value("${file.upload.path}") + private String fileUploadPath; + + @Override + public String addFile(MultipartFile file,String childPath) { + MultipartFile[] files=new MultipartFile[1]; + files[0] = file; + return addFiles(files,childPath).get(0); + } + + @Override + public List addFiles(MultipartFile[] files,String childPath){ + List list=new ArrayList<>(); + String dirName = UUID.randomUUID().toString().replace("-", ""); + File uploadPath = new File(fileUploadPath, childPath); + uploadPath = new File(uploadPath, dirName); + try { + if(!uploadPath.exists()){ + uploadPath.mkdirs(); + } + for(MultipartFile file:files){ + saveFile(file, uploadPath); + list.add(File.separator+childPath+File.separator+dirName+File.separator+file.getOriginalFilename()); + } + return list; + }catch (IOException e){ + return list; + } + } + + /** + * 保存文件,如果后期有要求需要处理重名情况 + * + * @param file 待保存的文件 + * @param uploadPath 上传的路径 + * @throws IOException + */ + private void saveFile(MultipartFile file, File uploadPath) throws IOException { + String originalName = file.getOriginalFilename(); + File path = new File(uploadPath, originalName); + if(!path.exists()){ + path.createNewFile(); + } + FileUtils.copyInputStreamToFile(file.getInputStream(), path); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TBuildingServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TBuildingServiceImpl.java new file mode 100644 index 0000000..c3a62b3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TBuildingServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.TBuilding; +import org.springblade.damsafety.mapper.TbBuildingMapper; +import org.springblade.damsafety.service.ITBuildingService; +import org.springframework.stereotype.Service; + +@Service +public class TBuildingServiceImpl extends BaseServiceImpl implements ITBuildingService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TProjInfoServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TProjInfoServiceImpl.java new file mode 100644 index 0000000..19bdace --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TProjInfoServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.TProjInfo; +import org.springblade.damsafety.mapper.TbProjInfoMapper; +import org.springblade.damsafety.service.ITProjInfoService; +import org.springframework.stereotype.Service; + +@Service +public class TProjInfoServiceImpl extends BaseServiceImpl implements ITProjInfoService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TSectionConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TSectionConfigServiceImpl.java new file mode 100644 index 0000000..fb31d88 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/TSectionConfigServiceImpl.java @@ -0,0 +1,54 @@ +package org.springblade.damsafety.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.damsafety.entity.TSectionConfig; +import org.springblade.damsafety.mapper.TbSectionConfigMapper; +import org.springblade.damsafety.service.ITSectionConfigService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Service +public class TSectionConfigServiceImpl implements ITSectionConfigService { + + @Resource + TbSectionConfigMapper tbSectionConfigMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return tbSectionConfigMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return tbSectionConfigMapper.selectList(wrapper); + } + + @Override + public TSectionConfig getOne(QueryWrapper wrapper) { + return tbSectionConfigMapper.selectOne(wrapper); + } + + @Override + public boolean save(TSectionConfig entity) { + int count=tbSectionConfigMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(TSectionConfig entity) { + int count=tbSectionConfigMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=tbSectionConfigMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDamsBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDamsBServiceImpl.java new file mode 100644 index 0000000..22869e5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDamsBServiceImpl.java @@ -0,0 +1,58 @@ +package org.springblade.damsafety.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.damsafety.entity.WrpDamsB; +import org.springblade.damsafety.mapper.WrpDamsBMapper; +import org.springblade.damsafety.service.IWrpDamsBService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Service +public class WrpDamsBServiceImpl implements IWrpDamsBService { + + @Resource + WrpDamsBMapper wrpDamsBMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return wrpDamsBMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return wrpDamsBMapper.selectList(wrapper); + } + + @Override + public WrpDamsB getOne(QueryWrapper wrapper) { + return wrpDamsBMapper.selectOne(wrapper); + } + + @Override + public boolean save(WrpDamsB entity) { + int count=wrpDamsBMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(WrpDamsB entity) { + LambdaUpdateWrapper wrapper=new LambdaUpdateWrapper(); + wrapper.eq(WrpDamsB::getDamscd,entity.getDamscd()); + int count=wrpDamsBMapper.update(entity,wrapper); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=wrpDamsBMapper.delete(wrapper); + return count>0; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrhrdsmpServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrhrdsmpServiceImpl.java new file mode 100644 index 0000000..b21fd24 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrhrdsmpServiceImpl.java @@ -0,0 +1,24 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpDfrSrhrdsmp; +import org.springblade.damsafety.mapper.WrpDfrSrhrdsmpMapper; +import org.springblade.damsafety.service.IWrpDfrSrhrdsmpService; +import org.springblade.damsafety.util.DealSectionUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class WrpDfrSrhrdsmpServiceImpl extends BaseServiceImpl implements IWrpDfrSrhrdsmpService { + @Resource + WrpDfrSrhrdsmpMapper wrpDfrSrhrdsmpMapper; + + @Override + public List> section() { + List> list=wrpDfrSrhrdsmpMapper.section(); + return DealSectionUtil.getSection(list); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsbpServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsbpServiceImpl.java new file mode 100644 index 0000000..94c30cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsbpServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; +import org.springblade.damsafety.mapper.WrpDfrSrvrdsbpMapper; +import org.springblade.damsafety.service.IWrpDfrSrvrdsbpService; +import org.springframework.stereotype.Service; + +@Service +public class WrpDfrSrvrdsbpServiceImpl extends BaseServiceImpl implements IWrpDfrSrvrdsbpService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsmpServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsmpServiceImpl.java new file mode 100644 index 0000000..f030935 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpDfrSrvrdsmpServiceImpl.java @@ -0,0 +1,23 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; +import org.springblade.damsafety.mapper.WrpDfrSrvrdsmpMapper; +import org.springblade.damsafety.service.IWrpDfrSrvrdsmpService; +import org.springblade.damsafety.util.DealSectionUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class WrpDfrSrvrdsmpServiceImpl extends BaseServiceImpl implements IWrpDfrSrvrdsmpService { + @Resource + WrpDfrSrvrdsmpMapper wrpDfrSrvrdsmpMapper; + @Override + public List> section() { + List> list=wrpDfrSrvrdsmpMapper.section(); + return DealSectionUtil.getSection(list); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSectionBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSectionBServiceImpl.java new file mode 100644 index 0000000..6119915 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSectionBServiceImpl.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.damsafety.service.impl; + +import org.springblade.damsafety.entity.WrpSectionB; +import org.springblade.damsafety.service.IWrpSectionBService; +import org.springblade.damsafety.mapper.WrpSectionBMapper; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * @author Chill + */ +@Service +public class WrpSectionBServiceImpl extends BaseServiceImpl implements IWrpSectionBService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgPztbServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgPztbServiceImpl.java new file mode 100644 index 0000000..c4fbc6b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgPztbServiceImpl.java @@ -0,0 +1,25 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpSpgPztb; +import org.springblade.damsafety.mapper.WrpSpgPztbMapper; +import org.springblade.damsafety.service.IWrpSpgPztbService; +import org.springblade.damsafety.util.DealSectionUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class WrpSpgPztbServiceImpl extends BaseServiceImpl implements IWrpSpgPztbService { + + @Resource + WrpSpgPztbMapper wrpSpgPztbMapper; + + @Override + public List> section() { + List> list=wrpSpgPztbMapper.section(); + return DealSectionUtil.getSection(list); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpprmpServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpprmpServiceImpl.java new file mode 100644 index 0000000..d764cc3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpprmpServiceImpl.java @@ -0,0 +1,30 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpSpgSpprmp; +import org.springblade.damsafety.mapper.WrpSpgSpprmpMapper; +import org.springblade.damsafety.service.IWrpSpgSpprmpService; +import org.springblade.damsafety.util.DealSectionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WrpSpgSpprmpServiceImpl extends BaseServiceImpl implements IWrpSpgSpprmpService { + + @Resource + WrpSpgSpprmpMapper wrpSpgSpprmpMapper; + + @Override + public List> section() { + List> list=wrpSpgSpprmpMapper.section(); + return DealSectionUtil.getSection(list); + } + +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpqnmpServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpqnmpServiceImpl.java new file mode 100644 index 0000000..4636d1d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/service/impl/WrpSpgSpqnmpServiceImpl.java @@ -0,0 +1,24 @@ +package org.springblade.damsafety.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.damsafety.entity.WrpSpgSpqnmp; +import org.springblade.damsafety.service.IWrpSpgSpqnmpService; +import org.springblade.damsafety.mapper.WrpSpgSpqnmpMapper; +import org.springblade.damsafety.util.DealSectionUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class WrpSpgSpqnmpServiceImpl extends BaseServiceImpl implements IWrpSpgSpqnmpService { + @Resource + WrpSpgSpqnmpMapper wrpSpgSpqnmpMapper; + + @Override + public List> section() { + List> list=wrpSpgSpqnmpMapper.section(); + return DealSectionUtil.getSection(list); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/DealSectionUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/DealSectionUtil.java new file mode 100644 index 0000000..e90f3fc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/DealSectionUtil.java @@ -0,0 +1,51 @@ +package org.springblade.damsafety.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DealSectionUtil { + public static String getDeviceCode(List> data){ + StringBuilder sb=new StringBuilder(); + for(Map dd:data){ + String stcd=String.valueOf(dd.get("stcd")); + if("".equals(sb.toString())){ + sb.append(stcd); + }else{ + sb.append(","+stcd); + } + } + return sb.toString(); + } + + public static List> getSection(List> list){ + List> res=new ArrayList<>(); + Map>> map = new HashMap<>(); + for(Map ll:list) { + String damcd=String.valueOf(ll.get("damcd")); + List> tmpList=map.get(damcd); + if(tmpList!=null && !tmpList.isEmpty()) { + tmpList.add(ll); + map.put(damcd, tmpList); + }else{ + tmpList = new ArrayList<>(); + tmpList.add(ll); + map.put(damcd, tmpList); + } + } + + for (Map.Entry>> m : map.entrySet()) { + List> data= m.getValue(); + Map sj=new HashMap<>(); + sj.put("damnm",data.get(0).get("damnm")); + sj.put("rscd",data.get(0).get("rscd")); + sj.put("damcd",m.getKey()); + sj.put("deviceCode",getDeviceCode(data)); + res.add(sj); + } + + return res; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/ParamUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/ParamUtil.java new file mode 100644 index 0000000..9530d3b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/util/ParamUtil.java @@ -0,0 +1,177 @@ +package org.springblade.damsafety.util; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.damsafety.entity.*; + +import java.util.Map; + +public class ParamUtil { + public static LambdaQueryWrapper conditionWrpSectionB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(WrpSectionB::getRscd,param.get("rscd")); + } + if(param.get("buildingId")!=null) { + wrapper.eq(WrpSectionB::getBuildingId,param.get("buildingId")); + } + if(param.get("damcd")!=null) { + wrapper.like(WrpSectionB::getDamcd,param.get("damcd")); + } + + if(param.get("damnm")!=null) { + wrapper.like(WrpSectionB::getDamnm,param.get("damnm")); + } + + + if(param.get("wallType")!=null) { + wrapper.eq(WrpSectionB::getWallType,param.get("wallType")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionTBuilding(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(TBuilding::getRscd,param.get("rscd")); + } + if(param.get("name")!=null) { + wrapper.like(TBuilding::getName,param.get("name")); + } + return wrapper; + } + + + public static LambdaQueryWrapper conditionTProjInfo(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(TProjInfo::getRscd,param.get("rscd")); + } + if(param.get("projName")!=null) { + wrapper.like(TProjInfo::getProjName,param.get("projName")); + } + if(param.get("projCode")!=null) { + wrapper.like(TProjInfo::getProjCode,param.get("projCode")); + } + return wrapper; + } + + + public static LambdaQueryWrapper conditionTSectionConfig(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("stcd")!=null) { + wrapper.like(TSectionConfig::getStcd,param.get("stcd")); + } + if(param.get("sectionNo")!=null) { + wrapper.like(TSectionConfig::getSectionNo,param.get("sectionNo")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWrpDamsB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpDamsB::getDamcd,param.get("damcd")); + } + if(param.get("damscd")!=null) { + wrapper.like(WrpDamsB::getDamscd,param.get("damscd")); + } + if(param.get("damsnm")!=null) { + wrapper.like(WrpDamsB::getDamscd,param.get("damsnm")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWrpDfrSrhrdsmp(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpDfrSrhrdsmp::getDamcd,param.get("damcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WrpDfrSrhrdsmp::getStcd,param.get("stcd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(WrpDfrSrhrdsmp::getMpcd,param.get("mpcd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWrpDfrSrvrdsbp(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(WrpDfrSrvrdsbp::getRscd,param.get("rscd")); + } + if(param.get("hycncd")!=null) { + wrapper.eq(WrpDfrSrvrdsbp::getHycncd,param.get("hycncd")); + } + if(param.get("bpcd")!=null) { + wrapper.like(WrpDfrSrvrdsbp::getBpcd,param.get("bpcd")); + } + if(param.get("bptp")!=null) { + wrapper.like(WrpDfrSrvrdsbp::getBptp,param.get("bptp")); + } + return wrapper; + } + + + public static LambdaQueryWrapper conditionWrpDfrSrvrdsmp(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpDfrSrvrdsmp::getDamcd,param.get("damcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WrpDfrSrvrdsmp::getStcd,param.get("stcd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(WrpDfrSrvrdsmp::getMpcd,param.get("mpcd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWrpSpgPztb(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpSpgPztb::getDamcd,param.get("damcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WrpSpgPztb::getStcd,param.get("stcd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(WrpSpgPztb::getMpcd,param.get("mpcd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWrpSpgSpprmp(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpSpgSpprmp::getDamcd,param.get("damcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WrpSpgSpprmp::getStcd,param.get("stcd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(WrpSpgSpprmp::getMpcd,param.get("mpcd")); + } + if(param.get("ch")!=null) { + wrapper.like(WrpSpgSpprmp::getCh,param.get("ch")); + } + return wrapper; + } + + + public static LambdaQueryWrapper conditionWrpSpgSpqnmp(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("damcd")!=null) { + wrapper.like(WrpSpgSpqnmp::getDamcd,param.get("damcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WrpSpgSpqnmp::getStcd,param.get("stcd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(WrpSpgSpqnmp::getMpcd,param.get("mpcd")); + } + return wrapper; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TBuildingWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TBuildingWrapper.java new file mode 100644 index 0000000..6d7cc4c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TBuildingWrapper.java @@ -0,0 +1,25 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.TBuilding; +import org.springblade.damsafety.vo.TBuildingVo; + +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class TBuildingWrapper extends BaseEntityWrapper { + public TBuildingWrapper() { + } + + public static TBuildingWrapper build() { + return new TBuildingWrapper(); + } + + @Override + public TBuildingVo entityVO(TBuilding entity) { + TBuildingVo tBuildingVo = Objects.requireNonNull(BeanUtil.copy(entity, TBuildingVo.class)); + return tBuildingVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TProjInfoWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TProjInfoWrapper.java new file mode 100644 index 0000000..757e143 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/TProjInfoWrapper.java @@ -0,0 +1,26 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.TProjInfo; +import org.springblade.damsafety.vo.TProjInfoVo; + +import java.util.Objects; + +public class TProjInfoWrapper extends BaseEntityWrapper { + public TProjInfoWrapper() { + } + + public static TProjInfoWrapper build() { + return new TProjInfoWrapper(); + } + + @Override + public TProjInfoVo entityVO(TProjInfo entity) { + if(entity == null){ + return null; + } + TProjInfoVo tProjInfoVo = Objects.requireNonNull(BeanUtil.copy(entity, TProjInfoVo.class)); + return tProjInfoVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrhrdsmpWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrhrdsmpWrapper.java new file mode 100644 index 0000000..6bbdddd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrhrdsmpWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpDfrSrhrdsmp; +import org.springblade.damsafety.vo.WrpDfrSrhrdsmpVo; + +import java.util.Objects; + +public class WrpDfrSrhrdsmpWrapper extends BaseEntityWrapper { + public WrpDfrSrhrdsmpWrapper() { + } + + public static WrpDfrSrhrdsmpWrapper build() { + return new WrpDfrSrhrdsmpWrapper(); + } + + @Override + public WrpDfrSrhrdsmpVo entityVO(WrpDfrSrhrdsmp entity) { + if(entity == null){ + return null; + } + WrpDfrSrhrdsmpVo wrpDfrSrhrdsmpVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpDfrSrhrdsmpVo.class)); + + return wrpDfrSrhrdsmpVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsbpWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsbpWrapper.java new file mode 100644 index 0000000..63ed6ff --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsbpWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpDfrSrvrdsbp; +import org.springblade.damsafety.vo.WrpDfrSrvrdsbpVo; + +import java.util.Objects; + +public class WrpDfrSrvrdsbpWrapper extends BaseEntityWrapper { + public WrpDfrSrvrdsbpWrapper() { + } + + public static WrpDfrSrvrdsbpWrapper build() { + return new WrpDfrSrvrdsbpWrapper(); + } + + @Override + public WrpDfrSrvrdsbpVo entityVO(WrpDfrSrvrdsbp entity) { + if(entity == null){ + return null; + } + WrpDfrSrvrdsbpVo wrpDfrSrvrdsbpVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpDfrSrvrdsbpVo.class)); + + return wrpDfrSrvrdsbpVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsmpWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsmpWrapper.java new file mode 100644 index 0000000..d0113f1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpDfrSrvrdsmpWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpDfrSrvrdsmp; +import org.springblade.damsafety.vo.WrpDfrSrvrdsmpVo; + +import java.util.Objects; + +public class WrpDfrSrvrdsmpWrapper extends BaseEntityWrapper { + public WrpDfrSrvrdsmpWrapper() { + } + + public static WrpDfrSrvrdsmpWrapper build() { + return new WrpDfrSrvrdsmpWrapper(); + } + + @Override + public WrpDfrSrvrdsmpVo entityVO(WrpDfrSrvrdsmp entity) { + if(entity == null){ + return null; + } + WrpDfrSrvrdsmpVo wrpDfrSrvrdsmpVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpDfrSrvrdsmpVo.class)); + + return wrpDfrSrvrdsmpVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSectionBWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSectionBWrapper.java new file mode 100644 index 0000000..24f937d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSectionBWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpSectionB; +import org.springblade.damsafety.vo.WrpSectionBVO; + +import java.util.Objects; + +public class WrpSectionBWrapper extends BaseEntityWrapper { + public WrpSectionBWrapper() { + } + + public static WrpSectionBWrapper build() { + return new WrpSectionBWrapper(); + } + + public WrpSectionBVO entityVO(WrpSectionB entity) { + if(entity == null){ + return null; + } + WrpSectionBVO wrpSectionBVO = Objects.requireNonNull(BeanUtil.copy(entity, WrpSectionBVO.class)); + //测点集合 + wrpSectionBVO.setPoints(null); + return wrpSectionBVO; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgPztbWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgPztbWrapper.java new file mode 100644 index 0000000..559ae5b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgPztbWrapper.java @@ -0,0 +1,26 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpSpgPztb; +import org.springblade.damsafety.vo.WrpSpgPztbVo; + +import java.util.Objects; + +public class WrpSpgPztbWrapper extends BaseEntityWrapper { + public WrpSpgPztbWrapper() { + } + + public static WrpSpgPztbWrapper build() { + return new WrpSpgPztbWrapper(); + } + + public WrpSpgPztbVo entityVO(WrpSpgPztb entity) { + if(entity == null){ + return null; + } + WrpSpgPztbVo wrpSpgPztbVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpSpgPztbVo.class)); + + return wrpSpgPztbVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpprmpWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpprmpWrapper.java new file mode 100644 index 0000000..96f7f82 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpprmpWrapper.java @@ -0,0 +1,26 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpSpgSpprmp; +import org.springblade.damsafety.vo.WrpSpgSpprmpVo; + +import java.util.Objects; + +public class WrpSpgSpprmpWrapper extends BaseEntityWrapper { + public WrpSpgSpprmpWrapper() { + } + + public static WrpSpgSpprmpWrapper build() { + return new WrpSpgSpprmpWrapper(); + } + + public WrpSpgSpprmpVo entityVO(WrpSpgSpprmp entity) { + if(entity == null){ + return null; + } + WrpSpgSpprmpVo wrpSpgSpprmpVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpSpgSpprmpVo.class)); + + return wrpSpgSpprmpVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpqnmpWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpqnmpWrapper.java new file mode 100644 index 0000000..e5d856d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/java/org/springblade/damsafety/wrapper/WrpSpgSpqnmpWrapper.java @@ -0,0 +1,26 @@ +package org.springblade.damsafety.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.damsafety.entity.WrpSpgSpqnmp; +import org.springblade.damsafety.vo.WrpSpgSpqnmpVo; + +import java.util.Objects; + +public class WrpSpgSpqnmpWrapper extends BaseEntityWrapper { + public WrpSpgSpqnmpWrapper() { + } + + public static WrpSpgSpqnmpWrapper build() { + return new WrpSpgSpqnmpWrapper(); + } + + public WrpSpgSpqnmpVo entityVO(WrpSpgSpqnmp entity) { + if(entity == null){ + return null; + } + WrpSpgSpqnmpVo wrpSpgSpqnmpVo = Objects.requireNonNull(BeanUtil.copy(entity, WrpSpgSpqnmpVo.class)); + + return wrpSpgSpqnmpVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..ea7e964 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-dev.yml @@ -0,0 +1,17 @@ +#服务器端口 +server: + port: 8201 + +file: + upload: + path: D:\\upload + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application.yml new file mode 100644 index 0000000..fd94e44 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/dam-safety-monitor-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: dam-safety-monitor + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/pom.xml new file mode 100644 index 0000000..98b7a82 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/pom.xml @@ -0,0 +1,102 @@ + + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + 4.0.0 + + pxhd-engineering-management + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + + org.springblade + pxhd-engineering-management-api + 4.5.0.RELEASE + compile + + + org.springblade + pxhd-water-rain-monitor-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-resource-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-starter-datascope + 4.5.0.RELEASE + compile + + + org.springblade + pxhd-messaging-center-service-api + 4.5.0.RELEASE + compile + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/EngineeringManagementApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/EngineeringManagementApplication.java new file mode 100644 index 0000000..279ab03 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/EngineeringManagementApplication.java @@ -0,0 +1,21 @@ +package org.springblade.engineering_management; + +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; + +@EnableBladeFeign +@SpringCloudApplication +public class EngineeringManagementApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="engineering-management"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, EngineeringManagementApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, EngineeringManagementApplication.class); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/config/Constant.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/config/Constant.java new file mode 100644 index 0000000..8221a9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/config/Constant.java @@ -0,0 +1,45 @@ +package org.springblade.engineering_management.config; + +/** + * 本包通用配置 + * + * @Author: liugang + * @Date: 2019/5/23 9:32 + */ +public class Constant { + + public static final String FILE_DIR_NAME = "emergencyPlan"; + + public static final String SEPARATION = ","; + + public static final String SEND_SUCCESS = "发送成功"; + + public static final String SEND_FAILURE = "发送失败"; + + public static final String LINEFLOW = "RR"; + + public static final String RAIN = "PP"; + + public static final String MOISTURE = "SS"; + + //水位 + public static final String STRSVRR_RZ = "RZ"; + + //流量 + public static final String STRSVRR_ING = "INQ"; + + public static final String WARN_TYPE_LINE = "水位"; + + public static final String WARN_TYPE_RAIN = "雨量"; + + public static final String WARN_TYPE_FLOW = "流量"; + + public static final String WARN_TYPE_MOIS = "墒情"; + + public static final String DANGER = "危险"; + + public static final String WARN = "警戒"; + + public static final String INFO = "提醒"; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriEmergencyPlan.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriEmergencyPlan.java new file mode 100644 index 0000000..607a332 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriEmergencyPlan.java @@ -0,0 +1,64 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_emergency_plan") +public class HzIrriEmergencyPlan extends BaseEntity { + + private String name; + + private String level; + + private String remark; + + private String path; + + private String fileNames; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLevel() { + return level; + } + + public void setLevel(String level) { + this.level = level; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getFileNames() { + return fileNames; + } + + public void setFileNames(String fileNames) { + this.fileNames = fileNames; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnAutoConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnAutoConfig.java new file mode 100644 index 0000000..98661f1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnAutoConfig.java @@ -0,0 +1,38 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_auto_config") +public class HzIrriWarnAutoConfig extends BaseEntity { + + private String stationCodes; + + private String sendPersons; + + private String message; + + public String getStationCodes() { + return stationCodes; + } + + public void setStationCodes(String stationCodes) { + this.stationCodes = stationCodes; + } + + public String getSendPersons() { + return sendPersons; + } + + public void setSendPersons(String sendPersons) { + this.sendPersons = sendPersons; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnFlow.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnFlow.java new file mode 100644 index 0000000..c67b801 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnFlow.java @@ -0,0 +1,92 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_flow") +public class HzIrriWarnFlow extends BaseEntity { + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + @ApiModelProperty("机构id,又称管理所id") + private Long orgId; + + @ApiModelProperty("机构id,又称管理所ids") + private String orgIds; + + @ApiModelProperty("安全流量") + private Double safeFlow; + + @ApiModelProperty("警戒流量") + private Double warnFlow; + + @ApiModelProperty("危险流量") + private Double dangerFlow; + + public String getOrgIds() { + return orgIds; + } + + public void setOrgIds(String orgIds) { + this.orgIds = orgIds; + } + + public Long getOrgId() { + return orgId; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getStationName() { + return stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } + + public Double getSafeFlow() { + return safeFlow; + } + + public void setSafeFlow(Double safeFlow) { + this.safeFlow = safeFlow; + } + + public Double getWarnFlow() { + return warnFlow; + } + + public void setWarnFlow(Double warnFlow) { + this.warnFlow = warnFlow; + } + + public Double getDangerFlow() { + return dangerFlow; + } + + public void setDangerFlow(Double dangerFlow) { + this.dangerFlow = dangerFlow; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnGoods.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnGoods.java new file mode 100644 index 0000000..a99cfed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnGoods.java @@ -0,0 +1,141 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@TableName("hz_warn_goods") +public class HzIrriWarnGoods extends BaseEntity { + @ApiModelProperty("物资名称") + private String name; + + @ApiModelProperty("物资类型") + private String type; + + @ApiModelProperty("物资规格") + private String spec; + + @ApiModelProperty("数量") + private Double number; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("存放位置") + private String location; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty("有效日期") + private Date enableTime; + + @ApiModelProperty("运输方式") + private String transType; + + @ApiModelProperty("临近站点") + private String nearStation; + + @ApiModelProperty("负责人") + private String manager; + + @ApiModelProperty("联系电话") + private String phone; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public Double getNumber() { + return number; + } + + public void setNumber(Double number) { + this.number = number; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public Date getEnableTime() { + return enableTime; + } + + public void setEnableTime(Date enableTime) { + this.enableTime = enableTime; + } + + public String getTransType() { + return transType; + } + + public void setTransType(String transType) { + this.transType = transType; + } + + public String getNearStation() { + return nearStation; + } + + public void setNearStation(String nearStation) { + this.nearStation = nearStation; + } + + public String getManager() { + return manager; + } + + public void setManager(String manager) { + this.manager = manager; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnHistory.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnHistory.java new file mode 100644 index 0000000..d875dc7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnHistory.java @@ -0,0 +1,61 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +@TableName("hz_warn_history") +public class HzIrriWarnHistory extends BaseEntity { + private String stationCodes; + + private String receivers; + + private String warnType; + + private String message; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + public String getStationCodes() { + return stationCodes; + } + + public void setStationCodes(String stationCodes) { + this.stationCodes = stationCodes; + } + + public String getReceivers() { + return receivers; + } + + public void setReceivers(String receivers) { + this.receivers = receivers; + } + + public String getWarnType() { + return warnType; + } + + public void setWarnType(String warnType) { + this.warnType = warnType; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Date getSendTime() { + return sendTime; + } + + public void setSendTime(Date sendTime) { + this.sendTime = sendTime; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnLine.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnLine.java new file mode 100644 index 0000000..49ca00f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnLine.java @@ -0,0 +1,92 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_line") +public class HzIrriWarnLine extends BaseEntity { + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + @ApiModelProperty("机构id,又称管理所id") + private Long orgId; + + @ApiModelProperty("机构id,又称管理所ids") + private String orgIds; + + @ApiModelProperty("安全水位") + private Double safeLine; + + @ApiModelProperty("警戒水位") + private Double warnLine; + + @ApiModelProperty("危险水位") + private Double dangerLine; + + public String getOrgIds() { + return orgIds; + } + + public void setOrgIds(String orgIds) { + this.orgIds = orgIds; + } + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getStationName() { + return stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } + + public Long getOrgId() { + return orgId; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public Double getSafeLine() { + return safeLine; + } + + public void setSafeLine(Double safeLine) { + this.safeLine = safeLine; + } + + public Double getWarnLine() { + return warnLine; + } + + public void setWarnLine(Double warnLine) { + this.warnLine = warnLine; + } + + public Double getDangerLine() { + return dangerLine; + } + + public void setDangerLine(Double dangerLine) { + this.dangerLine = dangerLine; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnMoisture.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnMoisture.java new file mode 100644 index 0000000..18920a0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnMoisture.java @@ -0,0 +1,115 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_moisture") +public class HzIrriWarnMoisture extends BaseEntity { + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + @ApiModelProperty("机构id") + private Long orgId; + + @ApiModelProperty("机构ids") + private String orgIds; + + @ApiModelProperty("区域id") + private String areaId; + + @ApiModelProperty("防范墒情") + private Double safeMoisture; + + @ApiModelProperty("警戒墒情") + private Double warnMoisture; + + @ApiModelProperty("危险墒情") + private Double dangerMoisture; + + @ApiModelProperty("区域ids") + private String areaIds; + + public String getAreaIds() { + return areaIds; + } + + public void setAreaIds(String areaIds) { + this.areaIds = areaIds; + } + + public String getOrgIds() { + return orgIds; + } + + public void setOrgIds(String orgIds) { + this.orgIds = orgIds; + } + + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getStationName() { + return stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } + + public Long getOrgId() { + return orgId; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public Double getSafeMoisture() { + return safeMoisture; + } + + public void setSafeMoisture(Double safeMoisture) { + this.safeMoisture = safeMoisture; + } + + public Double getWarnMoisture() { + return warnMoisture; + } + + public void setWarnMoisture(Double warnMoisture) { + this.warnMoisture = warnMoisture; + } + + public Double getDangerMoisture() { + return dangerMoisture; + } + + public void setDangerMoisture(Double dangerMoisture) { + this.dangerMoisture = dangerMoisture; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnPerson.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnPerson.java new file mode 100644 index 0000000..8cba5fe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnPerson.java @@ -0,0 +1,114 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_person") +public class HzIrriWarnPerson extends BaseEntity { + @ApiModelProperty("人员名字") + private String name; + + @ApiModelProperty("所属部门") + private String department; + + @ApiModelProperty("行政区域") + private String areaId; + + @ApiModelProperty("行政区域") + private String areaIds; + + @ApiModelProperty("性别") + private String sex; + + @ApiModelProperty("公司") + private String company; + + @ApiModelProperty("职位") + private String position; + + @ApiModelProperty("是否负责人") + private Boolean flagDuty; + + @ApiModelProperty("联系电话") + private String phone; + + public String getName() { + return name; + } + + public String getAreaIds() { + return areaIds; + } + + public void setAreaIds(String areaIds) { + this.areaIds = areaIds; + } + + public void setName(String name) { + this.name = name; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public Boolean getFlagDuty() { + return flagDuty; + } + + public void setFlagDuty(Boolean flagDuty) { + this.flagDuty = flagDuty; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnRain.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnRain.java new file mode 100644 index 0000000..9109c29 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/entity/HzIrriWarnRain.java @@ -0,0 +1,115 @@ +package org.springblade.engineering_management.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("hz_warn_rain") +public class HzIrriWarnRain extends BaseEntity { + + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + @ApiModelProperty("机构id,管理所id") + private Long orgId; + + @ApiModelProperty("机构id,管理所ids") + private String orgIds; + + @ApiModelProperty("行政区域id") + private String areaId; + + @ApiModelProperty("行政区域名称") + private String areaIds; + + @ApiModelProperty("防范雨量") + private Double safeRain; + + @ApiModelProperty("警戒雨量") + private Double warnRain; + + @ApiModelProperty("危险雨量") + private Double dangerRain; + + public String getAreaIds() { + return areaIds; + } + + public void setAreaIds(String areaIds) { + this.areaIds = areaIds; + } + + public String getOrgIds() { + return orgIds; + } + + public void setOrgIds(String orgIds) { + this.orgIds = orgIds; + } + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getStationName() { + return stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } + + public Long getOrgId() { + return orgId; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public Double getSafeRain() { + return safeRain; + } + + public void setSafeRain(Double safeRain) { + this.safeRain = safeRain; + } + + public Double getWarnRain() { + return warnRain; + } + + public void setWarnRain(Double warnRain) { + this.warnRain = warnRain; + } + + public Double getDangerRain() { + return dangerRain; + } + + public void setDangerRain(Double dangerRain) { + this.dangerRain = dangerRain; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/enums/WarnType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/enums/WarnType.java new file mode 100644 index 0000000..68cb546 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/enums/WarnType.java @@ -0,0 +1,29 @@ +package org.springblade.engineering_management.enums; + +/** + * 防汛预警类型 + * @author Huj + * + */ +public enum WarnType { + + INFO(10, "提醒"),WARN(20, "警戒"),DANGER(30, "危险"); + + private final int code; + + private final String description; + + private WarnType(int code, String description) { + this.code = code; + this.description = description; + } + + public int getCode() { + return code; + } + + public String getDescription() { + return description; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/EmergencyPlanSearchParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/EmergencyPlanSearchParam.java new file mode 100644 index 0000000..f353ce9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/EmergencyPlanSearchParam.java @@ -0,0 +1,21 @@ +package org.springblade.engineering_management.in; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: liugang + * @Date: 2019/5/23 16:14 + */ +@ApiModel +@Data +public class EmergencyPlanSearchParam { + + @ApiModelProperty("预案名称") + private String name; + @ApiModelProperty("预案等级") + private String level; + private String deptId; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/StationSearchParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/StationSearchParam.java new file mode 100644 index 0000000..06af85b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/StationSearchParam.java @@ -0,0 +1,34 @@ +package org.springblade.engineering_management.in; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: liugang + * @Date: 2019/5/28 9:24 + */ +@ApiModel +public class StationSearchParam { + + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getStationName() { + return stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnGoodsSearchParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnGoodsSearchParam.java new file mode 100644 index 0000000..019c00c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnGoodsSearchParam.java @@ -0,0 +1,46 @@ +package org.springblade.engineering_management.in; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: liugang + * @Date: 2019/5/24 16:12 + */ +@ApiModel +public class WarnGoodsSearchParam { + + @ApiModelProperty("物资名称") + private String name; + + @ApiModelProperty("存放位置") + private String location; + + @ApiModelProperty("负责人") + private String manager; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getManager() { + return manager; + } + + public void setManager(String manager) { + this.manager = manager; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnMSGSearchParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnMSGSearchParam.java new file mode 100644 index 0000000..169903e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnMSGSearchParam.java @@ -0,0 +1,34 @@ +package org.springblade.engineering_management.in; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: liugang + * @Date: 2019/5/29 13:46 + */ +@ApiModel +public class WarnMSGSearchParam { + + @ApiModelProperty("测站名称") + private String stationCode; + + @ApiModelProperty("接受人") + private String receiverId; + + public String getStationCode() { + return stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getReceiverId() { + return receiverId; + } + + public void setReceiverId(String receiverId) { + this.receiverId = receiverId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnPersonSearchParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnPersonSearchParam.java new file mode 100644 index 0000000..9e09bd0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/in/WarnPersonSearchParam.java @@ -0,0 +1,67 @@ +package org.springblade.engineering_management.in; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: liugang + * @Date: 2019/5/24 16:07 + */ +@ApiModel +public class WarnPersonSearchParam { + + @ApiModelProperty("人员名字") + private String name; + + @ApiModelProperty("性别") + private String sex; + + @ApiModelProperty("工作单位") + private String company; + + @ApiModelProperty("职位") + private String position; + + @ApiModelProperty("是否负责人") + private Boolean flagDuty; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public Boolean getFlagDuty() { + return flagDuty; + } + + public void setFlagDuty(Boolean flagDuty) { + this.flagDuty = flagDuty; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.java new file mode 100644 index 0000000..51d3e95 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.java @@ -0,0 +1,18 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriEmergencyPlan; +import org.springblade.engineering_management.in.EmergencyPlanSearchParam; +import org.springblade.engineering_management.resp.EmergencyPlanResp; + +@Mapper +public interface HzIrriEmergencyPlanMapper extends UserDataScopeBaseMapper { + IPage listRespByCondition( + @Param("searchParam") EmergencyPlanSearchParam searchParam, IPage page); + + EmergencyPlanResp selectRespById(Long id); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.xml new file mode 100644 index 0000000..6807ae6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriEmergencyPlanMapper.xml @@ -0,0 +1,31 @@ + + + + + + select hiwep.*,dict.name as levelName + from hz_warn_emergency_plan hiwep + LEFT JOIN (SELECT dict_key as value, dict_value as name FROM blade_dict WHERE code='warnLevel') dict ON hiwep.LEVEL= dict.`VALUE` + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.java new file mode 100644 index 0000000..35dbb13 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.java @@ -0,0 +1,24 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnAutoConfig; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnAutoConfigResp; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface HzIrriWarnAutoConfigMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") WarnMSGSearchParam searchParam, + IPage page + ); + + HzIrriWarnAutoConfigResp selectRespById(Long id); + + List listAllStation(); + + List listConfigByCode(String stationCode); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.xml new file mode 100644 index 0000000..5176427 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnAutoConfigMapper.xml @@ -0,0 +1,35 @@ + + + + + select hiwac.* + from hz_warn_auto_config hiwac + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.java new file mode 100644 index 0000000..bf3ca24 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.java @@ -0,0 +1,18 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnGoods; +import org.springblade.engineering_management.entity.HzIrriWarnHistory; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnHistoryResp; +import org.apache.ibatis.annotations.Param; + +public interface HzIrriWarnHistoryMapper extends UserDataScopeBaseMapper { + IPage listRespByCondition( + @Param("searchParam") WarnMSGSearchParam searchParam, + @Param("pageBounds") IPage pageBounds + ); + + HzIrriWarnHistoryResp selectRespById(Integer id); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.xml new file mode 100644 index 0000000..c5f0b42 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnHistoryMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + ID, STATION_CODES, RECEIVERS, WARN_TYPE, MESSAGE, SEND_TIME + + + + select hiwh.* + from hz_warn_history hiwh + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.java new file mode 100644 index 0000000..386d6b3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.java @@ -0,0 +1,22 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnMoisture; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnMoistureResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface HzIrriWarnMoistureMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") StationSearchParam searchParam, + @Param("pageBounds") IPage pageBounds + ); + + HzIrriWarnMoistureResp selectRespById(Long id); + + HzIrriWarnMoisture selectByCode(String code); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.xml new file mode 100644 index 0000000..5155fa1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzIrriWarnMoistureMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + ID, STATION_CODE, STATION_NAME, ORG_ID, AREA_ID, SAFE_MOISTURE, WARN_MOISTURE, DANGER_MOISTURE,AREA_IDS,ORG_IDS + + + + select hiwm.*,org.dept_name as orgName,region.name as areaName + from hz_warn_moisture hiwm + left join blade_region region on region.code=hiwm.AREA_ID + left join blade_dept org on hiwm.ORG_ID = org.ID + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.java new file mode 100644 index 0000000..ec94b2d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.java @@ -0,0 +1,12 @@ +package org.springblade.engineering_management.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.engineering_management.resp.HzReportFloodPersonResp; + +import java.util.List; + +public interface HzReportFloodPersonMapper { + List getFloodPersonCountList(); + + List getFloodPersonCountListByArea(@Param("areaLevel") String var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.xml new file mode 100644 index 0000000..472ca36 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodPersonMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.java new file mode 100644 index 0000000..99f1bb0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.java @@ -0,0 +1,27 @@ +package org.springblade.engineering_management.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.engineering_management.resp.HzFloodGoodsNameCountResp; +import org.springblade.engineering_management.resp.HzMonitorStationProportionResp; +import org.springblade.engineering_management.resp.HzReportFloodWarnHistoryResp; +import org.springblade.engineering_management.resp.HzReportFloodWarnOrgResp; + +import java.util.List; + +public interface HzReportFloodWarnMapper { + List getFloodWarnHistoryList(@Param("startTime") String var1, @Param("endTime") String var2); + + List getFloodWarnOrgList(); + + List getFloodWarnOrgListOfStbprp(); + + List getFloodWarnHistoryListByTime(@Param("startTime") String var1, @Param("endTime") String var2); + + Integer getStationCount(); + + List getMonitorStationProportion(); + + List getStationProportion(); + + List getFloodGoodsNameCounts(@Param("goodsType") String var1, @Param("enableTimeType") String var2); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.xml new file mode 100644 index 0000000..f3c9348 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzReportFloodWarnMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.java new file mode 100644 index 0000000..7d8e81e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.java @@ -0,0 +1,15 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; +import org.springblade.engineering_management.resp.HzFloodWarnHistoryResp; + +import java.util.List; + +public interface HzSummaryFloodWarnMapper { + List getFloodWarnHistoryListByTime(@Param("startTime") String var1, @Param("endTime") String var2); + + Integer getMonitorStationCount(); + + Integer getStationCount(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.xml new file mode 100644 index 0000000..09bf8bd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzSummaryFloodWarnMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.java new file mode 100644 index 0000000..450297d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.java @@ -0,0 +1,21 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnFlow; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnFlowResp; + +@Mapper +public interface HzWarnFlowMapper extends UserDataScopeBaseMapper { + IPage listRespByCondition( + @Param("searchParam") StationSearchParam searchParam, + IPage page + ); + + HzIrriWarnFlowResp selectRespById(Long id); + + HzIrriWarnFlow selectByCode(String code); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.xml new file mode 100644 index 0000000..913a709 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnFlowMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + ID, STATION_CODE, STATION_NAME, ORG_ID, SAFE_FLOW, WARN_FLOW, DANGER_FLOW,ORG_IDS + + + + select hiwf.*,org.dept_name as orgName + from hz_warn_flow hiwf + left join blade_dept org on hiwf.ORG_ID = org.ID + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.java new file mode 100644 index 0000000..7bb4d25 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.java @@ -0,0 +1,19 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnGoods; +import org.springblade.engineering_management.in.WarnGoodsSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnGoodsResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface HzWarnGoodsMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") WarnGoodsSearchParam searchParam, IPage page + ); + + HzIrriWarnGoodsResp selectRespById(Long id); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.xml new file mode 100644 index 0000000..48ea95a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnGoodsMapper.xml @@ -0,0 +1,30 @@ + + + + + + select hiwg.*,dict.name as transTypeName + from hz_warn_goods hiwg + LEFT JOIN (SELECT dict_key as value, dict_value as name FROM blade_dict WHERE code='transfer') dict ON hiwg.TRANS_TYPE= dict.`VALUE` + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.java new file mode 100644 index 0000000..99291b9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.java @@ -0,0 +1,22 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnLine; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnLineResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface HzWarnLineMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") StationSearchParam searchParam, + @Param("pageBounds") IPage pageBounds + ); + + HzIrriWarnLineResp selectRespById(Long id); + + HzIrriWarnLine selectByCode(String code); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.xml new file mode 100644 index 0000000..9f75e85 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnLineMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + ID, STATION_CODE, STATION_NAME, ORG_ID, SAFE_LINE, WARN_LINE, DANGER_LINE,ORG_IDS + + + + select hiwl.*,org.dept_name as orgName + from hz_warn_line hiwl + left join blade_dept org on hiwl.ORG_ID = org.ID + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.java new file mode 100644 index 0000000..e57d575 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.java @@ -0,0 +1,20 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnPersonSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnPersonResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface HzWarnPersonMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") WarnPersonSearchParam searchParam, + @Param("pageBounds") IPage page + ); + + HzIrriWarnPersonResp selectRespById(Long id); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.xml new file mode 100644 index 0000000..e8db9cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnPersonMapper.xml @@ -0,0 +1,40 @@ + + + + + ID, NAME, DEPARTMENT, AREA_ID,AREA_IDS, SEX, COMPANY, POSITION, FLAG_DUTY, PHONE, IS_DELETED + + + + select hiwp.*,dict.name as sexName,region.name as areaName + from hz_warn_person hiwp + left join blade_region region on region.code = hiwp.AREA_ID + LEFT JOIN (SELECT dict_key as value, dict_value as name FROM blade_dict WHERE code='sex') dict ON hiwp.sex= dict.`VALUE` + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.java new file mode 100644 index 0000000..00fb8cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.java @@ -0,0 +1,22 @@ +package org.springblade.engineering_management.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.engineering_management.entity.HzIrriWarnRain; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnRainResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface HzWarnRainMapper extends UserDataScopeBaseMapper { + + IPage listRespByCondition( + @Param("searchParam") StationSearchParam searchParam, + @Param("pageBounds") IPage pageBounds + ); + + HzIrriWarnRainResp selectRespById(Long id); + + HzIrriWarnRain selectByCode(String code); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.xml new file mode 100644 index 0000000..1232656 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/mapper/HzWarnRainMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + ID, STATION_CODE, STATION_NAME, ORG_ID, AREA_ID, SAFE_RAIN, WARN_RAIN, DANGER_RAIN,AREA_IDS,ORG_IDS + + + + select hiwr.*,org.dept_name as orgName,region.name as areaName + from hz_warn_rain hiwr + left join blade_region region on region.code = hiwr.AREA_ID + left join blade_dept org on hiwr.ORG_ID = org.ID + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/EmergencyPlanResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/EmergencyPlanResp.java new file mode 100644 index 0000000..b6acfa5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/EmergencyPlanResp.java @@ -0,0 +1,22 @@ +package org.springblade.engineering_management.resp; + +import io.swagger.annotations.ApiModel; +import org.springblade.engineering_management.entity.HzIrriEmergencyPlan; + +/** + * @Author: liugang + * @Date: 2019/5/23 16:08 + */ +@ApiModel +public class EmergencyPlanResp extends HzIrriEmergencyPlan { + + private String levelName; + + public String getLevelName() { + return levelName; + } + + public void setLevelName(String levelName) { + this.levelName = levelName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodGoodsNameCountResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodGoodsNameCountResp.java new file mode 100644 index 0000000..afc52a0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodGoodsNameCountResp.java @@ -0,0 +1,43 @@ +package org.springblade.engineering_management.resp; + +public class HzFloodGoodsNameCountResp { + private String name; + private String unit; + private Double goodsNameCount; + private Double goodsSum; + + public HzFloodGoodsNameCountResp() { + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getGoodsNameCount() { + return this.goodsNameCount; + } + + public void setGoodsNameCount(Double goodsNameCount) { + this.goodsNameCount = goodsNameCount; + } + + public Double getGoodsSum() { + return this.goodsSum; + } + + public void setGoodsSum(Double goodsSum) { + this.goodsSum = goodsSum; + } + + public String getUnit() { + return this.unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodWarnHistoryResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodWarnHistoryResp.java new file mode 100644 index 0000000..6749d87 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzFloodWarnHistoryResp.java @@ -0,0 +1,34 @@ +package org.springblade.engineering_management.resp; + +public class HzFloodWarnHistoryResp { + private Long id; + private String stationCodes; + private String warnType; + + public HzFloodWarnHistoryResp() { + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStationCodes() { + return this.stationCodes; + } + + public void setStationCodes(String stationCodes) { + this.stationCodes = stationCodes; + } + + public String getWarnType() { + return this.warnType; + } + + public void setWarnType(String warnType) { + this.warnType = warnType; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnAutoConfigResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnAutoConfigResp.java new file mode 100644 index 0000000..a1b5896 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnAutoConfigResp.java @@ -0,0 +1,36 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnAutoConfig; + +/** + * @Author: liugang + * @Date: 2019/5/29 13:48 + */ +public class HzIrriWarnAutoConfigResp extends HzIrriWarnAutoConfig { + + /** + * 站点名称 + */ + private String stationNames; + + /** + * 接收人,分隔符 + */ + private String receiverNames; + + public String getStationNames() { + return stationNames; + } + + public void setStationNames(String stationNames) { + this.stationNames = stationNames; + } + + public String getReceiverNames() { + return receiverNames; + } + + public void setReceiverNames(String receiverNames) { + this.receiverNames = receiverNames; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnFlowResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnFlowResp.java new file mode 100644 index 0000000..e637478 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnFlowResp.java @@ -0,0 +1,30 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnFlow; + +/** + * @Author: liugang + * @Date: 2019/5/28 9:34 + */ +public class HzIrriWarnFlowResp extends HzIrriWarnFlow { + + private String orgName; + + private String channelName; + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + + public String getChannelName() { + return channelName; + } + + public void setChannelName(String channelName) { + this.channelName = channelName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnGoodsResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnGoodsResp.java new file mode 100644 index 0000000..f337453 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnGoodsResp.java @@ -0,0 +1,24 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnGoods; + +/** + * @Author: liugang + * @Date: 2019/5/24 14:29 + */ +public class HzIrriWarnGoodsResp extends HzIrriWarnGoods { + + /** + * 运输方式 + */ + private String transTypeName; + + public String getTransTypeName() { + return transTypeName; + } + + public void setTransTypeName(String transTypeName) { + this.transTypeName = transTypeName; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnHistoryResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnHistoryResp.java new file mode 100644 index 0000000..f551d75 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnHistoryResp.java @@ -0,0 +1,36 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnHistory; + +/** + * @Author: liugang + * @Date: 2019/5/29 16:45 + */ +public class HzIrriWarnHistoryResp extends HzIrriWarnHistory { + + /** + * 站点名称 + */ + private String stationNames; + + /** + * 接收人,分隔符 + */ + private String receiverNames; + + public String getStationNames() { + return stationNames; + } + + public void setStationNames(String stationNames) { + this.stationNames = stationNames; + } + + public String getReceiverNames() { + return receiverNames; + } + + public void setReceiverNames(String receiverNames) { + this.receiverNames = receiverNames; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnLineResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnLineResp.java new file mode 100644 index 0000000..30d2516 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnLineResp.java @@ -0,0 +1,32 @@ +package org.springblade.engineering_management.resp; + + +import org.springblade.engineering_management.entity.HzIrriWarnLine; + +/** + * @Author: liugang + * @Date: 2019/5/28 9:30 + */ +public class HzIrriWarnLineResp extends HzIrriWarnLine { + + private String orgName; + + private String channelName; + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + + public String getChannelName() { + return channelName; + } + + public void setChannelName(String channelName) { + this.channelName = channelName; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnMoistureResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnMoistureResp.java new file mode 100644 index 0000000..a49c34f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnMoistureResp.java @@ -0,0 +1,30 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnMoisture; + +/** + * @Author: liugang + * @Date: 2019/5/28 10:51 + */ +public class HzIrriWarnMoistureResp extends HzIrriWarnMoisture { + + private String areaName; + + private String orgName; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnPersonResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnPersonResp.java new file mode 100644 index 0000000..5cb433f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnPersonResp.java @@ -0,0 +1,33 @@ +package org.springblade.engineering_management.resp; + +import io.swagger.annotations.ApiModelProperty; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; + +/** + * @Author: liugang + * @Date: 2019/5/24 14:32 + */ +public class HzIrriWarnPersonResp extends HzIrriWarnPerson { + @ApiModelProperty("行政区域名称") + private String areaName; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + /** + * 性别 + */ + private String sexName; + + public String getSexName() { + return sexName; + } + + public void setSexName(String sexName) { + this.sexName = sexName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnRainResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnRainResp.java new file mode 100644 index 0000000..913d4cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzIrriWarnRainResp.java @@ -0,0 +1,30 @@ +package org.springblade.engineering_management.resp; + +import org.springblade.engineering_management.entity.HzIrriWarnRain; + +/** + * @Author: liugang + * @Date: 2019/5/28 10:25 + */ +public class HzIrriWarnRainResp extends HzIrriWarnRain { + + private String areaName; + + private String orgName; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzMonitorStationProportionResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzMonitorStationProportionResp.java new file mode 100644 index 0000000..b60a02a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzMonitorStationProportionResp.java @@ -0,0 +1,25 @@ +package org.springblade.engineering_management.resp; + +public class HzMonitorStationProportionResp { + private String stationType; + private Integer stationCount; + + public HzMonitorStationProportionResp() { + } + + public String getStationType() { + return this.stationType; + } + + public void setStationType(String stationType) { + this.stationType = stationType; + } + + public Integer getStationCount() { + return this.stationCount; + } + + public void setStationCount(Integer stationCount) { + this.stationCount = stationCount; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodPersonResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodPersonResp.java new file mode 100644 index 0000000..aed65ff --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodPersonResp.java @@ -0,0 +1,43 @@ +package org.springblade.engineering_management.resp; + +public class HzReportFloodPersonResp { + private String areaId; + private String name; + private Double personCount; + private Double totalPerson; + + public HzReportFloodPersonResp() { + } + + public String getAreaId() { + return this.areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getPersonCount() { + return this.personCount; + } + + public void setPersonCount(Double personCount) { + this.personCount = personCount; + } + + public Double getTotalPerson() { + return this.totalPerson; + } + + public void setTotalPerson(Double totalPerson) { + this.totalPerson = totalPerson; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnHistoryResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnHistoryResp.java new file mode 100644 index 0000000..a295226 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnHistoryResp.java @@ -0,0 +1,34 @@ +package org.springblade.engineering_management.resp; + +public class HzReportFloodWarnHistoryResp { + private Long id; + private String stationCodes; + private Integer sendTime; + + public HzReportFloodWarnHistoryResp() { + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStationCodes() { + return this.stationCodes; + } + + public void setStationCodes(String stationCodes) { + this.stationCodes = stationCodes; + } + + public Integer getSendTime() { + return this.sendTime; + } + + public void setSendTime(Integer sendTime) { + this.sendTime = sendTime; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnOrgResp.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnOrgResp.java new file mode 100644 index 0000000..8a9a49c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/resp/HzReportFloodWarnOrgResp.java @@ -0,0 +1,34 @@ +package org.springblade.engineering_management.resp; + +public class HzReportFloodWarnOrgResp { + private String stationCode; + private String orgId; + private String orgName; + + public HzReportFloodWarnOrgResp() { + } + + public String getStationCode() { + return this.stationCode; + } + + public void setStationCode(String stationCode) { + this.stationCode = stationCode; + } + + public String getOrgId() { + return this.orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + public String getOrgName() { + return this.orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/ScheduleTime.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/ScheduleTime.java new file mode 100644 index 0000000..865c7b4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/ScheduleTime.java @@ -0,0 +1,32 @@ +package org.springblade.engineering_management.schedule; + +import org.apache.commons.lang3.time.DateUtils; + +import java.util.Date; + +/** + * 固定当前日期,以及一段时间前的日期 + * + * @Author: liugang + * @Date: 2019/6/3 8:38 + */ +public class ScheduleTime { + + private Date startTime; + + private Date endTime; + + public ScheduleTime(int minute) { + endTime = new Date(); + startTime = DateUtils.addMinutes(endTime, minute); + } + + public Date getStartTime() { + return startTime; + } + + public Date getEndTime() { + return endTime; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/WarnInfoSchedule.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/WarnInfoSchedule.java new file mode 100644 index 0000000..b351792 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/schedule/WarnInfoSchedule.java @@ -0,0 +1,69 @@ +package org.springblade.engineering_management.schedule; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.engineering_management.service.WarnScheduleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * 预警通知定时任务 + * Component 1.通知spring容器 + * + * @Author: liugang + * @Date: 2019/5/31 9:36 + */ +@Component +public class WarnInfoSchedule { + + private static Logger logger = LoggerFactory.getLogger(WarnInfoSchedule.class); + + private static int LINEFLOWTIME = -30; + + private static int RAINTIME = -60; + + private static int MOISTIME = -60; + + @Autowired + private WarnScheduleService scheduleService; + + /** + * 水位流量越界预警 + */ + @Scheduled(cron = "0 0/30 * * * ?") + private void lineFlow() { + ScheduleTime scheduleTime = new ScheduleTime(LINEFLOWTIME); + Date startTime = scheduleTime.getStartTime(); + Date endTime = scheduleTime.getEndTime(); + logger.info("水位流量预警通知查询时间 : {}-{}", startTime, endTime); + scheduleService.lineFlow(startTime, endTime); + } + + /** + * 雨量越界预警 + */ + @Scheduled(cron = "0 0 * * * ?") + private void rain() { + ScheduleTime scheduleTime = new ScheduleTime(RAINTIME); + Date startTime = scheduleTime.getStartTime(); + Date endTime = scheduleTime.getEndTime(); + logger.info("雨量预警通知查询时间 : {}-{}", startTime, endTime); + scheduleService.rain(startTime, endTime); + } + + /** + * 墒情越界预警 + */ +// @Scheduled(cron = "0 0 * * * ?") +// private void moisture() { +// ScheduleTime scheduleTime = new ScheduleTime(MOISTIME); +// Date startTime = scheduleTime.getStartTime(); +// Date endTime = scheduleTime.getEndTime(); +// logger.info("墒情预警通知查询时间 : {}-{}", startTime, endTime); +// scheduleService.moisture(startTime, endTime); +// } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/HzIrriWarnHistoryService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/HzIrriWarnHistoryService.java new file mode 100644 index 0000000..9b59272 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/HzIrriWarnHistoryService.java @@ -0,0 +1,222 @@ +package org.springblade.engineering_management.service; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.config.Constant; +import org.springblade.engineering_management.entity.HzIrriWarnHistory; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.mapper.HzIrriWarnHistoryMapper; +import org.springblade.engineering_management.mapper.HzWarnPersonMapper; +import org.springblade.engineering_management.resp.HzIrriWarnHistoryResp; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.feign.IMessagingClient; +import org.springblade.resource.feign.ISmsClient; +import org.springblade.water_rain_monitor.entity.StStbprpB; +import org.springblade.water_rain_monitor.feign.IStStbprpBClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @Author: liugang + * @Date: 2019/5/29 17:35 + */ +@Service +public class HzIrriWarnHistoryService extends BaseServiceImpl { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnHistoryService.class); + + @Autowired + private HzIrriWarnHistoryMapper warnHistoryMapper; + @Autowired + private IStStbprpBClient stStbprpBClient; + @Autowired + private HzWarnPersonMapper warnPersonMapper; + +// @Autowired +// private HZSendSms hzSendSms; +// ISmsClient smsClient; + + @Autowired + IMessagingClient messagingClient; + + @Value("${sms.aliyun.templateCode.warn}") + private String templateCode; + + public IPage listResp(WarnMSGSearchParam searchParam, IPage pageBounds) { + IPage pageList = warnHistoryMapper.listRespByCondition(searchParam, pageBounds); + toRespList(pageList.getRecords()); + return pageList; + } + + public List sendWarn(HzIrriWarnHistory sendInfo,Long userId) { + List resultList = sendMsg(sendInfo,userId); + sendInfo.setSendTime(new Date()); + warnHistoryMapper.insert(sendInfo); + return resultList; + } + + public HzIrriWarnHistory temporaryStore(HzIrriWarnHistory sendInfo) { + warnHistoryMapper.insert(sendInfo); + return sendInfo; + } + + public HzIrriWarnHistory send(Long id,Long userId) { + HzIrriWarnHistory message = Optional.ofNullable(warnHistoryMapper.selectById(id)) + .orElseThrow(() -> new IllegalArgumentException("消息不存在")); + List results = sendMsg(message,userId); + if (logger.isInfoEnabled()) { + logger.info(results.toString()); + } + + message.setSendTime(new Date()); + warnHistoryMapper.updateById(message); + return message; + } + + public boolean deleteById(Long id) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.isNull(HzIrriWarnHistory::getSendTime); + wrapper.eq(HzIrriWarnHistory::getId,id); + return warnHistoryMapper.delete(wrapper) > 0; + } + + /** + * + * @param history + * @throws NullPointerException 如果history为null + * @return + */ + public Optional update(HzIrriWarnHistory history) { + history.setSendTime(null); + LambdaUpdateWrapper wrapper=new LambdaUpdateWrapper(); + wrapper.isNull(HzIrriWarnHistory::getSendTime); + wrapper.eq(HzIrriWarnHistory::getId,history.getId()); + if (Objects.nonNull(history.getId()) && + warnHistoryMapper.update(history,wrapper) > 0) { + return Optional.of(history); + } + return Optional.empty(); + } + + private List sendMsg(HzIrriWarnHistory sendInfo,Long userId) { + String stationCodes = sendInfo.getStationCodes(); + String sendPersons = sendInfo.getReceivers(); + if (StringUtils.isEmpty(sendPersons)) { +// throw new HZException(CommonConfig.errorCode, "无发送对象无法发送短信"); + return null; + } + String[] personArr = sendPersons.split(Constant.SEPARATION); + String[] codeArr = stationCodes.split(Constant.SEPARATION); + String stationNames = getStationNames(codeArr); + List results = new ArrayList<>(); + + SendMsgInfo info=new SendMsgInfo(); + List persons=Arrays.asList(personArr); + info.setContent(sendInfo.getMessage()); + info.setTitle(stationNames); + info.setTags(new ArrayList<>(persons)); + R res=messagingClient.sendMessage(info,userId); + Boolean flag=res.getData(); + if (flag) { + results.add(Constant.SEND_SUCCESS); + } else { + results.add(Constant.SEND_FAILURE); + } +// for (String personId : personArr) { +// HzIrriWarnPerson person = warnPersonMapper.selectById(Long.valueOf(personId)); +// if(person==null){ +// continue; +// } +// try { +// Map map = new HashMap<>(); +// map.put("one", person.getName()); +// map.put("two", stationNames); +// map.put("three", sendInfo.getMessage()); +// String phoneNumber = person.getPhone(); +// String jsonParam = JSON.toJSONString(map); +//// HZSendContent content = +//// HZSendContent.getTemplateContent(phoneNumber, templateCode, jsonParam); +//// HZSendStatu sendStatu = hzSendSms.sendMsg(content); +// SendMsgInfo info=new SendMsgInfo(); +// R res=messagingClient.sendMessage(,info); +//// R res=smsClient.sendMessage(templateCode,jsonParam,phoneNumber); +// Boolean flag=res.getData(); +//// if (HZSendStatu.SEND_SUCCESS.equals(sendStatu)) { +// if (flag) { +// results.add(person.getName() + Constant.SEND_SUCCESS); +// } else { +// results.add(person.getName() + Constant.SEND_FAILURE); +// } +// } catch (Exception e) { +// logger.error("发送短信失败 : ", e); +// results.add(person.getName() + Constant.SEND_FAILURE); +// } +// } + return results; + } + + private void toRespList(List respList) { + if (CollectionUtils.isEmpty(respList)) { + return; + } + for (HzIrriWarnHistoryResp resp : respList) { + toResp(resp); + } + } + + private void toResp(HzIrriWarnHistoryResp resp) { + String stationCodes = resp.getStationCodes(); + String sendPersons = resp.getReceivers(); + String[] codeArr = stationCodes.split(Constant.SEPARATION); + String[] personArr = sendPersons.split(Constant.SEPARATION); + resp.setStationNames(getStationNames(codeArr)); + resp.setReceiverNames(getReceiverNames(personArr)); + } + + private String getStationNames(String[] codeArr) { + if (ArrayUtils.isEmpty(codeArr)) { + return null; + } + List nameList = new ArrayList<>(codeArr.length); + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + for (String code : codeArr) { +// StStbprpBResp stStbprpB = stStbprpBService.getRespById(code); + wrapper.eq(StStbprpB::getStcd,code); + StStbprpB stStbprpB =stStbprpBClient.detail(wrapper); + if (stStbprpB!=null) { + nameList.add(stStbprpB.getStnm()); + } + } + return StringUtils.join(nameList, Constant.SEPARATION); + } + + private String getReceiverNames(String[] personArr) { + if (ArrayUtils.isEmpty(personArr)) { + return null; + } + List nameList = new ArrayList<>(personArr.length); + for (String person : personArr) { + HzIrriWarnPerson warnPerson = warnPersonMapper.selectById(Long.valueOf(person)); + if (!Objects.isNull(warnPerson)) { + nameList.add(warnPerson.getName()); + } + } + return StringUtils.join(nameList, Constant.SEPARATION); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzIrriEmergencyPlanService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzIrriEmergencyPlanService.java new file mode 100644 index 0000000..8fc0db4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzIrriEmergencyPlanService.java @@ -0,0 +1,20 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriEmergencyPlan; +import org.springblade.engineering_management.in.EmergencyPlanSearchParam; +import org.springblade.engineering_management.resp.EmergencyPlanResp; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; + +public interface IHzIrriEmergencyPlanService extends BaseService { + IPage listResp(EmergencyPlanSearchParam searchParam, IPage pageBounds); + boolean add(MultipartFile[] files, HzIrriEmergencyPlan emergencyPlan) throws IOException; + EmergencyPlanResp getRespById(Long id); + boolean edit(String[] delNames, MultipartFile[] files, HzIrriEmergencyPlan emergencyPlan) throws IOException; + boolean delById(Long id) throws IOException; + File downloadFile(Long id, String fileName); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodPersonService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodPersonService.java new file mode 100644 index 0000000..d44f864 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodPersonService.java @@ -0,0 +1,11 @@ +package org.springblade.engineering_management.service; + +import org.springblade.engineering_management.resp.HzReportFloodPersonResp; + +import java.util.List; + +public interface IHzReportFloodPersonService { + List getFloodPersonCountList(); + + List getFloodPersonCountListByArea(String var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodWarnService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodWarnService.java new file mode 100644 index 0000000..c1efe39 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzReportFloodWarnService.java @@ -0,0 +1,18 @@ +package org.springblade.engineering_management.service; + +import org.springblade.engineering_management.resp.HzMonitorStationProportionResp; + +import java.util.List; +import java.util.Map; + +public interface IHzReportFloodWarnService { + Map getFloodWarnDailyByNearlyThirty(); + + Map getFloodWarnByNearlyThirty(); + + Map getFloodWarnStationProportionByTime(Integer var1); + + List getMonitorStationProportion(); + + Map getFloodGoodsNameCounts(String var1, String var2); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzSummaryFloodWarnService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzSummaryFloodWarnService.java new file mode 100644 index 0000000..1152d4a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzSummaryFloodWarnService.java @@ -0,0 +1,7 @@ +package org.springblade.engineering_management.service; + +import java.util.Map; + +public interface IHzSummaryFloodWarnService { + Map getFloodWarnStationCountsByTime(Integer var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnAutoConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnAutoConfigService.java new file mode 100644 index 0000000..7dfe9fc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnAutoConfigService.java @@ -0,0 +1,16 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnAutoConfig; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnAutoConfigResp; + +import java.util.List; + +public interface IHzWarnAutoConfigService extends BaseService { + IPage listResp(WarnMSGSearchParam searchParam, IPage page); + HzIrriWarnAutoConfigResp getRespById(Long id); + List listAllStation(); + List listConfigByCode(String stationCode); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnFlowService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnFlowService.java new file mode 100644 index 0000000..93cf2da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnFlowService.java @@ -0,0 +1,13 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnFlow; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnFlowResp; + +public interface IHzWarnFlowService extends BaseService { + IPage listResp(StationSearchParam searchParam, IPage page); + HzIrriWarnFlowResp getRespById(Long id); + HzIrriWarnFlow selectByCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnGoodsService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnGoodsService.java new file mode 100644 index 0000000..93b191f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnGoodsService.java @@ -0,0 +1,12 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnGoods; +import org.springblade.engineering_management.in.WarnGoodsSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnGoodsResp; + +public interface IHzWarnGoodsService extends BaseService { + IPage listResp(WarnGoodsSearchParam searchParam, IPage page); + HzIrriWarnGoodsResp getRespById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnLineService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnLineService.java new file mode 100644 index 0000000..ef00379 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnLineService.java @@ -0,0 +1,13 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnLine; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnLineResp; + +public interface IHzWarnLineService extends BaseService { + IPage listResp(StationSearchParam searchParam, IPage pageBounds); + HzIrriWarnLineResp getRespById(Long id); + HzIrriWarnLine selectByCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnMoistureService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnMoistureService.java new file mode 100644 index 0000000..2073b51 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnMoistureService.java @@ -0,0 +1,13 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnMoisture; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnMoistureResp; + +public interface IHzWarnMoistureService extends BaseService { + IPage listResp(StationSearchParam searchParam, IPage pageBounds); + HzIrriWarnMoistureResp getRespById(Long id); + HzIrriWarnMoisture selectByCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnPersonService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnPersonService.java new file mode 100644 index 0000000..801847d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnPersonService.java @@ -0,0 +1,20 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnPersonSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnPersonResp; + +import java.util.List; + +public interface IHzWarnPersonService extends BaseService { + IPage listResp( + @Param("searchParam") WarnPersonSearchParam searchParam, + @Param("pageBounds") IPage page + ); + + HzIrriWarnPersonResp getRespById(Long id); + List listPersonByIds(String sendPersons); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnRainService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnRainService.java new file mode 100644 index 0000000..4660f0a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IHzWarnRainService.java @@ -0,0 +1,13 @@ +package org.springblade.engineering_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.engineering_management.entity.HzIrriWarnRain; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnRainResp; + +public interface IHzWarnRainService extends BaseService { + IPage listResp(StationSearchParam searchParam, IPage page); + HzIrriWarnRainResp getRespById(Long id); + HzIrriWarnRain selectByCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IMonitorFloodService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IMonitorFloodService.java new file mode 100644 index 0000000..89679b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/IMonitorFloodService.java @@ -0,0 +1,7 @@ +package org.springblade.engineering_management.service; + +import java.util.Map; + +public interface IMonitorFloodService { + Map getFloodWarnData(Integer nearlyDay,String goodsType,String goodsEnableTimeType); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/WarnScheduleService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/WarnScheduleService.java new file mode 100644 index 0000000..52fbefe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/WarnScheduleService.java @@ -0,0 +1,292 @@ +package org.springblade.engineering_management.service; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.config.Constant; +import org.springblade.engineering_management.entity.*; +import org.springblade.engineering_management.enums.WarnType; +import org.springblade.engineering_management.mapper.*; +import org.springblade.engineering_management.resp.HzIrriWarnAutoConfigResp; +import org.springblade.engineering_management.service.impl.HzWarnAutoConfigServiceImpl; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.feign.IMessagingClient; +import org.springblade.resource.feign.ISmsClient; +import org.springblade.water_rain_monitor.entity.StStbprpB; +import org.springblade.water_rain_monitor.enums.HistoryDataCalcTypeEnum; +import org.springblade.water_rain_monitor.feign.IStStbprpBClient; +import org.springblade.water_rain_monitor.feign.IStStbprpBDataClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; + +/** + * @Author: liugang + * @Date: 2019/5/31 10:31 + */ +@Service +public class WarnScheduleService { + + private static Logger logger = LoggerFactory.getLogger(WarnScheduleService.class); + +// @Value("${sms.aliyun.templateCode.warn}") +//// private String templateCode; +//// +//// ISmsClient smsClient; + + @Autowired + IMessagingClient messagingClient; + + @Autowired + IStStbprpBClient stStbprpBClient; + + @Autowired + IStStbprpBDataClient stStbprpBDataClient; + + @Autowired + private IHzWarnAutoConfigService warnAutoConfigService; + @Autowired + private HzIrriWarnHistoryMapper warnHistoryMapper; + @Autowired + private IHzWarnPersonService warnPersonService; + @Autowired + private HzWarnLineMapper warnLineMapper; + @Autowired + private HzWarnFlowMapper warnFlowMapper; + @Autowired + private HzIrriWarnMoistureMapper warnMoistureMapper; + @Autowired + private HzWarnRainMapper warnRainMapper; + + public void lineFlow(Date startTime, Date endTime) { + + List stationlist = listType(Constant.LINEFLOW); + + if(stationlist==null || stationlist.isEmpty()){ + return; + } + logger.info("水位流量测站个数:"+stationlist.size()); + for (StStbprpB stStbprpB : stationlist) { + String code = stStbprpB.getStcd(); + //获取该编码站点报警数据,如果未配置则不检验该站点数据 + HzIrriWarnLine line = warnLineMapper.selectByCode(code); + HzIrriWarnFlow flow = warnFlowMapper.selectByCode(code); + //获取水位流量数据判定是否数据异常 + Map lineData = stStbprpBDataClient.queryMaxOrMin(code, startTime, endTime, HistoryDataCalcTypeEnum.ONE.getStrategy(),1,1, "water_level"); + Map flowData = stStbprpBDataClient.queryMaxOrMin(code, startTime, endTime, HistoryDataCalcTypeEnum.ONE.getStrategy(),1,1, "flow"); + //获取发送配置信息,如果异常进行通知 + List resps = warnAutoConfigService.listConfigByCode(code); + //判定是否配置站点水位信息 + if (!Objects.isNull(line) && !Objects.isNull(lineData)) { + //水位数据判定是否发送 + BigDecimal rz=lineData.get(code)==null ? BigDecimal.ZERO : new BigDecimal(lineData.get(code)); + + if (rz.doubleValue() >= line.getDangerLine()) { + info(Constant.WARN_TYPE_LINE, Constant.DANGER, resps,"30分钟内最大水位值为"+rz+"m,超危险水位"); + } else if (rz.doubleValue() >= line.getWarnLine()) { + info(Constant.WARN_TYPE_LINE, Constant.WARN, resps,"30分钟内最大水位值为"+rz+"m,超告警水位"); + } else if (rz.doubleValue() >= line.getSafeLine()) { + info(Constant.WARN_TYPE_LINE, Constant.INFO, resps,"30分钟内最大水位值为"+rz+"m"); + } else { + logger.debug("本轮水位自动巡查未发现异常数据"); + } + } + //判定是否配置站点流量信息 + if (!Objects.isNull(flow) && !Objects.isNull(flowData)) { + //流量数据判定是否发送 + BigDecimal inq=flowData.get(code)==null ? BigDecimal.ZERO : new BigDecimal(flowData.get(code)); + logger.info("30分钟内最大流量值为:"+inq); + if (inq.doubleValue() >= flow.getDangerFlow()) { + info(Constant.WARN_TYPE_FLOW, Constant.DANGER, resps,"30分钟内最大流量值为"+inq+"m³/s,超危险流量"); + } else if (inq.doubleValue() >= flow.getWarnFlow()) { + info(Constant.WARN_TYPE_FLOW, Constant.WARN, resps,"30分钟内最大流量值为"+inq+"m³/s,超告警流量"); + } else if (inq.doubleValue() >= flow.getSafeFlow()) { + info(Constant.WARN_TYPE_FLOW, Constant.INFO, resps,"30分钟内最大流量值为"+inq+"m³/s"); + } else { + logger.debug("本轮流量自动巡查未发现异常数据"); + } + } + } + } + + public void rain(Date startTime, Date endTime) { + //获取所有已配置的雨量站 + List stationlist = listType(Constant.RAIN); + if(stationlist==null || stationlist.isEmpty()){ + return; + } + logger.info("雨量测站个数:"+stationlist.size()); + //查询每个雨量站数据 + for (StStbprpB stStbprpB : stationlist) { + String code = stStbprpB.getStcd(); + //获取该编码站点报警数据,如果未配置则不检验该站点数据 + HzIrriWarnRain rain = warnRainMapper.selectByCode(code); + //获取雨量数据判定是否数据异常 + Map rainData = stStbprpBDataClient.queryMaxOrMin(code, startTime, endTime, HistoryDataCalcTypeEnum.ONE.getStrategy(),1,1, "rain"); + //获取发送配置信息,如果异常进行通知 + List resps = warnAutoConfigService.listConfigByCode(code); + //判定该站点是否进行雨量配置 + if (!Objects.isNull(rain) && !Objects.isNull(rainData)) { + //雨量数据判定是否发送 + BigDecimal drp=rainData.get(code)==null ? BigDecimal.ZERO : new BigDecimal(rainData.get(code)); + + if (drp.doubleValue() >= rain.getDangerRain()) { + info(Constant.WARN_TYPE_RAIN, Constant.DANGER, resps,"1小时内最大雨量值为"+drp+"mm,超危险雨量"); + } else if (drp.doubleValue() >= rain.getWarnRain()) { + info(Constant.WARN_TYPE_RAIN, Constant.WARN, resps,"1小时内最大雨量值为"+drp+"mm,超告警雨量"); + } else if (drp.doubleValue() >= rain.getSafeRain()) { + info(Constant.WARN_TYPE_RAIN, Constant.INFO, resps,"1小时内最大雨量值为"+drp+"mm"); + } + } + } + } + + public void moisture(Date startTime, Date endTime) { + //获取所有已配置的墒情站 + List stationlist = listType(Constant.MOISTURE); + if(stationlist==null || stationlist.isEmpty()){ + return; + } + //查询每个墒情站数据 + for (StStbprpB stStbprpB : stationlist) { + String code = stStbprpB.getStcd(); + //获取该编码站点报警数据,如果未配置则不检验该站点数据 + HzIrriWarnMoisture mois = warnMoistureMapper.selectByCode(code); + //获取墒情数据判定是否数据异常 + List codes=new ArrayList<>(); + codes.add(code); + Map moisData = stStbprpBDataClient.queryMaxOrMin(code, startTime, endTime, HistoryDataCalcTypeEnum.ONE.getStrategy(),1, 1,"vtavslm"); + //获取发送配置信息,如果异常进行通知 + List resps = warnAutoConfigService.listConfigByCode(code); + //判定该站点是否进行雨量配置 + if (!Objects.isNull(mois) && !Objects.isNull(moisData)) { + //墒情数据判定是否发送 + BigDecimal vtavslm=moisData.get(code)==null ? BigDecimal.ZERO : new BigDecimal(moisData.get(code)); + if (vtavslm.doubleValue() >= mois.getDangerMoisture()) { + info(Constant.WARN_TYPE_MOIS, Constant.DANGER, resps,""); + } else if (vtavslm.doubleValue() >= mois.getWarnMoisture()) { + info(Constant.WARN_TYPE_MOIS, Constant.WARN, resps,""); + } else if (vtavslm.doubleValue() >= mois.getSafeMoisture()) { + info(Constant.WARN_TYPE_MOIS, Constant.INFO, resps,""); + } + } + } + + } + + /** + * 依据配置信息进行通知 + * 写入数据库 + * + * @param warnType 水位,流量,墒情,雨量 + * @param infoType 提醒,警戒,危险 + * @param configResps 通知配置(人,站点,通知内容) + * @return + */ + private boolean info(String warnType, String infoType, List configResps,String message) { + if (CollectionUtils.isEmpty(configResps)) { + return false; + } + HzIrriWarnAutoConfigResp resp=configResps.get(0); + String sendPersons = resp.getSendPersons(); + String stationNames = resp.getStationNames(); + +// List personList = warnPersonService.listPersonByIds(sendPersons); +// for (HzIrriWarnPerson person : personList) { +//// Map map = new HashMap<>(); +//// map.put("one", person.getName()); +//// map.put("two", stationNames + warnType + infoType); +//// map.put("three", message); +//// String phoneNumber = person.getPhone(); +//// String jsonParam = JSON.toJSONString(map); +//// R res=smsClient.sendMessage(templateCode,jsonParam,phoneNumber); +//// SmsResponse smsResponse=res.getData(); +//// if (!smsResponse.isSuccess()) { +//// logger.debug("用户{}发送预警短信失败", person.getName()); +//// } +// +// } + + SendMsgInfo info=new SendMsgInfo(); + List persons=Arrays.asList(sendPersons.split(",")); + info.setContent(message); + info.setTitle(stationNames); + info.setTags(new ArrayList<>(persons)); + messagingClient.sendMessage(info,1527461973250625537L); + + HzIrriWarnHistory sendInfo = new HzIrriWarnHistory(); + sendInfo.setWarnType(warnType); + sendInfo.setStationCodes(resp.getStationCodes()); + sendInfo.setReceivers(sendPersons); + sendInfo.setMessage(message); + String level = WarnType.INFO.name() ; + if(StringUtils.equals(Constant.WARN, infoType)) { + level = WarnType.WARN.name(); + }else if(StringUtils.equals(Constant.DANGER, infoType)) { + level = WarnType.DANGER.name(); + } + sendInfo.setIsDeleted(0); + sendInfo.setWarnType(level); + sendInfo.setSendTime(new Date()); + warnHistoryMapper.insert(sendInfo); + + return true; + } + + /** + * 传type进来获取相关类型的站点 + * 1.一次抓取水雨情里所有的站点 + * 2.获取报警配置里的所有站点 + * 3.获取报警配置里所有type类型的站点 + * SS墒情站,PP雨量站,RR水文站 + * + * @param type + * @return + */ + private List listType(String type) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StStbprpB::getSttp,type); +// wrapper.eq(StStbprpB::getCreateDept,deptId); + List codeList =stStbprpBClient.list(wrapper); +// List codeList = stStbprpBService.listResp(new StStbprpBQuery()); + List stationCodes = warnAutoConfigService.listAllStation(); + if (CollectionUtils.isEmpty(stationCodes) || CollectionUtils.isEmpty(codeList)) { + return null; + } + List list = new ArrayList<>(); + for (String code : stationCodes) { + StStbprpB stStbprpB = getType(code, codeList); + if (!Objects.isNull(stStbprpB)) { + list.add(stStbprpB); + } + } + return list; + } + + /** + * 判断当前编码是不是该类型站点 + * 如果是则返回该站点详细信息 + * 否则返回空数据 + * + * @param code + * @param codeList + * @return + */ + private StStbprpB getType(String code, List codeList) { + for (StStbprpB stStbprpB : codeList) { + if (code.equals(stStbprpB.getStcd())) { + return stStbprpB; + } + } + return null; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzIrriEmergencyPlanServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzIrriEmergencyPlanServiceImpl.java new file mode 100644 index 0000000..cd94fbe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzIrriEmergencyPlanServiceImpl.java @@ -0,0 +1,215 @@ +package org.springblade.engineering_management.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.config.Constant; +import org.springblade.engineering_management.entity.HzIrriEmergencyPlan; +import org.springblade.engineering_management.in.EmergencyPlanSearchParam; +import org.springblade.engineering_management.mapper.HzIrriEmergencyPlanMapper; +import org.springblade.engineering_management.resp.EmergencyPlanResp; +import org.springblade.engineering_management.service.IHzIrriEmergencyPlanService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 应急预案服务层 + * 文件上传路径为文件保存地址+模块名称+uuid+文件名 + * + * @Author: liugang + * @Date: 2019/5/23 9:53 + */ +@Service +public class HzIrriEmergencyPlanServiceImpl extends BaseServiceImpl implements IHzIrriEmergencyPlanService { + + private static Logger logger = LoggerFactory.getLogger(HzIrriEmergencyPlanServiceImpl.class); + + /** + * 文件上传地址 + */ + @Value("${file.upload.path}") + private String fileUploadPath; + + @Autowired + private HzIrriEmergencyPlanMapper emergencyPlanMapper; + + @Override + public IPage listResp(EmergencyPlanSearchParam searchParam, IPage pageBounds) { + IPage pageList = emergencyPlanMapper.listRespByCondition(searchParam, pageBounds); + return pageList; + } + + @Override + public EmergencyPlanResp getRespById(Long id) { + return emergencyPlanMapper.selectRespById(id); + } + + /** + * 预案新增,上传文件,写入数据 + * + * @param files 待上传文件 + * @param emergencyPlan 写入的数据 + * @return + * @throws IOException + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(MultipartFile[] files, HzIrriEmergencyPlan emergencyPlan) throws IOException { + //保存路径 + String dirName = UUIDNoSeparation(); + emergencyPlan.setPath(dirName); + File uploadPath = new File(fileUploadPath, Constant.FILE_DIR_NAME); + uploadPath = new File(uploadPath, dirName); + //保存文件 + List fileNameArr = new ArrayList<>(); + if (!Objects.isNull(files)) { + for (MultipartFile file : files) { + saveFile(file, uploadPath); + fileNameArr.add(file.getOriginalFilename()); + } + } + //设置文件名称 + if (!CollectionUtils.isEmpty(fileNameArr)) { + String fileNames = StringUtils.join(fileNameArr, Constant.SEPARATION); + emergencyPlan.setFileNames(fileNames); + } + //保存数据 + emergencyPlan.setUpdateTime(new Date()); + emergencyPlanMapper.insert(emergencyPlan); + return true; + } + + /** + * 编辑预案,删除预案文件,写入预案文件,修改数据 + * + * @param files 待写入文件 + * @param emergencyPlan 待修改数据 + * @return + * @throws IOException + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean edit(String[] delNames, MultipartFile[] files, HzIrriEmergencyPlan emergencyPlan) throws IOException { + //数据库获取数据 + HzIrriEmergencyPlan plan = emergencyPlanMapper.selectById(emergencyPlan.getId()); + String path = plan.getPath(); + if (StringUtils.isEmpty(path)) { + path = UUIDNoSeparation(); + } + String fileNames = plan.getFileNames(); + List fileNameList = new ArrayList<>(); + if (StringUtils.isNotEmpty(fileNames)) { + String[] fileNameArr = fileNames.split(Constant.SEPARATION); + fileNameList = Arrays.stream(fileNameArr).collect(Collectors.toList()); + } + File uploadPath = new File(fileUploadPath, Constant.FILE_DIR_NAME); + uploadPath = new File(uploadPath, path); + //删除预案 + if (!Objects.isNull(delNames)) { + for (String delName : delNames) { + File delFile = new File(uploadPath, delName); + fileNameList.remove(delName); + delFile.delete(); + } + } + //写入新预案 + for (MultipartFile file : files) { + saveFile(file, uploadPath); + if (!fileNameList.contains(file.getOriginalFilename())) { + fileNameList.add(file.getOriginalFilename()); + } + } + //设置文件名称 + if (!CollectionUtils.isEmpty(fileNameList)) { + String addfileNames = StringUtils.join(fileNameList, Constant.SEPARATION); + emergencyPlan.setFileNames(addfileNames); + } + emergencyPlan.setPath(path); + emergencyPlan.setUpdateTime(new Date()); + int count = emergencyPlanMapper.updateById(emergencyPlan); + if (count < 1) { +// throw new HZException(CommonConfig.errorCode, "无该记录,请查证"); + return false; + } + return true; + } + + /** + * 删除预案,同时删除文件夹 + * + * @param id + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delById(Long id) throws IOException { + HzIrriEmergencyPlan plan = emergencyPlanMapper.selectById(id); + String path = plan.getPath(); + File uploadPath = new File(fileUploadPath, Constant.FILE_DIR_NAME); + uploadPath = new File(uploadPath, path); + logger.debug("待删除的路径 : {}", uploadPath.getPath()); + FileUtils.deleteDirectory(uploadPath); + emergencyPlanMapper.deleteById(id); + return true; + } + + /** + * 待下载的文件 + * + * @param id + * @param fileName + * @return + */ + @Override + public File downloadFile(Long id, String fileName) { + HzIrriEmergencyPlan plan = emergencyPlanMapper.selectById(id); + + String fileNames = plan.getFileNames(); + String[] fileNameArr = fileNames.split(Constant.SEPARATION); + List list = Arrays.asList(fileNameArr); + if (!list.contains(fileName)) { +// throw new HZException(CommonConfig.errorCode, "该文件不存在,请查证"); + return null; + } + String path = plan.getPath(); + File uploadPath = new File(fileUploadPath, Constant.FILE_DIR_NAME); + uploadPath = new File(uploadPath, path); + File downFile = new File(uploadPath, fileName); + return downFile; + } + + /** + * 保存文件,如果后期有要求需要处理重名情况 + * + * @param file 待保存的文件 + * @param uploadPath 上传的路径 + * @throws IOException + */ + private void saveFile(MultipartFile file, File uploadPath) throws IOException { + String originalName = file.getOriginalFilename(); + File path = new File(uploadPath, originalName); + FileUtils.copyInputStreamToFile(file.getInputStream(), path); + } + + /** + * 生成uuid不带横杠的 + * + * @return + */ + private String UUIDNoSeparation() { + return UUID.randomUUID().toString().replace("-", ""); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodPersonServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodPersonServiceImpl.java new file mode 100644 index 0000000..3b20e4b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodPersonServiceImpl.java @@ -0,0 +1,26 @@ +package org.springblade.engineering_management.service.impl; + +import org.springblade.engineering_management.mapper.HzReportFloodPersonMapper; +import org.springblade.engineering_management.resp.HzReportFloodPersonResp; +import org.springblade.engineering_management.service.IHzReportFloodPersonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class HzReportFloodPersonServiceImpl implements IHzReportFloodPersonService { + @Autowired + private HzReportFloodPersonMapper floodPersonMapper; + + public HzReportFloodPersonServiceImpl() { + } + + public List getFloodPersonCountList() { + return this.floodPersonMapper.getFloodPersonCountList(); + } + + public List getFloodPersonCountListByArea(String areaLevel) { + return this.floodPersonMapper.getFloodPersonCountListByArea(areaLevel); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodWarnServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodWarnServiceImpl.java new file mode 100644 index 0000000..ae0aa6a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzReportFloodWarnServiceImpl.java @@ -0,0 +1,163 @@ +package org.springblade.engineering_management.service.impl; + +import org.apache.commons.codec.binary.StringUtils; +import org.springblade.engineering_management.mapper.HzReportFloodWarnMapper; +import org.springblade.engineering_management.resp.HzFloodGoodsNameCountResp; +import org.springblade.engineering_management.resp.HzMonitorStationProportionResp; +import org.springblade.engineering_management.resp.HzReportFloodWarnHistoryResp; +import org.springblade.engineering_management.resp.HzReportFloodWarnOrgResp; +import org.springblade.engineering_management.service.IHzReportFloodWarnService; +import org.springblade.engineering_management.util.NearlyThirtyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class HzReportFloodWarnServiceImpl implements IHzReportFloodWarnService { + @Autowired + private HzReportFloodWarnMapper reportFloodWarnMapper; + + public HzReportFloodWarnServiceImpl() { + } + + public Map getFloodWarnDailyByNearlyThirty() { + Map timeSlot = NearlyThirtyUtil.getNearlyNDayTimeSlot(new Integer(30)); + List historys = this.reportFloodWarnMapper.getFloodWarnHistoryList((String)timeSlot.get("startTime"), (String)timeSlot.get("endTime")); + List orgs = this.reportFloodWarnMapper.getFloodWarnOrgList(); + Map resultMap = new HashMap(); + List legends = new ArrayList(); + List xAxiss = NearlyThirtyUtil.getDaysAscendingSortList(new Integer(30)); + resultMap.put("xAxis", xAxiss); + List> countList = new ArrayList(); + List counts = null; + List totalCounts = new ArrayList(); + Iterator var10 = historys.iterator(); + + while(var10.hasNext()) { + HzReportFloodWarnHistoryResp history = (HzReportFloodWarnHistoryResp)var10.next(); + String staCodes = history.getStationCodes(); + String[] staCodeArr = staCodes.split(","); + String[] var14 = staCodeArr; + int var15 = staCodeArr.length; + + for(int var16 = 0; var16 < var15; ++var16) { + String code = var14[var16]; + Iterator var18 = orgs.iterator(); + + while(var18.hasNext()) { + HzReportFloodWarnOrgResp org = (HzReportFloodWarnOrgResp)var18.next(); + if (StringUtils.equals(code, org.getStationCode())) { + int legendIndex = legends.indexOf(org.getOrgName()); + if (legendIndex == -1) { + legends.add(org.getOrgName()); + counts = new ArrayList(Collections.nCopies(xAxiss.size(), new Integer(0))); + countList.add(counts); + totalCounts.add(1); + } else { + counts = (List)countList.get(legendIndex); + totalCounts.set(legendIndex, (Integer)totalCounts.get(legendIndex) + 1); + } + + int dayIndex = NearlyThirtyUtil.getIndexAscendingSortByDay(new Integer(30), history.getSendTime()); + ((List)counts).set(dayIndex, (Integer)((List)counts).get(dayIndex) + 1); + break; + } + } + } + } + + resultMap.put("series", countList); + resultMap.put("legend", legends); + resultMap.put("totalCounts", totalCounts); + return resultMap; + } + + public Map getFloodWarnByNearlyThirty() { + Map timeSlot = NearlyThirtyUtil.getNearlyNDayTimeSlot(new Integer(30)); + List historys = this.reportFloodWarnMapper.getFloodWarnHistoryList((String)timeSlot.get("startTime"), (String)timeSlot.get("endTime")); + List orgs = this.reportFloodWarnMapper.getFloodWarnOrgListOfStbprp(); + Map resultMap = new HashMap(); + List yAxis = new ArrayList(); + List totalCounts = new ArrayList(); + Iterator var7 = historys.iterator(); + + while(var7.hasNext()) { + HzReportFloodWarnHistoryResp history = (HzReportFloodWarnHistoryResp)var7.next(); + String staCodes = history.getStationCodes(); + String[] staCodeArr = staCodes.split(","); + String[] var11 = staCodeArr; + int var12 = staCodeArr.length; + + for(int var13 = 0; var13 < var12; ++var13) { + String code = var11[var13]; + Iterator var15 = orgs.iterator(); + + while(var15.hasNext()) { + HzReportFloodWarnOrgResp org = (HzReportFloodWarnOrgResp)var15.next(); + if (StringUtils.equals(code, org.getStationCode())) { + int legendIndex = yAxis.indexOf(org.getOrgName()); + if (legendIndex == -1) { + yAxis.add(org.getOrgName()); + totalCounts.add(1); + } else { + totalCounts.set(legendIndex, (Integer)totalCounts.get(legendIndex) + 1); + } + break; + } + } + } + } + + resultMap.put("yAxis", yAxis); + resultMap.put("totalCounts", totalCounts); + return resultMap; + } + + public Map getFloodWarnStationProportionByTime(Integer days) { + Map timeSlot = NearlyThirtyUtil.getNearlyNDayTimeSlot(days); + List historys = this.reportFloodWarnMapper.getFloodWarnHistoryListByTime((String)timeSlot.get("startTime"), (String)timeSlot.get("endTime")); + Integer stationCount = this.reportFloodWarnMapper.getStationCount(); + Map resultMap = new HashMap(); + List warnStations = new ArrayList(); + Iterator var7 = historys.iterator(); + + while(var7.hasNext()) { + HzReportFloodWarnHistoryResp history = (HzReportFloodWarnHistoryResp)var7.next(); + String staCodes = history.getStationCodes(); + String[] staCodeArr = staCodes.split(","); + String[] var11 = staCodeArr; + int var12 = staCodeArr.length; + + for(int var13 = 0; var13 < var12; ++var13) { + String code = var11[var13]; + int legendIndex = warnStations.indexOf(code); + if (legendIndex == -1) { + warnStations.add(code); + } + } + } + + int warnCounts = warnStations.size(); + int unwarnCounts = stationCount - warnCounts; + resultMap.put("warnCounts", warnCounts); + resultMap.put("unwarnCounts", unwarnCounts); + resultMap.put("totalCounts", stationCount); + return resultMap; + } + + public List getMonitorStationProportion() { + return this.reportFloodWarnMapper.getStationProportion(); + } + + public Map getFloodGoodsNameCounts(String goodsType, String enableTimeType) { + Map resultMap = new HashMap(); + List countList = this.reportFloodWarnMapper.getFloodGoodsNameCounts(goodsType, enableTimeType); + resultMap.put("xAxis", countList.stream().map(HzFloodGoodsNameCountResp::getName).collect(Collectors.toList())); + resultMap.put("nameCount", countList.stream().map(HzFloodGoodsNameCountResp::getGoodsNameCount).collect(Collectors.toList())); + resultMap.put("goodsSum", countList.stream().map(HzFloodGoodsNameCountResp::getGoodsSum).collect(Collectors.toList())); + return resultMap; + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzSummaryFloodWarnServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzSummaryFloodWarnServiceImpl.java new file mode 100644 index 0000000..5612c6a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzSummaryFloodWarnServiceImpl.java @@ -0,0 +1,48 @@ +package org.springblade.engineering_management.service.impl; + +import org.apache.commons.codec.binary.StringUtils; +import org.springblade.engineering_management.mapper.HzSummaryFloodWarnMapper; +import org.springblade.engineering_management.resp.HzFloodWarnHistoryResp; +import org.springblade.engineering_management.service.IHzSummaryFloodWarnService; +import org.springblade.engineering_management.util.NearlyThirtyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +@Service +public class HzSummaryFloodWarnServiceImpl implements IHzSummaryFloodWarnService { + + @Autowired + private HzSummaryFloodWarnMapper summaryFloodWarnMapper; + + public Map getFloodWarnStationCountsByTime(Integer nearlyDay) { + Map timeSlot = NearlyThirtyUtil.getNearlyNDayTimeSlot(nearlyDay); + List historys = this.summaryFloodWarnMapper.getFloodWarnHistoryListByTime((String)timeSlot.get("startTime"), (String)timeSlot.get("endTime")); + Integer stationCount = this.summaryFloodWarnMapper.getStationCount(); + Map resultMap = new HashMap(); + int warnCounts = 0; + int dangerCounts = 0; + Iterator var8 = historys.iterator(); + + while(var8.hasNext()) { + HzFloodWarnHistoryResp history = (HzFloodWarnHistoryResp)var8.next(); + String staCodes = history.getStationCodes(); + String[] staCodeArr = staCodes.split(","); + if (StringUtils.equals("WARN", history.getWarnType())) { + warnCounts += staCodeArr.length; + } else if (StringUtils.equals("DANGER", history.getWarnType())) { + warnCounts += staCodeArr.length; + dangerCounts += staCodeArr.length; + } + } + + resultMap.put("warnCounts", warnCounts); + resultMap.put("dangerCounts", dangerCounts); + resultMap.put("stationCounts", stationCount); + return resultMap; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnAutoConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnAutoConfigServiceImpl.java new file mode 100644 index 0000000..737f3ee --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnAutoConfigServiceImpl.java @@ -0,0 +1,144 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.config.Constant; +import org.springblade.engineering_management.mapper.HzIrriWarnAutoConfigMapper; +import org.springblade.engineering_management.mapper.HzWarnPersonMapper; +import org.springblade.engineering_management.entity.HzIrriWarnAutoConfig; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnAutoConfigResp; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.engineering_management.service.IHzWarnAutoConfigService; +import org.springblade.water_rain_monitor.entity.StStbprpB; +import org.springblade.water_rain_monitor.feign.IStStbprpBClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/29 17:23 + */ +@Service +public class HzWarnAutoConfigServiceImpl extends BaseServiceImpl implements IHzWarnAutoConfigService { + + private static Logger logger = LoggerFactory.getLogger(HzWarnAutoConfigServiceImpl.class); + + @Autowired + private HzIrriWarnAutoConfigMapper warnAutoConfigMapper; + @Autowired + private IStStbprpBClient stStbprpBClient; + @Autowired + private HzWarnPersonMapper warnPersonMapper; + + @Override + public IPage listResp(WarnMSGSearchParam searchParam, IPage page) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnAutoConfigMapper.listRespByCondition(searchParam, page); + toRespList(pageList.getRecords()); + logger.debug("预警自动配置列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnAutoConfigResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnAutoConfigResp resp = warnAutoConfigMapper.selectRespById(id); + toResp(resp); + logger.debug("预警自动配置 : {}", JSON.toJSONString(resp)); + return resp; + } + + /** + * 列举预警配置里所有配置了预警的站点 + * + * @return + */ + @Override + public List listAllStation() { + List stationCodes = warnAutoConfigMapper.listAllStation(); + logger.debug("站点分隔列表 : {}", JSON.toJSONString(stationCodes)); + if (CollectionUtils.isEmpty(stationCodes)) { + return null; + } + List list = new ArrayList<>(); + for (String stationCode : stationCodes) { + String[] codeArr = stationCode.split(Constant.SEPARATION); + for (String code : codeArr) { + if (!list.contains(code)) { + list.add(code); + } + } + } + logger.debug("站点列表 : {}", JSON.toJSONString(list)); + return list; + } + + @Override + public List listConfigByCode(String stationCode) { + List respList = warnAutoConfigMapper.listConfigByCode(stationCode); + toRespList(respList); + return respList; + } + + private void toRespList(List respList) { + if (CollectionUtils.isEmpty(respList)) { + return; + } + for (HzIrriWarnAutoConfigResp resp : respList) { + toResp(resp); + } + } + + private void toResp(HzIrriWarnAutoConfigResp resp) { + String stationCodes = resp.getStationCodes(); + String sendPersons = resp.getSendPersons(); + String[] codeArr = stationCodes.split(Constant.SEPARATION); + String[] personArr = sendPersons.split(Constant.SEPARATION); + resp.setStationNames(getStationNames(codeArr)); + resp.setReceiverNames(getReceiverNames(personArr)); + } + + private String getStationNames(String[] codeArr) { + if (ArrayUtils.isEmpty(codeArr)) { + return null; + } + List nameList = new ArrayList<>(codeArr.length); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + for (String code : codeArr) { + wrapper.eq(StStbprpB::getStcd,code); + StStbprpB stStbprpB=stStbprpBClient.detail(wrapper); +// StStbprpBResp stStbprpB = stStbprpBService.getRespById(code); + if (!Objects.isNull(stStbprpB)) { + nameList.add(stStbprpB.getStnm()); + } + } + return StringUtils.join(nameList, Constant.SEPARATION); + } + + private String getReceiverNames(String[] personArr) { + if (ArrayUtils.isEmpty(personArr)) { + return null; + } + List nameList = new ArrayList<>(personArr.length); + for (String person : personArr) { + HzIrriWarnPerson warnPerson = warnPersonMapper.selectById(Long.valueOf(person)); + if (!Objects.isNull(warnPerson)) { + nameList.add(warnPerson.getName()); + } + } + return StringUtils.join(nameList, Constant.SEPARATION); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnFlowServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnFlowServiceImpl.java new file mode 100644 index 0000000..bf120e8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnFlowServiceImpl.java @@ -0,0 +1,43 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.entity.HzIrriWarnFlow; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.mapper.HzWarnFlowMapper; +import org.springblade.engineering_management.resp.HzIrriWarnFlowResp; +import org.springblade.engineering_management.service.IHzWarnFlowService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class HzWarnFlowServiceImpl extends BaseServiceImpl implements IHzWarnFlowService { + private static Logger logger = LoggerFactory.getLogger(HzWarnFlowServiceImpl.class); + + @Autowired + private HzWarnFlowMapper warnFlowMapper; + + @Override + public IPage listResp(StationSearchParam searchParam, IPage page) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnFlowMapper.listRespByCondition(searchParam, page); + logger.debug("流量预警列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnFlowResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnFlowResp resp = warnFlowMapper.selectRespById(id); + logger.debug("流量预警 : {}", JSON.toJSONString(resp)); + return resp; + } + + @Override + public HzIrriWarnFlow selectByCode(String code) { + return warnFlowMapper.selectByCode(code); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnGoodsServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnGoodsServiceImpl.java new file mode 100644 index 0000000..7ab36a0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnGoodsServiceImpl.java @@ -0,0 +1,39 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.entity.HzIrriWarnGoods; +import org.springblade.engineering_management.in.WarnGoodsSearchParam; +import org.springblade.engineering_management.mapper.HzWarnGoodsMapper; +import org.springblade.engineering_management.resp.HzIrriWarnGoodsResp; +import org.springblade.engineering_management.service.IHzWarnGoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class HzWarnGoodsServiceImpl extends BaseServiceImpl implements IHzWarnGoodsService { + private static Logger logger = LoggerFactory.getLogger(HzWarnGoodsServiceImpl.class); + + @Autowired + private HzWarnGoodsMapper warnGoodsMapper; + + + @Override + public IPage listResp(WarnGoodsSearchParam searchParam, IPage page) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnGoodsMapper.listRespByCondition(searchParam, page); + logger.debug("防汛物资列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnGoodsResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnGoodsResp resp = warnGoodsMapper.selectRespById(id); + logger.debug("防汛物资 : {}", JSON.toJSONString(resp)); + return resp; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnLineServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnLineServiceImpl.java new file mode 100644 index 0000000..b3acee0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnLineServiceImpl.java @@ -0,0 +1,44 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.entity.HzIrriWarnLine; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.mapper.HzWarnLineMapper; +import org.springblade.engineering_management.resp.HzIrriWarnLineResp; +import org.springblade.engineering_management.service.IHzWarnLineService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class HzWarnLineServiceImpl extends BaseServiceImpl implements IHzWarnLineService { + + private static Logger logger = LoggerFactory.getLogger(HzWarnLineServiceImpl.class); + + @Autowired + private HzWarnLineMapper warnLineMapper; + + public IPage listResp(StationSearchParam searchParam, IPage pageBounds) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnLineMapper.listRespByCondition(searchParam, pageBounds); + logger.debug("水位预警列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Transactional(rollbackFor = Exception.class) + public HzIrriWarnLineResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnLineResp resp = warnLineMapper.selectRespById(id); + logger.debug("水位预警 : {}", JSON.toJSONString(resp)); + return resp; + } + + @Override + public HzIrriWarnLine selectByCode(String code) { + return warnLineMapper.selectByCode(code); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnMoistureServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnMoistureServiceImpl.java new file mode 100644 index 0000000..26b1c50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnMoistureServiceImpl.java @@ -0,0 +1,43 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.entity.HzIrriWarnMoisture; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.mapper.HzIrriWarnMoistureMapper; +import org.springblade.engineering_management.resp.HzIrriWarnMoistureResp; +import org.springblade.engineering_management.service.IHzWarnMoistureService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class HzWarnMoistureServiceImpl extends BaseServiceImpl implements IHzWarnMoistureService { + private static Logger logger = LoggerFactory.getLogger(HzWarnMoistureServiceImpl.class); + + @Autowired + private HzIrriWarnMoistureMapper warnMoistureMapper; + + @Override + public IPage listResp(StationSearchParam searchParam, IPage pageBounds) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnMoistureMapper.listRespByCondition(searchParam, pageBounds); + logger.debug("墒情预警列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnMoistureResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnMoistureResp resp = warnMoistureMapper.selectRespById(id); + logger.debug("墒情预警 : {}", JSON.toJSONString(resp)); + return resp; + } + + @Override + public HzIrriWarnMoisture selectByCode(String code) { + return warnMoistureMapper.selectByCode(code); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnPersonServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnPersonServiceImpl.java new file mode 100644 index 0000000..4e3482e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnPersonServiceImpl.java @@ -0,0 +1,65 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.config.Constant; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnPersonSearchParam; +import org.springblade.engineering_management.mapper.HzWarnPersonMapper; +import org.springblade.engineering_management.resp.HzIrriWarnPersonResp; +import org.springblade.engineering_management.service.IHzWarnPersonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@Service +public class HzWarnPersonServiceImpl extends BaseServiceImpl implements IHzWarnPersonService { + private static Logger logger = LoggerFactory.getLogger(HzWarnPersonServiceImpl.class); + + @Autowired + private HzWarnPersonMapper warnPersonMapper; + + @Override + public IPage listResp(WarnPersonSearchParam searchParam, IPage page) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnPersonMapper.listRespByCondition(searchParam, page); + logger.debug("防汛人员列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnPersonResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnPersonResp resp = warnPersonMapper.selectRespById(id); + logger.debug("防汛人员 : {}", JSON.toJSONString(resp)); + return resp; + } + + @Override + public List listPersonByIds(String sendPersons) { + if (StringUtils.isEmpty(sendPersons)) { + return null; + } + String[] personArr = sendPersons.split(Constant.SEPARATION); + if (ArrayUtils.isEmpty(personArr)) { + return null; + } + List list = new ArrayList<>(); + for (String personId : personArr) { + Long id = Long.valueOf(personId); + HzIrriWarnPerson person = warnPersonMapper.selectById(id); + if (!Objects.isNull(person)) { + list.add(person); + } + } + return list; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnRainServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnRainServiceImpl.java new file mode 100644 index 0000000..c1ec63f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/HzWarnRainServiceImpl.java @@ -0,0 +1,43 @@ +package org.springblade.engineering_management.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.engineering_management.entity.HzIrriWarnRain; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.mapper.HzWarnRainMapper; +import org.springblade.engineering_management.resp.HzIrriWarnRainResp; +import org.springblade.engineering_management.service.IHzWarnRainService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class HzWarnRainServiceImpl extends BaseServiceImpl implements IHzWarnRainService { + private static Logger logger = LoggerFactory.getLogger(HzWarnRainServiceImpl.class); + + @Autowired + private HzWarnRainMapper warnRainMapper; + + @Override + public IPage listResp(StationSearchParam searchParam, IPage pageBounds) { + logger.debug("searchParam : {}", JSON.toJSONString(searchParam)); + IPage pageList = warnRainMapper.listRespByCondition(searchParam, pageBounds); + logger.debug("雨量预警列表 : {}", JSON.toJSONString(pageList)); + return pageList; + } + + @Override + public HzIrriWarnRainResp getRespById(Long id) { + logger.debug("id : {}", id); + HzIrriWarnRainResp resp = warnRainMapper.selectRespById(id); + logger.debug("雨量预警 : {}", JSON.toJSONString(resp)); + return resp; + } + + @Override + public HzIrriWarnRain selectByCode(String code) { + return warnRainMapper.selectByCode(code); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/MonitorFloodServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/MonitorFloodServiceImpl.java new file mode 100644 index 0000000..2dc8f08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/service/impl/MonitorFloodServiceImpl.java @@ -0,0 +1,69 @@ +package org.springblade.engineering_management.service.impl; + +import org.apache.commons.codec.binary.StringUtils; +import org.springblade.engineering_management.mapper.HzSummaryFloodWarnMapper; +import org.springblade.engineering_management.resp.HzFloodWarnHistoryResp; +import org.springblade.engineering_management.resp.HzMonitorStationProportionResp; +import org.springblade.engineering_management.resp.HzReportFloodPersonResp; +import org.springblade.engineering_management.service.IHzReportFloodPersonService; +import org.springblade.engineering_management.service.IHzReportFloodWarnService; +import org.springblade.engineering_management.service.IHzSummaryFloodWarnService; +import org.springblade.engineering_management.service.IMonitorFloodService; +import org.springblade.engineering_management.util.NearlyThirtyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +@Service +public class MonitorFloodServiceImpl implements IMonitorFloodService { + + @Autowired + IHzSummaryFloodWarnService summaryFloodWarnService; + + @Autowired + IHzReportFloodWarnService reportFloodWarnService; + + @Autowired + IHzReportFloodPersonService reportFloodPersonService; + + /** + * 获取 防汛预警Tab数据 + * @param nearlyDay 近多少天,-2表示今年,-1表示上个月,0表示当月,1-N表示近多少天 + * @param goodsType 物资类型(公用物资..,参数不传则查询所有类型,eg:公用物资) + * @param goodsEnableTimeType 物资使用时间类型(expired:已过期,unexpired:未过期,参数不传则查询所有记录,eg:unexpired) + * @return + */ + public Map getFloodWarnData(Integer nearlyDay, String goodsType, String goodsEnableTimeType){ + Map resultMap = new HashMap(); + // 站点、预警、危险 统计 + Map stationAndWarnAndDangerMap = summaryFloodWarnService.getFloodWarnStationCountsByTime(nearlyDay) ; + resultMap.put("stationAndWarnAndDangerMap",stationAndWarnAndDangerMap) ; + // 近30天预警次数排名 + Map WarnNearlyThirtyMap = reportFloodWarnService.getFloodWarnByNearlyThirty() ; + resultMap.put("WarnNearlyThirtyMap",WarnNearlyThirtyMap) ; + // 防汛人员数量 + // 只查2级机构 + List floodPersonCountList = reportFloodPersonService.getFloodPersonCountListByArea("2") ; + resultMap.put("floodPersonCountList",floodPersonCountList) ; + // 防汛人员分布 + List floodPersonDistributionList = reportFloodPersonService.getFloodPersonCountList() ; + resultMap.put("floodPersonDistributionList",floodPersonDistributionList) ; + // 最新预警消息列表 (此接口单独拎出来 需要实时刷新) + // 30天预警趋势 + Map earlyWarningNearlyThirtyMap = reportFloodWarnService.getFloodWarnDailyByNearlyThirty() ; + resultMap.put("earlyWarningNearlyThirtyMap",earlyWarningNearlyThirtyMap) ; + // 防汛物资数量 + Map floodGoodsNameCountsMap = reportFloodWarnService.getFloodGoodsNameCounts(goodsType, goodsEnableTimeType) ; + resultMap.put("floodGoodsNameCountsMap",floodGoodsNameCountsMap) ; + // 监测站点占比 + List monitorStationList = reportFloodWarnService.getMonitorStationProportion() ; + resultMap.put("monitorStationList",monitorStationList) ; + + return resultMap ; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/CheckFileUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/CheckFileUtil.java new file mode 100644 index 0000000..bdffe6d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/CheckFileUtil.java @@ -0,0 +1,27 @@ +package org.springblade.engineering_management.util; + +import org.apache.commons.io.FilenameUtils; +import org.springframework.web.multipart.MultipartFile; + +public class CheckFileUtil { + public static boolean check(MultipartFile[] files,String enableSuffixs){ + for (MultipartFile file : files) { + String originalName = file.getOriginalFilename(); + String suffix = FilenameUtils.getExtension(originalName); + if (!allowUpload(suffix,enableSuffixs)) { + return false; + } + } + return true; + } + + private static boolean allowUpload(String suffix,String enableSuffixs) { + String[] suffixArr = enableSuffixs.split(","); + for (String item : suffixArr) { + if (item.equals(suffix)) { + return true; + } + } + return false; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/NearlyThirtyUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/NearlyThirtyUtil.java new file mode 100644 index 0000000..18530e5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/util/NearlyThirtyUtil.java @@ -0,0 +1,172 @@ +package org.springblade.engineering_management.util; + + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.springframework.expression.ParseException; + +public class NearlyThirtyUtil { + public NearlyThirtyUtil() { + } + + public static List getNearlyNDaySortList(Integer nearlyDay) { + List resultList = new ArrayList(); + if (nearlyDay == null) { + return resultList; + } else { + SimpleDateFormat sdf = new SimpleDateFormat("d"); + String minDateStr = ""; + Calendar calc = Calendar.getInstance(); + Date currDate = new Date(); + if (nearlyDay == 0) { + calc.setTime(currDate); + nearlyDay = calc.get(5); + } else if (nearlyDay == -1) { + calc.setTime(currDate); + calc.add(2, -1); + nearlyDay = calc.getActualMaximum(5); + calc.set(5, calc.getActualMaximum(5)); + currDate = calc.getTime(); + } + + try { + for(int i = 0; i < nearlyDay; ++i) { + calc.setTime(currDate); + calc.add(5, -i); + Date minDate = calc.getTime(); + minDateStr = sdf.format(minDate); + resultList.add(new Integer(minDateStr)); + } + } catch (ParseException var8) { + var8.printStackTrace(); + } + + return resultList; + } + } + + public static List getDaysAscendingSortList(Integer day) { + List resultList = new ArrayList(); + if (day == null) { + return resultList; + } else { + Calendar calc = Calendar.getInstance(); + Date currDate = new Date(); + calc.setTime(currDate); + int i; + if (day != -1 && day != 0) { + calc.add(5, -(day - 1)); + + for(i = 1; i <= day; ++i) { + int startDay = calc.get(5); + resultList.add(startDay); + calc.add(5, 1); + } + } else { + if (day == 0) { + day = calc.get(5); + } else if (day == -1) { + calc.add(2, -1); + day = calc.getActualMaximum(5); + } + + for(i = 1; i <= day; ++i) { + resultList.add(i); + } + } + + return resultList; + } + } + + public static int getIndexByDay(Integer nearlyDay, Integer day) { + int index = -1; + if (nearlyDay == null) { + return index; + } else { + Calendar calc = Calendar.getInstance(); + Date currDate = new Date(); + if (nearlyDay == -1) { + calc.setTime(currDate); + calc.add(2, -1); + nearlyDay = calc.getActualMaximum(5); + calc.set(5, calc.getActualMaximum(5)); + currDate = calc.getTime(); + } + + calc.setTime(currDate); + int currentDay = calc.get(5); + + if (day <= currentDay) { + index = currentDay - day; + } else { + calc.add(2, -1); + int maxDay = calc.getActualMaximum(5); + index = currentDay - (day - maxDay); + } + + return index; + } + } + + public static int getIndexAscendingSortByDay(Integer nearlyDay, Integer day) { + int index = -1; + if (nearlyDay == null) { + return index; + } else { + Calendar calc = Calendar.getInstance(); + calc.setTime(new Date()); + calc.add(5, -(nearlyDay - 1)); + int startDay = calc.get(5); + + if (day >= startDay) { + index = day - startDay; + } else { + int maxDay = calc.getActualMaximum(5); + index = maxDay + day - startDay; + } + + return index; + } + } + + public static Map getNearlyNDayTimeSlot(Integer nearlyDay) { + Map resultMap = new HashMap(); + if (nearlyDay == null) { + return resultMap; + } else { + String startTime = ""; + String endTime = ""; + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar ca = Calendar.getInstance(); + Date currDate = new Date(); + if (nearlyDay == 0) { + ca.setTime(currDate); + nearlyDay = ca.get(5); + } else if (nearlyDay == -1) { + ca.setTime(currDate); + ca.add(2, -1); + ca.set(5, ca.getActualMaximum(5)); + currDate = ca.getTime(); + nearlyDay = ca.getActualMaximum(5); + } else if (nearlyDay == -2) { + ca.setTime(currDate); + nearlyDay = ca.get(6); + } + + ca.setTime(currDate); + endTime = format.format(ca.getTime()) + " 23:59:59"; + ca.add(5, -nearlyDay); + startTime = format.format(ca.getTime()) + " 23:59:59"; + System.out.println("开始日期:" + startTime); + resultMap.put("startTime", startTime); + resultMap.put("endTime", endTime); + return resultMap; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriEmergencyPlanController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriEmergencyPlanController.java new file mode 100644 index 0000000..979dd08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriEmergencyPlanController.java @@ -0,0 +1,159 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 org.springblade.engineer_management.util.DownLoadUtil; +import org.springblade.engineering_management.entity.HzIrriEmergencyPlan; +import org.springblade.engineering_management.in.EmergencyPlanSearchParam; +import org.springblade.engineering_management.resp.EmergencyPlanResp; +import org.springblade.engineering_management.service.IHzIrriEmergencyPlanService; +import org.springblade.engineering_management.util.CheckFileUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.Date; +import java.util.Objects; + +/** + * 应急预案控制层 + * 主要提供应急预案方案的描述和文档的上传下载 + * + * @Author: liugang + * @Date: 2019/5/23 9:08 + */ +@Api(tags = "预警防汛-预案管理") +@RestController +@RequestMapping("/emergencyPlan") +public class HzIrriEmergencyPlanController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriEmergencyPlanController.class); + + /** + * 文件上传支持后缀 + */ + @Value("${emergency.plan.enable.suffix}") + private String enableSuffixs; + + @Autowired + private IHzIrriEmergencyPlanService emergencyPlanService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取预案管理列表") + public R listResp(EmergencyPlanSearchParam searchParam, Query query) { + searchParam.setDeptId(AuthUtil.getDeptId()); + IPage respList = emergencyPlanService.listResp(searchParam, Condition.getPage(query)); + return R.data(respList,"获取预案管理列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取预案") + public R getRespById(@RequestParam Long id) { + EmergencyPlanResp resp = emergencyPlanService.getRespById(id); + return R.data(resp); + } + + @PostMapping("/add") + @ApiOperation("新增预案管理") + public R add( + @ApiParam("预案文档,仅限word,pdf") MultipartFile[] files, + @ApiParam("预案名称") @RequestParam String name, + @ApiParam("预案级别") @RequestParam String level, + @ApiParam("预案内容") String remark) { + if (!Objects.isNull(files)) { + if (!CheckFileUtil.check(files, enableSuffixs)) { + return R.data(500,false, "仅接受如下文档格式 : " + enableSuffixs); + } + } + HzIrriEmergencyPlan emergencyPlan = new HzIrriEmergencyPlan(); + emergencyPlan.setName(name); + emergencyPlan.setLevel(level); + emergencyPlan.setRemark(remark); + emergencyPlan.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + emergencyPlan.setCreateTime(new Date()); + emergencyPlan.setCreateUser(AuthUtil.getUserId()); + emergencyPlan.setIsDeleted(0); + emergencyPlan.setUpdateUser(AuthUtil.getUserId()); + logger.debug(emergencyPlan.toString()); + boolean result = false; + try { + result = emergencyPlanService.add(files, emergencyPlan); + logger.info("新增预案成功"); + } catch (Exception e) { + logger.info("新增预案失败 : ", e); + return R.data(500,false, "新增预案失败"); + } + return R.data(result, "新增预案成功"); + } + + @PostMapping("/edit") + @ApiOperation("编辑预案管理") + public R edit( + @ApiParam("待删除文件") String[] delNames, + @ApiParam("新增文档,仅限word,pdf") MultipartFile[] files, + @ApiParam("预案名称") @RequestParam Long id, + @ApiParam("预案名称") @RequestParam String name, + @ApiParam("预案级别") @RequestParam String level, + @ApiParam("预案内容") String remark) { + if (!Objects.isNull(files)) { + if (!CheckFileUtil.check(files, enableSuffixs)) { + return R.data(500,false, "仅接受如下文档格式 : " + enableSuffixs); + } + } + HzIrriEmergencyPlan emergencyPlan = new HzIrriEmergencyPlan(); + emergencyPlan.setId(id); + emergencyPlan.setName(name); + emergencyPlan.setLevel(level); + emergencyPlan.setRemark(remark); + emergencyPlan.setUpdateTime(new Date()); + emergencyPlan.setUpdateUser(AuthUtil.getUserId()); + logger.debug(emergencyPlan.toString()); + boolean result = false; + try { + result = emergencyPlanService.edit(delNames, files, emergencyPlan); + logger.info("编辑预案成功"); + } catch (Exception e) { + logger.info("编辑预案失败 : ", e); + return R.data(500,result, "编辑预案失败"); + } + return R.data(result,"编辑预案成功"); + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除预案") + public R delById(@RequestParam Long id) { + boolean result = false; + try { + result = emergencyPlanService.delById(id); + logger.info("删除预案成功"); + } catch (IOException e) { + logger.info("删除预案失败 : ", e); + return R.data(500,result,"删除预案失败"); + } + return R.data( result,"删除预案成功"); + } + + @GetMapping("/downloadFile") + @ApiOperation("下载文件") + public ResponseEntity downloadFile( + @ApiParam("预案id") @RequestParam Long id, + @ApiParam("文件名称") @RequestParam String fileName) throws IOException { + File downFile = emergencyPlanService.downloadFile(id, fileName); + return DownLoadUtil.downLoad(downFile); + } + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnAutoConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnAutoConfigController.java new file mode 100644 index 0000000..154ce0a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnAutoConfigController.java @@ -0,0 +1,81 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnAutoConfig; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnAutoConfigResp; +import org.springblade.engineering_management.service.IHzWarnAutoConfigService; +import org.springblade.engineering_management.service.impl.HzWarnAutoConfigServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/29 17:19 + */ +@Api(tags = "预警防汛-自动预警配置") +@RestController +@RequestMapping("/warn/autoConfig") +public class HzIrriWarnAutoConfigController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnAutoConfigController.class); + + @Autowired + private IHzWarnAutoConfigService warnAutoConfigService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取预警自动配置列表") + public R listResp(WarnMSGSearchParam searchParam, Query query) { + IPage respList = warnAutoConfigService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取预警自动配置列表成功"); + return R.data(respList,"获取预警自动配置列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取预警自动配置") + public R getRespById(@RequestParam Long id) { + HzIrriWarnAutoConfigResp resp = warnAutoConfigService.getRespById(id); + logger.info("查询预警自动配置成功"); + return R.data(resp,"查询预警自动配置成功"); + } + + @PostMapping("/save") + @ApiOperation("保存预警自动配置,有id编辑,无id新增") + public R add(HzIrriWarnAutoConfig autoConfig) { + boolean result; + if (Objects.isNull(autoConfig.getId())) { + result = warnAutoConfigService.save(autoConfig); + logger.info("添加预警自动配置成功"); + } else { + result = warnAutoConfigService.updateById(autoConfig); + logger.info("修改预警自动配置成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500, false, "保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除预警自动配置") + public R delById(@RequestParam Long id) { + boolean result = warnAutoConfigService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnFlowController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnFlowController.java new file mode 100644 index 0000000..7e5ce9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnFlowController.java @@ -0,0 +1,84 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnFlow; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnFlowResp; +import org.springblade.engineering_management.service.IHzWarnFlowService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/28 14:07 + */ +@Api(tags = "预警防汛-流量站") +@RestController +@RequestMapping("/warn/flow") +public class HzIrriWarnFlowController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnFlowController.class); + + @Autowired + private IHzWarnFlowService warnFlowService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取流量预警列表") + public R listResp(StationSearchParam searchParam, Query query) { + IPage respList = warnFlowService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取流量预警列表成功"); + return R.data(respList,"获取流量预警列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取流量预警") + public R getRespById(@RequestParam Long id) { + HzIrriWarnFlowResp resp = warnFlowService.getRespById(id); + logger.info("查询流量预警成功"); + return R.data(resp,"查询流量预警成功"); + } + + @PostMapping("/save") + @ApiOperation("保存流量预警,有id编辑,无id新增") + public R add(HzIrriWarnFlow flow) { + boolean result = false; + if (Objects.isNull(flow.getId())) { + HzIrriWarnFlow exsit = warnFlowService.selectByCode(flow.getStationCode()); + if (!Objects.isNull(exsit)) { + return R.data(500, false, "该站点已有预警设置"); + } + result = warnFlowService.save(flow); + logger.info("添加流量预警成功"); + } else { + result = warnFlowService.updateById(flow); + logger.info("修改流量预警成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500, false, "保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除流量预警") + public R delById(@RequestParam Long id) { + boolean result = warnFlowService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnGoodsController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnGoodsController.java new file mode 100644 index 0000000..01499e1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnGoodsController.java @@ -0,0 +1,80 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnGoods; +import org.springblade.engineering_management.in.WarnGoodsSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnGoodsResp; +import org.springblade.engineering_management.service.IHzWarnGoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/24 16:25 + */ +@Api(tags = "预警防汛-防汛物资") +@RestController +@RequestMapping("/warn/goods") +public class HzIrriWarnGoodsController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnGoodsController.class); + + @Autowired + private IHzWarnGoodsService warnGoodsService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取防汛物资列表") + public R listResp(WarnGoodsSearchParam searchParam, Query query) { + IPage respList = warnGoodsService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取防汛物资列表成功"); + return R.data(respList,"获取防汛物资列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取防汛物资") + public R getRespById(@RequestParam Long id) { + HzIrriWarnGoodsResp resp = warnGoodsService.getRespById(id); + logger.info("查询防汛物资成功"); + return R.data(resp,"查询防汛物资成功"); + } + + @PostMapping("/save") + @ApiOperation("保存防汛物资,有id编辑,无id新增") + public R add(@RequestBody HzIrriWarnGoods goods) { + boolean result = false; + if (Objects.isNull(goods.getId())) { + result = warnGoodsService.save(goods); + logger.info("添加防汛物资成功"); + } else { + result = warnGoodsService.updateById(goods); + logger.info("修改防汛物资成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500, false, "保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除防汛物资") + public R delById(@RequestParam Long id) { + boolean result = warnGoodsService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnHistoryController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnHistoryController.java new file mode 100644 index 0000000..b4a6839 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnHistoryController.java @@ -0,0 +1,94 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 org.springblade.engineering_management.entity.HzIrriWarnHistory; +import org.springblade.engineering_management.in.WarnMSGSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnHistoryResp; +import org.springblade.engineering_management.service.HzIrriWarnHistoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; +import java.util.Optional; + +/** + * @Author: liugang + * @Date: 2019/5/29 17:30 + */ +@Api(tags = "预警防汛-预警发布") +@RestController +@RequestMapping("/warn/history") +public class HzIrriWarnHistoryController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnHistoryController.class); + + @Autowired + private HzIrriWarnHistoryService warnHistoryService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取预警发布列表") + public R listResp(WarnMSGSearchParam searchParam, Query query) { + IPage respList = warnHistoryService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取预警发布列表成功"); + return R.data(respList,"获取预警发布列表成功"); + } + + @PostMapping("/sendWarn") + @ApiOperation("新增并发送预警信息") + public R sendWarn(HzIrriWarnHistory sendInfo) { + sendInfo.setCreateTime(new Date()); + sendInfo.setCreateUser(AuthUtil.getUserId()); + sendInfo.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + sendInfo.setIsDeleted(0); + List sendResult = warnHistoryService.sendWarn(sendInfo,AuthUtil.getUserId()); + logger.info("发送预警信息成功"); + return R.data(sendResult,"发送预警信息成功"); + } + + @PostMapping("/temoraryStore") + @ApiOperation("暂存") + public R temporaryStore(HzIrriWarnHistory sendInfo) { + sendInfo.setCreateTime(new Date()); + sendInfo.setCreateUser(AuthUtil.getUserId()); + sendInfo.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + sendInfo.setIsDeleted(0); + return R.data( warnHistoryService.temporaryStore(sendInfo),"暂存成功"); + } + + @PostMapping("/send/{id}") + @ApiOperation("发送暂存信息") + public R send(@PathVariable Long id) { + return R.data( warnHistoryService.send(id,AuthUtil.getUserId()),"发送成功"); + } + + @ApiOperation("删除暂存信息") + @DeleteMapping("/delete/{id}") + public R delete(@PathVariable Long id) { + boolean result = warnHistoryService.deleteById(id); + if (result) { + return R.data(result,"删除暂存信息"); + } + return R.data(500,result, "消息不存在或者已发送"); + } + + @PostMapping("/update") + @ApiOperation("修改暂存警告信息") + public R update(HzIrriWarnHistory sendInfo) { + sendInfo.setUpdateTime(new Date()); + sendInfo.setUpdateUser(AuthUtil.getUserId()); + Optional result = warnHistoryService.update(sendInfo); + if (result.isPresent()) { + return R.data(result.get(),"修改暂存警告信息"); + } + return R.data(500,false, "只能修改暂存未发送的告警信息"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnLineController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnLineController.java new file mode 100644 index 0000000..ef55e87 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnLineController.java @@ -0,0 +1,84 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnLine; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnLineResp; +import org.springblade.engineering_management.service.IHzWarnLineService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/28 14:07 + */ +@Api(tags = "预警防汛-水位站") +@RestController +@RequestMapping("/warn/line") +public class HzIrriWarnLineController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnLineController.class); + + @Autowired + private IHzWarnLineService warnLineService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取水位预警列表") + public R listResp(StationSearchParam searchParam, Query query) { + IPage respList = warnLineService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取水位预警列表成功"); + return R.data(respList,"获取水位预警列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取水位预警") + public R getRespById(@RequestParam Long id) { + HzIrriWarnLineResp resp = warnLineService.getRespById(id); + logger.info("查询水位预警成功"); + return R.data(resp,"查询水位预警成功"); + } + + @PostMapping("/save") + @ApiOperation("保存水位预警,有id编辑,无id新增") + public R add(HzIrriWarnLine line) { + boolean result = false; + if (Objects.isNull(line.getId())) { + HzIrriWarnLine exsit = warnLineService.selectByCode(line.getStationCode()); + if (!Objects.isNull(exsit)) { + return R.data(500, false, "该站点已有预警设置"); + } + result = warnLineService.save(line); + logger.info("添加水位预警成功"); + } else { + result = warnLineService.updateById(line); + logger.info("修改水位预警成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500, false, "保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除水位预警") + public R delById(@RequestParam Long id) { + boolean result = warnLineService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnMoistureController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnMoistureController.java new file mode 100644 index 0000000..937d589 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnMoistureController.java @@ -0,0 +1,84 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnMoisture; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnMoistureResp; +import org.springblade.engineering_management.service.IHzWarnMoistureService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/28 14:07 + */ +@Api(tags = "预警防汛-墒情站") +@RestController +@RequestMapping("/warn/moisture") +public class HzIrriWarnMoistureController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnMoistureController.class); + + @Autowired + private IHzWarnMoistureService warnMoistureService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取墒情预警列表") + public R listResp(StationSearchParam searchParam, Query query) { + IPage respList = warnMoistureService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取墒情预警列表成功"); + return R.data(respList); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取墒情预警") + public R getRespById(@RequestParam Long id) { + HzIrriWarnMoistureResp resp = warnMoistureService.getRespById(id); + logger.info("查询墒情预警成功"); + return R.data(resp,"查询墒情预警成功"); + } + + @PostMapping("/save") + @ApiOperation("保存墒情预警,有id编辑,无id新增") + public R add(HzIrriWarnMoisture moisture) { + boolean result = false; + if (Objects.isNull(moisture.getId())) { + HzIrriWarnMoisture exsit = warnMoistureService.selectByCode(moisture.getStationCode()); + if (!Objects.isNull(exsit)) { + return R.data(500, false, "该站点已有预警设置"); + } + result = warnMoistureService.save(moisture); + logger.info("添加墒情预警成功"); + } else { + result = warnMoistureService.updateById(moisture); + logger.info("修改墒情预警成功"); + } + if (result) { + return R.data(true,"保存墒情预警成功"); + } else { + return R.data(500, false, "保存墒情预警失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除墒情预警") + public R delById(@RequestParam Long id) { + boolean result = warnMoistureService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnPersonController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnPersonController.java new file mode 100644 index 0000000..a2e5776 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnPersonController.java @@ -0,0 +1,80 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnPerson; +import org.springblade.engineering_management.in.WarnPersonSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnPersonResp; +import org.springblade.engineering_management.service.IHzWarnPersonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/24 16:25 + */ +@Api(tags = "预警防汛-防汛人员") +@RestController +@RequestMapping("/warn/person") +public class HzIrriWarnPersonController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnPersonController.class); + + @Autowired + private IHzWarnPersonService warnPersonService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取防汛人员列表") + public R listResp(WarnPersonSearchParam searchParam, Query query) { + IPage respList = warnPersonService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取防汛人员列表成功"); + return R.data(respList,"获取防汛人员列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取防汛人员") + public R getRespById(@RequestParam Long id) { + HzIrriWarnPersonResp resp = warnPersonService.getRespById(id); + logger.info("查询防汛人员成功"); + return R.data(resp,"查询防汛人员成功"); + } + + @PostMapping("/save") + @ApiOperation("保存防汛人员,有id编辑,无id新增") + public R add(@RequestBody HzIrriWarnPerson person) { + boolean result = false; + if (Objects.isNull(person.getId())) { + result = warnPersonService.save(person); + logger.info("添加防汛人员成功"); + } else { + result = warnPersonService.updateById(person); + logger.info("修改防汛人员成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500,false,"保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除防汛人员") + public R delById(@RequestParam Long id) { + boolean result = warnPersonService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnRainController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnRainController.java new file mode 100644 index 0000000..f32e490 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzIrriWarnRainController.java @@ -0,0 +1,84 @@ +package org.springblade.engineering_management.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.entity.HzIrriWarnRain; +import org.springblade.engineering_management.in.StationSearchParam; +import org.springblade.engineering_management.resp.HzIrriWarnRainResp; +import org.springblade.engineering_management.service.IHzWarnRainService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2019/5/28 14:09 + */ +@Api(tags = "预警防汛-雨量站") +@RestController +@RequestMapping("/warn/rain") +public class HzIrriWarnRainController { + + private static Logger logger = LoggerFactory.getLogger(HzIrriWarnRainController.class); + + @Autowired + private IHzWarnRainService warnRainService; + + @GetMapping("/listResp") + @ApiOperation("分页多条件查询获取雨量预警列表") + public R listResp(StationSearchParam searchParam, Query query) { + IPage respList = warnRainService.listResp(searchParam, Condition.getPage(query)); + logger.info("获取雨量预警列表成功"); + return R.data(respList,"获取雨量预警列表成功"); + } + + @GetMapping("/getRespById") + @ApiOperation("依据id获取雨量预警") + public R getRespById(@RequestParam Long id) { + HzIrriWarnRainResp resp = warnRainService.getRespById(id); + logger.info("查询雨量预警成功"); + return R.data( resp,"查询雨量预警成功"); + } + + @PostMapping("/save") + @ApiOperation("保存雨量预警,有id编辑,无id新增") + public R add(HzIrriWarnRain rain) { + boolean result = false; + if (Objects.isNull(rain.getId())) { + HzIrriWarnRain exsit = warnRainService.selectByCode(rain.getStationCode()); + if (!Objects.isNull(exsit)) { + return R.data(500, false, "该站点已有预警设置"); + } + result = warnRainService.save(rain); + logger.info("添加雨量预警成功"); + } else { + result = warnRainService.updateById(rain); + logger.info("修改雨量预警成功"); + } + if (result) { + return R.data(true,"保存成功"); + } else { + return R.data(500, false, "保存失败"); + } + + } + + @DeleteMapping("/delById") + @ApiOperation("依据id删除雨量预警") + public R delById(@RequestParam Long id) { + boolean result = warnRainService.removeById(id); + if (result) { + return R.data(true, "删除成功"); + } else { + return R.data(500, false, "删除失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzMonitorFloodController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzMonitorFloodController.java new file mode 100644 index 0000000..f681444 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/java/org/springblade/engineering_management/web/HzMonitorFloodController.java @@ -0,0 +1,38 @@ +package org.springblade.engineering_management.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.tool.api.R; +import org.springblade.engineering_management.service.IMonitorFloodService; +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.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Api(tags = "预警防汛-监控中心") +@RestController +@RequestMapping("/warn/monitorFlood") +public class HzMonitorFloodController { + + @Autowired + IMonitorFloodService monitorFloodService; + + @ApiOperation(value = "获取 防汛预警Tab数据",notes = "参数:goodsType:null 不传;goodsEnableTimeType:unexpired" + + "KEY:站点、预警、危险 统计:stationAndWarnAndDangerMap;近30天预警次数排名:WarnNearlyThirtyMap;防汛人员数量:floodPersonCountList;" + + "防汛人员分布:floodPersonDistributionList;最新预警消息列表 (此接口单独拎出来 需要实时刷新):'';30天预警趋势:earlyWarningNearlyThirtyMap;" + + "防汛物资数量:floodGoodsNameCountsMap;监测站点占比:monitorStationList") + @GetMapping(value = "/getFloodWarnData") + public R getFloodWarnData( + @ApiParam(value="物资类型(公用物资..,参数不传则查询所有类型,eg:公用物资)",required = false) + @RequestParam(value="goodsType",required = false)String goodsType, + @ApiParam(value="使用时间类型(expired:已过期,unexpired:未过期,参数不传则查询所有记录,eg:unexpired)",required = false) + @RequestParam(value="goodsEnableTimeType",required = false)String goodsEnableTimeType) { + Map resultMap = monitorFloodService.getFloodWarnData(null,goodsType,goodsEnableTimeType); + + return R.data(resultMap,"查询成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..e9ca0a7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-dev.yml @@ -0,0 +1,17 @@ +#服务器端口 +server: + port: 8202 + +file: + upload: + path: D:\\upload + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application.yml new file mode 100644 index 0000000..eb994e5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/engineering-management-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: engineering-management + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/pom.xml new file mode 100644 index 0000000..8f6c196 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/pom.xml @@ -0,0 +1,113 @@ + + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + 4.0.0 + + pxhd-general-dispatching + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + org.springblade + pxhd-general-dispatching-api + 4.5.0.RELEASE + compile + + + com.hnac.hzinfo.data + hzinfo-data-sdk + 4.5.0.RELEASE + compile + + + org.springblade + blade-user-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-system-api + 4.5.0.RELEASE + compile + + + com.alibaba + easyexcel + 2.2.6 + compile + + + org.springblade + pxhd-reservoir-baseinfo-api + 4.5.0.RELEASE + compile + + + org.springblade + pxhd-hz3000-real-data-api + 4.5.0.RELEASE + compile + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/GeneralDispatchingApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/GeneralDispatchingApplication.java new file mode 100644 index 0000000..d467bb2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/GeneralDispatchingApplication.java @@ -0,0 +1,23 @@ +package org.springblade.general_dispatching; + +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; + +@EnableBladeFeign +@SpringCloudApplication +public class GeneralDispatchingApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="general-dispatching"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, GeneralDispatchingApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, GeneralDispatchingApplication.class); + } +} + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonAssignTaskController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonAssignTaskController.java new file mode 100644 index 0000000..6255e89 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonAssignTaskController.java @@ -0,0 +1,263 @@ +package org.springblade.general_dispatching.business.controller; + +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 org.springblade.general_dispatching.business.service.HzCommonAssignTaskService; +import org.springblade.general_dispatching.business.util.Constant; +import org.springblade.general_dispatching.business.util.SchedulingRunnable; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceVo; +import org.springblade.general_dispatching.task.entity.*; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springblade.general_dispatching.task.service.HzWdRunTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.Trigger; +import org.springframework.scheduling.TriggerContext; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ScheduledFuture; + +@RestController +@RequestMapping("/task/assign") +@Api(value = "开始任务接口", tags = "开始任务接口") +public class HzCommonAssignTaskController implements ApplicationListener{ + + @Autowired + private TaskScheduler taskScheduler; + + public TaskScheduler getScheduler() { + return this.taskScheduler; + } + + @Autowired + private HzCommonAssignTaskService hzCommonAssignTaskService; + + @Autowired + private HzTaskManageService hzTaskManageService; + + @Autowired + HzWdRunLogService hzWdRunLogService; + + @Autowired + HzWdRunTaskService hzWdRunTaskService; + + @Autowired + ModelInstanceManager modelInstanceManager; + + private void insertLog(String msg,String userId,Integer taskId,String levelCode){ + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage(msg); + runLog.setpId(taskId); + runLog.setLevelCode(levelCode); + runLog.setCreateTime(new Date()); + runLog.setCreater(userId); + runLog.setSourceType("02"); + runLog.setSourceName("系统"); + hzWdRunLogService.insert(runLog); + } + /** + * 创建模型实领用任务并启动定时数据获取例 + * @param request 获取session 获取userId + * @return 实例id + */ + @ApiOperation(value = "开始任务并启动定时数据获取",notes = "开始任务并启动定时数据获取") + @RequestMapping(value = "/flood", method = RequestMethod.POST) + public R assignTask(@RequestBody Map data, HttpServletRequest request){ + + String deptId=AuthUtil.getDeptId(); + + String userId = String.valueOf(AuthUtil.getUserId()); + + if(data.get("taskId")==null){ + return R.data(500,false,"参数输入为空"); + } + + Integer taskId=Integer.valueOf(data.get("taskId").toString()); + if(Constant.map.size()>= Constant.count){ + insertLog(Constant.count+"个任务数在运行,已超限,请先停止正在执行的任务",userId,taskId, RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + + Boolean flag=hzCommonAssignTaskService.assignFloodTask(taskId,userId,null); + if(!flag){ + insertLog("开始任务失败",userId,taskId,RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + boolean execFlag=execTask(taskId, userId, "floodPreventTask","getDataByTaskId",null); + if(execFlag) { + HzWdRunTask runTask=new HzWdRunTask(); + runTask.setTaskId(taskId); + runTask.setDeptId(deptId); + hzWdRunTaskService.insert(runTask); + insertLog("开始任务成功",userId,taskId,RunLogLevelCodeEnum.INFO.getCode()); + return R.data(true,"执行成功"); + }else{ + insertLog("任务不存在",userId,taskId,RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + } + + + /** + * 开始任务并启动定时数据获取(发电调度-调度管理-实时调度-趋势追踪) + * @param data + * taskId 任务id + * execUser 执行人 + * power 非给定发布(给定功率值) + * @param request 获取session 获取userId + * @return 实例id + */ + @ApiOperation(value = "领用任务并启动定时数据获取(发电调度-调度管理-实时调度-趋势追踪)", + notes = "开始任务并启动定时数据获取(发电调度-调度管理-实时调度-趋势追踪)") + @RequestMapping(value = "/real", method = RequestMethod.POST) + public R assignRealTask(@RequestBody Map data, HttpServletRequest request){ + + String userId = String.valueOf(AuthUtil.getUserId()); + + String deptId=AuthUtil.getDeptId(); + + if(data.get("taskId")==null || data.get("power")==null){ + return R.data(500,false,"参数输入不能为空"); + } + Integer taskId=Integer.valueOf(data.get("taskId").toString()); + String power=String.valueOf(data.get("power")); + if(Constant.map.size()>=Constant.count){ + insertLog(Constant.count+"个任务数在运行,已超限,请先停止正在执行的任务",userId,taskId,RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + Boolean flag=hzCommonAssignTaskService.assignTask(taskId,userId,null,power); + if(!flag){ + insertLog("执行失败",userId,taskId,RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + boolean execFlag=execTask(taskId, userId, "generatedRealTimeTask","getDataByTaskId",power); + if(execFlag) { + HzWdRunTask runTask=new HzWdRunTask(); + runTask.setTaskId(taskId); + runTask.setDeptId(deptId); + hzWdRunTaskService.insert(runTask); + insertLog("执行成功",userId,taskId,RunLogLevelCodeEnum.INFO.getCode()); + return R.data(true,"执行成功"); + }else{ + insertLog("任务不存在",userId,taskId,RunLogLevelCodeEnum.ERROR.getCode()); + return R.data(500,false,"执行失败"); + } + } + + @ApiOperation(value = "停止任务",notes = "停止任务") + @RequestMapping(value="/stop/{id}",method = RequestMethod.POST) + public R stopTask(@PathVariable Integer id, HttpServletRequest request){ + + String userId = String.valueOf(AuthUtil.getUserId()); + + Constant.removeTask(id); + Boolean flag=hzTaskManageService.updateOrStop(id,true); + //删除运行表中的任务 + hzWdRunTaskService.deleteByTaskId(id); + insertLog("停止任务成功",userId,id,RunLogLevelCodeEnum.INFO.getCode()); + return R.data(flag,"停止成功"); + } + + @ApiOperation(value = "完成任务",notes = "完成任务") + @RequestMapping(value="/complete/{id}",method = RequestMethod.POST) + public R complete(@PathVariable Integer id, HttpServletRequest request){ + + String userId = String.valueOf(AuthUtil.getUserId()); + + + // String userId= (String)request.getSession().getAttribute(UserUtils.CURRENT_USER_ID); + Constant.removeTask(id); + Boolean flag=hzTaskManageService.updateOrStop(id,false); + insertLog("完成任务成功",userId,id,RunLogLevelCodeEnum.INFO.getCode()); + //删除运行表中的任务 + hzWdRunTaskService.deleteByTaskId(id); + return R.data(flag,"完成成功"); + } + + private boolean execTask(Integer taskId,String userId,String beanName,String method,String power){ + HzTask param=new HzTask(); + param.setId(taskId); + List tasks=hzTaskManageService.selectByParam(param); + if(tasks!=null && !tasks.isEmpty()) { + HzTask task=tasks.get(0); + SchedulingRunnable schedulingRunnable = new SchedulingRunnable(beanName, + method, taskId, userId); + if("generatedRealTimeTask".equals(beanName)){ + if(power!=null) { + schedulingRunnable = new SchedulingRunnable(beanName, + method, taskId, userId, power); + }else{ + schedulingRunnable = new SchedulingRunnable(beanName,method,taskId, userId, "0"); + } + } + start(task,schedulingRunnable); + return true; + }else{ + return false; + } + } + + public void start(HzTask task, SchedulingRunnable schedulingRunnable) { + ScheduledFuture future = taskScheduler.schedule(schedulingRunnable,new Trigger(){ + @Override + public Date nextExecutionTime(TriggerContext triggerContext){ + return new CronTrigger(task.getCron()).nextExecutionTime(triggerContext); + } + }); + + Constant.map.put(task.getId(),future); + } + + //用于服务关闭后,任务的恢复 + @Override + public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { + if (contextRefreshedEvent.getApplicationContext().getParent() == null) {//保证只执行一次 + List list=hzWdRunTaskService.selectByParam(null); + for(HzWdRunTask runTask:list){ + HzTask param=new HzTask(); + param.setId(runTask.getTaskId()); + List tasks=hzTaskManageService.selectByParam(param); + if(tasks!=null && !tasks.isEmpty()) { + HzTask task=tasks.get(0); + String taskTypeCode=task.getTypeCode(); + String beanName="generatedRealTimeTask"; + if(HzTaskTypeCodeEnum.THREE.getCode().equals(taskTypeCode) ){ + beanName="floodPreventTask"; + } + + String power=null; + if(HzTaskTypeCodeEnum.FOUR.getCode().equals(taskTypeCode)){ + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(task.getpId(),true,false); + power = getPower(modelInstanceVo.getParams()); + } + + execTask(runTask.getTaskId(),task.getExecUser(), + beanName,"getDataByTaskId",power); + } + } + } + } + + private String getPower(List modelInstanceParams){ + for(ModelInstanceParam modelInstanceParam:modelInstanceParams){ + String typeCode=modelInstanceParam.getTypeCode(); + if(typeCode.equals("Nf")){ + return modelInstanceParam.getValue(); + } + } + return null; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonInstanceController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonInstanceController.java new file mode 100644 index 0000000..596aae9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCommonInstanceController.java @@ -0,0 +1,127 @@ +package org.springblade.general_dispatching.business.controller; + +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 org.springblade.general_dispatching.business.service.HzCommonInstanceService; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.task.vo.HzTaskVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/common/instance") +@Api(tags = "公共模块-实例统一处理接口") +public class HzCommonInstanceController { + @Autowired + HzCommonInstanceService hzCommonInstanceService; + + @ApiOperation(value = "创建方案和实例",notes = "创建方案和实例") + @RequestMapping(value="/create", method = RequestMethod.POST) + public R create(@RequestBody Map param, HttpServletRequest request){ + + String userId = String.valueOf(AuthUtil.getUserId()); + + param.put("creater",userId); + Map data=hzCommonInstanceService.createInstance(param); + return R.data(data,"创建成功"); + } + + @ApiOperation(value = "实例详情",notes = "实例详情") + @RequestMapping(value="/getInstanceInfo", method = RequestMethod.GET) + public R getInstanceInfo(Integer instanceId){ + Map data=hzCommonInstanceService.getInstanceInfo(instanceId); + return R.data(data,"查询成功"); + } + + @ApiOperation(value = "根据方案id查询所有实例",notes = "根据方案id查询所有实例") + @RequestMapping(value="/getInstancesByBluePrintId", method = RequestMethod.GET) + public R getInstancesByBluePrintId(Integer bluePrintId){ + List data=hzCommonInstanceService.getInstanceIdByBluePrintId(bluePrintId); + return R.data(data,"查询所有实例"); + } + + @ApiOperation(value = "根据方案id查询任务",notes = "根据方案id查询任务") + @RequestMapping(value = "/taskId/{bluePrintId}", method = RequestMethod.GET) + public R getTaskId(@PathVariable Integer bluePrintId){ + List list=hzCommonInstanceService.getTaskId(bluePrintId); + return R.data(list,"查询成功"); + } + + @ApiOperation(value = "根据实例id查询任务类别",notes = "根据实例id查询任务类别") + @RequestMapping(value = "/taskTypeCode/{instanceId}", method = RequestMethod.GET) + public R getTaskTypeCode(@PathVariable Integer instanceId){ + List> typeCodes=hzCommonInstanceService.getTaskTypeCode(instanceId); + return R.data(typeCodes,"查询成功"); + } + + @ApiOperation(value = "根据实例id查询水务计算的参数",notes = "根据实例id查询水务计算的参数") + @RequestMapping(value="/getInstanceParamByInstanceId", method = RequestMethod.GET) + public R getInstanceParamByInstanceId(Integer instanceId){ + List data=hzCommonInstanceService.getInstanceParamByInstanceId(instanceId); + if(data!=null) { + return R.data(data,"查询结果"); + }else{ + return R.data(null, "未查询到结果"); + } + } + + + /** + * 更新实例结果(水务更新) + * @param instanceId 实例id + * @param param id:value 结果id:结果值 + * @return 返回信息 + */ + @ApiOperation(value = "更新实例结果",notes = "更新实例结果") + @RequestMapping(value="/result/{instanceId}", method = RequestMethod.POST) + public R updateModelInstanceResult(@PathVariable Integer instanceId, @RequestBody Map param, HttpServletRequest request){ + String userId = String.valueOf(AuthUtil.getUserId()); + + Boolean flag=hzCommonInstanceService.updateModelInstanceResult(userId,instanceId,param); + if(flag) { + return R.data(true,"更新成功"); + }else{ + return R.data(500,false,"更新失败"); + } + } + + @ApiOperation(value = "查询实例结果",notes = "查询实例结果") + @RequestMapping(value="/result/{instanceId}", method = RequestMethod.GET) + public R getInstanceResultById(@PathVariable Integer instanceId){ + List list=hzCommonInstanceService.getInstanceResultById(instanceId); + return R.data(list,"查询实例结果成功"); + + } + + + @ApiOperation(value = "根据模型编码查新最新实例结果",notes = "根据模型编码查新最新实例结果") + @RequestMapping(value="/selectByModelCode/{code}", method = RequestMethod.GET) + public R selectByModelCode(@PathVariable String code){ + List list=hzCommonInstanceService.selectByModelCode(code); + return R.data(list,"查询实例结果成功"); + + } + + @ApiOperation(value = "方案作废",notes = "方案作废") + @RequestMapping(value="/voidInstance", method = RequestMethod.POST) + public R voidInstance(@RequestBody Map param){ + Integer instanceId = param.get("instanceId"); + Integer bluePrintId = param.get("printBlueId"); + boolean flag=hzCommonInstanceService.voidInstance(instanceId,bluePrintId); + if(flag) { + return R.data(true,"作废成功"); + }else{ + return R.data(500,true,"作废失败"); + } + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCreateModelTaskController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCreateModelTaskController.java new file mode 100644 index 0000000..caabfc0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzCreateModelTaskController.java @@ -0,0 +1,43 @@ +package org.springblade.general_dispatching.business.controller; + +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 org.springblade.general_dispatching.business.service.HzCreateModelTaskService; +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 javax.servlet.http.HttpServletRequest; +import java.util.Map; + +@RestController +@RequestMapping("/common/model/task") +@Api(tags = "公共模块-创建任务统一处理接口") +public class HzCreateModelTaskController { + @Autowired + HzCreateModelTaskService hzCreateModelTaskService; + /** + *创建任务 + * @param param + * pId 实例id + * mCode 模型编码 + * taskType 任务类型(02 给定发布 04非给定发布) + * remark 任务描述 + * planStartDt 计划开始时间 + * planEndDt 计划结束时间 + * @return + */ + @ApiOperation(value = "创建任务",notes = "创建任务") + @RequestMapping(value="/create", method = RequestMethod.POST) + public R getByCode(@RequestBody Map param, HttpServletRequest request){ + String userId = String.valueOf(AuthUtil.getUserId()); + + param.put("userId",userId); + R response=hzCreateModelTaskService.createModelTask(param); + return response; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzDealModelParamDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzDealModelParamDataController.java new file mode 100644 index 0000000..eb99b6b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzDealModelParamDataController.java @@ -0,0 +1,35 @@ +package org.springblade.general_dispatching.business.controller; + +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 org.springblade.general_dispatching.business.service.HzDealModelParamDataService; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; + +@RestController +@RequestMapping("/common/deal/param") +@Api(tags = "公共模块-查询参数统一处理接口") +public class HzDealModelParamDataController { + @Autowired + HzDealModelParamDataService hzDealModelParamDataService; + + @Autowired + ISysClient sysClient; + + @ApiOperation(value = "查询配置的参数",notes = "查询配置的参数") + @RequestMapping(value="/getByCode", method = RequestMethod.GET) + public R getByCode(Integer modelConfigId, String mCode, Integer isGroup, Integer schemeId, + Integer instanceId) throws ParseException { + String stationId =sysClient.getDept(Long.valueOf(AuthUtil.getDeptId())).getData().getStationId(); + R response=hzDealModelParamDataService.getByCode(modelConfigId, mCode, isGroup,stationId,instanceId, schemeId); + return response; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzReservoirDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzReservoirDataController.java new file mode 100644 index 0000000..d21b166 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/controller/HzReservoirDataController.java @@ -0,0 +1,57 @@ +package org.springblade.general_dispatching.business.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.business.entity.HzReservoirData; +import org.springblade.general_dispatching.business.service.HzReservoirDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirData") +@Api(tags = "水库数据接口") +public class HzReservoirDataController { + @Autowired + HzReservoirDataService hzReservoirDataService; + + @ApiOperation(value = "查询水库数据",notes = "查询水库数据") + @RequestMapping(value="/pageList", method = RequestMethod.GET) + public R pageList(String dateType, String start, String end, String stcd, Query query){ + IPage pageList=hzReservoirDataService.pageList(dateType, start, end, stcd, Condition.getPage(query)); + return R.data(pageList,"查询水库数据成功"); + } + + @ApiOperation(value = "查询水库数据",notes = "查询水库数据") + @RequestMapping(value="/list", method = RequestMethod.GET) + public R list(String start, String end, String stcd){ + Map param=new HashMap<>(); + param.put("startTime", start); + param.put("endTime", end); + param.put("stcd", stcd); + List sql=new ArrayList<>(); + sql.add("result.INFLOW"); + param.put("sql",sql); + List pageList=hzReservoirDataService.selectDataByHour(param); + return R.data(pageList,"查询水库数据成功"); + } + + //数据表格 + @ApiOperation(value = "导出水库数据",notes = "导出水库数据") + @RequestMapping(value="/export", method = RequestMethod.GET) + public void export(String dateType,String start,String end,String stcd, HttpServletResponse response){ + hzReservoirDataService.export(dateType, start, end, stcd,response); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/DateQueryTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/DateQueryTypeEnum.java new file mode 100644 index 0000000..8dcbb2d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/DateQueryTypeEnum.java @@ -0,0 +1,46 @@ +package org.springblade.general_dispatching.business.entity; + +public enum DateQueryTypeEnum { + YEAR("year","年"),MONTH("month","月"), + DAY("day","日"),RANGE("range","时间段"); + private String code; + private String name; + + DateQueryTypeEnum(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; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumName(String code) { + DateQueryTypeEnum[] alarmGrades = DateQueryTypeEnum.values(); + for (DateQueryTypeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/FloodPreventTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/FloodPreventTask.java new file mode 100644 index 0000000..a2315b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/FloodPreventTask.java @@ -0,0 +1,280 @@ +package org.springblade.general_dispatching.business.entity; + +import com.hnac.hzinfo.datasearch.PointData; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.springblade.general_dispatching.business.util.Constant; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.InstanceStateEnum; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceVo; +import org.springblade.general_dispatching.task.entity.*; +import org.springblade.general_dispatching.task.service.HzTaskDetailService; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springblade.general_dispatching.task.service.HzWdRunTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.text.DecimalFormat; +import java.util.*; + +@Component("floodPreventTask") +public class FloodPreventTask { + @Autowired + HzTaskManageService hzTaskManageService; + + @Autowired + ModelInstanceManager modelInstanceManager; + + @Autowired + HzTaskDetailService hzTaskDetailService; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + HzWdRunLogService hzWdRunLogService; + + @Autowired + HzWdRunTaskService hzWdRunTaskService; + + //计划结束时间停掉任务 + private void stopTask(Integer taskId,Date endDate){ + Date now=new Date(); + if(endDate.before(now)) { // endDate tasks=hzTaskManageService.selectByParam(tmp); + if(tasks==null || tasks.isEmpty()){ + return; + } + HzTask task=tasks.get(0); + Integer instanceId=task.getpId(); + //获取结果 + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(instanceId,true,true); + //实例结果 + List list=modelInstanceVo.getResults(); + + //判断任务是否完成 + String stateCode=task.getStateCode(); + if(HzTaskStatusEnum.THREE.getCode().equals(stateCode)){ + //是否有结果 + if(list!=null && !list.isEmpty()){//有结果 更新任务状态为已完成 + createNewTask(modelInstanceVo,list,task, userId); + }else{ + ModelInstanceInfoVo instanceInfoVo=modelInstanceVo.getModelInstance(); + String status=instanceInfoVo.getStateCode(); + if(InstanceStateEnum.FOUR.getCode().equals(status)){//实例的状态为已停止 + //运行日志 + insertRunLog(modelInstanceVo,task,userId); + Constant.removeTask(taskId); + hzWdRunTaskService.deleteByTaskId(taskId); + return; + } + } + }else if(HzTaskStatusEnum.FOUR.getCode().equals(stateCode)){ + createNewTask(modelInstanceVo,list,task, userId); + } + + //停止任务 + stopTask(taskId,task.getPlanEndDt()); + } + + boolean insertRunLog(ModelInstanceVo modelInstanceVo,HzTask task,String userId){ + //实例 + ModelInstanceInfoVo modelInstanceInfoVo=modelInstanceVo.getModelInstance(); + //查看实例状态 + if(InstanceStateEnum.FOUR.getCode().equals(modelInstanceInfoVo.getStateCode())){//已停止 + //插入日志 + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage(modelInstanceInfoVo.getRemark()); + runLog.setpId(task.getId()); + runLog.setLevelCode(RunLogLevelCodeEnum.ERROR.getCode()); + runLog.setCreateTime(new Date()); + runLog.setCreater(userId); + runLog.setSourceType("02"); + runLog.setSourceType("系统"); + hzWdRunLogService.insert(runLog); + return false; + } + return true; + } + + void createNewTask(ModelInstanceVo modelInstanceVo,List list,HzTask task, String userId){ + //实例 + ModelInstanceInfoVo modelInstanceInfoVo=modelInstanceVo.getModelInstance(); + //运行日志 + boolean flag=insertRunLog(modelInstanceVo,task,userId); + if(!flag){ + return; + } + //参数 + List modelInstanceParams=modelInstanceVo.getParams(); + Integer taskId=task.getId(); + //数据项对应的厂组点 + Map params=new HashMap<>(); + //一次性取实时值 + List points=new ArrayList<>(); + //获取实时值 + for (ModelInstanceResultVo vo:list){ + String point=vo.getPoint(); + String type=vo.getResultItem(); + if(point!=null && !"".equals(point)) { + params.put(type,vo); + points.add(point); + } + + } + //取实时值 + Map realData=getRealData(points); + //组装数据 + List details=getHzTaskDetails(taskId,userId, modelInstanceInfoVo,realData, params); + //插入结果到详情表 + hzTaskDetailService.batchInsert(details); + //更新状态任务为04 + hzTaskManageService.update(taskId,null,HzTaskStatusEnum.FOUR.getCode()); + //并创建新的实例 + Integer newId=createNewInstance(modelInstanceInfoVo, modelInstanceParams, userId); + // 更新任务实例将任务状态改成03 + HzTask tmpTask = new HzTask(); + tmpTask.setStateCode(HzTaskStatusEnum.THREE.getCode()); + tmpTask.setpId(newId); + tmpTask.setLastUpdator(userId); + tmpTask.setId(taskId); + hzTaskManageService.updateByPrimaryKey(tmpTask); + } + + + //创建新的实例 + Integer createNewInstance(ModelInstanceInfoVo old,List modelInstanceParams, + String creater){ + //获取方案id + Integer bluePrintId=old.getBluePrintId(); + Integer modelConfigId=old.getModelConfigId(); + Integer isGroup=old.getIsGroup(); + String remark=old.getRemark(); + //获取参数 + Map param=new HashMap<>(); + param.put("modelConfigId",modelConfigId); + param.put("isGroup",isGroup); + List list = modelParamConfigMapper.selectByModel(param); + //获取实时厂组点值 + Map paramConfigVoMap=new HashMap<>(); + List points=new ArrayList<>(); + for(ModelParamConfigVo vo:list){ + String typeCode=vo.getTypeCode(); + if(ModelParamTypeEnum.FOUR.getCode().equals(typeCode)){ + paramConfigVoMap.put(typeCode,vo); + points.add(vo.getValue()); + } + } + Map realData=getRealData(points); + //创建实例 + ModelInstanceVo modelInstanceVo=new ModelInstanceVo(); + //设置模型实例 + ModelInstanceInfoVo instance=new ModelInstanceInfoVo(); + instance.setCreater(creater); + instance.setBluePrintId(bluePrintId); + instance.setModelConfigId(modelConfigId); + instance.setRemark(remark); + instance.setIsCreateTask(old.getIsCreateTask()); + instance.setCode(old.getCode()); + instance.setIsGroup(isGroup); + instance.setLastUpdater(creater); + modelInstanceVo.setModelInstance(instance); + + Map real=getRealData(realData,paramConfigVoMap); + + for(ModelInstanceParam modelInstanceParam:modelInstanceParams){ + String typeCode=modelInstanceParam.getTypeCode(); + if(real.get(typeCode)!=null){ + modelInstanceParam.setValue(real.get(typeCode)); + } + } + + modelInstanceVo.setParams(modelInstanceParams); + return modelInstanceManager.createModelInstance(modelInstanceVo); + } + + //根据id获取实时值 + Map getRealData(Map realData,Map paramConfigVoMap){ + Map data=new HashMap<>(); + DecimalFormat df = new DecimalFormat("#.00"); + for (Map.Entry param:paramConfigVoMap.entrySet()){ + String typeCode = param.getKey(); + ModelParamConfigVo vo=param.getValue(); + String dd=realData.get(vo.getValue()); + data.put(typeCode,df.format(dd)); + } + return data; + } + + //获取实时数据 + private Map getRealData(List points){ + Map data=new HashMap<>(); + + Result> res=realDataSearchClient.getRealDataByRealIds(points); + + List dataList=res.getData(); + //获取id对应实时值 + for (int i=0;i< points.size();i++){ + data.put(points.get(i),dataList.get(i).getValue()); + } + return data; + } + + //组装任务详情数据 + private List getHzTaskDetails(Integer taskId,String userId,ModelInstanceInfoVo modelInstanceInfoVo,Map realData,Map params){ + List details=new ArrayList<>(); + for (Map.Entry param:params.entrySet()){ + ModelInstanceResultVo vo=param.getValue(); + HzTaskDetail detail=new HzTaskDetail(); + detail.setTaskId(taskId); + detail.setUnit(vo.getUnit()); + detail.setDt(modelInstanceInfoVo.getCreateTime()); + detail.setCode(vo.getResultItem()); + detail.setName(vo.getResultItemName()); + detail.setPlanValue(vo.getValue()); + DecimalFormat df = new DecimalFormat("#.00"); + detail.setActualValue(df.format(realData.get(vo.getPoint()))); + + detail.setCreator(userId); + detail.setCreateTime(new Date()); + detail.setLastUpdator(userId); + detail.setLastUpdateTime(new Date()); + details.add(detail); + } + return details; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/GeneratedRealTimeTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/GeneratedRealTimeTask.java new file mode 100644 index 0000000..e7cdad0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/GeneratedRealTimeTask.java @@ -0,0 +1,364 @@ +package org.springblade.general_dispatching.business.entity; + +import com.hnac.hzinfo.datasearch.PointData; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.springblade.general_dispatching.business.util.Constant; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.InstanceStateEnum; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceVo; +import org.springblade.general_dispatching.task.entity.*; +import org.springblade.general_dispatching.task.service.HzTaskDetailService; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springblade.general_dispatching.task.service.HzWdRunTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.text.DecimalFormat; +import java.util.*; + +@Component("generatedRealTimeTask") +public class GeneratedRealTimeTask { + + @Autowired + HzTaskManageService hzTaskManageService; + + @Autowired + ModelInstanceManager modelInstanceManager; + + @Autowired + HzTaskDetailService hzTaskDetailService; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + HzWdRunLogService hzWdRunLogService; + + @Autowired + HzWdRunTaskService hzWdRunTaskService; + + //计划结束时间停掉任务 + private void stopTask(Integer taskId,Date endDate){ + Date now=new Date(); + if(endDate.before(now)) { //endDate tasks=hzTaskManageService.selectByParam(tmp); + if(tasks==null || tasks.isEmpty()){ + return; + } + HzTask task=tasks.get(0); + Integer instanceId=task.getpId(); + //获取结果 + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(instanceId,true,true); + //实例结果 + List list=modelInstanceVo.getResults(); + + //判断任务是否完成 + String stateCode=task.getStateCode(); + if(HzTaskStatusEnum.THREE.getCode().equals(stateCode)){ + //是否有结果 + if(list!=null && !list.isEmpty()){//有结果 更新任务状态为已完成 + createOne(modelInstanceVo,list,task, userId); + }else{ + ModelInstanceInfoVo instanceInfoVo=modelInstanceVo.getModelInstance(); + String status=instanceInfoVo.getStateCode(); + if(InstanceStateEnum.FOUR.getCode().equals(status)){//实例的状态为已停止 + //运行日志 + insertRunLog(modelInstanceVo,task,userId); + Constant.removeTask(taskId); + hzWdRunTaskService.deleteByTaskId(taskId); + return; + } + + } + }else if(HzTaskStatusEnum.FOUR.getCode().equals(stateCode)){ + createOne(modelInstanceVo,list,task, userId); + } + + //停止任务 + stopTask(taskId,task.getPlanEndDt()); + + } + + void createOne(ModelInstanceVo modelInstanceVo,List list,HzTask task,String userId){ + //实例 + ModelInstanceInfoVo modelInstanceInfoVo=modelInstanceVo.getModelInstance(); + //查看实例状态 + boolean flag=insertRunLog(modelInstanceVo,task,userId); + if(!flag){ + return; + } + + Integer taskId=task.getId(); + //数据项对应的厂组点 + Map params=new HashMap<>(); + //一次性取实时值 + List points=new ArrayList<>(); + //获取实时值 + for (ModelInstanceResultVo vo:list){ + String point=vo.getPoint(); + String type=vo.getResultItem(); + if(point!=null && !"".equals(point)) { + params.put(type,vo); + points.add(point); + } + } + //取实时值 + Map realData=getRealData(points); + //组装数据 + List details=getHzTaskDetails(taskId,userId, modelInstanceInfoVo,realData, params); + //插入结果到详情表 + hzTaskDetailService.batchInsert(details); + //更新状态任务为04 + hzTaskManageService.update(taskId,task.getExecUser(), HzTaskStatusEnum.FOUR.getCode()); + } + + @Transactional + public void getDataByTaskId(Integer taskId,String userId,String power) { + HzTask tmp=new HzTask(); + tmp.setId(taskId); + List tasks=hzTaskManageService.selectByParam(tmp); + if(tasks==null || tasks.isEmpty()){ + return; + } + HzTask task=tasks.get(0); + Integer instanceId=task.getpId(); + //获取结果 + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(instanceId,true,true); + //实例结果 + List list=modelInstanceVo.getResults(); + + //判断任务是否完成 + String stateCode=task.getStateCode(); + if(HzTaskStatusEnum.THREE.getCode().equals(stateCode)){ + //是否有结果 + if(list!=null && !list.isEmpty()){//有结果 更新任务状态为已完成 + createNewTask(modelInstanceVo,list,task, userId,power); + }else{ + //运行日志 + boolean flag=insertRunLog(modelInstanceVo,task,userId); + if(!flag){ + return; + } + } + }else if(HzTaskStatusEnum.FOUR.getCode().equals(stateCode)){ + createNewTask(modelInstanceVo,list,task, userId,power); + } + + //停止任务 + stopTask(taskId,task.getPlanEndDt()); + } + + boolean insertRunLog(ModelInstanceVo modelInstanceVo,HzTask task,String userId){ + //实例 + ModelInstanceInfoVo modelInstanceInfoVo=modelInstanceVo.getModelInstance(); + //查看实例状态 + if(InstanceStateEnum.FOUR.getCode().equals(modelInstanceInfoVo.getStateCode())){//已停止 + //插入日志 + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage(modelInstanceInfoVo.getRemark()); + runLog.setpId(task.getId()); + runLog.setLevelCode(RunLogLevelCodeEnum.ERROR.getCode()); + runLog.setCreateTime(new Date()); + runLog.setCreater(userId); + runLog.setSourceType("02"); + runLog.setSourceName("系统"); + hzWdRunLogService.insert(runLog); + return false; + } + return true; + } + + void createNewTask(ModelInstanceVo modelInstanceVo,List list,HzTask task, + String userId,String power){ + //实例 + ModelInstanceInfoVo modelInstanceInfoVo=modelInstanceVo.getModelInstance(); + //查看实例状态 + boolean flag=insertRunLog(modelInstanceVo,task,userId); + if(!flag){ + return; + } + //参数 + List modelInstanceParams=modelInstanceVo.getParams(); + Integer taskId=task.getId(); + //数据项对应的厂组点 + Map params=new HashMap<>(); + //一次性取实时值 + List points=new ArrayList<>(); + //获取实时值 + for (ModelInstanceResultVo vo:list){ + String point=vo.getPoint(); + String type=vo.getResultItem(); + if(point!=null && !"".equals(point)) { + params.put(type,vo); + points.add(point); + } + } + //取实时值 + Map realData=getRealData(points); + //组装数据 + List details=getHzTaskDetails(taskId,userId, modelInstanceInfoVo,realData, params); + //插入结果到详情表 + hzTaskDetailService.batchInsert(details); + //更新状态任务为04 + hzTaskManageService.update(taskId,task.getExecUser(), HzTaskStatusEnum.FOUR.getCode()); + //并创建新的实例 + Integer newId=null; + if(HzTaskTypeCodeEnum.TWO.getCode().equals(task.getTypeCode())) { + newId = createNewInstance(modelInstanceInfoVo, modelInstanceParams, userId,null); + }else{ + newId = createNewInstance(modelInstanceInfoVo, modelInstanceParams, userId,power); + } + // 更新任务实例将任务状态改成03 + HzTask tmpTask = new HzTask(); + tmpTask.setStateCode(HzTaskStatusEnum.THREE.getCode()); + tmpTask.setpId(newId); + tmpTask.setLastUpdator(userId); + tmpTask.setId(taskId); + hzTaskManageService.updateByPrimaryKey(tmpTask); + } + + + //创建新的实例 + Integer createNewInstance(ModelInstanceInfoVo old,List modelInstanceParams, + String creater,String power){ + //获取方案id + Integer bluePrintId=old.getBluePrintId(); + Integer modelConfigId=old.getModelConfigId(); + Integer isGroup=old.getIsGroup(); + String remark=old.getRemark(); + //获取参数 + Map param=new HashMap<>(); + param.put("modelConfigId",modelConfigId); + param.put("isGroup",isGroup); + List list = modelParamConfigMapper.selectByModel(param); + //获取实时厂组点值 + Map paramConfigVoMap=new HashMap<>(); + List points=new ArrayList<>(); + for(ModelParamConfigVo vo:list){ + String typeCode=vo.getTypeCode(); + if(ModelParamTypeEnum.FOUR.getCode().equals(typeCode)){ + paramConfigVoMap.put(typeCode,vo); + points.add(vo.getValue()); + } + } + Map realData=getRealData(points); + //创建实例 + ModelInstanceVo modelInstanceVo=new ModelInstanceVo(); + //设置模型实例 + ModelInstanceInfoVo instance=new ModelInstanceInfoVo(); + instance.setIsCreateTask(old.getIsCreateTask()); + instance.setCode(old.getCode()); + instance.setIsGroup(isGroup); + instance.setCreater(creater); + instance.setBluePrintId(bluePrintId); + instance.setModelConfigId(modelConfigId); + instance.setRemark(remark); + instance.setLastUpdater(creater); + modelInstanceVo.setModelInstance(instance); + + Map real=getRealData(realData,paramConfigVoMap); + + for(ModelInstanceParam modelInstanceParam:modelInstanceParams){ + String typeCode=modelInstanceParam.getTypeCode(); + if(real.get(typeCode)!=null){ + modelInstanceParam.setValue(real.get(typeCode)); + } + if(typeCode.equals("Nf")){ + if(power!=null) { + modelInstanceParam.setValue(power); + } + } + } + + modelInstanceVo.setParams(modelInstanceParams); + return modelInstanceManager.createModelInstance(modelInstanceVo); + } + + //根据id获取实时值 + Map getRealData(Map realData,Map paramConfigVoMap){ + Map data=new HashMap<>(); + DecimalFormat df = new DecimalFormat("#.00"); + for (Map.Entry param:paramConfigVoMap.entrySet()){ + String typeCode = param.getKey(); + ModelParamConfigVo vo=param.getValue(); + String dd=realData.get(vo.getValue()); + if(dd!=null) { + data.put(typeCode, df.format(dd)); + }else{ + data.put(typeCode, "0.00"); + } + } + return data; + } + + //获取实时数据 + private Map getRealData(List points){ + Map data=new HashMap<>(); + Result> res=realDataSearchClient.getRealDataByRealIds(points); + List dataList=res.getData(); + //获取id对应实时值 + for (int i=0;i< points.size();i++){ + data.put(points.get(i),dataList.get(i).getValue()); + } + return data; + } + + //组装任务详情数据 + private List getHzTaskDetails(Integer taskId,String userId,ModelInstanceInfoVo modelInstanceInfoVo,Map realData,Map params){ + List details=new ArrayList<>(); + for (Map.Entry param:params.entrySet()){ + ModelInstanceResultVo vo=param.getValue(); + HzTaskDetail detail=new HzTaskDetail(); + detail.setTaskId(taskId); + detail.setUnit(vo.getUnit()); + detail.setDt(modelInstanceInfoVo.getCreateTime()); + detail.setCode(vo.getResultItem()); + detail.setName(vo.getResultItemName()); + detail.setPlanValue(vo.getValue()); + DecimalFormat df = new DecimalFormat("#.00"); + detail.setActualValue(df.format(realData.get(vo.getPoint()))); + + detail.setCreator(userId); + detail.setCreateTime(new Date()); + detail.setLastUpdator(userId); + detail.setLastUpdateTime(new Date()); + details.add(detail); + } + return details; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzIrrBdGateData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzIrrBdGateData.java new file mode 100644 index 0000000..8c48b6f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzIrrBdGateData.java @@ -0,0 +1,140 @@ +package org.springblade.general_dispatching.business.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.math.BigDecimal; +import java.util.Date; + +@ApiModel(value = "闸门数据表", description = "闸门数据表") +public class HzIrrBdGateData { + @ApiModelProperty( value = "id", notes = "主键", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "stcd", notes = "水库编号", dataType = "String") + private String stcd; + private String reservoirName; + @ApiModelProperty( value = "strobeCode", notes = "闸门编码", dataType = "String") + private String strobeCode; + @ApiModelProperty( value = "dt", notes = "时间", dataType = "Date") + private Date dt; + @ApiModelProperty( value = "periodType", notes = "周期类型(D,H,M,S)", dataType = "String") + private String periodType; + @ApiModelProperty( value = "dataType", notes = "数据类型(预测值,计划值,计算值,实测值 )", dataType = "String") + private String dataType; + @ApiModelProperty( value = "gatage", notes = "闸门开度", dataType = "BigDecimal") + private BigDecimal gatage; + @ApiModelProperty( value = "waterFlow", notes = "泄洪流量", dataType = "BigDecimal") + private BigDecimal waterFlow; + @ApiModelProperty( value = "status", notes = "闸门状态", dataType = "Integer") + private Integer status; + @ApiModelProperty( value = "waterLevel", notes = "水位", dataType = "BigDecimal") + private BigDecimal waterLevel; + @ApiModelProperty( value = "tailWaterLevel", notes = "筷子娄尾水位", dataType = "BigDecimal") + private BigDecimal tailWaterLevel; + + private String yearMonthDayHour; + + public String getReservoirName() { + return reservoirName; + } + + public void setReservoirName(String reservoirName) { + this.reservoirName = reservoirName; + } + + public String getYearMonthDayHour() { + return yearMonthDayHour; + } + + public void setYearMonthDayHour(String yearMonthDayHour) { + this.yearMonthDayHour = yearMonthDayHour; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public String getStrobeCode() { + return strobeCode; + } + + public void setStrobeCode(String strobeCode) { + this.strobeCode = strobeCode; + } + + public Date getDt() { + return dt; + } + + public void setDt(Date dt) { + this.dt = dt; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public BigDecimal getGatage() { + return gatage; + } + + public void setGatage(BigDecimal gatage) { + this.gatage = gatage; + } + + public BigDecimal getWaterFlow() { + return waterFlow; + } + + public void setWaterFlow(BigDecimal waterFlow) { + this.waterFlow = waterFlow; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public BigDecimal getWaterLevel() { + return waterLevel; + } + + public void setWaterLevel(BigDecimal waterLevel) { + this.waterLevel = waterLevel; + } + + public BigDecimal getTailWaterLevel() { + return tailWaterLevel; + } + + public void setTailWaterLevel(BigDecimal tailWaterLevel) { + this.tailWaterLevel = tailWaterLevel; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzReservoirData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzReservoirData.java new file mode 100644 index 0000000..20bd2d3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzReservoirData.java @@ -0,0 +1,221 @@ +package org.springblade.general_dispatching.business.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.math.BigDecimal; +import java.util.Date; + +@ApiModel(value = "水库数据表", description = "水库数据表") +public class HzReservoirData { + @ApiModelProperty( value = "id", notes = "主键", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "stcd", notes = "水库编码", dataType = "String") + private String stcd; + @ApiModelProperty( value = "dt", notes = "日期", dataType = "Date") + private Date dt; + @ApiModelProperty( value = "periodType", notes = "周期类型", dataType = "String") + private String periodType; + @ApiModelProperty( value = "dataType", notes = "数据类型(预测值,计划值,计算值,实测值 )", dataType = "String") + private String dataType; + @ApiModelProperty( value = "rainfallRunoff", notes = "降雨产流", dataType = "BigDecimal") + private BigDecimal rainfallRunoff; + @ApiModelProperty( value = "dailyRunoff", notes = "日径流量(m³/s)", dataType = "BigDecimal") + private BigDecimal dailyRunoff; + @ApiModelProperty( value = "rscp", notes = "库容", dataType = "BigDecimal") + private BigDecimal rscp; + @ApiModelProperty( value = "reservoirWaterLevel", notes = "库水位(m)", dataType = "BigDecimal") + private BigDecimal reservoirWaterLevel; + @ApiModelProperty( value = "rainFall", notes = "降雨量(mm)", dataType = "BigDecimal") + private BigDecimal rainFall; + @ApiModelProperty( value = "inFlow", notes = "入库流量(m³/s)", dataType = "BigDecimal") + private BigDecimal inFlow; + @ApiModelProperty( value = "outboundTraffic", notes = "水库出库流量(m³/s)", dataType = "BigDecimal") + private BigDecimal outboundTraffic; + @ApiModelProperty( value = "storageWater", notes = "存库流量(m³/s)", dataType = "BigDecimal") + private BigDecimal storageWater; + @ApiModelProperty( value = "powerDischarge", notes = "水库发电流量(m³/s)", dataType = "BigDecimal") + private BigDecimal powerDischarge; + @ApiModelProperty( value = "waterFlow", notes = "水库泄洪流量(m³/s)", dataType = "BigDecimal") + private BigDecimal waterFlow; + @ApiModelProperty( value = "ecoFlow", notes = "水库生态流量(m³/s)", dataType = "BigDecimal") + private BigDecimal ecoFlow; + @ApiModelProperty( value = "dischargeFlow", notes = "供水流量(m³/s)", dataType = "BigDecimal") + private BigDecimal dischargeFlow; + @ApiModelProperty( value = "irrigationFlow", notes = "灌溉流量(m³/s)", dataType = "BigDecimal") + private BigDecimal irrigationFlow; + @ApiModelProperty( value = "aqueductWaterLevel", notes = "渡槽水位(m)", dataType = "BigDecimal") + private BigDecimal aqueductWaterLevel; + + private String yearMonthDayHour; + + private String reservoirName; + + public String getReservoirName() { + return reservoirName; + } + + public void setReservoirName(String reservoirName) { + this.reservoirName = reservoirName; + } + + public String getYearMonthDayHour() { + return yearMonthDayHour; + } + + public void setYearMonthDayHour(String yearMonthDayHour) { + this.yearMonthDayHour = yearMonthDayHour; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd; + } + + public Date getDt() { + return dt; + } + + public void setDt(Date dt) { + this.dt = dt; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public BigDecimal getRainfallRunoff() { + return rainfallRunoff; + } + + public void setRainfallRunoff(BigDecimal rainfallRunoff) { + this.rainfallRunoff = rainfallRunoff; + } + + public BigDecimal getDailyRunoff() { + return dailyRunoff; + } + + public void setDailyRunoff(BigDecimal dailyRunoff) { + this.dailyRunoff = dailyRunoff; + } + + public BigDecimal getRscp() { + return rscp; + } + + public void setRscp(BigDecimal rscp) { + this.rscp = rscp; + } + + public BigDecimal getReservoirWaterLevel() { + return reservoirWaterLevel; + } + + public void setReservoirWaterLevel(BigDecimal reservoirWaterLevel) { + this.reservoirWaterLevel = reservoirWaterLevel; + } + + public BigDecimal getRainFall() { + return rainFall; + } + + public void setRainFall(BigDecimal rainFall) { + this.rainFall = rainFall; + } + + public BigDecimal getInFlow() { + return inFlow; + } + + public void setInFlow(BigDecimal inFlow) { + this.inFlow = inFlow; + } + + public BigDecimal getOutboundTraffic() { + return outboundTraffic; + } + + public void setOutboundTraffic(BigDecimal outboundTraffic) { + this.outboundTraffic = outboundTraffic; + } + + public BigDecimal getStorageWater() { + return storageWater; + } + + public void setStorageWater(BigDecimal storageWater) { + this.storageWater = storageWater; + } + + public BigDecimal getPowerDischarge() { + return powerDischarge; + } + + public void setPowerDischarge(BigDecimal powerDischarge) { + this.powerDischarge = powerDischarge; + } + + public BigDecimal getWaterFlow() { + return waterFlow; + } + + public void setWaterFlow(BigDecimal waterFlow) { + this.waterFlow = waterFlow; + } + + public BigDecimal getEcoFlow() { + return ecoFlow; + } + + public void setEcoFlow(BigDecimal ecoFlow) { + this.ecoFlow = ecoFlow; + } + + public BigDecimal getDischargeFlow() { + return dischargeFlow; + } + + public void setDischargeFlow(BigDecimal dischargeFlow) { + this.dischargeFlow = dischargeFlow; + } + + public BigDecimal getIrrigationFlow() { + return irrigationFlow; + } + + public void setIrrigationFlow(BigDecimal irrigationFlow) { + this.irrigationFlow = irrigationFlow; + } + + public BigDecimal getAqueductWaterLevel() { + return aqueductWaterLevel; + } + + public void setAqueductWaterLevel(BigDecimal aqueductWaterLevel) { + this.aqueductWaterLevel = aqueductWaterLevel; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzSdJcData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzSdJcData.java new file mode 100644 index 0000000..eded5d1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/HzSdJcData.java @@ -0,0 +1,199 @@ +package org.springblade.general_dispatching.business.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.math.BigDecimal; +import java.util.Date; + +@ApiModel(value = "电站/机组数据表", description = "电站/机组数据表") +public class HzSdJcData { + @ApiModelProperty( value = "id", notes = "主键", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "powerId", notes = "电站ID", dataType = "Integer") + private Integer powerId; + private String powerName; + @ApiModelProperty( value = "jzId", notes = "机组ID", dataType = "Integer") + private Integer jzId; + private String jzName; + @ApiModelProperty( value = "dt", notes = "时间", dataType = "Date") + private Date dt; + @ApiModelProperty( value = "periodType", notes = "周期类型(D,H,M,S)", dataType = "String") + private String periodType; + @ApiModelProperty( value = "dataType", notes = "数据类型(预测值,计划值,计算值,实测值 )", dataType = "String") + private String dataType; + @ApiModelProperty( value = "waterLevel", notes = "水位", dataType = "BigDecimal") + private BigDecimal waterLevel; + @ApiModelProperty( value = "tailWaterLevel", notes = "尾水位", dataType = "BigDecimal") + private BigDecimal tailWaterLevel; + @ApiModelProperty( value = "productiveHead", notes = "发电水头(m)", dataType = "BigDecimal") + private BigDecimal productiveHead; + @ApiModelProperty( value = "powerDischarge", notes = "发电流量(m³/s)", dataType = "BigDecimal") + private BigDecimal powerDischarge; + @ApiModelProperty( value = "powerLoad", notes = "发电负荷", dataType = "BigDecimal") + private BigDecimal powerLoad; + @ApiModelProperty( value = "generatedEnergy", notes = "日发电量", dataType = "BigDecimal") + private BigDecimal generatedEnergy; + @ApiModelProperty( value = "waterRate", notes = "耗水率(m³/kw·h)", dataType = "Integer") + private BigDecimal waterRate; + @ApiModelProperty( value = "efficiency", notes = "筷子娄机组平均运行综合效率", dataType = "Integer") + private BigDecimal efficiency; + @ApiModelProperty( value = "discardedWater", notes = "弃水量", dataType = "BigDecimal") + private BigDecimal discardedWater; + @ApiModelProperty( value = "channelInflow", notes = "渠道来水量", dataType = "BigDecimal") + private BigDecimal channelInflow; + + private String yearMonthDayHour; + + public String getPowerName() { + return powerName; + } + + public void setPowerName(String powerName) { + this.powerName = powerName; + } + + public String getJzName() { + return jzName; + } + + public void setJzName(String jzName) { + this.jzName = jzName; + } + + public String getYearMonthDayHour() { + return yearMonthDayHour; + } + + public void setYearMonthDayHour(String yearMonthDayHour) { + this.yearMonthDayHour = yearMonthDayHour; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPowerId() { + return powerId; + } + + public void setPowerId(Integer powerId) { + this.powerId = powerId; + } + + public Integer getJzId() { + return jzId; + } + + public void setJzId(Integer jzId) { + this.jzId = jzId; + } + + public Date getDt() { + return dt; + } + + public void setDt(Date dt) { + this.dt = dt; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public BigDecimal getWaterLevel() { + return waterLevel; + } + + public void setWaterLevel(BigDecimal waterLevel) { + this.waterLevel = waterLevel; + } + + public BigDecimal getTailWaterLevel() { + return tailWaterLevel; + } + + public void setTailWaterLevel(BigDecimal tailWaterLevel) { + this.tailWaterLevel = tailWaterLevel; + } + + public BigDecimal getProductiveHead() { + return productiveHead; + } + + public void setProductiveHead(BigDecimal productiveHead) { + this.productiveHead = productiveHead; + } + + public BigDecimal getPowerDischarge() { + return powerDischarge; + } + + public void setPowerDischarge(BigDecimal powerDischarge) { + this.powerDischarge = powerDischarge; + } + + public BigDecimal getPowerLoad() { + return powerLoad; + } + + public void setPowerLoad(BigDecimal powerLoad) { + this.powerLoad = powerLoad; + } + + public BigDecimal getGeneratedEnergy() { + return generatedEnergy; + } + + public void setGeneratedEnergy(BigDecimal generatedEnergy) { + this.generatedEnergy = generatedEnergy; + } + + public BigDecimal getWaterRate() { + return waterRate; + } + + public void setWaterRate(BigDecimal waterRate) { + this.waterRate = waterRate; + } + + public BigDecimal getEfficiency() { + return efficiency; + } + + public void setEfficiency(BigDecimal efficiency) { + this.efficiency = efficiency; + } + + public BigDecimal getDiscardedWater() { + return discardedWater; + } + + public BigDecimal getChannelInflow() { + return channelInflow; + } + + public void setChannelInflow(BigDecimal channelInflow) { + this.channelInflow = channelInflow; + } + + public void setDiscardedWater(BigDecimal discardedWater) { + this.discardedWater = discardedWater; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/InstanceSourceEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/InstanceSourceEnum.java new file mode 100644 index 0000000..a734075 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/InstanceSourceEnum.java @@ -0,0 +1,43 @@ +package org.springblade.general_dispatching.business.entity; + +public enum InstanceSourceEnum { + ONE("01","水库"), + TWO("02","电站"), + THREE("03","机组"), + FOUR("04","闸门"), + FIVE("05","合计"); + + private String sourceCode; + private String sourceName; + + InstanceSourceEnum(String sourceCode,String sourceName){ + this.sourceCode = sourceCode; + this.sourceName = sourceName; + } + + public String getSourceCode() { + return sourceCode; + } + + public void setSourceCode(String sourceCode) { + this.sourceCode = sourceCode; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public static Boolean existSource(String sourceCode) { + InstanceSourceEnum[] sourceEnums = InstanceSourceEnum.values(); + for (InstanceSourceEnum sourceEnum : sourceEnums) { + if(sourceEnum.getSourceCode().equals(sourceCode)){ + return true; + } + } + return false; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ModelParamTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ModelParamTypeEnum.java new file mode 100644 index 0000000..6d009b9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ModelParamTypeEnum.java @@ -0,0 +1,52 @@ +package org.springblade.general_dispatching.business.entity; + +public enum ModelParamTypeEnum { + ONE("01","常量"), + TWO("02","定值"), + THREE("03","变量"), + FOUR("04","热点实时"), + FIVE("05","热点历史"), + SIX("06","hzinfo数据库取值"), + SEVEN("07","其他模型关联"), + EIGHT("08","其他"); + private String code; + private String name; + + ModelParamTypeEnum(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; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumName(String code) { + ModelParamTypeEnum[] alarmGrades = ModelParamTypeEnum.values(); + for (ModelParamTypeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ReservoirInstanceResultEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ReservoirInstanceResultEnum.java new file mode 100644 index 0000000..3106de4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ReservoirInstanceResultEnum.java @@ -0,0 +1,40 @@ +package org.springblade.general_dispatching.business.entity; + +public enum ReservoirInstanceResultEnum { + RESERVOIR_14010101("14010101","电站用水量信息","用水量"), + RESERVOIR_15010101("15010101","电站用水量信息","用水量"); + + private String type; + private String typeName; + private String dataTypeName; + + ReservoirInstanceResultEnum(String type,String typeName,String dataTypeName){ + this.type = type; + this.typeName = typeName; + this.dataTypeName = dataTypeName; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getDataTypeName() { + return dataTypeName; + } + + public void setDataTypeName(String dataTypeName) { + this.dataTypeName = dataTypeName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeEnum.java new file mode 100644 index 0000000..8ad5221 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeEnum.java @@ -0,0 +1,32 @@ +package org.springblade.general_dispatching.business.entity; + +public enum StatisticsDataTypeEnum { + ONE("01","预测值"), + TWO("02","计划值"), + THREE("03","计算值"), + FOUR("04","实测值"); + + private String code; + private String name; + + StatisticsDataTypeEnum(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeFieldEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeFieldEnum.java new file mode 100644 index 0000000..033f386 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsDataTypeFieldEnum.java @@ -0,0 +1,41 @@ +package org.springblade.general_dispatching.business.entity; + +public enum StatisticsDataTypeFieldEnum { + RAINFALL("降雨量(mm)","RAINFALL"), + RESERVOIR_WATER_LEVEL("库水位(m)","RESERVOIR_WATER_LEVEL"), + + WATER_LEVEL("水位(m)","WATER_LEVEL"), + TAILWATER_LEVEL("尾水位(m)","TAILWATER_LEVEL"), + PRODUCTIVE_HEAD("发电水头(m)","PRODUCTIVE_HEAD"), + POWER_DISCHARGE("发电流量(m³/s)","POWER_DISCHARGE"), + GENERATED_ENERGY("发电负荷(kW.h)","GENERATED_ENERGY"), + POWER_LOAD("日发电量(kW.h)","POWER_LOAD"), + + + WATER_FLOW("泄洪流量(m³/s)","WATER_FLOW"), + GATAGE("闸门开度(m)","GATAGE"); + + private String name; + private String col; + + StatisticsDataTypeFieldEnum(String name, String col){ + this.name=name; + this.col=col; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCol() { + return col; + } + + public void setCol(String col) { + this.col = col; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsTableEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsTableEnum.java new file mode 100644 index 0000000..616e013 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/StatisticsTableEnum.java @@ -0,0 +1,30 @@ +package org.springblade.general_dispatching.business.entity; + +public enum StatisticsTableEnum { + RESERVOIR_DATA("reservoir_data","水库统计表"), + IRRBDGATE_DATA("irrbdgate_data","闸门统计表"), + SD_JC_DATA("sd_jc_data","电站机组统计表"); + private String code; + private String name; + + StatisticsTableEnum(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/TableTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/TableTypeEnum.java new file mode 100644 index 0000000..506a470 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/TableTypeEnum.java @@ -0,0 +1,48 @@ +package org.springblade.general_dispatching.business.entity; + +public enum TableTypeEnum { + IRRBDGATE_DATA("irrbdgate_data","闸门数据表"), + RESERVOIR_DATA("reservoir_data","水库数据表"), + SD_JC_DATA("sd_jc_data","电站/机组数据表"); + + private String code; + private String name; + + TableTypeEnum(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; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumName(String code) { + TableTypeEnum[] alarmGrades = TableTypeEnum.values(); + for (TableTypeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ValueTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ValueTypeEnum.java new file mode 100644 index 0000000..2add58b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/ValueTypeEnum.java @@ -0,0 +1,33 @@ +package org.springblade.general_dispatching.business.entity; + +public enum ValueTypeEnum { + COMMON("common","瞬时值"), + SUM("sum","求和"), + MAX("max","最大值"), + MIN("min","最小值"), + AVG("avg","平均值"); + + private String name; + private String code; + + ValueTypeEnum(String code,String name){ + this.name = name; + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/WaterAnalysisDataCodeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/WaterAnalysisDataCodeEnum.java new file mode 100644 index 0000000..9f4d242 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/entity/WaterAnalysisDataCodeEnum.java @@ -0,0 +1,106 @@ +package org.springblade.general_dispatching.business.entity; + +public enum WaterAnalysisDataCodeEnum { + + INFLOW("inflow","入库流量(m³/s)","INFLOW"), + POWERDISCHARGE("powerdischarge","水库发电流量(m³/s)","POWER_DISCHARGE"), + WATERFLOW("waterflow","水库泄洪流量(m³/s)","WATER_FLOW"), + ECOFLOW("ecoflow","水库生态流量(m³/s)","ECO_FLOW"), + OUTBOUNDTRAFFIC("outboundtraffic","水库出库流量(m³/s)","OUTBOUND_TRAFFIC"), + STORAGEWATER("storagewater","存库流量(m³/s)","STORAGE_WATER"), + DISCARDEDWATER("discardedwater","弃水量(m³/s)","DISCARDED_WATER"), + EFFICIENCY("efficiency","机组平均运行综合效率","EFFICIENCY"), + WATERRATE("waterrate","耗水率(m³/kw·h)","WATER_RATE"), + GENERATEDENERGY("generatedenergy","日发电量","GENERATED_ENERGY"), + + PRODUCTIVE_HEAD("productivehead","发电水头(m)","PRODUCTIVE_HEAD"), + CHANNEL_INFLOW("channelinflow","渠道来水量(m³/s)","CHANNEL_INFLOW"); + + + private String code; + private String parentCode; + private String name; + private String colName; + + WaterAnalysisDataCodeEnum(String code, String name, String colName){ + this.code = code; + this.name = name; + this.colName = colName; + } + + 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; + } + + public String getParentCode() { + return parentCode; + } + + public void setParentCode(String parentCode) { + this.parentCode = parentCode; + } + + public String getColName() { + return colName; + } + + public void setColName(String colName) { + this.colName = colName; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumName(String code) { + WaterAnalysisDataCodeEnum[] alarmGrades = WaterAnalysisDataCodeEnum.values(); + for (WaterAnalysisDataCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumColName(String code) { + WaterAnalysisDataCodeEnum[] alarmGrades = WaterAnalysisDataCodeEnum.values(); + for (WaterAnalysisDataCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getColName(); + } + } + return ""; + } + + public static String getParentCode(String code) { + WaterAnalysisDataCodeEnum[] alarmGrades = WaterAnalysisDataCodeEnum.values(); + for (WaterAnalysisDataCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getParentCode(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/enums/HistoryDataCalcType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/enums/HistoryDataCalcType.java new file mode 100644 index 0000000..ff0e093 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/enums/HistoryDataCalcType.java @@ -0,0 +1,35 @@ +package org.springblade.general_dispatching.business.enums; + +public enum HistoryDataCalcType { + ZERO(0,"整点值/最早值"), + ONE(1,"最大值"), + TWO(2,"最小值"), + THREE(3,"平均值"), + FOUR(4,"累计值/和值"), + FIVE(5,"变化值/差值"), + SIX(6,"最新值"); + + Integer strategy; + String desc; + + HistoryDataCalcType(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.java new file mode 100644 index 0000000..492946a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.business.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.business.entity.HzIrrBdGateData; + +import java.util.List; +import java.util.Map; + +public interface HzIrrBdGateDataMapper { + List selectData(@Param("param") Map param); + List> selectBySql(@Param("param") Map param); + int update(HzIrrBdGateData irrBdGateData); + + List selectDataByMonth(@Param("param") Map param); + List selectDataByDay(@Param("param") Map param); + List selectDataByHour(@Param("param") Map param); + + IPage selectDataByMonth(@Param("param") Map param, IPage page); + IPage selectDataByDay(@Param("param") Map param, IPage page); + IPage selectDataByHour(@Param("param") Map param, IPage page); + + void batchUpdate(List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.xml new file mode 100644 index 0000000..be5479e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzIrrBdGateDataMapper.xml @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + result.ID,result.STCD,result.STROBE_CODE,result.DT,result.PERIOD_TYPE,result.DATA_TYPE, + result.GATAGE,result.WATER_FLOW,result.STATUS,result.WATER_LEVEL,result.TAILWATER_LEVEL, + info.`NAME` RESERVOIR_NAME + + + + + + + + + + + + + + update IRRBDGATE_DATA + + + + + when id=#{i.id} then #{i.gatage} + + + + + + + when id=#{i.id} then #{i.waterFlow} + + + + + + + + when id=#{i.id} then #{i.status} + + + + + + + + when id=#{i.id} then #{i.waterLevel} + + + + + + + when id=#{i.id} then #{i.tailWaterLevel} + + + + + where + + id=#{i.id} + + + + + UPDATE + IRRBDGATE_DATA + + + GATAGE = #{gatage}, + + + WATER_FLOW=#{waterFlow}, + + + STATUS=#{status}, + + + WATER_LEVEL=#{waterLevel}, + + + TAILWATER_LEVEL=#{tailWaterLevel} + + + WHERE 1=1 + + AND STCD =#{stcd,jdbc=VARCHAR} + + + + AND DT = #{dt} + + + AND DATA_TYPE=#{dataType,jdbc=CHAR} + + + AND ID=#{id} + + + AND STROBE_CODE=#{strobeCode} + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.java new file mode 100644 index 0000000..fee478d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.business.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.business.entity.HzReservoirData; + +import java.util.List; +import java.util.Map; + +public interface HzReservoirDataMapper { + List selectData(@Param("param") Map param); + List> selectBySql(@Param("param") Map param); + List selectDataByMonth(@Param("param") Map param); + List selectDataByDay(@Param("param") Map param); + List selectDataByHour(@Param("param") Map param); + + int update(HzReservoirData reservoirData); + + IPage selectDataByMonth(@Param("param") Map param, IPage page); + IPage selectDataByDay(@Param("param") Map param, IPage page); + IPage selectDataByHour(@Param("param") Map param, IPage page); + + void batchUpdate(List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.xml new file mode 100644 index 0000000..dc92ba0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzReservoirDataMapper.xml @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + result.ID,result.STCD,result.DT,result.PERIOD_TYPE,result.DATA_TYPE, + result.RAINFALL_RUNOFF,result.DAILY_RUNOFF,result.RSCP,result.RESERVOIR_WATER_LEVEL, + result.RAINFALL,result.INFLOW,result.OUTBOUND_TRAFFIC,result.STORAGE_WATER, + result.POWER_DISCHARGE,result.WATER_FLOW,result.ECO_FLOW,result.DISCHARGE_FLOW, + result.IRRIGATION_FLOW,info.RTUNM RESERVOIR_NAME + + + + + + + + + + + + + + + update + RESERVOIR_DATA + + + RAINFALL_RUNOFF=#{rainfallRunoff,jdbcType=DECIMAL}, + + + DAILY_RUNOFF=#{dailyRunoff,jdbcType=DECIMAL}, + + + RSCP=#{rscp,jdbcType=DECIMAL}, + + + RESERVOIR_WATER_LEVEL=#{reservoirWaterLevel,jdbcType=DECIMAL}, + + + RAINFALL=#{rainFall,jdbcType=DECIMAL}, + + + INFLOW=#{inFlow,jdbcType=DECIMAL}, + + + OUTBOUND_TRAFFIC=#{outboundTraffic,jdbcType=DECIMAL}, + + + STORAGE_WATER=#{storageWater,jdbcType=DECIMAL}, + + + POWER_DISCHARGE=#{powerDischarge,jdbcType=DECIMAL}, + + + WATER_FLOW=#{waterFlow,jdbcType=DECIMAL}, + + + ECO_FLOW=#{ecoFlow,jdbcType=DECIMAL}, + + + DISCHARGE_FLOW=#{dischargeFlow,jdbcType=DECIMAL}, + + + IRRIGATION_FLOW=#{irrigationFlow,jdbcType=DECIMAL}, + + + where 1=1 + + and ID=#{id,jdbcType=INTEGER} + + + and STCD=#{stcd ,jdbcType=VARCHAR} + + + and DT=#{dt, jdbcType=TIMESTAMP} + + + and DATA_TYPE=#{dataType, jdbcType=VARCHAR} + + + + + update IRRBDGATE_DATA + + + + + when id=#{i.id} then #{i.rainfallRunoff} + + + + + + + when id=#{i.id} then #{i.dailyRunoff} + + + + + + + when id=#{i.id} then #{i.rscp} + + + + + + + when id=#{i.id} then #{i.reservoirWaterLevel} + + + + + + + when id=#{i.id} then #{i.rainFall} + + + + + + + when id=#{i.id} then #{i.inFlow} + + + + + + + when id=#{i.id} then #{i.outboundTraffic} + + + + + + + when id=#{i.id} then #{i.storageWater} + + + + + + + when id=#{i.id} then #{i.powerDischarge} + + + + + + + when id=#{i.id} then #{i.waterFlow} + + + + + + + when id=#{i.id} then #{i.ecoFlow} + + + + + + + when id=#{i.id} then #{i.dischargeFlow} + + + + + + + + when id=#{i.id} then #{i.irrigationFlow} + + + + + where + + id=#{i.id} + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.java new file mode 100644 index 0000000..dddab71 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.business.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.business.entity.HzSdJcData; + +import java.util.List; +import java.util.Map; + +public interface HzSdJcDataMapper { + List selectData(@Param("param") Map param); + List> selectBySql(@Param("param") Map param); + List selectDataByMonth(@Param("param") Map param); + List selectDataByDay(@Param("param") Map param); + List selectDataByHour(@Param("param") Map param); + + IPage selectDataByMonth(@Param("param") Map param, IPage page); + IPage selectDataByDay(@Param("param") Map param, IPage page); + IPage selectDataByHour(@Param("param") Map param, IPage page); + + int update(HzSdJcData sdJcData); + + void batchUpdate(List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.xml new file mode 100644 index 0000000..9dc3a20 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/mapper/HzSdJcDataMapper.xml @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + result.ID, result.POWER_ID, result.JZ_ID, result.DT, result.PERIOD_TYPE, result.DATA_TYPE, + result.WATER_LEVEL, result.TAILWATER_LEVEL, result.PRODUCTIVE_HEAD, result.POWER_DISCHARGE, + result.POWER_LOAD, result.GENERATED_ENERGY, result.WATER_RATE, result.EFFICIENCY, result.DISCARDED_WATER, + sdz.SDZMC POWER_NAME,jz.FDJZBH JZ_NAME + + + + + + + + + + + + + + + + + + + update + SD_JC_DATA + + + WATER_LEVEL=#{waterLevel,jdbcType=DECIMAL}, + + + TAILWATER_LEVEL=#{tailWaterLevel,jdbcType=DECIMAL}, + + + PRODUCTIVE_HEAD=#{productiveHead,jdbcType=DECIMAL}, + + + POWER_DISCHARGE=#{powerDischarge,jdbcType=DECIMAL}, + + + POWER_LOAD=#{powerLoad,jdbcType=DECIMAL}, + + + GENERATED_ENERGY=#{generatedEnergy,jdbcType=DECIMAL}, + + + WATER_RATE=#{waterRate,jdbcType=DECIMAL}, + + + EFFICIENCY=#{efficiency,jdbcType=DECIMAL}, + + + DISCARDED_WATER=#{discardedWater,jdbcType=DECIMAL} + + + where 1=1 + + and ID=#{id,jdbcType=INTEGER} + + + and POWER_ID=#{powerId,jdbcType=INTEGER} + + + and JZ_ID=#{jzId,jdbcType=INTEGER} + + + and DT=#{dt,jdbcType=TIMESTAMP} + + + and PERIOD_TYPE=#{periodType,jdbcType=CHAR} + + + and DATA_TYPE=#{dataType,jdbcType=VARCHAR} + + + + + update IRRBDGATE_DATA + + + + + when id=#{i.id} then #{i.waterLevel} + + + + + + + when id=#{i.id} then #{i.tailWaterLevel} + + + + + + + when id=#{i.id} then #{i.productiveHead} + + + + + + + when id=#{i.id} then #{i.powerDischarge} + + + + + + + when id=#{i.id} then #{i.powerLoad} + + + + + + + when id=#{i.id} then #{i.generatedEnergy} + + + + + + + when id=#{i.id} then #{i.waterRate} + + + + + + + when id=#{i.id} then #{i.efficiency} + + + + + + + when id=#{i.id} then #{i.discardedWater} + + + + + where + + id=#{i.id} + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonAssignTaskService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonAssignTaskService.java new file mode 100644 index 0000000..13f96df --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonAssignTaskService.java @@ -0,0 +1,7 @@ +package org.springblade.general_dispatching.business.service; + +public interface HzCommonAssignTaskService { + boolean assignFloodTask(Integer taskId, String userId, String execUser); + boolean assignTask(Integer taskId, String userId, String execUser, String power); + boolean onceTask(Integer taskId, String userId, String execUser, String power); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonInstanceService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonInstanceService.java new file mode 100644 index 0000000..3fd9e65 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCommonInstanceService.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.business.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceVo; +import org.springblade.general_dispatching.task.vo.HzTaskVo; + +import java.util.List; +import java.util.Map; + +public interface HzCommonInstanceService { + IPage listPage(String instanceCode, Integer bluePrintId, Integer modelConfigId, String stateCode, IPage pageParam); + Map createInstance(Map param); +// int createGroupChildInstance(Map param); + boolean delete(Integer instanceId); + ModelInstanceVo getInstanceById(Integer instanceId); + List getInstanceIdByBluePrintId(Integer bluePrintId); + Map getInstanceInfo(Integer instanceId); + List getTaskId(Integer bluePrintId); + Boolean updateModelInstanceResult(String userId, Integer instanceId, Map param); + List getInstanceResultById(Integer instanceId); + List getInstanceParamByInstanceId(Integer instanceId); + List> getTaskTypeCode(Integer instanceId); + boolean voidInstance(Integer instanceId, Integer bluePrintId); + List selectByModelCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCreateModelTaskService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCreateModelTaskService.java new file mode 100644 index 0000000..b841bd6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzCreateModelTaskService.java @@ -0,0 +1,10 @@ +package org.springblade.general_dispatching.business.service; + + +import org.springblade.core.tool.api.R; + +import java.util.Map; + +public interface HzCreateModelTaskService { + R createModelTask(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealEightTypeDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealEightTypeDataService.java new file mode 100644 index 0000000..bffacd9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealEightTypeDataService.java @@ -0,0 +1,7 @@ +package org.springblade.general_dispatching.business.service; + +import java.util.Map; + +public interface HzDealEightTypeDataService { + String queryEightTypeData(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealModelParamDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealModelParamDataService.java new file mode 100644 index 0000000..c8d3232 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzDealModelParamDataService.java @@ -0,0 +1,10 @@ +package org.springblade.general_dispatching.business.service; + +import org.springblade.core.tool.api.R; + +import java.text.ParseException; + +public interface HzDealModelParamDataService { + R getByCode(Integer modelConfigId, String mCode, Integer isGroup,String stationId, + Integer instanceId, Integer schemeId) throws ParseException; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzIrrBdGateDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzIrrBdGateDataService.java new file mode 100644 index 0000000..afdb8ae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzIrrBdGateDataService.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.business.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.HzIrrBdGateData; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +public interface HzIrrBdGateDataService { + List selectData(Map param); + List> selectBySql(Map param); + IPage pageList(String dateType, String start, String end, String stcd, String strobeCode, IPage pageParam); + void export(String dateType, String start, String end, String stcd, String strobeCode, HttpServletResponse response); + String exportCheck(String dateType, String start, String end, String stcd, String strobeCode); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzReservoirDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzReservoirDataService.java new file mode 100644 index 0000000..8fc2c2d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzReservoirDataService.java @@ -0,0 +1,19 @@ +package org.springblade.general_dispatching.business.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.HzReservoirData; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +public interface HzReservoirDataService { + List selectData(Map param); + List> selectBySql(Map param); + + IPage pageList(String dateType, String start, String end, String stcd, IPage page); + + void export(String dateType, String start, String end, String stcd, HttpServletResponse response); + + List selectDataByHour(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzSdJcDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzSdJcDataService.java new file mode 100644 index 0000000..ec67b07 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/HzSdJcDataService.java @@ -0,0 +1,18 @@ +package org.springblade.general_dispatching.business.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.HzSdJcData; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +public interface HzSdJcDataService { + List selectDataByHour(Map param); + List selectData(Map param); + List> selectBySql(Map param); + + IPage pageList(String dateType, String start, String end, Integer powerId, String jzId, IPage page); + + void export(String dateType, String start, String end, Integer powerId, String jzId, HttpServletResponse response); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonAssignTaskServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonAssignTaskServiceImpl.java new file mode 100644 index 0000000..52351ce --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonAssignTaskServiceImpl.java @@ -0,0 +1,58 @@ +package org.springblade.general_dispatching.business.service.impl; + +import org.springblade.general_dispatching.business.service.HzCommonAssignTaskService; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class HzCommonAssignTaskServiceImpl implements HzCommonAssignTaskService { + @Autowired + HzTaskManageService hzTaskManageService; + + @Override + public boolean assignFloodTask(Integer taskId, String userId,String execUser) { + HzTask task=new HzTask(); + task.setId(taskId); + List tasks = hzTaskManageService.selectByParam(task); + if(tasks==null || tasks.isEmpty()){ + return false; + } + task = tasks.get(0); + if(task==null){ + return false; + } + task.setCreator(userId); + boolean flag=hzTaskManageService.assign(task,execUser,true); + return flag; + } + + + @Override + public boolean onceTask(Integer taskId, String userId,String execUser,String power) { + boolean flag=assignTask(taskId, userId,execUser, power); + return flag; + } + + @Override + public boolean assignTask(Integer taskId, String userId,String execUser,String power) { + HzTask task=new HzTask(); + task.setId(taskId); + List tasks = hzTaskManageService.selectByParam(task); + if(tasks==null){ + return false; + } + task = tasks.get(0); + if(task==null){ + return false; + } + task.setCreator(userId); + task.setExecUser(execUser); + task.setStartDt(new Date()); + return hzTaskManageService.assign(task,execUser,true); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonInstanceServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonInstanceServiceImpl.java new file mode 100644 index 0000000..b795662 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCommonInstanceServiceImpl.java @@ -0,0 +1,387 @@ +package org.springblade.general_dispatching.business.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.general_dispatching.business.service.HzCommonInstanceService; +import org.springblade.general_dispatching.business.util.Constant; +import org.springblade.general_dispatching.model_config.mapper.ModelConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupItemConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springblade.general_dispatching.model_instance.entity.BluePrint; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.service.BluePrintService; +import org.springblade.general_dispatching.model_instance.service.DealDataService; +import org.springblade.general_dispatching.model_instance.service.ModelHiInstanceService; +import org.springblade.general_dispatching.model_instance.vo.*; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.entity.HzTaskTypeCodeEnum; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.vo.HzTaskVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class HzCommonInstanceServiceImpl implements HzCommonInstanceService { + private static final Logger LOGGER = LoggerFactory.getLogger(HzCommonInstanceServiceImpl.class); + @Autowired + private ModelHiInstanceService modelHiInstanceService; + + @Autowired + ModelInstanceManager modelInstanceManager; + + @Autowired + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + BluePrintService bluePrintService; + + @Autowired + ModelConfigMapper modelConfigMapper; + + @Autowired + ModelGroupConfigMapper modelGroupConfigMapper; + + @Autowired + DealDataService dealDataService; + + @Autowired + HzTaskManageService hzTaskManageService; + + @Autowired + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Override + public IPage listPage(String instanceCode, Integer bluePrintId, + Integer modelConfigId, String stateCode, + IPage pageParam) { + ModelInstanceInfoQuery query =new ModelInstanceInfoQuery(); + if(stateCode!=null && !"".equals(stateCode)) { + String str[] = stateCode.split(","); + query.setStateCode(Arrays.asList(str)); + } + + if(bluePrintId!=null) { + query.setBluePrintId(bluePrintId); + } + + if(modelConfigId!=null && !"".equals(modelConfigId)) { + query.setModelConfigId(modelConfigId); + } + + IPage modelInstances=modelHiInstanceService.getModelInstances(query,pageParam); + return modelInstances; + } + + @Override + public Map createInstance(Map param) {//需要isGroup参数 + String creater=param.get("creater").toString(); + Integer modelConfigId = Integer.valueOf(String.valueOf(param.get("modelConfigId"))); + Integer isGroup =Integer.valueOf(String.valueOf(param.get("isGroup"))); + + List list = modelParamConfigMapper.selectByModel(param); + if(list==null || list.isEmpty()){ + return null; + } + + param.put("code",list.get(0).getMCode()); + //存方案 + //创建方案 + String remark=""; + String refModule=""; + String typeCode=""; + String applyPeriod=""; + Integer isCreateTask=0; + String refModuleName=""; + String modelName=""; + + if(isGroup==0) {//不是组 + List modelConfigVos = modelConfigMapper.selectByModel(param); + ModelConfigVo modelConfigVo= modelConfigVos.get(0); + remark=modelConfigVo.getRemark(); + applyPeriod=modelConfigVo.getApplyPeriod(); + typeCode=modelConfigVo.getTypeCode(); + refModule=modelConfigVo.getRefModule(); + isCreateTask=modelConfigVo.getIsCreateTask(); + modelName = modelConfigVo.getModelName(); + refModuleName=modelConfigVo.getRefModuleName(); + }else{//组 + Map groupParam=new HashMap<>(); + Integer groupId=Integer.valueOf(param.get("groupId").toString()); + //查组 + groupParam.put("groupId",groupId); + List groupConfigVos=modelGroupConfigMapper.selectByModel(groupParam); + ModelGroupConfigVo groupConfigVo=groupConfigVos.get(0); + applyPeriod=groupConfigVo.getApplyPeriod(); + typeCode=groupConfigVo.getTypeCode(); + refModule=groupConfigVo.getRefModule(); + remark=modelName; + refModuleName = groupConfigVo.getRefModuleName(); + //查组项 + Map groupItemParam=new HashMap<>(); + groupItemParam.put("groupId",groupConfigVo.getId()); + groupItemParam.put("code",param.get("code")); + List groupItems=modelGroupItemConfigMapper.selectByModel(groupItemParam); + ModelGroupItemConfigVo groupItem=groupItems.get(0); + isCreateTask=groupItem.getIsCreateTask(); + modelName = groupItem.getModelName(); + } + + Integer bluePrintId =null; + if(param.get("bluePrintId")!=null && !"".equals(param.get("bluePrintId"))) { + bluePrintId = Integer.valueOf(param.get("bluePrintId").toString()); + }else{ + BluePrint bluePrint = new BluePrint(); + bluePrint.setName(refModuleName + "-" + modelName + "-" + System.currentTimeMillis()); + //增加字段 + bluePrint.setRefModule(refModule);//来水预测,水量调度,防洪调度,发电调度,水务计算,效益分析 + bluePrint.setApplyPeriod(applyPeriod);//长期,短期,实时 + bluePrint.setTypeCode(typeCode);//梯级,单库 + + bluePrint.setStatus(BluePrintStatusEnum.ONE.getCode()); + bluePrint.setRemark(String.valueOf(param.get("bluePrintRemark"))); + bluePrint.setCreater(creater); + bluePrint.setLastUpdater(creater); + bluePrint.setCreateTime(new Date()); + bluePrint.setLastUpdateTime(new Date()); + bluePrintId = bluePrintService.insert(bluePrint); + } + + + ModelInstanceVo modelInstanceVo=new ModelInstanceVo(); + //设置模型实例 + setModelInstance(modelInstanceVo, creater, remark, + bluePrintId, modelConfigId,isGroup,param,isCreateTask); + //设置模型参数值 + List modelInstanceParams=new ArrayList<>(); + + for (ModelParamConfigVo modelParam:list){ + ModelInstanceParam modelInstanceParam=new ModelInstanceParam(); + String paramName=modelParam.getCode(); + + modelInstanceParam.setName(modelParam.getName()); + modelInstanceParam.setPno(modelParam.getPno()); + modelInstanceParam.setFieldType(modelParam.getFieldType()); + modelInstanceParam.setCode(paramName); + modelInstanceParam.setTypeCode(modelParam.getTypeCode()); + String value =""; + if("kzlStatus".equals(paramName) || "skStatus".equals(paramName)){ + value = param.get(paramName).toString(); + }else{ + if(param.get(paramName)!=null) { + value = param.get(paramName).toString(); + } + } + + modelInstanceParam.setValue(value); + + modelInstanceParams.add(modelInstanceParam); + } + + modelInstanceVo.setParams(modelInstanceParams); + Integer instanceId= modelInstanceManager.createModelInstance(modelInstanceVo); + Map data=new HashMap<>(); + data.put("instanceId",instanceId); + data.put("bluePrintId",bluePrintId); + return data; + } + +// @Override +// public int createGroupChildInstance(Map param) { +// Integer modelConfigId = Integer.valueOf(param.get("modelConfigId").toString()); +// Integer bluePrintId = Integer.valueOf(param.get("bluePrintId").toString()); +// String creater=param.get("creater").toString(); +// List list = modelParamConfigMapper.selectByModel(param); +// ModelConfigVo modelConfigVo= new ModelConfigVo(); +// String remark=modelConfigVo.getRemark(); +// //设置模型实例 +// ModelInstanceVo modelInstanceVo=new ModelInstanceVo(); +// //设置模型实例 +// setModelInstance(modelInstanceVo, creater, remark, +// bluePrintId, modelConfigId); +// +// //设置模型参数值 +// List modelInstanceParams=new ArrayList<>(); +// for (ModelParamConfigVo modelParam:list){ +// String paramName=modelParam.getCode(); +// ModelInstanceParam modelInstanceParam=new ModelInstanceParam(); +// modelInstanceParam.setName(modelParam.getName()); +// modelInstanceParam.setCode(paramName); +// modelInstanceParam.setTypeCode(modelParam.getTypeCode()); +// String value =""; +// if("kzlStatus".equals(paramName) || "skStatus".equals(paramName)){ +// value = param.get(paramName).toString(); +// } else if("Q_5".equals(paramName)) { +// Integer instanceId = Integer.valueOf(param.get("instanceId").toString()); +// value=""; +// List results=modelInstanceManager.getModelInstanceResult(instanceId); +// for (ModelInstanceResultVo result:results){ +// if (SourceEnum.ONE.getSourceCode().equals(result.getSourceCode())){ +// if(ReservoirInstanceResultEnum.RESERVOIR_14010101.getType().equals(result.getType()) +// || ReservoirInstanceResultEnum.RESERVOIR_15010101.getType().equals(result.getType())){ +// if("".equals(value)){ +// value=result.getValue(); +// }else{ +// value+=","+result.getValue(); +// } +// } +// } +// } +// }else{ +// value = modelParam.getValue(); +// } +// +// modelInstanceParam.setValue(value); +// modelInstanceParams.add(modelInstanceParam); +// } +// +// modelInstanceVo.setParams(modelInstanceParams); +// return modelInstanceManager.createModelInstance(modelInstanceVo); +// } + + private void setModelInstance(ModelInstanceVo modelInstanceVo,String creater,String remark, + Integer bluePrintId,Integer modelConfigId, + Integer isGroup,Map param,Integer isCreateTask){ + //设置模型实例 + ModelInstanceInfoVo instance=new ModelInstanceInfoVo(); + instance.setCreater(creater); + instance.setBluePrintId(bluePrintId); + instance.setModelConfigId(modelConfigId); + instance.setRemark(remark); + instance.setIsGroup(isGroup); + instance.setLastUpdater(creater); + if(isCreateTask !=null && !"".equals(isCreateTask)) { + instance.setIsCreateTask(isCreateTask); + }else{ + instance.setIsCreateTask(0); + } + instance.setCode(String.valueOf(param.get("code"))); + modelInstanceVo.setModelInstance(instance); + } + + + /** + * 删除实例结果 + * @param instanceId 方案id + * @return 返回删除操作消息 + */ + @Override + public boolean delete(Integer instanceId) { + return modelInstanceManager.delModelInstance(instanceId); + } + /** + * 获取单个运行实例信息 + * @param instanceId 实例id + * @return 获取单个实例信息 + */ + @Override + public ModelInstanceVo getInstanceById(Integer instanceId) { + return modelInstanceManager.getModelInstance(instanceId,false,false); + } + + /** + * 查询单个实例结果 + */ + @Override + public List getInstanceResultById(Integer instanceId) { + return modelInstanceManager.getModelInstanceResult(instanceId); + } + + @Override + public List getInstanceParamByInstanceId(Integer instanceId) { + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(instanceId,true,false); + List params=modelInstanceVo.getParams(); + return params; + } + + @Override + public List> getTaskTypeCode(Integer instanceId) { + ModelInstanceVo modelInstanceVo=modelInstanceManager.getModelInstance(instanceId,true,false); + ModelInstanceInfoVo vo=modelInstanceVo.getModelInstance(); + String mCode=vo.getCode(); + return HzTaskTypeCodeEnum.getList(mCode); + } + + @Override + public boolean voidInstance(Integer instanceId, Integer bluePrintId) { + int count=bluePrintService.updateBluePrint(bluePrintId,BluePrintStatusEnum.FOUR.getCode(),false,null); + if(count>0) { + //根据实例id查询任务 + HzTask param=new HzTask(); + param.setpId(instanceId); + List list=hzTaskManageService.selectByParam(param); + if(list!=null && !list.isEmpty()) { + //停止任务 + for(HzTask task:list){ + hzTaskManageService.delete(task); + // hzTaskManageService.updateOrStop(task.getId(),true); + Constant.removeTask(task.getId()); + } + } + return true; + } + return false; + } + + @Override + public List selectByModelCode(String code) { + Integer instanceId=modelHiInstanceService.selectByModelCode(code); + if(instanceId !=null){ + return modelInstanceManager.getModelInstanceResult(instanceId); + } + return null; + } + + + /** + * 根据方案id获取实例信息 + * @param bluePrintId + * @return + */ + @Override + public List getInstanceIdByBluePrintId(Integer bluePrintId) { + List list=modelHiInstanceService.getInstanceByPrintId(bluePrintId); + return list; + } + + @Override + public Map getInstanceInfo(Integer instanceId) { + Map map=new HashMap<>(); + ModelInstanceVo vo=modelInstanceManager.getModelInstance(instanceId,true,false); + map.put("modelInstance",vo.getModelInstance()); + map.put("params",vo.getParams()); + Object obj=dealDataService.getResultNew(instanceId); + map.put("result",obj); + return map; + } + + @Override + public List getTaskId(Integer bluePrintId) { + List instanceIds=new ArrayList<>(); + List list=modelHiInstanceService.getInstanceByPrintId(bluePrintId); + for(ModelInstanceInfoVo vo:list){ + instanceIds.add(vo.getId()); + } + //查任务 + List taskVos=hzTaskManageService.selectTaskIds(instanceIds); + return taskVos; + } + + /** + * 更新实例结果 + * @param param 结果值 + * @return 修改成功的消息 + */ + @Override + public Boolean updateModelInstanceResult(String userId,Integer instanceId,Map param) { + return modelInstanceManager.updateModelInstanceResults(userId,instanceId,param); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCreateModelTaskServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCreateModelTaskServiceImpl.java new file mode 100644 index 0000000..85b7585 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzCreateModelTaskServiceImpl.java @@ -0,0 +1,174 @@ +package org.springblade.general_dispatching.business.service.impl; + +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.business.service.HzCreateModelTaskService; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.task.entity.*; +import org.springblade.general_dispatching.task.service.HzTaskDetailService; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HzCreateModelTaskServiceImpl implements HzCreateModelTaskService { + @Autowired + ModelInstanceManager modelInstanceManager; + @Autowired + HzTaskManageService hzTaskManageService; + @Autowired + HzTaskDetailService hzTaskDetailService; + /** + * + * @param param + * userId 用户id + * pId 实例id + * mCode 模型编码 + * taskType 任务类型(02 给定发布 04非给定发布) + * remark 任务描述 + * planStartDt 计划开始时间 + * planEndDt 计划结束时间 + * @return + */ + @Override + public R createModelTask(Map param) { + String mCode=String.valueOf(param.get("mCode")); + if(mCode.equals("RReguTwice")){ + boolean flag=hzTaskManageService.classTask(); + if(flag) { + return R.data(500,"任务已存在", "任务已存在"); + }else{ + return createPlanClassTask(param); + } + }else{ + return createTask(param); + } + } + + public R createTask(Map param){ + String userId= String.valueOf(param.get("userId")); + HzTask task=new HzTask(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + task.setpId(Integer.valueOf(param.get("pId").toString())); + task.setRemark(param.get("remark").toString()); + try { + task.setPlanStartDt(formatter.parse(param.get("planStartDt").toString())); + task.setPlanEndDt(formatter.parse(param.get("planEndDt").toString())); + }catch(Exception e){ + return R.data(500,false,"日期转换格式错误" ); + } + task.setLastUpdator(userId); + task.setLastUpdateTime(new Date()); + task.setCreator(userId); + task.setCreateTime(new Date()); + if(param.get("taskType")!=null) { + task.setTypeCode(param.get("taskType").toString()); + }else{ + task.setTypeCode(HzTaskTypeCodeEnum.THREE.getCode()); + } + task.setCron("0 */5 * * * ?");//五分钟调用一次 + Boolean flag= hzTaskManageService.createScheduleTask(task); + if(flag) { + return R.data(true,"生成任务成功"); + } + return R.data(500,false,"生成任务失败"); + } + + public R createPlanClassTask(Map param){ + String userId= String.valueOf(param.get("userId")); + Integer instanceId=Integer.valueOf(param.get("pId").toString()); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); + String nowDate=formatter1.format(new Date()); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.add(Calendar.DAY_OF_MONTH, +1);//明天 + String nextDate=formatter1.format(calendar.getTime()); + boolean flag =false; + List list=hzTaskManageService.selectClass(); + for(HzReGuClass hzReGuClass:list) { + HzTask task = new HzTask(); + task.setpId(instanceId); + task.setTypeCode(HzTaskTypeCodeEnum.ONE.getCode()); + String startTime=hzReGuClass.getStartTime(); + String endTime=hzReGuClass.getEndTime(); + + String[] startTimes=startTime.split(":"); + String[] endTimes=endTime.split(":"); + + int startTimes1=Integer.parseInt(startTimes[0]); + int endTimes1=Integer.parseInt(endTimes[0]); + //循环排班表 + try { + if(endTimes1-startTimes1 >=0) { + task.setPlanStartDt(formatter.parse(nowDate+" "+startTime+":00")); + task.setPlanEndDt(formatter.parse(nowDate+" "+endTime+":00")); + }else{ + task.setPlanStartDt(formatter.parse(nowDate+" "+startTime+":00")); + task.setPlanEndDt(formatter.parse(nextDate+" "+endTime+":00")); + } + }catch(ParseException e){ + return R.data(500,false,"日期转换格式错误"); + } + + task.setLastUpdator(userId); + task.setCreator(userId); + task.setCreateTime(new Date()); + //生成任务 + task.setName(HzTaskTypeCodeEnum.getEnumName(task.getTypeCode())); + task.setStateCode(HzTaskStatusEnum.TWO.getCode()); + task.setCron("0 */5 * * * ?");//五分钟调用一次 + Integer taskId=hzTaskManageService.insert(task); + //往任务详情表中插入数据 + insertDetail(instanceId,taskId,userId,endTime); + flag=true; + } + + if(flag) { + return R.data(true,"生成任务成功"); + } + return R.data(500,false,"生成任务失败"); + } + + private void insertDetail(Integer instanceId,Integer taskId,String userId,String endTime){ + List AllList=modelInstanceManager.getModelInstanceResult(instanceId); + + List tmpList=new ArrayList<>(); + + for(ModelInstanceResultVo vo:AllList){ + if("0".equals(vo.getDt())){ + continue; + } + if(vo.getDt().contains(endTime+":00")){ + tmpList.add(vo); + } + } + + List list=new ArrayList<>(); + for (ModelInstanceResultVo vo:tmpList){ + + HzTaskDetail hzTaskDetail = new HzTaskDetail(); + hzTaskDetail.setPlanValue(vo.getValue()); + hzTaskDetail.setTaskId(taskId); + hzTaskDetail.setCode(vo.getResultItem()); + hzTaskDetail.setName(vo.getResultItemName()); + hzTaskDetail.setDt(new Date()); + hzTaskDetail.setUnit(vo.getUnit()); + + hzTaskDetail.setCreateTime(new Date()); + hzTaskDetail.setCreator(userId); + hzTaskDetail.setLastUpdateTime(new Date()); + hzTaskDetail.setLastUpdator(userId); + list.add(hzTaskDetail); + } + + hzTaskDetailService.batchInsert(list); + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealEightTypeDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealEightTypeDataServiceImpl.java new file mode 100644 index 0000000..df3715b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealEightTypeDataServiceImpl.java @@ -0,0 +1,218 @@ +package org.springblade.general_dispatching.business.service.impl; + +import org.springblade.general_dispatching.business.mapper.HzReservoirDataMapper; +import org.springblade.general_dispatching.business.mapper.HzSdJcDataMapper; +import org.springblade.general_dispatching.business.service.HzDealEightTypeDataService; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HzDealEightTypeDataServiceImpl implements HzDealEightTypeDataService { + + @Autowired + ModelInstanceManager modelInstanceManager; + + @Autowired + HzReservoirDataMapper hzReservoirDataMapper; + + @Autowired + HzSdJcDataMapper hzSdJcDataMapper; + + @Override + public String queryEightTypeData(Map param) { + String value=null; + String tmpCode=param.get("code"); + String sourceCode=param.get("sourceCode"); + String mCode=param.get("mCode"); + + if(tmpCode.contains("rainfall")){//降雨量 求累加值 reservoir_data + String sql="SUM(RAINFALL) value"; + if(tmpCode.contains("rainfall1")) {//昨日 + value=dealData("昨日降雨量",sql,null,Calendar.DATE,-1,"reservoir"); + }else if(tmpCode.contains("rainfall2")){//前日 + value=dealData("前日降雨量",sql,null,Calendar.DATE,-2,"reservoir"); + } + }else if(tmpCode.contains("runoffs")){//径流 取平均值 reservoir_data + String sql="AVG(DAILY_RUNOFF) value"; + String value1=dealData("前一日的实际径流量",sql,null,Calendar.DATE,-1,"reservoir"); + String value2=dealData("前二日的实际径流量",sql,null,Calendar.DATE,-2,"reservoir"); + String value3=dealData("前三日的实际径流量",sql,null,Calendar.DATE,-3,"reservoir"); + String value4=dealData("前四日的实际径流量",sql,null,Calendar.DATE,-4,"reservoir"); + String value5=dealData("前五日的实际径流量",sql,null,Calendar.DATE,-5,"reservoir"); + if(value1!=null && value2!=null && value3!=null &&value4!=null &&value5!=null) { + value = roundToSignificantFigures(Double.valueOf(value1), 3) + "," + + roundToSignificantFigures(Double.valueOf(value2), 3) + "," + + roundToSignificantFigures(Double.valueOf(value3), 3) + "," + + roundToSignificantFigures(Double.valueOf(value4), 3) + "," + + roundToSignificantFigures(Double.valueOf(value5), 3); + } + }else if(tmpCode.equals("old_hs")){//当前时间6h前的库水位 reservoir_data + value = dealReservoirData1(Calendar.HOUR, -6, "old_hs"); + }else if(tmpCode.equals("Q0")){ //reservoir_data + String sql="AVG(POWER_DISCHARGE) value"; + value=dealData("昨日发电流量均值",sql,null,Calendar.DATE,-1,"reservoir"); + }else if(tmpCode.equals("Q1")){//reservoir_data + String sql="AVG(WATER_FLOW) value"; + value=dealData("昨日泄洪流量均值",sql,null,Calendar.DATE,-1,"reservoir"); + }else if(tmpCode.equals("Q2")){//reservoir_data + String sql="AVG(ECO_FLOW) value"; + value=dealData("昨日生态流量均值",sql,null,Calendar.DATE,-1,"reservoir"); + }else if(tmpCode.equals("Q3")){//reservoir_data + String sql="AVG(OUTBOUND_TRAFFIC) value"; + value=dealData("昨日出库流量均值",sql,null,Calendar.DATE,-1,"reservoir"); + }else if(tmpCode.equals("kzlStatus")){//筷子篓三台机组 + value ="0,0,0"; + }else if(tmpCode.equals("skStatus")){//水口五台机组 + value ="0,0,0,0,0"; + }else if(tmpCode.equals("Qe_Avg") || "Qe".equals(tmpCode)){//日均发电流量 //sd_jc_data + String sql="AVG(POWER_DISCHARGE) value"; + String whereSql=""; + int powerId=Integer.valueOf(String.valueOf(param.get("powerId"))); + if("03".equals(sourceCode)){//水口 + powerId=81; + }else{ + powerId=3; + } + whereSql=" JZ_ID IS NULL AND POWER_ID = "+ powerId; + value=dealData("日均发电流量",sql,whereSql,Calendar.DATE,0,"sdjc"); + }else if(param.get("instanceId")!=null){//判断模型参数code获取实例结果值 + value = dealInstanceResult(param, tmpCode,mCode); + }else if(tmpCode.toLowerCase().equals("e")){//日均发电量 //sd_jc_data + String sql="AVG(GENERATED_ENERGY) value"; + int powerId=Integer.valueOf(String.valueOf(param.get("powerId"))); + String whereSql=""; + if("03".equals(sourceCode)){//水口 + powerId=81; + }else{ + powerId=3; + } + whereSql=" JZ_ID IS NULL AND POWER_ID = "+ powerId; + value=dealData("日均发电量",sql,whereSql,Calendar.DATE,0,"sdjc"); + }else if(tmpCode.toLowerCase().equals("hs_avg")){//日均库水位 //reservoir_data + String sql="AVG(RESERVOIR_WATER_LEVEL) value"; + + value=dealData("日均库水位",sql,null,Calendar.DATE,0,"reservoir"); + }else if(tmpCode.toLowerCase().equals("hw_avg")){//日均尾水位 //sd_jc_data + String sql="AVG(TAILWATER_LEVEL) value"; + int powerId=Integer.valueOf(String.valueOf(param.get("powerId"))); + String whereSql=""; + if("03".equals(sourceCode)){//水口 + powerId=81; + }else{ + powerId=3; + } + whereSql=" JZ_ID IS NULL AND POWER_ID = "+ powerId; + value=dealData("日均尾水位",sql,whereSql,Calendar.DATE,0,"sdjc"); + }else if("Qin".equals(tmpCode) && "RReguTwice".equals(mCode)){ //reservoir_data + String sql="AVG(DAILY_RUNOFF) value"; + value=dealData("当日预测径流量",sql,null,Calendar.DATE,0,"reservoir"); + } + + return value; + } + + //处理实例结果 + private String dealInstanceResult(Map param,String tmpCode,String mCode){ + String data=""; + Integer instanceId =Integer.valueOf(param.get("instanceId")); + List results=modelInstanceManager.getModelInstanceResult(instanceId); + for (ModelInstanceResultVo result:results){ + boolean flag1 ="CRReguST".equals(mCode) || "RReguST".equals(mCode); + if(flag1&&"Qin".equals(tmpCode) && result.getTypeCode().equals("3")) {//取结果中的某一项数据 + if ("".equals(data)) { + data = result.getValue(); + } else { + data += "," + result.getValue(); + } + } + } + return data; + } + + private String dealData(String name,String sql,String whereSql,int field,int gap,String type){ + String value=null; + Map tmpParam=new HashMap<>(); + //拼接列 + tmpParam.put("name",name); + tmpParam.put("column",sql); + //拼接条件 + Map dateParam=dealDate(tmpParam,field,gap); + if(whereSql!=null) { + whereSql =whereSql+ " AND DT between '" + dateParam.get("startTime") + "' and '" + dateParam.get("endTime") + "' "; + }else{ + whereSql = " DT between '" + dateParam.get("startTime") + "' and '" + dateParam.get("endTime") + "' "; + } + tmpParam.put("whereSql",whereSql); + List> data=null; + if("reservoir".equals(type)) { + data=hzReservoirDataMapper.selectBySql(tmpParam); + }else{ + data = hzSdJcDataMapper.selectBySql(tmpParam); + } + if(data!=null && !data.isEmpty()){ + Map dayRunoff=data.get(0); + value = dayRunoff.get("value").toString(); + } + return value; + } + + //进行小时数据处理 + private String dealReservoirData1(int field,int gap,String dataType){ + String value=null; + Map tmpParam=new HashMap<>(); + tmpParam.put("column","RESERVOIR_WATER_LEVEL value"); + Map dateParam=dealDate(tmpParam,field,gap); + String whereSql = " DT between '"+dateParam.get("startTime")+"' and '"+dateParam.get("endTime")+"' "; + tmpParam.put("whereSql",whereSql); + List> data=hzReservoirDataMapper.selectBySql(tmpParam); + if(data!=null && !data.isEmpty()){ + Map dayRunoff=data.get(0); + if(dataType.contains("hs")) {//库水位 + value = dayRunoff.get("value").toString(); + } + } + return value; + } + + public static double roundToSignificantFigures(double num, int n) { + int tmp =(int) num; + if(tmp == 0) { + return 0; + } + + final double d = Math.ceil(Math.log10(num < 0 ? -num: num)); + final int power = n - (int) d; + + final double magnitude = Math.pow(10, power); + final long shifted = Math.round(num*magnitude); + return shifted/magnitude; + } + + //进行日期处理 + private Map dealDate(Map tmpParam,int field,int gap){ + SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1=new SimpleDateFormat("yyyy-MM-dd HH"); + + Calendar c = Calendar.getInstance(); + c.add(field, gap); + Date dt = c.getTime(); + + if(field==Calendar.DATE) { + String date = format.format(dt); + tmpParam.put("startTime", date + " 00:00:00"); + tmpParam.put("endTime", date + " 23:59:59"); + }else if(field==Calendar.HOUR){ + String date = format1.format(dt); + tmpParam.put("startTime", date + ":00:00"); + tmpParam.put("endTime", date + ":00:00"); + } + return tmpParam; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealModelParamDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealModelParamDataServiceImpl.java new file mode 100644 index 0000000..2137a85 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzDealModelParamDataServiceImpl.java @@ -0,0 +1,625 @@ +package org.springblade.general_dispatching.business.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hnac.hzinfo.datasearch.PointData; +import com.hnac.hzinfo.datasearch.history.OriginalDataQuery; +import com.hnac.hzinfo.datasearch.history.domain.HistoryDataQueryOfTimeRange; +import com.hnac.hzinfo.datasearch.history.domain.IdAndStrategy; +import com.hnac.hzinfo.datasearch.history.domain.PropsData; +import com.hnac.hzinfo.sdk.core.response.HzPage; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.history.HistoryDataSearchClient; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.business.entity.ModelParamTypeEnum; +import org.springblade.general_dispatching.business.entity.TableTypeEnum; +import org.springblade.general_dispatching.business.entity.ValueTypeEnum; +import org.springblade.general_dispatching.business.enums.HistoryDataCalcType; +import org.springblade.general_dispatching.business.service.*; +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.servcie.ModelFixedValueService; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springblade.general_dispatching.model_instance.entity.ModelResultParam; +import org.springblade.general_dispatching.model_instance.service.ModelResultParamService; +import org.springblade.general_dispatching.model_instance.vo.SourceCodeEnum; +import org.springblade.hz3000_real_data.feign.IHz3000HistoryDataClient; +import org.springblade.hz3000_real_data.feign.IHz3000RealDataClient; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HzDealModelParamDataServiceImpl implements HzDealModelParamDataService { + @Autowired + HistoryDataSearchClient historyDataSearchClient; + + @Autowired + ModelResultParamService modelResultParamService; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Autowired + HzDealEightTypeDataService hzDealEightTypeDataService; + + @Autowired + ModelFixedValueService modelFixedValueService; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + HzIrrBdGateDataService hzIrrBdGateDataService; + + @Autowired + HzReservoirDataService hzReservoirDataService; + + @Autowired + HzSdJcDataService hzSdJcDataService; + + @Autowired + IHz3000RealDataClient hz3000RealDataClient; + + @Autowired + IHz3000HistoryDataClient hz3000HistoryDataClient; + + @Override + public R getByCode(Integer modelConfigId, String mCode, Integer isGroup,String stationId, Integer instanceId, Integer schemeId) throws ParseException { + Map tmpParam=new HashMap<>(); + if(modelConfigId!=null){ + tmpParam.put("modelConfigId",modelConfigId); + } + if(isGroup!=null){ + tmpParam.put("isGroup",isGroup); + } + List list = modelParamConfigMapper.selectByModel(tmpParam); + for (ModelParamConfigVo param:list){ + String value=param.getValue();//热点对应的厂数据id + String typeCode=param.getTypeCode(); + if(ModelParamTypeEnum.TWO.getCode().equals(typeCode)){//定值 定值编码 + ModelFixedValue modelFixedValue=modelFixedValueService.selectByCode(value); + if(modelFixedValue!=null) { + param.setValue(modelFixedValue.getValue()); + }else{ + param.setValue(""); + } + }else if(ModelParamTypeEnum.FOUR.getCode().equals(typeCode)) {//修改热点实时值 厂组点 + //判断数据源 + String jsonStr=param.getVerification(); + JSONObject object= JSONObject.parseObject(jsonStr); + String dataSource =String.valueOf(object.get("dataSource")); + if(object!=null && "0".equals(dataSource) ){ + dealRealData(param, value,stationId); + }else { + dealDataPlatformRealData(param, value); + } + + }else if(ModelParamTypeEnum.FIVE.getCode().equals(typeCode)){//热点历史值 厂组点+(common avg max min) + //判断数据源 + String jsonStr=param.getVerification(); + JSONObject object=JSON.parseObject(jsonStr); + String dataSource =String.valueOf(object.get("dataSource")); + if(object!=null && "0".equals(dataSource) ){ + dealHistoryData(param, value); + }else { + dealDataPlatformHistoryData(param, value); + } + }else if(ModelParamTypeEnum.SIX.getCode().equals(typeCode)){//hzinfo数据库取值 库+表+列+数值类型+约束条件 + dealDataBaseData(param,value); + }else if(ModelParamTypeEnum.SEVEN.getCode().equals(typeCode)){//其他模型关联 方案id+取值code + ModelResultParam modelResultParam=modelResultParamService.getModelResultParamData(null,param.getValue()); + if(modelResultParam!=null) { + param.setValue(modelResultParam.getValue()); + }else{ + param.setValue(""); + } + }else if (ModelParamTypeEnum.EIGHT.getCode().equals(typeCode)){//其他 + Map dataParam= new HashMap<>(); + if(instanceId!=null) { + dataParam.put("instanceId", String.valueOf(instanceId)); + } + dataParam.put("code",param.getCode()); + dataParam.put("sourceCode", SourceCodeEnum.THREE.getCode()); + dataParam.put("mCode",mCode); + if(mCode.contains("kzl")){ + dataParam.put("sourceCode",SourceCodeEnum.TWO.getCode()); + } + String fourData=hzDealEightTypeDataService.queryEightTypeData(dataParam); + if(fourData!=null) { + param.setValue(fourData); + }else{ + param.setValue(""); + } + } + + } + + return R.data(list,"查询成功"); + } + + private void dealRealData(ModelParamConfigVo param,String value,String stationId){ + String[] ids = {}; + ids[0] =value; + Map data = hz3000RealDataClient.getRealDataById(ids, stationId); + if (data != null && !data.isEmpty()) { + Data vo = data.get(value); + Double value1 = vo.getValue(); + param.setValue(value1.toString()); + }else{ + param.setValue(""); + } + } + + + private void dealHistoryData(ModelParamConfigVo param,String value){ + String[] values=value.split(","); + String ycId=values[0];//实时点 + List ids = new ArrayList<>(); + ids.add(ycId); + String typeValue=values[1];//瞬时值 平均值 最大值 最小值 + String periodType=param.getPeriodType();//时间间隔 + String dtPeriod=param.getDtPeriod();//时间间隔 + String fileType=param.getFieldType(); + String[] fileTypes=fileType.split(","); + if(fileTypes.length==1) { + //计算时间 + Map startEnd = getStartEnd(typeValue, periodType, Integer.valueOf(dtPeriod)); + Map> data = hz3000HistoryDataClient.queryHisDateOfTimeRange(ids, startEnd.get("start"), startEnd.get("end")); + if (ValueTypeEnum.COMMON.getCode().equals(typeValue)) {//瞬时值 + List results = data.get(ycId); + if (results != null && !results.isEmpty()) { + HistoryRequestResult result = results.get(0); + if(result!=null && result.getVal()!=null) { + param.setValue(String.valueOf(result.getVal())); + }else { + param.setValue("0"); + } + } else { + param.setValue("0"); + } + } else {//平均值 最大值 最小值 求和 + List result = data.get(ycId); + String tmpValue = calcValue(typeValue, result); + if (tmpValue != null) { + param.setValue(tmpValue); + } else { + param.setValue("0"); + } + } + }else if(fileTypes.length==2){ + // String valueType=fileTypes[0]; + String weidu=fileTypes[1]; + //返回日期数组 + List> dates=getDates(dtPeriod,weidu,periodType,typeValue); + String valueStr=""; + for(Map startEnd:dates){ + Map> data = hz3000HistoryDataClient.queryHisDateOfTimeRange(ids, startEnd.get("start"), startEnd.get("end")); + if (ValueTypeEnum.COMMON.getCode().equals(typeValue)) {//瞬时值 + List results = data.get(ycId); + String tmpResultValue="0"; + if (results != null && !results.isEmpty()) { + HistoryRequestResult result = results.get(0); + if(result!=null && result.getVal()!=null) { + tmpResultValue = String.valueOf(result.getVal()); + } + } + + if(!"".equals(valueStr)){ + valueStr= valueStr+tmpResultValue+","; + }else{ + valueStr = tmpResultValue+","; + } + } else {//平均值 最大值 最小值 求和 + List result = data.get(ycId); + String tmpValue = calcValue(typeValue, result); + if(tmpValue==null || "".equals(tmpValue)){ + tmpValue = "0"; + } + if(!"".equals(valueStr)){ + valueStr = valueStr+tmpValue+","; + }else{ + valueStr = tmpValue+","; + } + } + } + param.setValue(valueStr.substring(0,valueStr.length() -1)); + } + } + + private void dealDataPlatformRealData(ModelParamConfigVo param,String value){ + List ids = new ArrayList<>(); + ids.add(value); + Result> res = realDataSearchClient.getRealDataByRealIds(ids); + List data=res.getData(); + if (data != null && !data.isEmpty()) { + PointData vo = data.get(0); + String value1 = vo.getValue(); + param.setValue(value1); + }else{ + param.setValue(""); + } + } + + + //平均值 最大值 最小值 + private String calcValue(String typeValue,List results){ + double sum=0.00; + double max=0.00; + double min=0.00; + if(results!=null && !results.isEmpty()){ + for (HistoryRequestResult result:results){ + double value=result.getVal(); + sum+=value; + if(max<=value){ + max=value; + } + + if(min>=value){ + min=value; + } + } + if(ValueTypeEnum.AVG.getCode().equals(typeValue)){ + double avg=sum/results.size(); + return String.valueOf(avg); + } + if(ValueTypeEnum.MAX.getCode().equals(typeValue)){ + return String.valueOf(max); + } + if(ValueTypeEnum.MIN.getCode().equals(typeValue)){ + return String.valueOf(min); + } + if(ValueTypeEnum.SUM.getCode().equals(typeValue)){ + return String.valueOf(sum); + } + } + + return null; + } + + + //平均值 最大值 最小值 + private String calcDataPlatformValue(String typeValue,List results){ + double sum=0.00; + double max=0.00; + double min=0.00; + if(results!=null && !results.isEmpty()){ + for (PropsData result:results){ + double value=Double.valueOf(result.getValue()); + sum+=value; + if(max<=value){ + max=value; + } + + if(min>=value){ + min=value; + } + } + if(ValueTypeEnum.AVG.getCode().equals(typeValue)){ + double avg=sum/results.size(); + return String.valueOf(avg); + } + if(ValueTypeEnum.MAX.getCode().equals(typeValue)){ + return String.valueOf(max); + } + if(ValueTypeEnum.MIN.getCode().equals(typeValue)){ + return String.valueOf(min); + } + if(ValueTypeEnum.SUM.getCode().equals(typeValue)){ + return String.valueOf(sum); + } + } + + return null; + } + + + private void dealDataBaseData(ModelParamConfigVo param,String value){ + Map sqlParam = new HashMap<>(); + String[] values=value.split(","); + //String dataBase=values[0]; + String table=values[1]; + String column=values[2]; + String calcType=values[3]; + String whereSql=values[4]; + if(ValueTypeEnum.COMMON.getCode().equals(calcType)){ + sqlParam.put("column",column+" value"); + }else{ + sqlParam.put("column",calcType+"("+column+") value"); + } + + String periodType=param.getPeriodType();//时间间隔 + String dtPeriod=param.getDtPeriod();//时间间隔 + String fileType=param.getFieldType(); + String[] fileTypes=fileType.split(","); + if(fileTypes.length==1) { + Map startEnd = getStartEnd(calcType, periodType, Integer.valueOf(dtPeriod)); + whereSql+=" AND DT between '" +startEnd.get("start")+"' and '"+startEnd.get("end") + "'"; + sqlParam.put("whereSql",whereSql); + List> data=getTableData(table,sqlParam); + if(data!=null && !data.isEmpty()){ + if(data.get(0) != null && data.get(0).get("value")!=null) { + param.setValue(data.get(0).get("value").toString()); + }else{ + param.setValue(""); + } + }else{ + param.setValue(""); + } + }else if(fileTypes.length==2){ + String weidu=fileTypes[1]; + //返回日期数组 + String dataStr=""; + List> dates=getDates(dtPeriod,weidu,periodType,calcType); + for(Map startEnd:dates) { + whereSql+=" AND DT between '" +startEnd.get("start")+"' and '"+startEnd.get("end")+ "'"; + sqlParam.put("whereSql", whereSql); + List> data = getTableData(table, sqlParam); + + String tmpStr=""; + if(data!=null && !data.isEmpty()){ + if(data.get(0) != null && data.get(0).get("value")!=null) { + tmpStr=data.get(0).get("value").toString(); + }else{ + tmpStr=""; + } + }else{ + tmpStr=""; + } + + if(!"".equals(dataStr)){ + dataStr = dataStr+tmpStr+","; + }else{ + dataStr = tmpStr+","; + } + + } + + param.setValue(dataStr.substring(0, dataStr.length() - 1)); + + } + + } + + private List> getTableData(String table,Map sqlParam){ + if(TableTypeEnum.RESERVOIR_DATA.getCode().equals(table)){//水库 + return hzReservoirDataService.selectBySql(sqlParam); + }else if(TableTypeEnum.SD_JC_DATA.getCode().equals(table)){// 电站/机组 + return hzSdJcDataService.selectBySql(sqlParam); + }else if(TableTypeEnum.IRRBDGATE_DATA.getCode().equals(table)){//闸门 + return hzIrrBdGateDataService.selectBySql(sqlParam); + } + return null; + } + + private void dealDataPlatformHistoryData(ModelParamConfigVo param,String value) throws ParseException { + String[] values=value.split(","); + String ycId=values[0];//实时点 + List ids = new ArrayList<>(); + ids.add(ycId); + String typeValue=values[1];//瞬时值 平均值 最大值 最小值 + String periodType=param.getPeriodType();//时间间隔 + String dtPeriod=param.getDtPeriod();//时间间隔 + String fileType=param.getFieldType(); + String[] fileTypes=fileType.split(","); + if(fileTypes.length==1) { + //计算时间 + Map startEnd = getStartEnd(typeValue, periodType, Integer.valueOf(dtPeriod)); + + if (ValueTypeEnum.COMMON.getCode().equals(typeValue)) {//瞬时值 + OriginalDataQuery originalDataQuery=dealOriginalDataQuery(ycId,periodType,startEnd); + Result> res = historyDataSearchClient.getOriginalDataByRealIds(originalDataQuery); + HzPage page= res.getData(); + List results=page.getRecords(); + if (results != null && !results.isEmpty()) { + PointData result = results.get(0); + if(result!=null && result.getValue()!=null) { + param.setValue(result.getValue()); + }else { + param.setValue("0"); + } + } else { + param.setValue("0"); + } + } else {//平均值 最大值 最小值 求和 + HistoryDataQueryOfTimeRange queryOfTimeRange=dealHistoryDataQueryOfTimeRange(typeValue,periodType,ids,startEnd); + Result> res = historyDataSearchClient.getHistoryDataByRealIds(queryOfTimeRange); + List result = res.getData(); + String tmpValue = calcDataPlatformValue(typeValue, result); + if (tmpValue != null) { + param.setValue(tmpValue); + } else { + param.setValue("0"); + } + } + }else if(fileTypes.length==2){ + // String valueType=fileTypes[0]; + String weidu=fileTypes[1]; + //返回日期数组 + List> dates=getDates(dtPeriod,weidu,periodType,typeValue); + String valueStr=""; + for(Map startEnd:dates){ + + if (ValueTypeEnum.COMMON.getCode().equals(typeValue)) {//瞬时值 + OriginalDataQuery originalDataQuery=dealOriginalDataQuery(ycId,periodType,startEnd); + Result> res = historyDataSearchClient.getOriginalDataByRealIds(originalDataQuery); + HzPage page= res.getData(); + List results=page.getRecords(); + String tmpResultValue="0"; + if (results != null && !results.isEmpty()) { + PointData result = results.get(0); + if(result!=null && result.getValue()!=null) { + tmpResultValue = result.getValue(); + } + } + + if(!"".equals(valueStr)){ + valueStr= valueStr+tmpResultValue+","; + }else{ + valueStr = tmpResultValue+","; + } + } else {//平均值 最大值 最小值 求和 + HistoryDataQueryOfTimeRange queryOfTimeRange=dealHistoryDataQueryOfTimeRange(typeValue,periodType,ids,startEnd); + Result> res = historyDataSearchClient.getHistoryDataByRealIds(queryOfTimeRange); + List result = res.getData(); + String tmpValue = calcDataPlatformValue(typeValue, result); + if(tmpValue==null || "".equals(tmpValue)){ + tmpValue = "0"; + } + if(!"".equals(valueStr)){ + valueStr = valueStr+tmpValue+","; + }else{ + valueStr = tmpValue+","; + } + } + } + param.setValue(valueStr.substring(0,valueStr.length() -1)); + } + } + + private OriginalDataQuery dealOriginalDataQuery(String id,String periodType,Map startEnd) throws ParseException{ + OriginalDataQuery originalDataQuery=new OriginalDataQuery(); + originalDataQuery.setRealId(id); + if("D".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + originalDataQuery.setBeginTime(sdf.parse(startEnd.get("start"))); + originalDataQuery.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("H".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + originalDataQuery.setBeginTime(sdf.parse(startEnd.get("start"))); + originalDataQuery.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("M".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + originalDataQuery.setBeginTime(sdf.parse(startEnd.get("start"))); + originalDataQuery.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("S".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + originalDataQuery.setBeginTime(sdf.parse(startEnd.get("start"))); + originalDataQuery.setEndTime(sdf.parse(startEnd.get("end"))); + } + + originalDataQuery.setLimit(1); + return originalDataQuery; + } + + private HistoryDataQueryOfTimeRange dealHistoryDataQueryOfTimeRange(String typeValue,String periodType,List ids,Map startEnd) throws ParseException { + HistoryDataQueryOfTimeRange historyDataQueryOfTimeRange=new HistoryDataQueryOfTimeRange(); + Integer strategy= HistoryDataCalcType.SIX.getStrategy(); + if(ValueTypeEnum.AVG.getCode().equals(typeValue)){ + strategy = HistoryDataCalcType.THREE.getStrategy(); + } + if(ValueTypeEnum.MAX.getCode().equals(typeValue)){ + strategy = HistoryDataCalcType.ONE.getStrategy(); + } + if(ValueTypeEnum.MIN.getCode().equals(typeValue)){ + strategy = HistoryDataCalcType.TWO.getStrategy(); + } + if(ValueTypeEnum.SUM.getCode().equals(typeValue)){ + strategy = HistoryDataCalcType.FOUR.getStrategy(); + } + + if("D".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + historyDataQueryOfTimeRange.setBeginTime(sdf.parse(startEnd.get("start"))); + historyDataQueryOfTimeRange.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("H".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + historyDataQueryOfTimeRange.setBeginTime(sdf.parse(startEnd.get("start"))); + historyDataQueryOfTimeRange.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("M".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + historyDataQueryOfTimeRange.setBeginTime(sdf.parse(startEnd.get("start"))); + historyDataQueryOfTimeRange.setEndTime(sdf.parse(startEnd.get("end"))); + } + if("S".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + historyDataQueryOfTimeRange.setBeginTime(sdf.parse(startEnd.get("start"))); + historyDataQueryOfTimeRange.setEndTime(sdf.parse(startEnd.get("end"))); + } + + List idAndStrategies=new ArrayList<>(); + for(String id:ids){ + IdAndStrategy idAndStrategy=new IdAndStrategy(); + idAndStrategy.setRealId(id); + idAndStrategy.setStrategy(strategy); + idAndStrategies.add(idAndStrategy); + } + historyDataQueryOfTimeRange.setIdAndStrategies(idAndStrategies); + return historyDataQueryOfTimeRange; + } + + //获取日期数组 + private List> getDates(String dtPeriod,String weidu,String periodType,String typeValue){ + int count=Integer.valueOf(weidu); + List> list=new ArrayList<>(); + int gap=Integer.valueOf(dtPeriod); + for(int i=count;i>=1;i--) { + int tmpGap=i*gap; + Map map=getStartEnd(typeValue,periodType,tmpGap); + list.add(map); + } + return list; + } + + //计算日期 某一天 + private Map getStartEnd(String typeValue,String periodType,int gap){ + Map data=new HashMap<>(); + Date now=new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(now);//设置起时间 + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("D".equals(periodType)){ + cal.add(Calendar.DAY_OF_MONTH, -gap);// + }else if("H".equals(periodType)){ + cal.add(Calendar.HOUR_OF_DAY, -gap);// + }else if("M".equals(periodType)){ + cal.add(Calendar.MINUTE, -gap);// + }else if("S".equals(periodType)){ + cal.add(Calendar.SECOND, -gap);// + } + + if(ValueTypeEnum.COMMON.getCode().equals(typeValue)){//瞬时 + System.out.println(df.format(cal.getTime())); + data.put("start",df.format(cal.getTime())); + cal.add(Calendar.MINUTE, 10);// + // System.out.println(df.format(cal.getTime())); + data.put("end",df.format(cal.getTime())); + return data; + }else{ + if("D".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + data.put("start", sdf.format(cal.getTime()) + " 00:00:00"); + data.put("end", sdf.format(cal.getTime()) + " 23:59:59"); + } + if("H".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + data.put("start", sdf.format(cal.getTime()) + ":00:00"); + data.put("end", sdf.format(cal.getTime()) + ":59:59"); + } + if("M".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + data.put("start", sdf.format(cal.getTime()) + ":00"); + data.put("end", sdf.format(cal.getTime()) + ":59"); + } + if("S".equals(periodType)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + data.put("start", sdf.format(cal.getTime())); + data.put("end", sdf.format(cal.getTime())); + } + return data; + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzIrrBdGateDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzIrrBdGateDataServiceImpl.java new file mode 100644 index 0000000..a503631 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzIrrBdGateDataServiceImpl.java @@ -0,0 +1,176 @@ +package org.springblade.general_dispatching.business.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.DateQueryTypeEnum; +import org.springblade.general_dispatching.business.entity.HzIrrBdGateData; +import org.springblade.general_dispatching.business.entity.StatisticsDataTypeEnum; +import org.springblade.general_dispatching.business.entity.StatisticsDataTypeFieldEnum; +import org.springblade.general_dispatching.business.mapper.HzIrrBdGateDataMapper; +import org.springblade.general_dispatching.business.service.HzIrrBdGateDataService; +import org.springblade.general_dispatching.business.util.DateUtil; +import org.springblade.general_dispatching.business.util.ExcelUtil; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.feign.IStRsrBsinClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +@Service +public class HzIrrBdGateDataServiceImpl implements HzIrrBdGateDataService { + @Autowired + HzIrrBdGateDataMapper hzIrrBdGateDataMapper; + + @Autowired + private IStRsrBsinClient stRsrBsinClient; + + @Override + public List selectData(Map param) { + return hzIrrBdGateDataMapper.selectData(param); + } + + @Override + public List> selectBySql(Map param) { + return hzIrrBdGateDataMapper.selectBySql(param); + } + + @Override + public IPage pageList(String dateType, String start, String end, String stcd, String strobeCode, IPage page) { + Map param=new HashMap<>(); + // param.put("stcd",stcd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StRsrBsin::getRscd,stcd); + StRsrBsin stRsrBsin=stRsrBsinClient.getOne(wrapper); + String name=""; + if(stRsrBsin!=null){ + name=stRsrBsin.getRtunm(); + } + if(strobeCode!=null && !"".equals(strobeCode)) { + String[] arr = strobeCode.split(","); + List strobeCodes = Arrays.asList(arr); + param.put("strobeCodes", strobeCodes); + } + + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.GATAGE.getCol()+") "+StatisticsDataTypeFieldEnum.GATAGE.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.WATER_FLOW.getCol()+") "+StatisticsDataTypeFieldEnum.WATER_FLOW.getCol()+""); + param.put("sql", sql); +// PageBounds pageBounds = new PageBounds(pageParam.getPageNo(), pageParam.getPageSize()); + IPage pageList =null; + + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + pageList=hzIrrBdGateDataMapper.selectDataByMonth(param, page); + + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + pageList= hzIrrBdGateDataMapper.selectDataByDay(param, page); + + }else{//天 + pageList= hzIrrBdGateDataMapper.selectDataByHour(param, page); + + } + + if(pageList!=null) { + if(!"".equals(name) && name!=null) { + for (HzIrrBdGateData irrBdGateData : pageList.getRecords()) { + irrBdGateData.setReservoirName(name); + } + } + } + + return pageList; + } + + @Override + public void export(String dateType, String start, String end, String stcd, String strobeCode, HttpServletResponse response) { + Map param=new HashMap<>(); + // param.put("stcd",stcd); + + if(strobeCode!=null && !"".equals(strobeCode)) { + String[] arr = strobeCode.split(","); + List strobeCodes = Arrays.asList(arr); + param.put("strobeCodes", strobeCodes); + } + + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.GATAGE.getCol()+") "+StatisticsDataTypeFieldEnum.GATAGE.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.WATER_FLOW.getCol()+") "+StatisticsDataTypeFieldEnum.WATER_FLOW.getCol()+""); + param.put("sql", sql); + List list =null; + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + list = hzIrrBdGateDataMapper.selectDataByMonth(param); + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + list = hzIrrBdGateDataMapper.selectDataByDay(param); + }else{//天 + list = hzIrrBdGateDataMapper.selectDataByHour(param); + } + + if(list!=null && !list.isEmpty()) { + List> data=new ArrayList<>(); + List> head=new ArrayList<>(); + List cell = new ArrayList<>(); + cell.add("水库"); + head.add(cell); + cell = new ArrayList<>(); + cell.add("闸门"); + head.add(cell); + cell = new ArrayList<>(); + cell.add("日期"); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.GATAGE.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.WATER_FLOW.getName()); + head.add(cell); + + for (HzIrrBdGateData gateData:list) { + cell = new ArrayList<>(); + cell.add(gateData.getReservoirName()); + cell.add(gateData.getStrobeCode()); + cell.add(gateData.getYearMonthDayHour()); + cell.add(String.valueOf(gateData.getGatage())); + cell.add(String.valueOf(gateData.getWaterFlow())); + data.add(cell); + } + ExcelUtil.exportData(response, data,head,"闸门数据"); + } + } + + @Override + public String exportCheck(String dateType, String start, String end, String stcd, String strobeCode) { + + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzReservoirDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzReservoirDataServiceImpl.java new file mode 100644 index 0000000..3b27e52 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzReservoirDataServiceImpl.java @@ -0,0 +1,254 @@ +package org.springblade.general_dispatching.business.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.*; +import org.springblade.general_dispatching.business.mapper.HzReservoirDataMapper; +import org.springblade.general_dispatching.business.service.HzReservoirDataService; +import org.springblade.general_dispatching.business.util.DateUtil; +import org.springblade.general_dispatching.business.util.ExcelUtil; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.reservoirbase.feign.IStZvarlBClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class HzReservoirDataServiceImpl implements HzReservoirDataService { + @Autowired + HzReservoirDataMapper hzReservoirDataMapper; + + @Autowired + IStZvarlBClient stZvarlBClient; + + @Override + public List selectData(Map param) { + return hzReservoirDataMapper.selectData(param); + } + + @Override + public List> selectBySql(Map param) { + return hzReservoirDataMapper.selectBySql(param); + } + + @Override + public IPage pageList(String dateType, String start, String end, String stcd, IPage page) { + Map param=new HashMap<>(); + param.put("stcd",stcd); + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.RESERVOIR_WATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.RESERVOIR_WATER_LEVEL.getCol()+""); + sql.add("SUM("+ StatisticsDataTypeFieldEnum.RAINFALL.getCol()+") "+StatisticsDataTypeFieldEnum.RAINFALL.getCol()+""); + param.put("sql", sql); + + IPage pageList =null; + List tmpSql=new ArrayList<>(); + tmpSql.add("AVG("+ WaterAnalysisDataCodeEnum.INFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.INFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.POWERDISCHARGE.getColName()+") "+WaterAnalysisDataCodeEnum.POWERDISCHARGE.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.WATERFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.WATERFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.ECOFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.ECOFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.OUTBOUNDTRAFFIC.getColName()+") "+WaterAnalysisDataCodeEnum.OUTBOUNDTRAFFIC.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.STORAGEWATER.getColName()+") "+WaterAnalysisDataCodeEnum.STORAGEWATER.getColName()+""); + + List list=null; + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + pageList= hzReservoirDataMapper.selectDataByMonth(param, page); + //查询计算值 + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzReservoirDataMapper.selectDataByMonth(param); + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + pageList= hzReservoirDataMapper.selectDataByDay(param, page); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzReservoirDataMapper.selectDataByDay(param); + }else{//天 + pageList= hzReservoirDataMapper.selectDataByHour(param, page); + + param.put("sql", tmpSql); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + list =hzReservoirDataMapper.selectDataByHour(param); + } + if(pageList!=null) { + List tmpList=pageList.getRecords(); + //提取库容曲线 + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StZvarlB::getRscd,stcd); + List stZvarlBList=stZvarlBClient.list(wrapper); + //计算库容 + for(HzReservoirData reservoirData:tmpList){ + BigDecimal rz=reservoirData.getReservoirWaterLevel(); + BigDecimal nowVolume=stZvarlBClient.calcResp(stZvarlBList,rz); + reservoirData.setRscp(nowVolume); + dealCalcData(reservoirData,reservoirData.getYearMonthDayHour(),list); + } + } + return pageList; + } + + @Override + public void export(String dateType, String start, String end, String stcd, HttpServletResponse response) { + Map param=new HashMap<>(); + param.put("stcd",stcd); + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.RESERVOIR_WATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.RESERVOIR_WATER_LEVEL.getCol()+""); + sql.add("SUM("+ StatisticsDataTypeFieldEnum.RAINFALL.getCol()+") "+StatisticsDataTypeFieldEnum.RAINFALL.getCol()+""); + param.put("sql", sql); + List pageList =null; + List tmpSql=new ArrayList<>(); + tmpSql.add("AVG("+ WaterAnalysisDataCodeEnum.INFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.INFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.POWERDISCHARGE.getColName()+") "+WaterAnalysisDataCodeEnum.POWERDISCHARGE.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.WATERFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.WATERFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.ECOFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.ECOFLOW.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.OUTBOUNDTRAFFIC.getColName()+") "+WaterAnalysisDataCodeEnum.OUTBOUNDTRAFFIC.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.STORAGEWATER.getColName()+") "+WaterAnalysisDataCodeEnum.STORAGEWATER.getColName()+""); + + List list=null; + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + pageList = hzReservoirDataMapper.selectDataByMonth(param); + //查询计算值 + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzReservoirDataMapper.selectDataByMonth(param); + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + pageList = hzReservoirDataMapper.selectDataByDay(param); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzReservoirDataMapper.selectDataByDay(param); + }else{//天 + pageList = hzReservoirDataMapper.selectDataByHour(param); + param.put("sql", tmpSql); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + list =hzReservoirDataMapper.selectDataByHour(param); + } + if(pageList!=null) { + //提取库容曲线 + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StZvarlB::getRscd,stcd); + List stZvarlBList=stZvarlBClient.list(wrapper); + //计算库容 + for(HzReservoirData reservoirData:pageList){ + BigDecimal rz=reservoirData.getReservoirWaterLevel(); + BigDecimal nowVolume=stZvarlBClient.calcResp(stZvarlBList,rz); + reservoirData.setRscp(nowVolume); + dealCalcData(reservoirData,reservoirData.getYearMonthDayHour(),list); + } + + List> data=new ArrayList<>(); + List> head=new ArrayList<>(); + List cell = new ArrayList<>(); + cell.add("水库名称"); + head.add(cell); + cell = new ArrayList<>(); + cell.add("日期"); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.RAINFALL.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.RESERVOIR_WATER_LEVEL.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add("库容"); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.INFLOW.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.POWERDISCHARGE.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.WATERFLOW.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.ECOFLOW.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.OUTBOUNDTRAFFIC.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.STORAGEWATER.getName()); + head.add(cell); + for(HzReservoirData reservoirData:pageList){ + cell = new ArrayList<>(); + cell.add(reservoirData.getReservoirName()); + cell.add(reservoirData.getYearMonthDayHour()); + cell.add(dealData(reservoirData.getRainFall())); + cell.add(dealData(reservoirData.getReservoirWaterLevel())); + cell.add(dealData(reservoirData.getRscp())); + cell.add(dealData(reservoirData.getInFlow())); + cell.add(dealData(reservoirData.getPowerDischarge())); + cell.add(dealData(reservoirData.getWaterFlow())); + cell.add(dealData(reservoirData.getEcoFlow())); + cell.add(dealData(reservoirData.getOutboundTraffic())); + cell.add(dealData(reservoirData.getStorageWater())); + data.add(cell); + } + ExcelUtil.exportData(response,data,head,"水库运行数据"); + } + } + + @Override + public List selectDataByHour(Map param) { + return hzReservoirDataMapper.selectDataByHour(param); + } + + private String dealData(BigDecimal value){ + if(value!=null && !"".equals(value)){ + return String.valueOf(value); + }else{ + return "0"; + } + } + + private void dealCalcData(HzReservoirData reservoirData, String dt, List list){ + for (HzReservoirData data:list){ + String tmpDt=data.getYearMonthDayHour(); + if(dt.equals(tmpDt)){ + reservoirData.setInFlow(data.getInFlow()); + reservoirData.setPowerDischarge(data.getPowerDischarge()); + reservoirData.setWaterFlow(data.getWaterFlow()); + reservoirData.setEcoFlow(data.getEcoFlow()); + reservoirData.setOutboundTraffic(data.getOutboundTraffic()); + reservoirData.setStorageWater(data.getStorageWater()); + break; + } + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzSdJcDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzSdJcDataServiceImpl.java new file mode 100644 index 0000000..adcb009 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/service/impl/HzSdJcDataServiceImpl.java @@ -0,0 +1,252 @@ +package org.springblade.general_dispatching.business.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.business.entity.*; +import org.springblade.general_dispatching.business.mapper.HzSdJcDataMapper; +import org.springblade.general_dispatching.business.service.HzSdJcDataService; +import org.springblade.general_dispatching.business.util.DateUtil; +import org.springblade.general_dispatching.business.util.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +@Service +public class HzSdJcDataServiceImpl implements HzSdJcDataService { + @Autowired + HzSdJcDataMapper hzSdJcDataMapper; + + @Override + public List selectData(Map param) { + return hzSdJcDataMapper.selectData(param); + } + + @Override + public List> selectBySql(Map param) { + return hzSdJcDataMapper.selectBySql(param); + } + + @Override + public List selectDataByHour(Map param) { + return hzSdJcDataMapper.selectDataByHour(param); + } + + + @Override + public IPage pageList(String dateType, String start, String end, Integer powerId, String jzId, IPage page) { + Map param=new HashMap<>(); + param.put("powerId",powerId); + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + if(jzId!=null && !"".equals(jzId)) { + String[] arr = jzId.split(","); + List jzIds = Arrays.asList(arr); + param.put("jzIds", jzIds); + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.WATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.WATER_LEVEL.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.TAILWATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.TAILWATER_LEVEL.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.PRODUCTIVE_HEAD.getCol()+") "+StatisticsDataTypeFieldEnum.PRODUCTIVE_HEAD.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.POWER_DISCHARGE.getCol()+") "+StatisticsDataTypeFieldEnum.POWER_DISCHARGE.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.GENERATED_ENERGY.getCol()+") "+StatisticsDataTypeFieldEnum.GENERATED_ENERGY.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.POWER_LOAD.getCol()+") "+StatisticsDataTypeFieldEnum.POWER_LOAD.getCol()+""); + + param.put("sql", sql); + + IPage pageList =null; + List tmpSql=new ArrayList<>(); + tmpSql.add("AVG("+ WaterAnalysisDataCodeEnum.WATERRATE.getColName()+") "+WaterAnalysisDataCodeEnum.WATERRATE.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.EFFICIENCY.getColName()+") "+WaterAnalysisDataCodeEnum.EFFICIENCY.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.DISCARDEDWATER.getColName()+") "+WaterAnalysisDataCodeEnum.DISCARDEDWATER.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.CHANNEL_INFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.CHANNEL_INFLOW.getColName()+""); + + List list=null; + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + pageList= hzSdJcDataMapper.selectDataByMonth(param, page); + //查询计算值 + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzSdJcDataMapper.selectDataByMonth(param); + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + pageList= hzSdJcDataMapper.selectDataByDay(param, page); + + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzSdJcDataMapper.selectDataByDay(param); + }else{//天 + pageList= hzSdJcDataMapper.selectDataByHour(param, page); + + param.put("sql", tmpSql); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + list =hzSdJcDataMapper.selectDataByHour(param); + } + if(pageList!=null) { + List tmpList=pageList.getRecords(); + //计算库容 + for(HzSdJcData hzSdJcData:tmpList){ + dealCalcData(hzSdJcData,hzSdJcData.getYearMonthDayHour(),list); + } + } + return pageList; + } + + @Override + public void export(String dateType, String start, String end, Integer powerId, String jzId, HttpServletResponse response) { + Map param=new HashMap<>(); + param.put("powerId",powerId); + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){ + start = start+"-01-01"; + String year=start.substring(0,4); + end =year+"-12-31"; + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + start = start+"-01"; + end = DateUtil.getYearMonthDay(start); + }else if(DateQueryTypeEnum.DAY.getCode().equals(dateType)){ + end =start; + } + + if(jzId!=null && !"".equals(jzId)) { + String[] arr = jzId.split(","); + List jzIds = Arrays.asList(arr); + param.put("jzIds", jzIds); + } + + //取库水位和降雨量的实测值 + List sql=new ArrayList<>(); + param.put("startTime", start+" 00:00:00"); + param.put("endTime", end+" 23:59:59"); + param.put("dataType", StatisticsDataTypeEnum.FOUR.getCode()); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.WATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.WATER_LEVEL.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.TAILWATER_LEVEL.getCol()+") "+StatisticsDataTypeFieldEnum.TAILWATER_LEVEL.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.PRODUCTIVE_HEAD.getCol()+") "+StatisticsDataTypeFieldEnum.PRODUCTIVE_HEAD.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.POWER_DISCHARGE.getCol()+") "+StatisticsDataTypeFieldEnum.POWER_DISCHARGE.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.GENERATED_ENERGY.getCol()+") "+StatisticsDataTypeFieldEnum.GENERATED_ENERGY.getCol()+""); + sql.add("AVG("+ StatisticsDataTypeFieldEnum.POWER_LOAD.getCol()+") "+StatisticsDataTypeFieldEnum.POWER_LOAD.getCol()+""); + + param.put("sql", sql); + List pageList =null; + List tmpSql=new ArrayList<>(); + tmpSql.add("AVG("+ WaterAnalysisDataCodeEnum.WATERRATE.getColName()+") "+WaterAnalysisDataCodeEnum.WATERRATE.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.EFFICIENCY.getColName()+") "+WaterAnalysisDataCodeEnum.EFFICIENCY.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.DISCARDEDWATER.getColName()+") "+WaterAnalysisDataCodeEnum.DISCARDEDWATER.getColName()+""); + tmpSql.add("AVG("+WaterAnalysisDataCodeEnum.CHANNEL_INFLOW.getColName()+") "+WaterAnalysisDataCodeEnum.CHANNEL_INFLOW.getColName()+""); + + List list=null; + if(DateQueryTypeEnum.YEAR.getCode().equals(dateType)){//月 + pageList = hzSdJcDataMapper.selectDataByMonth(param); + //查询计算值 + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzSdJcDataMapper.selectDataByMonth(param); + }else if(DateQueryTypeEnum.MONTH.getCode().equals(dateType)){ + pageList = hzSdJcDataMapper.selectDataByDay(param); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + param.put("sql", tmpSql); + list =hzSdJcDataMapper.selectDataByDay(param); + }else{//天 + pageList = hzSdJcDataMapper.selectDataByHour(param); + param.put("sql", tmpSql); + param.put("dataType", StatisticsDataTypeEnum.THREE.getCode()); + list =hzSdJcDataMapper.selectDataByHour(param); + } + if(pageList!=null) { + //合并数据 + for(HzSdJcData hzSdJcData:pageList){ + dealCalcData(hzSdJcData,hzSdJcData.getYearMonthDayHour(),list); + } + + List> data=new ArrayList<>(); + List> head=new ArrayList<>(); + List cell = new ArrayList<>(); + cell.add("电站名称"); + head.add(cell); + cell = new ArrayList<>(); + cell.add("日期"); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.WATER_LEVEL.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.TAILWATER_LEVEL.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.PRODUCTIVE_HEAD.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.POWER_DISCHARGE.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.GENERATED_ENERGY.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(StatisticsDataTypeFieldEnum.POWER_LOAD.getName()); + head.add(cell); + + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.WATERRATE.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.EFFICIENCY.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.DISCARDEDWATER.getName()); + head.add(cell); + cell = new ArrayList<>(); + cell.add(WaterAnalysisDataCodeEnum.CHANNEL_INFLOW.getName()); + head.add(cell); + + for(HzSdJcData sdJcData:pageList){ + cell = new ArrayList<>(); + cell.add(sdJcData.getPowerName()); + cell.add(sdJcData.getYearMonthDayHour()); + + cell.add(String.valueOf(sdJcData.getWaterLevel())); + cell.add(String.valueOf(sdJcData.getTailWaterLevel())); + cell.add(String.valueOf(sdJcData.getProductiveHead())); + cell.add(String.valueOf(sdJcData.getPowerDischarge())); + cell.add(String.valueOf(sdJcData.getGeneratedEnergy())); + cell.add(String.valueOf(sdJcData.getPowerLoad())); + + cell.add(String.valueOf(sdJcData.getWaterRate())); + cell.add(String.valueOf(sdJcData.getEfficiency())); + cell.add(String.valueOf(sdJcData.getDiscardedWater())); + cell.add(String.valueOf(sdJcData.getChannelInflow())); + data.add(cell); + } + + String name="电站运行数据"; + if(jzId!=null && !"".equals(jzId)){ + name="机组数据"; + } + ExcelUtil.exportData(response,data,head,name); + } + } + + private void dealCalcData(HzSdJcData hzSdJcData, String dt, List list){ + for (HzSdJcData data:list){ + String tmpDt=data.getYearMonthDayHour(); + if(dt.equals(tmpDt)){ + hzSdJcData.setWaterRate(data.getWaterRate()); + hzSdJcData.setEfficiency(data.getEfficiency()); + hzSdJcData.setDiscardedWater(data.getDiscardedWater()); + hzSdJcData.setChannelInflow(data.getChannelInflow()); + break; + } + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/Constant.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/Constant.java new file mode 100644 index 0000000..34fd49f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/Constant.java @@ -0,0 +1,20 @@ +package org.springblade.general_dispatching.business.util; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ScheduledFuture; + +public class Constant { + public static Map> map=new ConcurrentHashMap<>(); + //执行任务的个数 + public static int count=10; + + //删除任务 + public static void removeTask(Integer taskId){ + ScheduledFuture future =Constant.map.get(taskId); + if (future != null) { + future.cancel(true); + } + Constant.map.remove(taskId); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/DateUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/DateUtil.java new file mode 100644 index 0000000..859454d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/DateUtil.java @@ -0,0 +1,32 @@ +package org.springblade.general_dispatching.business.util; + +import java.util.Calendar; +import java.util.Date; + +public class DateUtil { + public static String getYearMonthDay(String time){ + int year= Integer.valueOf(time.substring(0,4)); + String tmpMonth=time.substring(5,7); + int month= Integer.valueOf(tmpMonth); + int maxDate = returnDay(year,month); + return year+"-"+tmpMonth+"-"+maxDate; + } + + public static int returnDay(int year, int month){ + Calendar a = Calendar.getInstance(); + a.set(Calendar.YEAR, year); + a.set(Calendar.MONTH, month - 1); + a.set(Calendar.DATE, 1); + int maxDate = a.getActualMaximum(Calendar.DATE); + return maxDate; + } + + public static Date beforeTwenty(){ + Calendar a = Calendar.getInstance(); + a.setTime(new Date()); + a.add(Calendar.DAY_OF_MONTH,-20); + Date date=a.getTime(); + return date; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/ExcelUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/ExcelUtil.java new file mode 100644 index 0000000..7b58267 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/ExcelUtil.java @@ -0,0 +1,69 @@ +package org.springblade.general_dispatching.business.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.ExcelTypeEnum; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.metadata.style.WriteFont; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; + +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedOutputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.List; + +public class ExcelUtil { + public static void exportData(HttpServletResponse response, List> data, List> head, String name){ + OutputStream out = null; + BufferedOutputStream bos = null; + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode(name+".xlsx", "utf-8"); + response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1")); + + out = response.getOutputStream(); + bos = new BufferedOutputStream(out); + + EasyExcel.write(bos) + .head(head) + .registerWriteHandler(getHorizontalCellStyleStrategy()) + .excelType(ExcelTypeEnum.XLSX) + .sheet(name) + .doWrite(data); + bos.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + //设置表头和内容样式 + static HorizontalCellStyleStrategy getHorizontalCellStyleStrategy() { + // 头的策略 + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + // 背景色 + headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + WriteFont headWriteFont = new WriteFont(); + headWriteFont.setFontHeightInPoints((short) 12); + headWriteCellStyle.setWriteFont(headWriteFont); + // 内容的策略 + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + // 字体策略 + WriteFont contentWriteFont = new WriteFont(); + // 字体大小 + contentWriteFont.setFontHeightInPoints((short) 12); + contentWriteCellStyle.setWriteFont(contentWriteFont); + + //设置 自动换行 + contentWriteCellStyle.setWrapped(true); + //设置 垂直居中 + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + // 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现 + return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SchedulingRunnable.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SchedulingRunnable.java new file mode 100644 index 0000000..83992ca --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SchedulingRunnable.java @@ -0,0 +1,93 @@ +package org.springblade.general_dispatching.business.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Method; +import java.util.Objects; + +/** + * @program: simple-demo + * @description: 定时任务运行类 + * @author: CaoTing + * @date: 2019/5/23 + **/ +public class SchedulingRunnable implements Runnable { + + private static final Logger logger = LoggerFactory.getLogger(SchedulingRunnable.class); + + private String beanName; + + private String methodName; + + private Object[] params; + + public SchedulingRunnable(String beanName, String methodName) { + this(beanName, methodName, null); + } + + public SchedulingRunnable(String beanName, String methodName, Object...params ) { + this.beanName = beanName; + this.methodName = methodName; + this.params = params; + } + + @Override + public void run() { + logger.info("定时任务开始执行 - bean:{},方法:{},参数:{}", beanName, methodName, params); + long startTime = System.currentTimeMillis(); + + try { + Object target = SpringContextUtils.getBean(beanName); + + Method method = null; + if (null != params && params.length > 0) { + Class[] paramCls = new Class[params.length]; + for (int i = 0; i < params.length; i++) { + paramCls[i] = params[i].getClass(); + } + method = target.getClass().getDeclaredMethod(methodName, paramCls); + } else { + method = target.getClass().getDeclaredMethod(methodName); + } + + ReflectionUtils.makeAccessible(method); + if (null != params && params.length > 0) { + method.invoke(target, params); + } else { + method.invoke(target); + } + } catch (Exception ex) { + logger.error(String.format("定时任务执行异常 - bean:%s,方法:%s,参数:%s ", beanName, methodName, params), ex); + } + + long times = System.currentTimeMillis() - startTime; + logger.info("定时任务执行结束 - bean:{},方法:{},参数:{},耗时:{} 毫秒", beanName, methodName, params, times); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SchedulingRunnable that = (SchedulingRunnable) o; + if (params == null) { + return beanName.equals(that.beanName) && + methodName.equals(that.methodName) && + that.params == null; + } + + return beanName.equals(that.beanName) && + methodName.equals(that.methodName) && + params.equals(that.params); + } + + @Override + public int hashCode() { + if (params == null) { + return Objects.hash(beanName, methodName); + } + + return Objects.hash(beanName, methodName, params); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SpringContextUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SpringContextUtils.java new file mode 100644 index 0000000..2d727ed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/business/util/SpringContextUtils.java @@ -0,0 +1,45 @@ +package org.springblade.general_dispatching.business.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @program: simple-demo + * @description: spring获取bean工具类 + * @author: CaoTing + * @date: 2019/5/23 + **/ +@Component +public class SpringContextUtils implements ApplicationContextAware { + + private static ApplicationContext applicationContext = null; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + if (SpringContextUtils.applicationContext == null) { + SpringContextUtils.applicationContext = applicationContext; + } + } + + //获取applicationContext + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + //通过name获取 Bean. + public static Object getBean(String name) { + return getApplicationContext().getBean(name); + } + + //通过class获取Bean. + public static T getBean(Class clazz) { + return getApplicationContext().getBean(clazz); + } + + //通过name,以及Clazz返回指定的Bean + public static T getBean(String name, Class clazz) { + return getApplicationContext().getBean(name, clazz); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Chart.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Chart.java new file mode 100644 index 0000000..6d72259 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Chart.java @@ -0,0 +1,41 @@ +package org.springblade.general_dispatching.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("Echarts图表类通用数据对象") +public class Chart { + @ApiModelProperty("Echarts图表的图例") + private List legend; + private List axisData; + private List> series; + + public Chart() { + } + + public List getLegend() { + return this.legend; + } + + public void setLegend(List legend) { + this.legend = legend; + } + + public List getAxisData() { + return this.axisData; + } + + public void setAxisData(List axisData) { + this.axisData = axisData; + } + + public List> getSeries() { + return this.series; + } + + public void setSeries(List> series) { + this.series = series; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Series.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Series.java new file mode 100644 index 0000000..0426579 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/entity/Series.java @@ -0,0 +1,33 @@ +package org.springblade.general_dispatching.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("系列列表") +public class Series { + @ApiModelProperty("系列名称") + private String name; + @ApiModelProperty("系列中的数据内容数组") + private List data; + + public Series() { + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public List getData() { + return this.data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/DownLoadRequest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/DownLoadRequest.java new file mode 100644 index 0000000..6c6bffa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/DownLoadRequest.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.excelwd.entity; + +import java.util.List; + +public class DownLoadRequest { + private String fileType; + private List list; + + public String getFileType() { + return fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/FileTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/FileTypeEnum.java new file mode 100644 index 0000000..f68b24c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/FileTypeEnum.java @@ -0,0 +1,39 @@ +package org.springblade.general_dispatching.excelwd.entity; + +public enum FileTypeEnum { + ArtificialForecast("ArtificialForecast","人工预报调度"), + ForecastOperation("ForecastOperation","预报调度分析"), + FloodCalc("FloodCalc","洪水过程计算"), + AutomaticTimeForecast("AutomaticTimeForecast","自动定时预报"); + private String fileType; + private String name; + FileTypeEnum(String fileType,String name){ + this.fileType = fileType; + this.name = name; + } + + public static String getNameByFileType(String fileType){ + for(FileTypeEnum obj:FileTypeEnum.values()){ + if(fileType.equals(obj.getFileType())){ + return obj.getName(); + } + } + return "分析类型不存在"; + } + + public String getFileType() { + return fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/ImageData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/ImageData.java new file mode 100644 index 0000000..347a9c2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/ImageData.java @@ -0,0 +1,8 @@ +package org.springblade.general_dispatching.excelwd.entity; + +import lombok.Data; + +@Data +public class ImageData { + private byte[] byteArray; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TableData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TableData.java new file mode 100644 index 0000000..babad2e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TableData.java @@ -0,0 +1,25 @@ +package org.springblade.general_dispatching.excelwd.entity; + +import java.util.List; +import java.util.Map; + +public class TableData { + List title; + List> value; + + public List getTitle() { + return title; + } + + public void setTitle(List title) { + this.title = title; + } + + public List> getValue() { + return value; + } + + public void setValue(List> value) { + this.value = value; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TitleListData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TitleListData.java new file mode 100644 index 0000000..101ff00 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/TitleListData.java @@ -0,0 +1,25 @@ +package org.springblade.general_dispatching.excelwd.entity; + +import java.util.List; +import java.util.Map; + +public class TitleListData { + String title; + List> list; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public List> getList() { + return list; + } + + public void setList(List> list) { + this.list = list; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/UploadData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/UploadData.java new file mode 100644 index 0000000..814d66c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/entity/UploadData.java @@ -0,0 +1,43 @@ +package org.springblade.general_dispatching.excelwd.entity; + +import java.util.List; + +public class UploadData { + String image; + private String sheet; + TableData table; + List titleList; + + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getSheet() { + return sheet; + } + + public void setSheet(String sheet) { + this.sheet = sheet; + } + + public TableData getTable() { + return table; + } + + public void setTable(TableData table) { + this.table = table; + } + + public List getTitleList() { + return titleList; + } + + public void setTitleList(List titleList) { + this.titleList = titleList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/ExcelWdService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/ExcelWdService.java new file mode 100644 index 0000000..93d8d3c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/ExcelWdService.java @@ -0,0 +1,12 @@ +package org.springblade.general_dispatching.excelwd.service; + +import org.springblade.general_dispatching.excelwd.entity.UploadData; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +public interface ExcelWdService { + void dealExcelData(String path, List list) throws IOException; + void upload(MultipartFile file, String path) throws Exception; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/impl/ExcelWdServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/impl/ExcelWdServiceImpl.java new file mode 100644 index 0000000..e3ec632 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/service/impl/ExcelWdServiceImpl.java @@ -0,0 +1,341 @@ +package org.springblade.general_dispatching.excelwd.service.impl; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.util.FileUtils; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.WriteTable; +import org.springblade.general_dispatching.excelwd.entity.ImageData; +import org.springblade.general_dispatching.excelwd.entity.TableData; +import org.springblade.general_dispatching.excelwd.entity.TitleListData; +import org.springblade.general_dispatching.excelwd.entity.UploadData; +import org.springblade.general_dispatching.excelwd.service.ExcelWdService; +import org.springblade.general_dispatching.excelwd.strategy.*; +import org.springblade.general_dispatching.excelwd.service.ExcelWdService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +public class ExcelWdServiceImpl implements ExcelWdService { + + @Value("${file.excel.excelImage}") + private String excelImage; + + public void upload(MultipartFile file, String path) throws Exception { + // 生成新的文件名 + File dest = new File(path); + // 判断文件父目录是否存在 + if (!dest.getParentFile().exists()) { + dest.getParentFile().mkdir(); + } + + // 保存文件 + file.transferTo(dest); + } + +// public static void main(String[] args) throws IOException { +// long millis=System.currentTimeMillis(); +// String path="D:\\upload\\excelResult"+File.separator+"ArtificialForecast"+"_"+millis+".xls"; +// List list=new ArrayList<>(); +// +// UploadData dd=new UploadData(); +// dd.setImage("excelImage1646636263435.png"); +// dd.setSheet("工程图"); +// list.add(dd); +// +// dd=new UploadData(); +// dd.setImage(null); +// dd.setSheet("数据"); +// TableData table=new TableData(); +// List title=new ArrayList<>(); +// title.add("时间"); +// title.add("值1"); +// title.add("值2"); +// title.add("值3"); +// title.add("值4"); +// title.add("值5"); +// table.setTitle(title); +// List> value=new ArrayList<>(); +// Map map=new LinkedHashMap<>(); +// map.put("value0","2020/01/02 00:00:00"); +// map.put("value1","-"); +// map.put("value2","-"); +// map.put("value3","0.5"); +// map.put("value4","0.8"); +// map.put("value5","1"); +// value.add(map); +// map=new LinkedHashMap<>(); +// map.put("value0","2020/01/02 00:00:00"); +// map.put("value1","-"); +// map.put("value2","-"); +// map.put("value3",0.2); +// map.put("value4","0.8"); +// map.put("value5","4"); +// value.add(map); +// map=new LinkedHashMap<>(); +// map.put("value0","2020/01/02 00:00:00"); +// map.put("value1","-"); +// map.put("value2","-"); +// map.put("value3",0.9); +// map.put("value4","0.7"); +// map.put("value5","1.5"); +// value.add(map); +// table.setValue(value); +// dd.setTable(table); +// list.add(dd); +// +// dealExcelDataDemo(path,list); +// } +// +// static void dealExcelDataDemo(String path, List list) throws IOException { +// +// ExcelWriter excelWriter = EasyExcel.write(path,Map.class).build(); +// +// for(UploadData uploadData:list){ +// writeUploadDataDemo(excelWriter,uploadData); +// } +// +// // 千万别忘记finish 会帮忙关闭流 +// excelWriter.finish(); +// } +// +// +// static void writeUploadDataDemo(ExcelWriter excelWriter,UploadData data) throws IOException { +// +// if(data.getImage()!=null) { +// WriteSheet writeSheet = EasyExcel.writerSheet(data.getSheet()) +// .registerWriteHandler(new ExcelWidthStyleStrategy()) +// .registerWriteHandler(new CustomCellWriteHeightConfig()).build(); +// List datas=new ArrayList<>(); +// ImageData imageData=new ImageData(); +// String imageStr=data.getImage(); +// imageData.setInputStream(getImageFileStreamDemo(imageStr)); +// datas.add(imageData); +// excelWriter.write(datas, writeSheet); +// } +// if(data.getTable()!=null) { +// TableData tableData=data.getTable(); +// List title=tableData.getTitle(); +// List> value=getDataList(tableData.getValue()); +// WriteSheet writeSheet = EasyExcel.writerSheet(data.getSheet()) +// .registerWriteHandler(new ExcelOneStyleStrategy()).head(head(title)).build(); +// excelWriter.write(value, writeSheet); +// } +// } + +// static InputStream getImageFileStreamDemo(String imageFile) throws FileNotFoundException { +// return new FileInputStream(new File("D:\\upload\\excelResult\\excelImage"+File.separator+imageFile)); +// } + + static List> getDataList(List> maps){ + List> list=new ArrayList<>(); + for(Map map:maps){ + List arr=new ArrayList<>(); + for(int i=0;i list) throws IOException { + + ExcelWriter excelWriter = EasyExcel.write(path).build(); + + for(UploadData uploadData:list){ + writeUploadData(excelWriter,uploadData); + } + + // 千万别忘记finish 会帮忙关闭流 + excelWriter.finish(); + //删除临时图片 + deleteAllImage(list); + } + + void writeUploadData(ExcelWriter excelWriter, UploadData data) throws IOException { + + if(data.getImage()!=null) { + WriteSheet writeSheet = EasyExcel.writerSheet(data.getSheet()) + .registerWriteHandler(new ExcelWidthStyleStrategy()) + .registerWriteHandler(new CustomCellWriteHeightConfig()).build(); + List datas=new ArrayList<>(); + ImageData imageData=new ImageData(); + String imageStr=data.getImage(); + imageData.setByteArray(getImageFileByteArray(imageStr)); + //imageData.setInputStream(getImageFileStream(imageStr)); + datas.add(imageData); + excelWriter.write(datas, writeSheet); + } + if(data.getTable()!=null) { + TableData tableData=data.getTable(); + List title=tableData.getTitle(); + List> value=getDataList(tableData.getValue()); + WriteSheet writeSheet = EasyExcel.writerSheet(data.getSheet()) + .registerWriteHandler(new ExcelOneStyleStrategy()) + .head(head(title)).build(); + excelWriter.write(value, writeSheet); + } + + if(data.getTitleList()!=null && !data.getTitleList().isEmpty()) { + List list=data.getTitleList(); + WriteSheet writeSheet = EasyExcel.writerSheet(data.getSheet()).needHead(Boolean.FALSE).build(); + int rowIndex=0; + for(int i=0;i titles=new ArrayList<>(); + titles.add(title); + int count=3; + int len=count*2-1; + for(int j=0;j> value=getList(dataList.getList(),count); + + int endColumnIndex=len; + + WriteTable writeTable = EasyExcel.writerTable(i).needHead(Boolean.TRUE). + registerWriteHandler(new MergeHeadStrategy(rowIndex,endColumnIndex)) + .head(head(titles)).build(); + + rowIndex += value.size()+1; + + excelWriter.write(value, writeSheet, writeTable); + } + } + } + + static List> getList(List> list,int count){ + List> data=new ArrayList<>(); + if(list==null || list.isEmpty()){ + return data; + } + + List row = new ArrayList<>(); + int len=list.size(); + for(int i=0;i map=list.get(i); + if(i%count == 0){//最外层list装 两个map的数据组成的list + + if(row!=null && !row.isEmpty()) {//添加完数据后再创建新的list + data.add(row); + } + + if(i!=0) {//第0个不创建对象,上面已经创建了 + row = new ArrayList<>(); + } + }else{ + if(i== len-1){ + if(row!=null && !row.isEmpty()) {//添加完数据后再创建新的list + data.add(row); + } + } + } + + String dataName=String.valueOf(map.get("dataName")); + row.add(dataName); + String dataValue=String.valueOf(map.get("dataValue")); + if(map.get("dataValue")==null){ + dataValue = ""; + } + String unit=String.valueOf(map.get("unit")); + if(map.get("unit")!=null && !"".equals(unit)) { + row.add(dataValue+unit); + }else{ + row.add(dataValue); + } + } + return data; + } + + +// public static void main(String[] args) { +// List> list=new ArrayList<>(); +// Map map=new HashMap<>(); +// map.put("dataName","模拟开始时间"); +// map.put("dataValue","2022-03-13 08:00"); +// map.put("unit",""); +// list.add(map); +// map=new HashMap<>(); +// map.put("dataName","作业预报时间"); +// map.put("dataValue","2022-03-18 10:00"); +// map.put("unit",""); +// list.add(map); +// map=new HashMap<>(); +// map.put("dataName","预报时段数"); +// map.put("dataValue","24"); +// map.put("unit",""); +// list.add(map); +// map=new HashMap<>(); +// map.put("dataName","预见期"); +// map.put("dataValue","6"); +// map.put("unit",""); +// list.add(map); +// map=new HashMap<>(); +// map.put("dataName","预报模型"); +// map.put("dataValue","新安江模型"); +// map.put("unit",""); +// list.add(map); +// map=new HashMap<>(); +// map.put("dataName","气象预报"); +// map.put("dataValue",null); +// map.put("unit",""); +// list.add(map); +// List> data=getList(list,3); +// System.out.println(data); +// } + + private void deleteAllImage(List list){ + for(UploadData uploadData:list){ + deleteImage(uploadData); + } + } + + private void deleteImage(UploadData uploadData){ + String imageFile=uploadData.getImage(); + if(uploadData.getImage()!=null) { + File file = new File(excelImage + File.separator + imageFile); + if (file.exists()) { + file.delete(); + } + } + } + + private byte[] getImageFileByteArray(String imageFile) throws IOException { + return FileUtils.readFileToByteArray(new File(excelImage+File.separator+imageFile)); + } + + + private static List> head(List title) { + List> list = new ArrayList>(); + for(String str:title) { + List head = new ArrayList(); + head.add(str); + list.add(head); + } + return list; + } + + + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/CustomCellWriteHeightConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/CustomCellWriteHeightConfig.java new file mode 100644 index 0000000..ba82127 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/CustomCellWriteHeightConfig.java @@ -0,0 +1,18 @@ +package org.springblade.general_dispatching.excelwd.strategy; + +import com.alibaba.excel.write.style.row.AbstractRowHeightStyleStrategy; +import org.apache.poi.ss.usermodel.Row; + +public class CustomCellWriteHeightConfig extends AbstractRowHeightStyleStrategy { + private static final Integer DEFAULT_HEIGHT = 9000; + @Override + protected void setHeadColumnHeight(Row row, int i) { + + } + + @Override + protected void setContentColumnHeight(Row row, int i) { + Integer maxHeight = 1; + row.setHeight((short) (maxHeight * DEFAULT_HEIGHT)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelOneStyleStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelOneStyleStrategy.java new file mode 100644 index 0000000..4a99594 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelOneStyleStrategy.java @@ -0,0 +1,23 @@ +package org.springblade.general_dispatching.excelwd.strategy; + +import com.alibaba.excel.metadata.CellData; +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; +import com.alibaba.excel.write.style.row.AbstractRowHeightStyleStrategy; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Sheet; + +import java.util.List; + +public class ExcelOneStyleStrategy extends AbstractColumnWidthStyleStrategy{ + + @Override + protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { + // 简单设置 + Sheet sheet = writeSheetHolder.getSheet(); + if(cell.getColumnIndex()==0) { + sheet.setColumnWidth(cell.getColumnIndex(), 5000); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelWidthStyleStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelWidthStyleStrategy.java new file mode 100644 index 0000000..a19e543 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/ExcelWidthStyleStrategy.java @@ -0,0 +1,25 @@ +package org.springblade.general_dispatching.excelwd.strategy; + +import com.alibaba.excel.metadata.CellData; +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Sheet; + +import java.util.List; + +public class ExcelWidthStyleStrategy extends AbstractColumnWidthStyleStrategy { + + @Override + protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { + // 简单设置 + Sheet sheet = writeSheetHolder.getSheet(); + sheet.setColumnWidth(cell.getColumnIndex(), 30000); + } +// protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List> cellDataList, Cell cell, +// Head head, Integer relativeRowIndex, Boolean isHead) { +// Sheet sheet = writeSheetHolder.getSheet(); +// sheet.setColumnWidth(cell.getColumnIndex(), 30000); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/MergeHeadStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/MergeHeadStrategy.java new file mode 100644 index 0000000..c666cf2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/strategy/MergeHeadStrategy.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.excelwd.strategy; + +import com.alibaba.excel.write.handler.AbstractRowWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.util.CellRangeAddress; + +public class MergeHeadStrategy extends AbstractRowWriteHandler { + private int rowIndex; + private int endColumnIndex; + public MergeHeadStrategy(int rowIndex,int endColumnIndex){ + this.rowIndex = rowIndex; + this.endColumnIndex =endColumnIndex; + } + @Override + public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, + Integer relativeRowIndex, Boolean isHead) { + CellRangeAddress cellRangeAddress = new CellRangeAddress(rowIndex, rowIndex, + 0, endColumnIndex); + writeSheetHolder.getSheet().addMergedRegionUnsafe(cellRangeAddress); + + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/web/ExcelWdController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/web/ExcelWdController.java new file mode 100644 index 0000000..f900d61 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/excelwd/web/ExcelWdController.java @@ -0,0 +1,111 @@ +package org.springblade.general_dispatching.excelwd.web; + +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.excelwd.entity.DownLoadRequest; +import org.springblade.general_dispatching.excelwd.entity.FileTypeEnum; +import org.springblade.general_dispatching.excelwd.entity.UploadData; +import org.springblade.general_dispatching.excelwd.service.ExcelWdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.List; + +@Controller +@RequestMapping("/excelwd") +public class ExcelWdController { + + @Value("${file.excel.excelUrl}") + private String excelUrl; + @Value("${file.excel.excelImage}") + private String excelImage; + + @Autowired + ExcelWdService excelWdService; + + @RequestMapping(value = "/uploadImg",method = RequestMethod.POST) + @ResponseBody + public R uploadImg(@RequestParam("file") MultipartFile[] file) throws Exception { + long millis=System.currentTimeMillis(); + String name="excelImage"+millis+".png"; + String path=excelImage+File.separator+name; + excelWdService.upload(file[0],path); + return R.data(name,"上传成功"); + } + + + @RequestMapping(value = "/download",method = RequestMethod.POST) + @ResponseBody + public R download(@RequestBody DownLoadRequest loadRequest) throws IOException { + if(loadRequest ==null){ + return R.fail(500,"未传递参数"); + } + List list=loadRequest.getList(); + String fileType=loadRequest.getFileType(); + + if(list==null || list.isEmpty()){ + return R.fail(500,"传递的数据不能为空"); + } + + if(fileType==null || "".equals(fileType)){ + fileType = FileTypeEnum.ArtificialForecast.getFileType(); + } + + long millis=System.currentTimeMillis(); + String fileName=fileType+"_"+millis+".xls"; + String path=excelUrl+File.separator+fileName; + File filePath=new File(path); + if(!filePath.exists()){ + filePath.createNewFile(); + } + //处理数据 + excelWdService.dealExcelData(path,list); + return R.data(fileName,"生成文件成功"); + } + + @RequestMapping(value = "/downloadFile",method = RequestMethod.GET) + public void downloadFile(String fileType,String name, HttpServletResponse response) throws IOException { + long millis=System.currentTimeMillis(); + if(fileType==null || "".equals(fileType.trim())){ + return; + } + String nameStr=FileTypeEnum.getNameByFileType(fileType); + boolean flag=false; + String path=excelUrl+File.separator+name; + File filePath=new File(path); + // 读到流中 + InputStream inStream = new FileInputStream(path);// 文件的存放路径 + // 设置输出的格式 + response.setContentType("application/vnd.ms-excel"); //03版 +// response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//07版 + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + String fileName = URLEncoder.encode(nameStr, "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName+"_"+millis+ ".xls");//03 +// response.setHeader("Content-disposition", "attachment;filename=" + fileName+"_"+millis+ ".xls");//07 + // 循环取出流中的数据 + byte[] b = new byte[1024]; + int len; + try { + while ((len = inStream.read(b)) > 0) + response.getOutputStream().write(b, 0, len); + inStream.close(); + flag = true; + } catch (IOException e) { + e.printStackTrace(); + } + + if(flag) { + filePath.delete(); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/DisPlayResultConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/DisPlayResultConfig.java new file mode 100644 index 0000000..773c243 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/DisPlayResultConfig.java @@ -0,0 +1,85 @@ +package org.springblade.general_dispatching.model_base.entity; + +public class DisPlayResultConfig { + private Integer displayNum;//序号 + private String resultItem;//数据项code + private String resultItemName;//数据项名称 + private String groupId;//组id + private String groupName;//组名(对数据组进行描述) + private String displayType;//文本text 表格table 图表chart + /*** + *展示规则 + * 文本 1字符串(用,分隔) 2数组 3map 4为空 + * 表格 0其他 1普通 2dt行转列 3typeCode行专列(dt为name) 4树表 5typeCode行专列(typeCode为name) + * 如果为树表 每一个分组的序号(pno)0代表的总的,其他分项按顺序配置 + * groupName对于树表是最高的一类,并用于进行合并(比如水口一组 筷子篓一组 然后合并为一组) + * groupName对于行转列 为表头的第一列名称 + * groupName对于图 为标题的名称 + */ + private String displayRule; + private String unit;//单位 + + public Integer getDisplayNum() { + return displayNum; + } + + public void setDisplayNum(Integer displayNum) { + this.displayNum = displayNum; + } + + public String getResultItem() { + return resultItem; + } + + public void setResultItem(String resultItem) { + this.resultItem = resultItem; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getDisplayType() { + return displayType; + } + + public void setDisplayType(String displayType) { + this.displayType = displayType; + } + + public String getDisplayRule() { + return displayRule; + } + + public void setDisplayRule(String displayRule) { + this.displayRule = displayRule; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getResultItemName() { + return resultItemName; + } + + public void setResultItemName(String resultItemName) { + this.resultItemName = resultItemName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelInfo.java new file mode 100644 index 0000000..b1c4f4f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelInfo.java @@ -0,0 +1,153 @@ +package org.springblade.general_dispatching.model_base.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Date; + +/** + * @author moze + */ +@ApiModel(value = "模型类", description = "记录模型基本信息") +public class ModelInfo { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "编码", notes = "编码:创建时间+ID", dataType = "String") + private String code; + @ApiModelProperty( value = "名称", notes = "名称", dataType = "String") + private String name; + @ApiModelProperty( value = "是否删除", notes = "1 表示删除,0 表示未删除", dataType = "Integer") + private Integer isDeleted; + @ApiModelProperty( value = "电站类型", notes = "电站类型:01:径流式;02:水库式;03:梯级;04:水库群", dataType = "String") + private String plantType; + @ApiModelProperty( value = "算法", notes = "算法如新安江模型", dataType = "String") + private String algorithm; + @ApiModelProperty( value = "模型文件", notes = "模型文件", dataType = "String") + private String file; + @ApiModelProperty( value = "状态", notes = "状态:01:待应用,02:已应用,03:已停用", dataType = "String") + private String status; + @ApiModelProperty( value = "描述", notes = "描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "创建时间", notes = "创建时间", dataType = "Date") + private Date createTime; + @ApiModelProperty( value = "创建人", notes = "创建人", dataType = "String") + private String creater; + @ApiModelProperty( value = "最后更新人", notes = "最后更新人", dataType = "Date") + private Date lastUpdateTime; + @ApiModelProperty( value = "最后更新时间", notes = "最后更新时间", dataType = "String") + private String lastUpdater; + @ApiModelProperty( value = "所属模块", notes = "所属模块", dataType = "String") + private String refModule; + + public String getRefModule() { + return refModule; + } + + public void setRefModule(String refModule) { + this.refModule = refModule; + } + + public String getPlantType() { + return plantType; + } + + public void setPlantType(String plantType) { + this.plantType = plantType; + } + + public Integer getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(Integer isDeleted) { + this.isDeleted = isDeleted; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + 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; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getAlgorithm() { + return algorithm; + } + + public void setAlgorithm(String algorithm) { + this.algorithm = algorithm; + } + + public String getFile() { + return file; + } + + public void setFile(String file) { + this.file = file; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getLastUpdater() { + return lastUpdater; + } + + public void setLastUpdater(String lastUpdater) { + this.lastUpdater = lastUpdater; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelParam.java new file mode 100644 index 0000000..c6e9f89 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelParam.java @@ -0,0 +1,88 @@ +package org.springblade.general_dispatching.model_base.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型参数") +public class ModelParam { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "模型编码", notes = "外键", dataType = "String") + private String mcode; + @ApiModelProperty( value = "序号", notes = "序号", dataType = "Integer") + private Integer pno; + @ApiModelProperty( value = "数值类型", notes = "数值类型(int,float,double,int[10]) C++的数据类型", dataType = "String") + private String fieldType; + @ApiModelProperty( value = "参数名", notes = "参数名", dataType = "String") + private String name; + @ApiModelProperty( value = "参数编码", notes = "参数编码", dataType = "String") + private String code; + @ApiModelProperty( value = "参数描述", notes = "参数描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "是否删除", notes = "1 表示删除,0 表示未删除", dataType = "Integer") + private Integer isDeleted; + + public Integer getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(Integer isDeleted) { + this.isDeleted = isDeleted; + } + + public Integer getId() { + return id; + } + + public String getFieldType() { + return fieldType; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getMcode() { + return mcode; + } + + public void setMcode(String mcode) { + this.mcode = mcode; + } + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelResultConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelResultConfig.java new file mode 100644 index 0000000..98a18e0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelResultConfig.java @@ -0,0 +1,242 @@ +package org.springblade.general_dispatching.model_base.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @author moze + */ +@ApiModel("模型结果配置") +public class ModelResultConfig { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "模型编码", notes = "外键", dataType = "String") + private String mcode; + @ApiModelProperty( value = "序号", notes = "序号", dataType = "Integer") + private Integer pno; + @ApiModelProperty( value = "结果项", notes = "结果项来源于结果标准配置字典", dataType = "String") + private String resultItem; + @ApiModelProperty( value = "结果值类型", notes = "结果值类型(int,float) C++类型", dataType = "String") + private String resultType; + @ApiModelProperty( value = "保留小数位", notes = "保留小数位", dataType = "Integer") + private Integer decimalDigit; + @ApiModelProperty( value = "有效位", notes = "有效位", dataType = "Integer") + private Integer significantDigits; + @ApiModelProperty( value = "时间项类型", notes = "时间项类型(年,月,旬,天,小时,分钟,秒,毫秒)", dataType = "String") + private String dtType; + @ApiModelProperty( value = "时间间隔", notes = "时间间隔", dataType = "String") + private String dtPeriod; + @ApiModelProperty( value = "数据类型", notes = "数据类型(预测值,计划值,计算值,实测值 )", dataType = "String") + private String dataType; + @ApiModelProperty( value = "是否登记", notes = "服务是否登记到内存", dataType = "Short") + private Integer isSignIn; + @ApiModelProperty( value = "是否统计", notes = "是否为统计字段", dataType = "Short") + private Integer isStatistics; + @ApiModelProperty( value = "统计表名", notes = "统计表名", dataType = "String") + private String statisticsTable; + @ApiModelProperty( value = "统计字段名", notes = "统计字段名", dataType = "String") + private String statisticsField; + @ApiModelProperty( value = "统计对象ID", notes = "统计对象ID", dataType = "String") + private String statisticsObjectId; + @ApiModelProperty( value = "分组ID", notes = "分组ID", dataType = "String") + private String groupId; + @ApiModelProperty( value = "分组名称", notes = "分组名称", dataType = "String") + private String groupName; + @ApiModelProperty( value = "展示方式", notes = "展示方式", dataType = "String") + private String displayType; + @ApiModelProperty( value = "展示序号", notes = "展示序号", dataType = "Integer") + private Integer displayNumber; + @ApiModelProperty( value = "展示规则", notes = "展示规则", dataType = "String") + private String displayRule; + @ApiModelProperty( value = "单位", notes = "单位", dataType = "String") + private String unit; + @ApiModelProperty( value = "备注", notes = "备注", dataType = "String") + private String remark; + @ApiModelProperty( value = "是否删除", notes = "1 表示删除,0 表示未删除", dataType = "Integer") + private Integer isDeleted; + + public Integer getDisplayNumber() { + return displayNumber; + } + + public void setDisplayNumber(Integer displayNumber) { + this.displayNumber = displayNumber; + } + + public Integer getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(Integer isDeleted) { + this.isDeleted = isDeleted; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getMcode() { + return mcode; + } + + public void setMcode(String mcode) { + this.mcode = mcode; + } + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public String getResultType() { + return resultType; + } + + public void setResultType(String resultType) { + this.resultType = resultType; + } + + public Integer getDecimalDigit() { + return decimalDigit; + } + + public void setDecimalDigit(Integer decimalDigit) { + this.decimalDigit = decimalDigit; + } + + public Integer getSignificantDigits() { + return significantDigits; + } + + public void setSignificantDigits(Integer significantDigits) { + this.significantDigits = significantDigits; + } + + public String getDtType() { + return dtType; + } + + public void setDtType(String dtType) { + this.dtType = dtType; + } + + public String getDtPeriod() { + return dtPeriod; + } + + public void setDtPeriod(String dtPeriod) { + this.dtPeriod = dtPeriod; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public Integer getIsSignIn() { + return isSignIn; + } + + public void setIsSignIn(Integer isSignIn) { + this.isSignIn = isSignIn; + } + + public Integer getIsStatistics() { + return isStatistics; + } + + public void setIsStatistics(Integer isStatistics) { + this.isStatistics = isStatistics; + } + + public String getStatisticsTable() { + return statisticsTable; + } + + public void setStatisticsTable(String statisticsTable) { + this.statisticsTable = statisticsTable; + } + + public String getStatisticsField() { + return statisticsField; + } + + public void setStatisticsField(String statisticsField) { + this.statisticsField = statisticsField; + } + + public String getStatisticsObjectId() { + return statisticsObjectId; + } + + public void setStatisticsObjectId(String statisticsObjectId) { + this.statisticsObjectId = statisticsObjectId; + } + + + public String getResultItem() { + return resultItem; + } + + public void setResultItem(String resultItem) { + this.resultItem = resultItem; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getDisplayType() { + return displayType; + } + + public void setDisplayType(String displayType) { + this.displayType = displayType; + } + + public String getDisplayRule() { + return displayRule; + } + + public void setDisplayRule(String displayRule) { + this.displayRule = displayRule; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelTree.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelTree.java new file mode 100644 index 0000000..6fee36c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/entity/ModelTree.java @@ -0,0 +1,35 @@ +package org.springblade.general_dispatching.model_base.entity; + +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; + +import java.util.List; + +public class ModelTree { + private String code; + private String name; + private List children; + + 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; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/ModelInfoManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/ModelInfoManager.java new file mode 100644 index 0000000..7842f7f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/ModelInfoManager.java @@ -0,0 +1,20 @@ +package org.springblade.general_dispatching.model_base.manager; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.vo.ModelInfoBo; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; + +import java.util.List; + +public interface ModelInfoManager { + ModelInfoBo getModelInfo(String code); + List getModelParam(String code); + List getModelResultConfig(String code); + Boolean createModelInfo(ModelInfo modelInfo, List params, List results); + + IPage getModelPage(IPage page, String code, String name); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/impl/ModelInfoManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/impl/ModelInfoManagerImpl.java new file mode 100644 index 0000000..5a93429 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/manager/impl/ModelInfoManagerImpl.java @@ -0,0 +1,67 @@ +package org.springblade.general_dispatching.model_base.manager.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_base.mapper.ModelInfoMapper; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_base.mapper.ModelResultConfigMapper; +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.manager.ModelInfoManager; +import org.springblade.general_dispatching.model_base.vo.ModelInfoBo; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class ModelInfoManagerImpl implements ModelInfoManager { + @Autowired + private ModelInfoMapper mim; + @Autowired + private ModelParamMapper mpm; + @Autowired + private ModelResultConfigMapper mrm; + @Override + public ModelInfoBo getModelInfo(String code) { + ModelInfoBo mib = new ModelInfoBo(); + mib.setModelInfo(mim.selectInfoByCode(code)); + mib.setParams(getModelParam(code)); + mib.setResultConfigVos(getModelResultConfig(code)); + return mib; + } + + @Override + public List getModelParam(String code) { + return mpm.selectByMcode(code); + } + + @Override + public List getModelResultConfig(String code) { + return mrm.selectByMcode(code); + } + + @Override + @Transactional + public Boolean createModelInfo(ModelInfo modelInfo, List params,List results) { + if(modelInfo.getId()!=null) { + mim.updateByPrimaryKeySelective(modelInfo); + }else{ + int cnt = mim.insert(modelInfo); + if (cnt > 0) { + mpm.batchInsert(params); + mrm.batchInsert(results); + } + } + return true; + } + + @Override + public IPage getModelPage(IPage page,String code,String name) { + return mim.selectByModel(page,code,name); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.java new file mode 100644 index 0000000..e1e2ca7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.java @@ -0,0 +1,46 @@ +package org.springblade.general_dispatching.model_base.mapper; + + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelInfoMapper { + + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelInfo record); + + @SqlParser (filter = true) + int insertSelective(ModelInfo record); + + @SqlParser (filter = true) + ModelInfoVo selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + Integer selectByCode(@Param("code") String code, @Param("id") Integer id); + + @SqlParser (filter = true) + ModelInfoVo selectInfoByCode(@Param("code") String code); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelInfo record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelInfo record); + + @SqlParser (filter = true) + List> selectDict(); + + @SqlParser (filter = true) + List selectByModel(); + + @SqlParser (filter = true) + IPage selectByModel(IPage page, @Param("code") String code, @Param("name") String name); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.xml new file mode 100644 index 0000000..7716a59 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelInfoMapper.xml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + wmi.ID, wmi.CODE, wmi.NAME, wmi.STATUS,mrt.`NAME` AS STATUS_NAME, + wmi.PLANT_TYPE,pt.name as PLANT_TYPE_NAME,wmi.IS_DELETED, wmi.REMARK, wmi.CREATE_TIME,wmi.CREATER, + model_user.NAME as CREATER_NAME, wmi.LAST_UPDATE_TIME, wmi.LAST_UPDATER,wmi.ALGORITHM,wmi.FILE, + wmi.REFMODULE,refModule.NAME AS REFMODULE_NAME + + + + + + + + UPDATE wd_model_info set IS_DELETED = 1 WHERE ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_info (ID, CODE, NAME, + STATUS, ALGORITHM,FILE, REMARK, + CREATE_TIME, CREATER, LAST_UPDATE_TIME, + LAST_UPDATER,PLANT_TYPE,REFMODULE,IS_DELETED ) + values (#{id,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, + #{status,jdbcType=VARCHAR}, #{algorithm,jdbcType=VARCHAR}, #{file,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creater,jdbcType=VARCHAR}, #{lastUpdateTime,jdbcType=TIMESTAMP}, + #{lastUpdater,jdbcType=VARCHAR},#{plantType,jdbcType=VARCHAR},#{refModule,jdbcType=VARCHAR}, + #{isDeleted,jdbcType=INTEGER}) + + + insert into wd_model_info + + + ID, + + + CODE, + + + NAME, + + + STATUS, + + + ALGORITHM, + + + FILE, + + + REMARK, + + + CREATE_TIME, + + + CREATER, + + + LAST_UPDATE_TIME, + + + LAST_UPDATER, + + + PLANT_TYPE, + + + REFMODULE, + + + IS_DELETED, + + + + + #{id,jdbcType=INTEGER}, + + + #{code,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{status,jdbcType=VARCHAR}, + + + #{algorithm,jdbcType=VARCHAR}, + + + #{file,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{creater,jdbcType=VARCHAR}, + + + #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + #{lastUpdater,jdbcType=VARCHAR}, + + + #{plantType,jdbcType=VARCHAR}, + + + #{refModule,jdbcType=VARCHAR}, + + + #{isDeleted,jdbcType=INTEGER}, + + + + + + update wd_model_info + + + CODE = #{code,jdbcType=VARCHAR}, + + + PLANT_TYPE=#{plantType,jdbcType=VARCHAR}, + + + NAME = #{name,jdbcType=VARCHAR}, + + + STATUS = #{status,jdbcType=VARCHAR}, + + + FILE = #{file,jdbcType=VARCHAR}, + + + ALGORITHM= #{algorithm,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + CREATER = #{creater,jdbcType=VARCHAR}, + + + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + + + REFMODULE = #{refModule,jdbcType=VARCHAR}, + + + IS_DELETED=#{isDeleted,jdbcType=INTEGER}, + + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_info + set CODE = #{code,jdbcType=VARCHAR}, + NAME = #{name,jdbcType=VARCHAR}, + STATUS = #{status,jdbcType=VARCHAR}, + ALGORITHM= #{algorithm,jdbcType=VARCHAR}, + FILE = #{file,jdbcType=VARCHAR}, + PLANT_TYPE=#{plantType,jdbcType=VARCHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + CREATER = #{creater,jdbcType=VARCHAR}, + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + REFMODULE = #{refModule,jdbcType=VARCHAR}, + IS_DELETED=#{isDeleted,jdbcType=INTEGER} + where ID = #{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.java new file mode 100644 index 0000000..c2443df --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.java @@ -0,0 +1,43 @@ +package org.springblade.general_dispatching.model_base.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelParamMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelParam record); + + @SqlParser (filter = true) + int insertSelective(ModelParam record); + + @SqlParser (filter = true) + ModelParam selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelParam record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelParam record); + + @SqlParser (filter = true) + int batchInsert(@Param("params") List params); + + @SqlParser(filter = true) + List selectByMcode(@Param("mcode") String mcode); + + //根据模型codes查询模型对应的参数个数 + @SqlParser (filter = true) + List> getCountByCode(@Param("params") List codes); + + @SqlParser (filter = true) + int selectByPno(@Param("pno") int pno, @Param("mCode") String mCode, @Param("id") Integer id); + + @SqlParser (filter = true) + int selectByModel(ModelParam modelParam); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.xml new file mode 100644 index 0000000..ddf6c3c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelParamMapper.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + param.ID, param.MCODE, param.PNO, param.NAME, param.CODE,param.FIELD_TYPE,param.REMARK,param.IS_DELETED + + + + + + + + + + + + + + UPDATE wd_model_param SET IS_DELETED=1 + where ID = #{id,jdbcType=INTEGER} + + + + insert into wd_model_param (ID, MCODE, PNO, + NAME, CODE, REMARK,FIELD_TYPE,IS_DELETED) + values (#{id,jdbcType=INTEGER}, #{mcode,jdbcType=VARCHAR}, #{pno,jdbcType=INTEGER}, + #{name,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{fieldType,jdbcType=VARCHAR}, #{isDeleted,jdbcType=INTEGER}) + + + + insert into wd_model_param (MCODE, PNO, + NAME, CODE, REMARK,FIELD_TYPE,IS_DELETED) + values + + ( + #{item.mcode,jdbcType=VARCHAR}, #{item.pno,jdbcType=INTEGER}, + #{item.name,jdbcType=VARCHAR}, #{item.code,jdbcType=VARCHAR}, + #{item.remark,jdbcType=VARCHAR}, #{item.fieldType,jdbcType=VARCHAR}, + #{item.isDeleted,jdbcType=INTEGER} + ) + + + + + insert into wd_model_param + + + ID, + + + MCODE, + + + PNO, + + + NAME, + + + CODE, + + + REMARK, + + + FIELD_TYPE, + + + IS_DELETED, + + + + + #{id,jdbcType=INTEGER}, + + + #{mcode,jdbcType=VARCHAR}, + + + #{pno,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{code,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{fieldType,jdbcType=VARCHAR}, + + + #{isDeleted,jdbcType=INTEGER}, + + + + + + update wd_model_param + + + MCODE = #{mcode,jdbcType=VARCHAR}, + + + FIELD_TYPE = #{fieldType,jdbcType=VARCHAR}, + + + PNO = #{pno,jdbcType=INTEGER}, + + + NAME = #{name,jdbcType=VARCHAR}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + IS_DELETED = #{isDeleted,jdbcType=INTEGER}, + + + where ID = #{id,jdbcType=INTEGER} + + + + update wd_model_param + set MCODE = #{mcode,jdbcType=VARCHAR}, + FIELD_TYPE = #{fieldType,jdbcType=VARCHAR}, + PNO = #{pno,jdbcType=INTEGER}, + NAME = #{name,jdbcType=VARCHAR}, + CODE = #{code,jdbcType=VARCHAR}, + IS_DELETED = #{isDeleted,jdbcType=INTEGER}, + REMARK = #{remark,jdbcType=VARCHAR} + where ID = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.java new file mode 100644 index 0000000..d3390d2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.java @@ -0,0 +1,43 @@ +package org.springblade.general_dispatching.model_base.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import org.springblade.general_dispatching.model_base.entity.DisPlayResultConfig; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ModelResultConfigMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelResultConfig record); + + @SqlParser (filter = true) + int insertSelective(ModelResultConfig record); + + @SqlParser (filter = true) + ModelResultConfigVo selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelResultConfig record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelResultConfig record); + + @SqlParser(filter = true) + List selectByMcode(@Param("mcode") String mcode); + + @SqlParser (filter = true) + int selectByModel(ModelResultConfig resultConfig); + + @SqlParser (filter = true) + int batchInsert(@Param("params") List params); + + @SqlParser (filter = true) + List selectDisPlayResultConfig(@Param("mcode") String mcode); + + @SqlParser (filter = true) + int selectByPno(@Param("pno") int pno, @Param("mCode") String mCode, @Param("id") Integer id); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.xml new file mode 100644 index 0000000..21b8a83 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/mapper/ModelResultConfigMapper.xml @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wmrc.ID, wmrc.MCODE, wmrc.PNO, wmrc.RESULT_ITEM, wmrc.RESULT_TYPE,wmrc.DECIMAL_DIGIT,wmrc.SIGNIFICANT_DIGITS, + wmrc.DT_TYPE, wmrc.DT_PERIOD, wmrc.DATA_TYPE, wmrc.IS_SIGN_IN, + wmrc.IS_STATISTICS, wmrc.STATISTICS_TABLE, wmrc.STATISTICS_FIELD, wmrc.STATISTICS_OBJECT_ID, + wmrc.GROUP_ID, wmrc.GROUP_NAME, wmrc.DISPLAY_NUMBER,wmrc.DISPLAY_TYPE, wmrc.DISPLAY_RULE, wmrc.UNIT, wmrc.REMARK, + wim.NAME AS MODEL_NAME,it.`NAME` AS RESULT_ITEM_NAME,rt.`NAME` AS RESULT_TYPE_NAME, + rdt.`NAME` AS DT_TYPE_NAME,rdata.`NAME` AS DATA_TYPE_NAME,rtab.`NAME` AS STATISTICS_TABLE_NAME, + dt.`NAME` AS DISPLAY_TYPE_NAME + + + + UPDATE wd_model_result_config SET IS_DELETED=1 + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_result_config (ID, MCODE, PNO, + RESULT_ITEM, RESULT_TYPE,DECIMAL_DIGIT,SIGNIFICANT_DIGITS, DT_TYPE, + DT_PERIOD, DATA_TYPE, IS_SIGN_IN, + IS_STATISTICS, STATISTICS_TABLE, STATISTICS_FIELD, + STATISTICS_OBJECT_ID, GROUP_ID, GROUP_NAME, DISPLAY_NUMBER, + DISPLAY_TYPE, DISPLAY_RULE, UNIT, + REMARK,IS_DELETED) + values (#{id,jdbcType=INTEGER}, #{mcode,jdbcType=VARCHAR}, #{pno,jdbcType=INTEGER}, + #{resultItem,jdbcType=VARCHAR}, #{resultType,jdbcType=VARCHAR}, + #{decimalDigit,jdbcType=INTEGER},#{significantDigits,jdbcType=INTEGER}, + #{dtType,jdbcType=VARCHAR}, + #{dtPeriod,jdbcType=VARCHAR}, #{dataType,jdbcType=VARCHAR}, #{isSignIn,jdbcType=SMALLINT}, + #{isStatistics,jdbcType=SMALLINT}, #{statisticsTable,jdbcType=VARCHAR}, #{statisticsField,jdbcType=VARCHAR}, + #{statisticsObjectId,jdbcType=VARCHAR}, #{groupId,jdbcType=VARCHAR}, #{groupName,jdbcType=VARCHAR},#{displayNumber,jdbcType=INTEGER}, + #{displayType,jdbcType=VARCHAR}, #{displayRule,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{isDeleted,jdbcType=VARCHAR}) + + + insert into wd_model_result_config (MCODE, PNO, + RESULT_ITEM, RESULT_TYPE,DECIMAL_DIGIT,SIGNIFICANT_DIGITS, DT_TYPE, + DT_PERIOD, DATA_TYPE, IS_SIGN_IN, + IS_STATISTICS, STATISTICS_TABLE, STATISTICS_FIELD, + STATISTICS_OBJECT_ID, GROUP_ID, GROUP_NAME,DISPLAY_NUMBER, + DISPLAY_TYPE, DISPLAY_RULE, UNIT, + REMARK,IS_DELETED) + values + + (#{item.mcode,jdbcType=VARCHAR}, #{item.pno,jdbcType=INTEGER}, + #{item.resultItem,jdbcType=VARCHAR}, #{item.resultType,jdbcType=VARCHAR}, + #{item.decimalDigit,jdbcType=INTEGER},#{item.significantDigits,jdbcType=INTEGER}, + #{item.dtType,jdbcType=VARCHAR},#{item.dtPeriod,jdbcType=VARCHAR}, #{item.dataType,jdbcType=VARCHAR}, #{item.isSignIn,jdbcType=SMALLINT}, + #{item.isStatistics,jdbcType=SMALLINT}, #{item.statisticsTable,jdbcType=VARCHAR}, #{item.statisticsField,jdbcType=VARCHAR}, + #{item.statisticsObjectId,jdbcType=VARCHAR}, #{item.groupId,jdbcType=VARCHAR}, #{item.groupName,jdbcType=VARCHAR},#{item.displayNumber,jdbcType=INTEGER}, + #{item.displayType,jdbcType=VARCHAR}, #{item.displayRule,jdbcType=VARCHAR}, #{item.unit,jdbcType=VARCHAR}, + #{item.remark,jdbcType=VARCHAR}, #{item.isDeleted,jdbcType=VARCHAR}) + + + + insert into wd_model_result_config + + + ID, + + + MCODE, + + + PNO, + + + RESULT_ITEM, + + + RESULT_TYPE, + + + DECIMAL_DIGIT, + + + SIGNIFICANT_DIGITS, + + + + DT_TYPE, + + + DT_PERIOD, + + + DATA_TYPE, + + + IS_SIGN_IN, + + + IS_STATISTICS, + + + STATISTICS_TABLE, + + + STATISTICS_FIELD, + + + STATISTICS_OBJECT_ID, + + + GROUP_ID, + + + GROUP_NAME, + + + DISPLAY_NUMBER, + + + DISPLAY_TYPE, + + + DISPLAY_RULE, + + + UNIT, + + + REMARK, + + + IS_DELETED, + + + + + #{id,jdbcType=INTEGER}, + + + #{mcode,jdbcType=VARCHAR}, + + + #{pno,jdbcType=INTEGER}, + + + #{resultItem,jdbcType=VARCHAR}, + + + #{resultType,jdbcType=VARCHAR}, + + + #{decimalDigit,jdbcType=INTEGER}, + + + #{significantDigits,jdbcType=INTEGER}, + + + #{dtType,jdbcType=VARCHAR}, + + + #{dtPeriod,jdbcType=VARCHAR}, + + + #{dataType,jdbcType=VARCHAR}, + + + #{isSignIn,jdbcType=SMALLINT}, + + + #{isStatistics,jdbcType=SMALLINT}, + + + #{statisticsTable,jdbcType=VARCHAR}, + + + #{statisticsField,jdbcType=VARCHAR}, + + + #{statisticsObjectId,jdbcType=VARCHAR}, + + + #{groupId,jdbcType=VARCHAR}, + + + #{groupName,jdbcType=VARCHAR}, + + + #{displayNumber,jdbcType=INTEGER}, + + + #{displayType,jdbcType=VARCHAR}, + + + #{displayRule,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{isDeleted,jdbcType=INTEGER}, + + + + + update wd_model_result_config + + + MCODE = #{mcode,jdbcType=VARCHAR}, + + + PNO = #{pno,jdbcType=INTEGER}, + + + RESULT_ITEM = #{resultItem,jdbcType=VARCHAR}, + + + RESULT_TYPE = #{resultType,jdbcType=VARCHAR}, + + + DECIMAL_DIGIT = #{decimalDigit,jdbcType=INTEGER}, + + + SIGNIFICANT_DIGITS=#{significantDigits,jdbcType=INTEGER}, + + + + DT_TYPE = #{dtType,jdbcType=VARCHAR}, + + + DT_PERIOD = #{dtPeriod,jdbcType=VARCHAR}, + + + DATA_TYPE = #{dataType,jdbcType=VARCHAR}, + + + IS_SIGN_IN = #{isSignIn,jdbcType=SMALLINT}, + + + IS_STATISTICS = #{isStatistics,jdbcType=SMALLINT}, + + + STATISTICS_TABLE = #{statisticsTable,jdbcType=VARCHAR}, + + + STATISTICS_FIELD = #{statisticsField,jdbcType=VARCHAR}, + + + STATISTICS_OBJECT_ID = #{statisticsObjectId,jdbcType=VARCHAR}, + + + GROUP_ID = #{groupId,jdbcType=VARCHAR}, + + + GROUP_NAME = #{groupName,jdbcType=VARCHAR}, + + + DISPLAY_NUMBER = #{displayNumber,jdbcType=INTEGER}, + + + DISPLAY_TYPE = #{displayType,jdbcType=VARCHAR}, + + + + DISPLAY_RULE = #{displayRule,jdbcType=VARCHAR}, + + + UNIT = #{unit,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + IS_DELETED = #{isDeleted,jdbcType=INTEGER}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_result_config + set MCODE = #{mcode,jdbcType=VARCHAR}, + PNO = #{pno,jdbcType=INTEGER}, + RESULT_ITEM = #{resultItem,jdbcType=VARCHAR}, + RESULT_TYPE = #{resultType,jdbcType=VARCHAR}, + DECIMAL_DIGIT = #{decimalDigit,jdbcType=INTEGER}, + SIGNIFICANT_DIGITS =#{significantDigits,jdbcType=INTEGER}, + DT_TYPE = #{dtType,jdbcType=VARCHAR}, + DT_PERIOD = #{dtPeriod,jdbcType=VARCHAR}, + DATA_TYPE = #{dataType,jdbcType=VARCHAR}, + IS_SIGN_IN = #{isSignIn,jdbcType=SMALLINT}, + IS_STATISTICS = #{isStatistics,jdbcType=SMALLINT}, + STATISTICS_TABLE = #{statisticsTable,jdbcType=VARCHAR}, + STATISTICS_FIELD = #{statisticsField,jdbcType=VARCHAR}, + STATISTICS_OBJECT_ID = #{statisticsObjectId,jdbcType=VARCHAR}, + GROUP_ID = #{groupId,jdbcType=VARCHAR}, + GROUP_NAME = #{groupName,jdbcType=VARCHAR}, + DISPLAY_NUMBER = #{displayNumber,jdbcType=INTEGER}, + DISPLAY_TYPE = #{displayType,jdbcType=VARCHAR}, + DISPLAY_RULE = #{displayRule,jdbcType=VARCHAR}, + UNIT = #{unit,jdbcType=VARCHAR}, + IS_DELETED = #{isDeleted,jdbcType=INTEGER}, + REMARK = #{remark,jdbcType=VARCHAR} + where ID = #{id,jdbcType=INTEGER} + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelInfoService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelInfoService.java new file mode 100644 index 0000000..8af9a8b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelInfoService.java @@ -0,0 +1,83 @@ +package org.springblade.general_dispatching.model_base.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; + +import java.util.List; +import java.util.Map; + +public interface ModelInfoService { + /** + * 模型列表接口 + * @param code 编码 + * @param name 名称 + * @param pageParam 分页 pageNo=1,pageSize=10 + * @return + */ + IPage listModelInfo(String code, String name, IPage pageParam); + + /** + * 判断模型是否重复 + * @param code 编码 + * @return + */ + Boolean duplicateModelInfo(String code); + Boolean duplicateModelInfo(String code, Integer id); + + /** + * 创建模型 + * @param modelInfo 模型 + * @param params 模型参数 + * @return + */ + Boolean createModelInfo(ModelInfo modelInfo, List params); + + /** + * 编辑模型信息 + * @param modelInfo + * @return + */ + Boolean editModelInfo(ModelInfo modelInfo); + + /** + * 编辑模型参数,会更新到模型配置 + * @param modelParam + * @return + */ + Map editModelParam(ModelParam modelParam); + + /** + * 添加模型参数,会更新到模型配置 + * @param modelParam + * @return + */ + Map addModelParam(ModelParam modelParam); + + /** + * 删除模型,删除模型配置 + * @param id + * @return + */ + Boolean delModelInfo(Integer id); + + /** + * 删除模型参数,会更新到模型配置 + * @param id + * @return + */ + Boolean delModelParam(Integer id); + + boolean hasPno(int pno, String mCode, Integer id); + /** + * @param mCode 模型编码 + * @return + */ + List listModelParam(String mCode); + + List listModelTree(); + + ModelParam selectModelParamById(Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelResultConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelResultConfigService.java new file mode 100644 index 0000000..50ac902 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/ModelResultConfigService.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.model_base.service; + +import org.springblade.general_dispatching.model_base.entity.DisPlayResultConfig; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelResultConfigService { + Map add(ModelResultConfig resultConfig); + + Map edit(ModelResultConfig resultConfig); + + Boolean del(Integer id); + Boolean delModelResultConfig(Integer id); + + List selectByMCode(String mCode); + Boolean batchInsert(List resultConfig); + List selectDisPlayResultConfig(@Param("mcode") String mcode); + + boolean hasPno(int pno, String mCode, Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelInfoServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelInfoServiceImpl.java new file mode 100644 index 0000000..3d6f0e6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelInfoServiceImpl.java @@ -0,0 +1,160 @@ +package org.springblade.general_dispatching.model_base.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_base.mapper.ModelInfoMapper; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.service.ModelInfoService; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelInfoServiceImpl implements ModelInfoService { + @Resource + private ModelInfoMapper modelInfoMapper; + @Resource + private ModelParamMapper mpm; + @Override + public IPage listModelInfo(String code, String name, IPage pageParam) { + return modelInfoMapper.selectByModel(pageParam,code, name); + } + + @Override + public Boolean duplicateModelInfo(String code) { + Integer cnt = modelInfoMapper.selectByCode(code,null); + return cnt == 0; + } + + @Override + public Boolean duplicateModelInfo(String code,Integer id) { + Integer cnt = modelInfoMapper.selectByCode(code,id); + return cnt == 0; + } + + @Override + public Boolean createModelInfo(ModelInfo modelInfo, List params) { + int cnt = modelInfoMapper.insert(modelInfo); + if (cnt > 0) { + cnt = mpm.batchInsert(params); + } + return cnt == params.size(); + } + + @Override + public Boolean editModelInfo(ModelInfo modelInfo) { + int cnt = modelInfoMapper.updateByPrimaryKeySelective(modelInfo); + return cnt>0; + } + + @Override + public Map editModelParam(ModelParam modelParam) { + Map data=new HashMap<>(); + modelParam.setIsDeleted(0); + int cnt = mpm.selectByModel(modelParam); + if(cnt > 0) { + data.put("msg","参数编码配置重复"); + data.put("flag","false"); + return data; + }else { + cnt = mpm.updateByPrimaryKeySelective(modelParam); + boolean flag=cnt>0; + if(flag){ + data.put("flag","true"); + data.put("msg","参数配置修改成功"); + }else{ + data.put("flag","false"); + data.put("msg","参数配置修改失败"); + } + return data; + } + } + + @Override + public Map addModelParam(ModelParam modelParam) { + Map data=new HashMap<>(); + modelParam.setIsDeleted(0); + int cnt = mpm.selectByModel(modelParam); + if(cnt > 0) { + data.put("msg","参数编码配置重复"); + data.put("flag","false"); + return data; + }else { + cnt = mpm.insertSelective(modelParam); + boolean flag=cnt>0; + if(flag){ + data.put("flag","true"); + data.put("msg","参数配置修改成功"); + }else{ + data.put("flag","false"); + data.put("msg","参数配置修改失败"); + } + return data; + } + } + + @Override + public Boolean delModelInfo(Integer id) { + int cnt = modelInfoMapper.deleteByPrimaryKey(id); + return cnt > 0; + } + + @Override + public Boolean delModelParam(Integer id) { + ModelParam param = mpm.selectByPrimaryKey(id); + int cnt = 0; + if(param != null){ + cnt = mpm.deleteByPrimaryKey(id); + } + return cnt > 0; + } + + @Override + public boolean hasPno(int pno,String mCode,Integer id) { + return mpm.selectByPno(pno,mCode,id)>0; + } + + @Override + public List listModelParam(String mCode) { + return mpm.selectByMcode(mCode); + } + + @Override + public List listModelTree() { + List data=new ArrayList<>(); + List> list=modelInfoMapper.selectDict(); + List modelInfoVos=modelInfoMapper.selectByModel(); + List children=null; + ModelTree tree=null; + for(Map map:list){ + tree=new ModelTree(); + String code=String.valueOf(map.get("value")); + tree.setCode(code); + String name=String.valueOf(map.get("name")); + tree.setName(name); + + children=new ArrayList<>(); + for(ModelInfoVo vo:modelInfoVos){ + if(vo.getRefModule().equals(code)){ + children.add(vo); + } + } + tree.setChildren(children); + data.add(tree); + } + return data; + } + + @Override + public ModelParam selectModelParamById(Integer id) { + return mpm.selectByPrimaryKey(id); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelResultConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelResultConfigServiceImpl.java new file mode 100644 index 0000000..109292c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/service/impl/ModelResultConfigServiceImpl.java @@ -0,0 +1,98 @@ +package org.springblade.general_dispatching.model_base.service.impl; + +import org.springblade.general_dispatching.model_base.mapper.ModelResultConfigMapper; +import org.springblade.general_dispatching.model_base.entity.DisPlayResultConfig; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.service.ModelResultConfigService; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelResultConfigServiceImpl implements ModelResultConfigService { + @Resource + private ModelResultConfigMapper mrcm; + @Override + public Map add(ModelResultConfig resultConfig) { + Map data=new HashMap<>(); + resultConfig.setIsDeleted(0); + int cnt = mrcm.selectByModel(resultConfig); + if(cnt > 0) { + data.put("msg","模型结果项配置重复"); + data.put("flag","false"); + return data; + }else { + cnt = mrcm.insert(resultConfig); + boolean flag=cnt>0; + if(flag){ + data.put("flag","true"); + data.put("msg","新增成功"); + }else{ + data.put("flag","false"); + data.put("msg","新增失败"); + } + return data; + } + } + + @Override + public Boolean batchInsert(List resultConfig) { + int cnt = mrcm.batchInsert(resultConfig); + return cnt > 0; + } + + @Override + public List selectDisPlayResultConfig(String mcode) { + return mrcm.selectDisPlayResultConfig(mcode); + } + + @Override + public boolean hasPno(int pno,String mCode,Integer id) { + return mrcm.selectByPno(pno,mCode,id)>0; + } + + @Override + public Map edit(ModelResultConfig resultConfig) { + Map data=new HashMap<>(); + resultConfig.setIsDeleted(0); + int cnt = mrcm.selectByModel(resultConfig); + if(cnt > 0) { + data.put("msg","模型结果项配置重复"); + data.put("flag","false"); + return data; + }else { + cnt= mrcm.updateByPrimaryKeySelective(resultConfig) ; + boolean flag=cnt>0; + if(flag){ + data.put("flag","true"); + data.put("msg","结果配置修改成功"); + }else{ + data.put("flag","false"); + data.put("msg","结果配置修改失败"); + } + return data; + } + } + + @Override + public Boolean delModelResultConfig(Integer id) { + return mrcm.deleteByPrimaryKey(id)>0; + } + + @Override + public Boolean del(Integer id) { + ModelResultConfig resultConfig=new ModelResultConfig(); + resultConfig.setId(id); + resultConfig.setIsDeleted(1); + return mrcm.updateByPrimaryKeySelective(resultConfig)>0; + } + + @Override + public List selectByMCode(String mCode) { + return mrcm.selectByMcode(mCode); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoAddVo.java new file mode 100644 index 0000000..1794d74 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoAddVo.java @@ -0,0 +1,168 @@ +package org.springblade.general_dispatching.model_base.vo; + +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import io.swagger.annotations.ApiModel; + +import java.util.Map; + +/** + * @author moze + */ + +@ApiModel("模型增加参数对象") +public class ModelInfoAddVo { + public static ModelInfo toModelInfo(Map data){ + ModelInfo modelInfo=new ModelInfo(); + if(data.get("id")!=null) { + modelInfo.setId(Integer.valueOf(String.valueOf(data.get("id")))); + } + if(data.get("code")!=null) { + modelInfo.setCode(String.valueOf(data.get("code"))); + } + if(data.get("name")!=null) { + modelInfo.setName(String.valueOf(data.get("name"))); + } + if(data.get("remark")!=null) { + modelInfo.setRemark(String.valueOf(data.get("remark"))); + } + if(data.get("status")!=null) { + modelInfo.setStatus(String.valueOf(data.get("status"))); + } + if(data.get("file")!=null) { + modelInfo.setFile(String.valueOf(data.get("file"))); + } + if(data.get("plantType")!=null) { + modelInfo.setPlantType(String.valueOf(data.get("plantType"))); + } + + if(data.get("refModule")!=null) { + modelInfo.setRefModule(String.valueOf(data.get("refModule"))); + } + if(data.get("algorithm")!=null) { + modelInfo.setAlgorithm(String.valueOf(data.get("algorithm"))); + } + modelInfo.setIsDeleted(0); + return modelInfo; + } + + + public static ModelParam toModelParam(Map data){ + ModelParam modelParam=new ModelParam(); + if(data.get("id")!=null) { + int id = Integer.valueOf(String.valueOf(data.get("id"))); + modelParam.setId(id); + } + if(data.get("pno")!=null && !"".equals(data.get("pno"))) { + int pno = Integer.valueOf(String.valueOf(data.get("pno"))); + modelParam.setPno(pno); + } + if(data.get("mcode")!=null) { + modelParam.setMcode(String.valueOf(data.get("mcode"))); + } + if(data.get("code")!=null) { + modelParam.setCode(String.valueOf(data.get("code"))); + } + if(data.get("name")!=null) { + modelParam.setName(String.valueOf(data.get("name"))); + } + if(data.get("fieldType")!=null) { + modelParam.setFieldType(String.valueOf(data.get("fieldType"))); + } + if(data.get("remark")!=null) { + modelParam.setRemark(String.valueOf(data.get("remark"))); + } + modelParam.setIsDeleted(0); + return modelParam; + } + + + public static ModelResultConfig toModelResultConfig(Map data){ + ModelResultConfig modelResultConfig=new ModelResultConfig(); + if(data.get("id")!=null) { + int id = Integer.valueOf(String.valueOf(data.get("id"))); + modelResultConfig.setId(id); + } + if(data.get("pno")!=null && !"".equals(data.get("pno"))) { + int pno = Integer.valueOf(String.valueOf(data.get("pno"))); + modelResultConfig.setPno(pno); + } + if(data.get("mcode")!=null) { + modelResultConfig.setMcode(String.valueOf(data.get("mcode"))); + } + if(data.get("resultItem")!=null) { + modelResultConfig.setResultItem(String.valueOf(data.get("resultItem"))); + } + + if(data.get("resultType")!=null) { + modelResultConfig.setResultType(String.valueOf(data.get("resultType"))); + } + + if(data.get("decimalDigit")!=null && !"".equals(data.get("decimalDigit"))) { + modelResultConfig.setDecimalDigit(Integer.valueOf(data.get("decimalDigit").toString())); + }else{ + modelResultConfig.setDecimalDigit(3); + } + + if(data.get("significantDigits")!=null && !"".equals(data.get("significantDigits"))) { + modelResultConfig.setSignificantDigits(Integer.valueOf(data.get("significantDigits").toString())); + }else{ + modelResultConfig.setSignificantDigits(9); + } + + if(data.get("dtType")!=null) { + modelResultConfig.setDtType(String.valueOf(data.get("dtType"))); + } + if(data.get("dtPeriod")!=null) { + modelResultConfig.setDtPeriod(String.valueOf(data.get("dtPeriod"))); + } + if(data.get("dataType")!=null) { + modelResultConfig.setDataType(String.valueOf(data.get("dataType"))); + } + if(data.get("isSignIn")!=null) { + modelResultConfig.setIsSignIn(Integer.valueOf(String.valueOf(data.get("isSignIn")))); + } + if(data.get("isStatistics")!=null) { + modelResultConfig.setIsStatistics(Integer.valueOf(String.valueOf(data.get("isStatistics")))); + } + if(data.get("statisticsField")!=null) { + modelResultConfig.setStatisticsField(String.valueOf(data.get("statisticsField"))); + } + if(data.get("statisticsTable")!=null) { + modelResultConfig.setStatisticsTable(String.valueOf(data.get("statisticsTable"))); + } + if(data.get("statisticsObjectId")!=null) { + modelResultConfig.setStatisticsObjectId(String.valueOf(data.get("statisticsObjectId"))); + } + if(data.get("groupId")!=null) { + modelResultConfig.setGroupId(String.valueOf(data.get("groupId"))); + } + if(data.get("groupName")!=null) { + modelResultConfig.setGroupName(String.valueOf(data.get("groupName"))); + } + if(data.get("displayNumber")!=null) { + String tmp=String.valueOf(data.get("displayNumber")); + if(!"".equals(tmp)) { + modelResultConfig.setDisplayNumber(Integer.valueOf(tmp)); + }else{ + modelResultConfig.setDisplayNumber(1); + } + } + if(data.get("displayType")!=null) { + modelResultConfig.setDisplayType(String.valueOf(data.get("displayType"))); + } + if(data.get("displayRule")!=null) { + modelResultConfig.setDisplayRule(String.valueOf(data.get("displayRule"))); + } + if(data.get("unit")!=null) { + modelResultConfig.setUnit(String.valueOf(data.get("unit"))); + } + if(data.get("remark")!=null) { + modelResultConfig.setRemark(String.valueOf(data.get("remark"))); + } + modelResultConfig.setIsDeleted(0); + return modelResultConfig; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoBo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoBo.java new file mode 100644 index 0000000..d77aac9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoBo.java @@ -0,0 +1,41 @@ +package org.springblade.general_dispatching.model_base.vo; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("模型") +public class ModelInfoBo { + @ApiModelProperty( value = "模型信息", notes = "模型信息", dataType = "ModelInfoVo") + private ModelInfoVo modelInfo; + @ApiModelProperty( value = "模型参数信息", notes = "模型参数信息", dataType = "List") + private List params; + @ApiModelProperty( value = "模型结果配置信息", notes = "模型结果配置信息", dataType = "List") + private List resultConfigVos; + + public ModelInfoVo getModelInfo() { + return modelInfo; + } + + public void setModelInfo(ModelInfoVo modelInfo) { + this.modelInfo = modelInfo; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } + + public List getResultConfigVos() { + return resultConfigVos; + } + + public void setResultConfigVos(List resultConfigVos) { + this.resultConfigVos = resultConfigVos; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoVo.java new file mode 100644 index 0000000..eb80179 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelInfoVo.java @@ -0,0 +1,49 @@ +package org.springblade.general_dispatching.model_base.vo; + +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel(value = "模型显示层对象") +public class ModelInfoVo extends ModelInfo { + @ApiModelProperty(value = "状态名",notes = "状态:01:待应用,02:已应用,03:已停用",dataType = "String") + private String statusName; + @ApiModelProperty( value = "电站类型", notes = "电站类型:01:径流式;02:水库式;03:梯级;04:水库群", dataType = "String") + private String plantTypeName; + @ApiModelProperty( value = "所属模块名", notes = "所属模块名", dataType = "String") + private String refModuleName; + @ApiModelProperty(value = "状态名",notes = "状态:01:待应用,02:已应用,03:已停用",dataType = "String") + private String createrName; + + public String getCreaterName() { + return createrName; + } + + public void setCreaterName(String createrName) { + this.createrName = createrName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getPlantTypeName() { + return plantTypeName; + } + + public void setPlantTypeName(String plantTypeName) { + this.plantTypeName = plantTypeName; + } + + public String getRefModuleName() { + return refModuleName; + } + + public void setRefModuleName(String refModuleName) { + this.refModuleName = refModuleName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelResultConfigVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelResultConfigVo.java new file mode 100644 index 0000000..790491c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/vo/ModelResultConfigVo.java @@ -0,0 +1,87 @@ +package org.springblade.general_dispatching.model_base.vo; + +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; + +public class ModelResultConfigVo extends ModelResultConfig { + private String modelName; + private String resultItemName; + private String resultTypeName; + private String dtTypeName; + private String dataTypeName; + private String statisticsTableName; + private String statisticsFieldName; + private String displayTypeName; + private String displayRuleName; + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getResultItemName() { + return resultItemName; + } + + public void setResultItemName(String resultItemName) { + this.resultItemName = resultItemName; + } + + public String getResultTypeName() { + return resultTypeName; + } + + public void setResultTypeName(String resultTypeName) { + this.resultTypeName = resultTypeName; + } + + public String getDtTypeName() { + return dtTypeName; + } + + public void setDtTypeName(String dtTypeName) { + this.dtTypeName = dtTypeName; + } + + public String getDataTypeName() { + return dataTypeName; + } + + public void setDataTypeName(String dataTypeName) { + this.dataTypeName = dataTypeName; + } + + public String getStatisticsTableName() { + return statisticsTableName; + } + + public void setStatisticsTableName(String statisticsTableName) { + this.statisticsTableName = statisticsTableName; + } + + public String getStatisticsFieldName() { + return statisticsFieldName; + } + + public void setStatisticsFieldName(String statisticsFieldName) { + this.statisticsFieldName = statisticsFieldName; + } + + public String getDisplayTypeName() { + return displayTypeName; + } + + public void setDisplayTypeName(String displayTypeName) { + this.displayTypeName = displayTypeName; + } + + public String getDisplayRuleName() { + return displayRuleName; + } + + public void setDisplayRuleName(String displayRuleName) { + this.displayRuleName = displayRuleName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelInfoController.java new file mode 100644 index 0000000..c730500 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelInfoController.java @@ -0,0 +1,209 @@ +package org.springblade.general_dispatching.model_base.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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 org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.manager.ModelInfoManager; +import org.springblade.general_dispatching.model_base.service.ModelInfoService; +import org.springblade.general_dispatching.model_base.vo.ModelInfoAddVo; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author moze + */ +@RestController +@Api(tags = "模型基础模块-模型控制器",value = "模型基础模块-模型控制器") +@RequestMapping("/model/base/info") +public class ModelInfoController { + Logger logger= LoggerFactory.getLogger(ModelInfoController.class); + @Autowired + private ModelInfoService modelInfoService; + @Autowired + private ModelInfoManager modelInfoManager; + + @ApiOperation("获取单个模型") + @RequestMapping(value = "/getModelInfo/{code}", method = RequestMethod.GET) + public R getModelInfo(@ApiParam("模型编码")@PathVariable String code){ + return R.data( modelInfoManager.getModelInfo(code),"操作成功"); + } + + @ApiOperation("获取模型列表mybatis-plus页") + @RequestMapping(value = "/listModelInfo", method = RequestMethod.GET) + public R getModelPage(@ApiParam("模型编码") String code, + @ApiParam("模型名称") String name, Query query){ + IPage page = Condition.getPage(query); + return R.data( modelInfoManager.getModelPage(page,code,name),"操作成功"); + } + + @ApiOperation("判断模型是否重复") + @RequestMapping(value = "/duplicateModelInfo/{code}", method = RequestMethod.GET) + public R duplicateModelInfo(@PathVariable String code, @RequestParam(required = false) String id) { + if(id==null || "".equals(id)){//新增 + Boolean flag = modelInfoService.duplicateModelInfo(code); + if (flag){ + return R.data(flag,"未重复"); + } else { + return R.data(500,flag,"编码已存在"); + } + }else{//修改 + Boolean flag = modelInfoService.duplicateModelInfo(code,Integer.valueOf(id)); + if (flag){ + return R.data(flag,"未重复"); + } else { + return R.data(500,flag,"编码已存在"); + } + } + } + + @ApiOperation("创建模型") + @RequestMapping(value = "/createModelInfo", method = RequestMethod.POST) + public R createModelInfo(@ApiParam("模型信息") @RequestBody Map modelInfoAddVo, HttpServletRequest request) { + + String userId = String.valueOf(AuthUtil.getUserId()); + + Map tmpModelInfo=(Map)modelInfoAddVo.get("modelInfo"); + List> tmpModelParams=(List)modelInfoAddVo.get("modelParams"); + List> tmpModelResultConfigs=(List)modelInfoAddVo.get("modelResultConfigs"); + if(tmpModelInfo==null){ + return R.data(500,false,"未进行模型信息配置"); + } + + if(tmpModelParams==null|| tmpModelParams.isEmpty()){ + return R.data(500,false,"未进行入参配置"); + } + + if(tmpModelResultConfigs==null|| tmpModelResultConfigs.isEmpty()){ + return R.data(500,false,"未进行结果配置"); + } + + ModelInfo modelInfo= ModelInfoAddVo.toModelInfo(tmpModelInfo); + modelInfo.setCreater(userId); + modelInfo.setCreateTime(new Date()); + modelInfo.setLastUpdater(userId); + modelInfo.setLastUpdateTime(new Date()); + //判断编码是否存在 + if(modelInfo.getId()==null || "".equals(modelInfo.getId())) { + Boolean flag = modelInfoService.duplicateModelInfo(modelInfo.getCode()); + if (!flag) { + return R.data(500,false, "模型编码已存在"); + } + }else{ + Boolean flag = modelInfoService.duplicateModelInfo(modelInfo.getCode(),modelInfo.getId()); + if (!flag) { + return R.data(500,false, "模型编码已存在"); + } + } + + List modelParams=new ArrayList<>(); + + for(Map param:tmpModelParams){ + param.put("mcode",modelInfo.getCode()); + ModelParam modelParam=ModelInfoAddVo.toModelParam(param); + modelParams.add(modelParam); + } + //判断序号是否重复 + List stringList = modelParams.stream().map(ModelParam::getPno) + .collect(Collectors.toList()); + long count = stringList.stream().distinct().count(); + Boolean flag = (stringList.size() == count); + if (!flag) { + return R.data(500,false,"入参配置序号不能重复"); + } + + List modelResultConfigs=new ArrayList<>(); + + for(Map param:tmpModelResultConfigs){ + param.put("mcode",modelInfo.getCode()); + ModelResultConfig modelResultConfig=ModelInfoAddVo.toModelResultConfig(param); + modelResultConfigs.add(modelResultConfig); + } + //判断序号是否重复 + stringList = modelParams.stream().map(ModelParam::getPno) + .collect(Collectors.toList()); + count = stringList.stream().distinct().count(); + flag = (stringList.size() == count); + if (!flag) { + return R.data(500,false,"结果配置序号不能重复"); + } + + flag = modelInfoManager.createModelInfo(modelInfo, modelParams,modelResultConfigs); + if (flag){ + return R.data(flag,"保存成功"); + } else { + return R.data(500,false,"保存失败"); + } + } + + + @ApiOperation("编辑模型信息,编码不能修改") + @RequestMapping(value = "/editModelInfo", method = RequestMethod.PUT) + public R editModelInfo(@ApiParam("模型信息") @RequestBody Map data, HttpServletRequest request) { + ModelInfo modelInfo=ModelInfoAddVo.toModelInfo(data); + + String userId = String.valueOf(AuthUtil.getUserId()); + + modelInfo.setLastUpdater(userId); + modelInfo.setLastUpdateTime(new Date()); + Boolean flag = modelInfoService.editModelInfo(modelInfo); + if (flag){ + return R.data(flag,"保存成功" ); + } else { + return R.data(500,false,"保存失败"); + } + } + + @ApiOperation("编辑模型信息,编码不能修改") + @RequestMapping(value = "/modelTree", method = RequestMethod.GET) + public R modelTree() { + List list=modelInfoService.listModelTree(); + return R.data(list,"查询成功"); + } + + +// @ApiOperation("删除模型,逻辑删除,对应模型配置也会删除") +// @RequestMapping(value = "/delModelInfo/{id}", method = RequestMethod.DELETE) +// @Operate(title = "删除模型", businessType = BusinessTypeEnum.DELETE) +// public R delModelInfo(@ApiParam("模型编码")@PathVariable Integer id) { +// Boolean flag = mis.delModelInfo(id); +// if (flag){ +// return R.data("操作成功", flag); +// } else { +// return R.bulidFail("1","操作失败",""); +// } +// } +// +// @ApiOperation("假删") +// @RequestMapping(value = "/del/{id}", method = RequestMethod.PUT) +// @Operate(title = "删除模型", businessType = BusinessTypeEnum.UPDATE) +// public R del(@ApiParam("模型信息id")@PathVariable Integer id) { +// ModelInfo info=new ModelInfo(); +// info.setId(id); +// info.setIsDeleted(1); +// Boolean flag = mis.editModelInfo(info); +// if (flag){ +// return R.data("操作成功", flag); +// } else { +// return R.bulidFail("1","操作失败",""); +// } +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelParamController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelParamController.java new file mode 100644 index 0000000..acf9c46 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelParamController.java @@ -0,0 +1,121 @@ +package org.springblade.general_dispatching.model_base.web; + +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.manager.ModelInfoManager; +import org.springblade.general_dispatching.model_base.service.ModelInfoService; +import org.springblade.general_dispatching.model_base.vo.ModelInfoAddVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @author moze + */ +@RestController +@Api(tags = "模型基础模块-模型参数控制器",value = "模型基础模块-模型参数控制器") +@RequestMapping("/model/base/param") +public class ModelParamController { + @Autowired + private ModelInfoService modelInfoService; + @Autowired + private ModelInfoManager modelInfoManager; + @ApiOperation("获取单个模型参数列表") + @RequestMapping(value = "/getModelParams/{code}", method = RequestMethod.GET) + public R getModelParams(@ApiParam("模型编码")@PathVariable String code){ + List list =modelInfoManager.getModelParam(code); + return R.data(list,"操作成功"); + } + + @ApiOperation("编辑模型参数信息,更新至模型配置") + @RequestMapping(value = "/editModelParam", method = RequestMethod.PUT) + public R editModelParam(@ApiParam("模型参数") @RequestBody Map data) { + ModelParam modelParam=ModelInfoAddVo.toModelParam(data); + boolean flag=modelInfoService.hasPno(modelParam.getPno(),modelParam.getMcode(),modelParam.getId()); + if(flag) { + return R.data(500,false, "入参序号不能重复"); + } + Map msgFlag = modelInfoService.editModelParam(modelParam); + if("true".equals(msgFlag.get("flag"))) { + return R.data(true,"编辑模型参数成功"); + } else { + return R.data(500,false,msgFlag.get("msg")); + } + } + + @ApiOperation("判断入参序号是否重复") + @RequestMapping(value = "hasPno/{pno}/{mCode}", method = RequestMethod.GET) + public R hasPno(@PathVariable Integer pno, @PathVariable String mCode, @RequestParam(required = false) Integer id){ + boolean flag=modelInfoService.hasPno(pno,mCode,id); + if(flag) { + return R.data(500,false, "入参序号不能重复"); + }else{ + return R.data(true,"查询成功"); + } + } + + @ApiOperation("新增模型参数信息,对应模型配置也会增加,并提示是否暂停模型配置") + @RequestMapping(value = "/addModelParam", method = RequestMethod.POST) + public R addModelParam(@ApiParam("模型参数") @RequestBody Map data) { + ModelParam modelParam=ModelInfoAddVo.toModelParam(data); + boolean flag=modelInfoService.hasPno(modelParam.getPno(),modelParam.getMcode(),modelParam.getId()); + if(flag) { + return R.data(500,false, "入参序号不能重复"); + } + + Map msgFlag = modelInfoService.addModelParam(modelParam); + if("true".equals(msgFlag.get("flag"))) { + return R.data(true,"新增模型参数成功" ); + } else { + return R.data(500,false,msgFlag.get("msg")); + } + } + +// @ApiOperation("删除模型参数,物理删除,不可逆转;其模型配置对应的参数也会删除") +// @RequestMapping(value = "/delModelParam/{id}", method = RequestMethod.DELETE) +// @Operate(title = "删除模型参数", businessType = BusinessTypeEnum.DELETE) +// public R delModelParam(@ApiParam("模型参数ID")@PathVariable Integer id) { +// Boolean flag = mis.delModelParam(id); +// if (flag){ +// return R.data("操作成功", flag); +// } else { +// return R.data("1","操作失败",""); +// } +// } + +// @ApiOperation("假删") +// @RequestMapping(value = "/del/{id}", method = RequestMethod.PUT) +// @Operate(title = "删除模型", businessType = BusinessTypeEnum.UPDATE) +// public R del(@ApiParam("模型参数id")@PathVariable Integer id) { +// ModelParam param=new ModelParam(); +// param.setId(id); +// param.setIsDeleted(1); +// Boolean flag = mis.editModelParam(param); +// if (flag){ +// return R.data("操作成功", true); +// } else { +// return R.data("1","操作失败",""); +// } +// } + + @ApiOperation("根据模型编码查询模型参数") + @RequestMapping(value = "list", method = RequestMethod.GET) + public R listModelParam(@ApiParam("模型编码") String mCode) { + List list = modelInfoService.listModelParam(mCode); + return R.data(list,"操作成功"); + + } + + + @ApiOperation("根据模型参数id查询模型参数") + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + public R selectModelParamById(@ApiParam("模型编码")@PathVariable Integer id) { + ModelParam param = modelInfoService.selectModelParamById(id); + return R.data(param,"操作成功" ); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelResultConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelResultConfigController.java new file mode 100644 index 0000000..3b162b4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_base/web/ModelResultConfigController.java @@ -0,0 +1,128 @@ +package org.springblade.general_dispatching.model_base.web; + +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_base.entity.ModelResultConfig; +import org.springblade.general_dispatching.model_base.service.ModelResultConfigService; +import org.springblade.general_dispatching.model_base.vo.ModelInfoAddVo; +import org.springblade.general_dispatching.model_base.vo.ModelResultConfigVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "模型基础模块-模型结果控制器") +@RequestMapping("/model/base/result/") +public class ModelResultConfigController { + @Autowired + private ModelResultConfigService modelResultConfigService; + private final String OPERATOR_SUCC="操作成功"; + private final String OPERATOR_FAIL="操作失败"; + + + + @ApiOperation("新增模型结果配置rgc,后台会根据结果项、结果值类型、时间项类型、时间间隔判断是否重复") + @RequestMapping(value = "save", method = RequestMethod.POST) + public R save(@RequestBody Map data){ + ModelResultConfig resultConfig=ModelInfoAddVo.toModelResultConfig(data); + boolean flag=modelResultConfigService.hasPno(resultConfig.getPno(),resultConfig.getMcode(),resultConfig.getId()); + if(flag) { + return R.data(500,false, "结果配置序号不能重复"); + } + Map msgFlag= modelResultConfigService.add(resultConfig); + if("true".equals(msgFlag.get("flag"))) { + return R.data(true,"新增模型结果配置成功" ); + } + else { + return R.data(500,false, msgFlag.get("msg")); + } + } + + @ApiOperation("判断结果配置序号是否重复") + @RequestMapping(value = "hasPno/{pno}/{mCode}", method = RequestMethod.GET) + public R hasPno(@PathVariable Integer pno, @PathVariable String mCode, @RequestParam(required = false) Integer id){ + boolean flag=modelResultConfigService.hasPno(pno,mCode,id); + if(flag) { + return R.data(500,false, "结果配置序号不能重复"); + }else{ + return R.data(true,"查询成功"); + } + } + + @ApiOperation("新增模型结果配置rgc,后台会根据结果项、结果值类型、时间项类型、时间间隔判断是否重复") + @RequestMapping(value = "batchSave", method = RequestMethod.POST) + public R batchSave(@RequestBody Map data){ + if(data==null){ + return R.data(500,false, OPERATOR_FAIL); + } + List> modelResultConfigs=(List>)data; + List resultConfigs=new ArrayList<>(); + for(Map param:modelResultConfigs){ + ModelResultConfig modelResultConfig=ModelInfoAddVo.toModelResultConfig(param); + resultConfigs.add(modelResultConfig); + } + Boolean flag = modelResultConfigService.batchInsert(resultConfigs); + if(flag) { + return R.data(flag,OPERATOR_SUCC); + } + else { + return R.data(500,flag, OPERATOR_FAIL); + } + } + + @ApiOperation("编辑模型结果配置,后台会根据结果项、结果值类型、时间项类型、时间间隔判断是否重复") + @RequestMapping(value ="edit", method = RequestMethod.PUT) + public R edit(@RequestBody Map data){ + ModelResultConfig resultConfig=ModelInfoAddVo.toModelResultConfig(data); + boolean flag=modelResultConfigService.hasPno(resultConfig.getPno(),resultConfig.getMcode(),resultConfig.getId()); + if(flag) { + return R.data(500,false, "结果配置序号不能重复"); + } + Map msgFlag= modelResultConfigService.edit(resultConfig); + if("true".equals(msgFlag.get("flag"))) { + return R.data(true,"修改模型结果配置成功"); + } + else { + return R.data(500,false, msgFlag.get("msg")); + } + } + + @ApiOperation("删除模型结果配置,物理删除") + @RequestMapping(value ="delModelResultConfig",method = RequestMethod.DELETE) + public R delModelResultConfig(Integer id){ + Boolean flag = modelResultConfigService.delModelResultConfig(id); + if(flag) { + return R.data(flag,OPERATOR_SUCC); + } + else { + return R.data(500,flag, OPERATOR_FAIL); + } + } + + @ApiOperation("假删除模型结果配置") + @RequestMapping(value ="del/{id}",method = RequestMethod.PUT) + public R del(@PathVariable Integer id){ + Boolean flag = modelResultConfigService.del(id); + if(flag) { + return R.data(flag,OPERATOR_SUCC); + } + else { + return R.data(500,flag, OPERATOR_FAIL); + } + } + + + @ApiOperation("根据模型编码查询模型结果配置") + @RequestMapping(value = "list", method = RequestMethod.GET) + public R list(@ApiParam("模型编码") String mCode) { + List list = modelResultConfigService.selectByMCode(mCode); + return R.data(list,"操作成功"); + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ConfigRunTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ConfigRunTypeEnum.java new file mode 100644 index 0000000..a2d2485 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ConfigRunTypeEnum.java @@ -0,0 +1,30 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum ConfigRunTypeEnum { + USER("01","用户级"), + SYSTEM("02","系统级"); + + ConfigRunTypeEnum(String code,String name){ + this.code =code; + this.name = name; + } + + private String code; + private String 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsCreateTaskEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsCreateTaskEnum.java new file mode 100644 index 0000000..5320ae5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsCreateTaskEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum IsCreateTaskEnum { + YES_CREATE(1,"生成任务"), + NO_CREATE(0,"不生成任务"); + IsCreateTaskEnum(Integer code,String name){ + this.code = code; + this.name = name; + } + private Integer code; + private String name; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDefaultSchemeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDefaultSchemeEnum.java new file mode 100644 index 0000000..a2a50be --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDefaultSchemeEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum IsDefaultSchemeEnum { + YES_DEFAULT(1,"默认方案"), + NO_DEFAULT(0,"不是默认方案"); + + private Integer code; + private String name; + IsDefaultSchemeEnum(Integer code,String name){ + this.code = code; + this.name = name; + } + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDeleteEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDeleteEnum.java new file mode 100644 index 0000000..111dbfc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsDeleteEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum IsDeleteEnum { + YES_DELETE(1,"删除"), + NO_DELETE(0,"留着"); + + private Integer code; + private String name; + IsDeleteEnum(Integer code,String name){ + this.code = code; + this.name = name; + } + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsGroupEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsGroupEnum.java new file mode 100644 index 0000000..5625c64 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/IsGroupEnum.java @@ -0,0 +1,30 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum IsGroupEnum { + YES(1,"是"), + NO(0,"否"); + private int code; + private String name; + + IsGroupEnum(int code,String name){ + this.code = code; + this.name = name; + } + + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfig.java new file mode 100644 index 0000000..a860b01 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfig.java @@ -0,0 +1,138 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型配置") +public class ModelConfig { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty(value = "方案ID",notes = "方案ID",dataType = "Integer") + private Integer schemeId; + @ApiModelProperty(value = "模型编号",notes = "模型编号",dataType = "String") + private String code; + @ApiModelProperty(value = "所属大类",notes = "来水预测,水量调度,发电调度,水务计算,来源于模型表",dataType = "String") + private String refModule; + @ApiModelProperty(value = "模型类型",notes = "梯级,单库",dataType = "String") + private String typeCode; + @ApiModelProperty(value = "应用周期",notes = "长期,短期,实时",dataType = "String") + private String applyPeriod; + @ApiModelProperty(value = "状态",notes = "未配置,已配置",dataType = "String") + private String status; + @ApiModelProperty(value = "是否生成任务",notes = "是否生成任务",dataType = "Short") + private Integer isCreateTask; + @ApiModelProperty(value = "运行方式",notes = "运行方式(01:用户,02:系统)",dataType = "String") + private String runType; + @ApiModelProperty(value = "运行周期",notes = "运行周期",dataType = "String") + private String runPeriod; + @ApiModelProperty(value = "周期类型",notes = "周期类型(D,H,M,S)",dataType = "String") + private String periodType; + @ApiModelProperty(value = "描述",notes = "描述,来源于模型表",dataType = "String") + private String remark; + @ApiModelProperty(value = "是否删除",notes = "是否删除",dataType = "Integer") + private Integer deleted; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getSchemeId() { + return schemeId; + } + + public void setSchemeId(Integer schemeId) { + this.schemeId = schemeId; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getRefModule() { + return refModule; + } + + public void setRefModule(String refModule) { + this.refModule = refModule; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getApplyPeriod() { + return applyPeriod; + } + + public void setApplyPeriod(String applyPeriod) { + this.applyPeriod = applyPeriod; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Integer getIsCreateTask() { + return isCreateTask; + } + + public void setIsCreateTask(Integer isCreateTask) { + this.isCreateTask = isCreateTask; + } + + public String getRunType() { + return runType; + } + + public void setRunType(String runType) { + this.runType = runType; + } + + public String getRunPeriod() { + return runPeriod; + } + + public void setRunPeriod(String runPeriod) { + this.runPeriod = runPeriod; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Integer getDeleted() { + return deleted; + } + + public void setDeleted(Integer deleted) { + this.deleted = deleted; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigScheme.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigScheme.java new file mode 100644 index 0000000..908155b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigScheme.java @@ -0,0 +1,129 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Date; + +@ApiModel("模型配置方案") +public class ModelConfigScheme { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "名称", notes = "名称", dataType = "String") + private String name; + @ApiModelProperty( value = "是否默认", notes = "是否默认", dataType = "Short") + private Integer isDefault; + private String isDefaultName; + @ApiModelProperty( value = "应用站点", notes = "应用站点", dataType = "String") + private String modelIds; + @ApiModelProperty( value = "应用站点名称", notes = "应用站点名称", dataType = "String") + private String modelNames; + @ApiModelProperty( value = "描述", notes = "描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "创建时间", notes = "创建时间", dataType = "Date") + private Date createTime; + @ApiModelProperty( value = "创建人", notes = "创建人", dataType = "String") + private String creater; + @ApiModelProperty( value = "最后更新时间", notes = "最后更新时间", dataType = "Date") + private Date lastUpdateTime; + @ApiModelProperty( value = "最后更新人", notes = "最后更新人", dataType = "String") + private String lastUpdater; + @ApiModelProperty( value = "1 表示删除,0 表示未删除", notes = "1 表示删除,0 表示未删除", dataType = "Integer") + private Integer deleted; + + public Integer getDeleted() { + return deleted; + } + + public String getIsDefaultName() { + return isDefaultName; + } + + public void setIsDefaultName(String isDefaultName) { + this.isDefaultName = isDefaultName; + } + + public void setDeleted(Integer deleted) { + this.deleted = deleted; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getIsDefault() { + return isDefault; + } + + public void setIsDefault(Integer isDefault) { + this.isDefault = isDefault; + } + + public String getModelIds() { + return modelIds; + } + + public void setModelIds(String modelIds) { + this.modelIds = modelIds; + } + + public String getModelNames() { + return modelNames; + } + + public void setModelNames(String modelNames) { + this.modelNames = modelNames; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getLastUpdater() { + return lastUpdater; + } + + public void setLastUpdater(String lastUpdater) { + this.lastUpdater = lastUpdater; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigStatusEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigStatusEnum.java new file mode 100644 index 0000000..fd900e8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelConfigStatusEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_config.entity; + +public enum ModelConfigStatusEnum { + NO_CONFIG("0","未配置"), + YES_CONFIG("1","已配置"); + ModelConfigStatusEnum(String code,String name){ + this.code = code; + this.name = name; + } + private String code; + private String 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelFixedValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelFixedValue.java new file mode 100644 index 0000000..49cbd0b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelFixedValue.java @@ -0,0 +1,88 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型定值") +public class ModelFixedValue { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "电站类型", notes = "电站类型", dataType = "String") + private String plantType; + @ApiModelProperty( value = "方案ID", notes = "方案ID", dataType = "Integer") + private Integer schemeId; + @ApiModelProperty( value = "编码", notes = "编码", dataType = "String") + private String code; + @ApiModelProperty( value = "名称", notes = "名称", dataType = "String") + private String name; + @ApiModelProperty( value = "描述", notes = "描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "类型", notes = "类型", dataType = "String") + private String typeCode; + @ApiModelProperty( value = "值", notes = "值", dataType = "String") + private String value; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getPlantType() { + return plantType; + } + + public void setPlantType(String plantType) { + this.plantType = plantType; + } + + public Integer getSchemeId() { + return schemeId; + } + + public void setSchemeId(Integer schemeId) { + this.schemeId = schemeId; + } + + 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; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupConfig.java new file mode 100644 index 0000000..88b4d27 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupConfig.java @@ -0,0 +1,130 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("模型组配置") +public class ModelGroupConfig { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "方案ID", notes = "方案ID", dataType = "Integer") + private Integer schemeId; + @ApiModelProperty( value = "名称", notes = "名称", dataType = "String") + private String name; + @ApiModelProperty(value = "所属大类",notes = "来水预测,水量调度,发电调度,水务计算,来源于模型表",dataType = "String") + private String refModule; + @ApiModelProperty(value = "模型类型",notes = "梯级,单库",dataType = "String") + private String typeCode; + @ApiModelProperty(value = "应用周期",notes = "长期,短期,实时",dataType = "String") + private String applyPeriod; + @ApiModelProperty(value = "运行方式",notes = "运行方式(01:用户,02:系统)",dataType = "String") + private String runType; + @ApiModelProperty(value = "运行周期",notes = "运行周期",dataType = "String") + private String runPeriod; + @ApiModelProperty(value = "周期类型",notes = "周期类型(D,H,M,S)",dataType = "String") + private String periodType; + @ApiModelProperty(value = "描述",notes = "描述,来源于模型表",dataType = "String") + private String remark; + @ApiModelProperty(value = "是否删除",notes = "是否删除",dataType = "Integer") + private Integer deleted; + @ApiModelProperty(value = "单个已配置模型的配置id集合",notes = "单个已配置模型的配置id集合",dataType = "list") + List modelConfigIds; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getSchemeId() { + return schemeId; + } + + public void setSchemeId(Integer schemeId) { + this.schemeId = schemeId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getRefModule() { + return refModule; + } + + public void setRefModule(String refModule) { + this.refModule = refModule; + } + + public String getApplyPeriod() { + return applyPeriod; + } + + public void setApplyPeriod(String applyPeriod) { + this.applyPeriod = applyPeriod; + } + + public Integer getDeleted() { + return deleted; + } + + public void setDeleted(Integer deleted) { + this.deleted = deleted; + } + + public String getRunType() { + return runType; + } + + public void setRunType(String runType) { + this.runType = runType; + } + + public String getRunPeriod() { + return runPeriod; + } + + public void setRunPeriod(String runPeriod) { + this.runPeriod = runPeriod; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public List getModelConfigIds() { + return modelConfigIds; + } + + public void setModelConfigIds(List modelConfigIds) { + this.modelConfigIds = modelConfigIds; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupItemConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupItemConfig.java new file mode 100644 index 0000000..6ddc1a8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelGroupItemConfig.java @@ -0,0 +1,69 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型组配置项") +public class ModelGroupItemConfig { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "序号", notes = "序号", dataType = "Integer") + private Integer pno; + @ApiModelProperty( value = "状态", notes = "状态", dataType = "String") + private String status; + @ApiModelProperty( value = "模型组ID", notes = "模型组ID", dataType = "Integer") + private Integer groupId; + @ApiModelProperty( value = "模型编码", notes = "模型编码", dataType = "String") + private String code; + @ApiModelProperty(value = "是否生成任务",notes = "是否生成任务",dataType = "Short") + private Integer isCreateTask; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public Integer getIsCreateTask() { + return isCreateTask; + } + + public void setIsCreateTask(Integer isCreateTask) { + this.isCreateTask = isCreateTask; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelParamConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelParamConfig.java new file mode 100644 index 0000000..b190158 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/entity/ModelParamConfig.java @@ -0,0 +1,136 @@ +package org.springblade.general_dispatching.model_config.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型配置参数") +public class ModelParamConfig { + @ApiModelProperty( value = "主键", notes = "主键ID", dataType = "Integer") + private Integer id; + @ApiModelProperty( value = "模型配置ID", notes = "外键", dataType = "Integer") + private Integer modelConfigId; + @ApiModelProperty( value = "模型参数ID", notes = "外键", dataType = "Integer") + private Integer modelParamId; + @ApiModelProperty( value = "类型", notes = "01:常量 ,02:变量(用户输入值),03:热点,历史值(定义规则) 04:其他", dataType = "String") + private String typeCode; + @ApiModelProperty( value = "默认值", notes = "默认值", dataType = "String") + private String value; + @ApiModelProperty( value = "验证方式", notes = "验证方式", dataType = "String") + private String verification; + @ApiModelProperty( value = "控件类型", notes = "控件类型", dataType = "String") + private String controlType; + @ApiModelProperty( value = "单位", notes = "单位", dataType = "String") + private String unit; + @ApiModelProperty( value = "是否显示", notes = "是否显示", dataType = "String") + private Boolean isShow; + @ApiModelProperty( value = "时间间隔", notes = "时间间隔", dataType = "String") + private String dtPeriod; + @ApiModelProperty( value = "周期类型", notes = "周期类型", dataType = "String") + private String periodType; + @ApiModelProperty( value = "是否为组", notes = "是否为组", dataType = "String") + private Integer isGroup; + + public Integer getIsGroup() { + return isGroup; + } + + public void setIsGroup(Integer isGroup) { + this.isGroup = isGroup; + } + + public String getPeriodType() { + return periodType; + } + + public void setPeriodType(String periodType) { + this.periodType = periodType; + } + + public Integer getModelParamId() { + return modelParamId; + } + + public void setModelParamId(Integer modelParamId) { + this.modelParamId = modelParamId; + } + + public String getDtPeriod() { + return dtPeriod; + } + + public void setDtPeriod(String dtPeriod) { + this.dtPeriod = dtPeriod; + } + + public Boolean getShow() { + return isShow; + } + + public void setShow(Boolean show) { + isShow = show; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getModelConfigId() { + return modelConfigId; + } + + public void setModelConfigId(Integer modelConfigId) { + this.modelConfigId = modelConfigId; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getVerification() { + return verification; + } + + public void setVerification(String verification) { + this.verification = verification; + } + + public String getControlType() { + return controlType; + } + + public void setControlType(String controlType) { + this.controlType = controlType; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Boolean getIsShow() { + return isShow; + } + + public void setIsShow(Boolean isShow) { + this.isShow = isShow; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModeConfigSchemeManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModeConfigSchemeManager.java new file mode 100644 index 0000000..9eee83a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModeConfigSchemeManager.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_config.manager; + +import org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; + +import java.util.List; +import java.util.Map; + +public interface ModeConfigSchemeManager { + //新增配置方案及修改配置方案id + int addSchemeModelConfig(ModelConfigScheme modelConfigScheme, List modelConfigIds, List getModelGroupConfigIds); + Map getScheme(String refModule, String typeCode, String applyPeriod, String stationId); + //获取配置方案信息和 配置模型 + Map getModelInfoConfig(Integer schemeId); + + List listModelTree(Integer schemeId); + + List getModelByRefModule(String refModule); + + //查询方案是否完整 + boolean isConfigComplete(Integer schemeId); + + //删除模型信息 + String delModelInfo(String mCode, Integer modelInfoId, String stationId); + + Integer getModelConfigIdByCode(String mCode, Integer schemeId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelConfigManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelConfigManager.java new file mode 100644 index 0000000..c75bc08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelConfigManager.java @@ -0,0 +1,26 @@ +package org.springblade.general_dispatching.model_config.manager; + +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.vo.ModelConfigBo; + +import java.util.List; +import java.util.Map; + +public interface ModelConfigManager { + + ModelConfig getModelInfo(Integer id); + + List getModelConfigParams(Integer id); + + ModelConfigBo getModelConfig(Integer id); + + //新增模型配置信息及模型配置参数 + int updateInfoAddParam(ModelConfig modelConfig, List modelParamConfigs); + + Map getModelInfoParamConfig(String mCode, Integer configId, Integer isGroup); + + //根据配置id获取配置项和配置参数 + Map> getConfigParamByIds(List ids); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupConfigManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupConfigManager.java new file mode 100644 index 0000000..85460b9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupConfigManager.java @@ -0,0 +1,13 @@ +package org.springblade.general_dispatching.model_config.manager; + +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; + +import java.util.List; +import java.util.Map; + +public interface ModelGroupConfigManager { + int updateGroupInfoItem(ModelGroupConfig modelGroupConfig, List groupItemIds); + int addGroupInfoItem(ModelGroupConfig modelGroupConfig, List groupItems); + Map getDataByGroupId(Integer groupId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupItemConfigManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupItemConfigManager.java new file mode 100644 index 0000000..2d2879b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelGroupItemConfigManager.java @@ -0,0 +1,11 @@ +package org.springblade.general_dispatching.model_config.manager; + +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; + +import java.util.List; + +public interface ModelGroupItemConfigManager { + int addGroupItemAndParam(ModelGroupItemConfig modelGroupItemConfig, List modelParamConfigs); + boolean isConfigParam(Integer id, String mCode); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelParamConfigManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelParamConfigManager.java new file mode 100644 index 0000000..bc2b053 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/ModelParamConfigManager.java @@ -0,0 +1,14 @@ +package org.springblade.general_dispatching.model_config.manager; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; + +import java.util.Map; + +public interface ModelParamConfigManager { + int addParamConfigParam(ModelParamConfig modelParamConfig, ModelParam modelParam); + boolean updateConfigId(Integer id, Integer modelConfigId); + Map delModelParam(Integer id); + boolean getConfigParamEqualCodeCount(ModelParamConfig modelParamConfig); + void updatStatus(ModelParamConfig modelParamConfig); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModeConfigSchemeManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModeConfigSchemeManagerImpl.java new file mode 100644 index 0000000..fe9f4e1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModeConfigSchemeManagerImpl.java @@ -0,0 +1,431 @@ +package org.springblade.general_dispatching.model_config.manager.impl; + +import org.springblade.general_dispatching.model_base.entity.ModelInfo; +import org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_base.service.ModelInfoService; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_config.mapper.*; +import org.springblade.general_dispatching.model_config.entity.*; +import org.springblade.general_dispatching.model_config.manager.ModeConfigSchemeManager; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigSchemeService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class ModeConfigSchemeManagerImpl implements ModeConfigSchemeManager { + @Resource + ModelConfigSchemeMapper modelConfigSchemeMapper; + + @Resource + ModelConfigMapper modelConfigMapper; + + @Resource + ModelGroupConfigMapper modelGroupConfigMapper; + + @Resource + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Autowired + ModelInfoService modelInfoService; + + @Resource + ModelParamMapper modelParamMapper; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + private ModelConfigSchemeService modelConfigSchemeService; + + + @Override + public int addSchemeModelConfig(ModelConfigScheme modelConfigScheme, + List modelConfigIds,List modelGroupConfigIds) { + modelConfigSchemeMapper.insert(modelConfigScheme); + int schemeId=modelConfigScheme.getId(); + //批量修改 + if(modelConfigIds!=null && !modelConfigIds.isEmpty()) { + modelConfigMapper.batchUpdateSchemeId(schemeId, modelConfigIds); + } + + if(modelGroupConfigIds!=null && !modelGroupConfigIds.isEmpty()) { + modelGroupConfigMapper.batchUpdateSchemeId(schemeId, modelGroupConfigIds); + } + return schemeId; + } + + @Override + public Map getScheme(String refModule,String typeCode,String applyPeriod, String stationId) { + Map data=new HashMap<>(); + //查询默认的大类以及这个站点的配置方案 + Map param=new HashMap<>(); + param.put("isDefault", IsDefaultSchemeEnum.YES_DEFAULT.getCode()); + if(stationId!=null) { + if (stationId.indexOf(",") > -1) { + List ids = new ArrayList<>(); + String[] stationIds = stationId.split(","); + for (String id : stationIds) { + ids.add("%station_" + id + "%"); + } + param.put("modelIds", ids); + } else { + param.put("modelId", "%station_" + stationId + "%"); + } + } + List schemes=modelConfigSchemeMapper.selectSchemeByParam(param); + if(schemes==null || schemes.isEmpty()){ + return null; + } + ModelConfigScheme scheme=schemes.get(0); + data.put("scheme",scheme); + Integer schemeId=scheme.getId(); + //模型配置 + Map config=new HashMap<>(); + config.put("schemeId",schemeId); + config.put("refModule",refModule); + if(typeCode!=null && !"".equals(typeCode)){ + config.put("typeCode",typeCode); + } + if(applyPeriod!=null && !"".equals(applyPeriod)){ + config.put("applyPeriod",applyPeriod); + } + List modelConfigVos=modelConfigMapper.selectByModel(config); + data.put("modelConfig",modelConfigVos); + //模型组加配置 + List groupConfigVos=modelGroupConfigMapper.selectByModel(config); + if(groupConfigVos!=null && !groupConfigVos.isEmpty()){ +// ModelGroupConfigVo groupConfigVo=groupConfigVos.get(0); + data.put("modelGroupConfig",groupConfigVos); +// Integer groupId=groupConfigVo.getId(); +// List modelGroupItemConfigVos=modelGroupItemConfigMapper.selectByModel("",groupId,""); +// data.put("modelGroupItem",modelGroupItemConfigVos); + } + return data; + } + + @Override + public Map getModelInfoConfig(Integer schemeId) { + Map data=new HashMap<>(); + ModelConfigScheme modelConfigScheme=modelConfigSchemeMapper.selectByPrimaryKey(schemeId); + data.put("scheme",modelConfigScheme); + + Map config=new HashMap<>(); + config.put("schemeId",schemeId); + config.put("allRunType","allRunType"); + Map> tmpData=new LinkedHashMap<>(); + List modelConfigVos=modelConfigMapper.selectByModel(config); + List list=null; + for(ModelConfigVo vo:modelConfigVos) { + String name=vo.getRefModuleName(); + list = tmpData.get(name); + if(list==null ||(list!=null && list.isEmpty())) { + list=new ArrayList<>(); + list.add(vo); + tmpData.put(name, list); + }else{ + list.add(vo); + tmpData.put(name, list); + } + } + + Map tmpParam=new HashMap<>(); + tmpParam.put("schemeId",schemeId); + tmpParam.put("allRunType","allRunType"); + List groups=modelGroupConfigMapper.selectByModel(tmpParam); + + if(groups!=null && !groups.isEmpty()){ + //根据组ids获取未配置的个数 + List groupIds=new ArrayList<>(); + for(ModelGroupConfigVo vo:groups){ + groupIds.add(vo.getId()); + } + List> countList=modelGroupItemConfigMapper.selectNoConfigCountByGroupIds(groupIds); + for(ModelGroupConfigVo vo:groups){ + vo.setStatus(getGroupStatus(vo.getId(),countList)); + String name=vo.getRefModuleName(); + List modelConfigVos1=tmpData.get(name); + boolean flag=modelConfigVos1!=null && !modelConfigVos1.isEmpty(); + if(!flag){ + tmpData.put(name,null); + } + } + } + + List> params=new ArrayList<>(); + for (Map.Entry> m : tmpData.entrySet()) { + Map param=new HashMap(); + String name=m.getKey(); + param.put("name",name); + param.put("data",m.getValue()); + param.put("group",getGroups(groups,name)); + params.add(param); + } + + data.put("modelConfigs",params); + + return data; + } + + private String getGroupStatus(Integer groupId,List> countList){ + if(countList!=null && !countList.isEmpty()){ + for(Map map:countList){ + Integer tmpGroupId=Integer.valueOf(map.get("groupId").toString()); + if(groupId.equals(tmpGroupId)){ + int count=Integer.valueOf(map.get("count").toString()); + int status=Double.valueOf(map.get("status").toString()).intValue(); + if(count==status){ + return ModelConfigStatusEnum.YES_CONFIG.getCode(); + }else{ + return ModelConfigStatusEnum.NO_CONFIG.getCode(); + } + } + } + } + return ModelConfigStatusEnum.NO_CONFIG.getCode(); + } + + private List getGroups(List groups,String name){ + List list=new ArrayList<>(); + if(groups!=null&&!groups.isEmpty()) { + for(ModelGroupConfigVo vo:groups) { + if (name.equals(vo.getRefModuleName())) { + list.add(vo); + } + } + } + return list; + } + + @Override + public List listModelTree(Integer schemeId) { + //根据方案id查模型 + Map param=new HashMap<>(); + param.put("schemeId",schemeId); + List modelConfigVos=modelConfigMapper.selectByModel(param); + List list = modelInfoService.listModelTree(); + if(modelConfigVos!=null && !modelConfigVos.isEmpty()) { + for(ModelConfigVo vo:modelConfigVos){ + String mCode=vo.getCode(); + for(ModelTree tree:list){ + List children=tree.getChildren(); + List tmp=removeElement(children,mCode); + tree.setChildren(tmp); + } + } + } + return list; + } + + @Override + public List getModelByRefModule(String refModule){ + List list = modelInfoService.listModelTree(); + for(ModelTree tree:list){ + if (tree.getCode().equals(refModule)){ + return tree.getChildren(); + } + } + return null; + } + + @Override + public boolean isConfigComplete(Integer schemeId) { + //根据方案id查配置 + Map param=new HashMap<>(); + param.put("schemeId",schemeId); + + Map map=new HashMap<>(); + param.put("allRunType","allRunType"); + List modelConfigVos=modelConfigMapper.selectByModel(param); + Boolean flag1 = null; + if(modelConfigVos!=null && !modelConfigVos.isEmpty()) { + List codes=new ArrayList<>(); + List ids=new ArrayList<>(); + for (ModelConfigVo vo : modelConfigVos) { + codes.add(vo.getCode());//获取模型编码编码 + ids.add(vo.getId());//获取配置id + map.put(vo.getCode(), vo.getId()); + } + + //根据配置id查询配置参数的个数 + param.put("isGroup",IsGroupEnum.NO.getCode()); + param.put("configIds",ids); + if(ids!=null && !ids.isEmpty()) { + List> countByIds = modelParamConfigMapper.getCountByIds(param); + //根据模型编码查询参数个数 + List> countByCode = modelParamMapper.getCountByCode(codes); + + flag1 = compareData(map, countByCode, countByIds); + }else{ + flag1 = null; + } + }else{ + flag1 = null; + } + + + //根据方案id查组 + Map tmpParam=new HashMap<>(); + tmpParam.put("schemeId",schemeId); + tmpParam.put("allRunType","allRunType"); + List groups=modelGroupConfigMapper.selectByModel(tmpParam); + + map=new HashMap<>(); + //查询组 + Boolean flag2 = null; + if(groups!=null && !groups.isEmpty()){ + List groupIds=new ArrayList<>(); + for(ModelGroupConfigVo group:groups){ + groupIds.add(group.getId()); + } + + tmpParam.put("groupIds",groupIds); + //根据组项查询id 和code + List groupItems=modelGroupItemConfigMapper.selectByModel(tmpParam); + List codes=new ArrayList<>(); + List ids=new ArrayList<>(); + for (ModelGroupItemConfigVo vo : groupItems) { + codes.add(vo.getCode());//获取模型编码编码 + ids.add(vo.getId());//获取配置id + map.put(vo.getCode(), vo.getId()); + } + + //根据配置id查询配置参数的个数 + tmpParam.put("isGroup", IsGroupEnum.YES.getCode()); + tmpParam.put("configIds",ids); + if(ids!=null && !ids.isEmpty()) { + List> countByIds = modelParamConfigMapper.getCountByIds(tmpParam); + //根据模型编码查询参数个数 + List> countByCode = modelParamMapper.getCountByCode(codes); + flag2 = compareData(map, countByCode, countByIds); + }else{ + flag2 = null; + } + }else{ + flag2 = null; + } + + //判断有配置没组 + if(flag1!=null && flag2==null){ + return flag1; + } + //判断有组没配置 + if(flag1==null && flag2!=null){ + return flag2; + } + //判断有组有配置 + if(flag1!=null && flag2!=null){ + return flag1&&flag2; + } + //没组没配置 + if(flag1==null && flag2==null){ + return false; + } + + return false; + } + + @Override + public String delModelInfo(String mCode,Integer modelInfoId,String stationId) { + Integer id=modelConfigSchemeService.getSchemeDefault(stationId); + boolean flag=false; + boolean flag1=false; + if(id!=null){ + Map param=new HashMap<>(); + param.put("schemeId",id); + param.put("code",mCode); + //根据方案id查询 + List list=modelConfigMapper.selectByModel(param); + flag=list!=null&&!list.isEmpty(); + // + Map tmpParam=new HashMap<>(); + tmpParam.put("schemeId",id); + List groups=modelGroupConfigMapper.selectByModel(tmpParam); + if(groups!=null && !groups.isEmpty()) { + List groupIds = new ArrayList<>(); + for (ModelGroupConfigVo group : groups) { + groupIds.add(group.getId()); + } + + tmpParam.put("groupIds", groupIds); + tmpParam.put("code", mCode); + //根据组项查询id 和code + List groupItems = modelGroupItemConfigMapper.selectByModel(tmpParam); + flag1=groupItems!=null&&!groupItems.isEmpty(); + } + + } + + if(flag || flag1){ + return "此模型已被模型配置使用,无法删除"; + }else{ + ModelInfo info=new ModelInfo(); + info.setId(modelInfoId); + info.setIsDeleted(IsDeleteEnum.YES_DELETE.getCode()); + modelInfoService.editModelInfo(info); + return "删除成功"; + } + + + } + + @Override + public Integer getModelConfigIdByCode(String mCode,Integer schemeId) { + Map config=new HashMap<>(); + config.put("schemeId",schemeId); + config.put("code",mCode); + List modelConfigVos=modelConfigMapper.selectByModel(config); + if(modelConfigVos!=null && !modelConfigVos.isEmpty()){ + return modelConfigVos.get(0).getId(); + } + return null; + } + + private boolean compareData(Map map,List> countByCode,List> countByIds){ + boolean flag=true; + + if(countByCode!=null && !countByCode.isEmpty() && countByIds!=null && !countByIds.isEmpty()) { + for (Map.Entry data : map.entrySet()) { + String code = data.getKey(); + Integer configId = data.getValue(); + Integer count1 = getData(countByCode, code); + Integer count2 = getData(countByIds, configId.toString()); + + flag = flag && (count1 == count2); + } + }else{ + flag=false; + } + return flag; + } + + private Integer getData(List> data,String value){ + for(Map map:data){ + String code=map.get("code").toString(); + if(value.equals(code)){ + return Integer.valueOf(map.get("num").toString()); + } + + } + return null; + } + + + private List removeElement(List list,String mCode){ + Iterator iterable = list.iterator(); + while (iterable.hasNext()){ + ModelInfoVo s = iterable.next(); + if (s.getCode().equals(mCode)){ + iterable.remove(); + } + } + return list; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelConfigManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelConfigManagerImpl.java new file mode 100644 index 0000000..25cec94 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelConfigManagerImpl.java @@ -0,0 +1,152 @@ +package org.springblade.general_dispatching.model_config.manager.impl; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.mapper.ModelInfoMapper; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_config.mapper.ModelConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupItemConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.entity.IsGroupEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.manager.ModelConfigManager; +import org.springblade.general_dispatching.model_config.vo.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelConfigManagerImpl implements ModelConfigManager { + @Resource + private ModelConfigMapper mcm; + @Resource + private ModelParamConfigMapper mpcm; + + @Resource + ModelInfoMapper modelInfoMapper; + + @Resource + ModelParamMapper modelParamMapper; + + @Resource + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Override + public ModelConfig getModelInfo(Integer id) { + return mcm.selectByPrimaryKey(id); + } + + @Override + public List getModelConfigParams(Integer id) { + return mpcm.selectByModelConfigId(id); + } + + @Override + public ModelConfigBo getModelConfig(Integer id) { + ModelConfigBo bo = new ModelConfigBo(); + bo.setModelConfigVo(getModelInfo(id)); + bo.setParams(getModelConfigParams(id)); + return bo; + } + + @Override + public int updateInfoAddParam(ModelConfig modelConfig, List modelParamConfigs) { + mcm.updateByPrimaryKey(modelConfig); + Integer modelConfigId=modelConfig.getId(); + for(ModelParamConfig modelParamConfig:modelParamConfigs){ + modelParamConfig.setModelConfigId(modelConfigId); + modelParamConfig.setIsGroup(IsGroupEnum.NO.getCode()); + } + + mpcm.batchInsert(modelParamConfigs); + + return modelConfigId; + } + + @Override + public Map getModelInfoParamConfig(String mCode, Integer configId,Integer isGroup) { + Map data=new HashMap<>(); + ModelInfoVo modelInfoVo=modelInfoMapper.selectInfoByCode(mCode); + data.put("modelInfo",modelInfoVo); + + List modelParams=modelParamMapper.selectByMcode(mCode); + + List modelParamVos=new ArrayList<>(); + for(ModelParam modelParam:modelParams){ + ModelParamVo modelParamVo=new ModelParamVo(); + modelParamVo.setId(modelParam.getId()); + modelParamVo.setCode(modelParam.getCode()); + modelParamVo.setMcode(modelParam.getMcode()); + modelParamVo.setName(modelParam.getName()); + modelParamVo.setPno(modelParam.getPno()); + modelParamVo.setFieldType(modelParam.getFieldType()); + modelParamVo.setRemark(modelParam.getRemark()); + modelParamVo.setConfigId(configId); + modelParamVos.add(modelParamVo); + } + data.put("modelParams",modelParamVos); + + if(configId!=null){ + Map param=new HashMap<>(); + param.put("id",configId); + if(isGroup== IsGroupEnum.NO.getCode()) { + param.put("allRunType","allRunType"); + List list = mcm.selectByModel(param); + if(list!=null && !list.isEmpty()){ + data.put("modelConfig",list.get(0)); + } + }else{ + ModelGroupItemConfigVo modelGroupItemConfig= modelGroupItemConfigMapper.selectByPrimaryKey(configId); + data.put("modelConfig",modelGroupItemConfig); + } + + } + return data; + } + + @Override + public Map> getConfigParamByIds(List ids) { + Map param=new HashMap<>(); + param.put("ids",ids); + param.put("allRunType","allRunType"); + List modelConfigVos=mcm.selectByModel(param); + List modelParamConfigs=mpcm.selectByModelConfigIds(ids); + + Map> res=new HashMap<>(); + for(Integer id:ids){ + Map data=new HashMap<>(); + data.put("config",getConfigById(id,modelConfigVos)); + data.put("configParam",getModelParamConfigById(id,modelParamConfigs)); + res.put(id,data); + } + return res; + } + + + private ModelConfigVo getConfigById(Integer id,List modelConfigVos){ + for(ModelConfigVo vo:modelConfigVos){ + if(id.intValue() == vo.getId().intValue()){ + return vo; + } + } + return null; + } + + + private List getModelParamConfigById(Integer id,List modelParamConfigs){ + List result=new ArrayList<>(); + for(ModelParamConfig vo:modelParamConfigs){ + if(id.intValue() == vo.getModelConfigId().intValue()){ + result.add(vo); + } + } + return result; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupConfigManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupConfigManagerImpl.java new file mode 100644 index 0000000..3d1c2b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupConfigManagerImpl.java @@ -0,0 +1,63 @@ +package org.springblade.general_dispatching.model_config.manager.impl; + +import org.springblade.general_dispatching.model_config.mapper.ModelGroupConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupItemConfigMapper; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.manager.ModelGroupConfigManager; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelGroupConfigManagerImpl implements ModelGroupConfigManager { + + @Resource + ModelGroupConfigMapper modelGroupConfigMapper; + + @Resource + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Override + public int updateGroupInfoItem(ModelGroupConfig modelGroupConfig, List groupItemIds) { + modelGroupConfigMapper.updateByPrimaryKeySelective(modelGroupConfig); + Integer groupId=modelGroupConfig.getId(); + modelGroupItemConfigMapper.batchUpdateGroupId(groupId,groupItemIds); + return groupId; + } + + @Override + public int addGroupInfoItem(ModelGroupConfig modelGroupConfig, List groupItems) { + modelGroupConfigMapper.insert(modelGroupConfig); + Integer groupId=modelGroupConfig.getId(); + for(ModelGroupItemConfig groupItemConfig:groupItems){ + groupItemConfig.setGroupId(groupId); + } + modelGroupItemConfigMapper.batchInsert(groupItems); + return groupId; + } + + @Override + public Map getDataByGroupId(Integer groupId) { + Map data=new HashMap<>(); + Map param=new HashMap<>(); + param.put("groupId",groupId); + param.put("allRunType","allRunType"); + List list=modelGroupConfigMapper.selectByModel(param); + if(list!=null && !list.isEmpty()) { + data.put("group", list.get(0)); + } + + List modelGroupItemConfigVos=modelGroupItemConfigMapper.selectByModel(param); + if(modelGroupItemConfigVos!=null && !modelGroupItemConfigVos.isEmpty()) { + data.put("groupItem", modelGroupItemConfigVos); + } + + return data; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupItemConfigManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupItemConfigManagerImpl.java new file mode 100644 index 0000000..3a3bf91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelGroupItemConfigManagerImpl.java @@ -0,0 +1,78 @@ +package org.springblade.general_dispatching.model_config.manager.impl; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupItemConfigMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.entity.IsGroupEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfigStatusEnum; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.manager.ModelGroupItemConfigManager; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelGroupItemConfigManagerImpl implements ModelGroupItemConfigManager { + @Resource + private ModelParamConfigMapper mpcm; + + @Resource + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Resource + ModelParamMapper modelParamMapper; + + @Override + public int addGroupItemAndParam(ModelGroupItemConfig modelGroupItemConfig, List modelParamConfigs) { + modelGroupItemConfigMapper.insert(modelGroupItemConfig); + Integer modelConfigId=modelGroupItemConfig.getId(); + for(ModelParamConfig modelParamConfig:modelParamConfigs){ + modelParamConfig.setModelConfigId(modelConfigId); + modelParamConfig.setIsGroup(IsGroupEnum.YES.getCode()); + } + + if(modelParamConfigs!=null && !modelParamConfigs.isEmpty()) { + mpcm.batchInsert(modelParamConfigs); + } + return 1; + } + + @Override + public boolean isConfigParam(Integer id,String mCode) { + boolean flag=false; + Map param=new HashMap<>(); + //查询模型的参数个数 + List modelParams=modelParamMapper.selectByMcode(mCode); + //查询配置个数 + param.put("modelConfigId",id); + param.put("isGroup",IsGroupEnum.YES.getCode()); + List list = modelParamConfigMapper.selectByModel(param); + if(list!=null){ + flag= list.size()==modelParams.size(); + } + + ModelGroupItemConfig record=modelGroupItemConfigMapper.selectByPrimaryKey(id); + if("1".equals(record.getStatus())){ + flag=true; + } + + if(flag && ModelConfigStatusEnum.NO_CONFIG.getCode().equals(record.getStatus())){//如果配置了就修改 + record=new ModelGroupItemConfig(); + record.setId(id); + record.setStatus(ModelConfigStatusEnum.YES_CONFIG.getCode()); + modelGroupItemConfigMapper.updateByPrimaryKeySelective(record); + } + + return flag; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelParamConfigManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelParamConfigManagerImpl.java new file mode 100644 index 0000000..3fa9472 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/manager/impl/ModelParamConfigManagerImpl.java @@ -0,0 +1,132 @@ +package org.springblade.general_dispatching.model_config.manager.impl; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.mapper.ModelParamMapper; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.entity.*; +import org.springblade.general_dispatching.model_config.manager.ModelParamConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigService; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupItemConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelParamConfigManagerImpl implements ModelParamConfigManager { + @Resource + ModelParamMapper modelParamMapper; + + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Autowired + ModelConfigService modelConfigService; + + @Autowired + ModelGroupItemConfigService modelGroupItemConfigService; + + @Override + public int addParamConfigParam(ModelParamConfig modelParamConfig, ModelParam modelParam) { + modelParam.setIsDeleted(IsDeleteEnum.NO_DELETE.getCode()); + modelParamMapper.insert(modelParam); + Integer modelParamId=modelParam.getId(); + modelParamConfig.setModelParamId(modelParamId); + modelParamConfigMapper.insert(modelParamConfig); + return modelParamConfig.getId(); + } + + @Override + public boolean updateConfigId(Integer id, Integer modelConfigId) { + ModelParamConfig modelParamConfig=new ModelParamConfig(); + modelParamConfig.setId(id); + modelParamConfig.setModelConfigId(modelConfigId); + int cnt=modelParamConfigMapper.updateByPrimaryKeySelective(modelParamConfig); + return cnt>0; + } + + @Override + public Map delModelParam(Integer id) { + Map param=new HashMap<>(); + Map res=new HashMap<>(); + param.put("paramId",id); + List list=modelParamConfigMapper.selectByModel(param); + boolean flag= list!=null&&!list.isEmpty(); + if(flag){ + res.put("msg","此参数已跟配置参数进行关联,无法进行删除"); + res.put("flag","false"); + }else{ + ModelParam tmpParam=new ModelParam(); + tmpParam.setId(id); + tmpParam.setIsDeleted(IsDeleteEnum.YES_DELETE.getCode()); + modelParamMapper.updateByPrimaryKeySelective(tmpParam); + res.put("msg","删除成功"); + res.put("flag","true"); + } + return res; + } + + //查询数据配置完整xing + @Override + public boolean getConfigParamEqualCodeCount(ModelParamConfig modelParamConfig){ + Integer modelConfigId=modelParamConfig.getModelConfigId(); + Integer isGroup=modelParamConfig.getIsGroup(); + Map param=new HashMap<>(); + param.put("modelConfigId",modelConfigId); + param.put("isGroup",isGroup); + //查询个数 + List list=modelParamConfigMapper.selectByModel(param); + if(list!=null && !list.isEmpty()){ + ModelParamConfigVo modelParamConfigVo=list.get(0); + //查询模型的个数 + List codes=new ArrayList<>(); + codes.add(modelParamConfigVo.getMCode()); + List> countList=modelParamMapper.getCountByCode(codes); + String num=countList.get(0).get("num").toString(); + if(Integer.valueOf(num)==list.size()){ + int count=0; + for(ModelParamConfigVo vo:list){ + if(vo.getTypeCode()==null || "".equals(vo.getTypeCode())){ + count = count+1; + } + } + boolean flag= count<=0; + return flag; + }else{ + return false; + } + }else{ + return false; + } + } + //更新配置的状态 + @Override + public void updatStatus(ModelParamConfig modelParamConfig){ + boolean tmpFlag=getConfigParamEqualCodeCount(modelParamConfig); + //更新配置状态 + if(modelParamConfig.getIsGroup()== IsGroupEnum.NO.getCode()){//不为组 + if(tmpFlag) {//全部配置完整 + ModelConfig modelConfig=new ModelConfig(); + modelConfig.setId(modelParamConfig.getModelConfigId()); + modelConfig.setStatus(ModelConfigStatusEnum.YES_CONFIG.getCode()); + modelConfigService.editModelConfig(modelConfig); + } + + }else{//为组 + if(tmpFlag) {//全部配置完整 + ModelGroupItemConfig itemConfig=new ModelGroupItemConfig(); + itemConfig.setId(modelParamConfig.getModelConfigId()); + itemConfig.setStatus(ModelConfigStatusEnum.YES_CONFIG.getCode()); + modelGroupItemConfigService.updateModelGroupItemConfig(itemConfig); + } + + } + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.java new file mode 100644 index 0000000..5168260 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.java @@ -0,0 +1,44 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; + +import java.util.List; +import java.util.Map; + +public interface ModelConfigMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelConfig record); + + @SqlParser (filter = true) + int insertSelective(ModelConfig record); + + @SqlParser(filter = true) + ModelConfig selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelConfig record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelConfig record); + + @SqlParser(filter = true) + IPage selectByModel(Map param, IPage page); + + @SqlParser(filter = true) + List selectByModel(Map param); + + //批量修改方案id + @SqlParser (filter = true) + int batchUpdateSchemeId(@Param("schemeId") Integer schemeId, @Param("modelConfigIds") List modelConfigIds); + +// int selectByCodeAndModelIds(@Param("code") String code, @Param("modelIds")String modelIds); + + @SqlParser (filter = true) + int batchInsert(@Param("params") List modelConfigs); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.xml new file mode 100644 index 0000000..c3caef2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigMapper.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, SCHEME_ID, CODE,REFMODULE, TYPE_CODE, APPLY_PERIOD,STATUS, IS_CREATE_TASK, RUN_TYPE, RUN_PERIOD, PERIOD_TYPE, + REMARK,IS_DELETED + + + + + delete from wd_model_config + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_config (ID, SCHEME_ID, CODE, REFMODULE, + TYPE_CODE,APPLY_PERIOD, STATUS, IS_CREATE_TASK, + RUN_TYPE, RUN_PERIOD, PERIOD_TYPE, + REMARK,IS_DELETED) + values (#{id,jdbcType=INTEGER}, #{schemeId,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{refModule,jdbcType=VARCHAR}, + #{typeCode,jdbcType=VARCHAR},#{applyPeriod,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},#{isCreateTask,jdbcType=SMALLINT}, + #{runType,jdbcType=VARCHAR}, #{runPeriod,jdbcType=VARCHAR},#{periodType,jdbcType=CHAR}, + #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=SMALLINT}) + + + + insert into wd_model_config (SCHEME_ID, CODE, REFMODULE, + TYPE_CODE,APPLY_PERIOD, STATUS, IS_CREATE_TASK, + RUN_TYPE, RUN_PERIOD, PERIOD_TYPE,REMARK,IS_DELETED + ) values + + (#{item.schemeId,jdbcType=INTEGER}, #{item.code,jdbcType=VARCHAR}, #{item.refModule,jdbcType=VARCHAR}, + #{item.typeCode,jdbcType=VARCHAR},#{item.applyPeriod,jdbcType=VARCHAR}, #{item.status,jdbcType=VARCHAR}, + #{item.isCreateTask,jdbcType=SMALLINT},#{item.runType,jdbcType=VARCHAR}, #{item.runPeriod,jdbcType=VARCHAR}, + #{item.periodType,jdbcType=CHAR},#{item.remark,jdbcType=VARCHAR},#{item.deleted,jdbcType=SMALLINT}) + + + + + + + insert into wd_model_config + + + ID, + + + SCHEME_ID, + + + CODE, + + + REFMODULE, + + + TYPE_CODE, + + + APPLY_PERIOD, + + + STATUS, + + + IS_CREATE_TASK, + + + RUN_TYPE, + + + RUN_PERIOD, + + + PERIOD_TYPE, + + + REMARK, + + + IS_DELETED, + + + + + #{id,jdbcType=INTEGER}, + + + #{schemeId,jdbcType=INTEGER}, + + + #{code,jdbcType=VARCHAR}, + + + #{refModule,jdbcType=VARCHAR}, + + + #{typeCode,jdbcType=VARCHAR}, + + + #{applyPeriod,jdbcType=VARCHAR}, + + + #{status,jdbcType=VARCHAR}, + + + #{isCreateTask,jdbcType=SMALLINT}, + + + #{runType,jdbcType=VARCHAR}, + + + #{runPeriod,jdbcType=VARCHAR}, + + + #{periodType,jdbcType=CHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{deleted,jdbcType=SMALLINT}, + + + + + update wd_model_config + + + SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + REFMODULE = #{refModule,jdbcType=VARCHAR}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + APPLY_PERIOD=#{applyPeriod,jdbcType=VARCHAR}, + + + STATUS = #{status,jdbcType=VARCHAR}, + + + IS_CREATE_TASK = #{isCreateTask,jdbcType=SMALLINT}, + + + RUN_TYPE = #{runType,jdbcType=VARCHAR}, + + + RUN_PERIOD = #{runPeriod,jdbcType=VARCHAR}, + + + PERIOD_TYPE = #{periodType,jdbcType=CHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + IS_DELETED = #{deleted,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_config + set SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + CODE = #{code,jdbcType=VARCHAR}, + REFMODULE = #{refModule,jdbcType=VARCHAR}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + APPLY_PERIOD=#{applyPeriod,jdbcType=VARCHAR}, + STATUS = #{status,jdbcType=VARCHAR}, + IS_CREATE_TASK = #{isCreateTask,jdbcType=SMALLINT}, + RUN_TYPE = #{runType,jdbcType=VARCHAR}, + RUN_PERIOD = #{runPeriod,jdbcType=VARCHAR}, + PERIOD_TYPE = #{periodType,jdbcType=CHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + IS_DELETED = #{deleted,jdbcType=SMALLINT} + where ID = #{id,jdbcType=INTEGER} + + + + update wd_model_config + set SCHEME_ID = #{schemeId,jdbcType=INTEGER} + where ID in + + #{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.java new file mode 100644 index 0000000..ef359d7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.java @@ -0,0 +1,35 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelConfigSchemeMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelConfigScheme record); + + @SqlParser (filter = true) + int insertSelective(ModelConfigScheme record); + + @SqlParser(filter = true) + ModelConfigScheme selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelConfigScheme record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelConfigScheme record); + + @SqlParser(filter = true) + IPage selectScheme(@Param("param") Map param, + IPage page); + + @SqlParser(filter = true) + List selectSchemeByParam(@Param("param") Map param); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.xml new file mode 100644 index 0000000..d2bf21a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelConfigSchemeMapper.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + ID, NAME, IS_DEFAULT,(CASE WHEN IS_DEFAULT = 1 THEN '是' ELSE '否' END) IS_DEFAULT_NAME, MODEL_IDS, MODEL_NAMES, REMARK, CREATE_TIME, CREATER, LAST_UPDATE_TIME, + LAST_UPDATER,IS_DELETED + + + + + delete from wd_model_config_scheme + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_config_scheme (ID, NAME, IS_DEFAULT, + MODEL_IDS, MODEL_NAMES, REMARK, + CREATE_TIME, CREATER, LAST_UPDATE_TIME, + LAST_UPDATER,IS_DELETED) + values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{isDefault,jdbcType=SMALLINT}, + #{modelIds,jdbcType=VARCHAR}, #{modelNames,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creater,jdbcType=VARCHAR}, #{lastUpdateTime,jdbcType=TIMESTAMP}, + #{lastUpdater,jdbcType=VARCHAR},#{deleted,jdbcType=SMALLINT}) + + + insert into wd_model_config_scheme + + + ID, + + + NAME, + + + IS_DEFAULT, + + + MODEL_IDS, + + + MODEL_NAMES, + + + REMARK, + + + CREATE_TIME, + + + CREATER, + + + LAST_UPDATE_TIME, + + + LAST_UPDATER, + + + IS_DELETED, + + + + + + #{id,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{isDefault,jdbcType=SMALLINT}, + + + #{modelIds,jdbcType=VARCHAR}, + + + #{modelNames,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{creater,jdbcType=VARCHAR}, + + + #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + #{lastUpdater,jdbcType=VARCHAR}, + + + #{deleted,jdbcType=SMALLINT}, + + + + + + update wd_model_config_scheme + + + NAME = #{name,jdbcType=VARCHAR}, + + + IS_DEFAULT = #{isDefault,jdbcType=SMALLINT}, + + + MODEL_IDS = #{modelIds,jdbcType=VARCHAR}, + + + MODEL_NAMES = #{modelNames,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + CREATER = #{creater,jdbcType=VARCHAR}, + + + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + + + IS_DELETED = #{deleted,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_config_scheme + set NAME = #{name,jdbcType=VARCHAR}, + IS_DEFAULT = #{isDefault,jdbcType=SMALLINT}, + MODEL_IDS = #{modelIds,jdbcType=VARCHAR}, + MODEL_NAMES = #{modelNames,jdbcType=VARCHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + CREATER = #{creater,jdbcType=VARCHAR}, + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + IS_DELETED = #{deleted,jdbcType=SMALLINT} + where ID = #{id,jdbcType=INTEGER} + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.java new file mode 100644 index 0000000..3cb8b55 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.java @@ -0,0 +1,35 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; +import org.springblade.general_dispatching.model_config.vo.ModelFixedValueVo; +import org.apache.ibatis.annotations.Param; + +public interface ModelFixedValueMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelFixedValue record); + + @SqlParser (filter = true) + int insertSelective(ModelFixedValue record); + + @SqlParser(filter = true) + ModelFixedValue selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelFixedValue record); + + @SqlParser (filter = true) + int updateByPrimaryKeyWithBLOBs(ModelFixedValue record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelFixedValue record); + + @SqlParser(filter = true) + ModelFixedValue selectByCode(@Param("code") String code); + + @SqlParser(filter = true) + IPage listModelFixedValue(String name, String plantType, IPage page); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.xml new file mode 100644 index 0000000..afaa263 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelFixedValueMapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + ID, PLANT_TYPE, SCHEME_ID, CODE, NAME, REMARK, TYPE_CODE + + + + fixed.ID, fixed.PLANT_TYPE,dict.NAME PLANT_TYPE_NAME, fixed.SCHEME_ID,scheme.NAME SCHEME_NAME, + fixed.CODE, fixed.NAME, fixed.REMARK, fixed.TYPE_CODE,fixed.VALUE + + + + VALUE + + + + + + + + delete from wd_model_fixed_value + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_fixed_value (ID, PLANT_TYPE, SCHEME_ID, + CODE, NAME, REMARK, + TYPE_CODE, VALUE) + values (#{id,jdbcType=INTEGER}, #{plantType,jdbcType=VARCHAR}, #{schemeId,jdbcType=INTEGER}, + #{code,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{typeCode,jdbcType=VARCHAR}, #{value,jdbcType=LONGVARCHAR}) + + + insert into wd_model_fixed_value + + + ID, + + + PLANT_TYPE, + + + SCHEME_ID, + + + CODE, + + + NAME, + + + REMARK, + + + TYPE_CODE, + + + VALUE, + + + + + #{id,jdbcType=INTEGER}, + + + #{plantType,jdbcType=VARCHAR}, + + + #{schemeId,jdbcType=INTEGER}, + + + #{code,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{typeCode,jdbcType=VARCHAR}, + + + #{value,jdbcType=LONGVARCHAR}, + + + + + update wd_model_fixed_value + + + PLANT_TYPE = #{plantType,jdbcType=VARCHAR}, + + + SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + NAME = #{name,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + VALUE = #{value,jdbcType=LONGVARCHAR}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_fixed_value + set PLANT_TYPE = #{plantType,jdbcType=VARCHAR}, + SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + CODE = #{code,jdbcType=VARCHAR}, + NAME = #{name,jdbcType=VARCHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + VALUE = #{value,jdbcType=LONGVARCHAR} + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_fixed_value + set PLANT_TYPE = #{plantType,jdbcType=VARCHAR}, + SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + CODE = #{code,jdbcType=VARCHAR}, + NAME = #{name,jdbcType=VARCHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR} + where ID = #{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.java new file mode 100644 index 0000000..f1dae56 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.java @@ -0,0 +1,40 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelGroupConfigMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelGroupConfig record); + + @SqlParser (filter = true) + int insertSelective(ModelGroupConfig record); + + @SqlParser(filter = true) + ModelGroupConfig selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelGroupConfig record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelGroupConfig record); + + @SqlParser(filter = true) + IPage selectByModel(Map param, IPage page); + + @SqlParser(filter = true) + List selectByModel(Map param); + + //批量修改方案id + @SqlParser (filter = true) + int batchUpdateSchemeId(@Param("schemeId") Integer schemeId, + @Param("modelGroupConfigIds") List modelGroupConfigIds); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.xml new file mode 100644 index 0000000..03e3737 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupConfigMapper.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID,SCHEME_ID,NAME,REFMODULE,TYPE_CODE,APPLY_PERIOD,RUN_TYPE,RUN_PERIOD,PERIOD_TYPE,REMARK,IS_DELETED + + + + + delete from wd_model_group_config + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_group_config (ID, SCHEME_ID,NAME,REFMODULE,TYPE_CODE, + APPLY_PERIOD,RUN_TYPE,RUN_PERIOD,PERIOD_TYPE,REMARK,IS_DELETED + ) + values (#{id,jdbcType=INTEGER}, #{schemeId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{refModule,jdbcType=VARCHAR}, + #{typeCode,jdbcType=VARCHAR},#{applyPeriod,jdbcType=VARCHAR}, #{runType,jdbcType=VARCHAR}, + #{runPeriod,jdbcType=VARCHAR}, #{periodType,jdbcType=CHAR}, #{remark,jdbcType=VARCHAR}, #{deleted,jdbcType=SMALLINT} + ) + + + insert into wd_model_group_config + + + ID, + + + SCHEME_ID, + + + NAME, + + + REFMODULE, + + + TYPE_CODE, + + + APPLY_PERIOD, + + + RUN_TYPE, + + + RUN_PERIOD, + + + PERIOD_TYPE, + + + REMARK, + + + IS_DELETED, + + + + + + #{id,jdbcType=INTEGER}, + + + #{schemeId,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{refModule,jdbcType=VARCHAR}, + + + #{typeCode,jdbcType=VARCHAR}, + + + #{applyPeriod,jdbcType=VARCHAR}, + + + #{runType,jdbcType=VARCHAR}, + + + #{runPeriod,jdbcType=VARCHAR}, + + + #{periodType,jdbcType=CHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{deleted,jdbcType=SMALLINT}, + + + + + + update wd_model_group_config + set SCHEME_ID = #{schemeId,jdbcType=INTEGER} + where ID in + + #{id,jdbcType=INTEGER} + + + + + update wd_model_group_config + + + SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + + + NAME = #{name,jdbcType=VARCHAR}, + + + REFMODULE = #{refModule,jdbcType=VARCHAR}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + APPLY_PERIOD = #{applyPeriod,jdbcType=VARCHAR}, + + + RUN_TYPE = #{runType,jdbcType=VARCHAR}, + + + RUN_PERIOD = #{runPeriod,jdbcType=VARCHAR}, + + + PERIOD_TYPE = #{periodType,jdbcType=CHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + IS_DELETED = #{deleted,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_group_config + set SCHEME_ID = #{schemeId,jdbcType=INTEGER}, + NAME = #{name,jdbcType=VARCHAR}, + REFMODULE = #{refModule,jdbcType=VARCHAR}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + APPLY_PERIOD = #{applyPeriod,jdbcType=VARCHAR}, + RUN_TYPE = #{runType,jdbcType=VARCHAR}, + RUN_PERIOD = #{runPeriod,jdbcType=VARCHAR}, + PERIOD_TYPE = #{periodType,jdbcType=CHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + IS_DELETED = #{deleted,jdbcType=SMALLINT} + where ID = #{id,jdbcType=INTEGER} + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.java new file mode 100644 index 0000000..f58138c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.java @@ -0,0 +1,44 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelGroupItemConfigMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelGroupItemConfig record); + + @SqlParser (filter = true) + int insertSelective(ModelGroupItemConfig record); + + @SqlParser(filter = true) + ModelGroupItemConfigVo selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelGroupItemConfig record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelGroupItemConfig record); + + @SqlParser(filter = true) + IPage selectByModel(Map param, IPage page); + + @SqlParser(filter = true) + List selectByModel(Map param); + + @SqlParser (filter = true) + int batchUpdateGroupId(@Param("groupId") Integer groupId, @Param("groupItemIds") List groupItemIds); + + @SqlParser (filter = true) + int batchInsert(@Param("params") List groupItems); + + @SqlParser(filter = true) + List> selectNoConfigCountByGroupIds(@Param("groupIds") List groupIds); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.xml new file mode 100644 index 0000000..70428f9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelGroupItemConfigMapper.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + ID, PNO, STATUS, GROUP_ID, CODE,IS_CREATE_TASK + + + + + + delete from wd_model_group_item_config + where ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_group_item_config (ID, PNO, STATUS, + GROUP_ID, CODE,IS_CREATE_TASK) + values (#{id,jdbcType=INTEGER}, #{pno,jdbcType=INTEGER}, #{status,jdbcType=VARCHAR}, + #{groupId,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{isCreateTask,jdbcType=SMALLINT}) + + + insert into wd_model_group_item_config + + + ID, + + + PNO, + + + STATUS, + + + GROUP_ID, + + + CODE, + + + IS_CREATE_TASK, + + + + + + #{id,jdbcType=INTEGER}, + + + #{pno,jdbcType=INTEGER}, + + + #{status,jdbcType=VARCHAR}, + + + #{groupId,jdbcType=INTEGER}, + + + #{code,jdbcType=VARCHAR}, + + + #{isCreateTask,jdbcType=SMALLINT}, + + + + + + update wd_model_group_item_config + + + PNO = #{pno,jdbcType=INTEGER}, + + + STATUS = #{status,jdbcType=VARCHAR}, + + + GROUP_ID = #{groupId,jdbcType=INTEGER}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + IS_CREATE_TASK=#{isCreateTask,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_group_item_config + set PNO = #{pno,jdbcType=INTEGER}, + STATUS = #{status,jdbcType=VARCHAR}, + GROUP_ID = #{groupId,jdbcType=INTEGER}, + CODE = #{code,jdbcType=VARCHAR}, + IS_CREATE_TASK=#{isCreateTask,jdbcType=SMALLINT} + where ID = #{id,jdbcType=INTEGER} + + + + update wd_model_group_item_config + set GROUP_ID = #{schemeId,jdbcType=INTEGER} + where ID in + + #{id,jdbcType=INTEGER} + + + + + insert into wd_model_group_item_config (PNO, STATUS,GROUP_ID, CODE,IS_CREATE_TASK) + values + + (#{item.pno,jdbcType=INTEGER}, #{item.status,jdbcType=VARCHAR}, + #{item.groupId,jdbcType=INTEGER}, #{item.code,jdbcType=VARCHAR}, + #{item.isCreateTask,jdbcType=SMALLINT} + ) + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.java new file mode 100644 index 0000000..0365e9f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.java @@ -0,0 +1,55 @@ +package org.springblade.general_dispatching.model_config.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelParamConfigMapper { + int deleteByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int insert(ModelParamConfig record); + + @SqlParser (filter = true) + int insertSelective(ModelParamConfig record); + + @SqlParser(filter = true) + ModelParamConfig selectByPrimaryKey(Integer id); + + @SqlParser (filter = true) + int updateByPrimaryKeySelective(ModelParamConfig record); + + @SqlParser (filter = true) + int updateByPrimaryKey(ModelParamConfig record); + + @SqlParser (filter = true) + int batchInsert(@Param("params") List params); + + @SqlParser (filter = true) + int deleteByModelConfigId(@Param("modelConfigId") Integer modelConfigId); + + @SqlParser(filter = true) + List selectByModelConfigId(@Param("modelConfigId") Integer modelConfigId); + + @SqlParser(filter = true) + List selectByModelConfigIds(@Param("configIds") List configIds); + + int deleteByMcode(@Param("mcode") String mcode, @Param("code") String code); + + @SqlParser (filter = true) + int batchUpdate(@Param("modelParamConfig") ModelParamConfig modelParamConfig, @Param("configIds") List configIds); + + @SqlParser(filter = true) + IPage selectByModel(Map param, IPage page); + + @SqlParser(filter = true) + List selectByModel(Map param); + + @SqlParser(filter = true) + List> getCountByIds(Map param); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.xml new file mode 100644 index 0000000..b5fb594 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/mapper/ModelParamConfigMapper.xml @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID,MODEL_CONFIG_ID,MODEL_PARAM_ID,TYPE_CODE,VALUE,VERIFICATION,CONTROL_TYPE,UNIT,IS_SHOW,DT_PERIOD,PERIOD_TYPE,IS_GROUP + + + + + + delete from wd_model_param_config + where ID = #{id,jdbcType=INTEGER} + + + delete from wd_model_param_config + where MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER} + + + + delete from wd_model_param_config + where CODE = #{code,jdbcType=VARCHAR} and MODEL_CONFIG_ID in + (select MODEL_CONFIG_ID from wd_model_config where CODE= #{mcode,jdbcType=VARCHAR}) + + + insert into wd_model_param_config (ID,MODEL_CONFIG_ID,MODEL_PARAM_ID, + TYPE_CODE,VALUE,VERIFICATION,CONTROL_TYPE, + UNIT,IS_SHOW,DT_PERIOD,PERIOD_TYPE,IS_GROUP) + values (#{id,jdbcType=INTEGER}, #{modelConfigId,jdbcType=INTEGER}, #{modelParamId,jdbcType=INTEGER}, + #{typeCode,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, #{verification,jdbcType=VARCHAR}, #{controlType,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, #{isShow,jdbcType=BIT},#{dtPeriod,jdbcType=VARCHAR},#{periodType,jdbcType=CHAR}, + #{isGroup,jdbcType=INTEGER}) + + + insert into wd_model_param_config( + MODEL_CONFIG_ID, + MODEL_PARAM_ID, + TYPE_CODE, + VALUE, + VERIFICATION, + CONTROL_TYPE, + UNIT, + IS_SHOW, + DT_PERIOD, + PERIOD_TYPE, + IS_GROUP) + values + + (#{item.modelConfigId,jdbcType=INTEGER}, + #{item.modelParamId,jdbcType=INTEGER}, + #{item.typeCode,jdbcType=VARCHAR}, + #{item.value,jdbcType=VARCHAR}, + #{item.verification,jdbcType=VARCHAR}, + #{item.controlType,jdbcType=VARCHAR}, + #{item.unit,jdbcType=VARCHAR}, + #{item.isShow,jdbcType=BIT}, + #{item.dtPeriod,jdbcType=VARCHAR}, + #{item.periodType,jdbcType=CHAR}, + #{item.isGroup,jdbcType=INTEGER}) + + + + + UPDATE wd_model_param_config + + + TYPE_CODE = #{item.typeCode,jdbcType=VARCHAR}, + + + VALUE = #{item.value,jdbcType=VARCHAR}, + + + VERIFICATION = #{item.verification,jdbcType=VARCHAR}, + + + CONTROL_TYPE = #{item.controlType,jdbcType=VARCHAR}, + + + UNIT = #{item.unit,jdbcType=VARCHAR}, + + + IS_SHOW = #{item.isShow,jdbcType=BIT}, + + + DT_PERIOD=#{item.dtPeriod,jdbcType=VARCHAR}, + + + PERIOD_TYPE=#{item.periodType,jdbcType=CHAR}, + + + where IS_GROUP=#{item.isGroup,jdbcType=INTEGER} + and modelConfigId = #{item.modelConfigId,jdbcType=INTEGER} + + + + + insert into wd_model_param_config + + + ID, + + + MODEL_CONFIG_ID, + + + MODEL_PARAM_ID, + + + TYPE_CODE, + + + VALUE, + + + VERIFICATION, + + + CONTROL_TYPE, + + + UNIT, + + + IS_SHOW, + + + DT_PERIOD, + + + PERIOD_TYPE, + + + IS_GROUP, + + + + + #{id,jdbcType=INTEGER}, + + + #{modelConfigId,jdbcType=INTEGER}, + + + #{modelParamId,jdbcType=INTEGER}, + + + #{typeCode,jdbcType=VARCHAR}, + + + #{value,jdbcType=VARCHAR}, + + + #{verification,jdbcType=VARCHAR}, + + + #{controlType,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + #{isShow,jdbcType=BIT}, + + + #{dtPeriod,jdbcType=VARCHAR}, + + + #{periodType,jdbcType=CHAR}, + + + #{isGroup,jdbcType=INTEGER}, + + + + + update wd_model_param_config + + + MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER}, + + + MODEL_PARAM_ID = #{modelParamId,jdbcType=INTEGER}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + VALUE = #{value,jdbcType=VARCHAR}, + + + VERIFICATION = #{verification,jdbcType=VARCHAR}, + + + CONTROL_TYPE = #{controlType,jdbcType=VARCHAR}, + + + UNIT = #{unit,jdbcType=VARCHAR}, + + + IS_SHOW = #{isShow,jdbcType=BIT}, + + + DT_PERIOD=#{dtPeriod,jdbcType=VARCHAR}, + + + PERIOD_TYPE=#{periodType,jdbcType=CHAR}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_param_config + set MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER}, + MODEL_PARAM_ID = #{modelParamId,jdbcType=INTEGER}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + VALUE = #{value,jdbcType=VARCHAR}, + VERIFICATION = #{verification,jdbcType=VARCHAR}, + CONTROL_TYPE = #{controlType,jdbcType=VARCHAR}, + UNIT = #{unit,jdbcType=VARCHAR}, + IS_SHOW = #{isShow,jdbcType=BIT}, + DT_PERIOD=#{dtPeriod,jdbcType=VARCHAR}, + PERIOD_TYPE=#{periodType,jdbcType=CHAR} + where ID = #{id,jdbcType=INTEGER} + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigSchemeService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigSchemeService.java new file mode 100644 index 0000000..c62ba9e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigSchemeService.java @@ -0,0 +1,19 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; + +public interface ModelConfigSchemeService { + //根据名称查询方案 + IPage listModelConfigScheme(String name, String stationId, IPage page); + //新增方案 返回方案id + int addModelConfigScheme(ModelConfigScheme scheme); + //修改方案 + int updateModelConfigScheme(ModelConfigScheme scheme, String stationId); + //修改方案的默认状态 + int updateSchemeDefault(ModelConfigScheme scheme); + //删除方案 + int deleteScheme(Integer schemeId, String userId); + + Integer getSchemeDefault(String stationId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigService.java new file mode 100644 index 0000000..923fb64 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelConfigService.java @@ -0,0 +1,34 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; + +import java.util.List; +import java.util.Map; + +public interface ModelConfigService { + /** + * 获取模型配置列表 + * + * @param code 模型编码 + * @param refModule 所属大类 + * @param + * @return + */ + IPage listModelConfigPage(String code, Integer schemeId, String refModule, IPage page); + +// Boolean duplicateModelConfig(String code, String modelIds); + + int createModelConfig(ModelConfig modelConfig); + + Boolean editModelConfig(ModelConfig modelConfig); + + Boolean delModelConfig(Integer id); + + Boolean del(Integer id); + + int batchInsert(List modelConfigs); + + List listModelConfig(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelFixedValueService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelFixedValueService.java new file mode 100644 index 0000000..24aeda6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelFixedValueService.java @@ -0,0 +1,18 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; +import org.springblade.general_dispatching.model_config.vo.ModelFixedValueVo; +import org.apache.ibatis.annotations.Param; + +public interface ModelFixedValueService { + IPage listModelFixedValue(String name, String plantType, IPage page); + + int addModelFixedValue(ModelFixedValue modelFixedValue); + + int updateFixedValue(ModelFixedValue modelFixedValue); + + int deleteFixedValue(Integer id); + + ModelFixedValue selectByCode(@Param("code") String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupConfigService.java new file mode 100644 index 0000000..13dabd9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupConfigService.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; + +public interface ModelGroupConfigService { + + IPage listModelGroupConfig(String name, Integer schemeId, String refModule, IPage page); + + int addModelGroupConfig(ModelGroupConfig modelGroupConfig); + + boolean updateModelGroupConfig(ModelGroupConfig modelGroupConfig); + + boolean deleteModelGroupConfig(Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupItemConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupItemConfigService.java new file mode 100644 index 0000000..0f14fa1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelGroupItemConfigService.java @@ -0,0 +1,20 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; + +import java.util.List; + +public interface ModelGroupItemConfigService { + IPage listModelGroupItemConfig(String groupName, Integer groupId, String code, IPage page); + + int addModelGroupItemConfig(ModelGroupItemConfig modelGroupItemConfig); + + boolean updateModelGroupItemConfig(ModelGroupItemConfig modelGroupItemConfig); + + boolean delModelGroupItemConfig(Integer id); + + List selectByModel(String groupName, Integer groupId, + String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelParamConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelParamConfigService.java new file mode 100644 index 0000000..ecdc0da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/ModelParamConfigService.java @@ -0,0 +1,17 @@ +package org.springblade.general_dispatching.model_config.servcie; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; + +import java.util.List; +import java.util.Map; + +public interface ModelParamConfigService { + IPage listModelParamConfig(Integer modelConfigId, Integer isGroup, IPage page); + List listModelParamConfig(Map param); + + int addModelParamConfig(ModelParamConfig modelParamConfig); + boolean updateModelParamConfig(ModelParamConfig modelParamConfig); + boolean delModelParamConfig(Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigSchemeServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigSchemeServiceImpl.java new file mode 100644 index 0000000..009dfe1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigSchemeServiceImpl.java @@ -0,0 +1,114 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelConfigSchemeMapper; +import org.springblade.general_dispatching.model_config.entity.IsDefaultSchemeEnum; +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigSchemeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class ModelConfigSchemeServiceImpl implements ModelConfigSchemeService { + @Resource + private ModelConfigSchemeMapper modelConfigSchemeMapper; + + @Override + public IPage listModelConfigScheme(String name, String stationId, IPage page) { + + Map param=new HashMap(); + if(name!=null && !"".equals(name)){ + name = "%"+name+"%"; + param.put("name",name); + } + + List modelIds=new ArrayList<>(); + + if(stationId!=null && stationId.indexOf(",")>-1) { + String[] stationIds= stationId.split(","); + + for(String id:stationIds){ + modelIds.add("%station_" + id + "%"); + } + param.put("modelIds",modelIds); + }else if(stationId!=null){ + String modelId = "%station_"+stationId+"%"; + param.put("modelId",modelId); + } + + return modelConfigSchemeMapper.selectScheme(param,page); + } + + @Transactional + @Override + public int addModelConfigScheme(ModelConfigScheme scheme) { + scheme.setIsDefault(IsDefaultSchemeEnum.NO_DEFAULT.getCode()); + String modelIds=scheme.getModelIds(); + String[] modelIdsArr=modelIds.split(","); + String tmpModelIds=""; + for(String str:modelIdsArr){ + if(str.indexOf("station_") < 0){ + str = "station_"+str; + } + if("".equals(tmpModelIds)){ + tmpModelIds=str; + }else{ + tmpModelIds+=","+str; + } + } + scheme.setModelIds(tmpModelIds); + modelConfigSchemeMapper.insert(scheme); + return scheme.getId(); + } + + @Override + @Transactional + public int updateModelConfigScheme(ModelConfigScheme scheme,String stationId) { + return modelConfigSchemeMapper.updateByPrimaryKey(scheme); + } + + @Override + @Transactional + public int updateSchemeDefault(ModelConfigScheme scheme) { + return modelConfigSchemeMapper.updateByPrimaryKeySelective(scheme); + } + + @Override + @Transactional + public int deleteScheme(Integer schemeId,String userId) { + ModelConfigScheme scheme=new ModelConfigScheme(); + scheme.setId(schemeId); + scheme.setDeleted(IsDeleteEnum.YES_DELETE.getCode()); + scheme.setLastUpdater(userId); + scheme.setLastUpdateTime(new Date()); + return modelConfigSchemeMapper.updateByPrimaryKeySelective(scheme); + } + + @Override + public Integer getSchemeDefault(String stationId) { + Map param=new HashMap<>(); + if(stationId.indexOf(",")>-1) { + String[] stationIds= stationId.split(","); + List modelIds=new ArrayList<>(); + for(String id:stationIds){ + modelIds.add("%station_" + id + "%"); + } + param.put("modelIds", modelIds); + }else{ + param.put("modelId", "%station_" + stationId + "%"); + } + param.put("isDefault",IsDefaultSchemeEnum.YES_DEFAULT.getCode()); + List list=modelConfigSchemeMapper.selectSchemeByParam(param); + if(list!=null && !list.isEmpty()){ + return list.get(0).getId(); + } + return null; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigServiceImpl.java new file mode 100644 index 0000000..6530195 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelConfigServiceImpl.java @@ -0,0 +1,77 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelConfigMapper; +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo;; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelConfigServiceImpl implements ModelConfigService { + @Resource + private ModelConfigMapper mcm; + + @Override + public IPage listModelConfigPage(String code, Integer schemeId, String refModule, IPage page) { + Map param=new HashMap<>(); + if(code!=null && !"".equals(code)){ + param.put("code",code); + } + if(schemeId!=null && !"".equals(schemeId)){ + param.put("schemeId",schemeId); + } + if(refModule!=null && !"".equals(refModule)){ + param.put("refModule",refModule); + } + return mcm.selectByModel(param,page); + } + +// @Override +// public Boolean duplicateModelConfig(String code, String modelIds) { +// Integer cnt = mcm.selectByCodeAndModelIds(code,modelIds); +// return cnt == 0; +// } + + @Override + public int createModelConfig(ModelConfig modelConfig) { + mcm.insert(modelConfig); + return modelConfig.getId(); + } + + @Override + public Boolean editModelConfig(ModelConfig modelConfig) { + return mcm.updateByPrimaryKeySelective(modelConfig)>0; + } + + @Override + public Boolean delModelConfig(Integer id) { + int cnt = mcm.deleteByPrimaryKey(id); + return cnt > 0; + } + + @Override + public Boolean del(Integer id) { + ModelConfig config=new ModelConfig(); + config.setId(id); + config.setDeleted(IsDeleteEnum.YES_DELETE.getCode()); + return editModelConfig(config); + } + + @Override + public int batchInsert(List modelConfigs) { + return mcm.batchInsert(modelConfigs); + } + + @Override + public List listModelConfig(Map param) { + return mcm.selectByModel(param); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelFixedValueServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelFixedValueServiceImpl.java new file mode 100644 index 0000000..9b7212d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelFixedValueServiceImpl.java @@ -0,0 +1,52 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelFixedValueMapper; +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; +import org.springblade.general_dispatching.model_config.servcie.ModelFixedValueService; +import org.springblade.general_dispatching.model_config.vo.ModelFixedValueVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +public class ModelFixedValueServiceImpl implements ModelFixedValueService { + @Resource + ModelFixedValueMapper modelFixedValueMapper; + + @Override + public IPage listModelFixedValue(String name, String plantType, IPage page) { + if(name!=null && !"".equals(name)){ + name = "%"+name+"%"; + } + return modelFixedValueMapper.listModelFixedValue(name, plantType,page); + } + + @Override + @Transactional + public int addModelFixedValue(ModelFixedValue modelFixedValue) { + modelFixedValueMapper.insert(modelFixedValue); + return modelFixedValue.getId(); + } + + @Override + @Transactional + public int updateFixedValue(ModelFixedValue modelFixedValue) { + return modelFixedValueMapper.updateByPrimaryKeySelective(modelFixedValue); + } + + @Override + @Transactional + public int deleteFixedValue(Integer id) { + return modelFixedValueMapper.deleteByPrimaryKey(id); + } + + @Override + public ModelFixedValue selectByCode(String code) { + return modelFixedValueMapper.selectByCode(code); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupConfigServiceImpl.java new file mode 100644 index 0000000..8b6fea0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupConfigServiceImpl.java @@ -0,0 +1,108 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupConfigMapper; +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.manager.ModelConfigManager; +import org.springblade.general_dispatching.model_config.manager.ModelGroupItemConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelGroupConfigServiceImpl implements ModelGroupConfigService { + @Resource + ModelGroupConfigMapper modelGroupConfigMapper; + + @Autowired + ModelConfigManager modelConfigManager; + + @Autowired + ModelGroupItemConfigManager modelGroupItemConfigManager; + + @Override + public IPage listModelGroupConfig(String name, Integer schemeId, String refModule, IPage page) { + Map param=new HashMap<>(); + if(name!=null && !"".equals(name)){ + name = "%"+name+"%"; + param.put("name",name); + } + + if(schemeId!=null && !"".equals(schemeId)){ + param.put("schemeId",schemeId); + } + + if(refModule!=null && !"".equals(refModule)){ + param.put("refModule",refModule); + } + return modelGroupConfigMapper.selectByModel(param,page); + } + + @Override + public int addModelGroupConfig(ModelGroupConfig modelGroupConfig) { + modelGroupConfigMapper.insert(modelGroupConfig); + Integer groupId=modelGroupConfig.getId(); + if(groupId > 0) { + addNewGroupItem(modelGroupConfig); + } + return groupId; + } + + @Override + public boolean updateModelGroupConfig(ModelGroupConfig modelGroupConfig) { + int count=modelGroupConfigMapper.updateByPrimaryKeySelective(modelGroupConfig); + addNewGroupItem(modelGroupConfig); + return count>0; + } + + //合并单个已配置好的 配置项id + private void addNewGroupItem(ModelGroupConfig modelGroupConfig){ + List configIds=modelGroupConfig.getModelConfigIds(); + if(configIds!=null && !configIds.isEmpty()){ + //查询list信息 + Map> result=modelConfigManager.getConfigParamByIds(configIds); + for(int i=0,len=configIds.size();i data=result.get(configId); + + if(data.get("config")!=null) { + ModelConfigVo modelConfigVo=(ModelConfigVo)data.get("config"); + List modelParamConfigs=(List)data.get("configParam"); + //插入组项 //插入参数配置 + ModelGroupItemConfig modelGroupItemConfig=toModelGroupItemConfig(modelConfigVo,modelGroupConfig.getId(),i); + modelGroupItemConfigManager.addGroupItemAndParam(modelGroupItemConfig,modelParamConfigs); + } + } + } + } + + private ModelGroupItemConfig toModelGroupItemConfig(ModelConfigVo vo,Integer groupId,int pno){ + ModelGroupItemConfig modelGroupItemConfig=new ModelGroupItemConfig(); + modelGroupItemConfig.setGroupId(groupId); + modelGroupItemConfig.setStatus(vo.getStatus()); + modelGroupItemConfig.setCode(vo.getCode()); + modelGroupItemConfig.setIsCreateTask(vo.getIsCreateTask()); + modelGroupItemConfig.setPno(pno+1); + return modelGroupItemConfig; + } + + + @Override + public boolean deleteModelGroupConfig(Integer id) { + ModelGroupConfig modelGroupConfig=new ModelGroupConfig(); + modelGroupConfig.setId(id); + modelGroupConfig.setDeleted(IsDeleteEnum.YES_DELETE.getCode()); + int count=modelGroupConfigMapper.updateByPrimaryKeySelective(modelGroupConfig); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupItemConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupItemConfigServiceImpl.java new file mode 100644 index 0000000..8d7a921 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelGroupItemConfigServiceImpl.java @@ -0,0 +1,76 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelGroupItemConfigMapper; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupItemConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelGroupItemConfigServiceImpl implements ModelGroupItemConfigService { + @Resource + ModelGroupItemConfigMapper modelGroupItemConfigMapper; + + @Override + public IPage listModelGroupItemConfig(String groupName, Integer groupId, String code, IPage page) { + Map param=new HashMap<>(); + if(groupName!=null && !"".equals(groupName)){ + groupName = "%"+groupName+"%"; + param.put("groupName",groupName); + } + + if(groupId!=null && !"".equals(groupId)){ + param.put("groupId",groupId); + } + + if(code!=null && !"".equals(code)){ + param.put("code",code); + } + return modelGroupItemConfigMapper.selectByModel(param,page); + } + + @Override + public int addModelGroupItemConfig(ModelGroupItemConfig modelGroupItemConfig) { + modelGroupItemConfigMapper.insert(modelGroupItemConfig); + return modelGroupItemConfig.getId(); + } + + @Override + public boolean updateModelGroupItemConfig(ModelGroupItemConfig modelGroupItemConfig) { + int count=modelGroupItemConfigMapper.updateByPrimaryKeySelective(modelGroupItemConfig); + return count>0; + } + + @Override + public boolean delModelGroupItemConfig(Integer id) { + int count=modelGroupItemConfigMapper.deleteByPrimaryKey(id); + return count>0; + } + + @Override + public List selectByModel(String groupName, Integer groupId, String code) { + Map param=new HashMap<>(); + if(groupName!=null && !"".equals(groupName)){ + groupName = "%"+groupName+"%"; + param.put("groupName",groupName); + } + + if(groupId!=null && !"".equals(groupId)){ + param.put("groupId",groupId); + } + + if(code!=null && !"".equals(code)){ + param.put("code",code); + } + return modelGroupItemConfigMapper.selectByModel(param); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelParamConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelParamConfigServiceImpl.java new file mode 100644 index 0000000..b3c332c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/servcie/impl/ModelParamConfigServiceImpl.java @@ -0,0 +1,57 @@ +package org.springblade.general_dispatching.model_config.servcie.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_config.mapper.ModelParamConfigMapper; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.servcie.ModelParamConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelParamConfigServiceImpl implements ModelParamConfigService { + @Resource + ModelParamConfigMapper modelParamConfigMapper; + + @Override + public IPage listModelParamConfig(Integer modelConfigId, Integer isGroup, IPage page) { + Map param=new HashMap<>(); + if(modelConfigId!=null){ + param.put("modelConfigId",modelConfigId); + } + if(isGroup!=null){ + param.put("isGroup",isGroup); + } + + return modelParamConfigMapper.selectByModel(param,page); + } + + @Override + public List listModelParamConfig(Map param) { + return modelParamConfigMapper.selectByModel(param); + } + + @Override + public int addModelParamConfig(ModelParamConfig modelParamConfig) { + modelParamConfigMapper.insert(modelParamConfig); + return modelParamConfig.getId(); + } + + @Override + public boolean updateModelParamConfig(ModelParamConfig modelParamConfig) { + int count=modelParamConfigMapper.updateByPrimaryKeySelective(modelParamConfig); + return count>0; + } + + @Override + public boolean delModelParamConfig(Integer id) { + int count=modelParamConfigMapper.deleteByPrimaryKey(id); + return count>0; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigAddVo.java new file mode 100644 index 0000000..b1a3cb4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigAddVo.java @@ -0,0 +1,180 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@ApiModel("模型配置增加处理对象") +public class ModelConfigAddVo{ + @ApiModelProperty( value = "模型配置", notes = "模型配置", dataType = "ModelConfig") + private ModelConfig modelConfig; + @ApiModelProperty( value = "模型参数集合", notes = "模型参数集合", dataType = "List") + private List params; + + public ModelConfig getModelConfig() { + return modelConfig; + } + + public void setModelConfig(ModelConfig modelConfig) { + this.modelConfig = modelConfig; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } + + + public static ModelConfig toModelConfig(Map map){ + ModelConfig modelConfig=new ModelConfig(); + if(map.get("id")!=null) { + modelConfig.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + + if(map.get("schemeId")!=null) { + modelConfig.setSchemeId(Integer.valueOf(String.valueOf(map.get("schemeId")))); + } + if(map.get("code")!=null) { + modelConfig.setCode(String.valueOf(map.get("code"))); + } + if(map.get("refModule")!=null) { + modelConfig.setRefModule(String.valueOf(map.get("refModule"))); + } + if(map.get("typeCode")!=null) { + modelConfig.setTypeCode(String.valueOf(map.get("typeCode"))); + } + if(map.get("applyPeriod")!=null) { + modelConfig.setApplyPeriod(String.valueOf(map.get("applyPeriod"))); + } + if(map.get("status")!=null) { + modelConfig.setStatus(String.valueOf(map.get("status"))); + }else{ + modelConfig.setStatus(ModelConfigStatusEnum.NO_CONFIG.getCode()); + } + if(map.get("isCreateTask")!=null) { + modelConfig.setIsCreateTask(Integer.valueOf(String.valueOf(map.get("isCreateTask")))); + } + + if(map.get("runType")!=null) { + modelConfig.setRunType(String.valueOf(map.get("runType"))); + }else{ + modelConfig.setRunType("01");//用户级 + } + + if(map.get("runPeriod")!=null) { + modelConfig.setRunPeriod(String.valueOf(map.get("runPeriod"))); + } + if(map.get("periodType")!=null) { + modelConfig.setPeriodType(String.valueOf(map.get("periodType"))); + } + if(map.get("remark")!=null) { + modelConfig.setRemark(String.valueOf(map.get("remark"))); + } + modelConfig.setDeleted(IsDeleteEnum.NO_DELETE.getCode()); + return modelConfig; + } + + public static ModelParamConfig toModelParamConfig(Map param){ + ModelParamConfig modelParamConfig =new ModelParamConfig(); + if(param.get("id")!=null) { + modelParamConfig.setId(Integer.valueOf(String.valueOf(param.get("id")))); + } + if(param.get("modelParamId")!=null) { + modelParamConfig.setModelParamId(Integer.valueOf(param.get("modelParamId").toString())); + } + if(param.get("modelConfigId")!=null) { + modelParamConfig.setModelConfigId(Integer.valueOf(param.get("modelConfigId").toString())); + } + if(param.get("typeCode")!=null) { + modelParamConfig.setTypeCode(param.get("typeCode").toString()); + } + if(param.get("value")!=null) { + modelParamConfig.setValue(param.get("value").toString()); + } + if(param.get("verification")!=null) { + modelParamConfig.setVerification(param.get("verification").toString()); + } + if(param.get("controlType")!=null) { + modelParamConfig.setControlType(param.get("controlType").toString()); + } + if(param.get("unit")!=null) { + modelParamConfig.setUnit(param.get("unit").toString()); + } + if(param.get("isShow")!=null) { + modelParamConfig.setIsShow(Boolean.valueOf(param.get("isShow").toString())); + } + if(param.get("dtPeriod")!=null) { + modelParamConfig.setDtPeriod(param.get("dtPeriod").toString()); + } + if(param.get("periodType")!=null) { + modelParamConfig.setPeriodType(param.get("periodType").toString()); + } + + if(param.get("isGroup")!=null) { + modelParamConfig.setIsGroup(Integer.valueOf(param.get("isGroup").toString())); + } + return modelParamConfig; + } + + public static ModelFixedValue toModelFixedValue(Map param){ + ModelFixedValue modelFixedValue =new ModelFixedValue(); + if(param.get("id")!=null) { + modelFixedValue.setId(Integer.valueOf(String.valueOf(param.get("id")))); + } + if(param.get("plantType")!=null) { + modelFixedValue.setPlantType(param.get("plantType").toString()); + } + if(param.get("schemeId")!=null) { + modelFixedValue.setSchemeId(Integer.valueOf(String.valueOf(param.get("schemeId")))); + } + if(param.get("code")!=null) { + modelFixedValue.setCode(param.get("code").toString()); + } + if(param.get("name")!=null) { + modelFixedValue.setName(param.get("name").toString()); + } + if(param.get("remark")!=null) { + modelFixedValue.setRemark(param.get("remark").toString()); + } + if(param.get("typeCode")!=null) { + modelFixedValue.setTypeCode(param.get("typeCode").toString()); + } + if(param.get("value")!=null) { + modelFixedValue.setValue(param.get("value").toString()); + } + + return modelFixedValue; + } + + public static ModelConfigAddVo toModelConfigAddVo(Map data){ + if(data.get("modelConfig")==null){ + return null; + } + Map map=(Map)data.get("modelConfig"); + + ModelConfigAddVo modelConfigAddVo=new ModelConfigAddVo(); + ModelConfig modelConfig=toModelConfig(map); + modelConfigAddVo.setModelConfig(modelConfig); + + if(data.get("params")==null){ + return null; + } + + List> mapParams=(List>)data.get("params"); + List modelParamConfigs=new ArrayList<>(); + for(Map param:mapParams){ + ModelParamConfig modelParamConfig=toModelParamConfig(param); + modelParamConfigs.add(modelParamConfig); + } + + modelConfigAddVo.setParams(modelParamConfigs); + return modelConfigAddVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigBo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigBo.java new file mode 100644 index 0000000..24a810b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigBo.java @@ -0,0 +1,27 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; + +import java.util.List; + +public class ModelConfigBo { + private ModelConfig modelConfig; + private List params; + + public ModelConfig getModelConfig() { + return modelConfig; + } + + public void setModelConfigVo(ModelConfig modelConfig) { + this.modelConfig = modelConfig; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigSchemeAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigSchemeAddVo.java new file mode 100644 index 0000000..025c452 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigSchemeAddVo.java @@ -0,0 +1,85 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; + +import java.util.List; +import java.util.Map; + +public class ModelConfigSchemeAddVo { + ModelConfigScheme modelConfigScheme; + + List modelConfigIds; + + List modelGroupConfigIds; + + public ModelConfigScheme getModelConfigScheme() { + return modelConfigScheme; + } + + public void setModelConfigScheme(ModelConfigScheme modelConfigScheme) { + this.modelConfigScheme = modelConfigScheme; + } + + public List getModelConfigIds() { + return modelConfigIds; + } + + public void setModelConfigIds(List modelConfigIds) { + this.modelConfigIds = modelConfigIds; + } + + public List getModelGroupConfigIds() { + return modelGroupConfigIds; + } + + public void setModelGroupConfigIds(List modelGroupConfigIds) { + this.modelGroupConfigIds = modelGroupConfigIds; + } + + public static ModelConfigScheme toModelConfigScheme(Map map){ + ModelConfigScheme scheme=new ModelConfigScheme(); + if(map.get("id")!=null) { + scheme.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + if(map.get("name")!=null) { + scheme.setName(String.valueOf(map.get("name"))); + } + if(map.get("isDefault")!=null && !"".equals(map.get("isDefault"))) { + scheme.setIsDefault(Integer.valueOf(String.valueOf(map.get("isDefault")))); + }else{ + scheme.setIsDefault(0); + } + if(map.get("modelIds")!=null) { + scheme.setModelIds(String.valueOf(map.get("modelIds"))); + } + if(map.get("modelNames")!=null) { + scheme.setModelNames(String.valueOf(map.get("modelNames"))); + } + if(map.get("remark")!=null) { + scheme.setRemark(String.valueOf(map.get("remark"))); + } + scheme.setDeleted(IsDeleteEnum.NO_DELETE.getCode()); + return scheme; + } + + public static ModelConfigSchemeAddVo toModelConfigSchemeAddVo(Map data) { + if (data.get("modelConfigScheme") == null) { + return null; + } + + Map map=(Map)data.get("modelConfigScheme"); + + if(data.get("modelConfigIds")==null || data.get("modelGroupConfigIds")==null){ + return null; + } + List modelConfigIds=(List)data.get("modelConfigIds"); + List modelGroupConfigIds=(List)data.get("modelGroupConfigIds"); + + ModelConfigSchemeAddVo modelConfigSchemeAddVo=new ModelConfigSchemeAddVo(); + modelConfigSchemeAddVo.setModelConfigScheme(toModelConfigScheme(map)); + modelConfigSchemeAddVo.setModelConfigIds(modelConfigIds); + modelConfigSchemeAddVo.setModelGroupConfigIds(modelGroupConfigIds); + return modelConfigSchemeAddVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigVo.java new file mode 100644 index 0000000..345a7c9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelConfigVo.java @@ -0,0 +1,108 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("模型配置显示层对象") +public class ModelConfigVo extends ModelConfig{ + @ApiModelProperty( value = "模型名称", notes = "模型名称", dataType = "String") + private String modelName; + @ApiModelProperty( value = "应用类型名称", notes = "(电站,机组,水库,闸门)", dataType = "String") + private String modelTypeName; + @ApiModelProperty( value = "所属模块名称", notes = "所属模块名称", dataType = "String") + private String refModuleName; + @ApiModelProperty( value = "运行方式名称", notes = "(01:用户,02:系统)", dataType = "String") + private String runTypeName; + @ApiModelProperty( value = "周期类型名称", notes = "(D,H,M,S)", dataType = "String") + private String periodTypeName; + @ApiModelProperty( value = "梯级,单库", notes = "梯级,单库", dataType = "String") + private String typeCodeName; + @ApiModelProperty( value = "0未配置,1已配置", notes = "0未配置,1已配置", dataType = "String") + private String statusName; + @ApiModelProperty( value = "是否生成任务", notes = "是否生成任务", dataType = "String") + private String isCreateTaskName; + @ApiModelProperty( value = "方案名称", notes = "方案名称", dataType = "String") + private String schemeName; + private String applyPeriodName; + + public String getApplyPeriodName() { + return applyPeriodName; + } + + public void setApplyPeriodName(String applyPeriodName) { + this.applyPeriodName = applyPeriodName; + } + + public String getSchemeName() { + return schemeName; + } + + public void setSchemeName(String schemeName) { + this.schemeName = schemeName; + } + + public String getTypeCodeName() { + return typeCodeName; + } + + public void setTypeCodeName(String typeCodeName) { + this.typeCodeName = typeCodeName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getIsCreateTaskName() { + return isCreateTaskName; + } + + public void setIsCreateTaskName(String isCreateTaskName) { + this.isCreateTaskName = isCreateTaskName; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getRefModuleName() { + return refModuleName; + } + + public void setRefModuleName(String refModuleName) { + this.refModuleName = refModuleName; + } + + public String getModelTypeName() { + return modelTypeName; + } + + public void setModelTypeName(String modelTypeName) { + this.modelTypeName = modelTypeName; + } + + public String getRunTypeName() { + return runTypeName; + } + + public void setRunTypeName(String runTypeName) { + this.runTypeName = runTypeName; + } + + public String getPeriodTypeName() { + return periodTypeName; + } + + public void setPeriodTypeName(String periodTypeName) { + this.periodTypeName = periodTypeName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelFixedValueVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelFixedValueVo.java new file mode 100644 index 0000000..0a3c804 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelFixedValueVo.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; + +public class ModelFixedValueVo extends ModelFixedValue { + private String schemeName; + private String plantTypeName; + + public String getSchemeName() { + return schemeName; + } + + public void setSchemeName(String schemeName) { + this.schemeName = schemeName; + } + + public String getPlantTypeName() { + return plantTypeName; + } + + public void setPlantTypeName(String plantTypeName) { + this.plantTypeName = plantTypeName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigAddVo.java new file mode 100644 index 0000000..fba348f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigAddVo.java @@ -0,0 +1,118 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ConfigRunTypeEnum; +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class ModelGroupConfigAddVo { + ModelGroupConfig modelGroupConfig; + List groupItemIds; + List modelGroupItemConfigs; + + public List getModelGroupItemConfigs() { + return modelGroupItemConfigs; + } + + public void setModelGroupItemConfigs(List modelGroupItemConfigs) { + this.modelGroupItemConfigs = modelGroupItemConfigs; + } + + public ModelGroupConfig getModelGroupConfig() { + return modelGroupConfig; + } + + public void setModelGroupConfig(ModelGroupConfig modelGroupConfig) { + this.modelGroupConfig = modelGroupConfig; + } + + public List getGroupItemIds() { + return groupItemIds; + } + + public void setGroupItemIds(List groupItemIds) { + this.groupItemIds = groupItemIds; + } + + public static ModelGroupConfig toModelGroupConfig(Map map){ + ModelGroupConfig modelGroupConfig=new ModelGroupConfig(); + if(map.get("id")!=null&& !"".equals(map.get("id"))) { + modelGroupConfig.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + + if(map.get("schemeId")!=null && !"".equals(map.get("schemeId"))) { + modelGroupConfig.setSchemeId(Integer.valueOf(String.valueOf(map.get("schemeId")))); + } + + if(map.get("name")!=null) { + modelGroupConfig.setName(String.valueOf(map.get("name"))); + } + if(map.get("refModule")!=null) { + modelGroupConfig.setRefModule(String.valueOf(map.get("refModule"))); + } + if(map.get("typeCode")!=null) { + modelGroupConfig.setTypeCode(String.valueOf(map.get("typeCode"))); + } + if(map.get("applyPeriod")!=null) { + modelGroupConfig.setApplyPeriod(String.valueOf(map.get("applyPeriod"))); + } + + if(map.get("runType")!=null) { + modelGroupConfig.setRunType(String.valueOf(map.get("runType"))); + }else{ + modelGroupConfig.setRunType(ConfigRunTypeEnum.USER.getCode());//用户级 + } + + if(map.get("runPeriod")!=null) { + modelGroupConfig.setRunPeriod(String.valueOf(map.get("runPeriod"))); + } + if(map.get("periodType")!=null) { + modelGroupConfig.setPeriodType(String.valueOf(map.get("periodType"))); + } + if(map.get("remark")!=null) { + modelGroupConfig.setRemark(String.valueOf(map.get("remark"))); + } + + if(map.get("modelConfigIds")!=null) { + String configId=String.valueOf(map.get("modelConfigIds")); + if(!"".equals(configId)) { + String[] configIdStr = configId.split(","); + List configIds = Stream.of(configIdStr).map(Integer::parseInt).collect(Collectors.toList()); + modelGroupConfig.setModelConfigIds(configIds); + } + } + modelGroupConfig.setDeleted(IsDeleteEnum.NO_DELETE.getCode()); + return modelGroupConfig; + } + + public static ModelGroupConfigAddVo toModelGroupConfigAddVo(Map data) { + if (data.get("modelGroupConfig") == null) { + return null; + } + + Map map=(Map)data.get("modelGroupConfig"); + ModelGroupConfig modelGroupConfig=toModelGroupConfig(map); + + if(data.get("groupItems")==null){ + return null; + } + + List groupItems=new ArrayList<>(); + List> list=(List< Map>)data.get("groupItems"); + for(Map tmp:list) { + ModelGroupItemConfig itemConfig=ModelGroupItemConfigAddVo.toModelGroupItemConfig(tmp); + groupItems.add(itemConfig); + } + + ModelGroupConfigAddVo modelGroupConfigAddVo=new ModelGroupConfigAddVo(); + modelGroupConfigAddVo.setModelGroupConfig(modelGroupConfig); + modelGroupConfigAddVo.setModelGroupItemConfigs(groupItems); + return modelGroupConfigAddVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigVo.java new file mode 100644 index 0000000..77e9cdf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupConfigVo.java @@ -0,0 +1,77 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import io.swagger.annotations.ApiModelProperty; + +public class ModelGroupConfigVo extends ModelGroupConfig { + @ApiModelProperty( value = "所属模块名称", notes = "所属模块名称", dataType = "String") + private String refModuleName; + @ApiModelProperty( value = "运行方式名称", notes = "(01:用户,02:系统)", dataType = "String") + private String runTypeName; + @ApiModelProperty( value = "周期类型名称", notes = "(D,H,M,S)", dataType = "String") + private String periodTypeName; + @ApiModelProperty( value = "梯级,单库", notes = "梯级,单库", dataType = "String") + private String typeCodeName; + @ApiModelProperty( value = "方案名称", notes = "方案名称", dataType = "String") + private String schemeName; + @ApiModelProperty( value = "方案名称", notes = "方案名称", dataType = "String") + private String applyPeriodName; + private String status; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getApplyPeriodName() { + return applyPeriodName; + } + + public void setApplyPeriodName(String applyPeriodName) { + this.applyPeriodName = applyPeriodName; + } + + public String getSchemeName() { + return schemeName; + } + + public void setSchemeName(String schemeName) { + this.schemeName = schemeName; + } + + public String getRefModuleName() { + return refModuleName; + } + + public void setRefModuleName(String refModuleName) { + this.refModuleName = refModuleName; + } + + public String getRunTypeName() { + return runTypeName; + } + + public void setRunTypeName(String runTypeName) { + this.runTypeName = runTypeName; + } + + public String getPeriodTypeName() { + return periodTypeName; + } + + public void setPeriodTypeName(String periodTypeName) { + this.periodTypeName = periodTypeName; + } + + public String getTypeCodeName() { + return typeCodeName; + } + + public void setTypeCodeName(String typeCodeName) { + this.typeCodeName = typeCodeName; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigAddVo.java new file mode 100644 index 0000000..a5ff457 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigAddVo.java @@ -0,0 +1,90 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.IsCreateTaskEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfigStatusEnum; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import io.swagger.annotations.ApiModelProperty; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class ModelGroupItemConfigAddVo { + private ModelGroupItemConfig modelGroupItemConfig; + @ApiModelProperty( value = "模型参数集合", notes = "模型参数集合", dataType = "List") + private List params; + + public ModelGroupItemConfig getModelGroupItemConfig() { + return modelGroupItemConfig; + } + + public void setModelGroupItemConfig(ModelGroupItemConfig modelGroupItemConfig) { + this.modelGroupItemConfig = modelGroupItemConfig; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } + + public static ModelGroupItemConfig toModelGroupItemConfig(Map map){ + ModelGroupItemConfig modelGroupItemConfig=new ModelGroupItemConfig(); + if(map.get("id")!=null) { + modelGroupItemConfig.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + if(map.get("pno")!=null) { + modelGroupItemConfig.setPno(Integer.valueOf(String.valueOf(map.get("pno")))); + } + if(map.get("status")!=null) { + modelGroupItemConfig.setStatus(String.valueOf(map.get("status"))); + }else{ + modelGroupItemConfig.setStatus(ModelConfigStatusEnum.NO_CONFIG.getCode()); + } + + if(map.get("groupId")!=null) { + modelGroupItemConfig.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId")))); + } + + if(map.get("code")!=null) { + modelGroupItemConfig.setCode(String.valueOf(map.get("code"))); + } + + if(map.get("isCreateTask")!=null) { + modelGroupItemConfig.setIsCreateTask(Integer.valueOf(String.valueOf(map.get("isCreateTask")))); + }else{ + modelGroupItemConfig.setIsCreateTask(IsCreateTaskEnum.NO_CREATE.getCode()); + } + + return modelGroupItemConfig; + } + + public static ModelGroupItemConfigAddVo toModelGroupItemConfigAddVo(Map data) { + if (data.get("modelGroupItemConfig") == null) { + return null; + } + Map map=(Map)data.get("modelGroupConfig"); + ModelGroupItemConfig modelGroupItemConfig=toModelGroupItemConfig(map); + + if(data.get("params")==null){ + return null; + } + + List> tmpParams=(List>)data.get("params"); + List params=new ArrayList<>(); + for(Map param:tmpParams){ + ModelParamConfig modelParamConfig=ModelConfigAddVo.toModelParamConfig(param); + params.add(modelParamConfig); + } + + ModelGroupItemConfigAddVo modelGroupItemConfigAddVo =new ModelGroupItemConfigAddVo(); + modelGroupItemConfigAddVo.setModelGroupItemConfig(modelGroupItemConfig); + modelGroupItemConfigAddVo.setParams(params); + + return modelGroupItemConfigAddVo; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigVo.java new file mode 100644 index 0000000..43c7a10 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelGroupItemConfigVo.java @@ -0,0 +1,47 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import io.swagger.annotations.ApiModelProperty; + +public class ModelGroupItemConfigVo extends ModelGroupItemConfig { + @ApiModelProperty( value = "模型组名", notes = "模型组名", dataType = "Integer") + private String groupName; + @ApiModelProperty( value = "模型名称", notes = "模型名称", dataType = "String") + private String modelName; + @ApiModelProperty( value = "状态名", notes = "状态名", dataType = "String") + private String statusName; + @ApiModelProperty( value = "是否生成任务", notes = "是否生成任务", dataType = "String") + private String isCreateTaskName; + + public String getIsCreateTaskName() { + return isCreateTaskName; + } + + public void setIsCreateTaskName(String isCreateTaskName) { + this.isCreateTaskName = isCreateTaskName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamConfigVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamConfigVo.java new file mode 100644 index 0000000..1460714 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamConfigVo.java @@ -0,0 +1,97 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import io.swagger.annotations.ApiModelProperty; + +public class ModelParamConfigVo extends ModelParamConfig { + @ApiModelProperty( value = "模型编码", notes = "模型编码", dataType = "String") + private String mCode; + @ApiModelProperty( value = "序号", notes = "序号", dataType = "Integer") + private Integer pno; + @ApiModelProperty( value = "参数名称", notes = "参数名称", dataType = "String") + private String name; + @ApiModelProperty( value = "参数编码", notes = "参数编码", dataType = "String") + private String code; + @ApiModelProperty( value = "数值类型", notes = "数值类型", dataType = "String") + private String fieldType; + @ApiModelProperty( value = "数值名称", notes = "数值名称", dataType = "String") + private String fieldTypeName; + @ApiModelProperty( value = "控件名称", notes = "控件名称", dataType = "String") + private String controlTypeName; + @ApiModelProperty( value = "类型名称", notes = "类型名称", dataType = "String") + private String typeCodeName; + @ApiModelProperty( value = "周期类型名称", notes = "周期类型名称", dataType = "String") + private String periodTypeName; + + public String getMCode() { + return mCode; + } + + public void setMCode(String mCode) { + this.mCode = mCode; + } + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getFieldType() { + return fieldType; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + public String getFieldTypeName() { + return fieldTypeName; + } + + public void setFieldTypeName(String fieldTypeName) { + this.fieldTypeName = fieldTypeName; + } + + public String getControlTypeName() { + return controlTypeName; + } + + public void setControlTypeName(String controlTypeName) { + this.controlTypeName = controlTypeName; + } + + public String getTypeCodeName() { + return typeCodeName; + } + + public void setTypeCodeName(String typeCodeName) { + this.typeCodeName = typeCodeName; + } + + public String getPeriodTypeName() { + return periodTypeName; + } + + public void setPeriodTypeName(String periodTypeName) { + this.periodTypeName = periodTypeName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamVo.java new file mode 100644 index 0000000..ec5acec --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/vo/ModelParamVo.java @@ -0,0 +1,15 @@ +package org.springblade.general_dispatching.model_config.vo; + +import org.springblade.general_dispatching.model_base.entity.ModelParam; + +public class ModelParamVo extends ModelParam { + private Integer configId; + + public Integer getConfigId() { + return configId; + } + + public void setConfigId(Integer configId) { + this.configId = configId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigController.java new file mode 100644 index 0000000..ddb077f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigController.java @@ -0,0 +1,180 @@ +package org.springblade.general_dispatching.model_config.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_config.entity.IsGroupEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfig; +import org.springblade.general_dispatching.model_config.entity.ModelConfigStatusEnum; +import org.springblade.general_dispatching.model_config.manager.ModelConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigAddVo; +import org.springblade.general_dispatching.model_config.vo.ModelConfigVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型配置控制器,模型配置参数来源于模型参数,用户不能新增和删除,由模型统一对参数处理") +@RequestMapping("/model/config/model") +public class ModelConfigController { + @Autowired + private ModelConfigService modelConfigService; + @Autowired + private ModelConfigManager modelConfigManager; + + @ApiOperation("获取模型配置列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelConfig(@ApiParam("模型编码") String code, + @ApiParam("方案id")Integer schemeId, + @ApiParam("所属大类") String refModule, + @ApiParam("分页参数") Query query) { + IPage list = modelConfigService.listModelConfigPage(code,schemeId, refModule, Condition.getPage(query)); + return R.data( list); + } + + @ApiOperation("获取单个模型配置") + @RequestMapping(value = "/getModelConfig", method = RequestMethod.GET) + public R getModelInfo(@ApiParam("模型配置ID") Integer id){ + return R.data(modelConfigManager.getModelConfig(id)); + } + + @ApiOperation("获取单个模型配置参数列表") + @RequestMapping(value = "/getModelConfigParams", method = RequestMethod.GET) + public R getModelConfigParams(@ApiParam("模型配置ID") Integer id){ + return R.data( modelConfigManager.getModelConfigParams(id),"操作成功"); + } + +// @ApiOperation("判断模型配置是否重复") +// @RequestMapping(value = "/duplicateModelConfig", method = RequestMethod.POST) +// public R duplicateModelConfig(String code,String modelIds ) { +// Boolean flag = modelConfigService.duplicateModelConfig(code,modelIds); +// if (flag) { +// return R.data("未重复", flag); +// } else { +// return R.bulidFail("0", "配置已存在", flag); +// } +// } + + @ApiOperation("创建模型配置") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R createModelConfig(@ApiParam("模型配置信息") @RequestBody Map data) { + ModelConfig modelConfig=ModelConfigAddVo.toModelConfig(data); + int id = modelConfigService.createModelConfig(modelConfig); + if (id>0) { + return R.data(true,"保存成功"); + } else { + return R.data(500,false, "保存失败"); + } + } + + + @ApiOperation("编辑模型配置信息") + @RequestMapping(value = "/update", method = RequestMethod.POST) + public R editModelConfig(@ApiParam("模型信息") @RequestBody Map data) { + ModelConfig modelConfig=ModelConfigAddVo.toModelConfig(data); + Boolean flag = modelConfigService.editModelConfig(modelConfig); + if (flag) { + return R.data(flag,"编辑成功"); + } else { + return R.data(500,false, "编辑失败"); + } + } + + @ApiOperation("删除模型配置,物理删除不可逆转,模型配置及参数配置都删除") + @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE) + public R del(@ApiParam("模型配置id") @PathVariable Integer id) { + Boolean flag = modelConfigService.delModelConfig(id); + if (flag) { + return R.data(flag,"操作成功"); + } else { + return R.data(500, false,"删除失败"); + } + } + + + @ApiOperation("假删") + @RequestMapping(value = "/delModelConfig/{id}", method = RequestMethod.DELETE) + public R delModelConfig(@ApiParam("模型配置id")@PathVariable Integer id) { + Boolean flag = modelConfigService.del(id); + if (flag) { + return R.data(true,"操作成功"); + } else { + return R.data(500,false, "操作失败"); + } + } + + @ApiOperation("新增配置信息") + @RequestMapping(value = "/addConfigs/{schemeId}", method = RequestMethod.POST) + public R addConfigs(@RequestBody Map data, @PathVariable Integer schemeId) { + if(data!=null) { + List> list=(List>)data.get("configs"); + //根据方案id查模型 + Map param=new HashMap<>(); + param.put("schemeId",schemeId); + List modelConfigVos=modelConfigService.listModelConfig(param); + + List modelConfigs=new ArrayList<>(); + for(Map map:list){ + ModelConfig modelConfig=ModelConfigAddVo.toModelConfig(map); + String mCode=modelConfig.getCode(); + modelConfig.setSchemeId(schemeId); + modelConfig.setStatus(ModelConfigStatusEnum.NO_CONFIG.getCode()); + boolean flag=hasMCodeBySchemeId(mCode,modelConfigVos); + if(!flag) { + modelConfigs.add(modelConfig); + } + } + + int modelConfigId = modelConfigService.batchInsert(modelConfigs); + return R.data(modelConfigId,"操作成功"); + }else{ + return R.data(500,false, "保存失败"); + } + + } + + //对于同一个方案的模型编码存在一个 + private boolean hasMCodeBySchemeId(String mCode,List modelConfigVos){ + if(modelConfigVos!=null && !modelConfigVos.isEmpty()){ + for (ModelConfigVo vo:modelConfigVos){ + if(mCode.equals(vo.getCode())){ + return true; + } + } + } + return false; + } + + @ApiOperation("根据code 查模型信息和参数 根据配置id查配置信息") + @RequestMapping(value = "/getModelInfoParamConfig", method = RequestMethod.GET) + public R getModelInfoParamConfig(String mCode, Integer configId) { + Map data=modelConfigManager.getModelInfoParamConfig(mCode,configId, IsGroupEnum.NO.getCode()); + return R.data(data,"操作成功"); + } + + @ApiOperation("根据code 查模型信息和参数 根据配置id查组配置信息") + @RequestMapping(value = "/getModelInfoGroupParamConfig", method = RequestMethod.GET) + public R getModelInfoGroupParamConfig(String mCode,Integer configId) { + Map data=modelConfigManager.getModelInfoParamConfig(mCode,configId,IsGroupEnum.YES.getCode()); + return R.data(data,"操作成功"); + } + + + @ApiOperation("根据code 查模型信息和参数 根据配置id查配置信息") + @RequestMapping(value = "/updateInfoAddParam", method = RequestMethod.POST) + public R updateInfoAddParam(@RequestBody Map data) { + ModelConfigAddVo modelConfigAddVo=ModelConfigAddVo.toModelConfigAddVo(data); + int count=modelConfigManager.updateInfoAddParam(modelConfigAddVo.getModelConfig(), modelConfigAddVo.getParams()); + return R.data(count>0,"操作成功"); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigSchemeController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigSchemeController.java new file mode 100644 index 0000000..5d5e801 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelConfigSchemeController.java @@ -0,0 +1,204 @@ +package org.springblade.general_dispatching.model_config.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +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 org.springblade.general_dispatching.model_base.entity.ModelTree; +import org.springblade.general_dispatching.model_base.vo.ModelInfoVo; +import org.springblade.general_dispatching.model_config.entity.IsDefaultSchemeEnum; +import org.springblade.general_dispatching.model_config.entity.IsDeleteEnum; +import org.springblade.general_dispatching.model_config.entity.ModelConfigScheme; +import org.springblade.general_dispatching.model_config.manager.ModeConfigSchemeManager; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigSchemeService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigSchemeAddVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型方案控制器") +@RequestMapping("/model/config/scheme") +public class ModelConfigSchemeController { + @Autowired + private ModelConfigSchemeService modelConfigSchemeService; + + @Autowired + ModeConfigSchemeManager modeConfigSchemeManager; + + @ApiOperation("获取模型方案列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelConfigScheme(@ApiParam("方案名称") String name, + @ApiParam("分页参数") Query query, HttpServletRequest request) { + String stationId= AuthUtil.getDeptId(); + + IPage list = modelConfigSchemeService.listModelConfigScheme( name,stationId, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + @ApiOperation("新增模型方案") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R insert(@RequestBody Map data, + HttpServletRequest request) { + ModelConfigScheme modelConfigScheme= ModelConfigSchemeAddVo.toModelConfigScheme(data); + + String userId=String.valueOf(AuthUtil.getUserId()); + + modelConfigScheme.setCreater(userId); + modelConfigScheme.setCreateTime(new Date()); + modelConfigScheme.setLastUpdater(userId); + modelConfigScheme.setLastUpdateTime(new Date()); + modelConfigScheme.setDeleted(IsDeleteEnum.NO_DELETE.getCode()); + Integer id=modelConfigSchemeService.addModelConfigScheme(modelConfigScheme); + return R.data(id,"新增成功"); + } + + @ApiOperation("修改模型方案") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@RequestBody Map data, HttpServletRequest request) { + ModelConfigScheme modelConfigScheme=ModelConfigSchemeAddVo.toModelConfigScheme(data); + String userId=String.valueOf(AuthUtil.getUserId()); + + modelConfigScheme.setLastUpdater(userId); + modelConfigScheme.setLastUpdateTime(new Date()); + modelConfigScheme.setIsDefault(IsDefaultSchemeEnum.NO_DEFAULT.getCode()); + int count = modelConfigSchemeService.updateSchemeDefault(modelConfigScheme); + return R.data(count,"修改成功" ); + } + + @ApiOperation("删除模型方案") + @RequestMapping(value = "/del/{schemeId}", method = RequestMethod.PUT) + public R delete(@ApiParam("方案名称") @PathVariable Integer schemeId, HttpServletRequest request) { + String userId=String.valueOf(AuthUtil.getUserId()); + + int count=modelConfigSchemeService.deleteScheme(schemeId, userId); + return R.data(count>0,"删除成功"); + } + + @ApiOperation("根据模型大类refModule、站点id查找默认方案以及 模型组和模型配置为用户 和模型配置参数") + @RequestMapping(value = "/getScheme", method = RequestMethod.GET) + public R getScheme(@ApiParam("所属模块")String refModule, + @ApiParam("梯级,单库")String typeCode, + @ApiParam("长期,短期,实时")String applyPeriod) { + String stationId=AuthUtil.getTenantId(); + Map data=modeConfigSchemeManager.getScheme(refModule,typeCode, applyPeriod,stationId); + if(data!=null) { + return R.data(data,"查询成功"); + }else{ + return R.data(500,false,"查询失败"); + } + } + + @ApiOperation("获取配置方案信息和 配置模型以及模型组") + @RequestMapping(value = "/getModelInfoConfig/{schemeId}", method = RequestMethod.GET) + public R getModelInfoConfig(@PathVariable Integer schemeId) { + Map data=modeConfigSchemeManager.getModelInfoConfig(schemeId); + if(data!=null) { + return R.data(data,"查询成功"); + }else{ + return R.data(500,false,"查询失败"); + } + } + + @ApiOperation("获取分类模型") + @RequestMapping(value = "/listModelTree", method = RequestMethod.GET) + public R listModelTree(Integer schemeId) { + List list = modeConfigSchemeManager.listModelTree(schemeId); + return R.data(list,"操作成功"); + } + + @ApiOperation("获取分类模型") + @RequestMapping(value = "/getModelByRefModule", method = RequestMethod.GET) + public R getModelByRefModule(String refModule) { + List list = modeConfigSchemeManager.getModelByRefModule(refModule); + return R.data(list); + } + + @ApiOperation("发布或者设置为默认方案") + @RequestMapping(value = "/updateSchemeDefault", method = RequestMethod.PUT) + public R updateSchemeDefault(@ApiParam("方案") @RequestBody Map data, HttpServletRequest request) { + ModelConfigScheme scheme=null; + String userId=String.valueOf(AuthUtil.getUserId()); + Object obj=data.get("oldSchemeId"); + if(obj!=null) { + if(!"true".equals(obj.toString())) { + scheme = new ModelConfigScheme(); + scheme.setLastUpdater(userId); + scheme.setLastUpdateTime(new Date()); + scheme.setId(Integer.valueOf(data.get("oldSchemeId").toString())); + scheme.setIsDefault(IsDefaultSchemeEnum.NO_DEFAULT.getCode()); + modelConfigSchemeService.updateSchemeDefault(scheme); + } + } + scheme=new ModelConfigScheme(); + scheme.setLastUpdater(userId); + scheme.setLastUpdateTime(new Date()); + scheme.setId(Integer.valueOf(data.get("schemeId").toString())); + scheme.setIsDefault(IsDefaultSchemeEnum.YES_DEFAULT.getCode()); + int count=modelConfigSchemeService.updateSchemeDefault(scheme); + if(count > 0) { + return R.data(true); + }else{ + return R.data(500,false,"操作失败"); + } + } + + + @ApiOperation("查询站点是否存在默认方案") + @RequestMapping(value = "/getSchemeDefault", method = RequestMethod.GET) + public R getSchemeDefault() { + String stationId=AuthUtil.getTenantId(); + Integer id=modelConfigSchemeService.getSchemeDefault(stationId); + return R.data(id); + } + + @ApiOperation("查询站点是否存在默认方案") + @RequestMapping(value = "/getModelConfigIdByCode", method = RequestMethod.GET) + public R getModelCOnfigIdByCode(String mCode) { + String stationId=AuthUtil.getTenantId(); + Integer id=modelConfigSchemeService.getSchemeDefault(stationId); + Integer modelConfigId=modeConfigSchemeManager.getModelConfigIdByCode(mCode,id); + Map map=new HashMap<>(); + map.put("schemeId",id); + map.put("modelConfigId",modelConfigId); + return R.data(map); + } + + + @ApiOperation("是否可以发布方案") + @RequestMapping(value = "/isPublish", method = RequestMethod.GET) + public R isPublic(Integer schemeId) { + String stationId=AuthUtil.getTenantId(); + Integer id=modelConfigSchemeService.getSchemeDefault(stationId); + boolean flag=modeConfigSchemeManager.isConfigComplete(schemeId);//判定模型配置 用户和系统级的配置完整 + if(id!=null && flag){ + return R.data(id,"已存在默认方案,是否将当前方案设置为默认方案?"); + }else if(id==null && flag){ + return R.data(true,"是否设置为默认方案?"); + }else{ + return R.data(500,false,"请完善当前方案信息配置"); + } + + } + + @ApiOperation("删除模型信息") + @RequestMapping(value = "/delModelInfo/{modelInfoId}/{mCode}", method = RequestMethod.DELETE) + public R delModelInfo(@PathVariable String mCode, @PathVariable Integer modelInfoId) { + String stationId=AuthUtil.getTenantId(); + + String msg=modeConfigSchemeManager.delModelInfo(mCode,modelInfoId,stationId); + return R.data(true,msg); + + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelFixedValueController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelFixedValueController.java new file mode 100644 index 0000000..6b80e1c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelFixedValueController.java @@ -0,0 +1,60 @@ +package org.springblade.general_dispatching.model_config.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_config.entity.ModelFixedValue; +import org.springblade.general_dispatching.model_config.servcie.ModelFixedValueService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigAddVo; +import org.springblade.general_dispatching.model_config.vo.ModelFixedValueVo; +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 java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型定值控制器") +@RequestMapping("/model/fixed/value") +public class ModelFixedValueController { + @Autowired + ModelFixedValueService modelFixedValueService; + + @ApiOperation("获取定值名称列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelFixedValue(@ApiParam("定值名称") String name, + @ApiParam("01:径流式;02:水库式;03:梯级;04:水库群")String plantType, + @ApiParam("分页参数") Query page) { + IPage list = modelFixedValueService.listModelFixedValue( name,plantType, Condition.getPage(page)); + return R.data(list,"查询成功"); + } + + @ApiOperation("新增模型定值") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R insert(@RequestBody Map data) { + ModelFixedValue modelFixedValue= ModelConfigAddVo.toModelFixedValue(data); + Integer id=modelFixedValueService.addModelFixedValue(modelFixedValue); + return R.data(id,"新增成功"); + } + + @ApiOperation("修改模型定值") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@RequestBody Map data) { + ModelFixedValue modelFixedValue=ModelConfigAddVo.toModelFixedValue(data); + int count = modelFixedValueService.updateFixedValue(modelFixedValue); + return R.data(count,"修改成功"); + } + + @ApiOperation("删除模型定值") + @RequestMapping(value = "/del", method = RequestMethod.DELETE) + public R delete(@ApiParam("方案名称") Integer id) { + int count=modelFixedValueService.deleteFixedValue(id); + return R.data(count,"删除成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupConfigController.java new file mode 100644 index 0000000..9dcae74 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupConfigController.java @@ -0,0 +1,89 @@ +package org.springblade.general_dispatching.model_config.web; + +//import com.hnac.hzinfo.commons.bean.PageModel; +//import com.hnac.hzinfo.commons.bean.PageParam; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_config.entity.ModelGroupConfig; +import org.springblade.general_dispatching.model_config.manager.ModelGroupConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigAddVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型组控制器") +@RequestMapping("/model/group/config") +public class ModelGroupConfigController { + @Autowired + ModelGroupConfigService modelGroupConfigService; + @Autowired + ModelGroupConfigManager modelGroupConfigManager; + + @ApiOperation("获取模型组列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelGroupConfig(@ApiParam("组名称") String name, + @ApiParam("方案id")Integer schemeId, + @ApiParam("所属类型")String refModule, + @ApiParam("分页参数") Query query) { + IPage list = modelGroupConfigService.listModelGroupConfig( name,schemeId,refModule, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + @ApiOperation("新增/修改模型组") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R insert(@RequestBody Map data) { + ModelGroupConfig modelGroupConfig= ModelGroupConfigAddVo.toModelGroupConfig(data); + Integer id=modelGroupConfig.getId(); + if(id!=null){ + modelGroupConfigService.updateModelGroupConfig(modelGroupConfig); + return R.data(id,"保存成功"); + }else{ + id=modelGroupConfigService.addModelGroupConfig(modelGroupConfig); + return R.data(id,"新增成功"); + } + + } + + @ApiOperation("修改模型组") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@RequestBody Map data) { + ModelGroupConfig modelGroupConfig=ModelGroupConfigAddVo.toModelGroupConfig(data); + boolean flag = modelGroupConfigService.updateModelGroupConfig(modelGroupConfig); + return R.data(flag,"修改成功"); + } + + @ApiOperation("删除模型组") + @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE) + public R delete(@ApiParam("方案名称")@PathVariable Integer id) { + boolean flag=modelGroupConfigService.deleteModelGroupConfig(id); + return R.data(flag,"删除成功"); + } + + @ApiOperation("新增配置组信息及修改配置组项组id") + @RequestMapping(value = "/addGroupInfoItem", method = RequestMethod.POST) + public R addGroupInfoItem(@RequestBody Map data) { + ModelGroupConfigAddVo modelGroupConfigAddVo=ModelGroupConfigAddVo.toModelGroupConfigAddVo(data); + int groupId = modelGroupConfigManager.addGroupInfoItem(modelGroupConfigAddVo.getModelGroupConfig() + ,modelGroupConfigAddVo.getModelGroupItemConfigs()); + return R.data(groupId,"操作成功"); + } + + @ApiOperation("根据组id获取组信息及配置组项") + @RequestMapping(value = "/getDataByGroupId", method = RequestMethod.GET) + public R getDataByGroupId(Integer groupId) { + Map data = modelGroupConfigManager.getDataByGroupId(groupId); + return R.data(data,"操作成功"); + } + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupItemConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupItemConfigController.java new file mode 100644 index 0000000..628ca36 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelGroupItemConfigController.java @@ -0,0 +1,89 @@ +package org.springblade.general_dispatching.model_config.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_config.entity.ModelGroupItemConfig; +import org.springblade.general_dispatching.model_config.manager.ModelGroupItemConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupItemConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigAddVo; +import org.springblade.general_dispatching.model_config.vo.ModelGroupItemConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型组配置项控制器") +@RequestMapping("/model/group/item/config") +public class ModelGroupItemConfigController { + @Autowired + ModelGroupItemConfigService modelGroupItemConfigService; + + @Autowired + ModelGroupItemConfigManager modelGroupItemConfigManager; + + @ApiOperation("获取模型组配置项列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelGroupItemConfig(@ApiParam("组名称") String groupName, @ApiParam("组id")Integer groupId, + @ApiParam("模型编码") String code, + @ApiParam("分页参数") Query query) { + IPage list = modelGroupItemConfigService. + listModelGroupItemConfig(groupName,groupId,code, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + @ApiOperation("新增模型组配置项") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R insert(@RequestBody Map data) { + ModelGroupItemConfig modelGroupItemConfig= ModelGroupItemConfigAddVo.toModelGroupItemConfig(data); + Integer id = modelGroupItemConfigService.addModelGroupItemConfig(modelGroupItemConfig); + return R.data(id,"新增成功"); + } + + @ApiOperation("修改模型组配置项") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@RequestBody Map data) { + ModelGroupItemConfig modelGroupItemConfig=ModelGroupItemConfigAddVo.toModelGroupItemConfig(data); + boolean flag = modelGroupItemConfigService.updateModelGroupItemConfig(modelGroupItemConfig); + return R.data(flag,"修改成功"); + } + + @ApiOperation("删除模型组配置项") + @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE) + public R delete(@ApiParam("方案名称")@PathVariable Integer id) { + boolean flag=modelGroupItemConfigService.delModelGroupItemConfig(id); + return R.data(flag,"删除成功"); + } + + @ApiOperation("新增组配置项及配置参数") + @RequestMapping(value = "/addGroupItemAndParam", method = RequestMethod.POST) + public R addGroupItemAndParam(@RequestBody Map data) { + ModelGroupItemConfigAddVo modelGroupItemConfigAddVo=ModelGroupItemConfigAddVo.toModelGroupItemConfigAddVo(data); + int modelConfigId = modelGroupItemConfigManager.addGroupItemAndParam(modelGroupItemConfigAddVo.getModelGroupItemConfig(), + modelGroupItemConfigAddVo.getParams()); + return R.data(modelConfigId,"操作成功"); + } + + @ApiOperation("根据groupId获取模型组配置项") + @RequestMapping(value = "/getGroupItemByGroupId", method = RequestMethod.GET) + public R getGroupItemByGroupId(Integer groupId) { + List data= modelGroupItemConfigService.selectByModel("",groupId,""); + return R.data(data,"操作成功"); + } + + //查询模型组的组项是否配置完成 + @ApiOperation("查询模型组的组项是否配置完成") + @RequestMapping(value = "/isConfigParam", method = RequestMethod.GET) + public R isConfigParam(Integer groupItemId,String mCode) { + boolean data=modelGroupItemConfigManager.isConfigParam(groupItemId, mCode); + return R.data(data,"查询成功"); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelParamConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelParamConfigController.java new file mode 100644 index 0000000..eca5f3e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_config/web/ModelParamConfigController.java @@ -0,0 +1,191 @@ +package org.springblade.general_dispatching.model_config.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_base.entity.ModelParam; +import org.springblade.general_dispatching.model_base.service.ModelInfoService; +import org.springblade.general_dispatching.model_config.entity.ModelParamConfig; +import org.springblade.general_dispatching.model_config.manager.ModelParamConfigManager; +import org.springblade.general_dispatching.model_config.servcie.ModelConfigService; +import org.springblade.general_dispatching.model_config.servcie.ModelGroupItemConfigService; +import org.springblade.general_dispatching.model_config.servcie.ModelParamConfigService; +import org.springblade.general_dispatching.model_config.vo.ModelConfigAddVo; +import org.springblade.general_dispatching.model_config.vo.ModelParamConfigVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "模型配置模块-模型参数配置控制器") +@RequestMapping("/model/param/config") +public class ModelParamConfigController { + + @Autowired + ModelParamConfigService modelParamConfigService; + + @Autowired + ModelParamConfigManager modelParamConfigManager; + + @Autowired + ModelInfoService modelInfoService; + + @Autowired + ModelConfigService modelConfigService; + + @Autowired + ModelGroupItemConfigService modelGroupItemConfigService; + + @ApiOperation("获取模型参数配置列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listModelParamConfig(@ApiParam("模型配置id") Integer modelConfigId, + @ApiParam("是否为组")Integer isGroup, + @ApiParam("分页参数") Query query) { + IPage list = modelParamConfigService. + listModelParamConfig(modelConfigId,isGroup, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + @ApiOperation("获取模型参数配置列表") + @RequestMapping(value = "/list", method = RequestMethod.GET) + public R list(@ApiParam("模型配置id") Integer modelConfigId, + @ApiParam("模型参数id")Integer paramId, + @ApiParam("是否为组")Integer isGroup) { + Map param=new HashMap<>(); + if(modelConfigId!=null){ + param.put("modelConfigId",modelConfigId); + } + if(isGroup!=null){ + param.put("isGroup",isGroup); + } + + if(paramId!=null){ + param.put("paramId",paramId); + } + List list = modelParamConfigService.listModelParamConfig(param); + return R.data(list,"查询成功"); + } + + + @ApiOperation("获取模型参数及模型配置参数") + @RequestMapping(value = "/getParamConfigParam", method = RequestMethod.GET) + public R getParamConfigParam(@ApiParam("模型配置id")@RequestParam Integer modelConfigId, + @ApiParam("模型参数id")@RequestParam Integer paramId, + @ApiParam("是否为组")@RequestParam Integer isGroup) { + Map data=new HashMap<>(); + Map param=new HashMap<>(); + param.put("modelConfigId",modelConfigId); + param.put("isGroup",isGroup); + + if(paramId!=null && !"".equals(paramId)){ + param.put("paramId", paramId); + + List list = modelParamConfigService. + listModelParamConfig(param); + ModelParam modelParam = modelInfoService.selectModelParamById(paramId); + data.put("modelParam", modelParam); + if (list != null && !list.isEmpty()) { + data.put("modelParamConfig", list.get(0)); + } + + return R.data(data,"查询成功"); + }else{ + List list = modelParamConfigService. + listModelParamConfig(param); + if (list != null && !list.isEmpty()) { + data.put("modelParamConfig", list); + } + return R.data(data,"查询成功"); + } + } + + @ApiOperation("新增/修改模型参数配置") + @RequestMapping(value = "/addOrUpdate", method = RequestMethod.POST) + public R addOrUpdate(@RequestBody Map data) { + ModelParamConfig modelParamConfig= ModelConfigAddVo.toModelParamConfig(data); + + String value=modelParamConfig.getValue(); + String check=checkValue(value); + if(check!=null){ + return R.data(500,false,check); + } + Integer id=modelParamConfig.getId(); + + if(id!=null && !"".equals(id)) { + modelParamConfigManager.updatStatus(modelParamConfig); + boolean flag = modelParamConfigService.updateModelParamConfig(modelParamConfig); + return R.data(flag,"修改成功"); + }else{ + id = modelParamConfigService.addModelParamConfig(modelParamConfig); + modelParamConfigManager.updatStatus(modelParamConfig); + return R.data(id,"新增成功"); + } + + } + + private String checkValue(String value){ + if(value ==null){ + return null; + } + String lowerWord=value.toLowerCase(); + if(lowerWord.contains("select") || lowerWord.contains("delete") || + lowerWord.contains("update")|| lowerWord.contains("insert")){ + return "参数值中不能包含select、delete、update、insert等字段"; + } + return null; + } + + @ApiOperation("新增模型参数配置") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R insert(@RequestBody Map data) { + ModelParamConfig modelParamConfig=ModelConfigAddVo.toModelParamConfig(data); + String value=modelParamConfig.getValue(); + String check=checkValue(value); + if(check!=null){ + return R.data(500,false,check); + } + Integer id=modelParamConfigService.addModelParamConfig(modelParamConfig); + return R.data(id,"新增成功"); + } + + @ApiOperation("修改模型参数配置") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@RequestBody Map data) { + ModelParamConfig modelParamConfig=ModelConfigAddVo.toModelParamConfig(data); + String value=modelParamConfig.getValue(); + String check=checkValue(value); + if(check!=null){ + return R.data(500,false,check); + } + boolean flag = modelParamConfigService.updateModelParamConfig(modelParamConfig); + return R.data(flag,"修改成功"); + } + + @ApiOperation("删除模型参数配置") + @RequestMapping(value = "/del", method = RequestMethod.DELETE) + public R delete(@ApiParam("模型参数配置id") Integer id) { + boolean flag=modelParamConfigService.delModelParamConfig(id); + return R.data(flag,"删除成功"); + } + + @ApiOperation("修改模型参数配置id") + @RequestMapping(value = "/updateConfigId", method = RequestMethod.PUT) + public R update(Integer id, Integer configId) { + boolean flag = modelParamConfigManager.updateConfigId(id,configId); + return R.data(flag,"修改成功"); + } + + @ApiOperation("删除模型参数") + @RequestMapping(value = "/delModelParam/{id}", method = RequestMethod.DELETE) + public R delModelParam(@PathVariable Integer id) { + Map msg = modelParamConfigManager.delModelParam(id); + return R.data(Boolean.valueOf(msg.get("flag")),msg.get("msg")); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/constant/Constants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/constant/Constants.java new file mode 100644 index 0000000..e04a384 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/constant/Constants.java @@ -0,0 +1,9 @@ +package org.springblade.general_dispatching.model_instance.constant; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Constants { + public static Map>> param=new HashMap<>(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/BluePrint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/BluePrint.java new file mode 100644 index 0000000..1908ae6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/BluePrint.java @@ -0,0 +1,115 @@ +package org.springblade.general_dispatching.model_instance.entity; + +import java.util.Date; + +public class BluePrint { + private Integer id; + private String name; + private String refModule; + private String typeCode; + private String applyPeriod; + private String status; + private String remark; + private Integer deleted; + private Date createTime; + private String creater; + private Date lastUpdateTime; + private String lastUpdater; + + + public String getRefModule() { + return refModule; + } + + public void setRefModule(String refModule) { + this.refModule = refModule; + } + + public String getApplyPeriod() { + return applyPeriod; + } + + public void setApplyPeriod(String applyPeriod) { + this.applyPeriod = applyPeriod; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Integer getDeleted() { + return deleted; + } + + public void setDeleted(Integer deleted) { + this.deleted = deleted; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getLastUpdater() { + return lastUpdater; + } + + public void setLastUpdater(String lastUpdater) { + this.lastUpdater = lastUpdater; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/InstanceParamTableEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/InstanceParamTableEnum.java new file mode 100644 index 0000000..a0f5657 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/InstanceParamTableEnum.java @@ -0,0 +1,29 @@ +package org.springblade.general_dispatching.model_instance.entity; + +public enum InstanceParamTableEnum { + HI_TABLE("实例历史参数表","wd_model_hi_instance_param"), + RUN_TABLE("实例运行参数表","wd_model_ru_instance_param"); + private String code; + private String name; + + InstanceParamTableEnum(String name,String code){ + this.name = name; + this.code = code; + } + + 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstance.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstance.java new file mode 100644 index 0000000..5a3a8aa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstance.java @@ -0,0 +1,114 @@ +package org.springblade.general_dispatching.model_instance.entity; + +import java.util.Date; + +public class ModelInstance { + private Integer id; + private Integer bluePrintId; + private String code; + private Integer modelConfigId; + private String stateCode; + private String remark; + private Date createTime; + private String creater; + private Date lastUpdateTime; + private String lastUpdater; + private Integer isCreateTask; + private Integer isGroup; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Integer getIsCreateTask() { + return isCreateTask; + } + + public void setIsCreateTask(Integer isCreateTask) { + this.isCreateTask = isCreateTask; + } + + public Integer getIsGroup() { + return isGroup; + } + + public void setIsGroup(Integer isGroup) { + this.isGroup = isGroup; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getStateCode() { + return stateCode; + } + + public void setStateCode(String stateCode) { + this.stateCode = stateCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getLastUpdater() { + return lastUpdater; + } + + public void setLastUpdater(String lastUpdater) { + this.lastUpdater = lastUpdater; + } + + public Integer getBluePrintId() { + return bluePrintId; + } + + public void setBluePrintId(Integer bluePrintId) { + this.bluePrintId = bluePrintId; + } + + public Integer getModelConfigId() { + return modelConfigId; + } + + public void setModelConfigId(Integer modelConfigId) { + this.modelConfigId = modelConfigId; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceParam.java new file mode 100644 index 0000000..bb93370 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceParam.java @@ -0,0 +1,81 @@ +package org.springblade.general_dispatching.model_instance.entity; + +public class ModelInstanceParam { + private Integer id; + private Integer pno; + private Integer instanceId; + + private String code; + + private String name; + + private String typeCode; + + private String value; + + private String fieldType; + + public String getFieldType() { + return fieldType; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public Integer getInstanceId() { + return instanceId; + } + + public void setInstanceId(Integer instanceId) { + this.instanceId = instanceId; + } + + 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; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResult.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResult.java new file mode 100644 index 0000000..dc06969 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResult.java @@ -0,0 +1,63 @@ +package org.springblade.general_dispatching.model_instance.entity; + +public class ModelInstanceResult { + private Integer id; + + private Integer instanceId; + + private String dt; + + private String resultItem; + + private String value; + + private String unit; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getInstanceId() { + return instanceId; + } + + public void setInstanceId(Integer instanceId) { + this.instanceId = instanceId; + } + + public String getDt() { + return dt; + } + + public void setDt(String dt) { + this.dt = dt; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getResultItem() { + return resultItem; + } + + public void setResultItem(String resultItem) { + this.resultItem = resultItem; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResultConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResultConfig.java new file mode 100644 index 0000000..964d565 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelInstanceResultConfig.java @@ -0,0 +1,85 @@ +package org.springblade.general_dispatching.model_instance.entity; + +public class ModelInstanceResultConfig { + private Integer id;//主键 + private String code;//编码 + private String name;//名称 + private String point;//厂组点 + private String typeCode ;//水库01,电站02,机组03,闸门04,合计05 + private String sourceId ;//源ID + private String parserRuleType;//01:时间偏差 02 其他 + private String parserRuleValue; + private String unit;//单位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + 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; + } + + public String getPoint() { + return point; + } + + public void setPoint(String point) { + this.point = point; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getSourceId() { + return sourceId; + } + + public void setSourceId(String sourceId) { + this.sourceId = sourceId; + } + + public String getParserRuleType() { + return parserRuleType; + } + + public void setParserRuleType(String parserRuleType) { + this.parserRuleType = parserRuleType; + } + + public String getParserRuleValue() { + return parserRuleValue; + } + + public void setParserRuleValue(String parserRuleValue) { + this.parserRuleValue = parserRuleValue; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelResultParam.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelResultParam.java new file mode 100644 index 0000000..0c410af --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/entity/ModelResultParam.java @@ -0,0 +1,69 @@ +package org.springblade.general_dispatching.model_instance.entity; + +import java.util.Date; + +public class ModelResultParam {//用于查询计算结果编成入参 + private Integer id; + private Integer configId; + private String code; + private String name; + private String value; + private String type; + private Date lastUpdateDate; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getConfigId() { + return configId; + } + + public void setConfigId(Integer configId) { + this.configId = configId; + } + + 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; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Date getLastUpdateDate() { + return lastUpdateDate; + } + + public void setLastUpdateDate(Date lastUpdateDate) { + this.lastUpdateDate = lastUpdateDate; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelInstanceManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelInstanceManager.java new file mode 100644 index 0000000..4557e3f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelInstanceManager.java @@ -0,0 +1,48 @@ +package org.springblade.general_dispatching.model_instance.manager; + +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceVo; + +import java.util.List; +import java.util.Map; + +public interface ModelInstanceManager { + /** + * 创建模型实例,并返回模型实例ID + * @param modelInstanceVo + * @return + */ + Integer createModelInstance(ModelInstanceVo modelInstanceVo); + + /** + * 根据模型实例ID获取模型实例及模型实例参数 应用于查询模型实例档案的场景 + * @param id + * @return + */ + ModelInstanceVo getModelInstance(Integer id, Boolean isHiParam, Boolean isReturnResult); + + /** + * 获取模型实例结果 应用于创建模型查询结果的场景 + * @param id + * @return + */ + + List getModelInstanceResult(Integer id); + + /** + * 根据模型实例ID删除模型实例 + * @param id + * @return + */ + boolean delModelInstance(Integer id); + + /** + * 批量更新模型实例结果 + * @param userId 用户ID + * @param instanceId 实例ID + * @param results Key:实例结果ID Value:实例结果值 + * @return + */ + Boolean updateModelInstanceResults(String userId, Integer instanceId, Map results); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelType.java new file mode 100644 index 0000000..6818a49 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/ModelType.java @@ -0,0 +1,18 @@ +package org.springblade.general_dispatching.model_instance.manager; + +public enum ModelType { + //来水预测 + LSYC, + //水务计划 + SWJW, + //水量综合调度 + SLDD_ZH, + //水量防洪调度 + SLDD_FH, + //水量档案 + SLDD_ALL, + //水电调度-发电计划 + SDDD_CQ, + //水电调度-短期计划 + SDDD_DQ +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/impl/ModelInstanceManagerImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/impl/ModelInstanceManagerImpl.java new file mode 100644 index 0000000..2df9a34 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/manager/impl/ModelInstanceManagerImpl.java @@ -0,0 +1,132 @@ +package org.springblade.general_dispatching.model_instance.manager.impl; + +import org.springblade.general_dispatching.model_instance.mapper.*; +import org.springblade.general_dispatching.model_instance.entity.*; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.vo.*; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +public class ModelInstanceManagerImpl implements ModelInstanceManager { + @Resource + private ModelRuInstanceMapper ruInstanceMapper; + + @Resource + private ModelHiInstanceMapper hiInstanceMapper; + @Resource + private ModelInstanceParamMapper instanceParamMapper; + @Resource + private ModelInstanceResultMapper instanceResultMapper; + @Resource + ModelInstanceResultConfigMapper instanceResultConfigMapper; + + @Override + public Integer createModelInstance(ModelInstanceVo modelInstanceVo) { + ModelInstance instance = modelInstanceVo.getModelInstance().toModelInstance(); + Date date = new Date(); + instance.setCreateTime(date); + instance.setLastUpdateTime(date); + instance.setStateCode("00"); + ruInstanceMapper.insert(instance); + Integer instanceId = instance.getId(); + setInstanceId(instanceId, modelInstanceVo.getParams()); + instanceParamMapper.batchInsert(modelInstanceVo.getParams(),InstanceParamTableEnum.RUN_TABLE.getCode()); + instance.setStateCode("01"); + ruInstanceMapper.updateByPrimaryKeySelective(instance); + return instanceId; + } + + @Override + public ModelInstanceVo getModelInstance(Integer id,Boolean isHi,Boolean isReturnResult) { + ModelInstanceVo vo = new ModelInstanceVo(); + ModelInstanceInfoVo instance =null; + if(isHi) { + instance =hiInstanceMapper.selectByPrimaryKey(id); + if (instance != null && isReturnResult) { + List results = getModelInstanceResult(id); + vo.setResults(results); + } + }else{ + instance = ruInstanceMapper.selectByPrimaryKey(id); + } + if (instance != null && instance.getId().equals(id)) { + List params = null; + if(isHi){ + params = instanceParamMapper.selectByInstanceId(id,InstanceParamTableEnum.HI_TABLE.getCode()); + }else { + params = instanceParamMapper.selectByInstanceId(id, InstanceParamTableEnum.RUN_TABLE.getCode()); + } + vo.setModelInstance(instance); + vo.setParams(params); + } else { + return null; + } + return vo; + } + + + @Override + public List getModelInstanceResult(Integer id) { + List modelInstanceResults=instanceResultMapper.selectByInstanceId(id); + return modelInstanceResults; + } +// +// private ModelInstanceResultConfig getTypeName(String value,List data){ +// if(data!=null && !data.isEmpty()){ +// for (ModelInstanceResultConfig param:data){ +// String tmpValue=param.getCode(); +// if(tmpValue.equals(value)) { +// return param; +// } +// } +// } +// return null; +// } + + @Override + public boolean delModelInstance(Integer id) { + int i = ruInstanceMapper.deleteByPrimaryKey(id); + if (i > 0) { + instanceParamMapper.deleteByInstanceId(id,InstanceParamTableEnum.HI_TABLE.getCode()); + instanceParamMapper.deleteByInstanceId(id,InstanceParamTableEnum.RUN_TABLE.getCode()); + instanceResultMapper.deleteByInstanceId(id); + return true; + } else { + return false; + } + + } + + @Override + public Boolean updateModelInstanceResults(String userId, Integer instanceId, Map results) { + Boolean flag = false; + ModelInstance instance = new ModelInstance(); + instance.setId(instanceId); + instance.setLastUpdateTime(new Date()); + instance.setLastUpdater(userId); + int cnt = hiInstanceMapper.updateByPrimaryKeySelective(instance); + if (cnt > 0) { + cnt = 0; + for (Map.Entry entry : results.entrySet()) { + cnt++; + ModelInstanceResult result = new ModelInstanceResult(); + result.setId(entry.getKey()); + result.setValue(entry.getValue()); + instanceResultMapper.updateByPrimaryKeySelective(result); + } + } + flag = cnt == results.size(); + return flag; + } + + private void setInstanceId(Integer instanceId, List params) { + for (ModelInstanceParam param : params) { + param.setInstanceId(instanceId); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.java new file mode 100644 index 0000000..b6df04c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.java @@ -0,0 +1,25 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.model_instance.entity.BluePrint; +import org.springblade.general_dispatching.model_instance.vo.BluePrintQuery; +import org.springblade.general_dispatching.model_instance.vo.BluePrintVo; + +import java.util.List; + +public interface BluePrintMapper { + int deleteByPrimaryKey(Integer id); + + int insert(BluePrint record); + + BluePrintVo selectByPrimaryKey(Integer id); + + BluePrint selectByKey(Integer id); + + int updateByPrimaryKey(BluePrint record); + + IPage selectByParam(@Param("mi") BluePrintQuery mi, IPage page); + + List selectByParam(@Param("mi") BluePrintQuery mi); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.xml new file mode 100644 index 0000000..7f69217 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/BluePrintMapper.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID,`NAME`,REFMODULE,TYPE_CODE,APPLY_PERIOD,STATUS,REMARK,CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER + + + + print.ID, print.`NAME`,print.TYPE_CODE,project_type.name REFMODULE_NAME, print.STATUS,status.NAME STATUS_NAME, + print.REMARK,print.CREATE_TIME, sysuser.`NAME` CREATER, print.LAST_UPDATE_TIME, print.LAST_UPDATER, + config_type_code.`NAME` TYPE_NAME,apply_period.`NAME` APPLY_PERIOD_NAME,CONCAT(DATE_FORMAT(print.CREATE_TIME,'%Y%m%d'),print.ID) PRINT_CODE + + + + delete from wd_blue_print + where ID = #{id,jdbcType=INTEGER} + + + + + + + + + + insert into wd_blue_print (`NAME`,REFMODULE,TYPE_CODE, + APPLY_PERIOD,STATUS,REMARK, + CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER) + values (#{name,jdbcType=VARCHAR},#{refModule,jdbcType=VARCHAR},#{typeCode,jdbcType=VARCHAR}, + #{applyPeriod,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},#{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creater,jdbcType=VARCHAR}, + #{lastUpdateTime,jdbcType=TIMESTAMP}, #{lastUpdater,jdbcType=VARCHAR}) + + + + update wd_blue_print + + + `NAME` = #{name,jdbcType=VARCHAR}, + + + REFMODULE = #{refModule,jdbcType=VARCHAR}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + APPLY_PERIOD = #{applyPeriod,jdbcType=VARCHAR}, + + + STATUS = #{status,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + CREATER = #{creater,jdbcType=VARCHAR}, + + + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR} + + + where ID = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.java new file mode 100644 index 0000000..223b019 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.java @@ -0,0 +1,26 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.ModelInstance; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ModelHiInstanceMapper { + + IPage selectByPage(@Param("mi") ModelInstanceInfoQuery mi, IPage page); + + List selectByPage(@Param("mi") ModelInstanceInfoQuery mi); + + ModelInstanceInfoVo selectByPrimaryKey(Integer id); + + Integer selectByModelCode(@Param("code") String code, @Param("stateCode") String stateCode); + + int updateByPrimaryKeySelective(ModelInstance record); + + List> selectUser(); + List> selectModelInfo(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.xml new file mode 100644 index 0000000..2e2d730 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelHiInstanceMapper.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID,BLUE_PRINT_ID,CODE,MODEL_CONFIG_ID,STATE_CODE,REMARK,CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER,IS_CREATE_TASK,IS_GROUP + + + wmi.ID,wmi.BLUE_PRINT_ID, CONCAT(DATE_FORMAT(wmi.CREATE_TIME,'%Y%m%d'),wmi.ID) AS INSTANCE_CODE, wmi.MODEL_CONFIG_ID, + wmi.STATE_CODE, dict_source.NAME AS STATE_NAME, wmi.REMARK, wmi.CREATE_TIME, wmi.CREATER, + -- cu.NAME as CREATER_NAME, + wmi.LAST_UPDATE_TIME, wmi.LAST_UPDATER, + -- uu.NAME AS LAST_UPDATER_NAME, + scheme.MODEL_NAMES,wmi.CODE + -- ,info.`NAME` + + + + + + + + + + + + + + + + + update wd_model_hi_instance + + + BLUE_PRINT_ID = #{bluePrintId,jdbcType=INTEGER}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER}, + + + STATE_CODE = #{stateCode,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + CREATER = #{creater,jdbcType=VARCHAR}, + + + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + + + IS_CREATE_TASK = #{isCreateTask,jdbcType=SMALLINT}, + + + IS_GROUP = #{isGroup,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.java new file mode 100644 index 0000000..c8cc74c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.java @@ -0,0 +1,18 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ModelInstanceParamMapper { + int insert(@Param("record") ModelInstanceParam record, @Param("table") String table); + + int insertSelective(@Param("record") ModelInstanceParam record, @Param("table") String table); + + int batchInsert(@Param("params") List params, @Param("table") String table); + + List selectByInstanceId(@Param("instanceId") Integer instanceId, @Param("table") String table); + + int deleteByInstanceId(@Param("id") Integer id, @Param("table") String table); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.xml new file mode 100644 index 0000000..c67be9e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceParamMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + delete from ${table} + where INSTANCE_ID = #{id,jdbcType=INTEGER} + + + + insert into ${table} (INSTANCE_ID, CODE, NAME, + TYPE_CODE, VALUE,FIELD_TYPE,PNO) + values (#{record.instanceId,jdbcType=INTEGER}, #{record.code,jdbcType=VARCHAR}, #{record.name,jdbcType=VARCHAR}, + #{record.typeCode,jdbcType=VARCHAR}, #{record.value,jdbcType=VARCHAR}, #{record.fieldType,jdbcType=VARCHAR}, + #{record.pno,jdbcType=INTEGER}) + + + + insert into ${table} + + + INSTANCE_ID, + + + CODE, + + + NAME, + + + TYPE_CODE, + + + VALUE, + + + FIELD_TYPE, + + + PNO, + + + + + #{record.instanceId,jdbcType=INTEGER}, + + + #{record.code,jdbcType=VARCHAR}, + + + #{record.name,jdbcType=VARCHAR}, + + + #{record.typeCode,jdbcType=VARCHAR}, + + + #{record.value,jdbcType=VARCHAR}, + + + #{record.fieldType,jdbcType=VARCHAR}, + + + #{record.pno,jdbcType=INTEGER}, + + + + + + insert into ${table} (INSTANCE_ID, CODE, NAME, + TYPE_CODE, VALUE,FIELD_TYPE,PNO) + values + + ( + #{item.instanceId}, #{item.code}, #{item.name}, + #{item.typeCode}, #{item.value},#{item.fieldType},#{item.pno} + ) + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.java new file mode 100644 index 0000000..57a857c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.java @@ -0,0 +1,21 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResultConfig; + +import java.util.List; +import java.util.Map; + +public interface ModelInstanceResultConfigMapper { + int deleteByPrimaryKey(Integer id); + + int insert(ModelInstanceResultConfig record); + + int updateByPrimaryKey(ModelInstanceResultConfig record); + + ModelInstanceResultConfig selectByPrimaryKey(Integer id); + + List selectByParam(Map param); + + IPage selectByParam(Map param, IPage page); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.xml new file mode 100644 index 0000000..4a7a5c3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultConfigMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + ID, CODE ,`NAME`, POINT, TYPE_CODE, SOURCE_ID,PARSER_RULE_TYPE,PARSER_RULE_VALUE,UNIT + + + + delete from + wd_model_instance_result_config + where + ID = #{id,jdbcType=INTEGER} + + + + + + + + + insert into + wd_model_instance_result_config (CODE,`NAME`, POINT,TYPE_CODE, SOURCE_ID,PARSER_RULE_TYPE,PARSER_RULE_VALUE,UNIT) + values + (#{code,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{point,jdbcType=VARCHAR}, + #{typeCode,jdbcType=VARCHAR}, #{sourceId,jdbcType=VARCHAR}, #{parserRuleType,jdbcType=VARCHAR}, + #{parserRuleValue,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}) + + + + update + wd_model_instance_result_config + set + CODE = #{code,jdbcType=VARCHAR}, + `NAME` = #{name,jdbcType=VARCHAR}, + POINT = #{point,jdbcType=VARCHAR}, + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + SOURCE_ID = #{sourceId,jdbcType=VARCHAR}, + PARSER_RULE_TYPE=#{parserRuleType,jdbcType=VARCHAR}, + PARSER_RULE_VALUE= #{parserRuleValue,jdbcType=VARCHAR}, + UNIT=#{unit,jdbcType=VARCHAR} + where + ID = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.java new file mode 100644 index 0000000..1854476 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResult; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; + +import java.util.List; + +public interface ModelInstanceResultMapper { + int deleteByPrimaryKey(Integer id); + + int insert(ModelInstanceResult record); + + int insertSelective(ModelInstanceResult record); + +// ModelInstanceResult selectByPrimaryKey(Integer id); + + List selectByInstanceId(Integer instanceId); + + int updateByPrimaryKeySelective(ModelInstanceResult record); + + int updateByPrimaryKey(ModelInstanceResult record); + + int deleteByInstanceId(Integer id); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.xml new file mode 100644 index 0000000..8be1f69 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelInstanceResultMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + wmir.ID,wmir.INSTANCE_ID,wmir.DT,wmir.RESULT_ITEM,wmir.VALUE, + config.UNIT,config.`NAME` AS RESULT_ITEM_NAME,config.TYPE_CODE, + dict_source.`NAME` TYPE_CODE_NAME,config.SOURCE_ID,config.`CODE`, + config.POINT + + + + + + delete from wd_model_instance_result + where ID = #{id,jdbcType=INTEGER} + + + delete from wd_model_instance_result + where INSTANCE_ID = #{id,jdbcType=INTEGER} + + + insert into wd_model_instance_result (ID, INSTANCE_ID, DT, + RESULT_ITEM, VALUE, + UNIT) + values (#{id,jdbcType=INTEGER}, #{instanceId,jdbcType=INTEGER}, #{dt,jdbcType=VARCHAR}, + #{resultItem,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}) + + + insert into wd_model_instance_result + + + ID, + + + INSTANCE_ID, + + + DT, + + + RESULT_ITEM, + + + VALUE, + + + UNIT, + + + + + #{id,jdbcType=INTEGER}, + + + #{instanceId,jdbcType=INTEGER}, + + + #{dt,jdbcType=VARCHAR}, + + + #{resultItem,jdbcType=VARCHAR}, + + + #{value,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + + + update wd_model_instance_result + + + INSTANCE_ID = #{instanceId,jdbcType=INTEGER}, + + + DT = #{dt,jdbcType=VARCHAR}, + + + RESULT_ITEM = #{resultItem,jdbcType=VARCHAR}, + + + VALUE = #{value,jdbcType=VARCHAR}, + + + UNIT = #{unit,jdbcType=VARCHAR}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_instance_result + set INSTANCE_ID = #{instanceId,jdbcType=INTEGER}, + DT = #{dt,jdbcType=VARCHAR}, + RESULT_ITEM = #{resultItem,jdbcType=VARCHAR}, + VALUE = #{value,jdbcType=VARCHAR}, + UNIT = #{unit,jdbcType=VARCHAR} + where ID = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.java new file mode 100644 index 0000000..7bec0a9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.java @@ -0,0 +1,10 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import org.springblade.general_dispatching.model_instance.entity.ModelResultParam; + +import java.util.List; +import java.util.Map; + +public interface ModelResultParamMapper { + List getModelResultParamData(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.xml new file mode 100644 index 0000000..e3c051d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelResultParamMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + ID,CONFIG_ID,`CODE`,`NAME`,`VALUE`,TYPE,LAST_UPDATE_DATE + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.java new file mode 100644 index 0000000..2f1b821 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.java @@ -0,0 +1,27 @@ +package org.springblade.general_dispatching.model_instance.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.ModelInstance; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ModelRuInstanceMapper { + int deleteByPrimaryKey(Integer id); + + int insert(ModelInstance record); + + int insertSelective(ModelInstance record); + + IPage selectByModel(@Param("mi") ModelInstanceInfoQuery mi, IPage page); + + List selectByModel(@Param("mi") ModelInstanceInfoQuery mi); + + ModelInstanceInfoVo selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(ModelInstance record); + + int updateByPrimaryKey(ModelInstance record); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.xml new file mode 100644 index 0000000..ab1a662 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/mapper/ModelRuInstanceMapper.xml @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID,BLUE_PRINT_ID,CODE,MODEL_CONFIG_ID,STATE_CODE,REMARK,CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER,IS_CREATE_TASK,IS_GROUP + + + wmi.ID,wmi.BLUE_PRINT_ID, CONCAT(DATE_FORMAT(wmi.CREATE_TIME,'%Y%m%d'),wmi.ID) AS INSTANCE_CODE, wmi.MODEL_CONFIG_ID, + wmi.STATE_CODE, dict_source.NAME AS STATE_NAME, wmi.REMARK, wmi.CREATE_TIME, wmi.CREATER,cu.NAME as CREATER_NAME, + wmi.LAST_UPDATE_TIME, wmi.LAST_UPDATER, uu.NAME AS LAST_UPDATER_NAME,scheme.MODEL_NAMES,wmi.CODE,info.`NAME` + + + delete from wd_model_ru_instance + where ID = #{id,jdbcType=INTEGER} + + + + + + + + + + insert into wd_model_ru_instance ( + BLUE_PRINT_ID,CODE,MODEL_CONFIG_ID,STATE_CODE,REMARK, + CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER, + IS_CREATE_TASK,IS_GROUP) + values (#{bluePrintId,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{modelConfigId,jdbcType=INTEGER},#{stateCode,jdbcType=VARCHAR},#{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creater,jdbcType=VARCHAR},#{lastUpdateTime,jdbcType=TIMESTAMP}, #{lastUpdater,jdbcType=VARCHAR}, + #{isCreateTask,jdbcType=SMALLINT},#{isGroup,jdbcType=SMALLINT} + ) + + + insert into wd_model_ru_instance + + + ID, + + + BLUE_PRINT_ID, + + + CODE, + + + MODEL_CONFIG_ID, + + + STATE_CODE, + + + REMARK, + + + CREATE_TIME, + + + CREATER, + + + LAST_UPDATE_TIME, + + + LAST_UPDATER, + + + IS_CREATE_TASK, + + + IS_GROUP, + + + + + #{id,jdbcType=INTEGER}, + + + #{bluePrintId,jdbcType=INTEGER}, + + + #{code,jdbcType=VARCHAR}, + + + #{modelConfigId,jdbcType=INTEGER}, + + + #{stateCode,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{creater,jdbcType=VARCHAR}, + + + #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + #{lastUpdater,jdbcType=VARCHAR}, + + + #{isCreateTask,jdbcType=SMALLINT}, + + + #{isGroup,jdbcType=SMALLINT}, + + + + + update wd_model_ru_instance + + + BLUE_PRINT_ID = #{bluePrintId,jdbcType=INTEGER}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER}, + + + STATE_CODE = #{stateCode,jdbcType=VARCHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + CREATER = #{creater,jdbcType=VARCHAR}, + + + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + + + IS_CREATE_TASK = #{isCreateTask,jdbcType=SMALLINT}, + + + IS_GROUP = #{isGroup,jdbcType=SMALLINT}, + + + where ID = #{id,jdbcType=INTEGER} + + + update wd_model_ru_instance + set + BLUE_PRINT_ID = #{bluePrintId,jdbcType=INTEGER}, + CODE = #{code,jdbcType=VARCHAR}, + MODEL_CONFIG_ID = #{modelConfigId,jdbcType=INTEGER}, + STATE_CODE = #{stateCode,jdbcType=VARCHAR}, + REMARK = #{remark,jdbcType=VARCHAR}, + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + CREATER = #{creater,jdbcType=VARCHAR}, + LAST_UPDATE_TIME = #{lastUpdateTime,jdbcType=TIMESTAMP}, + LAST_UPDATER = #{lastUpdater,jdbcType=VARCHAR}, + IS_CREATE_TASK = #{isCreateTask,jdbcType=SMALLINT}, + IS_GROUP = #{isGroup,jdbcType=SMALLINT} + where ID = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/BluePrintService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/BluePrintService.java new file mode 100644 index 0000000..9477860 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/BluePrintService.java @@ -0,0 +1,26 @@ +package org.springblade.general_dispatching.model_instance.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.BluePrint; +import org.springblade.general_dispatching.model_instance.vo.BluePrintQuery; +import org.springblade.general_dispatching.model_instance.vo.BluePrintVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface BluePrintService { + int deleteByPrimaryKey(Integer id); + + int insert(BluePrint record); + + BluePrint selectByPrimaryKey(Integer id); + + int updateByPrimaryKey(BluePrint record); + + IPage selectByParam(@Param("mi") BluePrintQuery mi, IPage page); + + List selectByParam(@Param("mi") BluePrintQuery mi); + + int updateBluePrint(Integer bluePrintId, String status, boolean isDel, String user); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/DealDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/DealDataService.java new file mode 100644 index 0000000..3a8ed79 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/DealDataService.java @@ -0,0 +1,5 @@ +package org.springblade.general_dispatching.model_instance.service; + +public interface DealDataService { + Object getResultNew(Integer instanceId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelHiInstanceService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelHiInstanceService.java new file mode 100644 index 0000000..b3654c5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelHiInstanceService.java @@ -0,0 +1,15 @@ +package org.springblade.general_dispatching.model_instance.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; + +import java.util.List; + +public interface ModelHiInstanceService { + IPage getModelInstances(ModelInstanceInfoQuery modelInstanceQuery, IPage page); + List getModelInstanceAll(ModelInstanceInfoQuery modelInstanceQuery); + ModelInstanceInfoVo getInstanceById(Integer instanceId); + ListgetInstanceByPrintId(Integer schemeId); + Integer selectByModelCode(String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceParamService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceParamService.java new file mode 100644 index 0000000..d9c0cbf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceParamService.java @@ -0,0 +1,9 @@ +package org.springblade.general_dispatching.model_instance.service; + +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; + +import java.util.List; + +public interface ModelInstanceParamService { + List selectByInstanceId(Integer instanceId, String table); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceResultConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceResultConfigService.java new file mode 100644 index 0000000..6434aef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelInstanceResultConfigService.java @@ -0,0 +1,20 @@ +package org.springblade.general_dispatching.model_instance.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResultConfig; + +import java.util.List; + +public interface ModelInstanceResultConfigService { + int deleteByPrimaryKey(Integer id); + + int insert(ModelInstanceResultConfig record); + + int updateByPrimaryKey(ModelInstanceResultConfig record); + + ModelInstanceResultConfig selectByPrimaryKey(Integer id); + + List selectByParam(String name, String code, List codes); + + IPage selectByParam(String name, String code, IPage page); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelResultParamService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelResultParamService.java new file mode 100644 index 0000000..4499a06 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelResultParamService.java @@ -0,0 +1,9 @@ +package org.springblade.general_dispatching.model_instance.service; + +import org.springblade.general_dispatching.model_instance.entity.ModelResultParam; + + +public interface ModelResultParamService { + //获取方案的最新数据 + ModelResultParam getModelResultParamData(Integer schemeId, String code); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelRuInstanceService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelRuInstanceService.java new file mode 100644 index 0000000..4b7795a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/ModelRuInstanceService.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.model_instance.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; + +import java.util.List; + +public interface ModelRuInstanceService { + Integer updateModelInstance(ModelInstanceInfoVo modelInstanceInfoVo); + + IPage getModelInstances(ModelInstanceInfoQuery modelInstanceQuery, IPage page); + + List getModelInstanceAll(ModelInstanceInfoQuery modelInstanceQuery); + ModelInstanceInfoVo getInstanceById(Integer instanceId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/BluePrintServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/BluePrintServiceImpl.java new file mode 100644 index 0000000..1277669 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/BluePrintServiceImpl.java @@ -0,0 +1,87 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.mapper.BluePrintMapper; +import org.springblade.general_dispatching.model_instance.entity.BluePrint; +import org.springblade.general_dispatching.model_instance.service.BluePrintService; +import org.springblade.general_dispatching.model_instance.service.ModelHiInstanceService; +import org.springblade.general_dispatching.model_instance.vo.BluePrintDeleteEnum; +import org.springblade.general_dispatching.model_instance.vo.BluePrintQuery; +import org.springblade.general_dispatching.model_instance.vo.BluePrintVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class BluePrintServiceImpl implements BluePrintService { + + @Resource + private BluePrintMapper bluePrintMapper; + @Autowired + ModelHiInstanceService modelHiInstanceService; + + @Override + public int deleteByPrimaryKey(Integer id) { + return bluePrintMapper.deleteByPrimaryKey(id); + } + + @Override + public int insert(BluePrint record) { + bluePrintMapper.insert(record); + return record.getId(); + } + + @Override + public BluePrintVo selectByPrimaryKey(Integer id) { + return bluePrintMapper.selectByPrimaryKey(id); + } + + @Override + public int updateByPrimaryKey(BluePrint record) { + return bluePrintMapper.updateByPrimaryKey(record); + } + + @Override + public IPage selectByParam(BluePrintQuery mi, IPage page) { + if(mi == null){ + mi = new BluePrintQuery(); + mi.setOrderByClause("print.LAST_UPDATE_TIME desc"); + }else{ + mi.setOrderByClause("print.LAST_UPDATE_TIME desc"); + } + return bluePrintMapper.selectByParam(mi,page); + } + + @Override + public List selectByParam(BluePrintQuery mi) { + return bluePrintMapper.selectByParam(mi); + } + + + /** + * 修改方案 + * @param bluePrintId 方案id + * @return + */ + @Override + public int updateBluePrint(Integer bluePrintId,String status,boolean isDel ,String user) { + BluePrint bluePrint=bluePrintMapper.selectByKey(bluePrintId); + + if(isDel) {//是否删除方案 + bluePrint.setDeleted(BluePrintDeleteEnum.ONE.getCode()); + } + + if(StringUtils.isNotEmpty(status)){//修改状态 + bluePrint.setStatus(status); + } + + bluePrint.setLastUpdater(user); + bluePrint.setLastUpdateTime(new Date()); + + return bluePrintMapper.updateByPrimaryKey(bluePrint); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/DealDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/DealDataServiceImpl.java new file mode 100644 index 0000000..ec26442 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/DealDataServiceImpl.java @@ -0,0 +1,680 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import org.springblade.general_dispatching.model_base.entity.DisPlayResultConfig; +import org.springblade.general_dispatching.model_base.mapper.ModelResultConfigMapper; +import org.springblade.general_dispatching.entity.Chart; +import org.springblade.general_dispatching.entity.Series; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.service.DealDataService; +import org.springblade.general_dispatching.model_instance.service.ModelHiInstanceService; +import org.springblade.general_dispatching.model_instance.vo.InstanceStateEnum; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceResultVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class DealDataServiceImpl implements DealDataService { + + @Autowired + ModelInstanceManager modelInstanceManager; + + @Resource + ModelResultConfigMapper modelResultConfigMapper; + + @Autowired + ModelHiInstanceService modelHiInstanceService; + + @Override + public Object getResultNew(Integer instanceId) { + //获取结果集 + List list=modelInstanceManager.getModelInstanceResult(instanceId); + + boolean flag=list!=null && !list.isEmpty(); + if(!flag){ + return null; + } + //获取实例信息 + ModelInstanceInfoVo modelInstanceVo=modelHiInstanceService.getInstanceById(instanceId); + if(modelInstanceVo==null){ + return null; + } + + String stateCode=modelInstanceVo.getStateCode(); + if(InstanceStateEnum.FOUR.getCode().equals(stateCode)){ + return stateCode; + } + + //获取模型结果配置信息 + String modelCode=modelInstanceVo.getCode(); + //获取结果配置信息 + List configs=modelResultConfigMapper.selectDisPlayResultConfig(modelCode); + //归组 + Map> groupRes=getMapDisPlayResultConfigList(configs); + //获取每个组的数据集 + Map groupData=dealAllGroupRes(groupRes,list); + //处理最终数据 + return getFinalizedResult(groupData,configs); + } + + //查找需要合并的groupId + Map> getGroupIds(Map groupData,List configs){ + Map> data=new LinkedHashMap<>(); + List groupIds=null; + for (Map.Entry m : groupData.entrySet()) { + String groupId=m.getKey(); + DisPlayResultConfig disPlayResultConfig=getDisPlayResultConfigByGroupId(groupId,configs); + String displayType_displayRule= + disPlayResultConfig.getDisplayType()+"_"+disPlayResultConfig.getDisplayRule(); + String groupName=disPlayResultConfig.getGroupName(); + String key=displayType_displayRule+"_"+groupName; + groupIds=data.get(key); + if(groupIds==null || (groupIds!=null&&groupIds.isEmpty())){ + groupIds = new ArrayList<>(); + groupIds.add(groupId); + }else{ + groupIds.add(groupId); + } + data.put(key,groupIds); + } + return data; + } + + //判读那Object是不是map + boolean isMapObj(Object obj){ + boolean flag=true; + try { + Map param = (Map) obj; + }catch (ClassCastException e){ + flag=false; + } + return flag; + } + + + //判读那Object是不是map + boolean isArrayList(Object obj){ + boolean flag=true; + try { + List> param = (List>) obj; + }catch (ClassCastException e){ + flag=false; + } + return flag; + } + + //获取组信息 + private DisPlayResultConfig getDisPlayResultConfigByGroupId(String groupId,List configs){ + for(DisPlayResultConfig config:configs){ + String groupIdTmp= config.getGroupId(); + if(groupIdTmp.equals(groupId)){ + return config; + } + } + return null; + } + + //合并数据集 + List> getFinalizedResult(Map groupData,List configs){ + List> all=new ArrayList<>(); + Map> data=getGroupIds(groupData,configs); + for (Map.Entry> m : data.entrySet()) { + Map map=new HashMap<>(); + String key=m.getKey(); + List value=m.getValue(); + Object obj=getMergeData(key,value,groupData); + map.put("data",obj); + //获取配置组信息 + DisPlayResultConfig groupInfo=getDisPlayResultConfigByGroupId(value.get(0),configs); + map.put("displayType",groupInfo.getDisplayType()); + map.put("displayRule",groupInfo.getDisplayRule()); + all.add(map); + } + return all; + } + + Object getMergeData(String key,List groupIds,Map groupData){ + String[] keys=key.split("_"); + String displayType =keys[0]; + String displayRule = keys[1]; + List> tableDatas=new ArrayList(); + Map data=new HashMap<>(); + for(String groupId:groupIds){ + if("table".equals(displayType)){//表格 + if("2".equals(displayRule) || "4".equals(displayRule)) {//树表 + Map tmpData = (Map) groupData.get(groupId); + data.put("columns", tmpData.get("columns")); + Object obj=tmpData.get("data"); + if(isMapObj(obj)) { + Map tableData = (Map) obj; + tableDatas.add(tableData); + }else if(isArrayList(tmpData.get("data"))){ + List> param = (List>) obj; + tableDatas.addAll(param); + } + + data.put("data",tableDatas); + }else if("1".equals(displayRule) || "5".equals(displayRule) || "3".equals(displayRule)){ + return groupData.get(groupId); + } + }else{//图形或文本 + return groupData.get(groupId); + } + } + return data; + } + + //归组方法 + private Map> getMapDisPlayResultConfigList(List configs){ + Map> groupRes=new HashMap<>(); + for (DisPlayResultConfig config:configs){ + List map=groupRes.get(config.getGroupId()); + if(map==null || map.isEmpty()){ + map = new ArrayList<>(); + map.add(config); + groupRes.put(config.getGroupId(),map); + }else{ + map.add(config); + } + } + return groupRes; + } + + //处理数据总方法 + private Map dealAllGroupRes(Map> groupRes,List list){ + Map data=new LinkedHashMap<>(); + for (Map.Entry> m : groupRes.entrySet()) { + List value=m.getValue(); + Object obj=dealGroupRes(value,list); + data.put(m.getKey(),obj); + } + return data; + } + + //处理每个组的数据 + private Object dealGroupRes(List configs,List list){ + //获取第一个 + DisPlayResultConfig config=configs.get(0); + //获取这个组的展示方式 + String displayType=config.getDisplayType(); + if("table".equals(displayType)){//表格 + return dealTableData(config,configs,list); + }else if("text".equals(displayType)){//文本 + return dealTextData(config, configs,list); + }else if("chart".equals(displayType)){//图表 + return dealChartData(config, configs,list); + } + return null; + } + + //处理表格数据 + private Object dealTableData(DisPlayResultConfig config,List configs,List list){ + String displayRule=config.getDisplayRule(); + Map returnData=new HashMap<>(); + List columns=null;//表头数据 + Object data=null;//具体数据 + + if ("1".equals(displayRule)){//1普通 + columns =getCommonColumns(); + data=dealCommonTable(configs,list); + }else if("2".equals(displayRule)){//2 dt行转列(name为typeCode) + //处理一下三班的数据 + if(hasZeroZero(list)){ + List tmp=changeList(list); + columns =getTreeColumns(config,tmp); + data=dealDtTable(configs,tmp); + }else{ + columns =getTreeColumns(config,list); + data=dealDtTable(configs,list); + } + }else if("3".equals(displayRule)){//3 typeCode行转列(name为dt) + columns =getTypeCodeColumns(config,configs); + data=dealTypeCodeTable_Dt(list); + }else if("4".equals(displayRule)){//4树表 + columns =getTreeColumns(config,list); + data=dealTreeTable(configs,list); + }else if("5".equals(displayRule)){//5 typeCode行转列(name为typeCode) + columns =getTypeCodeColumns(config,configs); + data=dealTypeCodeTable_Type(configs,list); + } + returnData.put("columns",columns); + returnData.put("data",data); + return returnData; + } + + private List getCommonColumns(){ + List columns=new ArrayList<>(); + columns.add("时间"); + columns.add("数据项名称"); + columns.add("值"); + columns.add("单位"); + return columns; + } + + private List getTypeCodeColumns(DisPlayResultConfig config,List configs){ + List columns=new ArrayList<>(); + columns.add(config.getGroupName()); + for(DisPlayResultConfig vo:configs){ + String typeName=vo.getResultItemName(); + if(typeName.indexOf("_")>-1){ + typeName=typeName.split("_")[1]; + } + String name=""; + if(vo.getUnit()!=null && !"".equals(vo.getUnit())){ + name=typeName+"("+vo.getUnit()+")"; + }else{ + name=typeName; + } + + if(!columns.contains(name)) { + columns.add(name); + } + } + return columns; + } + + + + //获取树表的标题 + private List getTreeColumns(DisPlayResultConfig config,List list){ + List columns=new ArrayList<>(); + List tmpColumns=new ArrayList<>(); + columns.add("信息"); + for(ModelInstanceResultVo result:list){ + if ("初始值".equals(result.getDt())){ + continue; + } + + String dt=result.getDt(); + if(!tmpColumns.contains(dt)){ + tmpColumns.add(dt); + if(dt.contains("08:00:00") || dt.contains("16:00:00")|| dt.contains("00:00:00")){ + dt=fromDateToClasses(dt); + } + String name=""; + if(config.getUnit()!=null && !"".equals(config.getUnit())){ + name=dt+config.getGroupName()+"("+config.getUnit()+")"; + }else{ + name=dt+config.getGroupName(); + } + columns.add(name); + } + } + return columns; + } + + + //转换日期变成三班 + private String fromDateToClasses(String dt){ + String str=""; + if(dt.contains("08:00:00")){ + str="早班"; + }else if(dt.contains("16:00:00")){ + str="中班"; + }else if(dt.contains("00:00:00")){ + str="晚班"; + } + return str; + } + + private List> dealCommonTable(List configs,List list){ + List> data=new ArrayList<>(); + for (DisPlayResultConfig config:configs){ + String typeCode=config.getResultItem(); + List resultVos=getResultByTypeCode(typeCode,list); + for(ModelInstanceResultVo vo:resultVos){ + LinkedHashMap map=new LinkedHashMap<>(); + map.put("dt",vo.getDt()); + map.put("name",vo.getResultItemName()); + map.put("value",vo.getValue()); + map.put("unit",vo.getUnit()); + data.add(map); + } + + } + return data; + } + + private List> dealDtTable(List configs,List list){ + List> data=new ArrayList<>(); + for (DisPlayResultConfig config:configs){ + Map map=new HashMap<>(); + String typeCode=config.getResultItem(); + List resultVos=getResultByTypeCode(typeCode,list); + for(int i=0;i< resultVos.size();i++){ + ModelInstanceResultVo vo =resultVos.get(i); + String dataI=vo.getValue(); + String typeName=vo.getResultItemName(); + if(typeName.indexOf("_")>-1){ + String[] typeNames=typeName.split("_"); + if(typeName.contains("机组")) {//机组 + typeName = typeNames[0]+typeNames[1]; + }else{ + + } + } + map.put("name",typeName); + map.put("data"+i,dataI); + } + data.add(map); + } + return data; + } + + private Object dealTypeCodeTable_Dt(List list){ + List> data=new ArrayList<>(); + Map> param=new LinkedHashMap<>(); + for(ModelInstanceResultVo result:list){ + if ("初始值".equals(result.getDt())){ + continue; + } + String dt=result.getDt(); + List tmpData=param.get(dt); + if(tmpData==null){ + tmpData=new ArrayList<>(); + tmpData.add(result.getValue()); + }else{ + tmpData.add(result.getValue()); + } + param.put(dt,tmpData); + } + + for (Map.Entry> m : param.entrySet()) { + Map tmp=new LinkedHashMap<>(); + tmp.put("name",m.getKey()); + List value=m.getValue(); + for(int i=0;i configs,List list){ + List> data=new ArrayList<>(); + Map> names = getTypeCodeName(configs,list); + for (Map.Entry> m : names.entrySet()) { + Map param=new LinkedHashMap<>(); + String name = m.getKey(); + param.put("name",name); + List typeCodes=m.getValue(); + for (int i=0;i resultVos = getResultByTypeCode(typeCodes.get(i), list); + param.put("data"+i,resultVos.get(0).getValue()); + } + data.add(param); + } + + return data; + } + + private Map> getTypeCodeName(List configs,List list){ + Map> names=new LinkedHashMap<>(); + + List typeCodes=null; + for (DisPlayResultConfig config : configs) { + String typeCode = config.getResultItem(); + List resultVos = getResultByTypeCode(typeCode, list); + String typeName=resultVos.get(0).getResultItemName(); + String name=""; + if(typeName.indexOf("_")>-1){ + name=typeName.split("_")[0]; + }else{ + name=typeName; + } + + typeCodes=names.get(name); + if(typeCodes==null){ + typeCodes=new ArrayList<>(); + typeCodes.add(typeCode); + }else{ + typeCodes.add(typeCode); + } + names.put(name,typeCodes); + } + return names; + } + + private Object dealTreeTable(List configs,List list){ + Map data=new HashMap<>(); + List> children=new ArrayList(); + + for (DisPlayResultConfig config : configs) { + String typeCode = config.getResultItem(); + Integer pno = config.getDisplayNum(); + String groupId = config.getGroupId(); + List resultVos = getResultByTypeCode(typeCode, list); + int id = Integer.valueOf(groupId + pno); + if (pno == 0) { + data.put("id", id); + for (int i = 0; i < resultVos.size(); i++) { + ModelInstanceResultVo vo = resultVos.get(i); + String typeName = vo.getResultItemName(); + if (typeName.indexOf("_") > -1) { + String[] typeNames = typeName.split("_"); + typeName = typeNames[1]; + } + data.put("name", typeName); + data.put("data" + i, vo.getValue()); + } + } else { + Map child = new HashMap<>(); + child.put("id", id); + for (int i = 0; i < resultVos.size(); i++) { + ModelInstanceResultVo vo = resultVos.get(i); + String typeName = vo.getResultItemName(); + if (typeName.indexOf("_") > -1) { + String[] typeNames = typeName.split("_"); + typeName = typeNames[1]; + } + child.put("name", typeName); + child.put("data" + i, vo.getValue()); + } + children.add(child); + } + } + + + if(children!=null && !children.isEmpty()) { + data.put("children", children); + } + + if(!pNoZero(configs)){ + return children; + } + return data; + } + + //树表中包含有pano为0 + private boolean pNoZero(List configs){ + for (DisPlayResultConfig config:configs) { + if(config.getDisplayNum()==0){ + return true; + } + } + return false; + } + + //根据typeCode获取list + private List getResultByTypeCode(String typeCode, List list){ + List data=new ArrayList<>(); + for (ModelInstanceResultVo vo:list){ + if("初始值".equals(vo.getDt())){//过滤掉原始数据 + continue; + } + if(vo.getResultItem().equals(typeCode)){ + data.add(vo); + } + } + return data; + } + + //处理文本数据 + private Object dealTextData(DisPlayResultConfig config,List configs,List list){ + String displayRule=config.getDisplayRule(); + List data=getTextData(configs,list); + if ("1".equals(displayRule)){//1字符串(用,分隔) + String str=""; + for (ModelInstanceResultVo vo:data){ + if("".equals(str)){ + str = vo.getValue(); + }else{ + str += ","+vo.getValue(); + } + } + Map map=new HashMap<>(); + ModelInstanceResultVo vo=data.get(0); + dealUnit(map,vo.getResultItemName(),vo.getUnit()); + map.put("data", str); + return map; + }else if("2".equals(displayRule)){//2 数组 + Map map=new HashMap<>(); + String[] str=new String[data.size()]; + for (int i=0;i> dataTmp=new ArrayList<>(); + int count=data.size(); + for (int i=0;i map=new HashMap<>(); + map.put("data",vo.getValue()); + + String dtStr=fromDateToClasses(vo.getDt()); + if( !"".equals(dtStr) && count==3 ) { + dealUnit(map,dtStr + config.getGroupName(),vo.getUnit()); + }else{ + dealUnit(map,vo.getResultItemName(),vo.getUnit()); + } + + dataTmp.add(map); + } + + return dataTmp; + } + return null; + } + + private void dealUnit(Map map,String name,String unit){ + if(unit!=null &&!"".equals(unit)) { + map.put("name", name + "(" + unit + ")"); + }else{ + map.put("name", name ); + } + } + + List getTextData(List configs, List list){ + List resultVos =new ArrayList<>(); + for(DisPlayResultConfig config:configs) { + List tmp=getResultByTypeCode(config.getResultItem(), list); + resultVos.addAll(tmp); + } + + if(hasZeroZero(resultVos)){ + return changeList(resultVos); + } + + return resultVos; + } + + //是否包含00:00:00的日期 + private boolean hasZeroZero(List tmp){ + for(ModelInstanceResultVo vo:tmp){ + boolean flag=vo.getDt().contains("00:00:00"); + if(flag){ + return true; + } + } + return false; + } + + //调整顺序 + private List changeList(List tmp){ + List resultVos =new ArrayList<>(); + + List list =new ArrayList<>(); + + for(ModelInstanceResultVo vo:tmp){ + boolean flag=vo.getDt().contains("00:00:00"); + if(flag){ + list.add(vo); + }else { + resultVos.add(vo); + } + } + + resultVos.addAll(list); + return resultVos; + } + + //处理图形数据 + private Object dealChartData(DisPlayResultConfig config,List configs,List list){ + Chart chart=new Chart<>(); + List legend = new ArrayList<>(); + List axisData = new ArrayList<>(); + List> series=new ArrayList<>(); + for (DisPlayResultConfig disPlayResultConfig:configs){ + String unit=disPlayResultConfig.getUnit(); + String name=disPlayResultConfig.getResultItemName(); + if(unit!=null&&!"".equals(unit)){ + name=name+"("+unit+")"; + } + legend.add(name); + + Series serie=new Series(); + serie.setName(name); + + List data=getChartData(disPlayResultConfig,list); + serie.setData(data); + series.add(serie); + } + + for (ModelInstanceResultVo result:list){ + String dt=result.getDt(); + if ("初始值".equals(dt)){ + continue; + } + + if(!axisData.contains(dt)) { + axisData.add(result.getDt()); + } + } + + chart.setLegend(legend); + chart.setAxisData(axisData); + chart.setSeries(series); + return chart; + } + + private List getChartData(DisPlayResultConfig disPlayResultConfig,List list){ + List data=new ArrayList<>(); + String typeCode=disPlayResultConfig.getResultItem(); + for(ModelInstanceResultVo vo:list){ + if ("初始值".equals(vo.getDt())){ + continue; + } + String type=vo.getResultItem(); + if(typeCode.equals(type)){ + String value=vo.getValue(); + if(value.equals("-nan(ind)")){ + value="0"; + } + data.add(Double.valueOf(value)); + } + } + return data; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelHiInstanceServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelHiInstanceServiceImpl.java new file mode 100644 index 0000000..59ec378 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelHiInstanceServiceImpl.java @@ -0,0 +1,108 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.constant.Constants; +import org.springblade.general_dispatching.model_instance.mapper.ModelHiInstanceMapper; +import org.springblade.general_dispatching.model_instance.service.ModelHiInstanceService; +import org.springblade.general_dispatching.model_instance.vo.InstanceStateEnum; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class ModelHiInstanceServiceImpl implements ModelHiInstanceService { + @Resource + private ModelHiInstanceMapper instanceMapper; + + @Override + public IPage getModelInstances(ModelInstanceInfoQuery modelInstanceQuery, IPage page) { + if(modelInstanceQuery == null){ + modelInstanceQuery = new ModelInstanceInfoQuery(); + modelInstanceQuery.setOrderByClause(" wmi.LAST_UPDATE_TIME desc "); + }else{ + modelInstanceQuery.setOrderByClause(" wmi.LAST_UPDATE_TIME desc "); + } + IPage rows = instanceMapper.selectByPage(modelInstanceQuery, page); + dealModelInstanceInfoVo(rows.getRecords()); + return rows; + } + + @Override + public List getModelInstanceAll(ModelInstanceInfoQuery modelInstanceQuery) { + if(modelInstanceQuery == null){ + modelInstanceQuery = new ModelInstanceInfoQuery(); + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + }else if(modelInstanceQuery!=null && modelInstanceQuery.getOrderByClause()==null){ + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + } + List rows = instanceMapper.selectByPage(modelInstanceQuery); + dealModelInstanceInfoVo(rows); + return rows; + } + + @Override + public ModelInstanceInfoVo getInstanceById(Integer instanceId) { + ModelInstanceInfoVo instance = instanceMapper.selectByPrimaryKey(instanceId); + return instance; + } + + @Override + public List getInstanceByPrintId(Integer bluePrintId) { + ModelInstanceInfoQuery mi = new ModelInstanceInfoQuery(); + mi.setBluePrintId(bluePrintId); + mi.setOrderByClause("wmi.LAST_UPDATE_TIME asc"); + List list=instanceMapper.selectByPage(mi); + dealModelInstanceInfoVo(list); + return list; + } + + private void dealModelInstanceInfoVo(List list){ + // + List> users=instanceMapper.selectUser(); + + List> modelInfos=Constants.param.get("modelInfos"); + if(modelInfos ==null || modelInfos.isEmpty()) { + modelInfos=instanceMapper.selectModelInfo(); + Constants.param.put("modelInfos", modelInfos); + } + + for(ModelInstanceInfoVo vo:list){ + String createrName=getUserNameById(users,vo.getCreater()); + vo.setCreaterName(createrName); +// String lastUpdaterName=getUserNameById(users,vo.getLastUpdater()); +// vo.setLastUpdaterName(lastUpdaterName); + + String name=getNameByCode(modelInfos,vo.getCode()); + vo.setName(name); + } + } + + private String getUserNameById(List> list,String userId){ + for(Map map:list){ + String tmpId=String.valueOf(map.get("id")); + if(userId.equals(tmpId)){ + return String.valueOf(map.get("name")); + } + } + return userId; + } + + private String getNameByCode(List> list,String code){ + for(Map map:list){ + String tmpCode=String.valueOf(map.get("code")); + if(code.equals(tmpCode)){ + return String.valueOf(map.get("name")); + } + } + return null; + } + + @Override + public Integer selectByModelCode(String code) { + return instanceMapper.selectByModelCode(code, InstanceStateEnum.THREE.getCode()); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceParamServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceParamServiceImpl.java new file mode 100644 index 0000000..1a675e2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceParamServiceImpl.java @@ -0,0 +1,21 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import org.springblade.general_dispatching.model_instance.mapper.ModelInstanceParamMapper; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; +import org.springblade.general_dispatching.model_instance.service.ModelInstanceParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ModelInstanceParamServiceImpl implements ModelInstanceParamService { + @Autowired + ModelInstanceParamMapper modelInstanceParamMapper; + + @Override + public List selectByInstanceId(Integer instanceId, String table) { + return modelInstanceParamMapper.selectByInstanceId(instanceId,table); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceResultConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceResultConfigServiceImpl.java new file mode 100644 index 0000000..8354673 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelInstanceResultConfigServiceImpl.java @@ -0,0 +1,66 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.mapper.ModelInstanceResultConfigMapper; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResultConfig; +import org.springblade.general_dispatching.model_instance.service.ModelInstanceResultConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelInstanceResultConfigServiceImpl implements ModelInstanceResultConfigService { + @Autowired + private ModelInstanceResultConfigMapper modelInstanceResultConfigMapper; + + @Override + public int deleteByPrimaryKey(Integer id) { + return modelInstanceResultConfigMapper.deleteByPrimaryKey(id); + } + + @Override + public int insert(ModelInstanceResultConfig record) { + modelInstanceResultConfigMapper.insert(record); + return record.getId(); + } + + @Override + public int updateByPrimaryKey(ModelInstanceResultConfig record) { + return modelInstanceResultConfigMapper.updateByPrimaryKey(record); + } + + @Override + public ModelInstanceResultConfig selectByPrimaryKey(Integer id) { + return modelInstanceResultConfigMapper.selectByPrimaryKey(id); + } + + @Override + public List selectByParam(String name,String code,List codes) { + Map param=new HashMap<>(); + if(name!=null && !"".equals(name)){ + param.put("name","%"+name+"%"); + } + if(code!=null && !"".equals(code)){ + param.put("code","%"+code+"%"); + } + if(codes!=null && !codes.isEmpty()){ + param.put("codes",codes); + } + return modelInstanceResultConfigMapper.selectByParam(param); + } + + @Override + public IPage selectByParam(String name, String code, IPage page) { + Map param=new HashMap<>(); + if(name!=null && !"".equals(name)){ + param.put("name","%"+name+"%"); + } + if(code!=null && !"".equals(code)){ + param.put("code","%"+code+"%"); + } + return modelInstanceResultConfigMapper.selectByParam(param,page); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelResultParamServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelResultParamServiceImpl.java new file mode 100644 index 0000000..e936dc3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelResultParamServiceImpl.java @@ -0,0 +1,38 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import org.springblade.general_dispatching.model_instance.mapper.ModelResultParamMapper; +import org.springblade.general_dispatching.model_instance.entity.ModelResultParam; +import org.springblade.general_dispatching.model_instance.service.ModelResultParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ModelResultParamServiceImpl implements ModelResultParamService { + @Autowired + ModelResultParamMapper modelResultParamMapper; + + @Override + public ModelResultParam getModelResultParamData(Integer schemeId, String code) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + Date now=new Date(); + String start=df.format(now)+" 00:00:00"; + String end=sdf.format(now); + Map param=new HashMap<>(); + param.put("schemeId",schemeId); + param.put("code",code); + param.put("start",start); + param.put("end",end); + List modelResultParams=modelResultParamMapper.getModelResultParamData(param); + if(modelResultParams!=null && modelResultParams.size() >0) { + return modelResultParams.get(0); + } + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelRuInstanceServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelRuInstanceServiceImpl.java new file mode 100644 index 0000000..abed18c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/service/impl/ModelRuInstanceServiceImpl.java @@ -0,0 +1,53 @@ +package org.springblade.general_dispatching.model_instance.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.model_instance.mapper.ModelRuInstanceMapper; +import org.springblade.general_dispatching.model_instance.entity.ModelInstance; +import org.springblade.general_dispatching.model_instance.service.ModelRuInstanceService; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ModelRuInstanceServiceImpl implements ModelRuInstanceService { + @Autowired + private ModelRuInstanceMapper instanceMapper; + @Override + public Integer updateModelInstance(ModelInstanceInfoVo modelInstanceInfoVo) { + ModelInstance modelInstance = modelInstanceInfoVo.toModelInstance(); + int resutl = instanceMapper.updateByPrimaryKeySelective(modelInstance); + return resutl; + } + + @Override + public IPage getModelInstances(ModelInstanceInfoQuery modelInstanceQuery, IPage page) { + if(modelInstanceQuery == null){ + modelInstanceQuery = new ModelInstanceInfoQuery(); + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + }else{ + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + } + return instanceMapper.selectByModel(modelInstanceQuery, page); + } + + @Override + public List getModelInstanceAll(ModelInstanceInfoQuery modelInstanceQuery) { + if(modelInstanceQuery == null){ + modelInstanceQuery = new ModelInstanceInfoQuery(); + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + }else if(modelInstanceQuery!=null && modelInstanceQuery.getOrderByClause()==null){ + modelInstanceQuery.setOrderByClause("wmi.LAST_UPDATE_TIME desc"); + } + List rows = instanceMapper.selectByModel(modelInstanceQuery); + return rows; + } + + @Override + public ModelInstanceInfoVo getInstanceById(Integer instanceId) { + ModelInstanceInfoVo instance = instanceMapper.selectByPrimaryKey(instanceId); + return instance; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintDeleteEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintDeleteEnum.java new file mode 100644 index 0000000..c1092d0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintDeleteEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public enum BluePrintDeleteEnum { + ZERO(0,"未删除"),ONE(1,"已删除"); + private Integer code; + private String name; + + BluePrintDeleteEnum(Integer code,String name){ + this.code = code; + this.name = name; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintQuery.java new file mode 100644 index 0000000..974ca9f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintQuery.java @@ -0,0 +1,112 @@ +package org.springblade.general_dispatching.model_instance.vo; + +import java.util.Date; +import java.util.List; + +public class BluePrintQuery { + private String name; + private String remark; + private String typeCode; + + private String creater; + + private List status; + + private Date createStartTime; + + private Date createEndTime; + + private String orderByClause; + private List refModule; + private String applyPeriod; + + private String printCode; + + public String getPrintCode() { + return printCode; + } + + public void setPrintCode(String printCode) { + this.printCode = printCode; + } + + public String getApplyPeriod() { + return applyPeriod; + } + + public void setApplyPeriod(String applyPeriod) { + this.applyPeriod = applyPeriod; + } + + public List getRefModule() { + return refModule; + } + + public void setRefModule(List refModule) { + this.refModule = refModule; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public List getStatus() { + return status; + } + + public void setStatus(List status) { + this.status = status; + } + + public Date getCreateStartTime() { + return createStartTime; + } + + public void setCreateStartTime(Date createStartTime) { + this.createStartTime = createStartTime; + } + + public Date getCreateEndTime() { + return createEndTime; + } + + public void setCreateEndTime(Date createEndTime) { + this.createEndTime = createEndTime; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintStatusEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintStatusEnum.java new file mode 100644 index 0000000..07a2ea8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintStatusEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public enum BluePrintStatusEnum { + ZERO("00","待创建"),ONE("01","待执行"),TWO("02","执行中"),THREE("03","已完成"),FOUR("04","已停止"),FIVE("05","已归档"); + private String code; + private String name; + + BluePrintStatusEnum(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintTypeEnum.java new file mode 100644 index 0000000..fc48624 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintTypeEnum.java @@ -0,0 +1,28 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public enum BluePrintTypeEnum { + ONE("01","来水预测"),TWO("02","水量调度"),THREE("03","发电调度"),FOUR("04","水务计算"); + private String code; + private String name; + + BluePrintTypeEnum(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintVo.java new file mode 100644 index 0000000..3d86fdf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/BluePrintVo.java @@ -0,0 +1,51 @@ +package org.springblade.general_dispatching.model_instance.vo; + +import org.springblade.general_dispatching.model_instance.entity.BluePrint; + +public class BluePrintVo extends BluePrint { + private String refModuleName; + private String typeName; + private String statusName; + private String applyPeriodName; + private String printCode; + + public String getPrintCode() { + return printCode; + } + + public void setPrintCode(String printCode) { + this.printCode = printCode; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getRefModuleName() { + return refModuleName; + } + + public void setRefModuleName(String refModuleName) { + this.refModuleName = refModuleName; + } + + public String getApplyPeriodName() { + return applyPeriodName; + } + + public void setApplyPeriodName(String applyPeriodName) { + this.applyPeriodName = applyPeriodName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/InstanceStateEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/InstanceStateEnum.java new file mode 100644 index 0000000..67f3ac7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/InstanceStateEnum.java @@ -0,0 +1,30 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public enum InstanceStateEnum { + ZERO("01","待执行"),ONE("02","执行中"), + THREE("03","已完成"),FOUR("04","已停止"); + + private String code; + private String name; + + InstanceStateEnum(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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoQuery.java new file mode 100644 index 0000000..07c5eb1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoQuery.java @@ -0,0 +1,96 @@ +package org.springblade.general_dispatching.model_instance.vo; + +import java.util.Date; +import java.util.List; + +public class ModelInstanceInfoQuery { + private Integer bluePrintId; + + private String code;//模型code + + private Integer modelConfigId; + + private String instanceCode; + + private String creater; + + private List stateCode; + + private Date createStartTime; + + private Date createEndTime; + + private String orderByClause; + + public String getInstanceCode() { + return instanceCode; + } + + public void setInstanceCode(String instanceCode) { + this.instanceCode = instanceCode; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public List getStateCode() { + return stateCode; + } + + public void setStateCode(List stateCode) { + this.stateCode = stateCode; + } + + public Date getCreateStartTime() { + return createStartTime; + } + + public void setCreateStartTime(Date createStartTime) { + this.createStartTime = createStartTime; + } + + public Date getCreateEndTime() { + return createEndTime; + } + + public void setCreateEndTime(Date createEndTime) { + this.createEndTime = createEndTime; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public Integer getBluePrintId() { + return bluePrintId; + } + + public void setBluePrintId(Integer bluePrintId) { + this.bluePrintId = bluePrintId; + } + + public Integer getModelConfigId() { + return modelConfigId; + } + + public void setModelConfigId(Integer modelConfigId) { + this.modelConfigId = modelConfigId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoVo.java new file mode 100644 index 0000000..34faffe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceInfoVo.java @@ -0,0 +1,77 @@ +package org.springblade.general_dispatching.model_instance.vo; + +import org.springblade.general_dispatching.model_instance.entity.ModelInstance; + +public class ModelInstanceInfoVo extends ModelInstance{ + private String instanceCode; //实例编码 + private String stateName; //状态名 + private String createrName;//创建人 + private String lastUpdaterName;//更新人 + private String modelNames; //应用主体 + private String name; //模型名称 + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getModelNames() { + return modelNames; + } + + public void setModelNames(String modelNames) { + this.modelNames = modelNames; + } + + public String getStateName() { + return stateName; + } + + public void setStateName(String stateName) { + this.stateName = stateName; + } + + public String getInstanceCode() { + return instanceCode; + } + + public void setInstanceCode(String instanceCode) { + this.instanceCode = instanceCode; + } + + public String getCreaterName() { + return createrName; + } + + public void setCreaterName(String createrName) { + this.createrName = createrName; + } + + public String getLastUpdaterName() { + return lastUpdaterName; + } + + public void setLastUpdaterName(String lastUpdaterName) { + this.lastUpdaterName = lastUpdaterName; + } + + public ModelInstance toModelInstance() { + ModelInstance modelInstance = new ModelInstance(); + modelInstance.setBluePrintId(this.getBluePrintId()); + modelInstance.setLastUpdater(this.getLastUpdater()); + modelInstance.setLastUpdateTime(this.getLastUpdateTime()); + modelInstance.setCreater(this.getCreater()); + modelInstance.setCreateTime(this.getCreateTime()); + modelInstance.setId(this.getId()); + modelInstance.setIsCreateTask(this.getIsCreateTask()); + modelInstance.setIsGroup(this.getIsGroup()); + modelInstance.setCode(this.getCode()); + modelInstance.setModelConfigId(this.getModelConfigId()); + modelInstance.setRemark(this.getRemark()); + modelInstance.setStateCode(this.getStateCode()); + return modelInstance; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceResultVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceResultVo.java new file mode 100644 index 0000000..715fe34 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceResultVo.java @@ -0,0 +1,120 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public class ModelInstanceResultVo { + private Integer id; + + private Integer instanceId; + + private String dt; + + private String resultItem; + + private String resultItemName; + + private String point; + + private String value; + + private String unit; + + private String typeCode; + private String typeCodeName; + private String sourceId; + private String code; + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getTypeCodeName() { + return typeCodeName; + } + + public void setTypeCodeName(String typeCodeName) { + this.typeCodeName = typeCodeName; + } + + public String getSourceId() { + return sourceId; + } + + public void setSourceId(String sourceId) { + this.sourceId = sourceId; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getInstanceId() { + return instanceId; + } + + public void setInstanceId(Integer instanceId) { + this.instanceId = instanceId; + } + + public String getDt() { + return dt; + } + + public void setDt(String dt) { + this.dt = dt; + } + + public String getResultItem() { + return resultItem; + } + + public void setResultItem(String resultItem) { + this.resultItem = resultItem; + } + + public String getResultItemName() { + return resultItemName; + } + + public void setResultItemName(String resultItemName) { + this.resultItemName = resultItemName; + } + + public String getPoint() { + return point; + } + + public void setPoint(String point) { + this.point = point; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceVo.java new file mode 100644 index 0000000..ef4fca9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/ModelInstanceVo.java @@ -0,0 +1,38 @@ +package org.springblade.general_dispatching.model_instance.vo; + +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceParam; + +import java.util.List; + +/** + * @author moze + */ +public class ModelInstanceVo { + private ModelInstanceInfoVo modelInstance; + private List params; + private List results; + + public ModelInstanceInfoVo getModelInstance() { + return modelInstance; + } + + public void setModelInstance(ModelInstanceInfoVo modelInstance) { + this.modelInstance = modelInstance; + } + + public List getParams() { + return params; + } + + public void setParams(List params) { + this.params = params; + } + + public List getResults() { + return results; + } + + public void setResults(List results) { + this.results = results; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/SourceCodeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/SourceCodeEnum.java new file mode 100644 index 0000000..d16bb92 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/vo/SourceCodeEnum.java @@ -0,0 +1,57 @@ +package org.springblade.general_dispatching.model_instance.vo; + +public enum SourceCodeEnum { + ONE("01","水库","model_reservoir"),TWO("02","筷子篓","model_kzl"), + THREE("03","水口","model_sk"),FOUR("04","两站总","model_zh"); + SourceCodeEnum(String code,String name,String type){ + this.code=code; + this.name=name; + this.type=type; + } + private String code; + private String name; + private String type; + + + + 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; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumType(String code) { + SourceCodeEnum[] alarmGrades = SourceCodeEnum.values(); + for (SourceCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getType(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/BluePrintController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/BluePrintController.java new file mode 100644 index 0000000..3e9dfb5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/BluePrintController.java @@ -0,0 +1,149 @@ +package org.springblade.general_dispatching.model_instance.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.StringUtils; +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 org.springblade.general_dispatching.model_instance.entity.BluePrint; +import org.springblade.general_dispatching.model_instance.service.BluePrintService; +import org.springblade.general_dispatching.model_instance.vo.BluePrintQuery; +import org.springblade.general_dispatching.model_instance.vo.BluePrintStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +//import com.hnac.hzinfo.commons.bean.PageModel; +//import com.hnac.hzinfo.commons.bean.PageParam; + +@RestController +@Api(tags = "方案管理") +@RequestMapping("/model/blueprint") +public class BluePrintController { + @Autowired + private BluePrintService bluePrintService; + + @ApiOperation("获取方案列表") + @RequestMapping(value = "/listBluePrint", method = RequestMethod.GET) + public R listModelInstance(@ApiParam("方案状态")String stateCode, + @ApiParam("方案名称")String bluePrintName, + @ApiParam("单库、梯级")String bluePrintType, + @ApiParam("起始时间") String startTime, + @ApiParam("结束时间") String endTime, + @ApiParam("方案编码") String printCode, + @ApiParam("所属模块") String refModule, + @ApiParam("长期,短期,实时") String applyPeriod, + @ApiParam("分页参数") Query query){ + BluePrintQuery bluePrintQuery = new BluePrintQuery(); + + List status = new ArrayList(); + if (!StringUtils.isBlank(stateCode)) { + status.add(stateCode); + bluePrintQuery.setStatus(status); + } + if(!StringUtils.isBlank(bluePrintName)) { + bluePrintQuery.setName(bluePrintName); + } + + if(!StringUtils.isBlank(printCode)) { + bluePrintQuery.setPrintCode(printCode); + } + + if(!StringUtils.isBlank(bluePrintType)) { + bluePrintQuery.setTypeCode(bluePrintType); + } + + if(!StringUtils.isBlank(refModule)) { + String[] refModules=refModule.split(","); + bluePrintQuery.setRefModule(Arrays.asList(refModules)); + } + + if(!StringUtils.isBlank(applyPeriod)) { + bluePrintQuery.setApplyPeriod(applyPeriod); + } + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM + + if(!StringUtils.isBlank(startTime)) { + try { + Date start = simpleDateFormat.parse(startTime); + bluePrintQuery.setCreateStartTime(start); + } catch (ParseException e) { + e.printStackTrace(); + } + } + if(!StringUtils.isBlank(endTime)) { + try { + Date end = simpleDateFormat.parse(endTime); + bluePrintQuery.setCreateEndTime(end); + }catch (ParseException e) { + e.printStackTrace(); + } + } + + IPage list = bluePrintService.selectByParam(bluePrintQuery, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + + @ApiOperation(value = "获得指定方案",notes = "获得指定方案") + @RequestMapping(value = "/getBluePrint/{bluePrintId}", method = RequestMethod.GET) + public R getBluePrint(@PathVariable Integer bluePrintId){ + return R.data(bluePrintService.selectByPrimaryKey(bluePrintId),"查询成功"); + } + + + /** + * 删除方案(将状态删除状态置为1) + * @param bluePrintId 方案id + * @return 返回删除成功信息 + */ + @ApiOperation(value = "删除方案",notes = "删除方案") + @RequestMapping(value = "/blueprint/{bluePrintId}", method = RequestMethod.PUT) + public R deleteBluePrint(@PathVariable Integer bluePrintId, HttpServletRequest request){ + + String userId=String.valueOf(AuthUtil.getUserId()); + + bluePrintService.updateBluePrint(bluePrintId,null,true,userId); + return R.data(true,"删除成功"); + } + + /** + * 修改方案状态 + * @param bluePrintId 方案id + * 00 待创建 + * 01 待执行 创建时 + * 02 执行中 创建好第一个实例 + * 03 已完成 最后一个实例完成 + * 04 已停止 未完成次方案,或者中途放弃 + * 05 已归档 已完成的才能归档 + * @return 返回修改成功信息 + */ + @ApiOperation(value = "修改方案状态",notes = "修改方案状态") + @RequestMapping(value = "/blueprint/{bluePrintId}/{status}", method = RequestMethod.PUT) + public R updateStatus(@PathVariable Integer bluePrintId, @PathVariable String status, HttpServletRequest request){ + + String userId=String.valueOf(AuthUtil.getUserId()); + + int count=bluePrintService.updateBluePrint(bluePrintId,status,false,userId); + if(!BluePrintStatusEnum.FIVE.getCode().equals(status)) { + return R.data(true,"修改成功"); + }else{ + return R.data(true,"归档成功"); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelHiInstanceController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelHiInstanceController.java new file mode 100644 index 0000000..475fbb7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelHiInstanceController.java @@ -0,0 +1,82 @@ +package org.springblade.general_dispatching.model_instance.web; + +//import com.github.miemiedev.mybatis.paginator.domain.PageBounds; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.service.DealDataService; +import org.springblade.general_dispatching.model_instance.service.ModelHiInstanceService; +import org.springblade.general_dispatching.model_instance.vo.InstanceStateEnum; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +//import com.hnac.hzinfo.commons.bean.PageModel; +//import com.hnac.hzinfo.commons.bean.PageParam; + +@RestController +@Api(tags = "模型实例模块-历史实例控制器") +@RequestMapping("/model/hi/instance") +public class ModelHiInstanceController { + @Autowired + private ModelHiInstanceService modelHiInstanceService; + @Autowired + private ModelInstanceManager modelInstanceManager; + @Autowired + DealDataService dealDataService; + + @ApiOperation("获取历史模型实例列表") + @RequestMapping(value = "/listModelInstance", method = RequestMethod.GET) + public R listModelInstance(@ApiParam("实例状态")String stateCode, + @ApiParam("实例编码")String instanceCode, + @ApiParam("分页参数") Query query){ + ModelInstanceInfoQuery modelInstanceInfoQuery = new ModelInstanceInfoQuery(); + //PageBounds pageBounds = new PageBounds(pageParam.getPageNo(), pageParam.getPageSize()); + List stateCodes = new ArrayList(); + if (!StringUtils.isEmpty(stateCode)) { + stateCodes.add(stateCode); + modelInstanceInfoQuery.setStateCode(stateCodes); + } + if(!StringUtils.isEmpty(instanceCode)) { + modelInstanceInfoQuery.setInstanceCode(instanceCode); + } + IPage list = modelHiInstanceService.getModelInstances(modelInstanceInfoQuery, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + //根据实例获取结果与参数 + @ApiOperation("读取模型信息") + @RequestMapping(value = "/readModelInstance", method = RequestMethod.GET) + public R readModelInstance(@ApiParam("实例ID") Integer id){ + return R.data( modelInstanceManager.getModelInstance(id,true,true),"操作成功"); + } + + //根据实例获取结果与参数 + @ApiOperation("读取解析结果") + @RequestMapping(value = "/getResultNew", method = RequestMethod.GET) + public R getResultNew(@ApiParam("实例ID") Integer id){ + Object obj=dealDataService.getResultNew(id); + if(obj!=null) { + if(String.valueOf(obj).equals(InstanceStateEnum.FOUR.getCode())) { + return R.data(500,false,"运行失败请重试"); + }else{ + return R.data(obj,"操作成功"); + } + }else{ + return R.data(obj,"运行中..."); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceParamController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceParamController.java new file mode 100644 index 0000000..4a8f467 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceParamController.java @@ -0,0 +1,32 @@ +package org.springblade.general_dispatching.model_instance.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_instance.entity.InstanceParamTableEnum; +import org.springblade.general_dispatching.model_instance.service.ModelInstanceParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "模型实例模块-参数控制器") +@RequestMapping("/model/instance/param") +public class ModelInstanceParamController { + @Autowired + ModelInstanceParamService modelInstanceParamService; + + @ApiOperation("根据实例查询运行参数") + @RequestMapping(value = "/getRunParam", method = RequestMethod.GET) + public R getRunParam(@ApiParam("实例ID") Integer instanceId){ + return R.data(modelInstanceParamService.selectByInstanceId(instanceId, InstanceParamTableEnum.RUN_TABLE.getCode()),"查询成功"); + } + + @ApiOperation("根据实例查询历史参数") + @RequestMapping(value = "/getHiParam", method = RequestMethod.GET) + public R getHiParam(@ApiParam("实例ID") Integer instanceId){ + return R.data(modelInstanceParamService.selectByInstanceId(instanceId,InstanceParamTableEnum.HI_TABLE.getCode()),"查询成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceResultConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceResultConfigController.java new file mode 100644 index 0000000..05afe6e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelInstanceResultConfigController.java @@ -0,0 +1,65 @@ +package org.springblade.general_dispatching.model_instance.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResultConfig; +import org.springblade.general_dispatching.model_instance.service.ModelInstanceResultConfigService; +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 java.util.ArrayList; +import java.util.List; + +@RestController +@Api(tags = "模型实例模块-实例结果配置控制器") +@RequestMapping("/model/instance/result/config") +public class ModelInstanceResultConfigController { + @Autowired + ModelInstanceResultConfigService modelInstanceResultConfigService; + //根据实例获取结果与参数 + @ApiOperation("读取实例结果配置信息") + @RequestMapping(value = "/getInstanceResultConfig", method = RequestMethod.GET) + public R getInstanceResultConfig(@ApiParam("参数名称")String name, + @ApiParam("参数编码")String code){ + List codes=new ArrayList<>(); + return R.data(modelInstanceResultConfigService.selectByParam(name,code,codes)); + } + + @ApiOperation("实例结果配置信息列表") + @RequestMapping(value = "/listPage", method = RequestMethod.GET) + public R listPage(@ApiParam("参数名称")String name, + @ApiParam("参数编码")String code, + @ApiParam("分页参数") Query query){ + return R.data(modelInstanceResultConfigService.selectByParam(name,code, Condition.getPage(query))); + } + + @ApiOperation("新增结果配置信息") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public R add(@ApiParam("实例结果配置对象")@RequestBody ModelInstanceResultConfig modelInstanceResultConfig){ + int id=modelInstanceResultConfigService.insert(modelInstanceResultConfig); + return R.data(id); + } + + @ApiOperation("修改结果配置信息") + @RequestMapping(value = "/update", method = RequestMethod.PUT) + public R update(@ApiParam("实例结果配置对象")@RequestBody ModelInstanceResultConfig modelInstanceResultConfig){ + int count=modelInstanceResultConfigService.updateByPrimaryKey(modelInstanceResultConfig); + return R.data(count>0); + } + + + @ApiOperation("删除结果配置信息") + @RequestMapping(value = "/del", method = RequestMethod.DELETE) + public R del(@ApiParam("实例结果配置id")Integer id){ + int count=modelInstanceResultConfigService.deleteByPrimaryKey(id); + return R.data(count>0); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelRuInstanceController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelRuInstanceController.java new file mode 100644 index 0000000..a81db86 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/model_instance/web/ModelRuInstanceController.java @@ -0,0 +1,64 @@ +package org.springblade.general_dispatching.model_instance.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.model_instance.manager.ModelInstanceManager; +import org.springblade.general_dispatching.model_instance.service.ModelRuInstanceService; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoQuery; +import org.springblade.general_dispatching.model_instance.vo.ModelInstanceInfoVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@Api(tags = "模型实例模块-运行实例控制器") +@RequestMapping("/model/ru/instance") +public class ModelRuInstanceController { + @Autowired + private ModelInstanceManager modelInstanceManager; + + @Autowired + private ModelRuInstanceService modelRuInstanceService; + + @ApiOperation("获取运行模型实例列表") + @RequestMapping(value = "/listModelInstance", method = RequestMethod.GET) + public R listModelInstance(@ApiParam("实例状态")String stateCode, + @ApiParam("实例编码")String instanceCode, + @ApiParam("分页参数") Query query){ + ModelInstanceInfoQuery modelInstanceInfoQuery = new ModelInstanceInfoQuery(); + + List stateCodes = new ArrayList(); + if (!StringUtils.isEmpty(stateCode)) { + stateCodes.add(stateCode); + modelInstanceInfoQuery.setStateCode(stateCodes); + } + if(!StringUtils.isEmpty(instanceCode)) { + modelInstanceInfoQuery.setInstanceCode(instanceCode); + } + IPage list = modelRuInstanceService.getModelInstances(modelInstanceInfoQuery, Condition.getPage(query)); + return R.data(list,"查询成功"); + } + + @ApiOperation("读取模型信息") + @RequestMapping(value = "/readModelInstance", method = RequestMethod.GET) + public R readModelInstance(@ApiParam("实例ID") Integer id){ + return R.data(modelInstanceManager.getModelInstance(id,false,false)); + } + + @ApiOperation("读取模型实例状态") + @RequestMapping(value = "/state", method = RequestMethod.GET) + public R readModelInstanceState(@ApiParam("实例ID") Integer id){ + ModelInstanceInfoVo vo=modelRuInstanceService.getInstanceById(id); + return R.data(vo.getStateCode(),vo.getRemark()); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/FloodPreventTaskEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/FloodPreventTaskEnum.java new file mode 100644 index 0000000..0c359f4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/FloodPreventTaskEnum.java @@ -0,0 +1,121 @@ +package org.springblade.general_dispatching.task.entity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public enum FloodPreventTaskEnum { + RFlood1_ONE_1("10010101","1号闸门","闸门开度","RFlood1",1), + RFlood1_TWO_1("10010102","2号闸门","闸门开度","RFlood1",1), + RFlood1_THREE_1("10010103","3号闸门","闸门开度","RFlood1",1), + RFlood1_FOUR_1("10010104","4号闸门","闸门开度","RFlood1",1), + RFlood1_FIVE_1("10010105","5号闸门","闸门开度","RFlood1",1), + RFlood1_SIX_1("10010106","6号闸门","闸门开度","RFlood1",1), + RFlood1_ONE_2("10010201","1号闸门","泄洪量","RFlood1",2), + RFlood1_TWO_2("10010202","2号闸门","泄洪量","RFlood1",2), + RFlood1_THREE_2("10010203","3号闸门","泄洪量","RFlood1",2), + RFlood1_FOUR_2("10010204","4号闸门","泄洪量","RFlood1",2), + RFlood1_FIVE_2("10010205","5号闸门","泄洪量","RFlood1",2), + RFlood1_SIX_2("10010206","6号闸门","泄洪量","RFlood1",2), + + + RFlood2_ONE_1("11010101","1号闸门","闸门开度","RFlood2",1), + RFlood2_TWO_1("11010102","2号闸门","闸门开度","RFlood2",1), + RFlood2_THREE_1("11010103","3号闸门","闸门开度","RFlood2",1), + RFlood2_FOUR_1("11010104","4号闸门","闸门开度","RFlood2",1), + RFlood2_FIVE_1("11010105","5号闸门","闸门开度","RFlood2",1), + RFlood2_SIX_1("11010106","6号闸门","闸门开度","RFlood2",1), + RFlood2_ONE_2("11010201","1号闸门","泄洪量","RFlood2",2), + RFlood2_TWO_2("11010202","2号闸门","泄洪量","RFlood2",2), + RFlood2_THREE_2("11010203","3号闸门","泄洪量","RFlood2",2), + RFlood2_FOUR_2("11010204","4号闸门","泄洪量","RFlood2",2), + RFlood2_FIVE_2("11010205","5号闸门","泄洪量","RFlood2",2), + RFlood2_SIX_2("11010206","6号闸门","泄洪量","RFlood2",2); + + private String code; + private String name; + private String physical; + private String mCode; + private Integer groupId; + + FloodPreventTaskEnum(String code, String name, String physical, String mCode, Integer groupId){ + this.code = code; + this.name = name; + this.physical = physical; + this.mCode = mCode; + this.groupId = groupId; + } + + 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; + } + + public String getPhysical() { + return physical; + } + + public void setPhysical(String physical) { + this.physical = physical; + } + + public String getmCode() { + return mCode; + } + + public void setmCode(String mCode) { + this.mCode = mCode; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + + public static Map>> getByMCode(String mcode){ + Map>> data=new HashMap<>(); + List> list=null; + FloodPreventTaskEnum[] alarmGrades = FloodPreventTaskEnum.values(); + for (FloodPreventTaskEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().equals(mcode)) { + Map param=new HashMap<>(); + Integer groupId=alarmGrade.getGroupId(); + String name=alarmGrade.getName(); + String code=alarmGrade.getCode(); + String physical=alarmGrade.getPhysical(); + param.put("name",name); + param.put("code",code); + param.put("physical",physical); + + list=data.get(groupId); + if(list!=null && !list.isEmpty()) { + list.add(param); + data.put(groupId, list); + }else{ + list =new ArrayList<>(); + list.add(param); + data.put(groupId, list); + } + } + } + + return data; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/GeneratedRealTimeTaskEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/GeneratedRealTimeTaskEnum.java new file mode 100644 index 0000000..cbd3e98 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/GeneratedRealTimeTaskEnum.java @@ -0,0 +1,118 @@ +package org.springblade.general_dispatching.task.entity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public enum GeneratedRealTimeTaskEnum { + CLoad_ONE_1("12040101","两电站","总出力","CLoad",1), + CLoad_TWO_1("12020102","筷子篓机组","总出力","CLoad",1), + CLoad_THREE_1("12030106","水口机组","总出力","CLoad",1), + + + RReguTwice_KZL_1("12020103","筷子篓1号机组","出力","CLoad",2), + RReguTwice_KZL_2("12020104","筷子篓2号机组","出力","CLoad",2), + RReguTwice_KZL_3("12020105","筷子篓3号机组","出力","CLoad",2), + + RReguTwice_SK_1("12030107","水口1号机组","出力","CLoad",3), + RReguTwice_SK_2("12030108","水口2号机组","出力","CLoad",3), + RReguTwice_SK_3("12030109","水口3号机组","出力","CLoad",3), + RReguTwice_SK_4("12030110","水口4号机组","出力","CLoad",3), + RReguTwice_SK_5("12030111","水口5号机组","出力","CLoad",3); + + private String code; + private String name; + private String physical; + private String mCode; + private Integer groupId; + + GeneratedRealTimeTaskEnum(String code, String name, String physical, String mCode, Integer groupId){ + this.code = code; + this.name = name; + this.physical = physical; + this.mCode = mCode; + this.groupId = groupId; + } + + 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; + } + + public String getPhysical() { + return physical; + } + + public void setPhysical(String physical) { + this.physical = physical; + } + + public String getmCode() { + return mCode; + } + + public void setmCode(String mCode) { + this.mCode = mCode; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public static Map>> getByMCode(String mcode){ + Map>> data=new HashMap<>(); + List> list=null; + GeneratedRealTimeTaskEnum[] alarmGrades = GeneratedRealTimeTaskEnum.values(); + for (GeneratedRealTimeTaskEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().equals(mcode)) { + Map param=new HashMap<>(); + Integer groupId=alarmGrade.getGroupId(); + String name=alarmGrade.getName(); + String code=alarmGrade.getCode(); + String physical=alarmGrade.getPhysical(); + param.put("name",name); + param.put("code",code); + param.put("physical",physical); + + list=data.get(groupId); + if(list!=null && !list.isEmpty()) { + list.add(param); + data.put(groupId, list); + }else{ + list =new ArrayList<>(); + list.add(param); + data.put(groupId, list); + } + } + } + + return data; + } + + public static List getCodes(String mcode){ + List codes=new ArrayList<>(); + GeneratedRealTimeTaskEnum[] alarmGrades = GeneratedRealTimeTaskEnum.values(); + for (GeneratedRealTimeTaskEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().equals(mcode)) { + codes.add(alarmGrade.getCode()); + } + } + return codes; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzReGuClass.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzReGuClass.java new file mode 100644 index 0000000..92d2d5b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzReGuClass.java @@ -0,0 +1,40 @@ +package org.springblade.general_dispatching.task.entity; + +public class HzReGuClass { + private Integer id; + private String name; + private String startTime; + private String endTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTask.java new file mode 100644 index 0000000..ee21bb3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTask.java @@ -0,0 +1,237 @@ +package org.springblade.general_dispatching.task.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; + + +@ApiModel(value = "任务类", description = "任务类") +public class HzTask implements Serializable { + @ApiModelProperty( value = "任务名", notes = "任务名", dataType = "String") + private String name; + @ApiModelProperty( value = "模型实例id", notes = "模型实例id", dataType = "Integer") + private Integer pId; + @ApiModelProperty( value = "执行人员", notes = "执行人员", dataType = "String") + private String execUser; + @ApiModelProperty( value = "班次", notes = "班次", dataType = "String") + private String classes; + @ApiModelProperty( value = "班组id", notes = "班组id", dataType = "Integer") + private Integer groupId; + @ApiModelProperty( value = "任务状态", notes = "任务状态", dataType = "String") + private String stateCode; + @ApiModelProperty( value = "任务描述", notes = "任务描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "计划开始时间", notes = "计划开始时间", dataType = "Date") + private Date planStartDt; + @ApiModelProperty( value = "计划结束时间", notes = "计划结束时间", dataType = "Date") + private Date planEndDt; + @ApiModelProperty( value = "开始时间", notes = "开始时间", dataType = "Date") + private Date startDt; + @ApiModelProperty( value = "结束时间", notes = "结束时间", dataType = "Date") + private Date endDt; + @ApiModelProperty( value = "定时表达式", notes = "定时表达式", dataType = "String") + private String cron; + @ApiModelProperty( value = "任务类型", notes = "任务类型", dataType = "String") + private String typeCode; + + @ApiModelProperty( + value = "ID", + notes = "唯一标识", + dataType = "Integer" + ) + private Integer id; + @ApiModelProperty( + value = "创建人", + notes = "创建人", + dataType = "String" + ) + private String creator; + @ApiModelProperty( + value = "创建时间", + notes = "创建时间", + dataType = "Date" + ) + private Date createTime; + @ApiModelProperty( + value = "最后更新人", + notes = "最后更新人", + dataType = "String" + ) + private String lastUpdator; + @ApiModelProperty( + value = "最后更新时间", + notes = "最后更新时间", + dataType = "Date" + ) + private Date lastUpdateTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getLastUpdator() { + return lastUpdator; + } + + public void setLastUpdator(String lastUpdator) { + this.lastUpdator = lastUpdator; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getpId() { + return pId; + } + + public void setpId(Integer pId) { + this.pId = pId; + } + + public String getExecUser() { + return execUser; + } + + public void setExecUser(String execUser) { + this.execUser = execUser; + } + + public String getClasses() { + return classes; + } + + public void setClasses(String classes) { + this.classes = classes; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public String getStateCode() { + return stateCode; + } + + public void setStateCode(String stateCode) { + this.stateCode = stateCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getStartDt() { + return startDt; + } + + public void setStartDt(Date startDt) { + this.startDt = startDt; + } + + public Date getEndDt() { + return endDt; + } + + public void setEndDt(Date endDt) { + this.endDt = endDt; + } + + public String getCron() { + return cron; + } + + public void setCron(String cron) { + this.cron = cron; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public Date getPlanStartDt() { + return planStartDt; + } + + public void setPlanStartDt(Date planStartDt) { + this.planStartDt = planStartDt; + } + + public Date getPlanEndDt() { + return planEndDt; + } + + public void setPlanEndDt(Date planEndDt) { + this.planEndDt = planEndDt; + } + + @Override + public String toString() { + return "HzTask{" + + "name='" + name + '\'' + + ", pId=" + pId + + ", execUser='" + execUser + '\'' + + ", classes='" + classes + '\'' + + ", groupId=" + groupId + + ", stateCode='" + stateCode + '\'' + + ", remark='" + remark + '\'' + + ", planStartDt=" + planStartDt + + ", planEndDt=" + planEndDt + + ", startDt=" + startDt + + ", endDt=" + endDt + + ", cron='" + cron + '\'' + + ", typeCode='" + typeCode + '\'' + + ", id=" + id + + ", creator='" + creator + '\'' + + ", createTime=" + createTime + + ", lastUpdator='" + lastUpdator + '\'' + + ", lastUpdateTime=" + lastUpdateTime + + '}'; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskDetail.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskDetail.java new file mode 100644 index 0000000..0a5b326 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskDetail.java @@ -0,0 +1,170 @@ +package org.springblade.general_dispatching.task.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; + +@ApiModel(value = "任务详情类", description = "任务详情类") +public class HzTaskDetail implements Serializable { + @ApiModelProperty( value = "任务id", notes = "任务id", dataType = "String") + private Integer taskId; + @ApiModelProperty( value = "时间", notes = "时间", dataType = "Date") + private Date dt; + @ApiModelProperty( value = "参数编码", notes = "参数编码", dataType = "String") + private String code; + @ApiModelProperty( value = "参数名称", notes = "参数名称", dataType = "String") + private String name; + @ApiModelProperty( value = "计划值", notes = "计划值", dataType = "String") + private String planValue; + @ApiModelProperty( value = "实际值", notes = "实际值", dataType = "String") + private String actualValue; + @ApiModelProperty( value = "值的单位", notes = "值的单位", dataType = "String") + private String unit; + + @ApiModelProperty( + value = "ID", + notes = "唯一标识", + dataType = "Integer" + ) + private Integer id; + @ApiModelProperty( + value = "创建人", + notes = "创建人", + dataType = "String" + ) + private String creator; + @ApiModelProperty( + value = "创建时间", + notes = "创建时间", + dataType = "Date" + ) + private Date createTime; + @ApiModelProperty( + value = "最后更新人", + notes = "最后更新人", + dataType = "Integer" + ) + private String lastUpdator; + @ApiModelProperty( + value = "最后更新时间", + notes = "最后更新时间", + dataType = "Date" + ) + private Date lastUpdateTime; + + public Integer getTaskId() { + return taskId; + } + + public void setTaskId(Integer taskId) { + this.taskId = taskId; + } + + public Date getDt() { + return dt; + } + + public void setDt(Date dt) { + this.dt = dt; + } + + 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; + } + + public String getPlanValue() { + return planValue; + } + + public void setPlanValue(String planValue) { + this.planValue = planValue; + } + + public String getActualValue() { + return actualValue; + } + + public void setActualValue(String actualValue) { + this.actualValue = actualValue; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getLastUpdator() { + return lastUpdator; + } + + public void setLastUpdator(String lastUpdator) { + this.lastUpdator = lastUpdator; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = new Date(); + } + + @Override + public String toString() { + return "HzTaskDetail{" + + "taskId=" + taskId + + ", dt=" + dt + + ", code='" + code + '\'' + + ", name='" + name + '\'' + + ", planValue='" + planValue + '\'' + + ", actualValue='" + actualValue + '\'' + + ", unit='" + unit + '\'' + + ", id=" + id + + ", creator='" + creator + '\'' + + ", createTime=" + createTime + + ", lastUpdator='" + lastUpdator + '\'' + + ", lastUpdateTime=" + lastUpdateTime + + '}'; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskStatusEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskStatusEnum.java new file mode 100644 index 0000000..713b53b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskStatusEnum.java @@ -0,0 +1,47 @@ +package org.springblade.general_dispatching.task.entity; + +/** + * 任务状态枚举 + */ +public enum HzTaskStatusEnum { + ONE("01","待指派"),TWO("02","待执行"),THREE("03","执行中"),FOUR("04","已完成"),FIVE("05","已停止"); + private String code; + private String name; + + HzTaskStatusEnum(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; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * @param code + * @return + */ + public static String getEnumName(String code) { + HzTaskStatusEnum[] alarmGrades = HzTaskStatusEnum.values(); + for (HzTaskStatusEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskTypeCodeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskTypeCodeEnum.java new file mode 100644 index 0000000..bfbf76f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskTypeCodeEnum.java @@ -0,0 +1,82 @@ +package org.springblade.general_dispatching.task.entity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 任务类型枚举 + */ +public enum HzTaskTypeCodeEnum { + ONE("01","发电短期任务","RReguTwice"), + TWO("02","发电实时调度(给定任务)","CLoad"), + THREE("03","防洪调度任务","RFlood1,RFlood2"), + FOUR("04","发电实时调度(非给定任务)","CLoad"); + private String code; + private String name; + private String mCode; + + HzTaskTypeCodeEnum(String code, String name, String mCode){ + this.code = code; + this.name = name; + this.mCode = mCode; + } + + public static List> getList(String mCode){ + List> list =new ArrayList<>(); + HzTaskTypeCodeEnum[] alarmGrades = HzTaskTypeCodeEnum.values(); + for (HzTaskTypeCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().contains(mCode)) { + String name=alarmGrade.getName(); + String code=alarmGrade.getCode(); + Map map=new HashMap<>(); + map.put("name",name); + map.put("code",code); + list.add(map); + } + } + return list; + } + + /** + * 根据Key得到枚举的Value + * 普通for循环遍历,比较判断 + * + * @param code + * @return + */ + public static String getEnumName(String code) { + HzTaskTypeCodeEnum[] alarmGrades = HzTaskTypeCodeEnum.values(); + for (HzTaskTypeCodeEnum alarmGrade : alarmGrades) { + if (alarmGrade.getCode().equals(code)) { + return alarmGrade.getName(); + } + } + return ""; + } + + public String getmCode() { + return mCode; + } + + public void setmCode(String mCode) { + this.mCode = mCode; + } + + 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskUser.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskUser.java new file mode 100644 index 0000000..1898535 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzTaskUser.java @@ -0,0 +1,40 @@ +package org.springblade.general_dispatching.task.entity; + +public class HzTaskUser { + private String account; + private String realName; + private Long id; + private Long roleId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getRealName() { + return realName; + } + + public void setRealName(String realName) { + this.realName = realName; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunLog.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunLog.java new file mode 100644 index 0000000..9d09c87 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunLog.java @@ -0,0 +1,87 @@ +package org.springblade.general_dispatching.task.entity; + +import java.util.Date; + +public class HzWdRunLog { + private Integer id; + private Integer pId; + private Date createTime; + private String levelCode; + private String sourceType; + private String sourceName; + private String message; + private String creater; + private String createrName; + + public String getCreaterName() { + return createrName; + } + + public void setCreaterName(String createrName) { + this.createrName = createrName; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getpId() { + return pId; + } + + public void setpId(Integer pId) { + this.pId = pId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getLevelCode() { + return levelCode; + } + + public void setLevelCode(String levelCode) { + this.levelCode = levelCode; + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunTask.java new file mode 100644 index 0000000..1e57e0e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/HzWdRunTask.java @@ -0,0 +1,24 @@ +package org.springblade.general_dispatching.task.entity; + +import java.io.Serializable; + +public class HzWdRunTask implements Serializable { + private Integer taskId; + private String deptId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public Integer getTaskId() { + return taskId; + } + + public void setTaskId(Integer taskId) { + this.taskId = taskId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/PlanClassTaskEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/PlanClassTaskEnum.java new file mode 100644 index 0000000..9d686e9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/PlanClassTaskEnum.java @@ -0,0 +1,114 @@ +package org.springblade.general_dispatching.task.entity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public enum PlanClassTaskEnum { + RReguTwice_ONE_1("17010101","库水位","库水位","RReguTwice",1), + RReguTwice_KZL_1("17020102","筷子篓1号机组","负荷","RReguTwice",2), + RReguTwice_KZL_2("17020103","筷子篓2号机组","负荷","RReguTwice",2), + RReguTwice_KZL_3("17020104","筷子篓3号机组","负荷","RReguTwice",2), + RReguTwice_SK_1("17030105","水口1号机组","负荷","RReguTwice",3), + RReguTwice_SK_2("17030106","水口2号机组","负荷","RReguTwice",3), + RReguTwice_SK_3("17030107","水口3号机组","负荷","RReguTwice",3), + RReguTwice_SK_4("17030108","水口4号机组","负荷","RReguTwice",3), + RReguTwice_SK_5("17030109","水口5号机组","负荷","RReguTwice",3); + + private String code; + private String name; + private String physical; + private String mCode; + private Integer groupId; + + PlanClassTaskEnum(String code, String name, String physical, String mCode, Integer groupId){ + this.code = code; + this.name = name; + this.physical = physical; + this.mCode = mCode; + this.groupId = groupId; + } + + 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; + } + + public String getPhysical() { + return physical; + } + + public void setPhysical(String physical) { + this.physical = physical; + } + + public String getmCode() { + return mCode; + } + + public void setmCode(String mCode) { + this.mCode = mCode; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public static Map>> getByMCode(String mcode){ + Map>> data=new HashMap<>(); + List> list=null; + PlanClassTaskEnum[] alarmGrades = PlanClassTaskEnum.values(); + for (PlanClassTaskEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().equals(mcode)) { + Map param=new HashMap<>(); + Integer groupId=alarmGrade.getGroupId(); + String name=alarmGrade.getName(); + String code=alarmGrade.getCode(); + String physical=alarmGrade.getPhysical(); + param.put("name",name); + param.put("code",code); + param.put("physical",physical); + + list=data.get(groupId); + if(list!=null && !list.isEmpty()) { + list.add(param); + data.put(groupId, list); + }else{ + list =new ArrayList<>(); + list.add(param); + data.put(groupId, list); + } + } + } + + return data; + } + + public static List getCodes(String mcode){ + List codes=new ArrayList<>(); + PlanClassTaskEnum[] alarmGrades = PlanClassTaskEnum.values(); + for (PlanClassTaskEnum alarmGrade : alarmGrades) { + if (alarmGrade.getmCode().equals(mcode)) { + codes.add(alarmGrade.getCode()); + } + } + return codes; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/RunLogLevelCodeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/RunLogLevelCodeEnum.java new file mode 100644 index 0000000..62f9d74 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/RunLogLevelCodeEnum.java @@ -0,0 +1,29 @@ +package org.springblade.general_dispatching.task.entity; + +public enum RunLogLevelCodeEnum { + INFO("info","信息"), + ERROR("error","错误"); + + private String code; + private String name; + RunLogLevelCodeEnum(String code, String name){ + this.name = name; + this.code= code; + } + + 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; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/SchedulingConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/SchedulingConfig.java new file mode 100644 index 0000000..2564975 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/entity/SchedulingConfig.java @@ -0,0 +1,26 @@ +package org.springblade.general_dispatching.task.entity; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +/** + * @program: simple-demo + * @description: 定时任务配置类 + * @author: CaoTing + * @date: 2019/5/23 + **/ +@Configuration +public class SchedulingConfig { + @Bean + public TaskScheduler taskScheduler() { + ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); + // 定时任务执行线程池核心线程数 + taskScheduler.setPoolSize(8); + taskScheduler.setRemoveOnCancelPolicy(true); + taskScheduler.setThreadNamePrefix("CalcThreadPool-"); + taskScheduler.initialize(); + return taskScheduler; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.java new file mode 100644 index 0000000..ea09078 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.java @@ -0,0 +1,9 @@ +package org.springblade.general_dispatching.task.mapper; + +import org.springblade.general_dispatching.task.entity.HzReGuClass; + +import java.util.List; + +public interface HzReGuClassMapper{ + List selectClass(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.xml new file mode 100644 index 0000000..27753d5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzReGuClassMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + ID,`NAME`,START_DT,END_DT + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.java new file mode 100644 index 0000000..07dd9b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.task.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.task.entity.HzTaskDetail; + +import java.util.List; +import java.util.Map; + +public interface HzTaskDetailMapper { + Integer insert(HzTaskDetail taskDetail); + int updateByPrimaryKey(HzTaskDetail taskDetail); + List selectByParam(Map param); + void batchInsert(@Param("params") List params); + Integer updateData(HzTaskDetail taskDetail); + int deleteByTaskId(Integer taskId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.xml new file mode 100644 index 0000000..1830a1e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskDetailMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + ID,TASK_ID,DT,`CODE`,`NAME`,PLAN_VALUE,ACTUAL_VALUE,UNIT,CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER + + + + + + + DELETE FROM + WD_FCS_TASK_DETAIL + WHERE + TASK_ID = #{taskId,jdbcType=INTEGER} + + + + INSERT INTO + WD_FCS_TASK_DETAIL (TASK_ID,DT,`CODE`,`NAME`,PLAN_VALUE,ACTUAL_VALUE,UNIT, + CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER) + VALUES + (#{taskId,jdbcType=INTEGER}, #{dt,jdbcType=TIMESTAMP}, #{code,jdbcType=VARCHAR}, + #{name,jdbcType=VARCHAR}, #{planValue,jdbcType=VARCHAR}, #{actualValue,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=VARCHAR}, CURRENT_TIMESTAMP(),#{lastUpdator,jdbcType=VARCHAR} + ) + + + + + insert into WD_FCS_TASK_DETAIL (TASK_ID,DT,`CODE`,`NAME`,PLAN_VALUE,ACTUAL_VALUE,UNIT, + CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER + ) values + + (#{item.taskId,jdbcType=INTEGER}, + #{item.dt,jdbcType=TIMESTAMP}, + #{item.code,jdbcType=VARCHAR}, + #{item.name,jdbcType=VARCHAR}, + #{item.planValue,jdbcType=VARCHAR}, + #{item.actualValue,jdbcType=VARCHAR}, + #{item.unit,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=TIMESTAMP}, + #{item.creator,jdbcType=VARCHAR}, + #{item.lastUpdateTime,jdbcType=TIMESTAMP}, + #{item.lastUpdator,jdbcType=VARCHAR} + ) + + + + + + UPDATE + WD_FCS_TASK_DETAIL + SET TASK_ID = #{taskId,jdbcType=INTEGER}, + DT = #{dt,jdbcType=TIMESTAMP}, + `CODE` = #{code,jdbcType=VARCHAR}, + `NAME` = #{name,jdbcType=VARCHAR}, + PLAN_VALUE = #{planValue,jdbcType=VARCHAR}, + ACTUAL_VALUE = #{actualValue,jdbcType=VARCHAR}, + UNIT = #{unit,jdbcType=VARCHAR}, + CREATE_TIME=#{createTime,jdbcType=TIMESTAMP}, + CREATER=#{creator,jdbcType=VARCHAR}, + LAST_UPDATE_TIME=#{lastUpdateTime,jdbcType=TIMESTAMP}, + LAST_UPDATER=#{lastUpdator,jdbcType=VARCHAR} + WHERE ID = #{id,jdbcType=INTEGER} + + + + UPDATE + WD_FCS_TASK_DETAIL + SET + PLAN_VALUE = #{planValue,jdbcType=VARCHAR}, + ACTUAL_VALUE = #{actualValue,jdbcType=VARCHAR}, + LAST_UPDATE_TIME=#{lastUpdateTime,jdbcType=TIMESTAMP}, + LAST_UPDATER=#{lastUpdator,jdbcType=VARCHAR} + WHERE ID = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.java new file mode 100644 index 0000000..9fb1c5a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.java @@ -0,0 +1,23 @@ +package org.springblade.general_dispatching.task.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.vo.HzTaskVo; + +import java.util.List; +import java.util.Map; + +public interface HzTaskManageMapper { + int insert(HzTask task); + HzTask selectByPrimaryKey(Integer id); + int updateByPrimaryKey(HzTask task); + int deleteByPrimaryKey(Integer id); + List selectVoByParam(HzTaskVo task); + List selectByParam(HzTask task); + IPage selectVoByParam(Map task, IPage page); + IPage completeAndStop(Map param, IPage page); + List selectTaskIds(@Param("pIds") List pIds); + + List selectVoByMap(Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.xml new file mode 100644 index 0000000..259ba7a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzTaskManageMapper.xml @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + task.ID id,task.`NAME` name,task.PID pId,tmp_user.NAME execUser, + task.CLASSES classes,task.GROUP_ID groupId,task.STATE_CODE stateCode,task.REMARK remark, + DATE_FORMAT(task.PLAN_START_DT, '%Y-%m-%d %H:%i:%s') planStartDt, + DATE_FORMAT(task.PLAN_END_DT, '%Y-%m-%d %H:%i:%s') planEndDt, + DATE_FORMAT(task.START_DT, '%Y-%m-%d %H:%i:%s') startDt, + DATE_FORMAT(task.END_DT, '%Y-%m-%d %H:%i:%s') endDt, + task.CRON cron,task.TYPE_CODE typeCode,DATE_FORMAT(task.CREATE_TIME, '%Y-%m-%d %H:%i:%s') createTime, + task.CREATER creator,DATE_FORMAT(task.LAST_UPDATE_TIME, '%Y-%m-%d %H:%i:%s') lastUpdateTime, + task.LAST_UPDATER lastUpdator, + CONCAT(DATE_FORMAT(task.CREATE_TIME,'%Y%m%d'),task.ID) code, + task_state.NAME stateCodeName, + task_cron.NAME execSecond + + + + ID,`NAME`,PID,EXEC_USER,CLASSES,GROUP_ID,STATE_CODE,REMARK, + PLAN_START_DT,PLAN_END_DT,START_DT,END_DT, + CRON,TYPE_CODE,CREATE_TIME,LAST_UPDATE_TIME,LAST_UPDATER + + + + + + + + + + + + + + + + + DELETE FROM + WD_TASK_INFO + WHERE + ID = #{id,jdbcType=INTEGER} + + + + INSERT INTO + WD_TASK_INFO (`NAME`,PID,EXEC_USER,CLASSES,GROUP_ID,STATE_CODE,REMARK,PLAN_START_DT,PLAN_END_DT, + START_DT,END_DT,CRON,TYPE_CODE,CREATE_TIME,CREATER,LAST_UPDATE_TIME,LAST_UPDATER) + VALUES + (#{name,jdbcType=VARCHAR}, #{pId,jdbcType=INTEGER}, #{execUser,jdbcType=VARCHAR}, + #{classes,jdbcType=VARCHAR}, #{groupId,jdbcType=INTEGER}, #{stateCode,jdbcType=CHAR}, + #{remark,jdbcType=VARCHAR}, #{planStartDt,jdbcType=TIMESTAMP}, #{planEndDt,jdbcType=TIMESTAMP}, + #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, + #{cron,jdbcType=VARCHAR},#{typeCode,jdbcType=CHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=VARCHAR}, CURRENT_TIMESTAMP(),#{lastUpdator,jdbcType=VARCHAR} + ) + + + + UPDATE + WD_TASK_INFO + SET + + `NAME` = #{name,jdbcType=VARCHAR}, + + + PID = #{pId,jdbcType=INTEGER}, + + + EXEC_USER = #{execUser,jdbcType=VARCHAR}, + + + CLASSES = #{classes,jdbcType=VARCHAR}, + + + GROUP_ID = #{groupId,jdbcType=INTEGER}, + + + STATE_CODE = #{stateCode,jdbcType=CHAR}, + + + REMARK = #{remark,jdbcType=VARCHAR}, + + + START_DT =#{startDt,jdbcType=TIMESTAMP}, + + + END_DT =#{endDt,jdbcType=TIMESTAMP}, + + + CRON = #{cron,jdbcType=VARCHAR}, + + + TYPE_CODE = #{typeCode,jdbcType=VARCHAR}, + + + PLAN_START_DT = #{planStartDt,jdbcType=TIMESTAMP}, + + + PLAN_END_DT = #{planEndDt,jdbcType=TIMESTAMP}, + + + CREATE_TIME=#{createTime,jdbcType=TIMESTAMP}, + + + CREATER=#{creator,jdbcType=VARCHAR}, + + + LAST_UPDATER=#{lastUpdator,jdbcType=VARCHAR}, + + LAST_UPDATE_TIME=CURRENT_TIMESTAMP() + WHERE ID = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.java new file mode 100644 index 0000000..e1cee56 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.task.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.task.entity.HzWdRunLog; + +import java.util.List; +import java.util.Map; + +public interface HzWdRunLogMapper { + int insert(HzWdRunLog hzWdRunLog); + int updateByPrimaryKey(HzWdRunLog hzWdRunLog); + int deleteByPrimaryKey(Integer id); + List selectByParam(Map param); + IPage selectByParam(Map param, IPage page); + HzWdRunLog selectByPrimaryKey(Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.xml new file mode 100644 index 0000000..4f59f5a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunLogMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + log.ID,log.PID,log.CREATE_TIME,log.LEVEL_CODE,log.SOURCE_TYPE,log.SOURCE_NAME,log.MESSAGE, + log.CREATER,log_user.NAME CREATER_NAME + + + + + + + + + + DELETE FROM + WD_RUN_LOG + WHERE + ID = #{id,jdbcType=INTEGER} + + + + INSERT INTO + WD_RUN_LOG (PID,CREATE_TIME,LEVEL_CODE,SOURCE_TYPE,SOURCE_NAME,MESSAGE,CREATER) + VALUES + (#{pId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{levelCode,jdbcType=VARCHAR}, + #{sourceType,jdbcType=VARCHAR}, #{sourceName,jdbcType=VARCHAR}, #{message,jdbcType=VARCHAR}, + #{creater,jdbcType=VARCHAR}) + + + + UPDATE + WD_RUN_LOG + SET + + PID = #{pId,jdbcType=INTEGER}, + + + CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, + + + LEVEL_CODE = #{levelCode,jdbcType=VARCHAR}, + + + SOURCE_TYPE = #{sourceType,jdbcType=VARCHAR}, + + + SOURCE_NAME = #{sourceName,jdbcType=VARCHAR}, + + + MESSAGE = #{message,jdbcType=VARCHAR}, + + + CREATER =#{creater,jdbcType=VARCHAR} + + WHERE ID = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.java new file mode 100644 index 0000000..448fea1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.java @@ -0,0 +1,12 @@ +package org.springblade.general_dispatching.task.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.general_dispatching.task.entity.HzWdRunTask; + +import java.util.List; + +public interface HzWdRunTaskMapper{ + List selectByTaskId(@Param("taskId") Integer taskId); + int deleteByTaskId(Integer taskId); + int insert(HzWdRunTask runTask); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.xml new file mode 100644 index 0000000..ca8cee4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/mapper/HzWdRunTaskMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + TASK_ID,DEPT_ID + + + + + + + DELETE FROM + WD_RUN_TASK + WHERE + TASK_ID = #{taskId,jdbcType=INTEGER} + + + + INSERT INTO + WD_RUN_TASK (TASK_ID,DEPT_ID) + VALUES + (#{taskId,jdbcType=INTEGER},#{deptId,jdbcType=CHAR}) + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskDetailService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskDetailService.java new file mode 100644 index 0000000..94ba63e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskDetailService.java @@ -0,0 +1,17 @@ +package org.springblade.general_dispatching.task.service; + +import org.springblade.general_dispatching.entity.Chart; +import org.springblade.general_dispatching.task.entity.HzTaskDetail; + +import java.util.List; +import java.util.Map; + +public interface HzTaskDetailService { + Integer insert(HzTaskDetail taskDetail); + List selectByParam(Map param); + void batchInsert(List taskDetails); + List getFloodPreventTaskData(Integer taskId); + List getGeneratedRealTimeTaskData(Integer taskId); + List getClassPlanData(Integer taskId); + int updateData(Map param, String userId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskManageService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskManageService.java new file mode 100644 index 0000000..d3d2e09 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzTaskManageService.java @@ -0,0 +1,42 @@ +package org.springblade.general_dispatching.task.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.task.entity.HzReGuClass; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.vo.HzTaskVo; + +import java.util.List; +import java.util.Map; + +public interface HzTaskManageService { + //新增任务 + Integer insert(HzTask task); + //领用任务并启动任务 + Boolean assign(HzTask paramTask, String execUser, boolean flag); + //删除任务 + Boolean delete(HzTask paramTask); + //停止任务 + Boolean updateOrStop(Integer taskId, boolean stop); + //跟新任务,主要是状态 flag是否更改endDt + Boolean update(Integer taskId, String execUser, String statusCode); + //条件查询 + List selectVoByParam(HzTaskVo task); + List selectByParam(HzTask task); + //查询班次 + List selectClass(); + //分页查询任务 + IPage listPage(String name, String code, String stateCode, String execUser, IPage page); + IPage completeAndStop(String name, String code, IPage page); + //创建定时任务 + boolean createScheduleTask(HzTask task); + List selectTaskIds(List pIds); + Boolean update(Integer taskId, String execUser, String remark, String statusCode); + //是否存在排班任务 + boolean classTask(); + + List selectVoByMap(Map param); + + Boolean receive(HzTask task, String name); + + boolean updateByPrimaryKey(HzTask task); + } diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunLogService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunLogService.java new file mode 100644 index 0000000..9848d02 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunLogService.java @@ -0,0 +1,16 @@ +package org.springblade.general_dispatching.task.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.task.entity.HzWdRunLog; + +import java.util.List; +import java.util.Map; + +public interface HzWdRunLogService { + int insert(HzWdRunLog hzWdRunLog); + int updateByPrimaryKey(HzWdRunLog hzWdRunLog); + int deleteByPrimaryKey(Integer id); + List selectByParam(Map param); + IPage listPage(Map param, IPage page); + HzWdRunLog selectByPrimaryKey(Integer id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunTaskService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunTaskService.java new file mode 100644 index 0000000..7733176 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/HzWdRunTaskService.java @@ -0,0 +1,11 @@ +package org.springblade.general_dispatching.task.service; + +import org.springblade.general_dispatching.task.entity.HzWdRunTask; + +import java.util.List; + +public interface HzWdRunTaskService { + List selectByParam(HzWdRunTask runTask); + boolean deleteByTaskId(Integer taskId); + int insert(HzWdRunTask runTask); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskDetailServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskDetailServiceImpl.java new file mode 100644 index 0000000..69990ee --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskDetailServiceImpl.java @@ -0,0 +1,250 @@ +package org.springblade.general_dispatching.task.service.impl; + +import com.hnac.hzinfo.datasearch.PointData; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.springblade.general_dispatching.entity.Chart; +import org.springblade.general_dispatching.entity.Series; +import org.springblade.general_dispatching.model_instance.entity.ModelInstanceResultConfig; +import org.springblade.general_dispatching.model_instance.mapper.ModelInstanceResultConfigMapper; +import org.springblade.general_dispatching.task.entity.*; +import org.springblade.general_dispatching.task.mapper.HzTaskDetailMapper; +import org.springblade.general_dispatching.task.mapper.HzTaskManageMapper; +import org.springblade.general_dispatching.task.service.HzTaskDetailService; +import org.springblade.general_dispatching.task.vo.HzTaskDetailAddVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HzTaskDetailServiceImpl implements HzTaskDetailService { + @Autowired + HzTaskDetailMapper hzTaskDetailMapper; + + @Autowired + ModelInstanceResultConfigMapper modelInstanceResultConfigMapper; + + @Autowired + HzTaskManageMapper hzTaskManageMapper; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Override + public Integer insert(HzTaskDetail taskDetail) { + return hzTaskDetailMapper.insert(taskDetail); + } + + @Override + public List selectByParam(Map param) { + return hzTaskDetailMapper.selectByParam(param); + } + + @Override + public void batchInsert(List taskDetails) { + hzTaskDetailMapper.batchInsert(taskDetails); + } + + //获取防洪数据 + @Override + public List getFloodPreventTaskData(Integer taskId){ + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); + List data=new ArrayList<>(); + Map param=new HashMap<>(); + param.put("taskId",taskId); + List list=hzTaskDetailMapper.selectByParam(param); + boolean flag= (list!=null&& !list.isEmpty()); + if(!flag){ + return null; + } + String mcode= FloodPreventTaskEnum.RFlood1_FIVE_1.getmCode(); + String code=FloodPreventTaskEnum.RFlood1_FIVE_1.getCode(); + if(!hasCode(list,code)){ + mcode = FloodPreventTaskEnum.RFlood2_FIVE_1.getmCode(); + } + Map>> map=FloodPreventTaskEnum.getByMCode(mcode); + for(Map.Entry>> tmp:map.entrySet()){ + // Integer groupId=tmp.getKey(); + List> tmpList=tmp.getValue(); + Chart chart=new Chart() ; + List legend=new ArrayList<>(); + List axisData=new ArrayList<>(); + List> series=new ArrayList<>(); + for(Map tmpMap:tmpList){ + String tmpCode=tmpMap.get("code"); + String name=tmpMap.get("name")+tmpMap.get("physical"); + List last=getListByCode(list,tmpCode); + + Series series1=new Series<>(); + Series series2=new Series<>(); + List data1=new ArrayList<>(); + List data2=new ArrayList<>(); + series1.setName(name+"计划值"); + series2.setName(name+"实际值"); + for(HzTaskDetail detail:last){ + String date=sdf.format(detail.getDt()); + if(!axisData.contains(date)) { + axisData.add(date); + } + + data1.add(detail.getPlanValue() != null ? Double.valueOf(detail.getPlanValue()) : null); + data2.add(detail.getActualValue() != null ? Double.valueOf(detail.getActualValue()) : null); + } + series1.setData(data1); + series2.setData(data2); + series.add(series1); + series.add(series2); + legend.add(name); + } + chart.setAxisData(axisData); + chart.setLegend(legend); + chart.setSeries(series); + data.add(chart); + } + return data; + } + + @Override + public List getGeneratedRealTimeTaskData(Integer taskId) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); + List charts=new ArrayList<>(); + Map param=new HashMap<>(); + param.put("taskId",taskId); + List list=hzTaskDetailMapper.selectByParam(param); + boolean flag= (list!=null&& !list.isEmpty()); + if(!flag){ + return null; + } + Map>> map= GeneratedRealTimeTaskEnum.getByMCode("CLoad"); + for(Map.Entry>> tmp:map.entrySet()){ + // Integer groupId=tmp.getKey(); + List> tmpList=tmp.getValue(); + Chart chart=new Chart() ; + List legend=new ArrayList<>(); + List axisData=new ArrayList<>(); + List> series=new ArrayList<>(); + for(Map tmpMap:tmpList){ + String tmpCode=tmpMap.get("code"); + String name=tmpMap.get("name"); + List last=getListByCode(list,tmpCode); + + Series series1=new Series<>(); + Series series2=new Series<>(); + List data1=new ArrayList<>(); + List data2=new ArrayList<>(); + series1.setName(name+"计划值"); + series2.setName(name+"实际值"); + for(HzTaskDetail detail:last){ + String date=sdf.format(detail.getDt()); + if(!axisData.contains(date)) { + axisData.add(date); + } + data1.add(Double.valueOf(detail.getPlanValue())); + if(detail.getActualValue()!=null) { + data2.add(Double.valueOf(detail.getActualValue())); + }else{ + data2.add(Double.valueOf("0")); + } + } + series1.setData(data1); + series2.setData(data2); + series.add(series1); + series.add(series2); + legend.add(name); + } + chart.setAxisData(axisData); + chart.setLegend(legend); + chart.setSeries(series); + charts.add(chart); + } + return charts; + } + + @Override + public List getClassPlanData(Integer taskId) { + Map param=new HashMap<>(); + param.put("taskId",taskId); + List list=hzTaskDetailMapper.selectByParam(param); + HzTask task =hzTaskManageMapper.selectByPrimaryKey(taskId); + String stateCode = task.getStateCode(); + if(!HzTaskStatusEnum.FOUR.getCode().equals(stateCode)) { + List codes = PlanClassTaskEnum.getCodes("RReguTwice"); + param.put("codes", codes); + List resultConfigs = modelInstanceResultConfigMapper.selectByParam(param); + Map realData = getRealData(resultConfigs, codes); + + for (HzTaskDetail detail : list) { + String code = detail.getCode(); + detail.setActualValue(String.valueOf(realData.get(code))); + } + } + return list; + } + + @Override + public int updateData(Map param, String userId) { + List> list=(List>)param.get("details"); + int count=0; + for (Map map:list) { + HzTaskDetail detail= HzTaskDetailAddVo.toHzTaskDetail(map); + detail.setLastUpdator(userId); + detail.setLastUpdateTime(new Date()); + hzTaskDetailMapper.updateData(detail); + count=count+1; + } + return count; + } + + private Map getRealData(List resultConfigs, List codes){ + List ids = new ArrayList<>(); + + Map param=new HashMap<>(); + for (String code:codes){ + for (ModelInstanceResultConfig resultConfig:resultConfigs){ + if (code.equals(resultConfig.getCode())){ + String point=resultConfig.getPoint(); + param.put(code,point); + ids.add(point); + + } + } + } + + Map idData=new HashMap<>(); + Result> res=realDataSearchClient.getRealDataByRealIds(ids); + List list=res.getData(); + for(int i=0;i data=new HashMap<>(); + for(Map.Entry map:param.entrySet()){ + String code=map.getKey(); + String point=map.getValue(); + data.put(code,idData.get(point)); + } + return data; + } + + List getListByCode(List list, String code){ + List data=new ArrayList<>(); + for(HzTaskDetail detail:list){ + if(detail.getCode().equals(code)){ + data.add(detail); + } + } + return data; + } + + private boolean hasCode(List list, String code){ + for(HzTaskDetail detail:list){ + if(code.equals(detail.getCode())){ + return true; + } + } + return false; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskManageServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskManageServiceImpl.java new file mode 100644 index 0000000..5e0c450 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzTaskManageServiceImpl.java @@ -0,0 +1,281 @@ +package org.springblade.general_dispatching.task.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.lang3.StringUtils; +import org.springblade.general_dispatching.task.entity.HzReGuClass; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.entity.HzTaskStatusEnum; +import org.springblade.general_dispatching.task.entity.HzTaskTypeCodeEnum; +import org.springblade.general_dispatching.task.mapper.HzReGuClassMapper; +import org.springblade.general_dispatching.task.mapper.HzTaskManageMapper; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.vo.HzTaskVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HzTaskManageServiceImpl implements HzTaskManageService { + @Autowired + HzTaskManageMapper hzTaskManageMapper; + + @Autowired + HzReGuClassMapper hzReGuClassMapper; + + /** + * 新增任务 + * + * @param task 任务实例 + * @return + */ + @Override + public Integer insert(HzTask task) { + task.setStateCode(HzTaskStatusEnum.TWO.getCode()); + hzTaskManageMapper.insert(task); + return task.getId(); + } + + /** + * 领用任务 + * @param paramTask 任务实例 + * @param flag true 执行计算的线程 false不执行 + * @return + */ + @Override + public Boolean assign(HzTask paramTask, String execUser, boolean flag) { + Integer taskId = paramTask.getId(); + boolean assignFlag = false; + HzTask task = hzTaskManageMapper.selectByPrimaryKey(taskId); + if (flag) { + task.setCreator(paramTask.getCreator()); + task.setCreateTime(new Date()); + task.setStartDt(new Date()); + assignFlag = update(taskId, execUser, HzTaskStatusEnum.THREE.getCode()); + } else { + assignFlag = update(taskId, execUser, HzTaskStatusEnum.THREE.getCode()); + } + return assignFlag; + } + + /** + * 删除任务 + * + * @param paramTask 任务实例 + * @return + */ + @Override + public Boolean delete(HzTask paramTask) { + Integer count = hzTaskManageMapper.deleteByPrimaryKey(paramTask.getId()); + if (count > 0) { + return true; + } else { + return false; + } + } + + /** + * 停止或完成任务 + * + * @param taskId 任务id + * @return + */ + @Override + public Boolean updateOrStop(Integer taskId, boolean stop) { + String type = ""; + if (stop) { + type = HzTaskStatusEnum.FIVE.getCode(); + } else { + type = HzTaskStatusEnum.FOUR.getCode(); + } + Boolean flag = update(taskId, null, type); + return flag; + } + + @Override + public Boolean update(Integer taskId, String execUser, String statusCode) { + HzTask task = hzTaskManageMapper.selectByPrimaryKey(taskId); + if (task != null) { + HzTask tmpTask = new HzTask(); + tmpTask.setStateCode(statusCode); + if (statusCode.equals(HzTaskStatusEnum.FOUR.getCode()) || statusCode.equals(HzTaskStatusEnum.FIVE.getCode())) { + tmpTask.setEndDt(new Date()); + } + if (execUser != null) { + tmpTask.setExecUser(execUser); + } + tmpTask.setId(taskId); + hzTaskManageMapper.updateByPrimaryKey(tmpTask); + return true; + } else { + return false; + } + } + + @Override + public Boolean update(Integer taskId, String execUser, String remark, String statusCode) { + HzTask task = hzTaskManageMapper.selectByPrimaryKey(taskId); + if (task != null) { + task.setStateCode(statusCode); + if (statusCode.equals(HzTaskStatusEnum.FOUR.getCode()) || statusCode.equals(HzTaskStatusEnum.FIVE.getCode())) { + task.setEndDt(new Date()); + } + if (execUser != null) { + task.setExecUser(execUser); + } + if (remark != null) { + task.setRemark(remark); + } + hzTaskManageMapper.updateByPrimaryKey(task); + return true; + } else { + return false; + } + } + + @Override + public boolean classTask() { + Map param = new HashMap<>(); + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + param.put("start", sdf.format(now) + " 00:00:00"); + param.put("end", sdf.format(now) + " 23:59:59"); + param.put("typeCode", HzTaskTypeCodeEnum.ONE.getCode()); + List list = hzTaskManageMapper.selectVoByMap(param); + if (list != null && !list.isEmpty()) { + return true; + } else { + return false; + } + } + + @Override + public List selectVoByMap(Map param) { + List tasks = hzTaskManageMapper.selectVoByMap(param); + dealHzTaskVo(tasks); + return tasks; + } + + @Override + public Boolean receive(HzTask task, String name) { + if (task != null && task.getId() != null) { + HzTask taskTemp = hzTaskManageMapper.selectByPrimaryKey(task.getId()); + if (taskTemp != null) { + taskTemp.setCreateTime(new Date()); + taskTemp.setCreator(name); + taskTemp.setStateCode(HzTaskStatusEnum.TWO.getCode()); + taskTemp.setPlanEndDt(task.getPlanEndDt()); + taskTemp.setPlanStartDt(task.getPlanStartDt()); + taskTemp.setTypeCode(task.getTypeCode()); + taskTemp.setExecUser(task.getExecUser()); + taskTemp.setRemark(task.getRemark()); + taskTemp.setCron(task.getCron()); + return hzTaskManageMapper.updateByPrimaryKey(taskTemp) > 0; + } + } + return false; + } + + @Override + public boolean updateByPrimaryKey(HzTask task) { + return hzTaskManageMapper.updateByPrimaryKey(task)>0; + } + + + @Override + public List selectVoByParam(HzTaskVo task) { + List tasks = hzTaskManageMapper.selectVoByParam(task); + dealHzTaskVo(tasks); + return tasks; + } + + @Override + public List selectByParam(HzTask task) { + List tasks = hzTaskManageMapper.selectByParam(task); + return tasks; + } + + @Override + public List selectClass() { + return hzReGuClassMapper.selectClass(); + } + + @Override + public IPage listPage(String name, String code, String stateCode, String execUser, IPage pageParam) { + Map param = new HashMap<>(); + if (name != null && !"".equals(name)) { + param.put("name","%" + name + "%"); + } + + if(execUser != null && !"".equals(execUser)){ + param.put("execUser",execUser); + } + if(stateCode != null && !"".equals(stateCode)){ + List stateCodes=new ArrayList<>(); + String[] stateCodeArr=stateCode.split(","); + for(String ss:stateCodeArr){ + stateCodes.add(Integer.valueOf(ss)); + } + param.put("stateCodes",stateCodes); + } + + if(code != null && !"".equals(code)){ + param.put("code","%" + code + "%"); + } + + + IPage list=hzTaskManageMapper.selectVoByParam(param, pageParam); + dealHzTaskVo(list.getRecords()); + return list; + } + + @Override + public IPage completeAndStop(String name, String code, IPage pageParam) { + Map param = new HashMap<>(); + if (name != null && !"".equals(name)) { + param.put("name","%" + name + "%"); + } + + if(code != null && !"".equals(code)){ + param.put("code","%" + code + "%"); + } + + IPage list=hzTaskManageMapper.completeAndStop(param, pageParam); + dealHzTaskVo(list.getRecords()); + return list; + } + + @Override + public boolean createScheduleTask(HzTask task) { + task.setName(HzTaskTypeCodeEnum.getEnumName(task.getTypeCode())); + task.setTypeCode(task.getTypeCode()); + Integer count = insert(task); + if (count > 0) { + return true; + } else { + return false; + } + } + + @Override + public List selectTaskIds(List pIds) { + List tasks =hzTaskManageMapper.selectTaskIds(pIds); + dealHzTaskVo(tasks); + return tasks; + } + + private void dealHzTaskVo(List list){ + if(list!=null && !list.isEmpty()){ + for(HzTaskVo vo: list){ + if(StringUtils.isNotBlank(vo.getClasses())){ + String name=vo.getName(); + String classes=vo.getClasses(); + vo.setName(name+"("+classes+")"); + } + } + } + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunLogServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunLogServiceImpl.java new file mode 100644 index 0000000..ca8f10f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunLogServiceImpl.java @@ -0,0 +1,47 @@ +package org.springblade.general_dispatching.task.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.general_dispatching.task.entity.HzWdRunLog; +import org.springblade.general_dispatching.task.mapper.HzWdRunLogMapper; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class HzWdRunLogServiceImpl implements HzWdRunLogService { + @Autowired + HzWdRunLogMapper hzWdRunLogMapper; + @Override + public int insert(HzWdRunLog hzWdRunLog) { + return hzWdRunLogMapper.insert(hzWdRunLog); + } + + @Override + public int updateByPrimaryKey(HzWdRunLog hzWdRunLog) { + return hzWdRunLogMapper.updateByPrimaryKey(hzWdRunLog); + } + + @Override + public int deleteByPrimaryKey(Integer id) { + return hzWdRunLogMapper.deleteByPrimaryKey(id); + } + + @Override + public List selectByParam(Map param) { + return hzWdRunLogMapper.selectByParam(param); + } + + @Override + public IPage listPage(Map param, IPage page) { + IPage list= hzWdRunLogMapper.selectByParam(param,page); + return list; + } + + @Override + public HzWdRunLog selectByPrimaryKey(Integer id) { + return hzWdRunLogMapper.selectByPrimaryKey(id); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunTaskServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunTaskServiceImpl.java new file mode 100644 index 0000000..c6f31d7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/service/impl/HzWdRunTaskServiceImpl.java @@ -0,0 +1,34 @@ +package org.springblade.general_dispatching.task.service.impl; + +import org.springblade.general_dispatching.task.entity.HzWdRunTask; +import org.springblade.general_dispatching.task.mapper.HzWdRunTaskMapper; +import org.springblade.general_dispatching.task.service.HzWdRunTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class HzWdRunTaskServiceImpl implements HzWdRunTaskService { + @Autowired + HzWdRunTaskMapper hzWdRunTaskMapper; + + @Override + public List selectByParam(HzWdRunTask runTask) { + if(runTask!=null) { + return hzWdRunTaskMapper.selectByTaskId(runTask.getTaskId()); + }else{ + return hzWdRunTaskMapper.selectByTaskId(null); + } + } + + @Override + public boolean deleteByTaskId(Integer taskId) { + return hzWdRunTaskMapper.deleteByTaskId(taskId)>0; + } + + @Override + public int insert(HzWdRunTask runTask) { + return hzWdRunTaskMapper.insert(runTask); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/DateUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/DateUtil.java new file mode 100644 index 0000000..b6860b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/DateUtil.java @@ -0,0 +1,104 @@ +package org.springblade.general_dispatching.task.util; + +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; + +import java.text.ParseException; +import java.util.Date; + +public class DateUtil extends DateUtils { + private static String[] parsePatterns = new String[]{"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + public DateUtil() { + } + + public static String getDate() { + return getDate("yyyy-MM-dd"); + } + + public static String getDate(String pattern) { + return DateFormatUtils.format(new Date(), pattern); + } + + public static String formatDate(Date date, Object... pattern) { + String formatDate = null; + if (pattern != null && pattern.length > 0) { + formatDate = DateFormatUtils.format(date, pattern[0].toString()); + } else { + formatDate = DateFormatUtils.format(date, "yyyy-MM-dd"); + } + + return formatDate; + } + + public static String formatDateTime(Date date) { + return formatDate(date, "yyyy-MM-dd HH:mm:ss"); + } + + public static String getTime() { + return formatDate(new Date(), "HH:mm:ss"); + } + + public static String getDateTime() { + return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + } + + public static String getYear() { + return formatDate(new Date(), "yyyy"); + } + + public static String getMonth() { + return formatDate(new Date(), "MM"); + } + + public static String getDay() { + return formatDate(new Date(), "dd"); + } + + public static String getWeek() { + return formatDate(new Date(), "E"); + } + + public static Date parseDate(Object str) { + if (str == null) { + return null; + } else { + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException var2) { + return null; + } + } + } + + public static long pastDays(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 86400000L; + } + + public static long pastHour(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 3600000L; + } + + public static long pastMinutes(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 60000L; + } + + public static String formatDateTime(long timeMillis) { + long day = timeMillis / 86400000L; + long hour = timeMillis / 3600000L - day * 24L; + long min = timeMillis / 60000L - day * 24L * 60L - hour * 60L; + long s = timeMillis / 1000L - day * 24L * 60L * 60L - hour * 60L * 60L - min * 60L; + long sss = timeMillis - day * 24L * 60L * 60L * 1000L - hour * 60L * 60L * 1000L - min * 60L * 1000L - s * 1000L; + return (day > 0L ? day + "," : "") + hour + ":" + min + ":" + s + "." + sss; + } + + public static double getDistanceOfTwoDate(Date before, Date after) { + long beforeTime = before.getTime(); + long afterTime = after.getTime(); + return (double)((afterTime - beforeTime) / 86400000L); + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/MapUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/MapUtil.java new file mode 100644 index 0000000..cff40e2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/MapUtil.java @@ -0,0 +1,39 @@ +package org.springblade.general_dispatching.task.util; + +import org.apache.commons.lang3.ArrayUtils; + +import java.util.Iterator; +import java.util.Map; + +public class MapUtil { + /** Map中根据key批量删除键值对 + * @param map + * @param excludeKeys + * @param + * @param + * @return + */ + public static Map removeEntries(Map map, K[] excludeKeys) { + Iterator iterator = map.keySet().iterator(); + while (iterator.hasNext()) { + K k = iterator.next(); + // 如果k刚好在要排除的key的范围中 + if (ArrayUtils.contains(excludeKeys, k)) { + iterator.remove(); + map.remove(k); + } + } + return map; + } + + public static Map removeAll(Map map) { + Iterator iterator = map.keySet().iterator(); + while (iterator.hasNext()) { + K k = iterator.next(); + // 如果k刚好在要排除的key的范围中 + iterator.remove(); + map.remove(k); + } + return map; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/TimeRangeUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/TimeRangeUtil.java new file mode 100644 index 0000000..e59c712 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/util/TimeRangeUtil.java @@ -0,0 +1,41 @@ +package org.springblade.general_dispatching.task.util; + +import java.time.LocalTime; + +public class TimeRangeUtil { + /** 判断是否在某个时间范围内 + * @param startTime 范围开始时间 格式为"xx:xx" + * @param endTime 范围结束时间 格式为"xx:xx" + * @param nowHour 当前小时 + * @param nowMinute 当前分钟 + * @return true/false + */ + public static boolean isTimeRange(String startTime, String endTime, int nowHour, int nowMinute){ + LocalTime nowTime = LocalTime.of(nowHour,nowMinute); + int startHour = getHourOrMinute(startTime,true); + int startMinute = getHourOrMinute(startTime,false); + LocalTime startTimeLocal = LocalTime.of(startHour,startMinute); + int endHour = getHourOrMinute(endTime,true); + int endMinute = getHourOrMinute(endTime,false); + LocalTime endTimeLocal = LocalTime.of(endHour,endMinute); + if (nowTime.isAfter(startTimeLocal)&&endTimeLocal.isAfter(nowTime)){ + return true; + }else if (nowTime.equals(startTimeLocal)||endTimeLocal.equals(nowTime)){ + return true; + } + return false; + } + + /** 针对str格式的时间做转换 格式为"xx:xx" + * @param time 传入的时间 + * @param hour true:返回小时;false:返回分钟 + * @return 当前小时或分钟 + */ + private static int getHourOrMinute(String time, boolean hour){ + if (hour){ + return Integer.parseInt(time.substring(0,time.indexOf(":"))); + }else{ + return Integer.parseInt(time.substring(time.indexOf(":")+1)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskDetailAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskDetailAddVo.java new file mode 100644 index 0000000..9ac4a7a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskDetailAddVo.java @@ -0,0 +1,26 @@ +package org.springblade.general_dispatching.task.vo; + +import org.springblade.general_dispatching.task.entity.HzTaskDetail; + +import java.util.Map; + +public class HzTaskDetailAddVo { + public static HzTaskDetail toHzTaskDetail(Map map){ + HzTaskDetail hzTaskDetail=new HzTaskDetail(); + if(map.get("id")!=null) { + hzTaskDetail.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + if(map.get("taskId")!=null) { + hzTaskDetail.setTaskId(Integer.valueOf(String.valueOf(map.get("taskId")))); + } + if(map.get("actualValue")!=null) { + hzTaskDetail.setActualValue(map.get("actualValue").toString()); + } + + if(map.get("planValue")!=null) { + hzTaskDetail.setPlanValue(map.get("planValue").toString()); + } + + return hzTaskDetail; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskVo.java new file mode 100644 index 0000000..e75e48e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/vo/HzTaskVo.java @@ -0,0 +1,298 @@ +package org.springblade.general_dispatching.task.vo; + +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.StringUtils; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.util.DateUtil; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HzTaskVo { + @ApiModelProperty( value = "任务名", notes = "任务名", dataType = "String") + private String name; + @ApiModelProperty( value = "模型实例id", notes = "模型实例id", dataType = "Integer") + private Integer pId; + @ApiModelProperty( value = "执行人员", notes = "执行人员", dataType = "String") + private String execUser; + @ApiModelProperty( value = "班次", notes = "班次", dataType = "String") + private String classes; + @ApiModelProperty( value = "班组id", notes = "班组id", dataType = "Integer") + private Integer groupId; + @ApiModelProperty( value = "任务状态", notes = "任务状态", dataType = "String") + private String stateCode; + @ApiModelProperty( value = "任务描述", notes = "任务描述", dataType = "String") + private String remark; + @ApiModelProperty( value = "计划开始时间", notes = "计划开始时间", dataType = "String") + private String planStartDt; + @ApiModelProperty( value = "计划结束时间", notes = "计划结束时间", dataType = "String") + private String planEndDt; + @ApiModelProperty( value = "开始时间", notes = "开始时间", dataType = "String") + private String startDt; + @ApiModelProperty( value = "结束时间", notes = "结束时间", dataType = "String") + private String endDt; + @ApiModelProperty( value = "定时表达式", notes = "定时表达式", dataType = "String") + private String cron; + @ApiModelProperty( value = "任务类型", notes = "任务类型", dataType = "String") + private String typeCode; + @ApiModelProperty( value = "任务状态", notes = "任务状态", dataType = "String") + private String stateCodeName; + @ApiModelProperty(value = "ID", notes = "唯一标识", dataType = "Integer") + private Integer id; + @ApiModelProperty(value = "创建人",notes = "创建人",dataType = "String") + private String creator; + @ApiModelProperty(value = "创建时间",notes = "创建时间",dataType = "Date") + private String createTime; + @ApiModelProperty(value = "最后更新人",notes = "最后更新人",dataType = "String") + private String lastUpdator; + @ApiModelProperty(value = "最后更新时间",notes = "最后更新时间",dataType = "Date") + private String lastUpdateTime; + @ApiModelProperty(value = "任务编码",notes = "任务编码",dataType = "String") + private String code; + @ApiModelProperty(value = "执行秒数",notes = "执行秒数",dataType = "String") + private String execSecond; + + private List stateCodes; + + public List getStateCodes() { + return stateCodes; + } + + public void setStateCodes(List stateCodes) { + this.stateCodes = stateCodes; + } + + public String getExecSecond() { + if(StringUtils.isNotBlank(execSecond)){ + String tmp=execSecond.replace("秒",""); + return tmp; + } + return execSecond; + } + + public void setExecSecond(String execSecond) { + this.execSecond = execSecond; + } + + public String getStateCodeName() { + return stateCodeName; + } + + public void setStateCodeName(String stateCodeName) { + this.stateCodeName = stateCodeName; + } + + public static HzTask toHzTask(Map map){ + HzTask task = new HzTask(); + if(map.get("id")!=null) { + task.setId(Integer.valueOf(String.valueOf(map.get("id")))); + } + if(map.get("execUser") != null){ + task.setExecUser(map.get("execUser").toString()); + } + if(map.get("typeCode") != null){ + task.setTypeCode(map.get("typeCode").toString()); + } + if(map.get("planStartDt") != null){ + task.setPlanStartDt(DateUtil.parseDate(map.get("planStartDt").toString())); + } + if(map.get("planEndDt") != null){ + task.setPlanEndDt(DateUtil.parseDate(map.get("planEndDt").toString())); + } + if(map.get("cron") != null){ + task.setCron(map.get("cron").toString()); + } + if(map.get("remark") != null){ + String remark=map.get("remark").toString(); + task.setRemark(remark); + } + return task; + } + + public static Map checkHzTask(Map data){ + Map map=new HashMap<>(); + + map.put("flag","true"); + + if(data.get("execUser") == null || "".equals(data.get("execUser"))){ + map.put("flag","false"); + map.put("msg","领用人不能为空"); + } + + if(data.get("planStartDt") != null && data.get("planEndDt") != null){ + Date start= DateUtil.parseDate(data.get("planStartDt")); + Date end=DateUtil.parseDate(data.get("planEndDt")); + double gg=DateUtil.getDistanceOfTwoDate(start,end); + if(gg<0){ + map.put("flag","false"); + map.put("msg","计划开始时间不能大于计划结束时间"); + } + } + + + if(data.get("remark") != null){ + String remark=data.get("remark").toString(); + if(remark.length() > 400){ + map.put("flag","false"); + map.put("msg","任务描述不能超过400字"); + } + } + + + return map; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getLastUpdator() { + return lastUpdator; + } + + public void setLastUpdator(String lastUpdator) { + this.lastUpdator = lastUpdator; + } + + public String getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(String lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getpId() { + return pId; + } + + public void setpId(Integer pId) { + this.pId = pId; + } + + public String getExecUser() { + return execUser; + } + + public void setExecUser(String execUser) { + this.execUser = execUser; + } + + public String getClasses() { + return classes; + } + + public void setClasses(String classes) { + this.classes = classes; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public String getStateCode() { + return stateCode; + } + + public void setStateCode(String stateCode) { + this.stateCode = stateCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getStartDt() { + return startDt; + } + + public void setStartDt(String startDt) { + this.startDt = startDt; + } + + public String getEndDt() { + return endDt; + } + + public void setEndDt(String endDt) { + this.endDt = endDt; + } + + public String getCron() { + return cron; + } + + public void setCron(String cron) { + this.cron = cron; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getPlanStartDt() { + return planStartDt; + } + + public void setPlanStartDt(String planStartDt) { + this.planStartDt = planStartDt; + } + + public String getPlanEndDt() { + return planEndDt; + } + + public void setPlanEndDt(String planEndDt) { + this.planEndDt = planEndDt; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskDetailController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskDetailController.java new file mode 100644 index 0000000..77a1cd6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskDetailController.java @@ -0,0 +1,78 @@ +package org.springblade.general_dispatching.task.web; + +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 org.springblade.general_dispatching.entity.Chart; +import org.springblade.general_dispatching.task.entity.HzTaskDetail; +import org.springblade.general_dispatching.task.entity.HzTaskStatusEnum; +import org.springblade.general_dispatching.task.entity.HzWdRunLog; +import org.springblade.general_dispatching.task.entity.RunLogLevelCodeEnum; +import org.springblade.general_dispatching.task.service.HzTaskDetailService; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/task/detail") +@Api(tags = "任务详情接口") +public class HzTaskDetailController { + @Autowired + HzTaskDetailService hzTaskDetailService; + @Autowired + HzTaskManageService hzTaskManageService; + + @Autowired + HzWdRunLogService hzWdRunLogService; + + @ApiOperation(value = "查询防洪任务详情数据",notes = "查询防洪任务详情数据") + @RequestMapping(value = "/flood/{taskId}",method = RequestMethod.GET) + public R getFloodById(@PathVariable Integer taskId){ + List charts=hzTaskDetailService.getFloodPreventTaskData(taskId); + return R.data(charts,"查询成功"); + } + + @ApiOperation(value = "查询排班任务详情数据",notes = "查询排班任务详情数据") + @RequestMapping(value = "/class/{taskId}",method = RequestMethod.GET) + public R getClassPlanById(@PathVariable Integer taskId){ + List data=hzTaskDetailService.getClassPlanData(taskId); + return R.data(data,"查询成功"); + } + + + @ApiOperation(value = "查询实时调度任务详情数据",notes = "查询实时调度任务详情数据") + @RequestMapping(value = "/real/{taskId}",method = RequestMethod.GET) + public R getGeneratedRealTimeById(@PathVariable Integer taskId){ + List charts=hzTaskDetailService.getGeneratedRealTimeTaskData(taskId); + return R.data(charts,"查询成功"); + } + + @ApiOperation(value = "批量更新任务详情数据",notes = "批量更新任务详情数据") + @RequestMapping(value = "/update",method = RequestMethod.POST) + public R update(@RequestBody Map data){ + String userId= String.valueOf(AuthUtil.getUserId()); + hzTaskDetailService.updateData(data,userId); + //更新任务状态 + Integer taskId= Integer.valueOf(data.get("taskId").toString()); + hzTaskManageService.update(taskId,null, + String.valueOf(data.get("remark")), HzTaskStatusEnum.FOUR.getCode()); + // + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage("任务详情数据更新成功"); + runLog.setpId(taskId); + runLog.setCreater(userId); + runLog.setCreateTime(new Date()); + runLog.setLevelCode(RunLogLevelCodeEnum.INFO.getCode()); + runLog.setSourceType("01"); + runLog.setSourceName("用户"); + hzWdRunLogService.insert(runLog); + return R.data(data,"保存成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskManageController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskManageController.java new file mode 100644 index 0000000..5a7fc18 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzTaskManageController.java @@ -0,0 +1,153 @@ +package org.springblade.general_dispatching.task.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.general_dispatching.task.entity.HzTask; +import org.springblade.general_dispatching.task.entity.HzTaskStatusEnum; +import org.springblade.general_dispatching.task.entity.HzWdRunLog; +import org.springblade.general_dispatching.task.entity.RunLogLevelCodeEnum; +import org.springblade.general_dispatching.task.service.HzTaskManageService; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springblade.general_dispatching.task.vo.HzTaskVo; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/taskmanage/task") +@Api(tags = "任务管理接口") +public class HzTaskManageController { + + @Autowired + HzTaskManageService hzTaskManageService; + + @Autowired + HzWdRunLogService hzWdRunLogService; + + @ApiOperation(value = "查询任务",notes = "查询任务") + @RequestMapping(value = "/{id}",method = RequestMethod.GET) + public R getById(@PathVariable Integer id){ + HzTaskVo task=new HzTaskVo(); + task.setId(id); + List tasks=hzTaskManageService.selectVoByParam(task); + if(tasks!=null && !tasks.isEmpty()){ + return R.data(tasks.get(0),"查询成功"); + } + return R.data(500,false,"查询失败"); + } + + @ApiOperation(value = "查询任务列表",notes = "查询任务列表") + @RequestMapping(value = "/tasks",method = RequestMethod.GET) + public R listPage(String name, String code, String stateCode, Query query, HttpServletRequest request){ + String userId = String.valueOf(AuthUtil.getUserId()); + IPage pages=hzTaskManageService.listPage( name,code, stateCode,userId, Condition.getPage(query)); + return R.data(pages,"查询成功"); + } + + @ApiOperation(value = "未领用任务列表",notes = "未领用任务列表") + @RequestMapping(value = "/list",method = RequestMethod.GET) + public R list(String name, String code, Query query){ + IPage pages=hzTaskManageService.listPage( name,code, + HzTaskStatusEnum.ONE.getCode()+","+HzTaskStatusEnum.TWO.getCode()+","+HzTaskStatusEnum.THREE.getCode(), + null, Condition.getPage(query)); + return R.data(pages,"查询成功"); + } + + @ApiOperation(value = "已完成任务列表",notes = "已完成任务列表") + @RequestMapping(value = "/complete",method = RequestMethod.GET) + public R complete(String name, String code, Query query){ + IPage pages=hzTaskManageService.listPage( name,code, HzTaskStatusEnum.FOUR.getCode(),null, Condition.getPage(query)); + return R.data(pages,"查询成功"); + } + + @ApiOperation(value = "已完成和已停止任务列表",notes = "已完成和已停止任务列表") + @RequestMapping(value = "/completeAndStop",method = RequestMethod.GET) + public R completeAndStop(String name, String code, Query query){ + IPage pages=hzTaskManageService.completeAndStop( name,code, Condition.getPage(query)); + return R.data(pages,"查询成功"); + } + + + @ApiOperation(value = "新增任务",notes = "新增任务") + @RequestMapping(value="/task",method = RequestMethod.POST) + public R add(@RequestBody HzTask task){ + int id=hzTaskManageService.insert(task); + return R.data(id,"新增成功"); + } + + @ApiOperation(value = "修改任务",notes = "修改任务") + @RequestMapping(value="/task",method = RequestMethod.PUT) + public R update(@RequestBody HzTask task){ + Boolean count=hzTaskManageService.update(task.getpId(),task.getExecUser(),task.getStateCode()); + return R.data(count,"修改成功"); + } + + @ApiOperation(value = "指派任务",notes = "指派任务") + @RequestMapping(value="/receive",method = RequestMethod.POST) + public R receive(@RequestBody Map data, HttpServletRequest request){ + + String name = AuthUtil.getUserName(); + String userId= String.valueOf(AuthUtil.getUserId()); + + Map map=HzTaskVo.checkHzTask(data); + if(map.get("flag").equals("false")){ + return R.data(500,false,map.get("msg")); + } + HzTask task=HzTaskVo.toHzTask(data); + Boolean count=hzTaskManageService.receive(task,name); + if(count){ + User excUser= UserCache.getUser(Long.valueOf(task.getExecUser())); + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage("指派任务成功,指派给"+excUser.getName()); + runLog.setpId(task.getId()); + runLog.setCreater(userId); + runLog.setCreateTime(new Date()); + runLog.setLevelCode(RunLogLevelCodeEnum.INFO.getCode()); + runLog.setSourceType("01"); + runLog.setSourceName("用户"); + hzWdRunLogService.insert(runLog); + return R.data(true,"指派任务成功"); + }else{ + HzWdRunLog runLog=new HzWdRunLog(); + runLog.setMessage("指派任务失败"); + runLog.setpId(task.getId()); + runLog.setCreater(userId); + runLog.setCreateTime(new Date()); + runLog.setLevelCode(RunLogLevelCodeEnum.ERROR.getCode()); + runLog.setSourceType("02"); + runLog.setSourceName("系统"); + hzWdRunLogService.insert(runLog); + return R.data(500,false,"指派任务失败"); + } + + } + + @ApiOperation(value = "删除任务",notes = "删除任务") + @RequestMapping(value="/task/{id}",method = RequestMethod.DELETE) + public R del(@PathVariable Integer id){ + HzTask paramTask=new HzTask(); + paramTask.setId(id); + Boolean count=hzTaskManageService.delete(paramTask); + return R.data(count,"删除成功"); + } + + //查询是否存在二次排班任务 + @ApiOperation(value = "查询是否存在二次排班任务",notes = "查询是否存在二次排班任务") + @RequestMapping(value = "/classTask",method = RequestMethod.GET) + public R classTask(){ + boolean flag=hzTaskManageService.classTask(); + return R.data(flag,"查询成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzWdRunLogController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzWdRunLogController.java new file mode 100644 index 0000000..51ff87f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/java/org/springblade/general_dispatching/task/web/HzWdRunLogController.java @@ -0,0 +1,102 @@ +package org.springblade.general_dispatching.task.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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 org.springblade.general_dispatching.task.entity.HzWdRunLog; +import org.springblade.general_dispatching.task.service.HzWdRunLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/task/runlog") +@Api(tags = "任务运行日志接口") +public class HzWdRunLogController { + @Autowired + HzWdRunLogService hzWdRunLogService; + + @ApiOperation(value = "查询任务日志列表",notes = "查询任务日志列表") + @RequestMapping(value = "/list",method = RequestMethod.GET) + public R list(Integer taskId, String startTime, String endTime){ + Map param=new HashMap<>(); + if(taskId!=null && !"".equals(taskId)) { + param.put("pId", taskId); + } + + if(startTime!=null && !"".equals(startTime) && endTime!=null && !"".equals(endTime)) { + param.put("startTime", startTime+" 00:00:00"); + param.put("endTime", endTime+" 23:59:59"); + } + + List list=hzWdRunLogService.selectByParam(param); + return R.data(list,"查询成功"); + } + + @ApiOperation(value = "查询任务日志列表分页",notes = "查询任务日志列表分页") + @RequestMapping(value = "/pageList",method = RequestMethod.GET) + public R pageList(Integer taskId, String startTime, String endTime, Query query){ + Map param=new HashMap<>(); + if(taskId!=null && !"".equals(taskId)) { + param.put("pId", taskId); + } + + if(startTime!=null && !"".equals(startTime) && endTime!=null && !"".equals(endTime)) { + param.put("startTime", startTime+" 00:00:00"); + param.put("endTime", endTime+" 23:59:59"); + } + IPage pageList=hzWdRunLogService.listPage(param, Condition.getPage(query)); + return R.data(pageList,"查询成功"); + } + + @ApiOperation(value = "新增日志",notes = "新增日志") + @RequestMapping(value = "/insert",method = RequestMethod.POST) + public R insert(@RequestBody HzWdRunLog hzWdRunLog){ + String userId = String.valueOf(AuthUtil.getUserId()); + + hzWdRunLog.setCreateTime(new Date()); + hzWdRunLog.setCreater(userId); + int id=hzWdRunLogService.insert(hzWdRunLog); + if(id > 0) { + return R.data(id,"新增日志成功"); + }else{ + return R.data(500,false,"新增日志失败"); + } + } + + @ApiOperation(value = "修改日志",notes = "修改日志") + @RequestMapping(value = "/update",method = RequestMethod.PUT) + public R update(@RequestBody HzWdRunLog hzWdRunLog){ + String userId = String.valueOf(AuthUtil.getUserId()); + + hzWdRunLog.setCreateTime(new Date()); + hzWdRunLog.setCreater(userId); + int count=hzWdRunLogService.updateByPrimaryKey(hzWdRunLog); + if(count > 0) { + return R.data(true,"修改日志成功"); + }else{ + return R.data(500,false,"修改日志失败"); + } + } + + @ApiOperation(value = "删除日志",notes = "删除日志") + @RequestMapping(value = "/del/{id}",method = RequestMethod.DELETE) + public R del(@PathVariable Integer id){ + int count=hzWdRunLogService.deleteByPrimaryKey(id); + if(count > 0) { + return R.data(true,"删除日志成功"); + }else{ + return R.data(500,false,"删除日志失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..31f6f43 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-dev.yml @@ -0,0 +1,17 @@ +#服务器端口 +server: + port: 8204 + +file: + upload: + path: D:\\upload + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application.yml new file mode 100644 index 0000000..918d7a4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/general-dispatching-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: general-dispatching + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/pom.xml new file mode 100644 index 0000000..df2243d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/pom.xml @@ -0,0 +1,204 @@ + + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + + 4.0.0 + + pxhd-hz3000-real-data-service + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + org.springblade + pxhd-hz3000-real-data-api + 4.5.0.RELEASE + compile + + + + org.springblade + blade-system-api + 4.5.0.RELEASE + + + + org.springblade + blade-starter-datascope + 4.5.0.RELEASE + compile + + + + dom4j + dom4j + 1.6.1 + + + + org.mongodb + mongodb-driver + 3.10.1 + + + + org.mongodb + bson + 3.10.1 + compile + + + + org.mongodb + mongodb-driver-core + 3.10.1 + compile + + + + + net.sf.ehcache + ehcache-core + 2.6.9 + + + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.2.0 + compile + + + + net.lingala.zip4j + zip4j + 1.3.2 + + + + redis.clients + jedis + 2.9.0 + + + + net.java.dev.jna + jna + 3.1.0 + + + + cn.afterturn + easypoi-base + 3.3.0 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi-ooxml-schemas + + + + + + org.apache.poi + poi + 3.17 + + + + org.apache.hbase + hbase-server + 1.4.0 + + + org.apache.commons + commons-math + + + + + + com.aliyun + aliyun-java-sdk-core + 4.0.6 + + + com.aliyun + aliyun-java-sdk-dysmsapi + 1.1.0 + + + + jaxen + jaxen + 1.1.6 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/Hz3000RealDataApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/Hz3000RealDataApplication.java new file mode 100644 index 0000000..bf57dfc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/Hz3000RealDataApplication.java @@ -0,0 +1,21 @@ +package org.springblade.hz3000_real_data; + +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; + +@EnableBladeFeign +@SpringCloudApplication +public class Hz3000RealDataApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="hz3000-real-data"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, Hz3000RealDataApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, Hz3000RealDataApplication.class); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/controller/StatisticsController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/controller/StatisticsController.java new file mode 100644 index 0000000..09e7d07 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/controller/StatisticsController.java @@ -0,0 +1,118 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.analysis.controller; + +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.analysis.service.StatisticsService; +import org.springblade.hz3000_real_data.history.entity.HisDataYc; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping({"/hz3000RealData/statistics"}) +public class StatisticsController { + @Autowired + private StatisticsService statisticsService; + + public StatisticsController() { + } + + @RequestMapping({"/diffCompare"}) + public String diffCompare(HttpServletRequest request, HttpServletResponse response) { + return "modules/statistical-analysis/diffcompare"; + } + + @RequestMapping({"/ringCompare"}) + public String ringCompare(HttpServletRequest request, HttpServletResponse response) { + return "modules/statistical-analysis/ringcompare"; + } + + @ResponseBody + @RequestMapping({"/getRingCompareData"}) + public R getRingCompareData(HttpServletRequest request, HttpServletResponse response, String ycids, String start, String end, int statisticstype, int ringQueryType) { + try { + Map data=new HashMap<>(); + String[] ycidpa = ycids.split(","); + List list=new ArrayList<>(); + for(int i = 0; i < ycidpa.length; ++i) { + RingData rd = new RingData(); + rd.id = ycidpa[i]; + rd.data = this.statisticsService.queryRingData(rd.id, start, end, statisticstype, ringQueryType); + if (rd.data == null) { + rd.data = new ArrayList(); + } + + list.add(rd); + } + + data.put("total",list.size()); + data.put("rows",list); + return R.data(data,"查询成功"); + } catch (Exception var12) { + return R.fail("查询失败"); + } + } + + @ResponseBody + @RequestMapping({"/getDiffCompareData"}) + public R getDiffCompareData(HttpServletRequest request, HttpServletResponse response, String ycids, String start, String end, int compareTime, int statisticstype, int ringQueryType) { + + try { + Map data=new HashMap<>(); + List list=new ArrayList<>(); + String[] ycidpa = ycids.split(","); + + for(int i = 0; i < ycidpa.length; ++i) { + RingData rd = new RingData(); + rd.id = ycidpa[i]; + rd.data = this.statisticsService.queryDiffData(rd.id, start, end, compareTime, statisticstype, ringQueryType); + if (rd.data == null) { + rd.data = new ArrayList(); + } + + list.add(rd); + } + + data.put("total",list.size()); + data.put("rows",list); + return R.data(data,"查询成功"); + } catch (Exception var13) { + var13.printStackTrace(); + return R.fail("查询失败"); + } + } + + class RingData { + public String id; + public List> data; + + RingData() { + } + } + + class YcData { + public int q; + public double val; + public String datatime; + + public YcData(HisDataYc data) { + if (data != null) { + this.q = data.getQ(); + this.val = data.getVal(); + } + + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/entity/StatisticsCommonEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/entity/StatisticsCommonEntity.java new file mode 100644 index 0000000..e0a5dd0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/entity/StatisticsCommonEntity.java @@ -0,0 +1,36 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.analysis.entity; + +import java.io.Serializable; + +public class StatisticsCommonEntity implements Serializable { + private String val; + private String datatime; + + public StatisticsCommonEntity() { + } + + public String getVal() { + return this.val; + } + + public void setVal(String val) { + this.val = val; + } + + public String getDatatime() { + return this.datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } + + public String toString() { + return "CommonEntity [val=" + this.val + ", datatime=" + this.datatime + "]"; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.java new file mode 100644 index 0000000..e1bc9e4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.java @@ -0,0 +1,18 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.analysis.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; +import org.springblade.hz3000_real_data.analysis.entity.StatisticsCommonEntity; + +import java.util.List; + +@DS("slave") +public interface StatisticsMapper { +// String getYcNo(String var1); + List getRingData(@Param("stasticsstr") String var1, @Param("tablestr") String var2, @Param("datetimegroupstr") String var3, @Param("comparedatetimes") String var4); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.xml new file mode 100644 index 0000000..ae149a3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/mapper/StatisticsMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/service/StatisticsService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/service/StatisticsService.java new file mode 100644 index 0000000..f1d0ebd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/analysis/service/StatisticsService.java @@ -0,0 +1,442 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.analysis.service; + +import org.apache.commons.lang3.StringUtils; +import org.springblade.hz3000_real_data.analysis.mapper.StatisticsMapper; +import org.springblade.hz3000_real_data.analysis.entity.StatisticsCommonEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class StatisticsService { + @Autowired + StatisticsMapper hisDataDao; + + public StatisticsService() { + } + + private List> getRingData(String tablestr, Date start, Date end, StatisticsType staisticstype, EnGroupByDateTime ringQueryType) { + new ArrayList(); + String datetimegroupstr = this.getGroupStrDateTime(ringQueryType); + String comparedatetimes = this.getRingCompareArrayByDateTime(start, end, ringQueryType); + String stasticsstr = this.getStastiscStr(staisticstype); + new ArrayList(); + List listData = this.hisDataDao.getRingData(stasticsstr, tablestr, datetimegroupstr, comparedatetimes); + List> ret = this.commonEntityToList(listData); + return ret; + } + + private List> getDiffData(String tablestr, Date start, Date end, int comparetime, StatisticsType staisticstype, EnGroupByDateTime ringQueryType) { + new ArrayList(); + String datetimegroupstr = this.getGroupStrDateTime(ringQueryType); + String comparedatetimes = this.getDiffCompareArrayByDateTime(start, end, comparetime, ringQueryType); + String stasticsstr = this.getStastiscStr(staisticstype); + new ArrayList(); + List listData = this.hisDataDao.getRingData(stasticsstr, tablestr, datetimegroupstr, comparedatetimes); + List> ret = this.commonEntityToList(listData); + return ret; + } + + public List> commonEntityToList(List listData) { + List> ret = new ArrayList(); + Iterator var4 = listData.iterator(); + + while(var4.hasNext()) { + StatisticsCommonEntity commonEntity = (StatisticsCommonEntity)var4.next(); + List listItem = new ArrayList(); + listItem.add(commonEntity.getDatatime()); + listItem.add(commonEntity.getVal()); + ret.add(listItem); + } + + return ret; + } + + private String getGroupStrDateTime(EnGroupByDateTime ringQueryType) { + String str = ""; + switch(ringQueryType.ordinal()) { + case 0: + str = "DATE_FORMAT(datatime,'%Y-%m-%d %H')"; + break; + case 1: + str = "DATE_FORMAT(datatime,'%Y-%m-%d')"; + break; + case 2: + str = "DATE_FORMAT(datatime,'%Y-%m')"; + break; + case 3: + str = "DATE_FORMAT(datatime,'%Y')"; + } + + return str; + } + + private String getRingCompareArrayByDateTime(Date start, Date end, EnGroupByDateTime ringQueryType) { + String sqltext = ""; + Calendar startCalendar = Calendar.getInstance(); + Calendar endCalendar = Calendar.getInstance(); + startCalendar.setTime(start); + endCalendar.setTime(end); + ArrayList result; + int i; + SimpleDateFormat sdf; + switch(ringQueryType.ordinal()) { + case 0: + result = new ArrayList(); + startCalendar.set(11, 0); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(11, 23); + endCalendar.set(12, 59); + endCalendar.set(13, 59); + endCalendar.set(14, 999); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(11, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + + return sqltext; + case 1: + result = new ArrayList(); + startCalendar.set(5, 1); + startCalendar.set(11, 0); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(5, 1); + endCalendar.set(11, 0); + endCalendar.set(12, 0); + endCalendar.set(13, 0); + endCalendar.set(14, 0); + endCalendar.add(2, 1); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(6, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM-dd"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + + return sqltext; + case 2: + result = new ArrayList(); + startCalendar.set(5, 1); + startCalendar.set(11, 0); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(2, 11); + endCalendar.set(5, 1); + endCalendar.set(11, 0); + endCalendar.set(12, 0); + endCalendar.set(13, 0); + endCalendar.set(14, 0); + endCalendar.add(2, 1); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(2, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + case 3: + } + + return sqltext; + } + + private String getDiffCompareArrayByDateTime(Date start, Date end, int comparetime, EnGroupByDateTime ringQueryType) { + String sqltext = ""; + Calendar startCalendar = Calendar.getInstance(); + Calendar endCalendar = Calendar.getInstance(); + startCalendar.setTime(start); + endCalendar.setTime(end); + ArrayList result; + int i; + SimpleDateFormat sdf; + switch(ringQueryType.ordinal()) { + case 0: + result = new ArrayList(); + startCalendar.set(11, comparetime); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(11, 23); + endCalendar.set(12, 59); + endCalendar.set(13, 59); + endCalendar.set(14, 999); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(6, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + + return sqltext; + case 1: + result = new ArrayList(); + startCalendar.set(5, 1); + startCalendar.set(11, 0); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(5, 1); + endCalendar.set(11, 23); + endCalendar.set(12, 59); + endCalendar.set(13, 59); + endCalendar.set(14, 999); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(2, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM-"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + (new DecimalFormat("00")).format((long)comparetime) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + + return sqltext; + case 2: + result = new ArrayList(); + startCalendar.set(2, comparetime - 1); + startCalendar.set(5, 1); + startCalendar.set(11, 0); + startCalendar.set(12, 0); + startCalendar.set(13, 0); + startCalendar.set(14, 0); + endCalendar.set(2, 11); + endCalendar.set(5, 1); + endCalendar.set(11, 0); + endCalendar.set(12, 0); + endCalendar.set(13, 0); + endCalendar.set(14, 0); + endCalendar.add(2, 1); + + while(startCalendar.compareTo(endCalendar) < 0) { + result.add(startCalendar.getTime()); + startCalendar.add(1, 1); + } + + for(i = 0; i < result.size(); ++i) { + if (i == 0) { + sqltext = sqltext + "("; + } + + sdf = new SimpleDateFormat("yyyy-MM"); + sqltext = sqltext + "'" + sdf.format((Date)result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext = sqltext + ")"; + } + } + case 3: + } + + return sqltext; + } + + private String getStastiscStr(StatisticsType staisticstype) { + String sqltext = ""; + switch(staisticstype.ordinal()) { + case 0: + sqltext = sqltext + "round(val,2) as val"; + break; + case 1: + sqltext = sqltext + "round(MAX(val),2) as val"; + break; + case 2: + sqltext = sqltext + "round(MIN(val),2) as val"; + break; + case 3: + sqltext = sqltext + "round(AVG(val),2) as val"; + break; + case 4: + sqltext = sqltext + "round(SUM(val),2) as val"; + break; + case 5: + sqltext = sqltext + "round((MAX(val) - MIN(val)),2) as val"; + break; + case 6: + sqltext = sqltext + "round(AVG(val),2) as val"; + } + + return sqltext; + } + + public String getYcTableName(String id) { +// String ycNo = this.hisDataDao.getYcNo(id); +// return StringUtils.isNotBlank(ycNo) ? "tyc_" + ycNo : null; + return "tyc_" + id; + } + + public StatisticsType convertStatisticsType(int statisticstype) { + StatisticsType st = StatisticsType.IntVal; + switch(statisticstype) { + case 0: + st = StatisticsType.IntVal; + break; + case 1: + st = StatisticsType.MaxVal; + break; + case 2: + st = StatisticsType.MinVal; + break; + case 3: + st = StatisticsType.AvgVal; + break; + case 4: + st = StatisticsType.SumVal; + break; + case 5: + st = StatisticsType.ChangeVal; + } + + return st; + } + + public EnGroupByDateTime convertEnGroupByDateTime(int ringQueryType) { + EnGroupByDateTime rqt = EnGroupByDateTime.Hour; + switch(ringQueryType) { + case 0: + rqt = EnGroupByDateTime.Hour; + break; + case 1: + rqt = EnGroupByDateTime.Day; + break; + case 2: + rqt = EnGroupByDateTime.Month; + break; + case 3: + rqt = EnGroupByDateTime.Year; + } + + return rqt; + } + + public List> queryRingData(String ycid, String start, String end, int statisticstype, int ringQueryType) throws ParseException { + new ArrayList(); + StatisticsType st = this.convertStatisticsType(statisticstype); + EnGroupByDateTime rqt = this.convertEnGroupByDateTime(ringQueryType); + String tablestr = this.getYcTableName(ycid); + if (StringUtils.isNotBlank(tablestr)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List> ret = this.getRingData(tablestr, sdf.parse(start), sdf.parse(end), st, rqt); + return ret; + } else { + return null; + } + } + + public List> queryRingData(String ycid, Date start, Date end, int statisticstype, int ringQueryType) throws ParseException { + new ArrayList(); + StatisticsType st = this.convertStatisticsType(statisticstype); + EnGroupByDateTime rqt = this.convertEnGroupByDateTime(ringQueryType); + String tablestr = this.getYcTableName(ycid); + if (StringUtils.isNotBlank(tablestr)) { + List> ret = this.getRingData(tablestr, start, end, st, rqt); + return ret; + } else { + return null; + } + } + + public List> queryDiffData(String ycid, String start, String end, int comparetime, int statisticstype, int ringQueryType) throws ParseException { + new ArrayList(); + StatisticsType st = this.convertStatisticsType(statisticstype); + EnGroupByDateTime rqt = this.convertEnGroupByDateTime(ringQueryType); + String tablestr = this.getYcTableName(ycid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List> ret = this.getDiffData(tablestr, sdf.parse(start), sdf.parse(end), comparetime, st, rqt); + return ret; + } + + public static enum EnGroupByDateTime { + Hour, + Day, + Month, + Year; + + private EnGroupByDateTime() { + } + } + + public static enum StatisticsType { + IntVal, + MaxVal, + MinVal, + AvgVal, + SumVal, + ChangeVal, + IntAvg; + + private StatisticsType() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/config/Global.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/config/Global.java new file mode 100644 index 0000000..10d1ae2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/config/Global.java @@ -0,0 +1,52 @@ +package org.springblade.hz3000_real_data.fac.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.HashMap; +import java.util.Map; + +@Component +public class Global { + @Autowired + private Environment environment; + + private static Global global; + + private static Map map = new HashMap(); + + public Global() { + } + + @PostConstruct + public void init() { + global = this; + global.environment = this.environment; + } + + public static Global getInstance() { + return global; + } + + public static String getConfig(String key) { + String value = (String)map.get(key); + if (value == null) { + value = global.environment.getProperty(key); + map.put(key, value); + } + + return value; + } + + public static String getConfig(String key, String defaultValue) { + String value = (String)map.get(key); + if (value == null) { + value = global.environment.getProperty(key, defaultValue); + map.put(key, value); + } + + return value; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/controller/FactoryInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/controller/FactoryInfoController.java new file mode 100644 index 0000000..3bc0a34 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/controller/FactoryInfoController.java @@ -0,0 +1,441 @@ +package org.springblade.hz3000_real_data.fac.controller; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.LanguageEnum; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.fac.utils.LanguageUtils; +import org.springblade.hz3000_real_data.fac.vo.FGDName; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import static org.springframework.web.bind.annotation.RequestMethod.GET; +import static org.springframework.web.bind.annotation.RequestMethod.POST; + +@Controller +@RequestMapping("/factory/info") +@Api(tags = "厂组点信息接口") +public class FactoryInfoController extends BladeController { + + @RequestMapping(value = "refresh", method = GET) + @ResponseBody + @ApiOperation(notes = "更新场信息", value = "更新场信息") + public R refresh(HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().refresh(),getSuccessInfo(language)); + } + + @RequestMapping(value = "getFactoriesEx", method = GET) + @ResponseBody + @ApiOperation(notes = "获取所有厂", value = "获取所有厂") + public R getFactoriesEx( HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getFactoriesEx(language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getFactoryByStationId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据stationId获取厂", value = "根据stationId获取厂") + public R getFactoryByStationId(@ApiParam(value = "站点id", name = "stationId") @RequestParam(required = false) String stationId, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getFactoryByStationId(stationId, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getFactoryByStationIdEx", method = GET) + @ResponseBody + @ApiOperation(notes = "根据stationId获取厂,包含详细信息", value = "根据stationId获取厂,包含详细信息") + public R getFactoryByStationIdEx(@ApiParam(value = "站点id", name = "stationId") @RequestParam(required = false) String stationId + , HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getFactoryByStationIdEx(stationId, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getGroupByFactoryIdEx", method = GET) + @ResponseBody + @ApiOperation(notes = "根据厂Id获取所有组,包含详细信息", value = "根据厂Id获取所有组,包含详细信息") + public R getGroupByFactoryIdEx(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id + , HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getGroupByFactoryIdEx(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getGroupByIdEx", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组Id获取详细信息", value = "根据组Id获取详细信息") + public R getGroupByIdEx(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, + HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getGroupByIdEx(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getGroupByFactoryId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据厂Id获取所有组", value = "根据厂Id获取所有组") + public R getGroupByFactoryId(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getGroupByFactoryId(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getYcPointByGroupId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组Id获取所有遥测", value = "根据组Id获取所有遥测") + public R getYcPointByGroupId(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getYcPointByGroupId(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getYxPointByGroupId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组Id获取所有遥信", value = "根据组Id获取所有遥信") + public R getYxPointByGroupId(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getYxPointByGroupId(id),getSuccessInfo(language)); + } + + @RequestMapping(value = "getYcPointById", method = GET) + @ResponseBody + @ApiOperation(notes = "根据Id获取遥测详情", value = "根据Id获取遥测详情") + public R getYcPointById(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getYcPointById(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getYxPointById", method = GET) + @ResponseBody + @ApiOperation(notes = "根据Id获取遥信详情", value = "根据Id获取遥信详情") + public R getYxPointById(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getYxPointById(id),getSuccessInfo(language)); + } + + @RequestMapping(value = "getSoePointByGroupId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组Id获取所有告警点", value = "根据组Id获取所有告警点") + public R getSoePointByGroupId(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getSoePointByGroupId(id),getSuccessInfo(language)); + } + + @RequestMapping(value = "getDataPointDef", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组realId获取数据定义", value = "根据组realId获取数据定义") + public R getDataPointDef(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getDataPointDef(id, language),getSuccessInfo(language)); + } + + @RequestMapping(value = "getDataType", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组realId获取点类型", value = "根据组realId获取点类型") + public R getDataType(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getDataType(id),getSuccessInfo(language)); + } + + @RequestMapping(value = "getStationIdByRealId", method = GET) + @ResponseBody + @ApiOperation(notes = "根据组realId获取stationId", value = "根据组realId获取stationId") + public R getStationIdByRealId(@ApiParam(value = "id", name = "id") @RequestParam(required = false) String id, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data((Object) FacInfoFactory.getInstance().getStationIdByRealId(id),getSuccessInfo(language)); + } + + @RequestMapping(value = "getDataPoint", method = GET) + @ResponseBody + @ApiOperation(notes = "根据通道信息获取数据定义", value = "根据通道信息获取数据定义") + public R getDataPoint(@ApiParam(value = "通道号") @RequestParam long channel, @ApiParam(value = "模块号") @RequestParam int module, @ApiParam(value = "地址号") @RequestParam int address, int type, HttpSession session) { + + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getDataPoint(channel, module, address, type, language), + getSuccessInfo(language)); + } + + @RequestMapping(value = "getTotalPoint", method = GET) + @ResponseBody + @ApiOperation(notes = "根据节点id获取其所有节点类型子节点", value = "根据节点id获取其所有节点类型子节点") + public R getTotalPoint(@ApiParam(value = "节点id") @RequestParam(required = false) String id, @ApiParam(value = "节点类型号") int pointType, HttpSession session) { + String language = (String) session.getAttribute(LanguageUtils.CURRENT_LANGUAGE); + return R.data(FacInfoFactory.getInstance().getTotalPoint(id, pointType, language), + getSuccessInfo(language)); + } + + /** + * 根据实际组ID和原始ID转换成实际ID + * + * @param groupId 实际组id + * @param dataId 原始id + * @return + * @author liugang + * @date 2020-07-30 + */ + @ResponseBody + @RequestMapping(value = "convertId", method = GET) + @ApiOperation("根据实际组ID和原始ID转换成实际ID") + public R ConvertId(@ApiParam Integer groupId, Integer dataId) { + + String realId = null; + //获取原始id所在组相关信息 + BasePoint originalPoint = FacInfoFactory.getInstance().getDataPointDef(dataId.toString()); + if (Objects.isNull(originalPoint)) { + return R.fail(500,"无该数据点定义"); + } + if (originalPoint.getName().startsWith("%") && originalPoint.getName().endsWith("%")) { + return R.data(500,dataId,"全局变量"); + } + String originalGroupId = originalPoint.getGroupId(); + DataGroup originalGroup = FacInfoFactory.getInstance().getGroupByIdEx(originalGroupId); + //获取真实组信息 + DataGroup realGroup = FacInfoFactory.getInstance().getGroupByIdEx(groupId.toString()); + //依据类型获取实际id + Integer originalPointType = originalPoint.getPointType(); + if (originalPointType.equals(PointType.IsYc.getCode())) { + List ycPoints = originalGroup.getTelemetryPointList(); + for (int i = 0; i < ycPoints.size(); i++) { + if (ycPoints.get(i).getId().equals(dataId.toString())) { + List realPoints = realGroup.getTelemetryPointList(); + realId = realPoints.get(i).getId(); + break; + } + } + } + if (originalPointType.equals(PointType.IsYx.getCode())) { + List yxPoints = originalGroup.getTelesignalPointList(); + for (int i = 0; i < yxPoints.size(); i++) { + if (yxPoints.get(i).getId().equals(dataId.toString())) { + List realPoints = realGroup.getTelesignalPointList(); + realId = realPoints.get(i).getId(); + break; + } + } + } + if (originalPointType.equals(PointType.IsYk.getCode())) { + List ykPoints = originalGroup.getTelecontrolPointList(); + for (int i = 0; i < ykPoints.size(); i++) { + if (ykPoints.get(i).getId().equals(dataId.toString())) { + List realPoints = realGroup.getTelecontrolPointList(); + realId = realPoints.get(i).getId(); + break; + } + } + } + if (originalPointType.equals(PointType.IsSoe.getCode())) { + List soePoints = originalGroup.getEventPointList(); + for (int i = 0; i < soePoints.size(); i++) { + if (soePoints.get(i).getId().equals(dataId.toString())) { + List realPoints = realGroup.getEventPointList(); + realId = realPoints.get(i).getId(); + break; + } + } + } + //返回信息 + return R.data(realId,"查询成功"); + } + + /** + * 依据实际组id,数据点类型,以及索引位置,获取实际id + * + * @param groupId 实际组id + * @param type 数据点类型 + * @param index 热点索引 + * @return + * @author liugang + * @date 2020-07-30 + */ + @ResponseBody + @RequestMapping(value = "indexToId", method = GET) + @ApiOperation("根据实际组ID,数据类型,热点的索引转换成实际ID") + public R indexToId(Integer groupId, Integer type, Integer index) { + + String realId = null; + //获取真实组信息 + DataGroup realGroup = FacInfoFactory.getInstance().getGroupByIdEx(groupId.toString()); + //依据类型找到真实id + if (type.equals(PointType.IsYc.getCode() - 1)) { + List realPoints = realGroup.getTelemetryPointList(); + realId = realPoints.get(index).getId(); + } + if (type.equals(PointType.IsYx.getCode() - 1)) { + List realPoints = realGroup.getTelesignalPointList(); + realId = realPoints.get(index).getId(); + } + if (type.equals(PointType.IsYk.getCode() - 1)) { + List realPoints = realGroup.getTelecontrolPointList(); + realId = realPoints.get(index).getId(); + } + //返回信息 + return R.data(realId,"查询成功"); + } + + @ResponseBody + @RequestMapping(value = "getFGDName", method = POST) + @ApiOperation("获取厂组点信息") + public R getFGDName(@RequestBody String json) { + + try { + ObjectMapper mapper = new ObjectMapper(); + JsonNode rootNode = mapper.readTree(json); + JsonNode keyNode = rootNode.path("hzrealid"); + String hzrealid = keyNode.toString(); + BasePoint originalPoint = FacInfoFactory.getInstance().getDataPointDef(hzrealid); + List list = new ArrayList<>(); + if (originalPoint.getPointType().equals(PointType.IsSoe.getCode())) { + FGDName fgdName = new FGDName(); + fgdName.setFacName(originalPoint.getFactoryName()); + fgdName.setGpName(originalPoint.getGroupName()); + fgdName.setDataName(originalPoint.getName()); + list.add(fgdName); + } else { + return R.data(list,"未找到数据"); + } + return R.data(list,"查询成功"); + } catch (IOException e) { + return R.fail(500,"查询失败"); + } + } + + @ResponseBody + @RequestMapping(value = "isContainSoe", method = GET) + @ApiOperation("判断是否存在告警事件点") + public R isContainSoe(Integer groupId, Integer dataId) { + + DataGroup realGroup = FacInfoFactory.getInstance().getGroupByIdEx(groupId.toString()); + List soePoints = realGroup.getEventPointList(); + for (SoePoint soePoint : soePoints) { + if (soePoint.getId().equals(dataId.toString())) { + return R.data(true,"查询成功"); + } + } + List yxPoints = realGroup.getTelesignalPointList(); + for (YxPoint yxPoint : yxPoints) { + if (yxPoint.getId().equals(dataId.toString())) { + return R.data(true,"查询成功"); + } + } + List ycPoints = realGroup.getTelemetryPointList(); + for (YcPoint ycPoint : ycPoints) { + if (ycPoint.getId().equals(dataId.toString())) { + return R.data(true,"查询成功"); + } + } + List ykPoints = realGroup.getTelecontrolPointList(); + for (YkPoint ykPoint : ykPoints) { + if (ykPoint.getId().equals(dataId.toString())) { + return R.data(true,"查询成功"); + } + } + return R.data(false,"查询成功"); + } + + + /** + * + *

Title: getFactoryAndGroupByPointId

+ *

Description:根据点id查询其厂组信息

+ * @param realId 点id + * @return 点信息 + */ + @RequestMapping(value="/getFactoryAndGroupByPointId") + @ApiOperation(notes ="根据点id获取厂组信息", value = "根据点id获取厂组信息") + @ResponseBody + public R getFactoryAndGroupByPointId(@RequestParam String realId) { + try { + BasePoint pointInfo = FacInfoFactory.getInstance().getDataPointDef(realId); + return R.data(pointInfo); + } catch (Exception e) { + return R.fail(500,"获取失败"); + } + } + + + @ResponseBody + @RequestMapping({"/getFactories"}) + public R getFactories() { + try { + List result = FacInfoFactory.getInstance().getFactories(); + return R.data(result); + } catch (Exception var3) { + List result = new ArrayList(); + var3.printStackTrace(); + return R.data(result); + } + } + + @ResponseBody + @RequestMapping({"/getGroupByFactoryId"}) + public R getGroupByFactoryId(String factoryId) { + try { + List result = FacInfoFactory.getInstance().getGroupByFactoryId(factoryId); + return R.data(result); + } catch (Exception var4) { + List result = new ArrayList(); + var4.printStackTrace(); + return R.data(result); + } + } + + @ResponseBody + @RequestMapping({"/getTelemetryByGroupId"}) + public R getTelemetryByGroupId(String groupId) { + List list = null; + + try { + list = FacInfoFactory.getInstance().getYcPointByGroupId(groupId); + return R.data(list); + } catch (Exception var4) { + list = new ArrayList(); + var4.printStackTrace(); + return R.data(list); + } + } + + /** + * 由数据组id获得事件点列表 + * + * @return 组序列 + */ + @ResponseBody + @RequestMapping("/getSoePointByGroupId") + public R getSoePointByGroupId(String groupId) { + List list = null; + try { + list = FacInfoFactory.getInstance().getSoePointByGroupId(groupId); + } catch (Exception e) { + list = new ArrayList<>(); + e.printStackTrace(); + return R.data(list); + } + return R.data(list); + } + + private String getSuccessInfo(String language) { + return LanguageEnum.English.getCode().equals(language) ? FacInfoConstants.operateSuccessEn : FacInfoConstants.operateSuccess; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/BaseFacInfoDao.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/BaseFacInfoDao.java new file mode 100644 index 0000000..770846a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/BaseFacInfoDao.java @@ -0,0 +1,763 @@ +package org.springblade.hz3000_real_data.fac.dao; + +import org.slf4j.Logger; +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.LanguageEnum; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacCatchUtils; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; + +import java.util.ArrayList; +import java.util.List; + +public abstract class BaseFacInfoDao implements FactoryInfoDao { + + public void setFactories(List factories) { + FacCatchUtils.put(FacInfoConstants.factoryCatch, factories); + } + + public void setFactories(List factories, String key) { + FacCatchUtils.put(key, factories); + } + + @SuppressWarnings("unchecked") + public List getDefFactories() { + return (List) FacCatchUtils.get(FacInfoConstants.factoryCatch); + } + + @Override + public abstract boolean refresh(); + + @Override + public List getFactories() { + return getFactories(null); + } + + @Override + public List getFactories(String language) { + List source = getFactoriesEx(language); + List list = new ArrayList(); + for (int i = 0; i < source.size(); i++) { + Factory fac = new Factory(); + fac.setName(source.get(i).getName()); + fac.setId(source.get(i).getId()); + list.add(fac); + } + return list; + } + + @Override + public List getFactoryByStationId(String stationId) { + return getFactoryByStationId(stationId, null); + } + + @Override + public List getFactoryByStationId(String stationId, String language) { + List source = getFactoryByStationIdEx(stationId, language); + return turnToSimpleFactory(source); + } + + private List turnToSimpleFactory(List source) { + List list = new ArrayList<>(); + for (int i = 0; i < source.size(); i++) { + Factory fac = new Factory(); + Factory sourceFac = source.get(i); + fac.setName(sourceFac.getName()); + fac.setId(sourceFac.getId()); + fac.setStationNum(sourceFac.getStationNum()); + fac.setGroupSize(sourceFac.getGroups() == null ? 0 : sourceFac.getGroups().size()); + list.add(fac); + } + return list; + } + + @Override + public List getGroupByFactoryIdEx(String id) { + return getGroupByFactoryIdEx(id, null); + } + + @Override + public List getGroupByFactoryIdEx(String id, String language) { + List result = new ArrayList(); + List data = getFactoriesEx(language); + if (null != id && !id.isEmpty()) { + for (int i = 0; i < data.size(); i++) { + if (id.equals(data.get(i).getId())) { + List ret = data.get(i).getGroups(); + if (ret != null) { + result = ret; + break; + } + } + } + } else {// 为空时获取所有 + for (Factory factory : data) { + if (null != factory.getGroups()) { + result.addAll(factory.getGroups()); + } + } + } + return result; + } + + @Override + public List getGroupByFactoryId(String id) { + return getGroupByFactoryId(id, null); + } + + @Override + public List getGroupByFactoryId(String id, String language) { + List source = getGroupByFactoryIdEx(id, language); + List list = new ArrayList(); + for (int i = 0; i < source.size(); i++) { + DataGroup fac = new DataGroup(); + DataGroup sourceGroup = source.get(i); + fac.setName(sourceGroup.getName()); + fac.setId(sourceGroup.getId()); + fac.setSoeSize(sourceGroup.getEventPointList() == null ? 0 : sourceGroup.getEventPointList().size()); + fac.setYcSize(sourceGroup.getTelemetryPointList() == null ? 0 : sourceGroup.getTelemetryPointList().size()); + fac.setYkSize( + sourceGroup.getTelecontrolPointList() == null ? 0 : sourceGroup.getTelecontrolPointList().size()); + fac.setYxSize( + sourceGroup.getTelesignalPointList() == null ? 0 : sourceGroup.getTelesignalPointList().size()); + list.add(fac); + } + return list; + } + + @Override + public List getYcPointByGroupId(String id) { + return getYcPointByGroupId(id, null); + } + + @Override + public List getYcPointByGroupId(String id, String language) { + List result = new ArrayList<>(); + List data = getFactoriesEx(language); + Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass()); + if (null != data) { + logger.error("factory size = " + data.size()); + } + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + boolean isGet = false; + for (int j = 0; j < groups.size(); j++) { + if (id.equals(groups.get(j).getId())) { + List ret = groups.get(j).getTelemetryPointList(); + if (ret != null) { + result = ret; + isGet = true; + break; + } + } + } + if (isGet) { + break; + } + } + logger.error("result size = " + result.size()); + return result; + } + + @Override + public List getYxPointByGroupId(String id) { + return getYxPointByGroupId(id, null); + } + + @Override + public List getYxPointByGroupId(String id, String language) { + List result = new ArrayList(); + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + boolean isGet = false; + for (int j = 0; j < groups.size(); j++) { + if (id.equals(groups.get(j).getId())) { + List ret = groups.get(j).getTelesignalPointList(); + if (ret != null) { + result = ret; + isGet = true; + break; + } + } + } + if (isGet) { + break; + } + } + return result; + } + + @Override + public List getYkPointByGroupId(String id) { + return getYkPointByGroupId(id, null); + } + + @Override + public List getYkPointByGroupId(String id, String language) { + List result = new ArrayList(); + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + boolean isGet = false; + for (int j = 0; j < groups.size(); j++) { + if (id.equals(groups.get(j).getId())) { + List ret = groups.get(j).getTelecontrolPointList(); + if (ret != null) { + result = ret; + isGet = true; + break; + } + } + } + if (isGet) { + break; + } + } + return result; + } + + @Override + public YcPoint getYcPointById(String id) { + return getYcPointById(id, null); + } + + @Override + public YcPoint getYcPointById(String id, String language) { + List data = getFactoriesEx(language); + if (null != id && !id.isEmpty()) { + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + for (int j = 0; j < groups.size(); j++) { + if (groups.get(j).getYcGroup() == null) { + continue; + } + List points = groups.get(j).getYcGroup().getPointList(); + for (int k = 0; k < points.size(); k++) { + YcPoint point = (YcPoint) points.get(k); + if (point.getId().equals(id)) { + return point; + } + } + } + } + } + return null; + } + + @Override + public YxPoint getYxPointById(String id) { + List data = getFactoriesEx(); + if (null != id && !id.isEmpty()) { + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + for (int j = 0; j < groups.size(); j++) { + List points = groups.get(j).getTelesignalPointList(); + if (points == null) { + continue; + } + for (int k = 0; k < points.size(); k++) { + YxPoint point = points.get(k); + if (point.getId().equals(id)) { + return point; + } + } + } + } + } + return null; + } + + @Override + public BasePoint getDataPointDef(String id) { + return getDataPointDef(id, null); + } + + @Override + public BasePoint getDataPointDef(String id, String language) { + if (null == id || id.isEmpty()) { + return null; + } + BasePoint result = null; + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (null != groups) { + for (int j = 0; j < groups.size(); j++) { + result = getDataPointDef(groups.get(j), id); + if (null != result) { + return result; + } + } + } + } + return result; + } + + @Override + public int getDataType(String id) { + int result = PointType.IsNull.getCode(); + BasePoint point = getDataPointDef(id); + if (null != point) { + result = point.getPointType(); + } + return result; + } + + @Override + public BasePoint getDataPoint(long channel, int module, int address, int type) { + return getDataPoint(channel, module, address, type, null); + } + + @Override + public BasePoint getDataPoint(long channel, int module, int address, int type, String language) { + List data = getFactoriesEx(language); + String channelString = channel + ""; + String moduleString = module + ""; + String addressString = address + ""; + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + for (int j = 0; j < groups.size(); j++) { + DataGroup group = groups.get(j); + List points = new ArrayList<>(); + switch (type) { + case 0: + if (group.getYcGroup() != null) { + points = group.getYcGroup().getPointList(); + } + break; + case 1: + if (group.getYxGroup() != null) { + points = group.getYxGroup().getPointList(); + } + break; + case 2: + if (group.getStrGroup() != null) { + points = group.getStrGroup().getPointList(); + } + break; + } + for (BasePoint point : points) { + if (channelString.equals(point.getChannelIndex()) + && moduleString.equals(point.getModuleIndex()) + && addressString.equals(point.getAddressIndex())) { + return point; + } + } + } + } + return null; + } + + @Override + public String getStationIdByRealId(String id) { + String result = null; + if (null != id && !id.isEmpty()) { + List data = getFactoriesEx(); + for (int i = 0; i < data.size(); i++) { + Factory factory = data.get(i); + List groups = factory.getGroups(); + if (groups == null) { + continue; + } + for (int j = 0; j < groups.size(); j++) { + DataGroup group = groups.get(j); + //yc + if (null != group.getYcGroup()) { + result = getStationId(group.getYcGroup().getPointList(), id, factory); + if (null != result) { + return result; + } + } + //yx + if (null != group.getYxGroup()) { + result = getStationId(group.getYxGroup().getPointList(), id, factory); + if (null != result) { + return result; + } + } + //yk + if (null != group.getYkGroup()) { + result = getStationId(group.getYkGroup().getPointList(), id, factory); + if (null != result) { + return result; + } + } + //soe + if (null != group.getSoeGroup()) { + result = getStationId(group.getSoeGroup().getPointList(), id, factory); + if (null != result) { + return result; + } + } + //str + if (null != group.getStrGroup()) { + result = getStationId(group.getStrGroup().getPointList(), id, factory); + if (null != result) { + return result; + } + } + } + } + } + if (null == result) { + throw new RuntimeException("没有找到id为" + id + "对应的站点id"); + } + return result; + } + + private String getStationId(List points, String id, Factory factory) { + String result = null; + if (null != points && points.size() > 0) { + for (BasePoint point : points) { + if (point.getId().equals(id)) { + result = factory.getStationNum(); + break; + } + } + } + return result; + } + + @Override + public synchronized List getFactoriesEx() { + return getFactoriesEx(null); + } + + @Override + @SuppressWarnings("unchecked") + public List getFactoriesEx(String language) { + String key = null != language && LanguageEnum.English.getCode().equals(language) + ? FacInfoConstants.factoryCatchEnglish : FacInfoConstants.factoryCatch; + List factories = (List) FacCatchUtils.get(key); + if (null == factories || factories.isEmpty()) { + refresh(); + } + factories = (List) FacCatchUtils.get(key); + return factories; + } + + @Override + public List getFactoryByStationIdEx(String stationId) { + return getFactoryByStationIdEx(stationId, null); + } + + @Override + public List getFactoryByStationIdEx(String stationId, String language) { + List dataList = getFactoriesEx(language); + List result = new ArrayList<>(); + // 2018-06-13 根据站点筛选场信息,如果session中未取到stationId,返回所有,否则进行筛选 + if (null != stationId && !stationId.isEmpty()) { + for (Factory data : dataList) { + if (stationId.equals(data.getStationNum())) { + result.add(data); + } + } + } else { + result = dataList; + } + return result; + } + + @Override + public List getFactoryByStationId(List stationIds, String language) { + return turnToSimpleFactory(getFactoryByStationIdEx(stationIds, language)); + } + + @Override + public List getFactoryByStationIdEx(List stationIds, String language) { + List dataList = getFactoriesEx(language); + List result = new ArrayList<>(); + for (Factory data : dataList) { + if (stationIds.contains(data.getStationNum())) { + result.add(data); + } + } + return result; + } + + @Override + public DataGroup getGroupByIdEx(String id) { + return getGroupByIdEx(id, null); + } + + @Override + public DataGroup getGroupByIdEx(String id, String language) { + if (null == id || id.isEmpty()) { + return null; + } + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + for (int j = 0; j < groups.size(); j++) { + if (id.equals(groups.get(j).getId())) { + return groups.get(j); + } + } + } + return null; + } + + @Override + public List getSoePointByGroupId(String id) { + return getSoePointByGroupId(id, null); + } + + @Override + public List getSoePointByGroupId(String id, String language) { + if (null == id || id.isEmpty()) { + return new ArrayList<>(); + } + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + List groups = data.get(i).getGroups(); + if (groups == null) { + continue; + } + for (int j = 0; j < groups.size(); j++) { + if (id.equals(groups.get(j).getId())) { + List ret = groups.get(j).getEventPointList(); + if (ret == null) + return new ArrayList<>(); + else + return ret; + } + } + } + return new ArrayList<>(); + } + + @Override + public List getGroupByStationIdEx(String id) { + return getGroupByStationIdEx(id, null); + } + + @Override + public List getGroupByStationIdEx(String id, String language) { + List factories = getFactoryByStationIdEx(id, language); + List result = new ArrayList<>(); + for (Factory factory : factories) { + result.addAll(factory.getGroups()); + } + return result; + } + + @Override + public List getTotalPoint(String id, Integer pointType, String language) { + List result = new ArrayList<>(); + List factories = getFactoriesEx(language); + for (Factory factory : factories) { + if (null != id) { + if (id.equals(factory.getId())) { + result.addAll(getTotalPointInFactory(factory, pointType)); + break; + } else { + List groupList = factory.getGroups(); + for (DataGroup group : groupList) { + if (id.equals(group.getId())) { + return getTotalPointInGroup(group, pointType); + } else { + if (null != group.getSoeGroup() && id.equals(group.getSoeGroup().getId())) { + return group.getSoeGroup().getPointList(); + } else if (null != group.getYxGroup() && id.equals(group.getYxGroup().getId())) { + return group.getYxGroup().getPointList(); + } else if (null != group.getYcGroup() && id.equals(group.getYcGroup().getId())) { + return group.getYcGroup().getPointList(); + } else if (null != group.getYkGroup() && id.equals(group.getYkGroup().getId())) { + return group.getYkGroup().getPointList(); + } else if (null != group.getStrGroup() && id.equals(group.getStrGroup().getId())) { + return group.getStrGroup().getPointList(); + } else { + List list = getTotalPointInGroup(group, pointType); + if (null != list) { + for (BasePoint point : list) { + if (id.equals(point.getId())) { + result.add(point); + return result; + } + } + } + } + } + } + } + } else { + result.addAll(getTotalPointInFactory(factory, pointType)); + } + } + return result; + } + + @Override + public List getPointByGroupType(String id, String language) { + List data = getFactoriesEx(language); + List result = null; + for (Factory factory : data) { + List groups = factory.getGroups(); + result = getPointByGroupType(groups, id); + if (null != result) { + break; + } + } + return result; + } + + @Override + public List getPointByGroupType(List groups, String id) { + List result = null; + for (DataGroup group : groups) { + if (null != group.getSoeGroup() && id.equals(group.getSoeGroup().getId())) { + result = group.getSoeGroup().getPointList(); + break; + } + if (null != group.getYcGroup() && id.equals(group.getYcGroup().getId())) { + result = group.getYcGroup().getPointList(); + break; + } + if (null != group.getYxGroup() && id.equals(group.getYxGroup().getId())) { + result = group.getYxGroup().getPointList(); + break; + } + if (null != group.getYkGroup() && id.equals(group.getYkGroup().getId())) { + result = group.getYkGroup().getPointList(); + break; + } + if (null != group.getStrGroup() && id.equals(group.getStrGroup().getId())) { + result = group.getStrGroup().getPointList(); + break; + } + } + return result; + } + + @Override + public List getTotalPointInFactory(Factory factory, Integer pointType) { + List result = new ArrayList<>(); + List groupList = factory.getGroups(); + for (DataGroup group : groupList) { + result.addAll(getTotalPointInGroup(group, pointType)); + } + return result; + } + + @Override + public List getTotalPointInGroup(DataGroup group, Integer pointType) { + List result = new ArrayList<>(); + if ((null == pointType || pointType == PointType.IsSoe.getCode()) && null != group.getSoeGroup() && group.getSoeGroup().getChildrenCount() > 0) { + result.addAll(group.getSoeGroup().getPointList()); + } + if ((null == pointType || pointType == PointType.IsYc.getCode()) && null != group.getYcGroup() && group.getYcGroup().getChildrenCount() > 0) { + result.addAll(group.getYcGroup().getPointList()); + } + if ((null == pointType || pointType == PointType.IsYk.getCode()) && null != group.getYkGroup() && group.getYkGroup().getChildrenCount() > 0) { + result.addAll(group.getYkGroup().getPointList()); + } + if ((null == pointType || pointType == PointType.IsYx.getCode()) && null != group.getYxGroup() && group.getYxGroup().getChildrenCount() > 0) { + result.addAll(group.getYxGroup().getPointList()); + } + if ((null == pointType || pointType == PointType.IsStr.getCode()) && null != group.getStrGroup() && group.getStrGroup().getChildrenCount() > 0) { + result.addAll(group.getStrGroup().getPointList()); + } + return result; + } + + @Override + public Point getPointDef(String id, String language) { + Point result = null; + if (null != id && !id.isEmpty()) { + List data = getFactoriesEx(language); + for (int i = 0; i < data.size(); i++) { + Factory factory = data.get(i); + if (id.equals(factory.getId())) { + result = factory; + } else { + result = getPointDef(factory, id); + if (null != result) { + break; + } + } + } + } + return result; + } + + @Override + public List getStrPointByGroupId(String id, String language) { + List result = new ArrayList<>(); + + return result; + } + + public Point getPointDef(Factory factory, String id) { + Point result = null; + List groups = factory.getGroups(); + if (null != groups) { + for (int j = 0; j < groups.size(); j++) { + DataGroup group = groups.get(j); + if (id.equals(group.getId())) { + result = group; + break; + } else { + result = getDataPointDef(group, id); + if (null != result) { + break; + } + } + } + } + return result; + } + + public BasePoint getDataPointDef(DataGroup group, String id) { + BasePoint result = null; + // soe + if (null != group.getSoeGroup()) { + result = getBasePoint(group.getSoeGroup().getPointList(), id); + } + // yk + if (result == null && null != group.getYkGroup()) { + result = getBasePoint(group.getYkGroup().getPointList(), id); + } + // yc + if (result == null && null != group.getYcGroup()) { + result = getBasePoint(group.getYcGroup().getPointList(), id); + } + // yx + if (result == null && null != group.getYxGroup()) { + result = getBasePoint(group.getYxGroup().getPointList(), id); + } + //str + if (result == null && null != group.getStrGroup()) { + result = getBasePoint(group.getStrGroup().getPointList(), id); + } + return result; + } + + private BasePoint getBasePoint(List list, String id) { + BasePoint result = null; + if (null != list) { + for (BasePoint point : list) { + if (id.equals(point.getId())) { + result = point; + break; + } + } + } + return result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/FactoryInfoDao.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/FactoryInfoDao.java new file mode 100644 index 0000000..c2ba8a3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/FactoryInfoDao.java @@ -0,0 +1,261 @@ +package org.springblade.hz3000_real_data.fac.dao; + +import org.springblade.hz3000_real_data.fac.entity.*; + +import java.util.List; + +public interface FactoryInfoDao { + /** + * 更新厂组点信息F + * + * @return boolean + * @author ypj + */ + boolean refresh(); + + /** + * 获取所有厂信息,只含id和名称 + * + * @return List + * @author ypj + */ + List getFactories(); + + /** + * @param language 语言 + * @return List + */ + List getFactories(String language); + + /** + * 获取所有厂信息 + * + * @return List + * @author ypj + */ + List getFactoriesEx(); + + /** + * @param language 语言 + * @return List + */ + List getFactoriesEx(String language); + + /** + * 根据stationId即stationNum获取所有厂信息,只含id和名称 + * + * @param stationId hz3000站点id + * @return List + * @author ypj + */ + List getFactoryByStationId(String stationId); + + /** + * @param stationId hz3000站点id + * @param language 语言 + * @return List + */ + List getFactoryByStationId(String stationId, String language); + + /** + * 根据stationId即stationNum获取所有厂信息 + * + * @param stationId hz3000站点id + * @return List + * @author ypj + */ + List getFactoryByStationIdEx(String stationId); + + /** + * @param stationId hz3000站点id + * @param language 语言 + * @return List + */ + List getFactoryByStationIdEx(String stationId, String language); + + /** + * @param stationIds hz3000站点序列 + * @param language 语言 + * @return + */ + List getFactoryByStationId(List stationIds, String language); + + /** + * @param stationIds hz3000站点序列 + * @param language 语言 + * @return + */ + List getFactoryByStationIdEx(List stationIds, String language); + + /** + * 按工厂id获得组,包含全信息 * + * + * @param id 站点id + * @return + * @author ypj + */ + List getGroupByFactoryIdEx(String id); + + /** + * @param id 站id + * @param language 语言 + * @return + */ + List getGroupByFactoryIdEx(String id, String language); + + /** + * @param id hz3000站点id + * @return + * @author ypj + */ + List getGroupByStationIdEx(String id); + + List getGroupByStationIdEx(String id, String language); + + /** + * 按id获取group + * + * @param id 组id + * @return + * @author ypj + */ + DataGroup getGroupByIdEx(String id); + + /** + * 按id获取group + * + * @param id 组id + * @param language 语言 + * @return + */ + DataGroup getGroupByIdEx(String id, String language); + + /** + * 按工厂id获得组,不含全信息 * + * + * @param id 站id + * @return + * @author ypj + */ + List getGroupByFactoryId(String id); + + List getGroupByFactoryId(String id, String language); + + /** + * 由组id得到遥测点 + * + * @param id 组id + * @return + * @author ypj + */ + List getYcPointByGroupId(String id); + + /** + * + * @param id 组id + * @param language 语言 + * @return + */ + List getYcPointByGroupId(String id, String language); + + /** + * @param id 组id + * @return + */ + List getYxPointByGroupId(String id); + + /** + * + * @param id 组id + * @param language 语言 + * @return + */ + List getYxPointByGroupId(String id, String language); + + /** + * + * @param id 组id + * @return + */ + List getYkPointByGroupId(String id); + + List getYkPointByGroupId(String id, String language); + + /** + * 由id获取到yc点信息 + * + * @param id 遥测id + * @return + * @author ypj + */ + YcPoint getYcPointById(String id); + + YcPoint getYcPointById(String id, String language); + + /** + * @param id 遥信id + * @return + */ + YxPoint getYxPointById(String id); + + /** + * @param id 组id + * @return + * @author ypj + */ + List getSoePointByGroupId(String id); + + List getSoePointByGroupId(String id, String language); + + /** + * @param id 点id + * @return + * @author ypj + */ + BasePoint getDataPointDef(String id); + + BasePoint getDataPointDef(String id, String language); + + /** + * @param id 点id + * @return + * @author ypj + */ + int getDataType(String id); + + /** + * 根据通道、模块、地址和遥信遥测类型得到点信息 + * + * @param channel 通道 + * @param module 模块 + * @param address 点 + * @param type 类型 + * @return + * @author ypj + */ + BasePoint getDataPoint(long channel, int module, int address, int type); + + BasePoint getDataPoint(long channel, int module, int address, int type, String language); + + /** + * @param id hz3000real id + * @return + * @author ypj + */ + String getStationIdByRealId(String id); + + List getTotalPoint(String id, Integer pointType, String language); + + Point getPointDef(String id, String language); + + List getPointByGroupType(String id, String language); + + List getTotalPointInFactory(Factory factory, Integer pointType); + + List getTotalPointInGroup(DataGroup group, Integer pointType); + + List getPointByGroupType(List groups, String id); + + List getStrPointByGroupId(String id, String language); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/MongoDbFacInfoDao.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/MongoDbFacInfoDao.java new file mode 100644 index 0000000..f823e97 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/MongoDbFacInfoDao.java @@ -0,0 +1,159 @@ +package org.springblade.hz3000_real_data.fac.dao; + +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; +import org.bson.Document; +import org.springblade.hz3000_real_data.fac.dao.pool.MongoPool; +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; +import org.springblade.hz3000_real_data.fac.utils.LanguageUtils; + +import java.util.ArrayList; +import java.util.List; + +public class MongoDbFacInfoDao extends BaseFacInfoDao { + + @Override + public synchronized boolean refresh() { + List factories = getFactoryFromMongoDb(); + setFactories(factories); + LanguageUtils.changeAllToEnglish(factories); + setFactories(factories, FacInfoConstants.factoryCatchEnglish); + return true; + } + + private List getFactoryFromMongoDb() { + MongoCollection collection = MongoPool.getInstance().getFactoryCollection(); + // 查找集合中的所有文档 + FindIterable findIterable = collection.find(); + MongoCursor cursor = findIterable.iterator(); + List result = new ArrayList(); + while (cursor.hasNext()) { + Document factoryDoc = cursor.next(); + Factory factory = getFactory(factoryDoc); + factory.setPointType(PointType.factory.getCode()); + result.add(factory); + } + return result; + } + + private Factory getFactory(Document facDoc) { + Factory factory = new Factory(); + factory.setChn(facDoc.getString("chn")); + factory.setEng(facDoc.getString("eng")); + factory.setId(facDoc.getString("id")); + factory.setName(facDoc.getString("name")); + factory.setStationNum(facDoc.getString("stationNum")); + factory.setTheGroupNum(facDoc.getString("theGroupNum")); + @SuppressWarnings("unchecked") + List grpList = (List) facDoc.get("groups"); + if (null != grpList) { + List grps = new ArrayList(); + for (Document grpdDoc : grpList) { + DataGroup grp = getGroup(grpdDoc, factory.getStationNum()); + grps.add(grp); + } + factory.setGroups(grps); + factory.setGroupSize(grps.size()); + } + return factory; + } + + private DataGroup getGroup(Document grpDoc, String stationId) { + DataGroup grp = new DataGroup(); + grp.setPointType(PointType.group.getCode()); + grp.setName(grpDoc.getString("name")); + grp.setId(grpDoc.getString("id")); + grp.setFactoryId(grpDoc.getString("factoryId")); + grp.setFactoryName(grpDoc.getString("factoryName")); + // grp.setUnlock(grpDoc.getBoolean("unlock")); + grp.setChn(grpDoc.getString("chn")); + grp.setEng(grpDoc.getString("eng")); + @SuppressWarnings("unchecked") + List ycList = (List) grpDoc.get("telemetryPointList"); + if (null != ycList) { + List ycs = new ArrayList(); + for (Document ycDoc : ycList) { + YcPoint yc = new YcPoint(); + getBasePoint(yc, ycDoc, stationId); + yc.setPointType(PointType.IsYc.getCode()); + // yc.setChn(ycDoc.getString("chn")); + // yc.setEng(ycDoc.getString("eng")); + ycs.add(yc); + } + grp.setTelemetryPointList(ycs); + grp.setYcSize(ycs.size()); + } + + @SuppressWarnings("unchecked") + List yxList = (List) grpDoc.get("telesignalPointList"); + if (null != yxList) { + List yxs = new ArrayList(); + for (Document yxDoc : yxList) { + YxPoint yx = new YxPoint(); + getBasePoint(yx, yxDoc, stationId); + yx.setPointType(PointType.IsYx.getCode()); + yx.setAlarmType(yxDoc.getString("alarmType")); + yxs.add(yx); + } + grp.setTelesignalPointList(yxs); + grp.setYxSize(yxs.size()); + } + + @SuppressWarnings("unchecked") + List ykList = (List) grpDoc.get("telecontrolPointList"); + if (null != ykList) { + List yks = new ArrayList(); + for (Document ykDoc : ykList) { + YkPoint yk = new YkPoint(); + getBasePoint(yk, ykDoc, stationId); + yk.setPointType(PointType.IsYk.getCode()); + yk.setExplain(ykDoc.getString("explain")); + yks.add(yk); + } + grp.setTelecontrolPointList(yks); + grp.setYkSize(yks.size()); + } + + @SuppressWarnings("unchecked") + List soeList = (List) grpDoc.get("eventPointList"); + if (null != soeList) { + List soes = new ArrayList(); + for (Document ykDoc : soeList) { + SoePoint soe = new SoePoint(); + getBasePoint(soe, ykDoc, stationId); + soe.setAlarmType(ykDoc.getString("alarmType")); + soe.setAlarmSound(ykDoc.getString("alarmSound")); + soe.setType(ykDoc.getString("stype")); + List nameList = ykDoc.getList("actionNameList", String.class); + soe.setActionNameListArray(nameList); + List nunitList = ykDoc.getList("actionUnitList", String.class); + soe.setActionUnitListArray(nunitList); + soe.setPointType(PointType.IsSoe.getCode()); + // soe.setActionNameList(ykDoc.getString("actionNameList")); + // soe.setActionUnitList(ykDoc.getString("actionUnitList")); + soes.add(soe); + } + grp.setEventPointList(soes); + grp.setSoeSize(soes.size()); + } + + return grp; + } + + private void getBasePoint(BasePoint point, Document pointDoc, String stationId) { + point.setId(pointDoc.getString("id")); + point.setName(pointDoc.getString("name")); + point.setGroupId(pointDoc.getString("groupId")); + point.setGroupName(pointDoc.getString("groupName")); + point.setFactoryId(pointDoc.getString("factoryId")); + point.setFactoryName(pointDoc.getString("factoryName")); + point.setChannelIndex(pointDoc.getString("channelIndex")); + point.setModuleIndex(pointDoc.getString("moduleIndex")); + point.setAddressIndex(pointDoc.getString("addressIndex")); + point.setDataType(pointDoc.getInteger("dataType")); + point.setStationId(stationId); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/XmlPaseFacInfoDao.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/XmlPaseFacInfoDao.java new file mode 100644 index 0000000..f3b82c5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/XmlPaseFacInfoDao.java @@ -0,0 +1,475 @@ +package org.springblade.hz3000_real_data.fac.dao; + +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.fac.config.Global; +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; +import org.springblade.hz3000_real_data.fac.utils.LanguageUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class XmlPaseFacInfoDao extends BaseFacInfoDao { + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Override + public synchronized boolean refresh() { + List factories = new ArrayList<>(); + boolean result = false; + try { + factories = paseXml(); + setFactories(factories); + LanguageUtils.changeAllToEnglish(factories); + setFactories(factories, FacInfoConstants.factoryCatchEnglish); + result = true; + } catch (IOException | DocumentException e) { + logger.error("解析factory.fac文件失败", e); + throw new RuntimeException("解析厂组点信息失败"); + } + return result; + } + + private List paseXml() throws IOException, DocumentException { + String xmlFile = Global.getConfig(FacInfoConstants.facPath, "D:/hz3000/runtime/info/factory.fac"); + + SAXReader saxReader = new SAXReader(); + Document document = saxReader.read(xmlFile); + + Element root = document.getRootElement(); + /* 解析工厂信息 */ + List factories = new ArrayList(); + for (@SuppressWarnings("unchecked") + Iterator factoryElements = root.elementIterator(); factoryElements.hasNext(); ) { + Element factoryElement = factoryElements.next(); + if ("0".equals(factoryElement.valueOf("@ChildrenCount"))) { + continue; + } + /* 解析工厂属性 */ + Factory factory = generateFactory(factoryElement); + + /* 解析数据组 */ + List groupList = new ArrayList(); + for (@SuppressWarnings("unchecked") + Iterator groupElements = factoryElement.elementIterator(); groupElements.hasNext(); ) { + Element groupElement = groupElements.next(); + DataGroup dataGroup = generateGroup(groupElement); + + /* 解析数据点 */ + for (@SuppressWarnings("unchecked") + Iterator pointGroupElements = groupElement.elementIterator(); pointGroupElements.hasNext(); ) { + Element pointGroupElement = pointGroupElements.next(); + GroupType groupType = generateGroupType(pointGroupElement); + switch (pointGroupElement.getName()) { + case "AIS": + List telemetryPointList = new ArrayList<>(); + logger.error("开始解析 组信息 : " + dataGroup.getName()); + for (@SuppressWarnings("unchecked") + Iterator telemetryElements = pointGroupElement.elementIterator(); telemetryElements + .hasNext(); ) { + Element telemetryElement = telemetryElements.next(); + YcPoint telemetryPoint = generateYcPoint(telemetryElement); + telemetryPoint.setBaseInfo(factory.getStationNum(), factory.getId(), factory.getName(), dataGroup.getId(), dataGroup.getName()); + telemetryPointList.add(telemetryPoint); + } + dataGroup.setTelemetryPointList(telemetryPointList); + dataGroup.setYcSize(telemetryPointList.size()); + groupType.setPointType(PointType.ycGroup.getCode()); + groupType.setPointList(telemetryPointList); + dataGroup.setYcGroup(groupType); + break; + case "DIS": + List telesignalPointList = new ArrayList<>(); + for (@SuppressWarnings("unchecked") + Iterator telesignalElements = pointGroupElement.elementIterator(); telesignalElements + .hasNext(); ) { + Element telesignalElement = telesignalElements.next(); + YxPoint telesignalPoint = generateYxPoint(telesignalElement); + telesignalPoint.setBaseInfo(factory.getStationNum(), factory.getId(), factory.getName(), dataGroup.getId(), dataGroup.getName()); + telesignalPointList.add(telesignalPoint); + } + dataGroup.setTelesignalPointList(telesignalPointList); + dataGroup.setYxSize(telesignalPointList.size()); + groupType.setPointType(PointType.yxGroup.getCode()); + groupType.setPointList(telesignalPointList); + dataGroup.setYxGroup(groupType); + break; + case "DOS": + List telecontrolPointList = new ArrayList<>(); + for (@SuppressWarnings("unchecked") + Iterator telecontrolElements = pointGroupElement.elementIterator(); telecontrolElements + .hasNext(); ) { + Element telecontrolElement = telecontrolElements.next(); + YkPoint telecontrolPoint = generateYkPoint(telecontrolElement); + telecontrolPoint.setBaseInfo(factory.getStationNum(), factory.getId(), factory.getName(), dataGroup.getId(), dataGroup.getName()); + telecontrolPointList.add(telecontrolPoint); + } + dataGroup.setTelecontrolPointList(telecontrolPointList); + dataGroup.setYkSize(telecontrolPointList.size()); + groupType.setPointType(PointType.ykGroup.getCode()); + groupType.setPointList(telecontrolPointList); + dataGroup.setYkGroup(groupType); + break; + case "SOES": + List eventPointList = new ArrayList<>(); + for (@SuppressWarnings("unchecked") + Iterator eventElements = pointGroupElement.elementIterator(); eventElements + .hasNext(); ) { + Element eventElement = eventElements.next(); + SoePoint eventPoint = generateSoePoint(eventElement); + eventPoint.setBaseInfo(factory.getStationNum(), factory.getId(), factory.getName(), dataGroup.getId(), dataGroup.getName()); + eventPointList.add(eventPoint); + } + dataGroup.setEventPointList(eventPointList); + dataGroup.setSoeSize(eventPointList.size()); + groupType.setPointType(PointType.soeGroup.getCode()); + groupType.setPointList(eventPointList); + dataGroup.setSoeGroup(groupType); + break; + case "STRS": + List strPointList = new ArrayList<>(); + for( Iterator strElements = pointGroupElement.elementIterator();strElements.hasNext();){ + Element element = strElements.next(); + BasePoint point = generateStrPoint(element); + point.setBaseInfo(factory.getStationNum(), factory.getId(), factory.getName(), dataGroup.getId(), dataGroup.getName()); + strPointList.add(point); + } + dataGroup.setStrPointList(strPointList); + dataGroup.setStrSize(strPointList.size()); + groupType.setPointType(PointType.strGroup.getCode()); + groupType.setPointList(strPointList); + dataGroup.setStrGroup(groupType); + break; + default: + break; + } + } + dataGroup.setFactoryId(factory.getId()); + dataGroup.setFactoryName(factory.getName()); + dataGroup.setPointType(PointType.group.getCode()); + groupList.add(dataGroup); + } + factory.setGroups(groupList); + factory.setGroupSize(groupList.size()); + factory.setPointType(PointType.factory.getCode()); + factories.add(factory); + } + return factories; + } + + private Factory generateFactory(Element factoryElement) { + if (null == factoryElement) { + return null; + } + Factory factory = new Factory(); + for (@SuppressWarnings("unchecked") + Iterator factoryAttributes = factoryElement.attributeIterator(); factoryAttributes.hasNext(); ) { + Attribute factoryAttribute = factoryAttributes.next(); + switch (factoryAttribute.getName()) { + case "StationNum": + factory.setStationNum(factoryAttribute.getValue()); + break; + case "Name": + factory.setName(factoryAttribute.getValue()); + break; + case "ID": + factory.setId(factoryAttribute.getValue()); + break; + case "TheGroupNum": + factory.setTheGroupNum(factoryAttribute.getValue()); + break; + case "CHN": + factory.setChn(factoryAttribute.getValue()); + break; + case "ENG": + factory.setEng(factoryAttribute.getValue()); + break; + default: + break; + } + } + return factory; + } + + /** + * 根据节点获得实时警报类 + * + * @param soePointElement 节点 + * @return SoePoint + * @author ypj + */ + private SoePoint generateSoePoint(Element soePointElement) { + if (null == soePointElement) { + return null; + } + SoePoint soePoint = new SoePoint(); + soePoint.setPointType(PointType.IsSoe.getCode()); + for (@SuppressWarnings("unchecked") + Iterator soeAttributes = soePointElement.attributeIterator(); soeAttributes.hasNext(); ) { + Attribute soeAttribute = soeAttributes.next(); + switch (soeAttribute.getName()) { + case "ID": + soePoint.setId(soeAttribute.getValue()); + break; + case "Name": + soePoint.setName(soeAttribute.getValue()); + break; + case "SOEType": + soePoint.setType(soeAttribute.getValue()); + break; + case "SOEAlarmType": + soePoint.setAlarmType(soeAttribute.getValue()); + break; + case "SOEAlarmSound": + soePoint.setAlarmSound(soeAttribute.getValue()); + break; + case "SoeActionNameList": + String actionStr = soeAttribute.getValue(); + soePoint.setActionNameList(actionStr); + soePoint.setActionNameListArray(getActions(actionStr)); + break; + case "SoeActionUnitList": + String unitStr = soeAttribute.getValue(); + soePoint.setActionUnitList(unitStr); + break; + case "Channel": + soePoint.setChannelIndex(soeAttribute.getValue()); + break; + case "Module": + soePoint.setModuleIndex(soeAttribute.getValue()); + break; + case "Dot": + soePoint.setAddressIndex(soeAttribute.getValue()); + break; + case "CHN": + soePoint.setChn(soeAttribute.getValue()); + break; + case "ENG": + soePoint.setEng(soeAttribute.getValue()); + break; + default: + break; + } + } + return soePoint; + } + + private List getActions(String unitStr) { + List unitList = new ArrayList<>(); + if (null != unitStr) { + String[] unitArray = unitStr.split("▓"); + for (String unit : unitArray) { + if (!unit.isEmpty()) { + unitList.add(unit); + } + } + } + return unitList; + } + + private GroupType generateGroupType(Element element) { + GroupType result = new GroupType(); + if (null != element) { + for (@SuppressWarnings("unchecked") + Iterator atributes = element.attributeIterator(); atributes.hasNext(); ) { + Attribute attribute = atributes.next(); + switch (attribute.getName()) { + case "ID": + result.setId(attribute.getValue()); + break; + case "Name": + result.setName(attribute.getValue()); + break; + case "ChildrenCount": + result.setChildrenCount(Integer.parseInt(attribute.getValue())); + break; + case "CHN": + result.setChn(attribute.getValue()); + break; + case "ENG": + result.setEng(attribute.getValue()); + break; + default: + break; + } + } + } + return result; + } + + private YkPoint generateYkPoint(Element ykPointElement) { + if (null == ykPointElement) { + return null; + } + YkPoint ykPoint = new YkPoint(); + ykPoint.setPointType(PointType.IsYk.getCode()); + for (@SuppressWarnings("unchecked") + Iterator ykAttributes = ykPointElement.attributeIterator(); ykAttributes.hasNext(); ) { + Attribute ykAttribute = ykAttributes.next(); + switch (ykAttribute.getName()) { + case "ID": + ykPoint.setId(ykAttribute.getValue()); + break; + case "Name": + ykPoint.setName(ykAttribute.getValue()); + break; + case "YKExplain": + ykPoint.setExplain(ykAttribute.getValue()); + break; + case "Channel": + ykPoint.setChannelIndex(ykAttribute.getValue()); + break; + case "Module": + ykPoint.setModuleIndex(ykAttribute.getValue()); + break; + case "Dot": + ykPoint.setAddressIndex(ykAttribute.getValue()); + break; + case "CHN": + ykPoint.setChn(ykAttribute.getValue()); + break; + case "ENG": + ykPoint.setEng(ykAttribute.getValue()); + break; + default: + break; + } + } + return ykPoint; + } + + private YxPoint generateYxPoint(Element yxPointElement) { + if (null == yxPointElement) { + return null; + } + YxPoint yxPoint = new YxPoint(); + yxPoint.setPointType(PointType.IsYx.getCode()); + for (@SuppressWarnings("unchecked") + Iterator yxAttributes = yxPointElement.attributeIterator(); yxAttributes.hasNext(); ) { + Attribute yxAttribute = yxAttributes.next(); + switch (yxAttribute.getName()) { + case "ID": + yxPoint.setId(yxAttribute.getValue()); + break; + case "Name": + yxPoint.setName(yxAttribute.getValue()); + break; + case "YXAlarmType": + yxPoint.setAlarmType(yxAttribute.getValue()); + break; + case "Channel": + yxPoint.setChannelIndex(yxAttribute.getValue()); + break; + case "Module": + yxPoint.setModuleIndex(yxAttribute.getValue()); + break; + case "Dot": + yxPoint.setAddressIndex(yxAttribute.getValue()); + break; + case "CHN": + yxPoint.setChn(yxAttribute.getValue()); + break; + case "ENG": + yxPoint.setEng(yxAttribute.getValue()); + break; + default: + break; + } + } + return yxPoint; + } + + private YcPoint generateYcPoint(Element ycPointElement) { + if (null == ycPointElement) { + logger.error("遥测点 为空"); + return null; + } + YcPoint telemetryPoint = new YcPoint(); + telemetryPoint.setPointType(PointType.IsYc.getCode()); + setBasePointInfo(telemetryPoint,ycPointElement); + return telemetryPoint; + } + + private DataGroup generateGroup(Element groupElement) { + if (null == groupElement) { + return null; + } + DataGroup dataGroup = new DataGroup(); + /* 解析数据组属性 */ + for (@SuppressWarnings("unchecked") + Iterator groupAttributes = groupElement.attributeIterator(); groupAttributes.hasNext(); ) { + Attribute groupAttribute = groupAttributes.next(); + switch (groupAttribute.getName()) { + case "ID": + dataGroup.setId(groupAttribute.getValue()); + break; + case "Name": + dataGroup.setName(groupAttribute.getValue()); + break; + case "UnLock": + if ("true".equals(groupAttribute.getValue().toLowerCase())) { + dataGroup.setUnlock(true); + } else { + dataGroup.setUnlock(false); + } + break; + case "CHN": + dataGroup.setChn(groupAttribute.getValue()); + break; + case "ENG": + dataGroup.setEng(groupAttribute.getValue()); + break; + default: + break; + } + } + return dataGroup; + } + + private BasePoint generateStrPoint(Element element){ + BasePoint point = new BasePoint(); + point.setPointType(PointType.IsStr.getCode()); + setBasePointInfo(point,element); + return point; + } + + private void setBasePointInfo(BasePoint point,Element element){ + for (@SuppressWarnings("unchecked") + Iterator attributes = element.attributeIterator(); attributes.hasNext(); ) { + Attribute attribute = attributes.next(); + switch (attribute.getName()) { + case "ID": + point.setId(attribute.getValue()); + break; + case "Name": + point.setName(attribute.getValue()); + break; + case "CHN": + point.setChn(attribute.getValue()); + break; + case "ENG": + point.setEng(attribute.getValue()); + break; + case "Channel": + point.setChannelIndex(attribute.getValue()); + break; + case "Module": + point.setModuleIndex(attribute.getValue()); + break; + case "Dot": + point.setAddressIndex(attribute.getValue()); + break; + default: + break; + } + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/pool/MongoPool.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/pool/MongoPool.java new file mode 100644 index 0000000..3073819 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/dao/pool/MongoPool.java @@ -0,0 +1,93 @@ +package org.springblade.hz3000_real_data.fac.dao.pool; + +import com.mongodb.MongoClient; +import com.mongodb.MongoClientOptions; +import com.mongodb.MongoCredential; +import com.mongodb.ServerAddress; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import org.bson.Document; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.fac.config.Global; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +public class MongoPool { + + private final static MongoPool instance = new MongoPool(); + private static MongoClient mongoClient = null; + private static MongoDatabase mongoDatabase = null; + private static String tableName = "FactoryDef"; + + public static MongoPool getInstance() { + if (null == mongoDatabase) { + instance.init(); + } + return instance; + } + + public MongoDatabase getMongoDatabase() { + return mongoDatabase; + } + + public MongoCollection getFactoryCollection() { + return mongoDatabase.getCollection(tableName); + } + + private MongoPool() { + } + + @SuppressWarnings("deprecation") + private void init() { + Logger logger = LoggerFactory.getLogger(MongoPool.class); + try { + // 加载连接池配置文件 + String connectionsPerHost = Global.getConfig("mongo.connectionsPerHost", "50"); + String maxWaitTime = Global.getConfig("mongo.maxWaitTime", "300000"); + String socketTimeout = Global.getConfig("mongo.socketTimeout", "100000"); + String maxConnectionLifeTime = Global.getConfig("mongo.maxConnectionLifeTime", "150000"); + String connectTimeout = Global.getConfig("mongo.connectTimeout", "25000"); + MongoClientOptions options = MongoClientOptions.builder() + .connectionsPerHost(Integer.parseInt(connectionsPerHost)).maxWaitTime(Integer.parseInt(maxWaitTime)) + .socketTimeout(Integer.parseInt(socketTimeout)) + .maxConnectionLifeTime(Integer.parseInt(maxConnectionLifeTime)) + .connectTimeout(Integer.parseInt(connectTimeout)).build(); + // 建立访问地址 + String host = Global.getConfig("mongo.host", "175.6.40.67"); + String port = Global.getConfig("mongo.port", "60017"); + int portNum = Integer.parseInt(port); + ServerAddress serverAddress = new ServerAddress(host, portNum); + // 链接 + String authentication = Global.getConfig("mongo.authentication", "0"); + String baseName = Global.getConfig("mongo.baseName", "hz3000"); + if ("0".equals(authentication)) { + mongoClient = new MongoClient(serverAddress, options); + } else { + // 获取用户权限信息 + String user = Global.getConfig("mongo.user", "root"); + String password = Global.getConfig("mongo.password", "123"); + List credentials = new ArrayList(); + MongoCredential mongoCredential = MongoCredential.createScramSha1Credential(user, baseName, + password.toCharArray()); + credentials.add(mongoCredential); + + mongoClient = new MongoClient(serverAddress, credentials, options); + } + mongoDatabase = mongoClient.getDatabase(baseName); + String propertyTableName = Global.getConfig("mongo.tableName"); + if (null != propertyTableName && !propertyTableName.isEmpty()) { + tableName = propertyTableName; + } + } catch (Exception e) { + logger.error("初始化mongodb失败", e); + e.printStackTrace(); + throw new RuntimeException("初始化mongodb失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/DataSourceType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/DataSourceType.java new file mode 100644 index 0000000..39dc33e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/DataSourceType.java @@ -0,0 +1,30 @@ +package org.springblade.hz3000_real_data.fac.enums; + +public enum DataSourceType { + Mongo("mongo", "芒果db"), Xml("xml", "xml文件"); + + private String code; + private String desc; + + DataSourceType(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/PointType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/PointType.java new file mode 100644 index 0000000..666eb39 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/enums/PointType.java @@ -0,0 +1,29 @@ +package org.springblade.hz3000_real_data.fac.enums; + +public enum PointType { + IsNull(0, "空节点"), IsYc(1, "遥测点"), IsYx(2, "遥信点"), IsYk(3, "遥控点"), IsSoe(4, "告警点"), group(5, "组"), factory(6, "厂"), ycGroup(7, "遥测组"), yxGroup(8, "遥信组"), ykGroup(9, "遥控组"), soeGroup(10, "告警组"), IsStr(11, "字符串点"),strGroup(11,"字符串组"); + private int code; + private String desc; + + PointType(int code, String desc) { + this.code = code; + this.desc = desc; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacCatchUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacCatchUtils.java new file mode 100644 index 0000000..8dbb818 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacCatchUtils.java @@ -0,0 +1,91 @@ +package org.springblade.hz3000_real_data.fac.utils; + + +import net.sf.ehcache.Cache; +import net.sf.ehcache.CacheManager; +import net.sf.ehcache.Element; + +public class FacCatchUtils { + + private static CacheManager cacheManager = ((CacheManager)FacSpringContextHolder.getBean("cacheManager")); + + private static final String DATA_CACHE = "dataCache"; + + /** + * 获取SYS_CACHE缓存 + * @param key + * @return + */ + public static Object get(String key) { + return get(DATA_CACHE, key); + } + + /** + * 写入SYS_CACHE缓存 + * @param key + * @return + */ + public static void put(String key, Object value) { + put(DATA_CACHE, key, value); + } + + /** + * 从SYS_CACHE缓存中移除 + * @param key + * @return + */ + public static void remove(String key) { + remove(DATA_CACHE, key); + } + + /** + * 获取缓存 + * @param cacheName + * @param key + * @return + */ + public static Object get(String cacheName, Object key) { + Element element = getCache(cacheName).get(key); + return element==null?null:element.getObjectValue(); + } + + /** + * 写入缓存 + * @param cacheName + * @param key + * @param value + */ + public static void put(String cacheName, Object key, Object value) { + Element element = new Element(key, value); + getCache(cacheName).put(element); + } + + /** + * 从缓存中移除 + * @param cacheName + * @param key + */ + public static void remove(String cacheName, Object key) { + getCache(cacheName).remove(key); + } + + /** + * 获得一个Cache,没有则创建一个。 + * @param cacheName + * @return + */ + public synchronized static Cache getCache(String cacheName){ + Cache cache = cacheManager.getCache(cacheName); + if (cache == null){ + cacheManager.addCache(cacheName); + cache = cacheManager.getCache(cacheName); + cache.getCacheConfiguration().setEternal(true); + } + return cache; + } + + public static CacheManager getCacheManager() { + return cacheManager; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoConstants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoConstants.java new file mode 100644 index 0000000..21393ba --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoConstants.java @@ -0,0 +1,34 @@ +package org.springblade.hz3000_real_data.fac.utils; + +public class FacInfoConstants { + public static final String facPath = "hz3000.runtime.setting"; + public static final String operateSuccess = "操作成功"; + public static final String operateSuccessEn = "Operate success"; + + public static final String[][] mSoeType = { { "", "" }, { "分", "合" }, { "复归", "动作" }, { "闭锁", "允许" }, + { "正常", "过低" }, { "报警复归", "报警" }, { "断线恢复", "断线" }, { "恢复正常", "异常" }, { "复归", "错误" }, { "光隔短路", "光隔开路" }, + { "短路", "开路" }, { "异常恢复", "异常" }, { "失压恢复", "失压" }, { "定值正常", "定值错误" }, { "闭锁复归", "闭锁" }, { "复归", "输入" }, + { "输入复归", "输入" }, { "失败", "动作" } }; + + public static final String[][] mSoeTypeEnglish = { { "", "" }, { "Open", "Close" }, { "Reset", "Action" }, { "Block", "Allowable" }, + { "Normal", "Too low" }, { "Alarm reset", "Alarm" }, { "Line-Break reset/", "Line-Break" }, { "Normalize", "Abnormity" }, { "Reset", "Error" }, { "Optocoupler short circuit", "Optocoupler open circuit" }, + { "Short circuit", "Open circuit" }, { "Abnormal reset", "Abnormal" }, { "Voltage loss reset", "Voltage loss" }, { "Setting Right", "Setting Error" }, { "Block reset", "Block" }, { "Reset", "Input" }, + { "Input reset", "Input" }, { "Fail", "Action" } }; + + public static final String[] mSoeKind = { "默认", "系统", "报警", "事故", "操作", "遥测越限", "遥信变位", "注册信息", "信息提示", "设备巡检", + "遥信变位", "遥测越限", "遥测越限", "操作记录", "操作记录", "备用6", "备用7", "备用8", "未定义" }; + //英文告警类型 + public static String[] SoeKind_EN = {"Default", "System", "Alarm", "SOE", "Operation", "AIS Over", "DIS Change", "RegInfo", "Info", "EqInspection", "DIS Change", + "AIS Over", "AIS Over", "Operation", "Operation", "Backup6", "Backup7", "Backup8", "NoDefine"}; + + public static final String[] mSelKind = { "0", "1", "2", "3", "4", "5,11,12", "6,10", "7", "8", "9", "13,14", + "15,16,17", "18" }; + + public static final String mSoeKindDefault = "默认"; + + public static final String mSoeKindDefaultEnglish = "Default"; + + public static final String factoryCatch = "factory_in_catch"; + + public static final String factoryCatchEnglish = "factory_in_catch_english"; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoFactory.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoFactory.java new file mode 100644 index 0000000..a41d30c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacInfoFactory.java @@ -0,0 +1,30 @@ +package org.springblade.hz3000_real_data.fac.utils; + +import org.springblade.hz3000_real_data.fac.config.Global; +import org.springblade.hz3000_real_data.fac.dao.FactoryInfoDao; +import org.springblade.hz3000_real_data.fac.dao.MongoDbFacInfoDao; +import org.springblade.hz3000_real_data.fac.dao.XmlPaseFacInfoDao; +import org.springblade.hz3000_real_data.fac.enums.DataSourceType; + +public class FacInfoFactory { + private static FactoryInfoDao instance = null; + + public static synchronized FactoryInfoDao getInstance() { + if (null == instance) { + String sign = Global.getConfig("factory.data.source.type", DataSourceType.Xml.getCode()); + instance = getInstance(sign); + } + return instance; + } + + public static FactoryInfoDao getInstance(String sign) { + FactoryInfoDao result = null; + if (DataSourceType.Xml.getCode().equals(sign)) { + result = new XmlPaseFacInfoDao(); + } else if (DataSourceType.Mongo.getCode().equals(sign)) { + result = new MongoDbFacInfoDao(); + } + return result; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacSpringContextHolder.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacSpringContextHolder.java new file mode 100644 index 0000000..ed2609c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/utils/FacSpringContextHolder.java @@ -0,0 +1,87 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package org.springblade.hz3000_real_data.fac.utils; + +import org.apache.commons.lang3.Validate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + + +/** + * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext. + * + * @author Zaric + * @date 2013-5-29 下午1:25:40 + */ +@Service("FacSpringContextHolder") +@Lazy(false) +public class FacSpringContextHolder implements ApplicationContextAware, DisposableBean { + + private static ApplicationContext applicationContext = null; + + private static Logger logger = LoggerFactory.getLogger(FacSpringContextHolder.class); + + /** + * 取得存储在静态变量中的ApplicationContext. + */ + public static ApplicationContext getApplicationContext() { + assertContextInjected(); + return applicationContext; + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) { + assertContextInjected(); + return (T) applicationContext.getBean(name); + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + public static T getBean(Class requiredType) { + assertContextInjected(); + return applicationContext.getBean(requiredType); + } + + /** + * 清除SpringContextHolder中的ApplicationContext为Null. + */ + public static void clearHolder() { + if (logger.isDebugEnabled()){ + logger.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); + } + applicationContext = null; + } + + /** + * 实现ApplicationContextAware接口, 注入Context到静态变量中. + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + FacSpringContextHolder.applicationContext = applicationContext; + } + + /** + * 实现DisposableBean接口, 在Context关闭时清理静态变量. + */ + @Override + public void destroy() throws Exception { + FacSpringContextHolder.clearHolder(); + } + + /** + * 检查ApplicationContext不为空. + */ + private static void assertContextInjected() { + Validate.validState(applicationContext != null, "applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder."); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/vo/FGDName.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/vo/FGDName.java new file mode 100644 index 0000000..fccfe8a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/fac/vo/FGDName.java @@ -0,0 +1,39 @@ +package org.springblade.hz3000_real_data.fac.vo; + +/** + * @Author: liugang + * @Date: 2020/8/11 11:22 + */ +public class FGDName { + + private String facName; + + private String gpName; + + private String dataName; + + public String getFacName() { + return facName; + } + + public void setFacName(String facName) { + this.facName = facName; + } + + public String getGpName() { + return gpName; + } + + public void setGpName(String gpName) { + this.gpName = gpName; + } + + public String getDataName() { + return dataName; + } + + public void setDataName(String dataName) { + this.dataName = dataName; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000HistoryDataClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000HistoryDataClient.java new file mode 100644 index 0000000..68e7189 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000HistoryDataClient.java @@ -0,0 +1,21 @@ +package org.springblade.hz3000_real_data.feign; + +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.service.YcHistoryDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +public class Hz3000HistoryDataClient implements IHz3000HistoryDataClient{ + + @Autowired + YcHistoryDataService ycHistoryDataService; + + @Override + public Map> queryHisDateOfTimeRange(List realIds, String start, String end) { + return ycHistoryDataService.queryHisDateOfTimeRange(realIds,start,end); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000RealDataClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000RealDataClient.java new file mode 100644 index 0000000..159de04 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/feign/Hz3000RealDataClient.java @@ -0,0 +1,98 @@ +package org.springblade.hz3000_real_data.feign; + +import org.springblade.hz3000_real_data.fac.dao.FactoryInfoDao; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.hz3000_real_data.real.service.RealDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +public class Hz3000RealDataClient implements IHz3000RealDataClient { + + @Autowired + private RealDataService realDataService; + + + @Override + public Map getRealDataById(String[] realIds, String stationId) { + Map dataMap = new HashMap<>(); + String[] ids; + FactoryInfoDao facInfo = FacInfoFactory.getInstance(); + try { + ids = realIds; + List ycList = new ArrayList<>(); + List yxList = new ArrayList<>(); + List noneList = new ArrayList<>(); + + List ycStrList = new ArrayList<>(); + List yxStrList = new ArrayList<>(); + List noneStrList = new ArrayList<>(); + /* 按类别划分数据 */ + for (int i = 0; i < ids.length; i++) { + ids[i] = ids[i].trim(); + int type = facInfo.getDataType(ids[i]); + BigInteger bi = new BigInteger(ids[i]); + long idValue = bi.longValue(); + if (PointType.IsYc.getCode() == type) { + ycList.add(idValue); + ycStrList.add(ids[i]); + } else if (PointType.IsYx.getCode() == type) { + yxList.add(idValue); + yxStrList.add(ids[i]); + } else { + noneList.add(idValue); + noneStrList.add(ids[i]); + } + } + /* 按id序列获得数据 */ + List ycDataList, yxDataList; + if (ycList.size() > 0) { + long[] ycArray = new long[ycList.size()]; + for (int i = 0; i < ycList.size(); i++) { + ycArray[i] = ycList.get(i); + } + // logger.info("读取遥测数据"); + ycDataList = realDataService.getYcRealData(ycStrList, stationId); + for (int j = 0; j < ycList.size(); j++) { + dataMap.put(ycStrList.get(j), ycDataList.get(j)); + } + } + if (yxList.size() > 0) { + long[] yxArray = new long[yxList.size()]; + for (int i = 0; i < yxList.size(); i++) { + yxArray[i] = yxList.get(i); + } + yxDataList = realDataService.getYxRealData(yxStrList, stationId); + for (int j = 0; j < yxList.size(); j++) { + dataMap.put(yxStrList.get(j), yxDataList.get(j)); + } + } + if (noneList.size() > 0) { + for (int m = 0; m < noneList.size(); m++) { + Data data = new Data(); + data.setQ(1); + data.setValue(0); + dataMap.put(noneStrList.get(m), data); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + return dataMap; + } + + @Override + public List getRealData(List ids, int type, String stationId) { + return realDataService.getRealData(ids,type,stationId); + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/HisDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/HisDataController.java new file mode 100644 index 0000000..c51238f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/HisDataController.java @@ -0,0 +1,464 @@ +package org.springblade.hz3000_real_data.history.controller; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerBorderImpl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.entity.DataGridModel; +import org.springblade.hz3000_real_data.entity.ListPageUtil; +import org.springblade.hz3000_real_data.fac.entity.YcPoint; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.history.entity.HisDataSoe; +import org.springblade.hz3000_real_data.history.entity.HisDataYc; +import org.springblade.hz3000_real_data.history.service.HisDataService; +import org.springblade.hz3000_real_data.history.utils.HisDataExportUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import org.springblade.core.mp.support.Query; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.text.DecimalFormat; +import java.text.Format; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.Map.Entry; + +/** + * 数据控制层 + * + * @author ypj + * + */ +@Controller +@RequestMapping(value = "/hz3000Data/hisdata") +@Api(tags = "历史数据查询") +public class HisDataController { + @Autowired + private HisDataService dataService; + @Value("${soe.show.number}") + private String soeNumer; + + private DecimalFormat decimalFormat = new DecimalFormat("#.###"); + + @RequestMapping(value = "/hisyc") + public String getHisYc(HttpServletRequest request, HttpServletResponse response) { + return "modules/hisdata/hisyc"; + } + + @RequestMapping(value = "/hissoe") + public String getHisSoe(HttpServletRequest request, HttpServletResponse response) { + return "modules/hisdata/hissoe"; + } + + class RingData { + public String id; + public List> data; + } + + class YcData { + public int q; + public double val; + public String datatime; + + public YcData(HisDataYc data) { + if (data != null) { + q = data.getQ(); + val = data.getVal(); + } + } + } + + /** + * 获得历史遥测原始数据,多点 更改:mz 添加查询类型,整点,原始 + * + * @param request + * @param response + * @param ycids + * 以逗号分隔 + * @param start + * @param end + * @return + */ + @ResponseBody + @RequestMapping("/getHisYcMulti") + public R getHisYcMulti(HttpServletRequest request, HttpServletResponse response, + String ycids, String start, String end, String type) { + // User user = SessionUtils.getCurrentUser(request); + DataGridModel> dataModel = new DataGridModel>(); + try { + // String conn = HisDataUtil.getConnectString(); + Map> data = new LinkedHashMap>(); + dataModel.setRows(new ArrayList>()); + String[] ycidpa = ycids.split(","); + Map maxDataMap = new HashMap(); + Map minDataMap = new HashMap(); + for (int i = 0; i < ycidpa.length; i++) { + // QueryRecordUtils.insertQueryYc(user.getId(), ycidpa[i]); + List row = dataService.getYc(ycidpa[i], start, end, type); + if (row == null) { + row = new ArrayList(); + } + Double max = row.isEmpty() ? 0.0 : row.get(0).getVal(); + Double min = max; + for (int j = 0; j < row.size(); j++) { + double value = row.get(j).getVal(); + if (value > max) { + max = value; + } else if (value < min) { + min = value; + } + if (!data.containsKey(row.get(j).getDatatime())) { // 如果该日期不存在则添加 + Map tmp = new HashMap(); + data.put(row.get(j).getDatatime(), tmp); + Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + YcData ycdata = new YcData(null); + ycdata.datatime = format.format(row.get(j).getDatatime()); + tmp.put("datatime", ycdata); + } + // 运行到此处日期行已经存在 + Map cell = data.get(row.get(j).getDatatime()); + if (cell.containsKey(ycidpa[i])) { // 该id已经存在,为异常 + } else { + cell.put(ycidpa[i], new YcData(row.get(j))); // 该id不存在,插入 + } + for (Entry en : cell.entrySet()) { + System.out.println("key==" + en.getKey() + ",value==" + en.getValue().toString()); + } + } + YcData maxData = new YcData(null); + maxData.val = max; + maxDataMap.put(ycidpa[i], maxData); + YcData minData = new YcData(null); + minData.val = min; + minDataMap.put(ycidpa[i], minData); + } + Iterator it = data.keySet().iterator(); + while (it.hasNext()) { + Date key = it.next(); + dataModel.getRows().add(data.get(key)); + } + + YcData minYcData = new YcData(null); + minYcData.datatime = "最小值"; + minDataMap.put("datatime", minYcData); + dataModel.getRows().add(minDataMap); + + YcData maxYcData = new YcData(null); + maxYcData.datatime = "最大值"; + maxDataMap.put("datatime", maxYcData); + dataModel.getRows().add(maxDataMap); + + dataModel.setTotal(dataModel.getRows().size()); + } catch (Exception e) { +// logger.error(e.getMessage(), e); + e.printStackTrace(); + } + return R.data(dataModel); + } + + @ResponseBody + @RequestMapping("/getHisYcMultiTimeHH") + public DataGridModel> getHisYcMultiTimeHH(HttpServletRequest request, + HttpServletResponse response, String ycids, String start, String end, String type) { + // User user = SessionUtils.getCurrentUser(request); + DataGridModel> dataModel = new DataGridModel>(); + try { + // String conn = HisDataUtil.getConnectString(); + Map> data = new LinkedHashMap>(); + dataModel.setRows(new ArrayList>()); + String[] ycidpa = ycids.split(","); + for (int i = 0; i < ycidpa.length; i++) { + // QueryRecordUtils.insertQueryYc(user.getId(), ycidpa[i]); + List row = dataService.getYc(ycidpa[i], start, end, type); + if (row == null) { + row = new ArrayList(); + } + for (int j = 0; j < row.size(); j++) { + if (!data.containsKey(row.get(j).getDatatime().toString().substring(11, 13))) { // 如果该日期不存在则添加 + Map tmp = new HashMap(); + data.put(row.get(j).getDatatime(), tmp); + Format format = new SimpleDateFormat("HH"); + YcData ycdata = new YcData(null); + ycdata.datatime = format.format(row.get(j).getDatatime()); + tmp.put("datatime", ycdata); + } + // 运行到此处日期行已经存在 + Map cell = data.get(row.get(j).getDatatime()); + if (cell.containsKey(ycidpa[i])) { // 该id已经存在,为异常 + } else { + cell.put(ycidpa[i], new YcData(row.get(j))); // 该id不存在,插入 + } + for (Entry en : cell.entrySet()) { + System.out.println("key==" + en.getKey() + ",value==" + en.getValue().toString()); + } + } + } + Iterator it = data.keySet().iterator(); + while (it.hasNext()) { + Date key = it.next(); + dataModel.getRows().add(data.get(key)); + } + dataModel.setTotal(dataModel.getRows().size()); + return dataModel; + } catch (Exception e) { + e.printStackTrace(); + return dataModel; + } + } + + /** + * 历史告警查询带分页 + * + * @param request + * @param response + * @param start + * @param end + * @param facId + * @param groupId + * @param typeId + * @return + */ + @ResponseBody + @RequestMapping("/getHisSoeWithPage") + public R getHisSoe(HttpServletRequest request, HttpServletResponse response, String start, + String end, String facId, String groupId, String typeId, Query query) { + DataGridModel dataModel = new DataGridModel(); + try { + // String conn = HisDataUtil.getConnectString(); + dataModel.setRows(new ArrayList()); + List datas = dataService.getSoe(start, end, facId, groupId, typeId); + if (datas == null) { + datas = new ArrayList<>(); + } + + // 分页 + ListPageUtil pageUtil = new ListPageUtil<>(); + + List pageList = pageUtil.getPagedList(query.getCurrent(), query.getSize(), datas); + dataModel.setTotal(datas.size()); + dataModel.setRows(pageList); + return R.data(dataModel,"查询成功"); + } catch (Exception e) { + e.printStackTrace(); + return R.fail(500,"查询失败"); + } + } + + /** + * 历史告警查询 + * + * @param request + * @param response + * @param start + * @param end + * @param facId + * @param groupId + * @param typeId + * @return + */ + @ResponseBody + @RequestMapping("/getHisSoe") + @ApiOperation(notes = "获取历史告警", value = "获取历史告警") + public DataGridModel getHisSoe(HttpServletRequest request, HttpServletResponse response, + @ApiParam(value = "开始时间", required = false) @RequestParam(value = "start", required = false) String start, + @ApiParam(value = "结束时间", required = false) @RequestParam(value = "end", required = false) String end, + @ApiParam(value = "长id", required = false) @RequestParam(value = "facId", required = false) String facId, + @ApiParam(value = "组id", required = false) @RequestParam(value = "groupId", required = false) String groupId, + @ApiParam(value = "点id", required = false) @RequestParam(value = "typeId", required = false) String typeId) { + DataGridModel dataModel = new DataGridModel(); + try { + // String conn = HisDataUtil.getConnectString(); + dataModel.setRows(new ArrayList()); + List datas = dataService.getSoe(start, end, facId, groupId, typeId); + if (datas == null) { + datas = new ArrayList(); + } + dataModel.setRows(datas); + dataModel.setTotal(dataModel.getRows().size()); + return dataModel; + } catch (Exception e) { + e.printStackTrace(); + return dataModel; + } + } + + @ResponseBody + @RequestMapping("/getHisSoeOld") + @ApiOperation(notes = "获取历史告警", value = "获取历史告警") + public DataGridModel getHisSoeOld(HttpServletRequest request, HttpServletResponse response, + @ApiParam(value = "开始时间", required = false) @RequestParam(value = "start", required = false) String start, + @ApiParam(value = "结束时间", required = false) @RequestParam(value = "end", required = false) String end, + @ApiParam(value = "长id", required = false) @RequestParam(value = "facId", required = false) String facId, + @ApiParam(value = "组id", required = false) @RequestParam(value = "groupId", required = false) String groupId, + @ApiParam(value = "点id", required = false) @RequestParam(value = "typeId", required = false) String typeId) { + DataGridModel dataModel = new DataGridModel(); + try { + // String conn = HisDataUtil.getConnectString(); + dataModel.setRows(new ArrayList()); + List datas = dataService.getSoeOld(start, end, facId, groupId, typeId); + if (datas == null) { + datas = new ArrayList(); + } + dataModel.setRows(datas); + dataModel.setTotal(dataModel.getRows().size()); + return dataModel; + } catch (Exception e) { + e.printStackTrace(); + return dataModel; + } + } + + /** + * 告警导出 + * + * @param request + * @param response + * @param start + * @param end + * @param facId + * @param groupId + * @param typeId + * void 2018-12-20 14:39 + */ + @ResponseBody + @RequestMapping("/hisSoeExport") + public void hisSoeExport(HttpServletRequest request, HttpServletResponse response, String start, String end, + String facId, String groupId, String typeId) { + try { + dataService.hisSoeExport(response, start, end, facId, groupId, typeId); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @ResponseBody + @RequestMapping("/hisSoeExportOld") + public void hisSoeExportOld(HttpServletRequest request, HttpServletResponse response, String start, String end, + String facId, String groupId, String typeId) { + try { + dataService.hisSoeExport(response, start, end, facId, groupId, typeId); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 遥测导出 + * + * @param request + * @param response + * @param ycids + * @param start + * @param end + * @param type + * void 2018-12-20 14:39 + */ + @ResponseBody + @RequestMapping("/hisYcExport") + public void hisYcExport(HttpServletRequest request, HttpServletResponse response, String ycids, String start, + String end, String type) { + try { + // 表头 + List headList = new ArrayList(); + // 组装表头 + ExcelExportEntity headCell = new ExcelExportEntity("时间", "datatime", 20); + headList.add(headCell); + if (StringUtils.isNotBlank(ycids)) { + String[] ycidpa = ycids.split(","); + for (String ycid : ycidpa) { + // 取出点信息,点的名字作为列名 + YcPoint ycPoint = FacInfoFactory.getInstance().getYcPointById(ycid); + String colName = ycid; + if (null != ycPoint) { + colName = ycPoint.getName(); + } + headCell = new ExcelExportEntity(colName, ycid); + headList.add(headCell); + } + } + + // 内容 + List> dataList = new ArrayList>(); + + R>> searchData = getHisYcMulti(request, response, ycids, start, end, type); + DataGridModel> dataModel=searchData.getData(); + if (null != searchData && null != searchData.getData().getRows()) { + List> list = searchData.getData().getRows(); + for (Map map : list) { + // 组装一条数据 + Map rowMap = new HashMap(); + for (String key : map.keySet()) { + // 组装时间列时间 + if ("datatime".equals(key)) { + rowMap.put(key, map.get(key).datatime); + } else { + rowMap.put(key, decimalFormat.format(map.get(key).val)); + } + } + dataList.add(rowMap); + } + } + + ExportParams exportParams = new ExportParams("历史遥测报表", "数据"); + exportParams.setCreateHeadRows(true); + exportParams.setStyle(ExcelExportStylerBorderImpl.class); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, headList, dataList); + HisDataExportUtils.downloadEexcl(response, "历史遥测报表", workbook); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 获得第一条告警数据 + * + * @author ypj + * @return + */ + @ResponseBody + @RequestMapping("/firstSoeAlarmSender") + public List getFirstSoeRValue() { + + List datas = new ArrayList(); + try { + datas = dataService.getSoeByNumber((int) 1); + } catch (Exception e) { + e.printStackTrace(); + } + return datas; + } + + /** + * 获得id后最新告警数据 + * + * @author ypj + * @param id + * @return + */ + @ResponseBody + @RequestMapping("/soeAlarmSender") + public List getSoeRValueAftreId(HttpServletRequest request, HttpServletResponse response, String id) { + List datas = new ArrayList(); + try { + datas = dataService.getSoeCloseToId(id, soeNumer, true); + } catch (Exception e) { + e.printStackTrace(); + } + return datas; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/SoeHistoryDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/SoeHistoryDataController.java new file mode 100644 index 0000000..90a63d3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/SoeHistoryDataController.java @@ -0,0 +1,45 @@ +package org.springblade.hz3000_real_data.history.controller; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.history.service.SoeHisDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +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.ResponseBody; + +import java.io.IOException; +import java.util.List; + +/** + * @Author: liugang + * @Date: 2020/8/11 17:05 + */ +@Controller +@RequestMapping("/hz3000Data/historySoe") +public class SoeHistoryDataController { + + @Autowired + private SoeHisDataService soeHisDataService; + + @ResponseBody + @RequestMapping(value = "/queryHisRecordIds", method = RequestMethod.POST) + public R queryHisRecordIds(@RequestBody String json) { + try { + ObjectMapper mapper = new ObjectMapper(); + JsonNode rootNode = mapper.readTree(json); + String datapoints = rootNode.path("datapoints").textValue(); + String querytype = rootNode.path("querytype").textValue(); + String starttime = rootNode.path("starttime").textValue(); + String endtime = rootNode.path("endtime").textValue(); + List list = soeHisDataService.queryHisRecordIds(datapoints, querytype, starttime, endtime); + return R.data(list,"查询成功"); + } catch (IOException e) { + return R.fail(500,"查询失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/YcHistoryDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/YcHistoryDataController.java new file mode 100644 index 0000000..c771261 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/controller/YcHistoryDataController.java @@ -0,0 +1,46 @@ +package org.springblade.hz3000_real_data.history.controller; + +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.service.YcHistoryDataService; +import org.springblade.hz3000_real_data.history.vo.HistoryRequestParameter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.ArrayList; +import java.util.List; + +@Controller +@RequestMapping("/hz3000Data/historyYc") +public class YcHistoryDataController { + @Autowired + private YcHistoryDataService service; + + + @RequestMapping(value = "/queryHisData", method = RequestMethod.GET) + public R queryHisData(HistoryRequestParameter parameter) { + //20190920解决报错:com.hnac.hzinfo.common.utils.StringUtils.isNoneBlank([Ljava/lang/CharSequence;) + //if (StringUtils.isNoneBlank(parameter.getStrTime1(), parameter.getStrTime2())) { + if (StringUtils.isNotBlank(parameter.getStrTime1()) && StringUtils.isNotBlank(parameter.getStrTime2())) { + return R.data(service.queryHisDateOfTimeRange(parameter.getRealIds(), + parameter.getStrTime1(), parameter.getStrTime2()),"查询成功"); + } + return R.data(service.queryHisData(parameter),"查询成功"); + } + + + @RequestMapping(value = "/queryHisDataCount", method = RequestMethod.GET) + public R queryHisDataCount(HistoryRequestParameter parameter) { + if (parameter.getStrStatisticType().size() == 1) { + List types = new ArrayList<>(parameter.getRealIds().size()); + for (int i = 0; i < parameter.getRealIds().size(); i++) { + types.add(parameter.getStrStatisticType().get(0)); + } + parameter.setStrStatisticType(types); + } + return R.data(service.queryHisDataCount(parameter),"查询成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Cell.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Cell.java new file mode 100644 index 0000000..58f6345 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Cell.java @@ -0,0 +1,160 @@ +/** + * + */ +package org.springblade.hz3000_real_data.history.entity; + +import java.io.Serializable; + +/** + * @author ypj 2016年12月15日 + */ +@SuppressWarnings("serial") +public class Cell implements Serializable{ + private String cellid; + private int rowindex; + private int columnindex; + private String realid; + private int starttime; + private int duration; + private double diffmin; + private String dataquerytype; + private String DateTimeType; + public double DBValue; + public boolean DBSorted; + + /** + * @return the cellid + */ + public String getCellid() { + return cellid; + } + + /** + * @param cellid + * the cellid to set + */ + public void setCellid(String cellid) { + this.cellid = cellid; + } + + /** + * @return the rowindex + */ + public int getRowindex() { + return rowindex; + } + + /** + * @param rowindex + * the rowindex to set + */ + public void setRowindex(int rowindex) { + this.rowindex = rowindex; + } + + /** + * @return the columnindex + */ + public int getColumnindex() { + return columnindex; + } + + /** + * @param columnindex + * the columnindex to set + */ + public void setColumnindex(int columnindex) { + this.columnindex = columnindex; + } + + /** + * @return the realid + */ + public String getRealid() { + return realid; + } + + /** + * @param realid + * the realid to set + */ + public void setRealid(String realid) { + this.realid = realid; + } + + /** + * @return the starttime + */ + public int getStarttime() { + return starttime; + } + + /** + * @param starttime + * the starttime to set + */ + public void setStarttime(int starttime) { + this.starttime = starttime; + } + + /** + * @return the duration + */ + public int getDuration() { + return duration; + } + + /** + * @param duration + * the duration to set + */ + public void setDuration(int duration) { + this.duration = duration; + } + + /** + * @return the diffmin + */ + public double getDiffmin() { + return diffmin; + } + + /** + * @param diffmin + * the diffmin to set + */ + public void setDiffmin(double diffmin) { + this.diffmin = diffmin; + } + + /** + * @return the dataquerytype + */ + public String getDataquerytype() { + return dataquerytype; + } + + /** + * @param dataquerytype + * the dataquerytype to set + */ + public void setDataquerytype(String dataquerytype) { + this.dataquerytype = dataquerytype; + } + + /** + * @return the dateTimeType + */ + public String getDateTimeType() { + return DateTimeType; + } + + /** + * @param dateTimeType + * the dateTimeType to set + */ + public void setDateTimeType(String dateTimeType) { + DateTimeType = dateTimeType; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataSoe.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataSoe.java new file mode 100644 index 0000000..9120768 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataSoe.java @@ -0,0 +1,230 @@ +package org.springblade.hz3000_real_data.history.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; + +public class HisDataSoe implements Serializable { + private static final long serialVersionUID = -3968194563625652542L; + private long id; + private String hzrealid; + @Excel(name = "时间", format = "yyyy-MM-dd HH:mm:ss", width = 20) + private Date datatime; + private String _explain; + private int soetype; + private int _status; + private String optionvals; + private int _msec; + private String verifyUser; + // 以下属性为后期赋值属性 + @Excel(name = "厂名") + public String factory; + @Excel(name = "组名") + public String group; + @Excel(name = "事件内容") + public String pointname; + @Excel(name = "告警类型") + public String soetypename; + @Excel(name = "状态") + public String soestatusname; + @Excel(name = "动作值") + public int optionnums; + + public long getId() { + return id; + } + + public void setId(long val) { + this.id = val; + } + + public String getHzRealid() { + return hzrealid; + } + + public void setHzRealid(String val) { + this.hzrealid = val; + } + + public Date getDatatime() { + return datatime; + } + + public void setDatatime(Date datatime) { + this.datatime = datatime; + } + + public String get_Explain() { + return _explain; + } + + public void set_Explain(String val) { + this._explain = val; + } + + public int getSoeType() { + return soetype; + } + + public void setSoeType(int val) { + this.soetype = val; + } + + public int get_Status() { + return _status; + } + + public void set_Status(int val) { + this._status = val; + } + + public String getOptionVals() { + return optionvals; + } + + public void setOptionVals(String val) { + this.optionvals = val; + } + + public int getOptionNums() { + return optionnums; + } + + public void setOptionNums(int num) { + this.optionnums = num; + } + + public int get_Msec() { + return _msec; + } + + public void set_Msec(int _msec) { + this._msec = _msec; + } + + public String get_Factory() { + return factory; + } + + public String get_Group() { + return group; + } + + public String get_PointName() { + return pointname; + } + + public String get_SoeTypeName() { + return soetypename; + } + + public String get_SoeStatusName() { + return soestatusname; + } + + public String getHzrealid() { + return hzrealid; + } + + public void setHzrealid(String hzrealid) { + this.hzrealid = hzrealid; + } + + public String get_explain() { + return _explain; + } + + public void set_explain(String _explain) { + this._explain = _explain; + } + + public int getSoetype() { + return soetype; + } + + public void setSoetype(int soetype) { + this.soetype = soetype; + } + + public int get_status() { + return _status; + } + + public void set_status(int _status) { + this._status = _status; + } + + public String getOptionvals() { + return optionvals; + } + + public void setOptionvals(String optionvals) { + this.optionvals = optionvals; + } + + public int get_msec() { + return _msec; + } + + public void set_msec(int _msec) { + this._msec = _msec; + } + + public String getFactory() { + return factory; + } + + public void setFactory(String factory) { + this.factory = factory; + } + + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + public String getPointname() { + return pointname; + } + + public void setPointname(String pointname) { + this.pointname = pointname; + } + + public String getSoetypename() { + return soetypename; + } + + public void setSoetypename(String soetypename) { + this.soetypename = soetypename; + } + + public String getSoestatusname() { + return soestatusname; + } + + public void setSoestatusname(String soestatusname) { + this.soestatusname = soestatusname; + } + + public int getOptionnums() { + return optionnums; + } + + public void setOptionnums(int optionnums) { + this.optionnums = optionnums; + } + + public String getVerifyUser() { + return verifyUser; + } + + public void setVerifyUser(String verifyUser) { + this.verifyUser = verifyUser; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java new file mode 100644 index 0000000..e6aa86a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYc.java @@ -0,0 +1,73 @@ +package org.springblade.hz3000_real_data.history.entity; + +import java.io.Serializable; +import java.util.Date; + +public class HisDataYc implements Serializable { + private double val; + private Date datatime; + private int q; + private int _msec; + + public double getVal() { + return val; + } + + public void setVal(double val) { + this.val = val; + } + + public Date getDatatime() { + return datatime; + } + + public void setDatatime(Date datatime) { + this.datatime = datatime; + } + + public int getQ() { + return q; + } + + public void setQ(int q) { + this.q = q; + } + + public int get_Msec() { + return _msec; + } + + public void set_Msec(int _msec) { + this._msec = _msec; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((datatime == null) ? 0 : datatime.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + HisDataYc other = (HisDataYc) obj; + if (datatime == null) { + if (other.datatime != null) + return false; + } else if (!datatime.equals(other.datatime)) + return false; + return true; + } + + @Override + public String toString() { + return "HisDataYc [val=" + val + ", datatime=" + datatime + ", q=" + q + ", _msec=" + _msec + "]"; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYx.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYx.java new file mode 100644 index 0000000..531ff89 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/HisDataYx.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.history.entity; + +import java.io.Serializable; +import java.util.Date; + +public class HisDataYx implements Serializable { + private int val; + private Date datatime; + public int getVal() { + return val; + } + public void setVal(int val) { + this.val = val; + } + public Date getDatatime() { + return datatime; + } + public void setDatatime(Date datatime) { + this.datatime = datatime; + } + @Override + public String toString() { + return "HisDataYx [val=" + val + ", datatime=" + datatime + "]"; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperDay.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperDay.java new file mode 100644 index 0000000..c30c239 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperDay.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.mapreduce.TableMapper; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class MapperDay extends TableMapper{ + @Override + protected void map(ImmutableBytesWritable key, Result value, + Mapper.Context context) + throws IOException, InterruptedException { + String rowkey = Bytes.toString(value.getRow()).substring(0, 10); + for (Cell cl : value.listCells()){ + long id = Bytes.toLong(cl.getQualifierArray(), cl.getQualifierOffset(), cl.getQualifierLength()); + double v = Bytes.toDouble(cl.getValueArray(), cl.getValueOffset()); + context.write(new Text(rowkey + "|" + id), new DoubleWritable(v)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperFirst.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperFirst.java new file mode 100644 index 0000000..919ede4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperFirst.java @@ -0,0 +1,37 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.mapreduce.TableMapper; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class MapperFirst extends TableMapper{ + @Override + protected void map(ImmutableBytesWritable key, Result value, + Mapper.Context context) + throws IOException, InterruptedException { + String rowkeyori = Bytes.toString(value.getRow()); + String rowkey = rowkeyori.substring(0, 13); + SimpleDateFormat FORMAT_SECOND=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + try { + time = FORMAT_SECOND.parse(rowkeyori); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + for (Cell cl : value.listCells()){ + long id = Bytes.toLong(cl.getQualifierArray(), cl.getQualifierOffset(), cl.getQualifierLength()); + double v = Bytes.toDouble(cl.getValueArray(), cl.getValueOffset()); + context.write(new Text(rowkey + "|" + id), new Text("" + time.getTime() + "|" + v)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperHour.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperHour.java new file mode 100644 index 0000000..1acc47e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperHour.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.mapreduce.TableMapper; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class MapperHour extends TableMapper{ + @Override + protected void map(ImmutableBytesWritable key, Result value, + Mapper.Context context) + throws IOException, InterruptedException { + String rowkey = Bytes.toString(value.getRow()).substring(0, 13); + for (Cell cl : value.listCells()){ + long id = Bytes.toLong(cl.getQualifierArray(), cl.getQualifierOffset(), cl.getQualifierLength()); + double v = Bytes.toDouble(cl.getValueArray(), cl.getValueOffset()); + context.write(new Text(rowkey + "|" + id), new DoubleWritable(v)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperMonth.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperMonth.java new file mode 100644 index 0000000..4bb00ec --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperMonth.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.mapreduce.TableMapper; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class MapperMonth extends TableMapper{ + @Override + protected void map(ImmutableBytesWritable key, Result value, + Mapper.Context context) + throws IOException, InterruptedException { + String rowkey = Bytes.toString(value.getRow()).substring(0, 7); + for (Cell cl : value.listCells()){ + long id = Bytes.toLong(cl.getQualifierArray(), cl.getQualifierOffset(), cl.getQualifierLength()); + double v = Bytes.toDouble(cl.getValueArray(), cl.getValueOffset()); + context.write(new Text(rowkey + "|" + id), new DoubleWritable(v)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperYear.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperYear.java new file mode 100644 index 0000000..f2e1f9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/MapperYear.java @@ -0,0 +1,26 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.mapreduce.TableMapper; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class MapperYear extends TableMapper{ + @Override + protected void map(ImmutableBytesWritable key, Result value, + Mapper.Context context) + throws IOException, InterruptedException { + String rowkey = Bytes.toString(value.getRow()).substring(0, 4); + for (Cell cl : value.listCells()){ + long id = Bytes.toLong(cl.getQualifierArray(), cl.getQualifierOffset(), cl.getQualifierLength()); + double v = Bytes.toDouble(cl.getValueArray(), cl.getValueOffset()); + context.write(new Text(rowkey + "|" + id), new DoubleWritable(v)); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerAvg.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerAvg.java new file mode 100644 index 0000000..9a76488 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerAvg.java @@ -0,0 +1,21 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerAvg extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + double sum = 0; + long count = 0; + for (DoubleWritable value : values) { + sum += value.get(); + count++; + } + if (count != 0) + context.write(key, new DoubleWritable(sum/count)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerChange.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerChange.java new file mode 100644 index 0000000..1f22aa0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerChange.java @@ -0,0 +1,23 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerChange extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + double max = Double.MIN_VALUE; + double min = Double.MAX_VALUE; + for (DoubleWritable value : values) { + if (value.get() > max) + max = value.get(); + if (value.get() < min) + min = value.get(); + } + if (max != Double.MIN_VALUE && min != Double.MAX_VALUE) + context.write(key, new DoubleWritable(max - min)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerFirst.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerFirst.java new file mode 100644 index 0000000..0665803 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerFirst.java @@ -0,0 +1,24 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerFirst extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + long mintime = Long.MAX_VALUE; + double minvalue = 0; + for (Text value : values) { + String[] v = value.toString().split("\\|"); + long time = Long.parseLong(v[0]); + if (time < mintime){ + mintime = time; + minvalue = Double.parseDouble(v[1]); + } + } + context.write(key, new DoubleWritable(minvalue)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMax.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMax.java new file mode 100644 index 0000000..b679748 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMax.java @@ -0,0 +1,20 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerMax extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + double max = Double.MIN_VALUE; + for (DoubleWritable value : values) { + if (value.get() > max) + max = value.get(); + } + if (max != Double.MIN_VALUE) + context.write(key, new DoubleWritable(max)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMin.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMin.java new file mode 100644 index 0000000..00688c3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerMin.java @@ -0,0 +1,20 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerMin extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + double min = Double.MAX_VALUE; + for (DoubleWritable value : values) { + if (value.get() < min) + min = value.get(); + } + if (min != Double.MAX_VALUE) + context.write(key, new DoubleWritable(min)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerSum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerSum.java new file mode 100644 index 0000000..290df28 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/ReducerSum.java @@ -0,0 +1,18 @@ +package org.springblade.hz3000_real_data.history.entity; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class ReducerSum extends Reducer{ + @Override + protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { + double sum = 0; + for (DoubleWritable value : values) { + sum += value.get(); + } + context.write(key, new DoubleWritable(sum)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Sheet.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Sheet.java new file mode 100644 index 0000000..e4db2be --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/Sheet.java @@ -0,0 +1,47 @@ +/** + * + */ +package org.springblade.hz3000_real_data.history.entity; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ypj 2016年12月15日 + */ +@SuppressWarnings("serial") +public class Sheet implements Serializable{ + private String reporttype; + private List cells; + + /** + * @return the reporttype + */ + public String getReporttype() { + return reporttype; + } + + /** + * @param reporttype + * the reporttype to set + */ + public void setReporttype(String reporttype) { + this.reporttype = reporttype; + } + + /** + * @return the cells + */ + public List getCells() { + return cells; + } + + /** + * @param cells + * the cells to set + */ + public void setCells(List cells) { + this.cells = cells; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/WorkBook.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/WorkBook.java new file mode 100644 index 0000000..735488f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/entity/WorkBook.java @@ -0,0 +1,47 @@ +/** + * + */ +package org.springblade.hz3000_real_data.history.entity; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ypj 2016年12月15日 + */ +@SuppressWarnings("serial") +public class WorkBook implements Serializable{ + private String datetime; + private List sheets; + + /** + * @return the datetime + */ + public String getDatetime() { + return datetime; + } + + /** + * @param datetime + * the datetime to set + */ + public void setDatetime(String datetime) { + this.datetime = datetime; + } + + /** + * @return the sheets + */ + public List getSheets() { + return sheets; + } + + /** + * @param sheets + * the sheets to set + */ + public void setSheets(List sheets) { + this.sheets = sheets; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/enumeration/StringTimeFormatter.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/enumeration/StringTimeFormatter.java new file mode 100644 index 0000000..a8e5ac3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/enumeration/StringTimeFormatter.java @@ -0,0 +1,163 @@ +package org.springblade.hz3000_real_data.history.enumeration; + +import org.apache.commons.lang.StringUtils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; +import java.util.Date; +import java.util.EnumMap; +import java.util.Map; +import java.util.Optional; +import java.util.regex.Pattern; + +public enum StringTimeFormatter { + /** + * 年份:2019 + */ + YEAR(ChronoUnit.YEARS ,"^\\d{4}$", "yyyy", "%Y"), + /** + * 年-月:2019-04 + */ + MONTH(ChronoUnit.MONTHS, "^\\d{4}-\\d{2}$", "yyyy-MM", "%Y-%m"), + /** + * 年-月-日:2019-04-25 + */ + DAY(ChronoUnit.DAYS, "^\\d{4}-\\d{2}-\\d{2}$", "yyyy-MM-dd", "%Y-%m-%d"), + /** + * 年-月-日 时:2019-04-25 16 + */ + HOUR(ChronoUnit.HOURS, "^\\d{4}-\\d{2}-\\d{2} \\d{2}$", "yyyy-MM-dd HH", "%Y-%m-%d %H"), + /** + * 年-月-日 时:分 2019-04-30 14:02 + */ + MINUTE(ChronoUnit.MINUTES, "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}$", "yyyy-MM-dd HH:mm", "%Y-%m-%d %H:%i"), + /** + * 年-月-日 时:分:秒 2019-04-30 14:02:30 + */ + SECOND(ChronoUnit.SECONDS, "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$", "yyyy-MM-dd HH:mm:ss", "%Y-%m-%d %H:%i:%s"); + + private static final Map lessThanMap = new EnumMap<>(StringTimeFormatter.class); + + static { + lessThanMap.put(YEAR, MONTH); + lessThanMap.put(MONTH, DAY); + lessThanMap.put(DAY, HOUR); + } + + private final ChronoUnit unit; + + private final Pattern pattern; + + private final SimpleDateFormat dateFormat; + + private final String databaseFormat; + + private StringTimeFormatter(ChronoUnit unit,String pattern, + String dateFormat, String databaseFormat) { + this.unit = unit; + this.pattern = Pattern.compile(pattern); + this.dateFormat = new SimpleDateFormat(dateFormat); + this.databaseFormat = databaseFormat; + } + + /** + * 判断输入的时间字符串是什么样的类型 + * @param date + * @return + */ + public static Optional getInstance(String date) { + if (StringUtils.isNotBlank(date)) { + for (StringTimeFormatter formatter : StringTimeFormatter.values()) { + if (formatter.isMatched(date)) { + return Optional.of(formatter); + } + } + } + return Optional.empty(); + } + + /** + * 将字符串转换成合适的时间 + * @param date + * @return + */ + public static Optional parseToDate(String date) { + return getInstance(date).map(formattor -> formattor.parse(date)); + } + + /** + * 将字符串转换成时间 + * @param date + * @return + */ + public Date parse(String date) { + try { + return dateFormat.parse(date); + } catch (ParseException e) { + throw new IllegalArgumentException("时间字符串格式不正确"); + } + } + + /** + * 对日期进行格式化 + * @param date + * @return + */ + public String format(Date date) { + return dateFormat.format(date); + } + + /** + * 将时间向后推一个时间单位 + * @param now + * @return + */ + public Date afterOneUnit(Date now) { + return moveTime(now, 1); + } + + /** + * 将时间向前推一个时间单位 + * @param now + * @return + */ + public Date beforeOneUnit(Date now) { + return moveTime(now, -1); + } + + private Date moveTime(Date now, int step) { + ZoneId systemZoneId = ZoneId.systemDefault(); + + LocalDateTime localDateTime = LocalDateTime.ofInstant(now.toInstant(), systemZoneId); + LocalDateTime plusOne = localDateTime.plus(step, unit); + return Date.from(plusOne.atZone(systemZoneId).toInstant()); + } + /** + * 获取更小的时间粒度, 比如比YEAR更小的为MONTH + * @return + */ + public Optional lessThan() { + return Optional.ofNullable(lessThanMap.get(this)); + } + + /** + * 是否匹配 + * @param date + * @return + */ + private boolean isMatched(String date) { + return pattern.matcher(date).matches(); + } + + public String getDatabaseFormat() { + return databaseFormat; + } + + public ChronoUnit getUnit() { + return unit; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.java new file mode 100644 index 0000000..7bdb4fc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.java @@ -0,0 +1,151 @@ +package org.springblade.hz3000_real_data.history.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; + +import java.util.Date; +import java.util.List; + +@DS("slave") +public interface ComputeStrategyMapper { + + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List averageComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + + /** + * 获取时间段内的平均值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double averageComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List changeComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + /** + * 获取时间范围内的变动值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double changeComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List minComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + + /** + * 获取时间范围内的最小值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double minComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List maxComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + + /** + * 获取时间范围内的最大值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double maxComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List sumComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + + /** + * 获取时间范围内的最大值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double sumComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + List integerComputeEveryTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime, + @Param("granularity") StringTimeFormatter timeGranularity); + /** + * 获取时间范围内的整点值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double integerComputeTotalTime(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + /** + * 获取时间段[startTime, endTime]内的所有值 + * @param tableName + * @param startTime + * @param endTime + * @return + */ + List queryHisDateOfTimeRange(@Param("tableName") String tableName, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.xml new file mode 100644 index 0000000..77823ae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/ComputeStrategyMapper.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + WHERE + q = 0 + + AND datatime >= #{startTime} + + + AND datatime #{endTime} + + + + + GROUP BY + DATE_FORMAT(datatime, #{granularity.databaseFormat}) ASC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.java new file mode 100644 index 0000000..09bef6f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.java @@ -0,0 +1,32 @@ + +package org.springblade.hz3000_real_data.history.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; +import org.springblade.hz3000_real_data.history.entity.HisDataSoe; +import org.springblade.hz3000_real_data.history.entity.HisDataYc; + +import java.util.List; + +@DS("slave") +public interface HisDataMapper { + + List getYcOriginal(@Param("tableName") String tableName, @Param("beginTime") String beginTime, @Param("endTime") String endTime); + + List getYcIntegral(@Param("stasticsstr") String stasticsstr, @Param("tablestr") String tablestr, + @Param("datetimegroupstr") String datetimegroupstr, @Param("comparedatetimes") String comparedatetimes); + + //String getYcNo(String ycid); + + List getSoe(@Param("beginTime") String beginTime, @Param("endTime") String endTime, + @Param("soeIds") String soeIds, @Param("typeIds") String typeIds); + + List getSoeOld(@Param("beginTime") String beginTime, @Param("endTime") String endTime, + @Param("soeIds") String soeIds, @Param("typeIds") String typeIds); + + List GetSingleData(@Param("tablestr") String tablestr, @Param("stasticsstr") String stasticsstr, @Param("singleQueryTime") String singleQueryTime); + + List GetSoeByNumber(@Param("index") int index); + + List getSoeCloseToId(@Param("id") String id, @Param("soeNumber") String soeNumber, @Param("isNew") boolean isNew); + } \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.xml new file mode 100644 index 0000000..bdf5c6c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/mapper/HisDataMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataService.java new file mode 100644 index 0000000..5f91b5d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataService.java @@ -0,0 +1,843 @@ +package org.springblade.hz3000_real_data.history.service; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerBorderImpl; +import com.alibaba.fastjson.JSON; +import com.google.common.base.Strings; +import org.apache.poi.ss.usermodel.Workbook; +import org.dom4j.DocumentException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.hz3000_real_data.analysis.service.StatisticsService; +import org.springblade.hz3000_real_data.fac.dao.FactoryInfoDao; +import org.springblade.hz3000_real_data.fac.entity.*; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoConstants; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.history.mapper.HisDataMapper; +import org.springblade.hz3000_real_data.history.entity.*; +import org.springblade.hz3000_real_data.history.utils.HisDataExportUtils; +import org.springblade.hz3000_real_data.history.utils.HisDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import org.springblade.hz3000_real_data.history.service.HisDataServiceHBase.EnGroupByDateTime; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URL; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service("hznet3HisDataServie") +public class HisDataService { + @Autowired + HisDataMapper hisDataMapper; + @Autowired + StatisticsService statisticsService; + + private String defaultSoeNumber = "10"; + + /* + * public enum EnGroupByDateTime { Hour, Day, Month, Year } + * + * public enum StatisticsType { IntVal, MaxVal, MinVal, AvgVal, SumVal, + * ChangeVal,IntAvg } + */ + + public static void parseSoe(HisDataSoe soe) { + try { + BasePoint bp = null; + + URL xmlpath = BasePoint.class.getClassLoader().getResource(""); + System.out.println("BasePoint came from1 " + xmlpath); + System.out.println("BasePoint came from2 "+BasePoint.class.getResource("/").getPath()); + // 系统事件且ID为0,则是通讯中断/恢复事件,不读厂信息 + if (soe.getSoeType() != 1 && soe.getSoeType() != 14) { + + bp = FacInfoFactory.getInstance().getDataPointDef(soe.getHzRealid()); + } + if (bp != null) { + soe.factory = bp.getFactoryName(); + soe.group = bp.getGroupName(); + soe.pointname = bp.getName(); + soe.soetypename = FacInfoConstants.mSoeKind[soe.getSoeType()]; + if (bp.getPointType() == PointType.IsSoe.getCode()) { + SoePoint sp = (SoePoint) bp; + parseSoeOptionvals(soe, sp); + if (!Strings.isNullOrEmpty(sp.getAlarmType())) { + int index = Integer.parseInt(sp.getAlarmType()); + soe.soestatusname = FacInfoConstants.mSoeType[index][soe.get_Status()]; + } + } else if (bp.getPointType() == PointType.IsYx.getCode()) { + soe.soestatusname = FacInfoConstants.mSoeType[1][soe.get_Status()]; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } else { + soe.soestatusname = ""; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } + } else { + soe.factory = ""; + soe.group = ""; + // soe.pointname = ""; + // 取不到bp时pointname赋值处理 + soe.pointname = soe.get_Explain(); + soe.soestatusname = ""; + soe.soetypename = FacInfoConstants.mSoeKind[soe.getSoeType()]; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } + // RDS遥测越限(skback2上限,skback3上上限) + if (soe.getSoeType() == 11) { + if (soe.get_Status() == 0) + soe.soestatusname = "超下限"; + else + soe.soestatusname = "超上限"; + } else if (soe.getSoeType() == 12) { + if (soe.get_Status() == 0) + soe.soestatusname = "超下下限"; + else + soe.soestatusname = "超上上限"; + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void parseSoeOptionvals(HisDataSoe soe, SoePoint sp) { + if (soe.getOptionVals() == null || "NULL".equals(soe.getOptionVals())) + return; + else { + String[] vals = soe.getOptionVals().split("\\|"); + String[] acts; + String[] units; + if (sp.getActionNameList() == null) + acts = new String[0]; + else + acts = sp.getActionNameList().split("▓"); + if (sp.getActionUnitList() == null) + units = new String[0]; + else + units = sp.getActionUnitList().split("▓"); + String ret = ""; + for (int i = 0; i < vals.length; i++) { + if (i >= 16) + break; + String tact = null; + String tval = null; + if (acts.length > i) + tact = acts[i]; + else + tact = "Action" + (i + 1); + if (vals.length > i) + tval = vals[i]; + ret += tact + ":" + tval; + if (units.length > i) + ret += units[i]; + if (i != vals.length - 1) + ret += "\n"; + } + soe.setOptionNums(vals.length); + soe.setOptionVals(ret); + } + } + + public List getYc(String ycid, String beginTime, String endTime, String type) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List ret = new ArrayList<>(); + try { + String tablename = GetYcTableName(ycid); + + if (tablename != null) { + if (type.equals("1")) { // 整点数据 + StatisticsService.StatisticsType statisticstype = StatisticsService.StatisticsType.IntVal; + EnGroupByDateTime ringQueryType = EnGroupByDateTime.Hour; + ret = GetRingDataAdd(tablename, formatter.parse(beginTime), formatter.parse(endTime), + statisticstype, ringQueryType); + } else if (type.equals("2")) { // 原始数据 + ret = hisDataMapper.getYcOriginal(tablename, beginTime, endTime); + } + } else + return new ArrayList(); + } catch (Exception e) { + e.printStackTrace(); + } + return ret; + } + + /** + * 获取历史遥测查询整点数据 + * + * @param tablestr + * @param start + * @param end + * @param staisticstype + * @param ringQueryType + * @return + */ + private List GetRingDataAdd(String tablestr, Date start, Date end, StatisticsService.StatisticsType staisticstype, + EnGroupByDateTime ringQueryType) { + List ret = new ArrayList<>(); + String datetimegroupstr = GetGroupStrDateTime(ringQueryType); + String comparedatetimes = GetRingCompareArrayByDateTime(start, end, ringQueryType); + String stasticsstr = GetStastiscStr(staisticstype); + ret = hisDataMapper.getYcIntegral(stasticsstr, tablestr, datetimegroupstr, comparedatetimes); + return ret; + } + + /* + * 0:Hour,1:Day,2:Month,3:Year + */ + private String GetGroupStrDateTime(EnGroupByDateTime ringQueryType) { + String str = ""; + switch (ringQueryType) { + case Hour: + str = "DATE_FORMAT(datatime,'%Y-%m-%d %H')"; + break; + case Day: + str = "DATE_FORMAT(datatime,'%Y-%m-%d')"; + break; + case Month: + str = "DATE_FORMAT(datatime,'%Y-%m')"; + break; + case Year: + str = "DATE_FORMAT(datatime,'%Y')"; + break; + default: + break; + } + return str; + } + + private String GetRingCompareArrayByDateTime(Date start, Date end, EnGroupByDateTime ringQueryType) { + String sqltext = ""; + Calendar startCalendar = Calendar.getInstance(); + Calendar endCalendar = Calendar.getInstance(); + startCalendar.setTime(start); + endCalendar.setTime(end); + switch (ringQueryType) { + case Hour: { + List result = new ArrayList(); + startCalendar.set(Calendar.HOUR_OF_DAY, 0); + startCalendar.set(Calendar.MINUTE, 0); + startCalendar.set(Calendar.SECOND, 0); + startCalendar.set(Calendar.MILLISECOND, 0); +// endCalendar.set(Calendar.HOUR_OF_DAY, 23); + endCalendar.set(Calendar.MINUTE, 59); + endCalendar.set(Calendar.SECOND, 59); + endCalendar.set(Calendar.MILLISECOND, 999); + for (; startCalendar.compareTo(endCalendar) < 0; startCalendar.add(Calendar.HOUR_OF_DAY, 1)) { + result.add(startCalendar.getTime()); + } + for (int i = 0; i < result.size(); i++) { + if (i == 0) { + sqltext += "("; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + sqltext += "'" + sdf.format(result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext += ")"; + } + } + } + break; + case Day: { + List result = new ArrayList(); + startCalendar.set(Calendar.DAY_OF_MONTH, 1); + startCalendar.set(Calendar.HOUR_OF_DAY, 0); + startCalendar.set(Calendar.MINUTE, 0); + startCalendar.set(Calendar.SECOND, 0); + startCalendar.set(Calendar.MILLISECOND, 0); + endCalendar.set(Calendar.DAY_OF_MONTH, 1); + endCalendar.set(Calendar.HOUR_OF_DAY, 0); + endCalendar.set(Calendar.MINUTE, 0); + endCalendar.set(Calendar.SECOND, 0); + endCalendar.set(Calendar.MILLISECOND, 0); + endCalendar.add(Calendar.MONTH, 1); + for (; startCalendar.compareTo(endCalendar) < 0; startCalendar.add(Calendar.DAY_OF_YEAR, 1)) { + result.add(startCalendar.getTime()); + } + for (int i = 0; i < result.size(); i++) { + if (i == 0) { + sqltext += "("; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + sqltext += "'" + sdf.format(result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext += ")"; + } + } + } + break; + case Month: { + List result = new ArrayList(); + startCalendar.set(Calendar.DAY_OF_MONTH, 1); + startCalendar.set(Calendar.HOUR_OF_DAY, 0); + startCalendar.set(Calendar.MINUTE, 0); + startCalendar.set(Calendar.SECOND, 0); + startCalendar.set(Calendar.MILLISECOND, 0); + endCalendar.set(Calendar.MONTH, 11); + endCalendar.set(Calendar.DAY_OF_MONTH, 1); + endCalendar.set(Calendar.HOUR_OF_DAY, 0); + endCalendar.set(Calendar.MINUTE, 0); + endCalendar.set(Calendar.SECOND, 0); + endCalendar.set(Calendar.MILLISECOND, 0); + endCalendar.add(Calendar.MONTH, 1); + for (; startCalendar.compareTo(endCalendar) < 0; startCalendar.add(Calendar.MONTH, 1)) { + result.add(startCalendar.getTime()); + } + for (int i = 0; i < result.size(); i++) { + if (i == 0) { + sqltext += "("; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + sqltext += "'" + sdf.format(result.get(i)) + "',"; + if (i == result.size() - 1) { + sqltext = sqltext.substring(0, sqltext.length() - 1); + sqltext += ")"; + } + } + } + break; + case Year: + break; + default: + break; + } + return sqltext; + } + + private String GetStastiscStr(StatisticsService.StatisticsType staisticstype) { + String sqltext = ""; + switch (staisticstype) { + case IntVal: + sqltext += "val"; + break; + case MaxVal: + sqltext += "MAX(val) as maxval"; + break; + case MinVal: + sqltext += "MIN(val) as minval"; + break; + case AvgVal: + sqltext += "AVG(val) as avgval"; + break; + case IntAvg: + sqltext += "AVG(val) as val"; + break; + case SumVal: + sqltext += "SUM(val) as sumval"; + break; + case ChangeVal: + sqltext += "MAX(val) - MIN(val) as changeval"; + break; + default: + break; + } + + return sqltext; + } + + /* + * 从给出的遥测rid获得表名 + * 20200804HZ30002.5取消contactyc表,tyc_id即为表名 + */ + public String GetYcTableName(String id) { +// String ycNo = hisDataDao.getYcNo(id); +// if (StringUtils.isNotBlank(ycNo)) { +// return "tyc_" + ycNo; +// } else +// return null; + return "tyc_" + id; + } + + /** + * 历史告警查询 + * + * @param beginTime + * @param endTime + * @param facId + * @param groupId + * @param typeId + * @return + */ + public List getSoe(String beginTime, String endTime, String facId, String groupId, String typeId) { + // id转查询字符集 + return getSoe(beginTime, endTime, facId, groupId, typeId, null); + } + + /** + * 历史告警查询 + * + * @param beginTime + * @param endTime + * @param facId + * @param groupId + * @param typeId + * @return + */ + public List getSoeOld(String beginTime, String endTime, String facId, String groupId, String typeId) { + return getSoe(beginTime, endTime, facId, groupId, typeId, "old"); + } + + /** + * 历史告警查询 + * + * @param beginTime + * @param endTime + * @param facId + * @param groupId + * @param typeId + * @return + */ + public List getSoe(String beginTime, String endTime, String facId, String groupId, String typeId, + String dataType) { + // id转查询字符集 + String soeIds = ""; + FactoryInfoDao facInfo = FacInfoFactory.getInstance(); + List groups = new ArrayList(); + if (!"-1".equals(groupId)) { + DataGroup tar = facInfo.getGroupByIdEx(groupId); + if (tar != null) + groups.add(tar); + else + return new ArrayList(); + soeIds = "-1"; + } else if (!"-1".equals(facId)) { + groups = facInfo.getGroupByFactoryIdEx(facId); + if (groups == null || groups.size() == 0) + return new ArrayList(); + soeIds = "-1"; + } + // 拼id字符串 + for (int i = 0; i < groups.size(); i++) { + DataGroup tar = groups.get(i); + List yk = tar.getTelecontrolPointList(); + List yc = tar.getTelemetryPointList(); + List yx = tar.getTelesignalPointList(); + List soe = tar.getEventPointList(); + if (yk != null) { + for (int j = 0; j < yk.size(); j++) { + soeIds += "," + yk.get(j).getId(); + } + } + if (yx != null) { + for (int j = 0; j < yx.size(); j++) { + soeIds += "," + yx.get(j).getId(); + } + } + if (yc != null) { + for (int j = 0; j < yc.size(); j++) { + soeIds += "," + yc.get(j).getId(); + } + } + if (soe != null) { + for (int j = 0; j < soe.size(); j++) { + soeIds += "," + soe.get(j).getId(); + } + } + } + // 拼类型字符串 + String typeIds = ""; + if (!"-1".equals(typeId)) { + int index = Integer.parseInt(typeId); + typeIds = FacInfoConstants.mSelKind[index]; + } + + // 开始查询 + List soes; + if (null != dataType && "old".equals(dataType)) { + soes = hisDataMapper.getSoeOld(beginTime, endTime, soeIds, typeIds); + } else { + soes = hisDataMapper.getSoe(beginTime, endTime, soeIds, typeIds); + } + for (int i = 0; i < soes.size(); i++) { + HisDataSoe soe = soes.get(i); + parseSoe(soe); + } + return soes; + } + + /** + * 告警查询-导出 + * + * @param response + * @param beginTime + * @param endTime + * @param facId + * @param groupId + * @param typeId + * void 2018-12-19 20:14 + */ + public void hisSoeExport(HttpServletResponse response, String beginTime, String endTime, String facId, + String groupId, String typeId) { + ExportParams exportParams = new ExportParams("告警报表", "告警数据"); + exportParams.setCreateHeadRows(true); + exportParams.setStyle(ExcelExportStylerBorderImpl.class); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, HisDataSoe.class, + getSoe(beginTime, endTime, facId, groupId, typeId)); + try { + HisDataExportUtils.downloadEexcl(response, "告警", workbook); + } catch (IOException e) { + e.printStackTrace(); +// throw new HZException("HZ9999", "execl下载发生异常"); + } + } + + public void hisSoeExportOld(HttpServletResponse response, String beginTime, String endTime, String facId, + String groupId, String typeId) { + ExportParams exportParams = new ExportParams("告警报表", "告警数据"); + exportParams.setCreateHeadRows(true); + exportParams.setStyle(ExcelExportStylerBorderImpl.class); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, HisDataSoe.class, + getSoeOld(beginTime, endTime, facId, groupId, typeId)); + try { + HisDataExportUtils.downloadEexcl(response, "告警", workbook); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 报表的响应 + * + * @author ypj + * @param request + * @param response + * @param workBook + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void updateSheetResponse(HttpServletRequest request, HttpServletResponse response, WorkBook workBook) { + List sheets = workBook.getSheets(); + Map[] resultMaps = new Map[sheets.size()]; + String reportPerson = AuthUtil.getUserName(); + + for (int i = 0; i < sheets.size(); i++) { + Sheet sheet = sheets.get(i); + resultMaps[i] = new HashMap(); + resultMaps[i].put("reportPerson", reportPerson); + resultMaps[i].putAll(getDataFromNormalSheetEx(sheet, workBook.getDatetime())); + } + // -------------- + String resultString = JSON.toJSONString(resultMaps); + resultString = "{\"status\":\"200\",\"errorMsg\":\"success\",\"result\":" + resultString + "}"; + response.setContentType("text/html;charset=utf-8"); + PrintWriter writer; + try { + writer = response.getWriter(); + writer.print(resultString); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 普通方式下单个sheet的数据填充,采用优化方案 + * + * @author hx + * @param sheet + * @param dateTime + * @return + */ + public Map getDataFromNormalSheetEx(Sheet sheet, String dateTime) { + Map result = new HashMap(); + List cells = sheet.getCells(); + // 以下是批量查询过程 + Map> mapcells = sortCellsEx(cells); + for (Map.Entry> entry : mapcells.entrySet()) { + if (checkSortedCells(entry.getValue()) == false) + continue; + getSortedValue(entry.getValue(), dateTime); + } + // 以下是剩余查询过程 + for (Cell cell : cells) { + if (cell.DBSorted == true) { + result.put(cell.getCellid(), cell.DBValue); + } else { + System.out.println("getting data ,real id : " + cell.getRealid()); + Date startDate = HisDataUtil.getSingleStartTime(dateTime, cell.getStarttime(), cell.getDateTimeType(), + cell.getDiffmin()); + List queryResult = this.QuerySingleData(cell.getRealid(), startDate, + HisDataUtil.getStatisticsType(cell.getDataquerytype()), + HisDataUtil.getEnGroupByDateTime(cell.getDateTimeType()), cell.getDuration()); + if (queryResult != null && !queryResult.isEmpty()) { + result.put(cell.getCellid(), queryResult.get(0)); + } else { + result.put(cell.getCellid(), 0); + } + } + } + return result; + } + + /** + * 返回单个点特定时间内的值 + * + * @author ypj + * @param ycid + * @param start + * @param statisticsType + * @param enGroupByDateTime + * @return + */ + public List QuerySingleData(String ycid, Date start, + StatisticsService.StatisticsType statisticsType, + StatisticsService.EnGroupByDateTime enGroupByDateTime, int duration) { + String tablestr = GetYcTableName(ycid); + if (tablestr != null) { + String stasticsstr = GetStastiscStr(statisticsType); + String singleQueryTime = GetSingleQueryTime(enGroupByDateTime, start, duration); + List ret = hisDataMapper.GetSingleData(tablestr, stasticsstr, singleQueryTime); + return ret; + } else + return null; + } + + private String GetSingleQueryTime(StatisticsService.EnGroupByDateTime ringQueryType, Date start, int duration) { + Calendar cd = Calendar.getInstance(); + cd.setTime(start); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + switch (ringQueryType) { + case Hour: + cd.add(Calendar.HOUR_OF_DAY, duration); + break; + case Day: + cd.add(Calendar.DAY_OF_MONTH, duration); + break; + case Month: + cd.add(Calendar.MONTH, duration); + break; + case Year: + cd.add(Calendar.YEAR, duration); + break; + } + String strStart = sdf.format(start); + String strEnd = sdf.format(cd.getTime()); + return "datatime >= '" + strStart + "' and datatime < '" + strEnd + "' "; + } + + /** + * 按"id,持续时间,偏差时间,数据类型,时间间隔类型,duration"的方式整理cell + * + * @author hx + * @return + */ + private Map> sortCellsEx(List cells) { + Map> mapcell = new HashMap>(); + for (Cell cell : cells) { + String tkey = getCellKey(cell); + if (mapcell.containsKey(tkey)) { + mapcell.get(tkey).add(cell); + } else { + mapcell.put(tkey, new ArrayList()); + mapcell.get(tkey).add(cell); + } + } + return mapcell; + } + + private String getCellKey(Cell cell) { + return "" + cell.getRealid() + "," + cell.getDiffmin() + "," + cell.getDataquerytype() + "," + + cell.getDateTimeType() + "," + cell.getDuration(); + } + + /** + * 判断是否采用优化整体查询方式,即批量查询有效数据应占50%以上,并且duration应为1 + * + * @author hx + * @return + */ + private boolean checkSortedCells(List cells) { + if (cells.size() <= 1) + return false; + if (cells.get(0).getDuration() != 1) + return false; + int mincount = cells.get(0).getStarttime(); + int maxcount = cells.get(0).getStarttime() + cells.get(0).getDuration(); + int numcount = cells.get(0).getDuration(); + for (int i = 1; i < cells.size(); i++) { + if (cells.get(i).getStarttime() < mincount) + mincount = cells.get(i).getStarttime(); + if (cells.get(i).getStarttime() + cells.get(i).getDuration() > maxcount) + maxcount = cells.get(i).getStarttime() + cells.get(i).getDuration(); + numcount += cells.get(i).getDuration(); + } + if (numcount * 2 < (maxcount - mincount)) + return false; + else + return true; + } + + /** + * 通过批量查询,获取Cell的值 + * + * @author hx + * @return + */ + private void getSortedValue(List cells, String dateTime) { + int mincount = cells.get(0).getStarttime(); + int maxcount = cells.get(0).getStarttime() + cells.get(0).getDuration(); + for (int i = 1; i < cells.size(); i++) { + if (cells.get(i).getStarttime() < mincount) + mincount = cells.get(i).getStarttime(); + if (cells.get(i).getStarttime() + cells.get(i).getDuration() > maxcount) + maxcount = cells.get(i).getStarttime() + cells.get(i).getDuration(); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date date = sdf.parse(dateTime); + Calendar calendarStart = Calendar.getInstance(); + Calendar calendarEnd = Calendar.getInstance(); + calendarStart.setTime(date); + calendarEnd.setTime(date); + + if ("HourData".equals(cells.get(0).getDateTimeType())) { + calendarStart.set(Calendar.HOUR_OF_DAY, mincount); + calendarEnd.set(Calendar.HOUR_OF_DAY, maxcount - 1); + List> queryResult = statisticsService.queryRingData(cells.get(0).getRealid(), + calendarStart.getTime(), calendarEnd.getTime(), + HisDataUtil.getIntStatisticsType(cells.get(0).getDataquerytype()), 0); + if (queryResult != null) { + for (int i = 0; i < cells.size(); i++) { + double val = getResultValueHour(date, cells.get(i), queryResult); + cells.get(i).DBValue = val; + cells.get(i).DBSorted = true; + } + } + } else if ("DayData".equals(cells.get(0).getDateTimeType())) { + calendarStart.set(Calendar.DAY_OF_MONTH, mincount); + calendarEnd.set(Calendar.DAY_OF_MONTH, maxcount - 1); + List> queryResult = statisticsService.queryRingData(cells.get(0).getRealid(), + calendarStart.getTime(), calendarEnd.getTime(), + HisDataUtil.getIntStatisticsType(cells.get(0).getDataquerytype()), 1); + if (queryResult != null) { + for (int i = 0; i < cells.size(); i++) { + double val = getResultValueDay(date, cells.get(i), queryResult); + cells.get(i).DBValue = val; + cells.get(i).DBSorted = true; + } + } + } else if ("MonthData".equals(cells.get(0).getDateTimeType())) { + calendarStart.set(Calendar.DAY_OF_MONTH, 1); + calendarStart.set(Calendar.MONTH, mincount - 1); // 月份calendar从0起,输入从1起,要再多减1 + calendarEnd.set(Calendar.DAY_OF_MONTH, 1); + calendarEnd.set(Calendar.MONTH, maxcount - 2); + List> queryResult = statisticsService.queryRingData(cells.get(0).getRealid(), + calendarStart.getTime(), calendarEnd.getTime(), + HisDataUtil.getIntStatisticsType(cells.get(0).getDataquerytype()), 2); + if (queryResult != null) { + for (int i = 0; i < cells.size(); i++) { + double val = getResultValueMonth(date, cells.get(i), queryResult); + cells.get(i).DBValue = val; + cells.get(i).DBSorted = true; + } + } + } else if ("YearData".equals(cells.get(0).getDateTimeType())) { + // 此处应不可能 + } else { + // 此处应不可能 + } + + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private double getResultValueHour(Date baseTime, Cell cell, List> queryResult) { + // 先获取目标时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH"); + Calendar calendarStart = Calendar.getInstance(); + calendarStart.setTime(baseTime); + calendarStart.set(Calendar.HOUR_OF_DAY, cell.getStarttime()); + double total = 0; + for (int i = 0; i <= cell.getDuration() - 1; i++) { + String time = sdf2.format(calendarStart.getTime()); + total += getTimeValue(time, queryResult); + calendarStart.add(Calendar.HOUR_OF_DAY, 1); + } + return total; + } + + private double getResultValueDay(Date baseTime, Cell cell, List> queryResult) { + // 先获取目标时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendarStart = Calendar.getInstance(); + calendarStart.setTime(baseTime); + calendarStart.set(Calendar.DAY_OF_MONTH, cell.getStarttime()); + double total = 0; + for (int i = 0; i <= cell.getDuration() - 1; i++) { + String time = sdf2.format(calendarStart.getTime()); + total += getTimeValue(time, queryResult); + calendarStart.add(Calendar.DAY_OF_MONTH, 1); + } + return total; + } + + private double getResultValueMonth(Date baseTime, Cell cell, List> queryResult) { + // 先获取目标时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM"); + Calendar calendarStart = Calendar.getInstance(); + calendarStart.setTime(baseTime); + calendarStart.set(Calendar.DAY_OF_MONTH, 1); // 为了避免1月31日+1个月可能带来的错误,将日期设为1日 + calendarStart.set(Calendar.MONTH, cell.getStarttime() - 1); + double total = 0; + for (int i = 0; i <= cell.getDuration() - 1; i++) { + String time = sdf2.format(calendarStart.getTime()); + total += getTimeValue(time, queryResult); + calendarStart.add(Calendar.MONTH, 1); + } + return total; + } + + private double getTimeValue(String time, List> queryResult) { + for (int i = 0; i < queryResult.size(); i++) { + if (time.equals(queryResult.get(i).get(0))) { + return Double.parseDouble(queryResult.get(i).get(1)); + } + } + return 0; + } + + public List getSoeByNumber(int index) throws DocumentException { + List soes = hisDataMapper.GetSoeByNumber(index); + for (int i = 0; i < soes.size(); i++) { + HisDataSoe soe = soes.get(i); + parseSoe(soe); + } + return soes; + } + + /** + * + * @author ypj + * @param id + * @param soeNumber + * @param isNew + * 真为大于id + * @return + */ + public List getSoeCloseToId(String id, String soeNumber, boolean isNew) { + if (null == soeNumber || "".equals(soeNumber)) { + soeNumber = defaultSoeNumber; + } + List soes = hisDataMapper.getSoeCloseToId(id, soeNumber, isNew); + for (int i = 0; i < soes.size(); i++) { + HisDataSoe soe = soes.get(i); + parseSoe(soe); + } + return soes; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataServiceHBase.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataServiceHBase.java new file mode 100644 index 0000000..0ed13f3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/HisDataServiceHBase.java @@ -0,0 +1,1194 @@ +package org.springblade.hz3000_real_data.history.service; + +import com.google.common.base.Strings; +import org.springblade.hz3000_real_data.history.entity.*; +import org.springblade.hz3000_real_data.fac.entity.BasePoint; +import org.springblade.hz3000_real_data.fac.entity.DataGroup; +import org.springblade.hz3000_real_data.fac.entity.SoePoint; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.*; +import org.apache.hadoop.hbase.client.coprocessor.AggregationClient; +import org.apache.hadoop.hbase.client.coprocessor.DoubleColumnInterpreter; +import org.apache.hadoop.hbase.filter.*; +import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Job; +import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; +import org.springframework.stereotype.Service; + +import java.io.*; +import java.math.BigInteger; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class HisDataServiceHBase { + public String DATATABLENAME = "tycyx_five"; + public String SOETABLENAME = "tsoe"; + + /** + * 获取多点环比统计数据,由于mr环境初始化耗时,一般至少20秒一次 + * + * @param beginstr + * 起始时间包含,字符串的所有部分有效,例如2018-05-17 00:00:00 + * @param endstr + * 结束时间包含,字符串的所有部分有效,例如2018-05-19 23:59:59 + * @param compareTime + * 要对比的时间,例如15,若diffQueryType为Hour则代表对比15时 + * @param staisticstype + * 统计类型,整点值(IntVal)只对小时(Hour)才有效 + * @param diffQueryType + * 统计区间,年(Year)无效,例如Hour,则输入字符串时分秒值无效 + * @return 例如
+ * '2018-05-17 15','100.00'
+ * '2018-05-18 15','120.00'
+ * '2018-05-19 15','130.00' + */ + public Map>> QueryDiffDatas(String beginstr, String endstr, int compareTime, long[] ycids, + StatisticsType staisticstype, EnGroupByDateTime diffQueryType) { + byte[] BT_YC = "yc".getBytes(); + Map>> ret = new HashMap>>(); + Map> ycret = new HashMap>(); + try { + Scan scan = new Scan(); + for (long yc : ycids) + scan.addColumn(BT_YC, Bytes.toBytes(yc)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator(endstr.getBytes())); + RegexStringComparator regcomp = null; + switch (diffQueryType) { + case Hour: + regcomp = new RegexStringComparator(".{11}" + String.format("%02d", compareTime) + ".{6}"); + break; + case Day: + regcomp = new RegexStringComparator(".{8}" + String.format("%02d", compareTime) + ".{9}"); + break; + case Month: + regcomp = new RegexStringComparator(".{5}" + String.format("%02d", compareTime) + ".{12}"); + break; + default: + System.out.println("warning: error use of QueryRingDatas"); + } + RowFilter regFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, regcomp); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + filterList.addFilter(regFilter); + scan.setFilter(filterList); + String jobname = UUID.randomUUID().toString(); + Configuration conf = getConfiguration(); + Job job = Job.getInstance(conf); + job.setJobName(jobname); + switch (diffQueryType) { + case Hour: + if (staisticstype != StatisticsType.IntVal) + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperHour.class, Text.class, + DoubleWritable.class, job, false); + else + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperFirst.class, Text.class, + Text.class, job, false); + break; + case Day: + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperDay.class, Text.class, + DoubleWritable.class, job, false); + break; + case Month: + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperMonth.class, Text.class, + DoubleWritable.class, job, false); + break; + default: + System.out.println("warning: error use of QueryRingDatas"); + } + switch (staisticstype) { + case IntVal: + job.setReducerClass(ReducerFirst.class); + break; + case MaxVal: + job.setReducerClass(ReducerMax.class); + break; + case MinVal: + job.setReducerClass(ReducerMin.class); + break; + case AvgVal: + job.setReducerClass(ReducerAvg.class); + break; + case SumVal: + job.setReducerClass(ReducerSum.class); + break; + case ChangeVal: + job.setReducerClass(ReducerChange.class); + break; + default: + System.out.println("warning: error use of QueryRingDatas"); + } + job.setOutputKeyClass(Text.class); + job.setOutputValueClass(DoubleWritable.class); + FileOutputFormat.setOutputPath(job, new Path(jobname + ".MRDATA")); + job.waitForCompletion(true); + enumFile(jobname + ".MRDATA", ycret); + for (Long key : ycret.keySet()) { + List> tmp = new ArrayList>(); + ret.put(key, tmp); + Map tmpdata = ycret.get(key); + for (String k : tmpdata.keySet()) { + List cell = new ArrayList(); + cell.add(k); + cell.add(Double.toString(tmpdata.get(k))); + tmp.add(cell); + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ret; + } + + /** + * 获取多点同比统计数据,由于mr环境初始化耗时,一般至少20秒一次 + * + * @param beginstr + * 起始时间包含,字符串的所有部分有效,例如2018-05-17 00:00:00 + * @param endstr + * 结束时间包含,字符串的所有部分有效,例如2018-05-19 23:59:59 + * @param staisticstype + * 统计类型,整点值(IntVal)只对小时(Hour)才有效 + * @param ringQueryType + * 统计区间,例如Day,则输入字符串时分秒值无效 + * @return 例如
+ * '2018-05-17','100.00'
+ * '2018-05-18','120.00'
+ * '2018-05-19','130.00' + */ + public Map>> QueryRingDatas(String beginstr, String endstr, long[] ycids, + StatisticsType staisticstype, EnGroupByDateTime ringQueryType) { + byte[] BT_YC = "yc".getBytes(); + Map>> ret = new HashMap>>(); + Map> ycret = new HashMap>(); + try { + Scan scan = new Scan(); + for (long yc : ycids) + scan.addColumn(BT_YC, Bytes.toBytes(yc)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator(endstr.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + String jobname = UUID.randomUUID().toString(); + Configuration conf = getConfiguration(); + Job job = Job.getInstance(conf); + job.setJobName(jobname); + switch (ringQueryType) { + case Hour: + if (staisticstype != StatisticsType.IntVal) + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperHour.class, Text.class, + DoubleWritable.class, job, false); + else + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperFirst.class, Text.class, + Text.class, job, false); + break; + case Day: + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperDay.class, Text.class, + DoubleWritable.class, job, false); + break; + case Month: + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperMonth.class, Text.class, + DoubleWritable.class, job, false); + break; + case Year: + TableMapReduceUtil.initTableMapperJob(DATATABLENAME, scan, MapperYear.class, Text.class, + DoubleWritable.class, job, false); + break; + default: + System.out.println("warning: error use of QueryRingDatas"); + } + switch (staisticstype) { + case IntVal: + job.setReducerClass(ReducerFirst.class); + break; + case MaxVal: + job.setReducerClass(ReducerMax.class); + break; + case MinVal: + job.setReducerClass(ReducerMin.class); + break; + case AvgVal: + job.setReducerClass(ReducerAvg.class); + break; + case SumVal: + job.setReducerClass(ReducerSum.class); + break; + case ChangeVal: + job.setReducerClass(ReducerChange.class); + break; + default: + System.out.println("warning: error use of QueryRingDatas"); + } + job.setOutputKeyClass(Text.class); + job.setOutputValueClass(DoubleWritable.class); + FileOutputFormat.setOutputPath(job, new Path(jobname + ".MRDATA")); + job.waitForCompletion(true); + enumFile(jobname + ".MRDATA", ycret); + for (Long key : ycret.keySet()) { + List> tmp = new ArrayList>(); + ret.put(key, tmp); + Map tmpdata = ycret.get(key); + for (String k : tmpdata.keySet()) { + List cell = new ArrayList(); + cell.add(k); + cell.add(Double.toString(tmpdata.get(k))); + tmp.add(cell); + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ret; + } + + private void enumFile(String path, Map> data) { + File file = new File(path); + File[] tempList = file.listFiles(); + for (File f : tempList) { + if (f.getName().endsWith(".crc")) { + } else if (f.isDirectory()) { + } else if (f.getName().startsWith("part-")) + readFile(f, data); + f.delete(); + } + file.delete(); + } + + private void readFile(File file, Map> data) { + InputStreamReader reader = null; + BufferedReader br = null; + try { + reader = new InputStreamReader(new FileInputStream(file)); + br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言 + String line = br.readLine(); + while (!Strings.isNullOrEmpty(line)) { + String[] keyvalue = line.split("\\|"); + String[] values = keyvalue[1].split("\t"); + long ycid = Long.parseLong(values[0]); + double val = Double.parseDouble(values[1]); + if (data.containsKey(ycid)) { + if (!data.get(ycid).containsKey(keyvalue[0])) { + data.get(ycid).put(keyvalue[0], val); + } + } else { + data.put(ycid, new TreeMap()); + data.get(ycid).put(keyvalue[0], val); + } + line = br.readLine(); // 一次读入一行数据 + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (br != null) + try { + br.close(); + } catch (Exception e) { + e.printStackTrace(); + } + if (reader != null) + try { + reader.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + /** + * 获取历史遥测查询整点数据,返回数据行数多时效率低 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,分秒值无效 + * @param endstr + * 结束时间包含,例如2018-05-17 02:03:33,分秒值无效 + * @param staisticstype + * 平均值(AvgVal)不准确 + * @return 例如
+ * '2018-05-17 00','100.00'
+ * '2018-05-17 01','120.00'
+ * '2018-05-17 02','130.00' + */ + @Deprecated + public List> QueryRingDataHour(String beginstr, String endstr, long ycid, + StatisticsType staisticstype) { + if (staisticstype == StatisticsType.IntVal) { + SimpleDateFormat FORMAT_OUT = new SimpleDateFormat("yyyy-MM-dd HH"); + List> ret = new ArrayList>(); + List ycs = ReadYcHourPage(beginstr, endstr, ycid, 0, -1); + for (HisDataYc yc : ycs) { + List tmp = new ArrayList(); + tmp.add(FORMAT_OUT.format(yc.getDatatime())); + tmp.add(Double.toString(yc.getVal())); + ret.add(tmp); + } + return ret; + } + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List> ycret = new ArrayList>(); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + Table htable = openTable(DATATABLENAME); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.HOUR_OF_DAY, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + double val = getCalcValue(htable, scan, staisticstype); + List tmp = new ArrayList(); + tmp.add(strbegin.substring(0, 13)); + tmp.add(Double.toString(val)); + ycret.add(tmp); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ycret; + } + + /** + * 获取历史遥测查询整日数据,返回数据行数多时效率低 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,时分秒值无效 + * @param endstr + * 结束时间包含,例如2018-05-19 02:03:33,时分秒值无效 + * @param staisticstype + * 平均值(AvgVal)不准确 + * @return 例如
+ * '2018-05-17','100.00'
+ * '2018-05-18','120.00'
+ * '2018-05-19','130.00' + */ + @Deprecated + public List> QueryRingDataDay(String beginstr, String endstr, long ycid, + StatisticsType staisticstype) { + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List> ycret = new ArrayList>(); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + Table htable = openTable(DATATABLENAME); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.DAY_OF_YEAR, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + double val = getCalcValue(htable, scan, staisticstype); + List tmp = new ArrayList(); + tmp.add(strbegin.substring(0, 10)); + tmp.add(Double.toString(val)); + ycret.add(tmp); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ycret; + } + + /** + * 获取历史遥测查询整日数据,返回数据行数多时效率低 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,日时分秒值无效 + * @param endstr + * 结束时间包含,例如2018-07-19 02:03:33,日时分秒值无效 + * @param staisticstype + * 平均值(AvgVal)不准确 + * @return 例如
+ * '2018-05','100.00'
+ * '2018-06','120.00'
+ * '2018-07','130.00' + */ + @Deprecated + public List> QueryRingDataMonth(String beginstr, String endstr, long ycid, + StatisticsType staisticstype) { + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List> ycret = new ArrayList>(); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + Table htable = openTable(DATATABLENAME); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.MONTH, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + double val = getCalcValue(htable, scan, staisticstype); + List tmp = new ArrayList(); + tmp.add(strbegin.substring(0, 7)); + tmp.add(Double.toString(val)); + ycret.add(tmp); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ycret; + } + + /** + * 获取历史遥测查询整日数据,返回数据行数多时效率低 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,月日时分秒值无效 + * @param endstr + * 结束时间包含,例如2020-07-19 02:03:33,月日时分秒值无效 + * @param staisticstype + * 平均值(AvgVal)不准确 + * @return 例如
+ * '2018','100.00'
+ * '2019','120.00'
+ * '2020','130.00' + */ + @Deprecated + public List> QueryRingDataYear(String beginstr, String endstr, long ycid, + StatisticsType staisticstype) { + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List> ycret = new ArrayList>(); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + Table htable = openTable(DATATABLENAME); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.YEAR, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + double val = getCalcValue(htable, scan, staisticstype); + List tmp = new ArrayList(); + tmp.add(strbegin.substring(0, 4)); + tmp.add(Double.toString(val)); + ycret.add(tmp); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ycret; + } + + /** + * 历史告警查询,目前未完全实现 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33 + * @param endstr + * 结束时间包含 + * @param facId + * 只查询指定的组,-1为所有,不为-1则指定厂,此时groupId必须为-1 + * @param groupId + * 只查询指定的组,-1为所有,不为-1则指定组,此时facId无效 + * @param typeId + * soe类型,-1为所有 + * @param startIdx + * 从0起 + * @param dataCount + * 要读取的数量.设为-1则不限制 + * @return + */ + public List ReadSoeOriginPage(String beginstr, String endstr, String facId, String groupId, + String typeId, int startIdx, int dataCount) { + byte[] BT_D = "d".getBytes(); + byte[] BT_KIND = "kind".getBytes(); + List soeret = new ArrayList(); + + Scan scan = new Scan(); + scan.addFamily(BT_D); + // id转查询字符集 + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator((endstr + "!").getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + if (dataCount > 0) { + PageFilter pageFilter = new PageFilter(startIdx + dataCount); + filterList.addFilter(pageFilter); + } + // soe类型筛选 + if (!"-1".equals(typeId)) { + int index = Integer.parseInt(typeId); + String typeIds = mSelKind[index]; + FilterList typeFilterList = new FilterList(FilterList.Operator.MUST_PASS_ONE); + for (String v : typeIds.split(",")) { + int typ = Integer.parseInt(v); + SingleColumnValueFilter f = new SingleColumnValueFilter(BT_D, BT_KIND, CompareFilter.CompareOp.EQUAL, + Bytes.toBytes(typ)); + typeFilterList.addFilter(f); + } + filterList.addFilter(typeFilterList); + } + // soeID筛选 + if ((!"-1".equals(groupId)) || (!"-1".equals(facId))) { + List groups = new ArrayList(); + if (!"-1".equals(groupId)) { + DataGroup tar = FacInfoFactory.getInstance().getGroupByIdEx(groupId); + if (tar != null) + groups.add(tar); + else + return new ArrayList(); + } else if (!"-1".equals(facId)) { + groups = FacInfoFactory.getInstance().getGroupByFactoryIdEx(facId); + if (groups == null || groups.size() == 0) + return new ArrayList(); + } + FilterList idFilterList = new FilterList(FilterList.Operator.MUST_PASS_ONE); + for (DataGroup grp : groups) { + BigInteger bi = new BigInteger(grp.getId()); + SingleColumnValueFilter f = new SingleColumnValueFilter(BT_D, BT_KIND, CompareFilter.CompareOp.EQUAL, + Bytes.toBytes(bi.longValue())); + idFilterList.addFilter(f); + } + filterList.addFilter(idFilterList); + } + scan.setFilter(filterList); + // 开始查询 + Table htable = openTable(SOETABLENAME); + try { + ResultScanner rs = htable.getScanner(scan); + int soeid = 0; + int skipcount = startIdx; + int readcount = dataCount; + for (Result r : rs) { + soeid++; + skipcount--; + if (skipcount >= 0) + continue; + readcount--; + if (dataCount >= 0 && readcount < 0) + break; + HisDataSoe soe = parseToSoe(r, soeid); + soeret.add(soe); + } + } catch (IOException e) { + e.printStackTrace(); + } + return soeret; + } + + /** + * 分页读取整点数据 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,分秒值无效 + * @param endstr + * 结束时间包含 + * @param startIdx + * 从0起 + * @param dataCount + * 要读取的数量.设为-1则不限制 + * @return + */ + public List ReadYcHourPage(String beginstr, String endstr, long ycid, int startIdx, int dataCount) { + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List ycret = new ArrayList(); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + FilterList filterListTotal = new FilterList(FilterList.Operator.MUST_PASS_ONE); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.HOUR_OF_DAY, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + PageFilter wmf = new PageFilter(1); + + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + filterList.addFilter(wmf); + filterListTotal.addFilter(filterList); + scan.setFilter(filterListTotal); + } + Table htable = openTable(DATATABLENAME); + ResultScanner rs = htable.getScanner(scan); + + int skipcount = startIdx; + int readcount = dataCount; + for (Result r : rs) { + skipcount--; + if (skipcount >= 0) + continue; + readcount--; + if (dataCount >= 0 && readcount < 0) + break; + for (Cell kv : r.listCells()) { + // Long id = + // Bytes.toLong(kv.getQualifierArray(),kv.getQualifierOffset(),kv.getQualifierLength()); + HisDataYc yc = parseToYc(kv); + ycret.add(yc); + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return ycret; + } + + /** + * 获取整点数据总数量 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33,分秒值无效 + * @param endstr + * 结束时间包含 + * @return + */ + public int ReadYcHourCount(String beginstr, String endstr, long ycid) { + byte[] BT_YC = "yc".getBytes(); + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Scan scan = new Scan(); + int count = 0; + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + try { + Date dbegin = FORMAT_SECOND.parse(beginstr); + Date dend = FORMAT_SECOND.parse(endstr); + Calendar cbegin = Calendar.getInstance(); + cbegin.setTime(dbegin); + cbegin.set(Calendar.MINUTE, 0); + cbegin.set(Calendar.SECOND, 0); + cbegin.set(Calendar.MILLISECOND, 0); + Calendar cend = Calendar.getInstance(); + cend.setTime(dend); + cend.set(Calendar.MINUTE, 0); + cend.set(Calendar.SECOND, 0); + cend.set(Calendar.MILLISECOND, 0); + FilterList filterListTotal = new FilterList(FilterList.Operator.MUST_PASS_ONE); + while (cbegin.compareTo(cend) <= 0) { + String strbegin = FORMAT_SECOND.format(cbegin.getTime()); + cbegin.add(Calendar.HOUR_OF_DAY, 1); + String strend = FORMAT_SECOND.format(cbegin.getTime()); + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(strbegin.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS, + new BinaryComparator(strend.getBytes())); + PageFilter wmf = new PageFilter(1); + + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + filterList.addFilter(wmf); + filterListTotal.addFilter(filterList); + scan.setFilter(filterListTotal); + } + Table htable = openTable(DATATABLENAME); + ResultScanner rs = htable.getScanner(scan); + + for (Result r : rs) { + count++; + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return count; + } + + /** + * 分页读取原始数据 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33 + * @param endstr + * 结束时间包含 + * @param startIdx + * 从0起 + * @param dataCount + * 要读取的数量.设为-1则不限制 + * @param containsQ + * 是否包含无效数据 + * @return + */ + public List ReadYcOriginPage(String beginstr, String endstr, long ycid, int startIdx, int dataCount, + boolean containsQ) { + byte[] BT_YC = "yc".getBytes(); + byte[] BT_QC = "qc".getBytes(); + List ret = new ArrayList(); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + if (containsQ == true) { + scan.addColumn(BT_QC, Bytes.toBytes(ycid)); + } + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator(endstr.getBytes())); + if (dataCount > 0) { + PageFilter pageFilter = new PageFilter(startIdx + dataCount); + filterList.addFilter(pageFilter); + } + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + Table htable = openTable(DATATABLENAME); + try { + int skipcount = startIdx; + int readcount = dataCount; + ResultScanner rs = htable.getScanner(scan); + for (Result r : rs) { + skipcount--; + if (skipcount >= 0) + continue; + readcount--; + if (dataCount >= 0 && readcount < 0) + break; + for (Cell kv : r.listCells()) { + HisDataYc yc = parseToYc(kv); + ret.add(yc); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return ret; + } + + /** + * 获取原始数据总数量 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33 + * @param endstr + * 结束时间包含 + * @param containsQ + * 是否包含无效数据 + * @return + */ + public int ReadYcOriginCount(String beginstr, String endstr, long ycid, boolean containsQ) { + byte[] BT_YC = "yc".getBytes(); + byte[] BT_QC = "qc".getBytes(); + Scan scan = new Scan(); + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + if (containsQ == true) { + scan.addColumn(BT_QC, Bytes.toBytes(ycid)); + } + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator(endstr.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + Table htable = openTable(DATATABLENAME); + int count = 0; + try { + ResultScanner rs = htable.getScanner(scan); + for (Result r : rs) { + count++; + } + } catch (Exception e) { + e.printStackTrace(); + } + return count; + } + + /** + * 读取遥测原始数据,批量读取但不分页 + * + * @param beginstr + * 起始时间包含,例如2018-05-17 00:03:33 + * @param endstr + * 结束时间包含 + * @param containsQ + * 是否包含错误数据(即Q不为0的数据),一般只有查询yc原始数据列表时才需要返回包含Q的。 + * @return + */ + public Map> ReadYcOriginAll(String beginstr, String endstr, long[] YcIds, boolean containsQ) { + byte[] BT_YC = "yc".getBytes(); + byte[] BT_QC = "qc".getBytes(); + Map> ycret = new HashMap>(); + Scan scan = new Scan(); + for (long ycid : YcIds) { + scan.addColumn(BT_YC, Bytes.toBytes(ycid)); + if (containsQ == true) + scan.addColumn(BT_QC, Bytes.toBytes(ycid)); + } + FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); + RowFilter startFilter = new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL, + new BinaryComparator(beginstr.getBytes())); + RowFilter endFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, + new BinaryComparator(endstr.getBytes())); + filterList.addFilter(startFilter); + filterList.addFilter(endFilter); + scan.setFilter(filterList); + try { + Table htable = openTable(DATATABLENAME); + ResultScanner rs = htable.getScanner(scan); + + for (Result r : rs) { + for (Cell kv : r.listCells()) { + Long id = Bytes.toLong(kv.getQualifierArray(), kv.getQualifierOffset(), kv.getQualifierLength()); + List list; + if (!ycret.containsKey(id)) { + list = new ArrayList(); + ycret.put(id, list); + } else { + list = ycret.get(id); + } + HisDataYc yc = parseToYc(kv); + list.add(yc); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return ycret; + } + + private static String[][] mSoeType = { { "", "" }, { "分", "合" }, { "复归", "动作" }, { "闭锁", "允许" }, { "正常", "过低" }, + { "报警复归", "报警" }, { "断线恢复", "断线" }, { "恢复正常", "异常" }, { "复归", "错误" }, { "光隔短路", "光隔开路" }, { "短路", "开路" }, + { "异常恢复", "异常" }, { "失压恢复", "失压" }, { "定值正常", "定值错误" }, { "闭锁复归", "闭锁" }, { "复归", "输入" }, { "输入复归", "输入" }, + { "失败", "动作" } }; + private static String[] mSoeKind = { "默认", "系统", "报警", "事故", "操作", "遥测越限", "遥信变位", "注册信息", "信息提示", "设备巡检", "遥信变位", + "遥测越限", "遥测越限", "操作记录", "操作记录", "备用6", "备用7", "备用8", "未定义" }; + private static String[] mSelKind = { "0", "1", "2", "3", "4", "5,11,12", "6,10", "7", "8", "9", "13,14", "15,16,17", + "18" }; + + public enum StatisticsType { + IntVal, MaxVal, MinVal, AvgVal, SumVal, ChangeVal, IntAvg + } + + public enum EnGroupByDateTime { + Hour, Day, Month, Year + } + + private double getCalcValue(Table table, Scan scan, StatisticsType type) { + Configuration conf = getConfiguration(); + AggregationClient aggregationClient = new AggregationClient(conf); + DoubleColumnInterpreter columnInterpreter = new DoubleColumnInterpreter(); + double aggValue = Double.NaN; + try { + switch (type) { + case MaxVal: + aggValue = aggregationClient.max(table, columnInterpreter, scan); + break; + case MinVal: + aggValue = aggregationClient.min(table, columnInterpreter, scan); + break; + case AvgVal: + aggValue = aggregationClient.avg(table, columnInterpreter, scan); + break; + case SumVal: + aggValue = aggregationClient.sum(table, columnInterpreter, scan); + break; + case ChangeVal: + aggValue = aggregationClient.max(table, columnInterpreter, scan) + - aggregationClient.min(table, columnInterpreter, scan); + break; + case IntAvg: + aggValue = aggregationClient.rowCount(table, columnInterpreter, scan); + System.out.println("warning: error use of getCalcValue"); + break; + default: + System.out.println("warning: error use of getCalcValue"); + } + } catch (Throwable e) { + e.printStackTrace(); + } + return aggValue; + } + + private HisDataYc parseToYc(Cell kv) { + SimpleDateFormat FORMAT_SECOND = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + HisDataYc yc = new HisDataYc(); + String time = Bytes.toString(kv.getRowArray(), kv.getRowOffset(), kv.getRowLength()); + try { + yc.setDatatime(FORMAT_SECOND.parse(time)); + } catch (Exception e) { + e.printStackTrace(); + } + String fam = new String(kv.getFamilyArray(), kv.getFamilyOffset(), kv.getFamilyLength()); + if (fam.equals("yc")) { + yc.setVal(Bytes.toDouble(kv.getValueArray(), kv.getValueOffset())); + } else if (fam.equals("qc")) { + yc.setQ(Bytes.toInt(kv.getValueArray(), kv.getValueOffset())); + } + return yc; + } + + /** + * 打开一张表,会自行调用连接函数 + * + * @return + */ + private Table openTable(String tablename) { + TableName tableName = TableName.valueOf(tablename); + try { + Connection connection = connectHBase(); + return connection.getTable(tableName); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private Configuration getConfiguration() { + Configuration conf = HBaseConfiguration.create(); + conf.set("hbase.zookeeper.quorum", "master,slave1,slave2,slave3,slave4"); + conf.set("hbase.zookeeper.property.clientPort", "2181"); + return conf; + } + + /** + * 连接函数 + * + * @return + */ + private Connection connectHBase() { + Configuration conf = getConfiguration(); + try { + Connection connection = ConnectionFactory.createConnection(conf); + return connection; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private HisDataSoe parseToSoe(Result r, int soeid) { + HisDataSoe hds = new HisDataSoe(); + BigInteger ulongbase = new BigInteger("18446744073709551616"); + BigInteger zerobase = BigInteger.valueOf(0); + hds.setId(soeid); + for (Cell kv : r.listCells()) { + String fam = new String(kv.getQualifierArray(), kv.getQualifierOffset(), kv.getQualifierLength()); + if (fam.equals("id")) { + long v = Bytes.toLong(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength()); + BigInteger bi = BigInteger.valueOf(v); + if (bi.compareTo(zerobase) < 0) { + hds.setHzRealid(bi.add(ulongbase).toString()); + } else { + hds.setHzRealid(bi.toString()); + } + } else if (fam.equals("exp")) { + try { + hds.set_Explain(new String(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength(), "GBK")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } else if (fam.equals("kind")) { + hds.setSoeType(Bytes.toInt(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength())); + } else if (fam.equals("opv")) { + try { + hds.setOptionVals(new String(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength(), "GBK")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } else if (fam.equals("state")) { + hds.set_Status(Bytes.toInt(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength())); + } else if (fam.equals("time")) { + long time = Bytes.toLong(kv.getValueArray(), kv.getValueOffset(), kv.getValueLength()); + hds.setDatatime(new Date(time)); + } + } + parseSoe(hds); + return hds; + } + + private static void parseSoe(HisDataSoe soe) { + try { + BasePoint bp = null; + // 系统事件且ID为0,则是通讯中断/恢复事件,不读厂信息 + if (soe.getSoeType() != 1 && soe.getSoeType() != 14) { + bp = FacInfoFactory.getInstance().getDataPointDef(soe.getHzRealid()); + } + if (bp != null && bp.getDataType() != PointType.IsNull.getCode()) { + soe.factory = bp.getFactoryName(); + soe.group = bp.getGroupName(); + soe.pointname = bp.getName(); + soe.soetypename = mSoeKind[soe.getSoeType()]; + if (bp.getDataType() == PointType.IsSoe.getCode()) { + SoePoint sp = (SoePoint) bp; + parseSoeOptionvals(soe, sp); + if (!Strings.isNullOrEmpty(sp.getAlarmType())) { + int index = Integer.parseInt(sp.getAlarmType()); + soe.soestatusname = mSoeType[index][soe.get_Status()]; + } + } else if (bp.getDataType() == PointType.IsYx.getCode()) { + soe.soestatusname = mSoeType[1][soe.get_Status()]; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } else { + soe.soestatusname = ""; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } + } else { + soe.factory = ""; + soe.group = ""; + soe.pointname = ""; + soe.soestatusname = ""; + soe.soetypename = mSoeKind[soe.getSoeType()]; + SoePoint sp = new SoePoint(); + parseSoeOptionvals(soe, sp); + } + // RDS遥测越限(skback2上限,skback3上上限) + if (soe.getSoeType() == 11) { + if (soe.get_Status() == 0) + soe.soestatusname = "超下限"; + else + soe.soestatusname = "超上限"; + } else if (soe.getSoeType() == 12) { + if (soe.get_Status() == 0) + soe.soestatusname = "超下下限"; + else + soe.soestatusname = "超上上限"; + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void parseSoeOptionvals(HisDataSoe soe, SoePoint sp) { + if (soe.getOptionVals() == null || "".equals(soe.getOptionVals())) + return; + else { + String[] vals = soe.getOptionVals().split("\\|"); + String[] acts; + String[] units; + if (sp.getActionNameList() == null) + acts = new String[0]; + else + acts = sp.getActionNameList().split("▓"); + if (sp.getActionUnitList() == null) + units = new String[0]; + else + units = sp.getActionUnitList().split("▓"); + String ret = ""; + for (int i = 0; i < vals.length; i++) { + if (i >= 16) + break; + String tact = null; + String tval = null; + if (acts.length > i) + tact = acts[i]; + else + tact = "Action" + (i + 1); + if (vals.length > i) + tval = vals[i]; + ret += tact + ":" + tval; + if (units.length > i) + ret += units[i]; + if (i != vals.length - 1) + ret += "\n"; + } + soe.setOptionNums(vals.length); + soe.setOptionVals(ret); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/SoeHisDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/SoeHisDataService.java new file mode 100644 index 0000000..29b70ab --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/SoeHisDataService.java @@ -0,0 +1,81 @@ +package org.springblade.hz3000_real_data.history.service; + +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springblade.hz3000_real_data.fac.entity.BasePoint; +import org.springblade.hz3000_real_data.fac.entity.SoePoint; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.history.mapper.HisDataMapper; +import org.springblade.hz3000_real_data.history.entity.HisDataSoe; +import org.springblade.hz3000_real_data.history.utils.DateUtils; +import org.springblade.hz3000_real_data.history.vo.HisDataSoeVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @Author: liugang + * @Date: 2020/8/11 17:13 + */ +@Service +public class SoeHisDataService { + + @Autowired + HisDataMapper hisDataMapper; + + public List queryHisRecordIds(String datapoints, String querytype, String starttime, String endtime) { + List result = new ArrayList<>(); + List list = hisDataMapper.getSoe(starttime, endtime, null, null); + if (!CollectionUtils.isEmpty(list)) { + for (HisDataSoe hisDataSoe : list) { + HisDataSoeVo vo = new HisDataSoeVo(); + vo.set_explain(hisDataSoe.get_explain()); + vo.set_status(String.valueOf(hisDataSoe.get_status())); + vo.setDatatime(DateUtils.formatDate(hisDataSoe.getDatatime(), "yyyy-MM-dd HH:mm:ss.SSS")); + vo.setHzrealid(hisDataSoe.getHzrealid()); + //厂组点名称及动作设置 + BasePoint originalPoint = FacInfoFactory.getInstance().getDataPointDef(hisDataSoe.getHzrealid()); + if (Objects.nonNull(originalPoint)) { + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(originalPoint); + int pointType = (Integer)jsonObject.get("pointType"); + if (PointType.IsSoe.getCode() == pointType) { + SoePoint soePoint = (SoePoint) originalPoint; + vo.setSoeAlarmKind(soePoint.getAlarmType()); + } + vo.setFacName(originalPoint.getFactoryName()); + vo.setGpName(originalPoint.getGroupName()); + vo.setDataName(originalPoint.getName()); + } + vo.setOptiontitle_0(null); + vo.setOptionunit_0(null); + vo.setOptionvals(hisDataSoe.getOptionvals()); + vo.setSoetype(String.valueOf(hisDataSoe.getSoetype())); + result.add(objToJson(vo)); + } + } + return result; + } + + /** + * 对象转成json字符串 + * + * @param object + * @return + */ + public String objToJson(Object object) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(object); + } catch (JsonProcessingException e) { +// throw new HZException("500", "转化成json字符串失败"); + return ""; + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/YcHistoryDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/YcHistoryDataService.java new file mode 100644 index 0000000..cd87809 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/service/YcHistoryDataService.java @@ -0,0 +1,312 @@ +package org.springblade.hz3000_real_data.history.service; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springblade.hz3000_real_data.history.strategy.ComputeStrategy; +import org.springblade.hz3000_real_data.history.strategy.ComputeStrategyType; +import org.springblade.hz3000_real_data.history.vo.HistoryRequestParameter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.function.UnaryOperator; +import java.util.stream.Stream; + +import static java.util.stream.Collectors.*; + +import static org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter.DAY; +import static org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter.MONTH; +import static org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter.YEAR; +import static org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter.getInstance; + +@Service +public class YcHistoryDataService { + + private static final Logger logger = LoggerFactory.getLogger(YcHistoryDataService.class); + + private static final String TABLE_PREFIX = "tyc_"; + + @Autowired + private ApplicationContext context; + @Autowired + private ComputeStrategyMapper strategyMapper; + + /** + * 获取时间段[start, end]内所有realId相关的数据 + * @param realIds + * @param start + * @param end + * @return + */ + public Map> queryHisDateOfTimeRange(List realIds, String start, String end) { + List all = allList(realIds, start, end); + if (all.isEmpty()) { + return realIds.stream() + .collect(toMap(realId -> realId, e -> new ArrayList<>())); + } + Map> result = timeGrouping(all).values() + .stream() + .flatMap(list -> expansion(realIds, list)) + .collect(groupingBy(e -> e.getRealId())); + return result; + } + + private List allList(List realIds, String start, String end) { + Date startTime = StringTimeFormatter.SECOND.parse(start), + endTime = StringTimeFormatter.SECOND.parse(end); + + List all = new ArrayList<>(); + for (String realId : realIds) { + List list = new ArrayList<>(); + try { + list = strategyMapper.queryHisDateOfTimeRange(TABLE_PREFIX + realId, startTime, endTime); + } catch(Exception e) { + logger.error(e.getMessage()); + } + all.addAll(convert(realId, list)); + } + return all; + } + + private Map> timeGrouping(List all) { + return all.stream() + .sorted(dateComparator()) + .collect(groupingBy(e -> e.getDatatime(), + LinkedHashMap::new, toList())); + } + + private Comparator dateComparator() { + return (a, b) -> a.getDatatime().compareTo(b.getDatatime()); + } + + private Stream expansion(List realIds, List list) { + assert Objects.nonNull(list) && !list.isEmpty(); + assert Objects.nonNull(realIds); + + List notExist = new ArrayList<>(realIds); + for (HistoryRequestResult res : list) { + notExist.remove(res.getRealId()); + } + if (!notExist.isEmpty()) { + fill(list, notExist); + } + return list.stream(); + } + + private void fill(List list, List notExist) { + String dataTime = list.get(0).getDatatime(); + list.addAll(notExist.stream() + .map(realId -> new HistoryRequestResult(realId, dataTime)) + .collect(toList())); + } + + /** + * @throws NullPointerException 如果参数parameter为null + * @param parameter + * @return + */ + public Map> queryHisData(HistoryRequestParameter parameter) { + return new ComputeTemplate>(parameter) { + + private Set allSet; + + @Override + List compute(String realId, String tableName, Date startTime, Date endTime, + ComputeStrategyType strategyType, StringTimeFormatter timeGranularity) { + if (Objects.isNull(allSet)) { + allSet = vacancy(startTime, endTime, timeGranularity); + } + + Map dateValueMap = computEveryTime(tableName, startTime, endTime, + strategyType, timeGranularity) + .stream() + .collect(toMap(e -> e.getDatatime(), e -> e)); + List result = new ArrayList<>(allSet); + result.replaceAll(e -> Objects.nonNull(dateValueMap.get(e.getDatatime())) ? + dateValueMap.get(e.getDatatime()) : e); + return convert(realId, result); + } + + private List computEveryTime(String tableName, Date startTime, Date endTime, + ComputeStrategyType strategyType, StringTimeFormatter timeGranularity) { + ComputeStrategy strategy = context.getBean(strategyType.getStrategy()); + List dataList = new ArrayList<>(); + try { + dataList = strategy.computEveryTime(tableName, startTime, endTime, timeGranularity); + } catch (Exception e) { + logger.error(e.getMessage()); + } + return dataList; + } + + private Set vacancy(Date startTime, Date endTime, StringTimeFormatter timeGranularity) { + return Stream.iterate(startTime, operator(startTime, endTime, timeGranularity)) + .limit(interval(startTime, endTime, timeGranularity)) + .map(datatime -> { + HistoryRequestResult d = new HistoryRequestResult(); + d.setDatatime(timeGranularity.format(datatime)); + return d; + }) + .collect(toCollection(LinkedHashSet::new)); + } + + /** + * 判断时间是需要向前推还是向后推 + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + private UnaryOperator operator(Date startTime, Date endTime, + StringTimeFormatter timeGranularity) { + if (startTime.after(endTime)) { + return time -> timeGranularity.beforeOneUnit(time); + } + return time -> timeGranularity.afterOneUnit(time); + } + + /** + * 计算两个时间之间的单位差 + * @param startTime + * @param endTime + * @param timeGranularity + * @return + */ + private long interval(Date startTime, Date endTime, StringTimeFormatter timeGranularity) { + + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime start = LocalDateTime.ofInstant(startTime.toInstant(), zoneId); + LocalDateTime end = LocalDateTime.ofInstant(endTime.toInstant(), zoneId); + + if (start.isBefore(end)) { + return start.until(end, timeGranularity.getUnit()); + } + return end.until(start, timeGranularity.getUnit()); + } + + + }.queryHisDataCount(); + } + + /** + * @throws NullPointerException 如果参数parameter为null + * @param parameter + * @return + */ + public Map queryHisDataCount(HistoryRequestParameter parameter) { + return new ComputeTemplate(parameter) { + + @Override + Double compute(String realId, String tableName, Date startTime, Date endTime, + ComputeStrategyType strategyType, StringTimeFormatter timeGranularity) { + ComputeStrategy strategy = context.getBean(strategyType.getStrategy()); + try { + return strategy.computeTotalTime(tableName, startTime, endTime); + } catch (Exception e) { + logger.error(e.getMessage()); + return null; + } + } + + }.queryHisDataCount(); + } + + private static abstract class ComputeTemplate { + + private static final Set supportGranularity = EnumSet.of(YEAR, MONTH, DAY); + + private final HistoryRequestParameter parameter; + + private final StringTimeFormatter timeGranularity; + + private final List realIds; + + private final List typeCodes; + + private final Date startTime; + + private final Date endTime; + + public ComputeTemplate(HistoryRequestParameter parameter) { + this.parameter = parameter; + this.timeGranularity = decideTimeGranularity(parameter.getStrTime1(), parameter.getStrTime2()); + this.realIds = parameter.getRealIds(); + this.typeCodes = parameter.getStrStatisticType(); + this.startTime = startTime(parameter.getStrTime1()); + this.endTime = timeGranularity.afterOneUnit(endTime(parameter.getStrTime2())); + + if (!startTime.before(endTime)) { + throw new IllegalArgumentException("起始时间不能大于结束时间"); + } + } + + private Date endTime(String endDate) { + if (StringUtils.isBlank(endDate)) { + return this.startTime; + } + return timeGranularity.parse(endDate); + } + + private Date startTime(String startDate) { + if (StringUtils.isBlank(startDate)) { + startDate = timeGranularity.format(new Date()); + } + return timeGranularity.parse(startDate); + } + + public Map queryHisDataCount() { + Map result = new LinkedHashMap<>(parameter.getRealIds().size()); + for (int i = 0, size = realIds.size(); i < size; i++) { + Optional strategyType = ComputeStrategyType.getInstance(typeCodes.get(i)); + if (!strategyType.isPresent()) { + continue; + } + String realId = realIds.get(i); + String tableName = TABLE_PREFIX + realId; + + result.put(realId, compute(realId, tableName, + startTime, + endTime, + strategyType.get(), + timeGranularity.lessThan().get())); + + } + return result; + } + + abstract R compute(String realId, String tableName, Date startTime, Date endTime, + ComputeStrategyType strategyType, StringTimeFormatter timeGranularity); + + private StringTimeFormatter decideTimeGranularity(String startTime, String endTime) { + StringTimeFormatter result = null; + + Optional timeType = getInstance(startTime); + if (Objects.isNull(endTime) || endTime.isEmpty()) { + result = timeType.orElse(StringTimeFormatter.MONTH); + } else if(getInstance(endTime).equals(timeType)) { + result = timeType.get(); + } + if (Objects.nonNull(result) && + supportGranularity.contains(result)) { + return result; + } + throw new IllegalArgumentException("时间参数格式不匹配"); + } + } + + private List convert(String realId, Collection orginal) { + return orginal.stream() + .map(data -> { + data.setRealId(realId); + return data; + }) + .collect(toList()); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/AverageValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/AverageValueComputeStrategy.java new file mode 100644 index 0000000..ae22d8d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/AverageValueComputeStrategy.java @@ -0,0 +1,28 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class AverageValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception{ + return strategyMapper.averageComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception{ + return strategyMapper.averageComputeTotalTime(tableName, startTime, endTime); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ChangeValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ChangeValueComputeStrategy.java new file mode 100644 index 0000000..290aabd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ChangeValueComputeStrategy.java @@ -0,0 +1,28 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class ChangeValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception { + return strategyMapper.changeComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception { + return strategyMapper.changeComputeTotalTime(tableName, startTime, endTime); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategy.java new file mode 100644 index 0000000..82d228e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategy.java @@ -0,0 +1,30 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; + +import java.util.Date; +import java.util.List; + +public interface ComputeStrategy { + + /** + * 计算各个时间粒度的历史数据 + * 时间范围包含startTime, 但不包含endTime + * @param tableName + * @param startTime + * @param endTime + * @param timeGranularity 时间粒度 + * @return + */ + List computEveryTime(String tableName, Date startTime, Date endTime, StringTimeFormatter timeGranularity) throws Exception; + /** + * 计算整个时间的最终值 + * 时间范围包含startTime, 但不包含endTime + * @param tableName + * @param startTime + * @param endTime + * @return + */ + Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategyType.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategyType.java new file mode 100644 index 0000000..8916767 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/ComputeStrategyType.java @@ -0,0 +1,48 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public enum ComputeStrategyType { + + INT_VAL(0, "整点值", IntValueComputeStrategy.class), + MAX_VAL(1, "最大值", MaxValueComputeStrategy.class), + MIN_VAL(2, "最小值", MinValueComputeStrategy.class), + AVG_VAL(3, "平均值", AverageValueComputeStrategy.class), + SUM_VAL(4, "累计值", SumValueComputeStrategy.class), + CHANGE_VAL(5, "变化值", ChangeValueComputeStrategy.class); + + private static final Map map = + Stream.of(values()).collect(Collectors.toMap(ComputeStrategyType::getCode, t -> t)); + + private final int code; + + private final String description; + + private final Class strategy; + + private ComputeStrategyType(int code, String description, + Class strategy) { + this.code = code; + this.description = description; + this.strategy = strategy; + } + + public static Optional getInstance(Integer code) { + return Optional.ofNullable(map.get(code)); + } + + public int getCode() { + return code; + } + + public String getDescription() { + return description; + } + + public Class getStrategy() { + return strategy; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/IntValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/IntValueComputeStrategy.java new file mode 100644 index 0000000..9e68656 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/IntValueComputeStrategy.java @@ -0,0 +1,29 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class IntValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception { + return strategyMapper.integerComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception { + return strategyMapper.integerComputeTotalTime(tableName, startTime, endTime); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MaxValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MaxValueComputeStrategy.java new file mode 100644 index 0000000..8e0a2ba --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MaxValueComputeStrategy.java @@ -0,0 +1,30 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class MaxValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception { + return strategyMapper.maxComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception { + return strategyMapper.maxComputeTotalTime(tableName, startTime, endTime); + } + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MinValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MinValueComputeStrategy.java new file mode 100644 index 0000000..57e2985 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/MinValueComputeStrategy.java @@ -0,0 +1,27 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class MinValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception { + return strategyMapper.minComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception { + return strategyMapper.minComputeTotalTime(tableName, startTime, endTime); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/SumValueComputeStrategy.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/SumValueComputeStrategy.java new file mode 100644 index 0000000..856b581 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/strategy/SumValueComputeStrategy.java @@ -0,0 +1,29 @@ +package org.springblade.hz3000_real_data.history.strategy; + +import org.springblade.hz3000_real_data.history.mapper.ComputeStrategyMapper; +import org.springblade.hz3000_real_data.history.entity.HistoryRequestResult; +import org.springblade.hz3000_real_data.history.enumeration.StringTimeFormatter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class SumValueComputeStrategy implements ComputeStrategy { + @Autowired + private ComputeStrategyMapper strategyMapper; + + @Override + public List computEveryTime(String tableName, Date startTime, Date endTime, + StringTimeFormatter timeGranularity) throws Exception { + return strategyMapper.sumComputeEveryTime(tableName, startTime, endTime, timeGranularity); + } + + @Override + public Double computeTotalTime(String tableName, Date startTime, Date endTime) throws Exception { + return strategyMapper.sumComputeTotalTime(tableName, startTime, endTime); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/DateUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/DateUtils.java new file mode 100644 index 0000000..04dff0b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/DateUtils.java @@ -0,0 +1,102 @@ +package org.springblade.hz3000_real_data.history.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.text.ParseException; +import java.util.Date; + +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + private static String[] parsePatterns = new String[]{"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + public DateUtils() { + } + + public static String getDate() { + return getDate("yyyy-MM-dd"); + } + + public static String getDate(String pattern) { + return DateFormatUtils.format(new Date(), pattern); + } + + public static String formatDate(Date date, Object... pattern) { + String formatDate = null; + if (pattern != null && pattern.length > 0) { + formatDate = DateFormatUtils.format(date, pattern[0].toString()); + } else { + formatDate = DateFormatUtils.format(date, "yyyy-MM-dd"); + } + + return formatDate; + } + + public static String formatDateTime(Date date) { + return formatDate(date, "yyyy-MM-dd HH:mm:ss"); + } + + public static String getTime() { + return formatDate(new Date(), "HH:mm:ss"); + } + + public static String getDateTime() { + return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + } + + public static String getYear() { + return formatDate(new Date(), "yyyy"); + } + + public static String getMonth() { + return formatDate(new Date(), "MM"); + } + + public static String getDay() { + return formatDate(new Date(), "dd"); + } + + public static String getWeek() { + return formatDate(new Date(), "E"); + } + + public static Date parseDate(Object str) { + if (str == null) { + return null; + } else { + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException var2) { + return null; + } + } + } + + public static long pastDays(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 86400000L; + } + + public static long pastHour(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 3600000L; + } + + public static long pastMinutes(Date date) { + long t = (new Date()).getTime() - date.getTime(); + return t / 60000L; + } + + public static String formatDateTime(long timeMillis) { + long day = timeMillis / 86400000L; + long hour = timeMillis / 3600000L - day * 24L; + long min = timeMillis / 60000L - day * 24L * 60L - hour * 60L; + long s = timeMillis / 1000L - day * 24L * 60L * 60L - hour * 60L * 60L - min * 60L; + long sss = timeMillis - day * 24L * 60L * 60L * 1000L - hour * 60L * 60L * 1000L - min * 60L * 1000L - s * 1000L; + return (day > 0L ? day + "," : "") + hour + ":" + min + ":" + s + "." + sss; + } + + public static double getDistanceOfTwoDate(Date before, Date after) { + long beforeTime = before.getTime(); + long afterTime = after.getTime(); + return (double)((afterTime - beforeTime) / 86400000L); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataExportUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataExportUtils.java new file mode 100644 index 0000000..90a7fd5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataExportUtils.java @@ -0,0 +1,197 @@ +package org.springblade.hz3000_real_data.history.utils; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +public class HisDataExportUtils { + + public static void downloadEexcl(HttpServletResponse response, String fileName, Workbook workbook) + throws IOException { + response.addHeader("Content-disposition", + "attachment;filename=" + new String(fileName.getBytes("gbk"), "iso8859-1") + ".xls"); + // 定义输出类型 + response.setContentType("octets/stream;rset=UTF-8"); + // 创建输出对象 + ServletOutputStream out = response.getOutputStream(); + // 工作簿输出 + workbook.write(out); + // 关闭输出流 + out.close(); + } + + /** + * 去掉所有合并的单元格 + * + * @author ypj + * @param sheet + */ + public static void removeMergedRegion(Sheet sheet) { + int num = sheet.getNumMergedRegions(); + while (num > 0) { + sheet.removeMergedRegion(0); + num = sheet.getNumMergedRegions(); + } + } + + /** + * 自适应单元格 + * + * @author ypj + * @param sheet + * @param colNum + * @param value + * @param offset + */ + public static void adjustColumn(Sheet sheet, int colNum, String value, int offset) { + int columnWidth = sheet.getColumnWidth(colNum); + int valueWidth = value.getBytes().length * 256; + if (valueWidth > columnWidth) { + sheet.setColumnWidth(colNum, valueWidth + offset); + } + } + + /** + * 复制整行 + * + * @author ypj + * @param oldRow + * @param newRow + * @param startCol + * @param endCol + */ + @SuppressWarnings("deprecation") + public static void copyRow(Sheet sheet, Row oldRow, Row newRow) { + int startCol = oldRow.getFirstCellNum(); + int endCol = oldRow.getLastCellNum(); + if (startCol >= 0 && endCol >= 0) { + for (int i = startCol; i <= endCol; i++) { + Cell oldCell = oldRow.getCell(i); + Cell newCell = newRow.createCell(i); + if (null == oldCell) { + continue; + } + int type = oldCell.getCellType(); + newCell.setCellType(type); + switch (type) { + case Cell.CELL_TYPE_BLANK: + break; + case Cell.CELL_TYPE_STRING: + newCell.setCellValue(oldCell.getStringCellValue()); + break; + case Cell.CELL_TYPE_BOOLEAN: + newCell.setCellValue(oldCell.getBooleanCellValue()); + break; + case Cell.CELL_TYPE_NUMERIC: + newCell.setCellValue(oldCell.getNumericCellValue()); + break; + case Cell.CELL_TYPE_FORMULA: + newCell.setCellValue(oldCell.getCellFormula()); + break; + default: + newCell.setCellValue(oldCell.getStringCellValue()); + break; + } + newCell.setCellStyle(oldCell.getCellStyle()); + String value = oldCell.getStringCellValue(); + HisDataExportUtils.adjustColumn(sheet, i, value, 100); + oldCell.setCellValue(""); + oldCell.setCellType(Cell.CELL_TYPE_BLANK); + } + } + } + + /** + * 剪裁除去 + * + * @author ypj + * @param sheet + * @param rowNum + * @param columnNum + */ + public static void clipSheet(Sheet sheet, int rowNum, int columnNum) { + int rowTotal = sheet.getLastRowNum(); + while (rowNum < rowTotal) { + sheet.removeRow(sheet.getRow(rowNum + 1)); + rowTotal = sheet.getLastRowNum(); + } + + for (int i = 0; i <= rowTotal; i++) { + Row row = sheet.getRow(i); + int columnTotal = row.getLastCellNum(); + for (int j = columnNum + 1; j <= columnTotal; j++) { + Cell cell = row.getCell(j); + if (null != cell) { + row.removeCell(cell); + } + } + } + + } + + /** + * 修改表头 + * + * @author ypj + * @param sheet + * @param columNum + * @param time + */ + public static void editHead(Sheet sheet, int columNum, String time, String title,String unit) { + if (null != title) { + Row titleRow = sheet.getRow(0); + Cell titleCell = titleRow.getCell(0); + titleCell.setCellValue(title); + } + if(null != unit){ + Row titleRow = sheet.getRow(1); + Cell titleCell = titleRow.getCell(1); + titleCell.setCellValue(unit); + } + sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columNum)); + Row dateRow = sheet.getRow(1); + Cell dateCell = dateRow.getCell(0); + String dateStr = dateCell.getStringCellValue(); + dateStr += time; + dateCell.setCellValue(dateStr); + Cell unitCell = dateRow.getCell(1); + Cell newCell = dateRow.createCell(columNum - 1); + newCell.setCellStyle(unitCell.getCellStyle()); + newCell.setCellValue(unitCell.getStringCellValue()); + unitCell.setCellValue(""); + sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, columNum - 2)); + sheet.addMergedRegion(new CellRangeAddress(1, 1, columNum - 1, columNum)); + } + + /** + * 输入流存储到文件 + * + * @author ypj + * @param inputStream + * @param file + * @throws IOException + */ + public static void inputStreamToFile(InputStream inputStream, File file) throws IOException { + File parentDir = file.getParentFile(); + if (!parentDir.exists()) { + parentDir.mkdirs(); + } + file.createNewFile(); + BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file)); + BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); + + int len = -1; + byte[] bytes = new byte[1024]; + while ((len = bufferedInputStream.read(bytes)) != -1) { + outputStream.write(bytes, 0, len); + } + bufferedInputStream.close(); + outputStream.close(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataUtil.java new file mode 100644 index 0000000..b614a2a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/utils/HisDataUtil.java @@ -0,0 +1,170 @@ +package org.springblade.hz3000_real_data.history.utils; + +import org.springblade.hz3000_real_data.analysis.service.StatisticsService.EnGroupByDateTime; +import org.springblade.hz3000_real_data.analysis.service.StatisticsService.StatisticsType; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +public class HisDataUtil { + + /** + * 根据参数得到报表数据的开始时间 + * + * @author ypj + * @param date + * @param startTime + * @param timeUnit + * @return + */ + public static Date getSingleStartTime(String date, int startTime, String timeUnit, double offset) { + String startString = startTime >= 10 ? "" + startTime : "0" + startTime; + Date ret = new Date(); + switch (timeUnit.toLowerCase()) { + case "hourdata": + date = date.substring(0, 11) + startString + ":00:00"; + ret = DateUtils.parseDate(date); + break; + case "daydata": + date = date.substring(0, 8) + startString + " 00:00:00"; + ret = DateUtils.parseDate(date); + break; + case "monthdata": + date = date.substring(0, 5) + startString + "-01 00:00:00"; + ret = DateUtils.parseDate(date); + break; + case "yeardata": + date = startTime + "-01-01 00:00:00"; + ret = DateUtils.parseDate(date); + break; + } + Calendar cd = Calendar.getInstance(); + cd.setTime(ret); + cd.add(Calendar.MINUTE, (int)offset); + return cd.getTime(); + } + + /** + * 根据字符内容返回查询数据库的统计方式 + * + * @author ypj + * @param dataQueryType + * @return + */ + public static int getIntStatisticsType(String dataQueryType) { + switch (dataQueryType) { + case "IntVal": + return 0; + case "MaxVal": + return 1; + case "MinVal": + return 2; + case "AvgVal": + return 3; + case "SumVal": + return 4; + case "ChangeVal": + return 5; + default: + return 0; + + } + } + + /** + * 根据字符内容返回查询数据库的时间单位 + * + * @author ypj + * @param dateTimeType + * @return + */ + public static EnGroupByDateTime getEnGroupByDateTime(String dateTimeType) { + switch (dateTimeType) { + case "HourData": + return EnGroupByDateTime.Hour; + case "DayData": + return EnGroupByDateTime.Day; + case "MonthData": + return EnGroupByDateTime.Month; + case "YearData": + return EnGroupByDateTime.Year; + default: + return EnGroupByDateTime.Hour; + } + } + + /** + * 根据字符内容返回查询数据库的统计方式 + * + * @author ypj + * @param dataQueryType + * @return + */ + public static StatisticsType getStatisticsType(String dataQueryType) { + switch (dataQueryType) { + case "IntVal": + return StatisticsType.IntVal; + case "MaxVal": + return StatisticsType.MaxVal; + case "MinVal": + return StatisticsType.MinVal; + case "AvgVal": + return StatisticsType.AvgVal; + case "SumVal": + return StatisticsType.SumVal; + case "ChangeVal": + return StatisticsType.ChangeVal; + default: + return StatisticsType.IntVal; + + } + } + + /** + * 得到时间段内按单位分成的时间片 + * + * @author ypj + * @param start + * @param end + * @param timeType + * @return + */ + public static List GenerateTimePieceList(Date start, Date end, EnGroupByDateTime timeType) { + List list = new ArrayList(); + Calendar startCalendar = Calendar.getInstance(); + Calendar endCalendar = Calendar.getInstance(); + startCalendar.setTime(start); + endCalendar.setTime(end); + int calendarType; + String formatString; + switch (timeType) { + case Day: { + calendarType = Calendar.DAY_OF_YEAR; + formatString = "yyyy-MM-dd"; + } + break; + case Month: { + calendarType = Calendar.MONTH; + formatString = "yyyy-MM"; + } + break; + case Year: { + calendarType = Calendar.YEAR; + formatString = "yyyy"; + } + break; + default: + calendarType = Calendar.HOUR_OF_DAY; + formatString = "yyyy-MM-dd HH"; + break; + } + for (; startCalendar.compareTo(endCalendar) <= 0; startCalendar.add(calendarType, 1)) { + SimpleDateFormat sdf = new SimpleDateFormat(formatString); + list.add(sdf.format(startCalendar.getTime())); + } + return list; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HisDataSoeVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HisDataSoeVo.java new file mode 100644 index 0000000..6dc4491 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HisDataSoeVo.java @@ -0,0 +1,122 @@ +package org.springblade.hz3000_real_data.history.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * 报警历史数据返回 + * + * @Author; liugang + * @Date; 2020/8/12 9;06 + */ +public class HisDataSoeVo { + + private String _explain; + private String _status; + private String dataName; + private String datatime; + private String facName; + private String gpName; + private String hzrealid; + private String optiontitle_0; + private String optionunit_0; + private String optionvals; + private String soetype; + private String SoeAlarmKind; + + public String get_explain() { + return _explain; + } + + public void set_explain(String _explain) { + this._explain = _explain; + } + + public String get_status() { + return _status; + } + + public void set_status(String _status) { + this._status = _status; + } + + public String getDataName() { + return dataName; + } + + public void setDataName(String dataName) { + this.dataName = dataName; + } + + public String getDatatime() { + return datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } + + public String getFacName() { + return facName; + } + + public void setFacName(String facName) { + this.facName = facName; + } + + public String getGpName() { + return gpName; + } + + public void setGpName(String gpName) { + this.gpName = gpName; + } + + public String getHzrealid() { + return hzrealid; + } + + public void setHzrealid(String hzrealid) { + this.hzrealid = hzrealid; + } + + public String getOptiontitle_0() { + return optiontitle_0; + } + + public void setOptiontitle_0(String optiontitle_0) { + this.optiontitle_0 = optiontitle_0; + } + + public String getOptionunit_0() { + return optionunit_0; + } + + public void setOptionunit_0(String optionunit_0) { + this.optionunit_0 = optionunit_0; + } + + public String getOptionvals() { + return optionvals; + } + + public void setOptionvals(String optionvals) { + this.optionvals = optionvals; + } + + public String getSoetype() { + return soetype; + } + + public void setSoetype(String soetype) { + this.soetype = soetype; + } + + @JsonProperty("SoeAlarmKind") + public String getSoeAlarmKind() { + return SoeAlarmKind; + } + + public void setSoeAlarmKind(String soeAlarmKind) { + SoeAlarmKind = soeAlarmKind; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HistoryRequestParameter.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HistoryRequestParameter.java new file mode 100644 index 0000000..c8669aa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/history/vo/HistoryRequestParameter.java @@ -0,0 +1,54 @@ +package org.springblade.hz3000_real_data.history.vo; + +import javax.annotation.Nonnull; +import java.util.List; + +/** + * 获取历史数据请求的传入参数 + * @author zhang + * + */ +public class HistoryRequestParameter { + + @Nonnull + private List realIds; + + private String strTime1; + + private String strTime2; + + @Nonnull + private List strStatisticType; + + public String getStrTime1() { + return strTime1; + } + + public void setStrTime1(String strTime1) { + this.strTime1 = strTime1; + } + + public String getStrTime2() { + return strTime2; + } + + public void setStrTime2(String strTime2) { + this.strTime2 = strTime2; + } + + public List getRealIds() { + return realIds; + } + + public void setRealIds(List realIds) { + this.realIds = realIds; + } + + public List getStrStatisticType() { + return strStatisticType; + } + + public void setStrStatisticType(List strStatisticType) { + this.strStatisticType = strStatisticType; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevInfo_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevInfo_CS.java new file mode 100644 index 0000000..f54b035 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevInfo_CS.java @@ -0,0 +1,59 @@ +package org.springblade.hz3000_real_data.readdata.FivePrevention; + +import com.sun.jna.Structure; +import org.springblade.hz3000_real_data.readdata.ReadData.FivePrevInfo; + +import java.util.Calendar; + +public class FivePrevInfo_CS extends Structure { + public int ChannelIdx; + public int ModuleIdx; + public int DotIdx; + public int YkCommand; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + public double fpPara; + + public FivePrevInfo_CS() { + } + + public void getValue(FivePrevInfo fpInfo) { + this.ChannelIdx = fpInfo.ChannelIdx; + this.ModuleIdx = fpInfo.ModuleIdx; + this.DotIdx = fpInfo.DotIdx; + this.fpPara = (double)fpInfo.fpPara; + if (fpInfo.YkCommand != null) { + this.YkCommand = fpInfo.YkCommand.ordinal(); + } + + if (fpInfo.OpTime != null) { + Calendar cal = Calendar.getInstance(); + cal.setTime(fpInfo.OpTime); + this.Year = (short)cal.get(1); + this.Month = (byte)(cal.get(2) + 1); + this.Day = (byte)cal.get(5); + this.Dayofweak = (byte)cal.get(7); + this.Hour = (byte)cal.get(11); + this.Minute = (byte)cal.get(12); + this.Sec = (byte)cal.get(13); + this.MSecond = (short)cal.get(14); + } + + } + + public static class ByReference extends FivePrevInfo_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends FivePrevInfo_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_CS.java new file mode 100644 index 0000000..bacffb5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_CS.java @@ -0,0 +1,14 @@ +package org.springblade.hz3000_real_data.readdata.FivePrevention; + +import com.sun.jna.win32.StdCallLibrary; +import org.springblade.hz3000_real_data.readdata.FivePrevention.FivePrevInfo_CS.ByReference; + +public interface FivePrevention_CS extends StdCallLibrary { + int test(); + + int fpcheck_init(); + + int fpcheck_free(); + + int FivePrevCheck(ByReference var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_Linux.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_Linux.java new file mode 100644 index 0000000..b21c0c6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/FivePrevention/FivePrevention_Linux.java @@ -0,0 +1,15 @@ +package org.springblade.hz3000_real_data.readdata.FivePrevention; + + +import com.sun.jna.Library; +import org.springblade.hz3000_real_data.readdata.FivePrevention.FivePrevInfo_CS.ByReference; + +public interface FivePrevention_Linux extends Library { + int test(); + + int fpcheck_init(); + + int fpcheck_free(); + + int FivePrevCheck(ByReference var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ChannelInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ChannelInfo.java new file mode 100644 index 0000000..cc0d4b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ChannelInfo.java @@ -0,0 +1,19 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EChannelStatus; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EModuleStatus; + +public class ChannelInfo { + public long ChannelIdx; + public String ChannelName; + public EChannelStatus ChannelStatus; + public int ModuleCount; + public String[] ModuleName; + public EModuleStatus[] ModuleStatus; + public int[] ModuleEnable; + public String SrvName; + public String IpAddr; + + public ChannelInfo() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/FivePrevInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/FivePrevInfo.java new file mode 100644 index 0000000..2330bc2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/FivePrevInfo.java @@ -0,0 +1,15 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.Date; + +public class FivePrevInfo { + public int ChannelIdx; + public int ModuleIdx; + public int DotIdx; + public ReadDataTypes.EYkCommand YkCommand; + public Date OpTime; + public int fpPara; + + public FivePrevInfo() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadData.java new file mode 100644 index 0000000..cf93bcd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadData.java @@ -0,0 +1,501 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import com.alibaba.fastjson.JSON; +import com.sun.jna.Native; +import com.sun.jna.ptr.IntByReference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.readdata.FivePrevention.FivePrevInfo_CS; +import org.springblade.hz3000_real_data.readdata.FivePrevention.FivePrevention_CS; +import org.springblade.hz3000_real_data.readdata.FivePrevention.FivePrevention_Linux; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.*; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.ReadData_CS.*; +import org.springblade.hz3000_real_data.readdata.WriteData_CS.WriteData_CS; +import org.springblade.hz3000_real_data.readdata.WriteData_CS.WriteData_Linux; +import org.springblade.hz3000_real_data.readdata.entity.TeleContralValue; +import org.springblade.hz3000_real_data.readdata.entity.TelemeteringValue; +import org.springblade.hz3000_real_data.readdata.entity.Telesignalisition; +import org.springblade.hz3000_real_data.readdata.utils.RedisPoolUtil; +import org.springblade.hz3000_real_data.readdata.utils.YkGetReturnThread; +import org.springframework.beans.factory.annotation.Value; +import redis.clients.jedis.Jedis; +import org.springblade.hz3000_real_data.readdata.WriteData_CS.YcWValue_CS.ByReference; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.*; + +import java.io.UnsupportedEncodingException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; + +public class ReadData { + private static Callback_RevSoeFun_CS regsoe = new RevSoeFun_Realize(); + private static Callback_RevYkRetFun_CS regyk = new RevYkRetFun_Realize(); + public static ReadData Instance = new ReadData(); + private ReadData_CS ReadData_CS_Instance = null; + private WriteData_CS WriteData_CS_Instance = null; + private ReadData_Linux ReadData_Linux_Instance = null; + private WriteData_Linux WriteData_Linux_Instance = null; + private FivePrevention_CS FivePrevention_CS_Instance = null; + private FivePrevention_Linux FivePrevention_Linux_Instance = null; + private int EnvType = 0; + private boolean inited = false; + @Value("${expire.time}") + private String redisExpireTimeStr; + private int redisExpireTime = 15; + Logger logger = LoggerFactory.getLogger(this.getClass()); + + private ReadData() { + } + + public int TestDllFun() { + return 1; + } + + public boolean ReadData_Init(String dllpath, String readDataName, String writeDataName, String fivePreventionName) { + if (this.inited) { + return true; + } else { + if (readDataName.trim().toLowerCase().endsWith("so")) { + this.EnvType = 1; + } + + if (this.EnvType == 0) { + this.ReadData_CS_Instance = (ReadData_CS) Native.loadLibrary(dllpath + readDataName, ReadData_CS.class); + this.WriteData_CS_Instance = (WriteData_CS)Native.loadLibrary(dllpath + writeDataName, WriteData_CS.class); + this.FivePrevention_CS_Instance = (FivePrevention_CS)Native.loadLibrary(dllpath + fivePreventionName, FivePrevention_CS.class); + if (this.ReadData_CS_Instance != null && this.WriteData_CS_Instance != null && this.FivePrevention_CS_Instance != null) { + this.ReadData_CS_Instance.RegSoeRecFunc_CS(regsoe); + this.ReadData_CS_Instance.RegYkReturnFunc_CS(regyk); + this.ReadData_CS_Instance.ReadData_Init(); + this.FivePrevention_CS_Instance.fpcheck_init(); + this.inited = true; + return true; + } else { + return false; + } + } else { + this.ReadData_Linux_Instance = (ReadData_Linux)Native.loadLibrary(dllpath + readDataName, ReadData_Linux.class); + this.WriteData_Linux_Instance = (WriteData_Linux)Native.loadLibrary(dllpath + writeDataName, WriteData_Linux.class); + this.FivePrevention_Linux_Instance = (FivePrevention_Linux)Native.loadLibrary(dllpath + fivePreventionName, FivePrevention_Linux.class); + if (this.ReadData_Linux_Instance != null && this.WriteData_Linux_Instance != null && this.FivePrevention_Linux_Instance != null) { + this.ReadData_Linux_Instance.RegSoeRecFunc_CS(regsoe); + this.ReadData_Linux_Instance.RegYkReturnFunc_CS(regyk); + this.ReadData_Linux_Instance.ReadData_Init(); + this.FivePrevention_Linux_Instance.fpcheck_init(); + this.inited = true; + return true; + } else { + return false; + } + } + } + } + + public boolean RegistChannel(long channelIndex, String ChannelName, int moduleCount) { + byte[] channelname = new byte[256]; + byte[] copycbyte = ChannelName.getBytes(); + + for(int i = 0; i < copycbyte.length; ++i) { + channelname[i] = copycbyte[i]; + } + + byte[] modulename = new byte['耀']; + byte[] moduleEnable = new byte[128]; + + int ret; + for(ret = 0; ret < moduleCount; ++ret) { + moduleEnable[ret] = 1; + String a = "InfoModule" + (ret + 1); + byte[] copybyte = a.getBytes(); + + for(int j = 0; j < copybyte.length; ++j) { + modulename[ret * 256 + j] = copybyte[j]; + } + } + + + if (this.EnvType == 0) { + ret = this.WriteData_CS_Instance.RegChannelInfo_CS(channelIndex, channelname, moduleCount, modulename, moduleEnable); + } else { + ret = this.WriteData_Linux_Instance.RegChannelInfo_CS(channelIndex, channelname, moduleCount, modulename, moduleEnable); + } + + if (ret != 0) { + return true; + } else { + return false; + } + } + + public boolean WriteOneYc(long channelIndex, int moduleIndex, int pointIndex, double val, int q, Date time) { + ByReference yc = new ByReference(); + yc.fromValue(pointIndex, val, (short)q, time); + int ret; + if (this.EnvType == 0) { + ret = this.WriteData_CS_Instance.WriteOneYc(channelIndex, moduleIndex, yc); + } else { + ret = this.WriteData_Linux_Instance.WriteOneYc(channelIndex, moduleIndex, yc); + } + + return ret != 0; + } + + public boolean WriteOneYx(long channelIndex, int moduleIndex, int pointIndex, double val, int q, Date time) { + ByReference yx = new ByReference(); + yx.fromValue(pointIndex, val, (short)q, time); + int ret; + if (this.EnvType == 0) { + ret = this.WriteData_CS_Instance.WriteOneYx(channelIndex, moduleIndex, yx); + } else { + ret = this.WriteData_Linux_Instance.WriteOneYx(channelIndex, moduleIndex, yx); + } + + return ret != 0; + } + + public void ReadData_Destroy() { + if (this.EnvType == 0) { + this.ReadData_CS_Instance.ReadData_Destroy(); + } else { + this.ReadData_Linux_Instance.ReadData_Destroy(); + } + + } + + public boolean GetChannelInfo(long ChannelIdx, ChannelInfo chinfo) { + ChannelInfo_CS.ByReference chinfocs = new ChannelInfo_CS.ByReference(); + byte ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.GetChannelInfo_CS(ChannelIdx, chinfocs); + } else { + ret = this.ReadData_Linux_Instance.GetChannelInfo_CS(ChannelIdx, chinfocs); + } + + if (ret != 0) { + chinfocs.setValue(chinfo); + return true; + } else { + return false; + } + } + + public EReadDataRet ReadModulelYc(long ChannelIdx, int ModuleIndx, List Value) { + YcRValue_CS[] value_CS = (YcRValue_CS[])(new YcRValue_CS()).toArray(5000); + IntByReference yccount_CS = new IntByReference(); + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.ReadModuleYc_CS(ChannelIdx, ModuleIndx, yccount_CS, value_CS); + } else { + ret = this.ReadData_Linux_Instance.ReadModuleYc_CS(ChannelIdx, ModuleIndx, yccount_CS, value_CS); + } + + if (ret != 0) { + return EReadDataRet.rdFail; + } else { + Value.clear(); + int yccount = yccount_CS.getValue(); + + for(int j = 0; j < yccount; ++j) { + YcRValue tmp = new YcRValue(); + value_CS[j].setValue(tmp); + Value.add(tmp); + } + + return EReadDataRet.rdSuccess; + } + } + + public EReadDataRet ReadModulelYx(long ChannelIdx, int ModuleIndx, List Value) { + YxRValue_CS[] value_CS = (YxRValue_CS[])(new YxRValue_CS()).toArray(5000); + IntByReference yxcount_CS = new IntByReference(); + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.ReadModuleYx_CS(ChannelIdx, ModuleIndx, yxcount_CS, value_CS); + } else { + ret = this.ReadData_Linux_Instance.ReadModuleYx_CS(ChannelIdx, ModuleIndx, yxcount_CS, value_CS); + } + + if (ret != 0) { + return EReadDataRet.rdFail; + } else { + Value.clear(); + int yxcount = yxcount_CS.getValue(); + + for(int j = 0; j < yxcount; ++j) { + YxRValue tmp = new YxRValue(); + value_CS[j].setValue(tmp); + Value.add(tmp); + } + + return EReadDataRet.rdSuccess; + } + } + + public EReadDataRet ReadChannelYc(long ChannelIdx, List> Value) { + IntByReference modulecount_CS = new IntByReference(); + int[] yccount = new int[128]; + YcRValue_CS[] value_CS = (YcRValue_CS[])(new YcRValue_CS()).toArray(640000); + + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.ReadChannelYc_CS(ChannelIdx, modulecount_CS, yccount, value_CS); + } else { + ret = this.ReadData_Linux_Instance.ReadChannelYc_CS(ChannelIdx, modulecount_CS, yccount, value_CS); + } + + if (ret != 0) { + return EReadDataRet.rdFail; + } else { + Value.clear(); + int modulecount = modulecount_CS.getValue(); + + for(int i = 0; i < modulecount; ++i) { + Value.add(new ArrayList()); + + for(int j = 0; j < yccount[i]; ++j) { + YcRValue tmp = new YcRValue(); + value_CS[i * 5000 + j].setValue(tmp); + ((List)Value.get(i)).add(tmp); + } + } + + return EReadDataRet.rdSuccess; + } + } + + public EReadDataRet ReadChannelYx(long ChannelIdx, List> Value) { + IntByReference modulecount_CS = new IntByReference(); + int[] yxcount = new int[128]; + YxRValue_CS[] value_CS = (YxRValue_CS[])(new YxRValue_CS()).toArray(640000); + + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.ReadChannelYx_CS(ChannelIdx, modulecount_CS, yxcount, value_CS); + } else { + ret = this.ReadData_Linux_Instance.ReadChannelYx_CS(ChannelIdx, modulecount_CS, yxcount, value_CS); + } + + if (ret != 0) { + return EReadDataRet.rdFail; + } else { + Value.clear(); + int modulecount = modulecount_CS.getValue(); + + for(int i = 0; i < modulecount; ++i) { + Value.add(new ArrayList()); + + for(int j = 0; j < yxcount[i]; ++j) { + YxRValue tmp = new YxRValue(); + value_CS[i * 5000 + j].setValue(tmp); + ((List)Value.get(i)).add(tmp); + } + } + + return EReadDataRet.rdSuccess; + } + } + + public EReadDataRet ReadAnyDatasID(List YcID, List YcV, List YxID, List YxV, String stationId) { + this.logger.info("进入redis方法读取数据"); + this.logger.info("站点id:" + stationId); + EReadDataRet result = EReadDataRet.rdFail; + Jedis jedis = RedisPoolUtil.getConn(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + + try { + String id; + Iterator var10; + String valueStr; + Date date; + if (YcID != null) { + if (YcV == null) { + YcV = new ArrayList(); + } + + YcRValue returnValue; + for(var10 = YcID.iterator(); var10.hasNext(); ((List)YcV).add(returnValue)) { + id = (String)var10.next(); + returnValue = new YcRValue(); + valueStr = jedis.get("st" + stationId + ":yc:" + id); + if (valueStr != null && !valueStr.isEmpty()) { + TelemeteringValue value = (TelemeteringValue) JSON.parseObject(valueStr, TelemeteringValue.class); + date = sdf.parse(value.getDatatime()); + returnValue.Time = date; + returnValue.q = value.getQ(); + returnValue.Value = value.getVal(); + } + } + + result = EReadDataRet.rdSuccess; + } + + if (YxID != null) { + if (YxV == null) { + YxV = new ArrayList(); + } + + YxRValue returnValue; + for(var10 = YxID.iterator(); var10.hasNext(); ((List)YxV).add(returnValue)) { + id = (String)var10.next(); + returnValue = new YxRValue(); + valueStr = jedis.get("st" + stationId + ":yx:" + id); + if (valueStr != null && !valueStr.isEmpty()) { + Telesignalisition value = (Telesignalisition)JSON.parseObject(valueStr, Telesignalisition.class); + date = sdf.parse(value.getDatatime()); + returnValue.Time = date; + returnValue.q = value.getQ(); + returnValue.Value = value.getVal(); + } + } + + result = EReadDataRet.rdSuccess; + } + } catch (ParseException var18) { + this.logger.error("系统错误", var18); + var18.printStackTrace(); + } finally { + RedisPoolUtil.closeConn(); + } + + return result; + } + + public EReadDataRet ReadAnyDatasIDByDll(long[] YcID, List YcV, long[] YxID, List YxV) { + YcRValue_CS[] ycvalue_CS = null; + YxRValue_CS[] yxvalue_CS = null; + if (YcID == null) { + YcID = new long[0]; + ycvalue_CS = (YcRValue_CS[])(new YcRValue_CS()).toArray(1); + } else { + ycvalue_CS = (YcRValue_CS[])(new YcRValue_CS()).toArray(YcID.length); + } + + if (YxID == null) { + YxID = new long[0]; + yxvalue_CS = (YxRValue_CS[])(new YxRValue_CS()).toArray(1); + } else { + yxvalue_CS = (YxRValue_CS[])(new YxRValue_CS()).toArray(YxID.length); + } + + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.ReadAnyDatasID_CS(YcID, ycvalue_CS, YcID.length, YxID, yxvalue_CS, YxID.length); + } else { + ret = this.ReadData_Linux_Instance.ReadAnyDatasID_CS(YcID, ycvalue_CS, YcID.length, YxID, yxvalue_CS, YxID.length); + } + + if (ret != 0) { + return EReadDataRet.rdFail; + } else { + int modulecount = YcID.length; + int j; + if (modulecount > 0) { + YcV.clear(); + + for(j = 0; j < modulecount; ++j) { + YcRValue tmp = new YcRValue(); + ycvalue_CS[j].setValue(tmp); + YcV.add(tmp); + } + } + + modulecount = YxID.length; + if (modulecount > 0) { + YxV.clear(); + + for(j = 0; j < modulecount; ++j) { + YxRValue tmp = new YxRValue(); + yxvalue_CS[j].setValue(tmp); + YxV.add(tmp); + } + } + + return EReadDataRet.rdSuccess; + } + } + + public EYkRetStatus SendOrder(YkWValue YkV) { + this.logger.info("进入redis方法开始遥控"); + TeleContralValue value = new TeleContralValue(); + value.setValue(YkV); + String valueStr = JSON.toJSONString(value); + String key = "yk_" + YkV.ID + "_" + value.getYkindicate(); + Jedis jedis = RedisPoolUtil.getConn(); + jedis.set(key, valueStr); + if (this.redisExpireTimeStr != null && !this.redisExpireTimeStr.isEmpty()) { + this.redisExpireTime = Integer.parseInt(this.redisExpireTimeStr); + } + + jedis.expire(key, this.redisExpireTime); + this.logger.info("遥控参数内容:" + valueStr); + RedisPoolUtil.closeConn(); + YkGetReturnThread returnThread = new YkGetReturnThread(YkV, "ykret_" + YkV.ID + "_" + value.getYkindicate()); + returnThread.run(); + return EYkRetStatus.yrsSuccess; + } + + public EYkRetStatus SendOrderByDll(YkWValue YkV) { + System.out.println("sendorder:id :" + YkV.ID + ",type :" + YkV.YkCommand); + this.logger.info("sendorder:id :" + YkV.ID + ",type :" + YkV.YkCommand); + YkWValue_CS.ByReference yk = new YkWValue_CS.ByReference(); + yk.getValue(YkV); + + int ret; + if (this.EnvType == 0) { + ret = this.ReadData_CS_Instance.SendOrder_CS(yk); + } else { + ret = this.ReadData_Linux_Instance.SendOrder_CS(yk); + } + + if (ret == 0) { + yk.setValueIndicate(YkV); + return EYkRetStatus.yrsSuccess; + } else { + return EYkRetStatus.values()[ret]; + } + } + + public EFPReturn FivePrevCheck(FivePrevInfo fpinfo) { + FivePrevInfo_CS.ByReference fp = new FivePrevInfo_CS.ByReference(); + fp.getValue(fpinfo); + + int ret; + if (this.EnvType == 0) { + ret = this.FivePrevention_CS_Instance.FivePrevCheck(fp); + } else { + ret = this.FivePrevention_Linux_Instance.FivePrevCheck(fp); + } + + return EFPReturn.values()[ret]; + } + + public void AddRevSoeListener(RevSoeEventListener rsel) { + RevSoeFun_Realize.AddRevSoeListener(rsel); + } + + public void AddRevYkReturnEventListener(RevYkReturnEventListener ryrel) { + RevYkRetFun_Realize.AddRevYkReturnEventListener(ryrel); + } + + public static String Bytes2UTF8String(byte[] data) { + boolean findzero = false; + + for(int i = 0; i < data.length; ++i) { + if (findzero) { + data[i] = 0; + } else if (data[i] == 0) { + findzero = true; + } + } + + try { + return new String(data, "UTF-8"); + } catch (UnsupportedEncodingException var3) { + var3.printStackTrace(); + return ""; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadDataTypes.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadDataTypes.java new file mode 100644 index 0000000..44edfc6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/ReadDataTypes.java @@ -0,0 +1,159 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +public interface ReadDataTypes { + public static enum EChannelStatus { + csNone, + csNormal, + csBlock, + csReady, + csMain; + + private EChannelStatus() { + } + } + + public static enum EFPReturn { + efrConnectFail, + efrTimeOut, + efrInvalid, + efrLastCheckNotDone, + efrAllow, + efrForbid; + + private EFPReturn() { + } + } + + public static enum EInfoKind { + ikRelease, + ikDebug; + + private EInfoKind() { + } + } + + public static enum EModuleStatus { + msReady, + msNormal, + msBlock; + + private EModuleStatus() { + } + } + + public static enum EReadDataRet { + rdSuccess, + rdFail; + + private EReadDataRet() { + } + } + + public static enum ERegChannel { + rcOk, + rcFail, + rcParamError; + + private ERegChannel() { + } + } + + public static enum EServerStatus { + ssBlock, + ssNormal; + + private EServerStatus() { + } + } + + public static enum ESoeKind { + skNone, + skSys, + skAlarm, + skAct, + skOperate, + skYcOut, + skYxChange, + skReg, + skHint, + skInspect, + skRDSYxChange, + skRDSYcOutOfLimit, + skRDSYcOutOfLimit2, + skMonitorOperate, + skback5, + skback6, + skback7, + skback8, + skUnknown; + + private ESoeKind() { + } + } + + public static enum ESoeState { + soesOff, + soesOn; + + private ESoeState() { + } + } + + public static enum EWriteDataRet { + wdSuccess, + wdFail; + + private EWriteDataRet() { + } + } + + public static enum EYkCommand { + ykNone, + ykCommon, + ykCBreaker, + ykTime, + ykReset, + ykRevert, + ykAdjust, + ykReadCs, + ykWriteCs, + ykReadAreaIdx, + ykWriteAreaIdx, + ykReadDevInfo, + ykBroadcastTime, + ykGetDefine, + ykPreBroadcast, + ykCommand2, + ykCommand3, + ykCommand4, + ykCommand5, + ykCommand6, + ykCommand7, + ykCommand8, + ycCommand9, + ykCommand10; + + private EYkCommand() { + } + } + + public static enum EYkRetStatus { + yrsSuccess, + yrsServerErr, + yrsChannelErr, + yrsModuleErr, + yrsDeviceTimeOut, + yrsDeviceFail; + + private EYkRetStatus() { + } + } + + public static enum EYxTpye { + yxOneBit, + yxTwoBit; + + private EYxTpye() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/Rect.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/Rect.java new file mode 100644 index 0000000..42d5408 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/Rect.java @@ -0,0 +1,13 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import com.sun.jna.Structure; + +public class Rect extends Structure { + public int x; + public int y; + public int width; + public int height; + + public Rect() { + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEvent.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEvent.java new file mode 100644 index 0000000..fd42752 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEvent.java @@ -0,0 +1,16 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.EventObject; +import java.util.List; + +public class RevSoeEvent extends EventObject { + private static final long serialVersionUID = 1L; + public List Soe; + public Object source; + + public RevSoeEvent(Object source, List soe) { + super(source); + this.Soe = soe; + this.source = source; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEventListener.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEventListener.java new file mode 100644 index 0000000..598c4a3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevSoeEventListener.java @@ -0,0 +1,5 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +public interface RevSoeEventListener { + void fireRevSoeEvent(RevSoeEvent var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEvent.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEvent.java new file mode 100644 index 0000000..2e58043 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEvent.java @@ -0,0 +1,18 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.EventObject; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; + +public class RevYkReturnEvent extends EventObject { + private static final long serialVersionUID = -7500593681403295432L; + public YkWValue Ykv; + public EYkRetStatus Ykstatus; + public Object source; + + public RevYkReturnEvent(Object source, YkWValue ykv, EYkRetStatus ykstatus) { + super(source); + this.Ykv = ykv; + this.Ykstatus = ykstatus; + this.source = source; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEventListener.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEventListener.java new file mode 100644 index 0000000..8351560 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/RevYkReturnEventListener.java @@ -0,0 +1,6 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +public interface RevYkReturnEventListener { + void fireYkReturnEvent(RevYkReturnEvent var1); +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/SoeRValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/SoeRValue.java new file mode 100644 index 0000000..76daa2b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/SoeRValue.java @@ -0,0 +1,16 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.Date; + +public class SoeRValue { + public long ID; + public ReadDataTypes.ESoeKind Kind; + public ReadDataTypes.ESoeState State; + public Date ActTime; + public double[] OpValue; + public String Explain; + public String rid; + + public SoeRValue() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/User32.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/User32.java new file mode 100644 index 0000000..a1df433 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/User32.java @@ -0,0 +1,12 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import com.sun.jna.Native; +import com.sun.jna.win32.StdCallLibrary; + +public interface User32 extends StdCallLibrary { + User32 INSTANCE = (User32) Native.loadLibrary("User32", User32.class); + + int GetDesktopWindow(); + + int GetWindowRect(int var1, Rect var2); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YcRValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YcRValue.java new file mode 100644 index 0000000..5f2bc40 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YcRValue.java @@ -0,0 +1,14 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.Date; + +public class YcRValue { + public double Value; + public short q; + public Date Time; + public double OrignalValue; + public double LastValidValue; + + public YcRValue() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YkWValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YkWValue.java new file mode 100644 index 0000000..6447e1d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YkWValue.java @@ -0,0 +1,20 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.Date; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkCommand; + +public class YkWValue { + public long ID; + public long Channel; + public int Module; + public int Index; + public int ykIndicate; + public EYkCommand YkCommand; + public Date OpTime; + public double[] dblParam; + public byte[] charParam; + public String Operator; + + public YkWValue() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YxRValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YxRValue.java new file mode 100644 index 0000000..a8d9850 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/YxRValue.java @@ -0,0 +1,14 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +import java.util.Date; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYxTpye; + +public class YxRValue { + public EYxTpye YxType; + public byte Value; + public short q; + public Date Time; + + public YxRValue() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/showsoe.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/showsoe.java new file mode 100644 index 0000000..fbc2ae1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData/showsoe.java @@ -0,0 +1,9 @@ +package org.springblade.hz3000_real_data.readdata.ReadData; + +public class showsoe implements RevSoeEventListener { + showsoe() { + } + + public void fireRevSoeEvent(RevSoeEvent e) { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevSoeFun_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevSoeFun_CS.java new file mode 100644 index 0000000..8dd4b09 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevSoeFun_CS.java @@ -0,0 +1,8 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Pointer; +import com.sun.jna.win32.StdCallLibrary; + +public interface Callback_RevSoeFun_CS extends StdCallLibrary.StdCallCallback { + void RevSoeFun(Pointer var1, int var2); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevYkRetFun_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevYkRetFun_CS.java new file mode 100644 index 0000000..de9a502 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/Callback_RevYkRetFun_CS.java @@ -0,0 +1,8 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Pointer; +import com.sun.jna.win32.StdCallLibrary; + +public interface Callback_RevYkRetFun_CS extends StdCallLibrary.StdCallCallback { + void RevYkRetFun(Pointer var1, int var2); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ChannelInfo_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ChannelInfo_CS.java new file mode 100644 index 0000000..1059ad0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ChannelInfo_CS.java @@ -0,0 +1,88 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Structure; + +import java.io.UnsupportedEncodingException; + +import org.springblade.hz3000_real_data.readdata.ReadData.ChannelInfo; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.*; + +public class ChannelInfo_CS extends Structure { + public long ChannelIdx; + public byte[] ChannelName = new byte[256]; + public int ChannelStatus; + public int ModuleCount; + public byte[] ModuleName = new byte['耀']; + public int[] ModuleEnable = new int[128]; + public int[] ModuleStatus = new int[128]; + public byte[] SrvName = new byte[256]; + public byte[] IpAddr = new byte[24]; + + public ChannelInfo_CS() { + } + + public void setValue(ChannelInfo info) { + info.ChannelIdx = this.ChannelIdx; + + try { + info.ChannelName = new String(this.ChannelName, "UTF-8"); + } catch (UnsupportedEncodingException var5) { + var5.printStackTrace(); + } + + info.ChannelStatus = EChannelStatus.values()[this.ChannelStatus]; + info.ModuleCount = this.ModuleCount; + info.ModuleName = new String[info.ModuleCount]; + info.ModuleStatus = new EModuleStatus[info.ModuleCount]; + info.ModuleEnable = new int[info.ModuleCount]; + + for(int i = 0; i < info.ModuleCount; ++i) { + info.ModuleName[i] = this.moduleToString(this.ModuleName, i); + info.ModuleStatus[i] = EModuleStatus.values()[this.ModuleStatus[i]]; + info.ModuleEnable[i] = this.ModuleEnable[i] == 0 ? 1 : 0; + } + + try { + info.SrvName = new String(this.SrvName, "UTF-8"); + } catch (UnsupportedEncodingException var4) { + var4.printStackTrace(); + } + + try { + info.IpAddr = new String(this.IpAddr, "UTF-8"); + } catch (UnsupportedEncodingException var3) { + var3.printStackTrace(); + } + + } + + private String moduleToString(byte[] source, int index) { + byte[] tmp = new byte[256]; + int lower = index * 256; + + for(int i = 0; i < 256; ++i) { + tmp[i] = source[lower + i]; + } + + String ret = ""; + + try { + ret = new String(tmp, "UTF-8"); + } catch (UnsupportedEncodingException var7) { + var7.printStackTrace(); + } + + return ret; + } + + public static class ByReference extends ChannelInfo_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends ChannelInfo_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_CS.java new file mode 100644 index 0000000..bb9ab2b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_CS.java @@ -0,0 +1,202 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadData; +import org.springblade.hz3000_real_data.readdata.ReadData.RevSoeEvent; +import org.springblade.hz3000_real_data.readdata.ReadData.RevSoeEventListener; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEvent; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEventListener; +import org.springblade.hz3000_real_data.readdata.ReadData.SoeRValue; +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeKind; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeState; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkCommand; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.ChannelInfo_CS.ByReference; + +import com.sun.jna.Pointer; +import com.sun.jna.ptr.IntByReference; +import com.sun.jna.win32.StdCallLibrary; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.*; + +public interface ReadData_CS extends StdCallLibrary { + int TestDllFun(); + + void ReadData_Init(); + + void ReadData_Destroy(); + + byte GetChannelInfo_CS(long var1, ByReference var3); + + int ReadModuleYc_CS(long var1, int var3, IntByReference var4, YcRValue_CS[] var5); + + int ReadModuleYx_CS(long var1, int var3, IntByReference var4, YxRValue_CS[] var5); + + int ReadChannelYc_CS(long var1, IntByReference var3, int[] var4, YcRValue_CS[] var5); + + int ReadChannelYx_CS(long var1, IntByReference var3, int[] var4, YxRValue_CS[] var5); + + int ReadAnyDatasID_CS(long[] var1, YcRValue_CS[] var2, int var3, long[] var4, YxRValue_CS[] var5, int var6); + + int SendOrder_CS(YkWValue_CS.ByReference var1); + + int RegSoeRecFunc_CS(Callback_RevSoeFun_CS var1); + + int RegYkReturnFunc_CS(Callback_RevYkRetFun_CS var1); + + public static class RevSoeFun_Realize implements Callback_RevSoeFun_CS { + private static Set listener = new HashSet(); + + public RevSoeFun_Realize() { + } + + public void RevSoeFun(Pointer soe, int soecount) { + List soelist = new ArrayList(); + + for(int i = 0; i < soecount; ++i) { + SoeRValue tmp = new SoeRValue(); + long[] longbuf = new long[1]; + int[] intbuf = new int[2]; + short[] shortbuf = new short[1]; + byte[] bytebuf = new byte[256]; + double[] doublebuf = new double[16]; + soe.read((long)(0 + i * 416), longbuf, 0, 1); + tmp.ID = longbuf[0]; + soe.read((long)(8 + i * 416), intbuf, 0, 2); + tmp.Kind = ESoeKind.values()[intbuf[0]]; + tmp.State = ESoeState.values()[intbuf[1]]; + + try { + soe.read((long)(16 + i * 416), shortbuf, 0, 1); + soe.read((long)(18 + i * 416), bytebuf, 0, 6); + Calendar tmptime = Calendar.getInstance(); + tmptime.set(shortbuf[0], bytebuf[0] - 1, bytebuf[1], bytebuf[3], bytebuf[4], bytebuf[5]); + soe.read((long)(24 + i * 416), shortbuf, 0, 1); + tmptime.set(14, shortbuf[0]); + tmp.ActTime = tmptime.getTime(); + } catch (Exception var12) { + } catch (Error var13) { + } + + soe.read((long)(28 + i * 416), intbuf, 0, 1); + if (intbuf[0] > 16) { + intbuf[0] = 16; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + tmp.OpValue = new double[intbuf[0]]; + if (intbuf[0] > 0) { + soe.read((long)(32 + i * 416), tmp.OpValue, 0, intbuf[0]); + } + + soe.read((long)(160 + i * 416), bytebuf, 0, 256); + tmp.Explain = ReadData.Bytes2UTF8String(bytebuf); + soelist.add(tmp); + } + + this.notifies(soelist); + } + + public static void AddRevSoeListener(RevSoeEventListener cel) { + listener.add(cel); + } + + public void notifies(List soe) { + RevSoeEventListener cel = null; + Iterator iterator = listener.iterator(); + + while(iterator.hasNext()) { + cel = (RevSoeEventListener)iterator.next(); + cel.fireRevSoeEvent(new RevSoeEvent(this, soe)); + } + + } + } + + public static class RevYkRetFun_Realize implements Callback_RevYkRetFun_CS { + private static Set listener = new HashSet(); + + public RevYkRetFun_Realize() { + } + + public void RevYkRetFun(Pointer yk, int ykstatus) { + YkWValue yktmp = new YkWValue(); + long[] longbuf = new long[2]; + int[] intbuf = new int[4]; + short[] shortbuf = new short[1]; + byte[] bytebuf = new byte[256]; + yk.read(0L, longbuf, 0, 2); + yktmp.ID = longbuf[0]; + yktmp.Channel = longbuf[1]; + yk.read(16L, intbuf, 0, 4); + yktmp.Module = intbuf[0]; + yktmp.Index = intbuf[1]; + yktmp.ykIndicate = intbuf[2]; + yktmp.YkCommand = EYkCommand.values()[intbuf[3]]; + + try { + yk.read(32L, shortbuf, 0, 1); + yk.read(34L, bytebuf, 0, 6); + Calendar tmptime = Calendar.getInstance(); + tmptime.set(shortbuf[0], bytebuf[0] - 1, bytebuf[1], bytebuf[3], bytebuf[4], bytebuf[5]); + yk.read(40L, shortbuf, 0, 1); + tmptime.set(14, shortbuf[0]); + yktmp.OpTime = tmptime.getTime(); + } catch (Exception var9) { + } catch (Error var10) { + } + + yk.read(44L, intbuf, 0, 1); + if (intbuf[0] > 1024) { + intbuf[0] = 1024; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + yktmp.dblParam = new double[intbuf[0]]; + if (intbuf[0] > 0) { + yk.read(48L, yktmp.dblParam, 0, intbuf[0]); + } + + yk.read(8240L, intbuf, 0, 1); + if (intbuf[0] > 40000) { + intbuf[0] = 40000; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + yktmp.charParam = new byte[intbuf[0]]; + if (intbuf[0] > 0) { + yk.read(8244L, yktmp.charParam, 0, intbuf[0]); + } + + yk.read(48244L, bytebuf, 0, 256); + yktmp.Operator = ReadData.Bytes2UTF8String(bytebuf); + EYkRetStatus sts = EYkRetStatus.values()[ykstatus]; + notifies(yktmp, sts); + } + + public static void AddRevYkReturnEventListener(RevYkReturnEventListener ryrel) { + listener.add(ryrel); + } + + public static void notifies(YkWValue yk, EYkRetStatus ykstatus) { + Logger logger = LoggerFactory.getLogger(RevYkRetFun_Realize.class); + logger.info("监听者的个数" + listener.size()); + RevYkReturnEventListener cel = null; + Iterator iterator = listener.iterator(); + + while(iterator.hasNext()) { + cel = (RevYkReturnEventListener)iterator.next(); + cel.fireYkReturnEvent(new RevYkReturnEvent(RevYkRetFun_Realize.class, yk, ykstatus)); + } + + } + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_Linux.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_Linux.java new file mode 100644 index 0000000..d763366 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/ReadData_Linux.java @@ -0,0 +1,196 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadData; +import org.springblade.hz3000_real_data.readdata.ReadData.RevSoeEvent; +import org.springblade.hz3000_real_data.readdata.ReadData.RevSoeEventListener; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEvent; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEventListener; +import org.springblade.hz3000_real_data.readdata.ReadData.SoeRValue; +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeKind; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeState; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkCommand; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.ChannelInfo_CS.ByReference; +import com.sun.jna.Library; +import com.sun.jna.Pointer; +import com.sun.jna.ptr.IntByReference; + +import java.util.*; + + +public interface ReadData_Linux extends Library { + int TestDllFun(); + + void ReadData_Init(); + + void ReadData_Destroy(); + + byte GetChannelInfo_CS(long var1, ByReference var3); + + int ReadModuleYc_CS(long var1, int var3, IntByReference var4, YcRValue_CS[] var5); + + int ReadModuleYx_CS(long var1, int var3, IntByReference var4, YxRValue_CS[] var5); + + int ReadChannelYc_CS(long var1, IntByReference var3, int[] var4, YcRValue_CS[] var5); + + int ReadChannelYx_CS(long var1, IntByReference var3, int[] var4, YxRValue_CS[] var5); + + int ReadAnyDatasID_CS(long[] var1, YcRValue_CS[] var2, int var3, long[] var4, YxRValue_CS[] var5, int var6); + + int SendOrder_CS(YkWValue_CS.ByReference var1); + + int RegSoeRecFunc_CS(Callback_RevSoeFun_CS var1); + + int RegYkReturnFunc_CS(Callback_RevYkRetFun_CS var1); + + public static class RevSoeFun_Realize implements Callback_RevSoeFun_CS { + private static Set listener = new HashSet(); + + public RevSoeFun_Realize() { + } + + public void RevSoeFun(Pointer soe, int soecount) { + List soelist = new ArrayList(); + + for(int i = 0; i < soecount; ++i) { + SoeRValue tmp = new SoeRValue(); + long[] longbuf = new long[1]; + int[] intbuf = new int[2]; + short[] shortbuf = new short[1]; + byte[] bytebuf = new byte[256]; + double[] doublebuf = new double[16]; + soe.read((long)(0 + i * 416), longbuf, 0, 1); + tmp.ID = longbuf[0]; + soe.read((long)(8 + i * 416), intbuf, 0, 2); + tmp.Kind = ESoeKind.values()[intbuf[0]]; + tmp.State = ESoeState.values()[intbuf[1]]; + + try { + soe.read((long)(16 + i * 416), shortbuf, 0, 1); + soe.read((long)(18 + i * 416), bytebuf, 0, 6); + Calendar tmptime = Calendar.getInstance(); + tmptime.set(shortbuf[0], bytebuf[0] - 1, bytebuf[1], bytebuf[3], bytebuf[4], bytebuf[5]); + soe.read((long)(24 + i * 416), shortbuf, 0, 1); + tmptime.set(14, shortbuf[0]); + tmp.ActTime = tmptime.getTime(); + } catch (Exception var12) { + } catch (Error var13) { + } + + soe.read((long)(28 + i * 416), intbuf, 0, 1); + if (intbuf[0] > 16) { + intbuf[0] = 16; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + tmp.OpValue = new double[intbuf[0]]; + if (intbuf[0] > 0) { + soe.read((long)(32 + i * 416), tmp.OpValue, 0, intbuf[0]); + } + + soe.read((long)(160 + i * 416), bytebuf, 0, 256); + tmp.Explain = ReadData.Bytes2UTF8String(bytebuf); + soelist.add(tmp); + } + + this.notifies(soelist); + } + + public static void AddRevSoeListener(RevSoeEventListener cel) { + listener.add(cel); + } + + protected void notifies(List soe) { + RevSoeEventListener cel = null; + Iterator iterator = listener.iterator(); + + while(iterator.hasNext()) { + cel = (RevSoeEventListener)iterator.next(); + cel.fireRevSoeEvent(new RevSoeEvent(this, soe)); + } + + } + } + + public static class RevYkRetFun_Realize implements Callback_RevYkRetFun_CS { + private static Set listener = new HashSet(); + + public RevYkRetFun_Realize() { + } + + public void RevYkRetFun(Pointer yk, int ykstatus) { + YkWValue yktmp = new YkWValue(); + long[] longbuf = new long[2]; + int[] intbuf = new int[4]; + short[] shortbuf = new short[1]; + byte[] bytebuf = new byte[256]; + yk.read(0L, longbuf, 0, 2); + yktmp.ID = longbuf[0]; + yktmp.Channel = longbuf[1]; + yk.read(16L, intbuf, 0, 4); + yktmp.Module = intbuf[0]; + yktmp.Index = intbuf[1]; + yktmp.ykIndicate = intbuf[2]; + yktmp.YkCommand = EYkCommand.values()[intbuf[3]]; + + try { + yk.read(32L, shortbuf, 0, 1); + yk.read(34L, bytebuf, 0, 6); + Calendar tmptime = Calendar.getInstance(); + tmptime.set(shortbuf[0], bytebuf[0] - 1, bytebuf[1], bytebuf[3], bytebuf[4], bytebuf[5]); + yk.read(40L, shortbuf, 0, 1); + tmptime.set(14, shortbuf[0]); + yktmp.OpTime = tmptime.getTime(); + } catch (Exception var9) { + } catch (Error var10) { + } + + yk.read(44L, intbuf, 0, 1); + if (intbuf[0] > 1024) { + intbuf[0] = 1024; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + yktmp.dblParam = new double[intbuf[0]]; + if (intbuf[0] > 0) { + yk.read(48L, yktmp.dblParam, 0, intbuf[0]); + } + + yk.read(8240L, intbuf, 0, 1); + if (intbuf[0] > 40000) { + intbuf[0] = 40000; + } else if (intbuf[0] < 0) { + intbuf[0] = 0; + } + + yktmp.charParam = new byte[intbuf[0]]; + if (intbuf[0] > 0) { + yk.read(8244L, yktmp.charParam, 0, intbuf[0]); + } + + yk.read(48244L, bytebuf, 0, 256); + yktmp.Operator = ReadData.Bytes2UTF8String(bytebuf); + EYkRetStatus sts = EYkRetStatus.values()[ykstatus]; + this.notifies(yktmp, sts); + } + + public static void AddRevYkReturnEventListener(RevYkReturnEventListener ryrel) { + listener.add(ryrel); + } + + protected void notifies(YkWValue yk, EYkRetStatus ykstatus) { + RevYkReturnEventListener cel = null; + Iterator iterator = listener.iterator(); + + while(iterator.hasNext()) { + cel = (RevYkReturnEventListener)iterator.next(); + cel.fireYkReturnEvent(new RevYkReturnEvent(this, yk, ykstatus)); + } + + } + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/SoeRValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/SoeRValue_CS.java new file mode 100644 index 0000000..e0d5cd4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/SoeRValue_CS.java @@ -0,0 +1,37 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Structure; +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; + +public class SoeRValue_CS extends Structure { + long ID; + int Kind; + int State; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + int OpCount; + double[] OpValue = new double[16]; + byte[] Explain = new byte[256]; + + public SoeRValue_CS() { + } + + public void getValue(YkWValue info) { + } + + public static class ByReference extends SoeRValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends SoeRValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YcRValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YcRValue_CS.java new file mode 100644 index 0000000..557ae45 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YcRValue_CS.java @@ -0,0 +1,51 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Structure; +import org.springblade.hz3000_real_data.readdata.ReadData.YcRValue; + +import java.util.Calendar; + +public class YcRValue_CS extends Structure { + public double Value; + public short q; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + public double OrignalValue; + public double LastValidValue; + + public YcRValue_CS() { + } + + public void setValue(YcRValue info) { + info.Value = this.Value; + info.q = this.q; + info.OrignalValue = this.OrignalValue; + info.LastValidValue = this.LastValidValue; + + try { + Calendar tmptime = Calendar.getInstance(); + tmptime.set(this.Year, this.Month - 1, this.Day, this.Hour, this.Minute, this.Sec); + tmptime.set(14, this.MSecond); + info.Time = tmptime.getTime(); + } catch (Exception var3) { + } catch (Error var4) { + } + + } + + public static class ByReference extends YcRValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends YcRValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YkWValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YkWValue_CS.java new file mode 100644 index 0000000..890f2fb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YkWValue_CS.java @@ -0,0 +1,98 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Structure; +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; + +import java.util.Calendar; + +public class YkWValue_CS extends Structure { + public long ID; + public long Channel; + public int Module; + public int Index; + public int ykIndicate; + public int YkCommand; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + public int dblParCount; + public double[] dblParam = new double[1024]; + public int charParCount; + public byte[] charParam = new byte['鱀']; + public byte[] Operator = new byte[256]; + + public YkWValue_CS() { + } + + public void getValue(YkWValue info) { + this.ID = info.ID; + this.Channel = info.Channel; + this.Module = info.Module; + this.Index = info.Index; + this.ykIndicate = info.ykIndicate; + if (info.YkCommand != null) { + this.YkCommand = info.YkCommand.ordinal(); + } + + if (info.OpTime != null) { + Calendar cal = Calendar.getInstance(); + cal.setTime(info.OpTime); + this.Year = (short)cal.get(1); + this.Month = (byte)(cal.get(2) + 1); + this.Day = (byte)cal.get(5); + this.Dayofweak = (byte)cal.get(7); + this.Hour = (byte)cal.get(11); + this.Minute = (byte)cal.get(12); + this.Sec = (byte)cal.get(13); + this.MSecond = (short)cal.get(14); + } + + if (info.dblParam != null) { + this.dblParCount = info.dblParam.length; + + for(int i = 0; i < info.dblParam.length; ++i) { + this.dblParam[i] = info.dblParam[i]; + } + } else { + this.dblParCount = 0; + } + + if (info.charParam != null) { + this.charParCount = info.charParam.length; + + for(int i = 0; i < info.charParam.length; ++i) { + this.charParam[i] = info.charParam[i]; + } + } else { + this.charParCount = 0; + } + + if (info.Operator != null) { + byte[] arr = info.Operator.getBytes(); + + for(int i = 0; i < arr.length; ++i) { + this.Operator[i] = arr[i]; + } + } + + } + + public void setValueIndicate(YkWValue info) { + info.ykIndicate = this.ykIndicate; + } + + public static class ByReference extends YkWValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends YkWValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YxRValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YxRValue_CS.java new file mode 100644 index 0000000..c80e976 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/ReadData_CS/YxRValue_CS.java @@ -0,0 +1,54 @@ +package org.springblade.hz3000_real_data.readdata.ReadData_CS; + +import com.sun.jna.Structure; +import org.springblade.hz3000_real_data.readdata.ReadData.YxRValue; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYxTpye; + +import java.util.Calendar; + +public class YxRValue_CS extends Structure { + public int YxType; + public byte Value; + public short q; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + + public YxRValue_CS() { + } + + public void setValue(YxRValue info) { + info.Value = (byte)(this.Value != 0 ? 1 : 0); + info.q = this.q; + if (this.YxType < EYxTpye.values().length) { + info.YxType = EYxTpye.values()[this.YxType]; + } else { + info.YxType = EYxTpye.yxOneBit; + } + + try { + Calendar tmptime = Calendar.getInstance(); + tmptime.set(this.Year, this.Month - 1, this.Day, this.Hour, this.Minute, this.Sec); + tmptime.set(14, this.MSecond); + info.Time = tmptime.getTime(); + } catch (Exception var3) { + } catch (Error var4) { + } + + } + + public static class ByReference extends YxRValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends YxRValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_CS.java new file mode 100644 index 0000000..75b52e3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_CS.java @@ -0,0 +1,14 @@ +package org.springblade.hz3000_real_data.readdata.WriteData_CS; + +import com.sun.jna.win32.StdCallLibrary; +import org.springblade.hz3000_real_data.readdata.WriteData_CS.YcWValue_CS.ByReference; + +public interface WriteData_CS extends StdCallLibrary { + int TestDllFun(); + + int RegChannelInfo_CS(long var1, byte[] var3, int var4, byte[] var5, byte[] var6); + + int WriteOneYc(long var1, int var3, ByReference var4); + + int WriteOneYx(long var1, int var3, ByReference var4); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_Linux.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_Linux.java new file mode 100644 index 0000000..17c1caa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/WriteData_Linux.java @@ -0,0 +1,14 @@ +package org.springblade.hz3000_real_data.readdata.WriteData_CS; + +import com.sun.jna.Library; +import org.springblade.hz3000_real_data.readdata.WriteData_CS.YcWValue_CS.ByReference; + +public interface WriteData_Linux extends Library { + int TestDllFun(); + + int RegChannelInfo_CS(long var1, byte[] var3, int var4, byte[] var5, byte[] var6); + + int WriteOneYc(long var1, int var3, ByReference var4); + + int WriteOneYx(long var1, int var3, ByReference var4); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YcWValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YcWValue_CS.java new file mode 100644 index 0000000..f25c79e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YcWValue_CS.java @@ -0,0 +1,55 @@ +package org.springblade.hz3000_real_data.readdata.WriteData_CS; + +import com.sun.jna.Structure; + +import java.util.Calendar; +import java.util.Date; + +public class YcWValue_CS extends Structure { + public int Index; + public double Value; + public short q; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + + public YcWValue_CS() { + } + + public void fromValue(int index, double value, short q, Date time) { + this.Index = index; + this.Value = value; + this.q = q; + + try { + Calendar tmptime = Calendar.getInstance(); + tmptime.setTime(time); + this.Year = (short)tmptime.get(1); + this.Month = (byte)(tmptime.get(2) + 1); + this.Day = (byte)tmptime.get(5); + this.Hour = (byte)tmptime.get(11); + this.Minute = (byte)tmptime.get(12); + this.Sec = (byte)tmptime.get(13); + this.MSecond = (short)tmptime.get(14); + this.Dayofweak = (byte)tmptime.get(7); + } catch (Exception var7) { + } catch (Error var8) { + } + + } + + public static class ByReference extends YcWValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends YcWValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YxWValue_CS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YxWValue_CS.java new file mode 100644 index 0000000..153bbca --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/WriteData_CS/YxWValue_CS.java @@ -0,0 +1,62 @@ +package org.springblade.hz3000_real_data.readdata.WriteData_CS; + +import com.sun.jna.Structure; + +import java.util.Calendar; +import java.util.Date; + +public class YxWValue_CS extends Structure { + public int Index; + public int YxType; + public byte Value; + public short q; + public short Year; + public byte Month; + public byte Day; + public byte Dayofweak; + public byte Hour; + public byte Minute; + public byte Sec; + public short MSecond; + + public YxWValue_CS() { + } + + public void fromValue(int index, boolean value, short q, Date time) { + this.Index = index; + this.YxType = 0; + if (value) { + this.Value = 1; + } else { + this.Value = 0; + } + + this.q = q; + + try { + Calendar tmptime = Calendar.getInstance(); + tmptime.setTime(time); + this.Year = (short)tmptime.get(1); + this.Month = (byte)(tmptime.get(2) + 1); + this.Day = (byte)tmptime.get(5); + this.Hour = (byte)tmptime.get(11); + this.Minute = (byte)tmptime.get(12); + this.Sec = (byte)tmptime.get(13); + this.MSecond = (short)tmptime.get(14); + this.Dayofweak = (byte)tmptime.get(7); + } catch (Exception var6) { + } catch (Error var7) { + } + + } + + public static class ByReference extends YxWValue_CS implements com.sun.jna.Structure.ByReference { + public ByReference() { + } + } + + public static class ByValue extends YxWValue_CS implements com.sun.jna.Structure.ByValue { + public ByValue() { + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Soe.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Soe.java new file mode 100644 index 0000000..c3a2634 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Soe.java @@ -0,0 +1,85 @@ +package org.springblade.hz3000_real_data.readdata.entity; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.*; +import org.springblade.hz3000_real_data.readdata.ReadData.SoeRValue; + +import java.math.BigInteger; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +public class Soe { + private String rid; + private int kind; + private int state; + private String acttime; + private double[] opvalue; + private String explain; + + public Soe() { + } + + public SoeRValue getValue() throws ParseException { + SoeRValue soe = new SoeRValue(); + BigInteger bi = new BigInteger(this.rid); + soe.ID = bi.longValue(); + if (this.acttime != null && !this.acttime.isEmpty()) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + soe.ActTime = sdf.parse(this.acttime); + } + + soe.Kind = ESoeKind.values()[this.kind]; + soe.State = ESoeState.values()[this.state]; + soe.OpValue = this.opvalue; + soe.Explain = this.explain; + soe.rid = this.rid; + return soe; + } + + public String getRid() { + return this.rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public int getKind() { + return this.kind; + } + + public void setKind(int kind) { + this.kind = kind; + } + + public int getState() { + return this.state; + } + + public void setState(int state) { + this.state = state; + } + + public String getActtime() { + return this.acttime; + } + + public void setActtime(String acttime) { + this.acttime = acttime; + } + + public double[] getOpvalue() { + return this.opvalue; + } + + public void setOpvalue(double[] opvalue) { + this.opvalue = opvalue; + } + + public String getExplain() { + return this.explain; + } + + public void setExplain(String explain) { + this.explain = explain; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TeleContralValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TeleContralValue.java new file mode 100644 index 0000000..f896c12 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TeleContralValue.java @@ -0,0 +1,122 @@ +package org.springblade.hz3000_real_data.readdata.entity; + +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class TeleContralValue implements Serializable { + private static final long serialVersionUID = -8356030188920142751L; + private String id; + private String channel; + private String module; + private String index; + private String ykindicate; + private String ykcommand; + private String optime; + private String operator; + private double[] dblparam; + private byte[] charparam; + + public TeleContralValue() { + } + + public void setValue(YkWValue val) { + this.id = "" + val.ID; + this.channel = "" + val.Channel; + this.module = "" + val.Module; + this.index = "" + val.Index; + this.ykindicate = "" + val.ykIndicate; + this.ykcommand = "" + val.YkCommand.ordinal(); + if (val.OpTime != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + this.optime = sdf.format(val.OpTime); + } + + this.operator = val.Operator; + this.dblparam = val.dblParam; + this.charparam = val.charParam; + this.ykindicate = "" + (new Date()).getTime() % 100000000L; + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public String getChannel() { + return this.channel; + } + + public void setChannel(String channel) { + this.channel = channel; + } + + public String getModule() { + return this.module; + } + + public void setModule(String module) { + this.module = module; + } + + public String getIndex() { + return this.index; + } + + public void setIndex(String index) { + this.index = index; + } + + public String getYkindicate() { + return this.ykindicate; + } + + public void setYkindicate(String ykindicate) { + this.ykindicate = ykindicate; + } + + public String getYkcommand() { + return this.ykcommand; + } + + public void setYkcommand(String ykcommand) { + this.ykcommand = ykcommand; + } + + public String getOptime() { + return this.optime; + } + + public void setOptime(String optime) { + this.optime = optime; + } + + public String getOperator() { + return this.operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public double[] getDblparam() { + return this.dblparam; + } + + public void setDblparam(double[] dblparam) { + this.dblparam = dblparam; + } + + public byte[] getCharparam() { + return this.charparam; + } + + public void setCharparam(byte[] charparam) { + this.charparam = charparam; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TelemeteringValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TelemeteringValue.java new file mode 100644 index 0000000..145b49c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/TelemeteringValue.java @@ -0,0 +1,46 @@ +package org.springblade.hz3000_real_data.readdata.entity; + +import java.io.Serializable; + +public class TelemeteringValue implements Serializable { + private static final long serialVersionUID = -4150448301513879701L; + private String id; + private double val; + private short q; + private String datatime; + + public TelemeteringValue() { + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public double getVal() { + return this.val; + } + + public void setVal(double val) { + this.val = val; + } + + public short getQ() { + return this.q; + } + + public void setQ(short q) { + this.q = q; + } + + public String getDatatime() { + return this.datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Telesignalisition.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Telesignalisition.java new file mode 100644 index 0000000..a2152a1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/entity/Telesignalisition.java @@ -0,0 +1,46 @@ +package org.springblade.hz3000_real_data.readdata.entity; + +import java.io.Serializable; + +public class Telesignalisition implements Serializable { + private static final long serialVersionUID = -1193107154268895125L; + private String id; + private byte val; + private short q; + private String datatime; + + public Telesignalisition() { + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public byte getVal() { + return this.val; + } + + public void setVal(byte val) { + this.val = val; + } + + public short getQ() { + return this.q; + } + + public void setQ(short q) { + this.q = q; + } + + public String getDatatime() { + return this.datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/Publisher.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/Publisher.java new file mode 100644 index 0000000..6200a18 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/Publisher.java @@ -0,0 +1,22 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import redis.clients.jedis.Jedis; + +public class Publisher extends Thread { + Logger logger = LoggerFactory.getLogger(this.getClass()); + String channel = null; + String message = null; + + public Publisher(String channel, String message) { + this.channel = channel; + this.message = message; + } + + public void run() { + this.logger.info("向频道(" + this.channel + ")发送消息"); + Jedis jedis = RedisPoolUtil.getConn(); + jedis.publish(this.channel, this.message); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisMain.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisMain.java new file mode 100644 index 0000000..79632e4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisMain.java @@ -0,0 +1,60 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import com.alibaba.fastjson.JSON; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.readdata.ReadData.SoeRValue; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.ReadData_CS.RevSoeFun_Realize; +import org.springblade.hz3000_real_data.readdata.entity.Soe; +import redis.clients.jedis.Jedis; + +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class RedisMain { + public static Logger logger = LoggerFactory.getLogger(RedisMain.class); + public static List preEventList = new ArrayList(); + + public RedisMain() { + } + +// public static void main(String[] args) { +// while(true) { +// try { +// executer(); +// Thread.sleep(15000L); +// } catch (Exception var2) { +// logger.error("系统错误", var2); +// } +// } +// } + + public static void executer() throws ParseException { + Jedis jedis = RedisPoolUtil.getConn(); + List keyList = jedis.lrange("latestsoe", 0L, 500L); + List soeList = new ArrayList(); + Iterator var4 = keyList.iterator(); + + while(var4.hasNext()) { + String key = (String)var4.next(); + if (!preEventList.contains(key)) { + String valueStr = jedis.get("soe:" + key); + if (valueStr != null) { + logger.info("获取到告警 :" + valueStr); + Soe soe = (Soe) JSON.parseObject(valueStr, Soe.class); + soeList.add(soe.getValue()); + } + } + } + + if (!soeList.isEmpty()) { + logger.info("发送告警 "); + RevSoeFun_Realize realize = new RevSoeFun_Realize(); + realize.notifies(soeList); + } + + preEventList = keyList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisPoolUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisPoolUtil.java new file mode 100644 index 0000000..659b2ef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/RedisPoolUtil.java @@ -0,0 +1,72 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.fac.config.Global; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; + +import java.util.Properties; + +public class RedisPoolUtil { + private static JedisPool jedisPool = null; + private static ThreadLocal local = new ThreadLocal(); + + private RedisPoolUtil() { + } + + public static void initialPool() { + Logger logger = LoggerFactory.getLogger(RedisPoolUtil.class); + + try { + JedisPoolConfig config = new JedisPoolConfig(); + logger.info("maxActive:" + Global.getConfig("spring.redis.host")); + config.setMaxTotal(Integer.valueOf(Global.getConfig("jedis.pool.maxActive"))); + config.setMaxIdle(Integer.valueOf(Global.getConfig("jedis.pool.maxIdle"))); + config.setMaxWaitMillis(Long.valueOf(Global.getConfig("jedis.pool.maxWait"))); + config.setTestOnBorrow(Boolean.valueOf(Global.getConfig("jedis.pool.testOnBorrow"))); + config.setTestOnReturn(Boolean.valueOf(Global.getConfig("jedis.pool.testOnReturn"))); + String password = Global.getConfig("spring.redis.password"); + String host=Global.getConfig("spring.redis.host"); + int port=Integer.valueOf(Global.getConfig("spring.redis.port")); + int timeout=Integer.valueOf(Global.getConfig("spring.redis.timeout")); + jedisPool = new JedisPool(config,host,port,timeout, password.isEmpty() ? null : password); + logger.info("线程池被成功初始化"); + } catch (Exception var4) { + logger.error("系统错误", var4); + var4.printStackTrace(); + } + + } + + public static Jedis getConn() { + Jedis jedis = (Jedis)local.get(); + if (jedis == null) { + if (jedisPool == null) { + initialPool(); + } + + jedis = jedisPool.getResource(); + local.set(jedis); + } + + return jedis; + } + + public static void closeConn() { + Jedis jedis = (Jedis)local.get(); + if (jedis != null) { + jedis.close(); + } + + local.set(null); + } + + public static void closePool() { + if (jedisPool != null) { + jedisPool.close(); + } + + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkGetReturnThread.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkGetReturnThread.java new file mode 100644 index 0000000..183e39b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkGetReturnThread.java @@ -0,0 +1,99 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.readdata.ReadData.YkWValue; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; +import org.springblade.hz3000_real_data.readdata.ReadData_CS.ReadData_CS.RevYkRetFun_Realize; +import org.springframework.beans.factory.annotation.Value; +import redis.clients.jedis.Jedis; + +import java.util.Date; + +public class YkGetReturnThread extends Thread { + private String key = null; + Logger logger = LoggerFactory.getLogger(this.getClass()); + private long timestamp; + @Value("${soe.wait.interval}") + private String waitInterval; + @Value("${soe.wait.time}") + private String waitTime; + private int interval = 1000; + private long waitTimeLong = 120000L; + private YkWValue yk = null; + + public YkGetReturnThread(YkWValue yk, String key) { + this.key = key; + this.yk = yk; + } + + public void run() { + this.logger.info("开始遥控反校,key=" + this.key); + Jedis jedis = RedisPoolUtil.getConn(); + this.timestamp = (new Date()).getTime(); + String value = jedis.get(this.key); + if (this.waitInterval != null && !this.waitInterval.isEmpty()) { + this.interval = Integer.parseInt(this.waitInterval); + } + + if (this.waitTime != null && !this.waitTime.isEmpty()) { + this.waitTimeLong = Long.parseLong(this.waitTime); + } + + while((value == null || value.isEmpty()) && (new Date()).getTime() - this.timestamp < this.waitTimeLong) { + this.logger.info("读取到反校值为:" + value); + + try { + RedisPoolUtil.closeConn(); + Thread.sleep((long)this.interval); + } catch (InterruptedException var5) { + var5.printStackTrace(); + this.logger.error("系统错误", var5); + } + + jedis = RedisPoolUtil.getConn(); + value = jedis.get(this.key); + } + + if (value != null && !value.isEmpty()) { + this.logger.info("获得" + this.key + "的遥控反校"); + int returnValue = Integer.parseInt(value); + EYkRetStatus sts = EYkRetStatus.values()[returnValue]; + RevYkRetFun_Realize.notifies(this.yk, sts); + } + + RedisPoolUtil.closeConn(); + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + } + + public long getTimestamp() { + return this.timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public int getInterval() { + return this.interval; + } + + public void setInterval(int interval) { + this.interval = interval; + } + + public long getWaitTimeLong() { + return this.waitTimeLong; + } + + public void setWaitTimeLong(long waitTimeLong) { + this.waitTimeLong = waitTimeLong; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubThread.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubThread.java new file mode 100644 index 0000000..bc8b172 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubThread.java @@ -0,0 +1,38 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import redis.clients.jedis.Jedis; + +public class YkSubThread extends Thread { + private final YkSubscriber subscriber = new YkSubscriber(); + Logger logger = LoggerFactory.getLogger(this.getClass()); + private String channel = null; + + public YkSubThread(String channel) { + this.channel = channel; + } + + public void run() { + this.logger.info("开始订阅," + this.channel + "已被阻塞"); + Jedis jedis = RedisPoolUtil.getConn(); + + try { + jedis.subscribe(this.subscriber, new String[]{this.channel}); + } catch (Exception var6) { + this.logger.error("系统错误", var6); + var6.printStackTrace(); + } finally { + if (jedis != null) { + RedisPoolUtil.closeConn(); + } + + } + + } + + public void unsubscribe() { + this.logger.info("取消订阅," + this.channel + "已被释放"); + this.subscriber.unsubscribe(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubscriber.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubscriber.java new file mode 100644 index 0000000..46f53a1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/readdata/utils/YkSubscriber.java @@ -0,0 +1,25 @@ +package org.springblade.hz3000_real_data.readdata.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import redis.clients.jedis.JedisPubSub; + +public class YkSubscriber extends JedisPubSub { + Logger logger = LoggerFactory.getLogger(this.getClass()); + + public YkSubscriber() { + } + + public void onMessage(String channel, String message) { + this.logger.info("收到频道(" + channel + ")的消息"); + this.unsubscribe(); + } + + public void onSubscribe(String channel, int subscribedChannels) { + this.logger.info("订阅了频道(" + channel + ")的消息"); + } + + public void onUnsubscribe(String channel, int subscribedChannels) { + this.logger.info("取消订阅频道(" + channel + ")的消息"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/DefTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/DefTypeEnum.java new file mode 100644 index 0000000..67317a8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/DefTypeEnum.java @@ -0,0 +1,37 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.Enums; + +public enum DefTypeEnum { + first("1", "一类缺陷"), + second("2", "二类缺陷"), + third("3", "三类缺陷"), + fourth("4", "四类缺陷"); + + private String code; + private String desc; + + private DefTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return this.desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/QryTypeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/QryTypeEnum.java new file mode 100644 index 0000000..d884a08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/QryTypeEnum.java @@ -0,0 +1,35 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.Enums; + +public enum QryTypeEnum { + qryOpenOff("0", "查询开关机状态"), + qryLoad("1", "查询负荷"); + + private String code; + private String desc; + + private QryTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return this.desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/RealDataSoeState.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/RealDataSoeState.java new file mode 100644 index 0000000..7123584 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/RealDataSoeState.java @@ -0,0 +1,51 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.Enums; + +public enum RealDataSoeState { + soesOff("soesOff", "关"), + soesOn("soesOn", "开"); + + String code; + String desc; + + private RealDataSoeState(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return this.desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public static String getEnumDesc(String code) { + String retString = null; + RealDataSoeState[] ary = values(); + RealDataSoeState[] var6 = ary; + int var5 = ary.length; + + for(int var4 = 0; var4 < var5; ++var4) { + RealDataSoeState eu = var6[var4]; + if (eu.getCode().equals(code)) { + retString = eu.getDesc(); + } + } + + return retString; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/SoeEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/SoeEnum.java new file mode 100644 index 0000000..64791d6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/Enums/SoeEnum.java @@ -0,0 +1,68 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.Enums; + +public enum SoeEnum { + skNone("skNone", "默认"), + skSys("skSys", "系统"), + skAlarm("skAlarm", "报警"), + skAct("skAct", "事故"), + skOperate("skOperate", "操作"), + skYcOut("skYcOut", "遥测越限"), + skYxChange("skYxChange", "遥信变位"), + skReg("skReg", "注册信息"), + skHint("skHint", "信息提示"), + skInspect("skInspect", "设备巡检"), + skRDSYxChange("skRDSYxChange", "遥信变位"), + skRDSYcOutOfLimit("skRDSYcOutOfLimit", "遥测越限"), + skRDSYcOutOfLimit2("skRDSYcOutOfLimit2", "遥测越限"), + skMonitorOperate("skMonitorOperate", "操作记录"), + skback5("skback5", "操作记录"), + skback6("skback6", "备用6"), + skback7("skback7", "备用7"), + skback8("skback8", "备用8"), + skUnknown("skUnknown", "未定义"); + + String code; + String desc; + + private SoeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return this.desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public static String getEnumDesc(String code) { + String retString = null; + SoeEnum[] ary = values(); + SoeEnum[] var6 = ary; + int var5 = ary.length; + + for(int var4 = 0; var4 < var5; ++var4) { + SoeEnum eu = var6[var4]; + if (eu.getCode().equals(code)) { + retString = eu.getDesc(); + } + } + + return retString; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataController.java new file mode 100644 index 0000000..5385eb8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataController.java @@ -0,0 +1,1010 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.hz3000_real_data.readdata.ReadData.*; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EFPReturn; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EReadDataRet; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkCommand; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; +import com.alibaba.fastjson.JSON; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.entity.DataGridModel; +import org.springblade.hz3000_real_data.fac.dao.FactoryInfoDao; +import org.springblade.hz3000_real_data.fac.entity.BasePoint; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.history.entity.WorkBook; +import org.springblade.hz3000_real_data.history.service.HisDataService; +import org.springblade.hz3000_real_data.history.utils.DateUtils; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.hz3000_real_data.real.service.RealDataService; +import org.springblade.hz3000_real_data.real.utils.DysmsMassageSender; +import org.springblade.hz3000_real_data.real.utils.RealDataUtil; +import org.springblade.hz3000_real_data.real.vo.*; +import org.springblade.hz3000_real_data.util.RSAUtils; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.io.PrintWriter; +import java.math.BigInteger; +import java.security.NoSuchAlgorithmException; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.util.*; + +@Controller +@RequestMapping({"/hz3000/realData"}) +public class RealDataController { + @Autowired + private RealDataService dataService; + @Autowired + private HisDataService hisDataService; + + @Autowired + ISysClient sysClient; + + public static String KEYPAIR = "keyPair"; + public static String OPERATETIME = "operateTime"; + public static long CHECKTIMEOUT = 3600000L; + public static long ALARMINTERV = 300000L; + protected Logger logger = LoggerFactory.getLogger(this.getClass()); + + public RealDataController() { + } + + @RequestMapping({"/realTimeData"}) + public String realTimeData() { + return "modules/real-data/realtelemetry"; + } + + @RequestMapping({"/visiblecontrol"}) + public String getVisiblecontrol() { + return "modules/real-data/visiblecontrol"; + } + + @RequestMapping({"/report"}) + public String getReport() { + return "modules/real-data/report"; + } + + private String getStationId(){ + String deptId=AuthUtil.getDeptId(); + R data=sysClient.getDept(Long.valueOf(deptId)); + if(data!=null && data.getData()!=null){ + return data.getData().getStationId(); + } + return null; + } + + @ResponseBody + @RequestMapping({"/gettelemetryrealdatabygroupid"}) + public R getTelemetryRealTimeDataByGroupId(HttpServletRequest request, HttpServletResponse response, String groupId) { + DataGridModel dataModel = new DataGridModel(); + + try { + String stationId = String.valueOf(request.getSession().getAttribute("stationId")); + if(stationId ==null || "".equals(stationId)){ + stationId = getStationId(); + if(stationId ==null){ + stationId = "0"; + } + } + List dataList = this.dataService.getYcRealDataWithGroupInfo(groupId, stationId); + dataModel.setRows(dataList); + dataModel.setTotal((long)dataList.size()); + + } catch (Exception var7) { + dataModel = new DataGridModel(); + } + return R.data(dataModel); + } + + @ResponseBody + @RequestMapping({"/getRealData"}) + public R getRealData(HttpServletRequest request, HttpServletResponse response) { + String[] realIds = request.getParameterValues("realId"); + String stationId = (String)request.getSession().getAttribute("stationId"); + if(stationId ==null || "".equals(stationId)){ + stationId = getStationId(); + if(stationId ==null){ + stationId = "0"; + } + } + FactoryInfoDao facInfo = FacInfoFactory.getInstance(); + + try { + String[] ids; + if (realIds != null) { + ids = realIds; + } else { + Enumeration enumeration = request.getParameterNames(); + if (!enumeration.hasMoreElements()) { + return null; + } + + String idString = (String)enumeration.nextElement(); + idString = idString.substring(idString.indexOf("[") + 1, idString.indexOf("]")); + idString = idString.replaceAll("\"", ""); + ids = idString.split(","); + } + + if ((stationId == null || stationId.isEmpty()) && ids.length > 0) { + String[] var11 = ids; + int var10 = ids.length; + + for(int var23 = 0; var23 < var10; ++var23) { + String id = var11[var23]; + stationId = FacInfoFactory.getInstance().getStationIdByRealId(id); + if (stationId != null && !stationId.isEmpty()) { + break; + } + } + } + + if (stationId != null) { + Map dataMap = new HashMap(); + List ycList = new ArrayList(); + List yxList = new ArrayList(); + List noneList = new ArrayList(); + List ycStrList = new ArrayList(); + List yxStrList = new ArrayList(); + List noneStrList = new ArrayList(); + + for(int i = 0; i < ids.length; ++i) { + ids[i] = ids[i].trim(); + int type = facInfo.getDataType(ids[i]); + BigInteger bi = new BigInteger(ids[i]); + long idValue = bi.longValue(); + if (PointType.IsYc.getCode() == type) { + ycList.add(idValue); + ycStrList.add(ids[i]); + } else if (PointType.IsYx.getCode() == type) { + yxList.add(idValue); + yxStrList.add(ids[i]); + } else { + noneList.add(idValue); + noneStrList.add(ids[i]); + } + } + + long[] yxArray; + int j; + if (ycList.size() > 0) { + yxArray = new long[ycList.size()]; + + for(j = 0; j < ycList.size(); ++j) { + yxArray[j] = (Long)ycList.get(j); + } + + List ycDataList = this.dataService.getYcRealData(ycStrList, stationId); + + for(j = 0; j < ycList.size(); ++j) { + dataMap.put((String)ycStrList.get(j), (Data)ycDataList.get(j)); + } + } + + if (yxList.size() > 0) { + yxArray = new long[yxList.size()]; + + for(j = 0; j < yxList.size(); ++j) { + yxArray[j] = (Long)yxList.get(j); + } + + List yxDataList = this.dataService.getYxRealData(yxStrList, stationId); + + for(j = 0; j < yxList.size(); ++j) { + dataMap.put((String)yxStrList.get(j), (Data)yxDataList.get(j)); + } + } + + if (noneList.size() > 0) { + for(int m = 0; m < noneList.size(); ++m) { + Data data = new Data(); + data.setQ(1); + data.setValue(0.0D); + dataMap.put((String)noneStrList.get(m), data); + } + } + + return R.data(dataMap); + } else { + return R.fail(500,"没有获取到stationId"); + } + } catch (Exception var20) { + return R.fail(500,"服务器错误"); + } + } + + @ResponseBody + @RequestMapping({"/getStationIdByRealId"}) + public String getStationIdByRealId(String id) { + return FacInfoFactory.getInstance().getStationIdByRealId(id); + } + + @ResponseBody + @RequestMapping({"/updateSheet"}) + public void updateSheet(HttpServletRequest request, HttpServletResponse response) { + String dataString = null; + Enumeration enumeration = request.getParameterNames(); + if (enumeration.hasMoreElements()) { + dataString = (String)enumeration.nextElement(); + } + + WorkBook workBook = (WorkBook) JSON.parseObject(dataString, WorkBook.class); + Date date = DateUtils.parseDate(workBook.getDatetime()); + workBook.setDatetime(DateUtils.formatDate(date, new Object[]{"yyyy-MM-dd HH:mm:ss"})); + this.hisDataService.updateSheetResponse(request, response, workBook); + } + + @ResponseBody + @RequestMapping({"/yklogin"}) + public void ykLogin(HttpServletRequest request, HttpServletResponse response) { + try { + request.setCharacterEncoding("UTF-8"); + String action = request.getParameter("action"); + String data = new String(); + if (action == null) { + Enumeration enumeration = request.getParameterNames(); + YkAction ykAction = new YkAction(); + if (enumeration.hasMoreElements()) { + String parameterString = (String)enumeration.nextElement(); + ykAction = (YkAction) JSON.parseObject(parameterString, YkAction.class); + action = ykAction.getAction(); + data = ykAction.getData(); + } + + switch(action.hashCode()) { + case -776910958: + if (!action.equals("wufang")) { + } + break; + case -532525754: + if (action.equals("checkPhone")) { + this.checkPhone(request, response, data); + } + break; + case -506466463: + if (action.equals("checklogin")) { + this.checklogin(request, response, ykAction); + } + break; + case -504644400: + if (action.equals("normalyklogin")) { + this.normalyklogin(request, response, data); + } + break; + case -248978179: + if (action.equals("monitoryklogin")) { + this.monitoryklogin(request, response, data); + } + break; + case 1246948757: + if (action.equals("sendCode")) { + this.sendCode(request, response); + } + break; + case 1531653689: + if (action.equals("normalyk")) { + this.normalyk(request, response, data); + } + } + } + } catch (Exception var8) { + var8.printStackTrace(); + this.logger.error("服务器错误", var8); + } + + } + + private void monitoryklogin(HttpServletRequest request, HttpServletResponse response, String data) { + try { + HttpSession session = request.getSession(); + Map keyMap = (Map)session.getAttribute(KEYPAIR); + Date date = (Date)session.getAttribute(OPERATETIME); + if (keyMap != null && date != null) { + if ((new Date()).getTime() - date.getTime() > CHECKTIMEOUT) { + this.loginResponse(session, response, "211", "时间过期!"); + } else { +// RSAPrivateKey privateKey = (RSAPrivateKey)keyMap.get("private"); +// String receiveString = RSAUtils.decryptByPrivateKey(data, privateKey); +// String[] receiveArray = receiveString.split(","); +// String id = receiveArray[0].trim(); +// String password = receiveArray[1].trim(); +// long timeMill = Long.parseLong(receiveArray[2].trim()); + //AMSClient client = AMSClient.getInstance(UserUtils.getAMSIp()); + //int ret = client.ValidatePwdEx(id, password); +// if (ret == 0) { +// this.loginResponse(session, response, "211", "用户名或密码错误"); +// } else if (ret < 0) { +// this.loginResponse(session, response, "211", "权限服务器错误"); +// } else if (timeMill != date.getTime()) { +// this.loginResponse(session, response, "213", "时间错误"); +// } else if (!UserUtils.isMonitor(id)) { +// this.loginResponse(session, response, "212", "没有监护员权限"); +// } else { +// this.loginResponse(session, response, "200", "登录成功"); +// } + this.loginResponse(session, response, "212", "没有权限!"); + } + } else { + this.loginResponse(session, response, "211", "验证失败!"); + } + } catch (Exception var16) { + this.logger.error("系统错误", var16); + var16.printStackTrace(); + } + + } + + private void checklogin(HttpServletRequest request, HttpServletResponse response, YkAction ykAction) { + String resultCode = "209"; + String resultInfo = "系统错误"; + RSAPublicKey rsaPublicKey = null; + Date date = new Date(); + + try { + Map keyMap = RSAUtils.getKeys(); + rsaPublicKey = (RSAPublicKey)keyMap.get("public"); + HttpSession session = request.getSession(); + session.setAttribute(KEYPAIR, keyMap); + session.setAttribute(OPERATETIME, date); + + String stationId = (String)session.getAttribute("stationId"); + if(stationId ==null || "".equals(stationId)){ + stationId = getStationId(); + if(stationId ==null){ + stationId = "0"; + } + } + + if (stationId == null || stationId.isEmpty() || ykAction.getStationId() != null && !ykAction.getStationId().isEmpty()) { + stationId = ykAction.getStationId(); + if (stationId != null && !stationId.isEmpty()) { + session.setAttribute("stationId", stationId); + } + } + + BladeUser userInfo=AuthUtil.getUser(); + + String userId = null; + if (userInfo == null || ykAction.getUserId() != null && !ykAction.getUserId().isEmpty()) { + userId = ykAction.getUserId(); + if (userInfo != null) { + session.setAttribute("currentUserInfo", userInfo); + } + +// User user = UserUtils.getUserDetail(userId); +// if (user != null && user.getId() != null) { +// session.setAttribute("currentUser", user); +// session.setAttribute("currentUserId", user.getId()); +// } + } else { + userId = String.valueOf(userInfo.getUserId()); + } + + String deviceCode = ykAction.getData(); + if (deviceCode != null) { + session.setAttribute("current_device", deviceCode); + } + + if (stationId != null +// && this.dataService.checkStation(stationId, userId) + ) { +// if (userInfo != null && userInfo.UserAccount != null) { +// if (!this.dataService.checkDevice(userInfo.UserAccount, deviceCode)) { +// resultCode = "204"; +// resultInfo = "设备没有遥控权限!"; +// } else if (!this.dataService.phoneChecked(userId, ykAction.getData(), RealDataUtil.getIpAdrress(request))) { +//// User user = UserUtils.getUserDetail(userId); +//// if (user != null && user.getPhone() != null && !user.getPhone().isEmpty()) { +//// String phoneNum = user.getPhone(); +//// String phoneEnd = phoneNum.substring(phoneNum.length() - 4 < 0 ? 0 : phoneNum.length() - 4, phoneNum.length()); +//// resultCode = "202"; +//// resultInfo = "请填入预留尾号为" + phoneEnd + "的手机收到的验证码!"; +//// } else { +//// resultCode = "205"; +//// resultInfo = "没有预留验证手机号!"; +//// } +// } else { +// resultCode = "200"; +// resultInfo = "已登录!"; +// } +// } else { +// resultCode = "201"; +// resultInfo = "未登录!"; +// } + } else { + resultCode = "203"; + resultInfo = "站点没有遥控权限!"; + } + } catch (Exception var17) { + this.logger.error("系统错误", var17); + var17.printStackTrace(); + } + + this.writeLoginResponseContent(response, resultCode, resultInfo, rsaPublicKey.getPublicExponent().toString(16), rsaPublicKey.getModulus().toString(16), date); + } + + private void checkPhone(HttpServletRequest request, HttpServletResponse response, String data) { + String resultCode = "201"; + String resultInfo = "系统错误"; + Date currentTime = new Date(); + + try { + HttpSession session = request.getSession(); + Date sendTime = (Date)session.getAttribute("current_validate_time"); + String sendCode = (String)session.getAttribute("current_validate_code"); + if (sendTime == null) { + resultInfo = "时间同步错误"; + } else if (currentTime.getTime() - sendTime.getTime() > 60000L) { + resultInfo = "输入超时"; + } else if (sendCode != null && !sendCode.isEmpty()) { + if (!data.equals(sendCode)) { + resultInfo = "验证码错误"; + } else { + resultCode = "200"; + resultInfo = "手机验证成功"; + String devcieCode = (String)session.getAttribute("current_device"); +// UserInfo userInfo = (UserInfo)session.getAttribute("currentUserInfo"); +// if (devcieCode != null && userInfo != null && userInfo.UserAccount != null) { +// LoginLog loginlog = new LoginLog(); +// loginlog.setCode(devcieCode); +// loginlog.setLoginTime(new Date()); +// loginlog.setUserId(userInfo.UserAccount); +// loginlog.setIp(RealDataUtil.getIpAdrress(request)); +// loginlog.setType(Short.valueOf((short)1)); +// this.dataService.addLoginLog(loginlog); +// } + } + } else { + resultInfo = "同步错误"; + } + } catch (Exception var13) { + this.logger.error("系统错误", var13); + var13.printStackTrace(); + } + + this.writeLoginResponseContent(response, resultCode, resultInfo, "", "", currentTime); + } + + private void sendCode(HttpServletRequest request, HttpServletResponse response) { + String resultCode = "201"; + String resultInfo = "服务器错误"; + Date date = new Date(); + + try { + HttpSession session = request.getSession(); +// UserInfo userInfo = (UserInfo)session.getAttribute("currentUserInfo"); +// User user = UserUtils.getUserDetail(userInfo.UserAccount); +// String phoneNum = user.getPhone(); +// String phoneEnd = phoneNum.substring(phoneNum.length() - 4 < 0 ? 0 : phoneNum.length() - 4, phoneNum.length()); + DysmsMassageSender sender = new DysmsMassageSender(); + String code = RealDataUtil.getMessageValidateCode(6); +// sender.setPhoneNum(phoneNum); + sender.setTemplateParam(RealDataUtil.getMessageReplaceJson(code)); +// SendSmsResponse sendSmsResponse = sender.sendMessage(); +// String responseCode = sendSmsResponse.getCode(); +// if (responseCode != null && responseCode.equals("OK")) { +// resultCode = "200"; +//// resultInfo = "请填入预留尾号为" + phoneEnd + "的手机收到的验证码!"; +// session.setAttribute("current_validate_code", code); +// session.setAttribute("current_validate_time", date); +// } else { +// resultCode = "201"; +//// resultInfo = "预留的手机尾号为" + phoneEnd + "的手机发送验证失败,请确保手机能正常使用!"; +// } + } catch (Exception var15) { + this.logger.error("发送短信失败", var15); + var15.printStackTrace(); + } + + this.writeLoginResponseContent(response, resultCode, resultInfo, "", "", date); + } + + private String getLoginResponseContent(String status, String errorMsg, String e, String n, Date date) { + return "{\"status\":\"" + status + "\",\"errorMsg\":\"" + errorMsg + "\",\"result\":{\"key\":{\"e\":\"" + e + "\",\"n\":\"" + n + "\"},\"time\":\"" + date.getTime() + "\"}}"; + } + + private void writeLoginResponseContent(HttpServletResponse response, String status, String errorMsg, String e, String n, Date date) { + try { + response.setContentType("text/html;charset=utf-8"); + PrintWriter writer = response.getWriter(); + writer.print(this.getLoginResponseContent(status, errorMsg, e, n, date)); + } catch (IOException var8) { + this.logger.error("系统错误", e); + var8.printStackTrace(); + } + + } + + private void normalyklogin(HttpServletRequest request, HttpServletResponse response, String data) { + HttpSession session = request.getSession(); + String resultCode = "222"; + String resultInfo = "系统错误"; + + try { + Map keyMap = (Map)session.getAttribute(KEYPAIR); + Date date = (Date)session.getAttribute(OPERATETIME); + if (keyMap != null && date != null) { + if ((new Date()).getTime() - date.getTime() > CHECKTIMEOUT) { + resultCode = "211"; + resultInfo = "时间过期!"; + } else { + RSAPrivateKey privateKey = (RSAPrivateKey)keyMap.get("private"); + String receiveString = RSAUtils.decryptByPrivateKey(data, privateKey); + String[] receiveArray = receiveString.split(","); + String id = receiveArray[0].trim(); + String password = receiveArray[1].trim(); + long timeMill = Long.parseLong(receiveArray[2].trim()); +// AMSClient client = AMSClient.getInstance(UserUtils.getAMSIp()); +// UserInfoHolder userInfoHolder = new UserInfoHolder(); +// client.GetUser(id, userInfoHolder); +// UserInfo userInfo = userInfoHolder.value; +// if (id.equals(userInfo.UserAccount) +// && client.ValidatePwdEx(id, password) > 0 +// && timeMill == date.getTime()) { +// if (!UserUtils.isController(id)) { +// resultCode = "211"; +// resultInfo = "验证失败!"; +// } else { +// resultCode = "200"; +// resultInfo = "登录成功!"; +// } +// } else { +// resultCode = "211"; +// resultInfo = "获取用户信息失败!"; +// } + } + } else { + resultCode = "211"; + resultInfo = "验证失败!"; + } + } catch (Exception var19) { + this.logger.error("系统错误", var19); + var19.printStackTrace(); + } + + this.loginResponse(session, response, resultCode, resultInfo); + } + + private void normalyk(HttpServletRequest request, HttpServletResponse response, String data) { + String resultCode = "201"; + String resultInfo = "系统错误"; + HttpSession session = request.getSession(); + this.logger.error("开始发送遥控"); + + try { + Map keyMap = (Map)session.getAttribute(KEYPAIR); + RSAPrivateKey privateKey = (RSAPrivateKey)keyMap.get("private"); + String receiveString = RSAUtils.decryptByPrivateKey(data, privateKey); + String dataString = receiveString.substring(receiveString.indexOf("{") + 1, receiveString.indexOf("}")).replaceAll("[\"]", ""); + String[] dataList = dataString.split(":"); + String controlTypeString = null; + String hotidString = null; + String extraParamString = null; + String fivePreventionString = null; + + + for(int i = 0; i < dataList.length - 1; ++i) { + String title = dataList[i]; + String pramString = dataList[i + 1]; + int titelPosition = title.lastIndexOf(","); + title = titelPosition < 0 ? title.replaceAll("\"", "").trim() : title.substring(titelPosition + 1).replaceAll("\"", "").trim(); + String var20; + switch((var20 = title.toLowerCase()).hashCode()) { + case -1714291177: + if (var20.equals("controltype")) { + int controlPosition = pramString.lastIndexOf(","); + controlTypeString = controlPosition < 0 ? pramString.replaceAll("\"", "").trim() : pramString.substring(0, controlPosition).replaceAll("\"", "").trim(); + } + break; + case 99467816: + if (var20.equals("hotid")) { + i = pramString.lastIndexOf(","); + hotidString = i < 0 ? pramString.replaceAll("\"", "").trim() : pramString.substring(0, i).replaceAll("\"", "").trim(); + } + break; + case 325555042: + if (var20.equals("fiveprevention")) { + int dataPosition = pramString.lastIndexOf(","); + fivePreventionString = dataPosition < 0 ? pramString.replaceAll("\"", "").trim() : pramString.substring(0, dataPosition).replaceAll("\"", "").trim(); + } + break; + case 763006589: + if (var20.equals("extraparam")) { + if (pramString.indexOf("[") > 0 && pramString.indexOf("]") > 0) { + extraParamString = pramString.substring(pramString.indexOf("[") + 1, pramString.indexOf("]")).replaceAll("\"", ""); + } else { + extraParamString = pramString.replaceAll("\"", ""); + } + } + } + } + + if (controlTypeString != null && hotidString != null) { + YkWValue ykwValue = new YkWValue(); + BigInteger bi = new BigInteger(hotidString); + long hotid = bi.longValue(); + ykwValue.ID = hotid; +// ykwValue.setIdStr(hotidString); + double[] dblpara68; + if (extraParamString != null) { + String[] extraParamList = extraParamString.split(","); + dblpara68 = new double[extraParamList.length]; + + for(int i = 0; i < extraParamList.length; ++i) { + dblpara68[i] = Double.parseDouble(extraParamList[i].trim()); + } + + ykwValue.dblParam = dblpara68; + } + + label138: { + label137: { + switch(controlTypeString.hashCode()) { + case 49: + if (controlTypeString.equals("1")) { + ykwValue.YkCommand = EYkCommand.ykCommon; + } + break label138; + case 50: + if (controlTypeString.equals("2")) { + ykwValue.YkCommand = EYkCommand.ykCBreaker; + } + break label138; + case 51: + if (controlTypeString.equals("3")) { + ykwValue.YkCommand = EYkCommand.ykAdjust; + } + break label138; + case 54: + if (!controlTypeString.equals("6")) { + break label138; + } + break label137; + case 55: + if (!controlTypeString.equals("7")) { + break label138; + } + break; + case 56: + if (!controlTypeString.equals("8")) { + break label138; + } + break label137; + case 57: + if (!controlTypeString.equals("9")) { + break label138; + } + break; + default: + break label138; + } + + double[] dblpara79 = new double[]{1.0D}; + ykwValue.dblParam = dblpara79; + ykwValue.YkCommand = EYkCommand.ykCommon; + break label138; + } + + dblpara68 = new double[]{0.0D}; + ykwValue.dblParam = dblpara68; + ykwValue.YkCommand = EYkCommand.ykCommon; + } + + ykwValue.Operator = AuthUtil.getUserName(); + ykwValue.OpTime = new Date(); + if (fivePreventionString != null && fivePreventionString.equals("true")) { + boolean ret = ReadData.Instance.ReadData_Init(RealDataUtil.getDllPath(), RealDataUtil.getReadDllName(), RealDataUtil.getWriteDllName(), RealDataUtil.getFivePreventionName()); + if (ret) { + FivePrevInfo fpinfo = new FivePrevInfo(); + BasePoint point = FacInfoFactory.getInstance().getDataPointDef(hotidString); + fpinfo.ChannelIdx = Integer.parseInt(point.getChannelIndex()); + fpinfo.ModuleIdx = Integer.parseInt(point.getModuleIndex()); + fpinfo.DotIdx = Integer.parseInt(point.getAddressIndex()); + fpinfo.fpPara = Integer.parseInt(extraParamString.trim()); + fpinfo.YkCommand = ykwValue.YkCommand; + fpinfo.OpTime = new Date(); + EFPReturn wufangRet = ReadData.Instance.FivePrevCheck(fpinfo); + switch(wufangRet.ordinal()) { + case 1: + resultCode = "222"; + resultInfo = "五防验证服务器链接错误"; + break; + case 2: + resultCode = "222"; + resultInfo = "五防验证超时"; + break; + case 3: + resultCode = "222"; + resultInfo = "五防验证无效"; + break; + case 4: + resultCode = "222"; + resultInfo = "最后一个五防验证未结束"; + break; + case 5: + if (EYkRetStatus.yrsSuccess != ReadData.Instance.SendOrder(ykwValue)) { + resultCode = "221"; + resultInfo = "发送遥控失败"; + this.loginResponse(session, response, "221", "发送遥控失败"); + } else { +// String devcieCode = (String)session.getAttribute("current_device"); +// UserInfo userInfo = (UserInfo)session.getAttribute("currentUserInfo"); +// if (devcieCode != null && userInfo != null && userInfo.UserAccount != null) { +// LoginLog loginlog = new LoginLog(); +// loginlog.setCode(devcieCode); +// loginlog.setLoginTime(new Date()); +// loginlog.setUserId(userInfo.UserAccount); +// loginlog.setType(Short.valueOf((short)2)); +// loginlog.setIp(RealDataUtil.getIpAdrress(request)); +// loginlog.setRemark("遥控:" + controlTypeString); +// this.dataService.addLoginLog(loginlog); +// } + + resultCode = "200"; + resultInfo = "操作成功"; + } + break; + case 6: + resultCode = "222"; + resultInfo = "最后一个五防验证未通过"; + break; + default: + resultCode = "221"; + resultInfo = "发送遥控失败"; + } + } + } else if (EYkRetStatus.yrsSuccess != ReadData.Instance.SendOrder(ykwValue)) { + resultCode = "221"; + resultInfo = "发送遥控失败"; + } else { + String devcieCode = (String)session.getAttribute("current_device"); +// UserInfo userInfo = (UserInfo)session.getAttribute("currentUserInfo"); +// if (devcieCode != null && userInfo != null && userInfo.UserAccount != null) { +// LoginLog loginlog = new LoginLog(); +// loginlog.setCode(devcieCode); +// loginlog.setLoginTime(new Date()); +// loginlog.setUserId(userInfo.UserAccount); +// loginlog.setType(Short.valueOf((short)2)); +// loginlog.setIp(RealDataUtil.getIpAdrress(request)); +// loginlog.setRemark("遥控:" + controlTypeString); +// this.dataService.addLoginLog(loginlog); +// } + + resultCode = "200"; + resultInfo = "操作成功"; + } + } else { + resultCode = "222"; + resultInfo = "数据错误"; + } + } catch (Exception var28) { + var28.printStackTrace(); + this.logger.error("系统错误", var28); + } + + this.loginResponse(session, response, resultCode, resultInfo); + } + + private void loginResponse(HttpSession session, HttpServletResponse response, String status, String errorMsg) { + new HashMap(); + RSAPublicKey rsaPublicKey = null; + Date date = new Date(); + + try { + Map keyMap = RSAUtils.getKeys(); + rsaPublicKey = (RSAPublicKey)keyMap.get("public"); + session.setAttribute(KEYPAIR, keyMap); + session.setAttribute(OPERATETIME, date); + } catch (NoSuchAlgorithmException var9) { + this.logger.error("系统错误", var9); + var9.printStackTrace(); + } + + this.writeLoginResponseContent(response, status, errorMsg, rsaPublicKey == null ? "" : rsaPublicKey.getPublicExponent().toString(16), rsaPublicKey == null ? "" : rsaPublicKey.getModulus().toString(16), date); + } + + @ResponseBody + @RequestMapping({"/paramName"}) + public RealIdInfoResponse paramName(HttpServletRequest request, HttpServletResponse response) { + String dataString = null; + Enumeration enumeration = request.getParameterNames(); + if (enumeration.hasMoreElements()) { + dataString = (String)enumeration.nextElement(); + } + + BaseRequest realId = (BaseRequest) JSON.parseObject(dataString, BaseRequest.class); + RealIdInfoResponse result = new RealIdInfoResponse(); + BasePoint point = FacInfoFactory.getInstance().getDataPointDef(realId.getRealId()); + result.setStatus("200"); + result.setErrorMsg("success"); + result.setResult(point.getFactoryName() + "-" + point.getGroupName() + "-" + point.getName()); + return result; + } + + @ResponseBody + @RequestMapping({"/rds"}) + public DataResponse rds(HttpServletRequest request, HttpServletResponse response) { + DataResponse result = new DataResponse(); + String dataString = null; + Enumeration enumeration = request.getParameterNames(); + if (enumeration.hasMoreElements()) { + dataString = (String)enumeration.nextElement(); + } + + RdsRequest rdsRequest = (RdsRequest) JSON.parseObject(dataString, RdsRequest.class); + String stationId = (String)request.getSession().getAttribute("stationId"); + if (stationId != null && !stationId.isEmpty()) { + String var8; + switch((var8 = rdsRequest.getAction().toLowerCase()).hashCode()) { + case 102230: + if (var8.equals("get")) { + result = this.getRds(rdsRequest, stationId); + } + break; + case 113762: + if (var8.equals("set")) { + result = this.setRds(rdsRequest); + } + } + } + + return (DataResponse)result; + } + + private RdsGetResponse getRds(RdsRequest rdsRequest) { + RdsGetResponse resResPonse = new RdsGetResponse(); + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("获取数据失败"); + + try { + BasePoint point = FacInfoFactory.getInstance().getDataPoint(rdsRequest.getChannel(), rdsRequest.getModule(), rdsRequest.getAddress(), rdsRequest.getType()); + if (point.getDataType() != PointType.IsNull.getCode() && point.getId() != null) { + boolean ret = ReadData.Instance.ReadData_Init(RealDataUtil.getDllPath(), RealDataUtil.getReadDllName(), RealDataUtil.getWriteDllName(), RealDataUtil.getFivePreventionName()); + if (ret) { + switch(rdsRequest.getType()) { + case 0: + long[] YcID = new long[]{Long.parseLong(point.getId())}; + List YcV = new ArrayList(); + EReadDataRet readDataRet = ReadData.Instance.ReadAnyDatasIDByDll(YcID, YcV, (long[])null, (List)null); + if (EReadDataRet.rdSuccess == readDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("成功"); + resResPonse.setResult(((YcRValue)YcV.get(0)).Value); + } + break; + case 1: + long[] YxID = new long[]{Long.parseLong(point.getId())}; + List YxV = new ArrayList(); + EReadDataRet readyxDataRet = ReadData.Instance.ReadAnyDatasIDByDll((long[])null, (List)null, YxID, YxV); + if (EReadDataRet.rdSuccess == readyxDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("成功"); + resResPonse.setResult((double)((YxRValue)YxV.get(0)).Value); + } + } + } + } else { + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("配置信息错误"); + } + } catch (Exception var11) { + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("操作失败"); + this.logger.error("服务器错误", var11); + var11.printStackTrace(); + } + + return resResPonse; + } + + private RdsGetResponse getRds(RdsRequest rdsRequest, String stationId) { + RdsGetResponse resResPonse = new RdsGetResponse(); + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("获取数据失败"); + + try { + BasePoint point = FacInfoFactory.getInstance().getDataPoint(rdsRequest.getChannel(), rdsRequest.getModule(), rdsRequest.getAddress(), rdsRequest.getType()); + if (point.getDataType() != PointType.IsNull.getCode() && point.getId() != null) { + boolean ret = ReadData.Instance.ReadData_Init(RealDataUtil.getDllPath(), RealDataUtil.getReadDllName(), RealDataUtil.getWriteDllName(), RealDataUtil.getFivePreventionName()); + if (ret) { + switch(rdsRequest.getType()) { + case 0: + List ycIdList = new ArrayList(); + ycIdList.add(point.getId()); + List YcV = new ArrayList(); + EReadDataRet readDataRet = ReadData.Instance.ReadAnyDatasID(ycIdList, YcV, (List)null, (List)null, stationId); + if (EReadDataRet.rdSuccess == readDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("成功"); + resResPonse.setResult(((YcRValue)YcV.get(0)).Value); + } + break; + case 1: + List yxIdList = new ArrayList(); + yxIdList.add(point.getId()); + List YxV = new ArrayList(); + EReadDataRet readyxDataRet = ReadData.Instance.ReadAnyDatasID((List)null, (List)null, yxIdList, YxV, stationId); + if (EReadDataRet.rdSuccess == readyxDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("成功"); + resResPonse.setResult((double)((YxRValue)YxV.get(0)).Value); + } + } + } + } else { + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("配置信息错误"); + } + } catch (Exception var12) { + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("操作失败"); + this.logger.error("服务器错误", var12); + var12.printStackTrace(); + } + + return resResPonse; + } + + private RdsGetResponse setRds(RdsRequest rdsRequest) { + RdsGetResponse resResPonse = new RdsGetResponse(); + + try { + boolean ret = ReadData.Instance.ReadData_Init(RealDataUtil.getDllPath(), RealDataUtil.getReadDllName(), RealDataUtil.getWriteDllName(), RealDataUtil.getFivePreventionName()); + if (ret) { + switch(rdsRequest.getType()) { + case 0: + boolean readDataRet = ReadData.Instance.WriteOneYc(rdsRequest.getChannel(), rdsRequest.getModule(), rdsRequest.getAddress(), rdsRequest.getValue(), rdsRequest.getQ(), new Date()); + if (readDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("获取数据成功"); + resResPonse.setResult(1.0D); + } + break; + case 1: + boolean readyxDataRet = ReadData.Instance.WriteOneYc(rdsRequest.getChannel(), rdsRequest.getModule(), rdsRequest.getAddress(), rdsRequest.getValue(), rdsRequest.getQ(), new Date()); + if (readyxDataRet) { + resResPonse.setStatus("200"); + resResPonse.setErrorMsg("获取数据成功"); + resResPonse.setResult(1.0D); + } + break; + default: + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("操作失败"); + } + } + } catch (Exception var6) { + resResPonse.setStatus("201"); + resResPonse.setErrorMsg("操作失败"); + this.logger.error(var6.getMessage()); + var6.printStackTrace(); + } + + return resResPonse; + } + +// public static void main(String[] args) { +// String idstr = "15134726553700663573"; +// BigInteger bi = new BigInteger(idstr); +// long idValue = bi.longValue(); +// System.out.println(idValue); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataUserController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataUserController.java new file mode 100644 index 0000000..167dfaa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/RealDataUserController.java @@ -0,0 +1,68 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.real.service.RealDataSystemService; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Controller +@RequestMapping({"/realdatauserctrl"}) +public class RealDataUserController { + @Autowired + private RealDataSystemService systemService; + + @Value(value = "${dynamic.file.path}") + private String dynamicFilePath; + + @Autowired + ISysClient sysClient; + + public RealDataUserController() { + } + + @RequestMapping({"/unselected"}) + public String unselected(HttpServletRequest request, HttpServletResponse response) { + return "modules/real-data/unselected"; + } + + private String getStationId(){ + String deptId= AuthUtil.getDeptId(); + R data=sysClient.getDept(Long.valueOf(deptId)); + if(data!=null && data.getData()!=null){ + return data.getData().getStationId(); + } + return null; + } + + @ResponseBody + @RequestMapping({"/getRealFileMenuList"}) + public List getRealFileMenuList(HttpServletRequest request, String type, String operateType) { +// String path = request.getSession().getServletContext().getRealPath("/"); +// path = path + UserUtils.getDynamicFilePath() + type.trim(); + String path = dynamicFilePath + type.trim(); + String stationId = String.valueOf(request.getSession().getAttribute("stationId")); + if(stationId ==null || "".equals(stationId)){ + stationId = getStationId(); + if(stationId ==null){ + stationId = "0"; + } + } + System.out.println("getRealFileMenuList stationId:" + stationId); + return this.systemService.getRealFileList(path, operateType, stationId); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/WorkStationController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/WorkStationController.java new file mode 100644 index 0000000..de9a250 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/WorkStationController.java @@ -0,0 +1,96 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.real.Enums.QryTypeEnum; +import org.springblade.hz3000_real_data.real.service.IWorkStationService; +import org.springblade.hz3000_real_data.real.service.SoeDataService; +import org.springblade.hz3000_real_data.real.service.impl.WorkStationServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Controller +@RequestMapping({"/workstation"}) +public class WorkStationController { + @Autowired + private IWorkStationService workStationService; + + public WorkStationController() { + } + + @ResponseBody + @RequestMapping({"/getSoeData"}) + public R getSoeData(String userId) { + return R.data(this.workStationService.SoeData(userId)); + } + + @ResponseBody + @RequestMapping({"/getDayPower"}) + public R getDayPower(HttpServletRequest request, String userId) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String fdate = df.format(new Date()); + return R.data(this.workStationService.PowerCnt(userId, fdate + " 00:00:00", fdate + " 23:59:59")); + } + + @ResponseBody + @RequestMapping({"/getMonPower"}) + public R getMonPower(String userId) { + Map dateMap = WorkStationServiceImpl.getStartandEnd(new Date()); + return R.data(this.workStationService.PowerCnt(userId, (String)dateMap.get("startdt") + " 00:00:00", (String)dateMap.get("enddt") + " 23:59:59")); + } + + @ResponseBody + @RequestMapping({"/getOpenCnt"}) + public R EquOpenCnt(String userId, HttpServletRequest request) { + String stationId = (String)request.getSession().getAttribute("stationId"); + return R.data(this.workStationService.EquOpenOrLoad(userId, QryTypeEnum.qryOpenOff.getCode(), stationId)); + } + + @ResponseBody + @RequestMapping({"/getTotalLoad"}) + public R getTotalLoad(String userId, HttpServletRequest request) { + + String stationId = (String)request.getSession().getAttribute("stationId"); + return R.data(this.workStationService.EquOpenOrLoad(userId, QryTypeEnum.qryLoad.getCode(), stationId)); + + } + + @ResponseBody + @RequestMapping({"/defectStatis"}) + public R defectStatis(String userId) { + + return R.data(this.workStationService.getBugInfos(userId)); + + } + + @ResponseBody + @RequestMapping({"/totalCapacity"}) + public R totalCapacity(String userId) { + + return R.data(this.workStationService.totalCapacity(userId)); + + } + + @ResponseBody + @RequestMapping({"/soetest"}) + public R totalCapacity() { + Map retMap = new HashMap(); + + retMap.put("soeList", SoeDataService.soeListMap); + retMap.put("total", 6); + return R.data(retMap); + + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YcRealDataRepcController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YcRealDataRepcController.java new file mode 100644 index 0000000..c3bebc0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YcRealDataRepcController.java @@ -0,0 +1,75 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.hz3000_real_data.real.service.RealDataService; +import org.springblade.hz3000_real_data.real.vo.PrecYcValueResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.http.HttpSession; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +@Controller +@RequestMapping({"/hz3000/yc"}) +public class YcRealDataRepcController { + @Autowired + private RealDataService realDataService; + + public YcRealDataRepcController() { + } + + + @RequestMapping( + value = {"/single/{realId}"}, + method = {RequestMethod.GET} + ) + public R singleValue(@PathVariable String realId, HttpSession session) { + List dataList = this.realDataService.getYcRealData(Arrays.asList(realId), this.getStationId(session)); + PrecYcValueResult result=null; + if(Objects.nonNull(dataList)){ + result=(PrecYcValueResult)dataList.stream().filter(Objects::nonNull).findAny().map(PrecYcValueResult::new).orElse(null); + } + return R.data(result,"查询成功"); + } + + + @RequestMapping( + value = {"/batch/{realIds}"}, + method = {RequestMethod.GET}, + produces = {"text/plain"} + ) + public R batchValues(@PathVariable List realIds, HttpSession session) { + List dataList = this.realDataService.getYcRealData(realIds, this.getStationId(session)); + List list=new ArrayList<>(); + if( Objects.nonNull(dataList)) { + list =(List)dataList.stream().filter(Objects::nonNull).map(PrecYcValueResult::new).collect(Collectors.toList()); + } + return R.data(list,"查询成功"); + } + + @RequestMapping( + value = {"/{stationId}"}, + method = {RequestMethod.GET} + ) + public String setStationId(@PathVariable String stationId, HttpSession session) { + session.setAttribute("stationId", stationId); + return "OK"; + } + + private String getStationId(HttpSession session) { + return String.valueOf(session.getAttribute("stationId")); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YkWebSocket.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YkWebSocket.java new file mode 100644 index 0000000..8047df8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YkWebSocket.java @@ -0,0 +1,127 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYkRetStatus; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEvent; +import com.alibaba.fastjson.JSON; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.real.entity.ReceivId; +import org.springblade.hz3000_real_data.real.entity.ResponsContent; +import org.springblade.hz3000_real_data.real.utils.YkReturnEventListener; + +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.concurrent.CopyOnWriteArraySet; + +@ServerEndpoint("/hz3000RealData/websocket") +public class YkWebSocket { + private static int onlineCount = 0; + public static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet(); + private String pramaryKey; + Logger logger = LoggerFactory.getLogger(this.getClass()); + private Session session; + + public YkWebSocket() { + } + + @OnOpen + public void onOpen(Session session) { + this.session = session; + addToSet(this); + addOnlineCount(); + System.out.println("有新连接加入!当前在线人数为" + getOnlineCount()); + this.logger.info("有新连接加入!当前在线人数为" + getOnlineCount()); + } + + @OnClose + public void onClose() { + removeFromSet(this); + subOnlineCount(); + this.logger.info("有一连接关闭!当前在线人数为" + getOnlineCount()); + System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount()); + } + + @OnMessage + public synchronized void onMessage(String message, Session session) { + ReceivId receivId = (ReceivId) JSON.parseObject(message, ReceivId.class); + this.logger.error("websocket 对 id: " + receivId.getHotid() + " 进行遥控反校"); + this.pramaryKey = receivId.getHotid(); + BigInteger bigInteger = new BigInteger(receivId.getHotid()); + long id = bigInteger.longValue(); + this.logger.info("id = " + id); + Iterator iterator = YkReturnEventListener.eventList.iterator(); + + while(iterator.hasNext()) { + RevYkReturnEvent event = (RevYkReturnEvent)iterator.next(); + if (this.pramaryKey.equals(String.valueOf(event.Ykv.ID))) { +// if (this.pramaryKey.equals(event.Ykv.getIdStr())) { + this.sendMessage(event.Ykstatus); + iterator.remove(); + break; + } + } + + } + + @OnError + public void onError(Session session, Throwable error) { + System.out.println("发生错误"); + this.logger.error(error.getMessage()); + error.printStackTrace(); + } + + public void sendMessage(EYkRetStatus status) { + ResponsContent respons = new ResponsContent(); + if (EYkRetStatus.yrsSuccess == status) { + respons.setStatus(200); + respons.setErrorMsg("success!"); + } else { + respons.setStatus(231); + respons.setErrorMsg("返校失败"); + } + + try { + this.session.getBasicRemote().sendText(JSON.toJSONString(respons)); + } catch (IOException var4) { + this.logger.error(var4.getMessage()); + var4.printStackTrace(); + } + + } + + public String getPramaryKey() { + return this.pramaryKey; + } + + public void setPramaryKey(String pramaryKey) { + this.pramaryKey = pramaryKey; + } + + public static synchronized int getOnlineCount() { + return onlineCount; + } + + public static synchronized void addOnlineCount() { + ++onlineCount; + } + + public static synchronized void subOnlineCount() { + --onlineCount; + } + + public static synchronized void addToSet(YkWebSocket socket) { + webSocketSet.add(socket); + } + + public static synchronized void removeFromSet(YkWebSocket socket) { + webSocketSet.remove(socket); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YxRealDataRepcController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YxRealDataRepcController.java new file mode 100644 index 0000000..e6514c5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/controller/YxRealDataRepcController.java @@ -0,0 +1,78 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.controller; + +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadData; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EReadDataRet; +import org.springblade.hz3000_real_data.readdata.ReadData.YxRValue; +import org.springblade.hz3000_real_data.real.vo.PrecYxValueResult; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.http.HttpSession; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +@Controller +@RequestMapping({"/hz3000RealData/yx"}) +public class YxRealDataRepcController { + public YxRealDataRepcController() { + } + + + @RequestMapping( + value = {"/single/{realId}"}, + method = {RequestMethod.GET} + ) + public R singleValue(@PathVariable String realId, HttpSession session) { + List dataList = this.getYxRealData(Arrays.asList(realId), this.getStationId(session)); + + PrecYxValueResult result=null; + if(Objects.nonNull(dataList)){ + result=(PrecYxValueResult)dataList.stream().filter(Objects::nonNull).findAny().map(PrecYxValueResult::new).orElse(null); + } + return R.data(result,"查询成功"); + } + + + @RequestMapping( + value = {"/batch/{realIds}"}, + method = {RequestMethod.GET} + ) + public R batchValues(@PathVariable List realIds, HttpSession session) { + List dataList = this.getYxRealData(realIds, this.getStationId(session)); + List list=new ArrayList<>(); + if( Objects.nonNull(dataList)) { + list =(List)dataList.stream().filter(Objects::nonNull).map(PrecYxValueResult::new).collect(Collectors.toList()); + } + return R.data(list,"查询成功"); + } + + private List getYxRealData(List realIds, String stationId) { + List yxRValueList = new ArrayList(); + EReadDataRet readDataRet = ReadData.Instance.ReadAnyDatasID((List)null, (List)null, realIds, yxRValueList, stationId); + return EReadDataRet.rdFail == readDataRet ? null : yxRValueList; + } + + @RequestMapping( + value = {"/{stationId}"}, + method = {RequestMethod.POST} + ) + public String setStationId(@PathVariable String stationId, HttpSession session) { + session.setAttribute("stationId", stationId); + return "OK"; + } + + private String getStationId(HttpSession session) { + return String.valueOf(session.getAttribute("stationId")); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/CommonEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/CommonEntity.java new file mode 100644 index 0000000..1175901 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/CommonEntity.java @@ -0,0 +1,34 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +public class CommonEntity { + private String val; + private String datatime; + + public CommonEntity() { + } + + public String getVal() { + return this.val; + } + + public void setVal(String val) { + this.val = val; + } + + public String getDatatime() { + return this.datatime; + } + + public void setDatatime(String datatime) { + this.datatime = datatime; + } + + public String toString() { + return "CommonEntity [val=" + this.val + ", datatime=" + this.datatime + "]"; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataResultSet.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataResultSet.java new file mode 100644 index 0000000..d8d8beb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataResultSet.java @@ -0,0 +1,41 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +import java.util.Map; + +public class DataResultSet { + private String status; + private String errorMsg; + private Map result; + + public DataResultSet() { + } + + public String getStatus() { + return this.status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getErrorMsg() { + return this.errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public Map getResult() { + return this.result; + } + + public void setResult(Map result) { + this.result = result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataSourceHolder.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataSourceHolder.java new file mode 100644 index 0000000..f18a43c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/DataSourceHolder.java @@ -0,0 +1,20 @@ +package org.springblade.hz3000_real_data.real.entity; + +public class DataSourceHolder { + private static final ThreadLocal contextHolder = new ThreadLocal(); + + private DataSourceHolder() { + } + + public static synchronized void setDBType(String dbType) { + contextHolder.set(dbType); + } + + public static synchronized String getDBType() { + return (String)contextHolder.get(); + } + + public static void clearDBType() { + contextHolder.remove(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/GenerationXml.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/GenerationXml.java new file mode 100644 index 0000000..42f7c6c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/GenerationXml.java @@ -0,0 +1,48 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +public class GenerationXml { + private String openSts; + private String power; + private String p; + private Long capacity; + + public GenerationXml() { + } + + public String getOpenSts() { + return this.openSts; + } + + public void setOpenSts(String openSts) { + this.openSts = openSts; + } + + public String getPower() { + return this.power; + } + + public void setPower(String power) { + this.power = power; + } + + public String getP() { + return this.p; + } + + public void setP(String p) { + this.p = p; + } + + public Long getCapacity() { + return this.capacity; + } + + public void setCapacity(Long capacity) { + this.capacity = capacity; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ReceivId.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ReceivId.java new file mode 100644 index 0000000..3804210 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ReceivId.java @@ -0,0 +1,21 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +public class ReceivId { + private String hotid; + + public ReceivId() { + } + + public String getHotid() { + return this.hotid; + } + + public void setHotid(String hotid) { + this.hotid = hotid; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponsContent.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponsContent.java new file mode 100644 index 0000000..cffb9f0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponsContent.java @@ -0,0 +1,30 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +public class ResponsContent { + private int status; + private String errorMsg; + + public ResponsContent() { + } + + public int getStatus() { + return this.status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getErrorMsg() { + return this.errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponseConstants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponseConstants.java new file mode 100644 index 0000000..3b1aebb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/ResponseConstants.java @@ -0,0 +1,34 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.realdata.entity; + +public class ResponseConstants { + public static final String SUCCESS_CODE = "200"; + public static final String FAILURE_CODE = "201"; + public static final String GET_DATA_FAILED_CODE = "202"; + public static final String CHECK_ERROR_CODE = "211"; + public static final String AUTHORITY_ERROR_CODE = "212"; + public static final String TIME_ERROR_CODE = "213"; + public static final String SEND_DATA_FAILED = "221"; + public static final String DATA_ERROR_CODE = "222"; + public static final String GET_DATA_FAILED = "获取数据失败"; + public static final String GET_DATA_SUCCESS = "获取数据成功"; + public static final String SUCCESS = "成功"; + public static final String OPERATE_FAILED = "操作失败"; + public static final String TIME_OUT = "时间过期"; + public static final String TIME_ERROR = "时间错误"; + public static final String DATA_ERROR = "数据错误"; + public static final String CHECK_ERROR = "验证失败"; + public static final String SERVER_ERROR = "服务器错误"; + public static final String NAME_PWD_ERROR = "用户密码错误"; + public static final String AUTHORITY_ERROR = "没有权限"; + public static final String LOGIN_SUCCESS = "登录成功"; + public static final String LOGIN_FAILED = "登录失败"; + public static final String CONFIG_INFO_ERROR = "配置信息错误"; + + public ResponseConstants() { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/SoeEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/SoeEntity.java new file mode 100644 index 0000000..601d2cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/SoeEntity.java @@ -0,0 +1,77 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +import java.util.Date; + +public class SoeEntity { + private Date alarmDt; + private String stationNm; + private String stationId; + private String alarmType; + private String content; + private String realId; + private String explain; + + public SoeEntity() { + } + + public Date getAlarmDt() { + return this.alarmDt; + } + + public void setAlarmDt(Date alarmDt) { + this.alarmDt = alarmDt; + } + + public String getStationNm() { + return this.stationNm; + } + + public void setStationNm(String stationNm) { + this.stationNm = stationNm; + } + + public String getStationId() { + return this.stationId; + } + + public void setStationId(String stationId) { + this.stationId = stationId; + } + + public String getAlarmType() { + return this.alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getContent() { + return this.content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getRealId() { + return this.realId; + } + + public void setRealId(String realId) { + this.realId = realId; + } + + public String getExplain() { + return this.explain; + } + + public void setExplain(String explain) { + this.explain = explain; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/StationXml.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/StationXml.java new file mode 100644 index 0000000..8e602b7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/StationXml.java @@ -0,0 +1,32 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +import java.util.List; + +public class StationXml { + private String StationId; + private List generList; + + public StationXml() { + } + + public String getStationId() { + return this.StationId; + } + + public void setStationId(String stationId) { + this.StationId = stationId; + } + + public List getGenerList() { + return this.generList; + } + + public void setGenerList(List generList) { + this.generList = generList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/TimeValue.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/TimeValue.java new file mode 100644 index 0000000..61ee46a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/entity/TimeValue.java @@ -0,0 +1,35 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.entity; + +public class TimeValue { + private String time; + private double value; + + public String getTime() { + return this.time; + } + + public void setTime(String time) { + this.time = time; + } + + public double getValue() { + return this.value; + } + + public void setValue(double value) { + this.value = value; + } + + public TimeValue() { + } + + public TimeValue(String time, double value) { + this.time = time; + this.value = value; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.java new file mode 100644 index 0000000..4d9bfcf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.java @@ -0,0 +1,13 @@ +package org.springblade.hz3000_real_data.real.mapper; + + +import com.baomidou.dynamic.datasource.annotation.DS; + +import java.util.List; +import java.util.Map; + +@DS("slave") +public interface DefectMapper { + List defectCnt(); +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.xml new file mode 100644 index 0000000..5408713 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/DefectMapper.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.java new file mode 100644 index 0000000..e38399e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.java @@ -0,0 +1,9 @@ +package org.springblade.hz3000_real_data.real.mapper; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MenuFileMapper { + List findFileByLog(@Param("operateType") String operateType, @Param("stationId") String stationId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.xml new file mode 100644 index 0000000..64d5e0a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/MenuFileMapper.xml @@ -0,0 +1,34 @@ + + + + + a.id, + a.parent_id AS "parent.id", + a.parent_ids, + a.name, + a.href, + a.target, + a.icon, + a.sort, + a.is_show, + a.permission, + a.remarks + + + + LEFT JOIN sys_menu p ON p.id = a.parent_id + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.java new file mode 100644 index 0000000..fa1dec5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.java @@ -0,0 +1,21 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; +import org.springblade.hz3000_real_data.real.entity.TimeValue; + +import java.util.List; + +@DS("slave") +public interface PowerCntMapper { + Double powerCnt(@Param("realId") String var1, @Param("startDt") String var2, @Param("endDt") String var3); + + List powerMonthCnt(@Param("realId") String var1, @Param("startDt") String var2, @Param("endDt") String var3); + + List powerMonthMap(@Param("realId") String var1, @Param("startDt") String var2, @Param("endDt") String var3); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.xml new file mode 100644 index 0000000..4c4ea83 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/PowerCntMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.java new file mode 100644 index 0000000..444008f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.java @@ -0,0 +1,18 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.springblade.hz3000_real_data.real.entity.SoeEntity; + +import java.util.List; + +@DS("slave") +public interface WkStationSoeMapper { + List getLimitSoe(Integer var1); + + List qryStationList(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.xml new file mode 100644 index 0000000..c602e4b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/mapper/WkStationSoeMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + datatime,soetype,_explain,hzrealid + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/IWorkStationService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/IWorkStationService.java new file mode 100644 index 0000000..d36d036 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/IWorkStationService.java @@ -0,0 +1,21 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service; + +import java.util.List; +import java.util.Map; + +public interface IWorkStationService { + List PowerCnt(String var1, String var2, String var3); + + Map SoeData(String var1); + + double EquOpenOrLoad(String var1, String var2, String var3); + + Map getBugInfos(String var1); + + long totalCapacity(String var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataService.java new file mode 100644 index 0000000..a9660ef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataService.java @@ -0,0 +1,156 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadData; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EReadDataRet; +import org.springblade.hz3000_real_data.readdata.ReadData.YcRValue; +import org.springblade.hz3000_real_data.readdata.ReadData.YxRValue; + +import org.springblade.hz3000_real_data.fac.entity.YcPoint; +import org.springblade.hz3000_real_data.fac.enums.PointType; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.hz3000_real_data.real.utils.RealDataUtil; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class RealDataService { + + public RealDataService() { + } + + public List getYcRealDataWithGroupInfo(String groupId, String stationId) { + List dataList = new ArrayList(); + List pointList = FacInfoFactory.getInstance().getYcPointByGroupId(groupId); + if (pointList.size() == 0) { + return new ArrayList(); + } else { + List idList = new ArrayList(); + + for(int i = 0; i < pointList.size(); ++i) { + idList.add(((YcPoint)pointList.get(i)).getId()); + } + + List ycValueList = new ArrayList(); + EReadDataRet readDataRet = ReadData.Instance.ReadAnyDatasID(idList, ycValueList, (List)null, (List)null, stationId); + if (EReadDataRet.rdFail == readDataRet) { + return new ArrayList(); + } else { + for(int j = 0; j < ycValueList.size(); ++j) { + Data data = new Data(); + YcPoint point = (YcPoint)pointList.get(j); + YcRValue ycRValue = (YcRValue)ycValueList.get(j); + data.setPoint(point); + data.setValue(ycRValue.Value); + data.setQ(ycRValue.q); + data.setTime(ycRValue.Time); + dataList.add(data); + } + + return dataList; + } + } + } + + public List getYcRealData(List ids, String stationId) { + return this.getRealData(ids, PointType.IsYc.getCode(), stationId); + } + + public List getYxRealData(List ids, String stationId) { + return this.getRealData(ids, PointType.IsYx.getCode(), stationId); + } + + public List getRealData(long[] ids, int type) { + if (!ReadData.Instance.ReadData_Init(RealDataUtil.getDllPath(), RealDataUtil.getReadDllName(), RealDataUtil.getWriteDllName(), RealDataUtil.getFivePreventionName())) { + return null; + } else { + List dataList = new ArrayList(); + ArrayList yxRValueList; + EReadDataRet readDataRet; + int j; + Data data; + if (type == PointType.IsYc.getCode()) { + yxRValueList = new ArrayList(); + readDataRet = ReadData.Instance.ReadAnyDatasIDByDll(ids, yxRValueList, (long[])null, (List)null); + if (EReadDataRet.rdFail == readDataRet) { + return null; + } + + for(j = 0; j < yxRValueList.size(); ++j) { + data = new Data(); + YcRValue ycRValue = (YcRValue)yxRValueList.get(j); + data.setValue(ycRValue.Value); + data.setQ(ycRValue.q); + data.setTime(ycRValue.Time); + dataList.add(data); + } + } else if (type == PointType.IsYx.getCode()) { + yxRValueList = new ArrayList(); + readDataRet = ReadData.Instance.ReadAnyDatasIDByDll((long[])null, (List)null, ids, yxRValueList); + if (EReadDataRet.rdFail == readDataRet) { + return null; + } + + for(j = 0; j < yxRValueList.size(); ++j) { + data = new Data(); + YxRValue yxRValue = (YxRValue)yxRValueList.get(j); + data.setValue((double)yxRValue.Value); + data.setQ(yxRValue.q); + data.setTime(yxRValue.Time); + dataList.add(data); + } + } + + return dataList; + } + } + + public List getRealData(List ids, int type, String stationId) { + List dataList = new ArrayList(); + ArrayList yxRValueList; + EReadDataRet readDataRet; + int j; + Data data; + if (type == PointType.IsYc.getCode()) { + yxRValueList = new ArrayList(); + readDataRet = ReadData.Instance.ReadAnyDatasID(ids, yxRValueList, (List)null, (List)null, stationId); + if (EReadDataRet.rdFail == readDataRet) { + return null; + } + + for(j = 0; j < yxRValueList.size(); ++j) { + data = new Data(); + YcRValue ycRValue = (YcRValue)yxRValueList.get(j); + data.setValue(ycRValue.Value); + data.setQ(ycRValue.q); + data.setTime(ycRValue.Time); + dataList.add(data); + } + } else if (type == PointType.IsYx.getCode()) { + yxRValueList = new ArrayList(); + readDataRet = ReadData.Instance.ReadAnyDatasID((List)null, (List)null, ids, yxRValueList, stationId); + if (EReadDataRet.rdFail == readDataRet) { + return null; + } + + for(j = 0; j < yxRValueList.size(); ++j) { + data = new Data(); + YxRValue yxRValue = (YxRValue)yxRValueList.get(j); + data.setValue((double)yxRValue.Value); + data.setQ(yxRValue.q); + data.setTime(yxRValue.Time); + dataList.add(data); + } + } + + return dataList; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataSystemService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataSystemService.java new file mode 100644 index 0000000..c3de7cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealDataSystemService.java @@ -0,0 +1,72 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service; + +import org.springblade.hz3000_real_data.real.mapper.MenuFileMapper; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; +import java.text.Collator; +import java.util.*; + +@Service +@Transactional( + readOnly = true +) +public class RealDataSystemService implements InitializingBean { + public static final String HASH_ALGORITHM = "SHA-1"; + public static final int HASH_INTERATIONS = 1024; + public static final int SALT_SIZE = 8; + @Autowired + private MenuFileMapper menuFileMapper; + + public RealDataSystemService() { + } + + public List getRealFileList(String filePath, String operateType, String stationId) { + List realList = new ArrayList(); + System.out.println("文件路径:" + filePath); + List fileList = getFileMenuList(filePath); + List storedList = menuFileMapper.findFileByLog(operateType, stationId); + Iterator var8 = storedList.iterator(); + + while(var8.hasNext()) { + String fileName = (String)var8.next(); + if (fileList.contains(fileName)) { + realList.add(fileName); + } + } + + return realList; + } + + + public static List getFileMenuList(String path) { + List menuList = new ArrayList(); + File file = new File(path); + File[] fileList = file.listFiles(); + if (null != fileList) { + File[] var4 = fileList; + int var5 = fileList.length; + + for(int var6 = 0; var6 < var5; ++var6) { + File singleFile = var4[var6]; + if (!singleFile.isDirectory()) { + menuList.add(singleFile.getName()); + } + } + } + + Collections.sort(menuList, Collator.getInstance(Locale.CHINA)); + return menuList; + } + + public void afterPropertiesSet() throws Exception { + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealIdXmlParse.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealIdXmlParse.java new file mode 100644 index 0000000..d01a6a3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/RealIdXmlParse.java @@ -0,0 +1,141 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service; + +import com.alibaba.fastjson.JSON; +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.real.entity.GenerationXml; +import org.springblade.hz3000_real_data.real.entity.StationXml; +import org.springblade.hz3000_real_data.site_configuration.mapper.GenerationsMapper; +import org.springblade.hz3000_real_data.site_configuration.entity.Generations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +@Service +public class RealIdXmlParse { + private static Logger logger = LoggerFactory.getLogger(RealIdXmlParse.class); + private StationXml station = null; + private GenerationXml generationXml = null; + private List generationList = null; + @Autowired + private GenerationsMapper generationsDao; + + public RealIdXmlParse() { + } + + public List getStationXml(String fileName) { + logger.info("开始解析站点遥测,遥信点配置xml====》》》"); + List stationList = new ArrayList(); + URL url = this.getClass().getResource("/" + fileName); + SAXReader reader = new SAXReader(); + + try { + Document document = reader.read(new File(url.getFile())); + Element stationxml = document.getRootElement(); + Iterator stationiter = stationxml.elementIterator(); + + while(stationiter.hasNext()) { + this.generationList = new ArrayList(); + this.station = new StationXml(); + Element stationEle = (Element)stationiter.next(); + List attributes = stationEle.attributes(); + Iterator var11 = attributes.iterator(); + + while(var11.hasNext()) { + Attribute attribute = (Attribute)var11.next(); + if (attribute.getName().equals("id")) { + String id = attribute.getValue(); + this.station.setStationId(id); + } + } + + List stationEleList = stationEle.elements(); + Iterator var21 = stationEleList.iterator(); + + while(var21.hasNext()) { + Element e = (Element)var21.next(); + List generEleList = e.elements(); + this.generationXml = new GenerationXml(); + Iterator var15 = generEleList.iterator(); + + while(var15.hasNext()) { + Element e1 = (Element)var15.next(); + String nodeName = e1.getName(); + String p; + if (nodeName.equals("state")) { + p = e1.getStringValue(); + this.generationXml.setOpenSts(p); + } else if (nodeName.equals("power")) { + p = e1.getStringValue(); + this.generationXml.setPower(p); + } else if (nodeName.equals("p")) { + p = e1.getStringValue(); + this.generationXml.setP(p); + } else if (nodeName.equals("capacity")) { + Long capacity = Long.valueOf(e1.getStringValue()); + this.generationXml.setCapacity(capacity); + } + } + + this.generationList.add(this.generationXml); + this.station.setGenerList(this.generationList); + } + + stationList.add(this.station); + } + } catch (DocumentException var18) { + logger.error("解析XML文件出现异常:{}", var18); + return null; + } + + logger.info("解析xml结果为:{}", JSON.toJSONString(stationList)); + return stationList; + } + + public List getStation() { + new ArrayList(); + List stationList = this.generationsDao.getAllGenerations(); + logger.info("从数据获取的结果为:{}", JSON.toJSONString(stationList)); + return stationList; + } + + public static void parserNode(Element ele) { + List attrList = ele.attributes(); + + Attribute attr; + String var5; + for(Iterator var3 = attrList.iterator(); var3.hasNext(); var5 = attr.getValue()) { + attr = (Attribute)var3.next(); + String name = attr.getName(); + } + + List eleList = ele.elements(); + Iterator var8 = eleList.iterator(); + + while(var8.hasNext()) { + Element e = (Element)var8.next(); + parserNode(e); + } + + } + +// public static void main(String[] args) { +// double a = 0.0D; +// System.err.println(Double.doubleToLongBits(a)); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/SoeDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/SoeDataService.java new file mode 100644 index 0000000..bcb2615 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/SoeDataService.java @@ -0,0 +1,41 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.real.entity.SoeEntity; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class SoeDataService implements InitializingBean { + public static Logger logger = LoggerFactory.getLogger(RealDataService.class); + public static Map> soeListMap = new HashMap(); + public static int maxSoe = 20; + + public SoeDataService() { + } + + public void afterPropertiesSet() throws Exception { + logger.info("开始启动读取Rds线程任务=====>>>>"); + } + + public static byte[] longToByteArray(long s) { + byte[] targets = new byte[9]; + + for(int i = 1; i < 9; ++i) { + int offset = (targets.length - 1 - i) * 8; + targets[i] = (byte)((int)(s >>> offset & 255L)); + } + + return targets; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/impl/WorkStationServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/impl/WorkStationServiceImpl.java new file mode 100644 index 0000000..d3b1d2c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/service/impl/WorkStationServiceImpl.java @@ -0,0 +1,425 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.service.impl; + +import com.alibaba.fastjson.JSON; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.fac.entity.BasePoint; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.real.Enums.DefTypeEnum; +import org.springblade.hz3000_real_data.real.Enums.QryTypeEnum; +import org.springblade.hz3000_real_data.real.mapper.DefectMapper; +import org.springblade.hz3000_real_data.real.mapper.PowerCntMapper; +import org.springblade.hz3000_real_data.real.mapper.WkStationSoeMapper; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.hz3000_real_data.real.entity.DataSourceHolder; +import org.springblade.hz3000_real_data.real.entity.SoeEntity; +import org.springblade.hz3000_real_data.real.service.RealDataService; +import org.springblade.hz3000_real_data.real.service.RealIdXmlParse; +import org.springblade.hz3000_real_data.real.service.SoeDataService; +import org.springblade.hz3000_real_data.real.service.IWorkStationService; +import org.springblade.hz3000_real_data.site_configuration.entity.Generations; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigInteger; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class WorkStationServiceImpl implements IWorkStationService { + public static Logger logger = LoggerFactory.getLogger(WorkStationServiceImpl.class); + @Autowired + private PowerCntMapper powerCntDao; + @Autowired + private RealDataService dataService; + @Autowired + private RealIdXmlParse realIdXmlParse; + @Autowired + private DefectMapper defectMapper; + @Autowired + private ISysClient sysClient; + @Autowired + private WkStationSoeMapper wkStationSoeMapper; + private static int maxSoe = 20; + private static int top = 6; + private static String[] SoeKind = new String[]{"默认", "系统", "报警", "事故", "操作", "遥测越限", "遥信变位", "注册信息", "信息提示", "设备巡检", "遥信变位", "遥测越限", "遥测越限", "操作记录", "操作记录", "备用6", "备用7", "备用8", "未定义"}; + + public WorkStationServiceImpl() { + } + + public List PowerCnt(String userId, String startDt, String endDt) { + logger.info("开始查询发电量,电站列表:"); + DecimalFormat df = new DecimalFormat("#.##"); + Map sMap = this.getUserStationList(userId); + List sidList = (List)sMap.get("sidList"); + List retList = new ArrayList(); + List generationList = this.realIdXmlParse.getStation(); + Iterator var10 = sidList.iterator(); + + while(true) { + String sid; + HashMap retMap; + HashMap rateMap; + ArrayList realidList; + do { + if (!var10.hasNext()) { + Collections.sort(retList, new Comparator() { + public int compare(Map o1, Map o2) { + return Double.valueOf(o2.get("Power").toString()).compareTo(Double.valueOf(o1.get("Power").toString())); + } + }); + if (retList.size() <= top) { + return retList; + } + + return retList.subList(0, top); + } + + sid = (String)var10.next(); + retMap = new HashMap(); + rateMap = new HashMap(); + realidList = new ArrayList(); + Iterator var15 = generationList.iterator(); + + while(var15.hasNext()) { + Generations generations = (Generations)var15.next(); + if (generations.getStationId().equals(sid)) { + realidList.add(generations.getGenPower()); + rateMap.put(generations.getGenPower(), generations.getCt() * generations.getPt()); + } + } + } while(realidList.size() <= 0); + + double Power = 0.0D; + logger.info("realIdList:{}", realidList); + DataSourceHolder.setDBType(sid); + + double qPower; + for(Iterator var17 = realidList.iterator(); var17.hasNext(); Power += qPower) { + String realid = (String)var17.next(); + double rate = 1.0D; + if (rateMap.containsKey(realid)) { + rate = (Double)rateMap.get(realid); + } + + Double qryPower; + try { + qryPower = this.powerCntDao.powerCnt(realid, startDt, endDt); + } catch (Exception var23) { + qryPower = 0.0D; + var23.printStackTrace(); + } + + qPower = qryPower == null ? 0.0D : qryPower * rate; + } + + retMap.put("sid", sid); + retMap.put("Power", df.format(Power)); + retMap.put("sName", ((Map)sMap.get("snmMap")).get(sid)); + retList.add(retMap); + } + } + + public double EquOpenOrLoad(String userId, String type, String stationId) { + logger.info("开始查询开机台,负荷接口,站点列表"); + List stidList = (List)this.getUserStationList(userId).get("sidList"); + List ridList = new ArrayList(); + List retList = new ArrayList(); + Map> map = new HashMap(); + double total = 0.0D; + List generationList = this.realIdXmlParse.getStation(); + Iterator var12 = stidList.iterator(); + + String key; + while(var12.hasNext()) { + key = (String)var12.next(); + Iterator var14 = generationList.iterator(); + + while(var14.hasNext()) { + Generations generations = (Generations)var14.next(); + if (key.equals(generations.getStationId())) { + if (map.containsKey(generations.getStationId())) { + List sList; + if (QryTypeEnum.qryOpenOff.getCode().equals(type)) { + sList = (List)map.get(generations.getStationId()); + sList.add(generations.getGenState()); + map.put(generations.getStationId(), sList); + } else { + sList = (List)map.get(generations.getStationId()); + sList.add(generations.getGenP()); + map.put(generations.getStationId(), sList); + logger.info("load point=====>>>:{}", generations.getGenP()); + } + } else { + ArrayList sList; + if (QryTypeEnum.qryOpenOff.getCode().equals(type)) { + sList = new ArrayList(); + sList.add(generations.getGenState()); + map.put(generations.getStationId(), sList); + } else { + sList = new ArrayList(); + sList.add(generations.getGenP()); + map.put(generations.getStationId(), sList); + logger.info("load point=====>>>:{}", generations.getGenP()); + } + } + } + } + } + + if (QryTypeEnum.qryLoad.getCode().equals(type)) { + logger.info("rds传入ID列表:{}", ridList); + } + + if (!map.isEmpty()) { + if (QryTypeEnum.qryOpenOff.getCode().equals(type)) { + var12 = map.keySet().iterator(); + + while(var12.hasNext()) { + key = (String)var12.next(); + retList.addAll(this.dataService.getYxRealData((List)map.get(key), key)); + } + } else { + var12 = map.keySet().iterator(); + + while(var12.hasNext()) { + key = (String)var12.next(); + retList.addAll(this.dataService.getYcRealData((List)map.get(key), key)); + } + } + } + + if (retList.size() > 0) { + logger.info("rds返回数据为:{}", JSON.toJSONString(retList)); + var12 = retList.iterator(); + + while(var12.hasNext()) { + Data dt = (Data)var12.next(); + if (QryTypeEnum.qryOpenOff.getCode().equals(type)) { + if (dt.getQ() == 0 && Double.doubleToLongBits(dt.getValue()) == Double.doubleToLongBits(1.0D)) { + ++total; + } + } else if (dt.getQ() == 0) { + total += dt.getValue(); + } + } + } + + return total; + } + + public Map getBugInfos(String userId) { + logger.info("开始查询工作台缺陷分类数据"); + List stidList = (List)this.getUserStationList(userId).get("sidList"); + long first = 0L; + long second = 0L; + long third = 0L; + long fourth = 0L; + Map resultMap = new HashMap(); + List retList = new ArrayList(); + Iterator var14 = stidList.iterator(); + + while(var14.hasNext()) { + String sid = (String)var14.next(); + DataSourceHolder.setDBType(sid); + + try { + retList = this.defectMapper.defectCnt(); + } catch (Exception var17) { + var17.printStackTrace(); + } + + if (((List)retList).size() > 0) { + Iterator var16 = ((List)retList).iterator(); + + while(var16.hasNext()) { + Map map = (Map)var16.next(); + if (DefTypeEnum.first.getCode().equals((String)map.get("typecode"))) { + first += (Long)map.get("total"); + } + + if (DefTypeEnum.second.getCode().equals((String)map.get("typecode"))) { + second += (Long)map.get("total"); + } + + if (DefTypeEnum.third.getCode().equals((String)map.get("typecode"))) { + third += (Long)map.get("total"); + } + + if (DefTypeEnum.fourth.getCode().equals((String)map.get("typecode"))) { + fourth += (Long)map.get("total"); + } + } + + resultMap.put(DefTypeEnum.first.getCode(), first); + resultMap.put(DefTypeEnum.second.getCode(), second); + resultMap.put(DefTypeEnum.third.getCode(), third); + resultMap.put(DefTypeEnum.fourth.getCode(), fourth); + } + } + + return resultMap; + } + + public long totalCapacity(String userId) { + logger.info("开始查询装机总容量"); + List stidList = (List)this.getUserStationList(userId).get("sidList"); + long total = 0L; + List generationList = this.realIdXmlParse.getStation(); + Iterator var7 = stidList.iterator(); + + while(var7.hasNext()) { + String sid = (String)var7.next(); + Iterator var9 = generationList.iterator(); + + while(var9.hasNext()) { + Generations generations = (Generations)var9.next(); + if (sid.equals(generations.getStationId())) { + long cap = generations.getGenCapacity() == null ? 0L : Long.valueOf(generations.getGenCapacity()); + total += cap; + } + } + } + + return total; + } + + public Map SoeData(String userId) { + logger.info("开始查询告警数据====>>>"); + Map stationMap = this.getUserStationList(userId); + List sidList = (List)stationMap.get("sidList"); + Map sNmMap = (Map)stationMap.get("snmMap"); + Map retMap = new HashMap(); + List filterList = new ArrayList(); + Set idSet = new HashSet(); + Iterator var9 = sidList.iterator(); + + String stationId; + while(var9.hasNext()) { + stationId = (String)var9.next(); + if (SoeDataService.soeListMap.get(stationId) != null && ((List)SoeDataService.soeListMap.get(stationId)).size() > 0) { + ((List)filterList).addAll((Collection)SoeDataService.soeListMap.get(stationId)); + } + } + + if (((List)filterList).size() >= maxSoe) { + Collections.sort((List)filterList, new Comparator() { + public int compare(SoeEntity o1, SoeEntity o2) { + return o2.getAlarmDt().compareTo(o1.getAlarmDt()); + } + }); + } else { + logger.info("soe从数据库中获取开始"); + var9 = sidList.iterator(); + + label82: + while(true) { + List soeRecords; + do { + if (!var9.hasNext()) { + Collections.sort((List)filterList, new Comparator() { + public int compare(SoeEntity o1, SoeEntity o2) { + return o2.getAlarmDt().compareTo(o1.getAlarmDt()); + } + }); + break label82; + } + + stationId = (String)var9.next(); + DataSourceHolder.setDBType(stationId); + soeRecords = null; + + try { + soeRecords = this.wkStationSoeMapper.getLimitSoe(maxSoe); + } catch (Exception var17) { + logger.error("获取告警数据出错:{}", var17); + } + } while(soeRecords == null); + + SoeEntity soe; + String groupNm; + String name; + String explain; + for(Iterator var12 = soeRecords.iterator(); var12.hasNext(); soe.setContent(groupNm + name + explain)) { + soe = (SoeEntity)var12.next(); + soe.setAlarmType(SoeKind[Integer.valueOf(soe.getAlarmType())]); + soe.setStationId(stationId); + soe.setStationNm((String)sNmMap.get(stationId)); + BasePoint bp = null; + bp = FacInfoFactory.getInstance().getDataPointDef((new BigInteger(soe.getRealId())).toString()); + groupNm = bp.getGroupName() != null ? bp.getGroupName() + "_" : ""; + name = bp.getName() != null ? bp.getName() : ""; + explain = ""; + logger.info("数据库soe返回告警内容start:" + soe.getExplain() + ":end"); + if ((groupNm + name).length() <= 0) { + explain = StringUtils.isNotBlank(soe.getExplain()) ? soe.getExplain() : ""; + } else { + explain = StringUtils.isNotBlank(soe.getExplain()) ? "_" + soe.getExplain() : ""; + } + } + + ((List)filterList).addAll(soeRecords); + } + } + + if (((List)filterList).size() >= maxSoe) { + filterList = ((List)filterList).subList(0, maxSoe); + } + + var9 = ((List)filterList).iterator(); + + while(var9.hasNext()) { + Object soe = var9.next(); + idSet.add(((SoeEntity)soe).getStationId()); + } + + retMap.put("soeList", filterList); + retMap.put("total", idSet.size()); + return retMap; + } + + public static Map getStartandEnd(Date date) { + Map resultMap = new HashMap(); + SimpleDateFormat simpleDateFormatMonth = new SimpleDateFormat("yyyy-MM"); + String month = simpleDateFormatMonth.format(date); + int maxDay = getDaysOfMonth(date); + resultMap.put("startdt", month + "-01"); + resultMap.put("enddt", month + "-" + maxDay); + return resultMap; + } + + public static int getDaysOfMonth(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + return calendar.getActualMaximum(5); + } + + public Map getUserStationList(String userId) { + logger.info("开始构建用户:{}站点列表数据", userId); + List stationList = sysClient.getDeptByCurrentUser().getData(); + Map resultMap = new HashMap(); + Map sMap = new HashMap(); + List sidList = new ArrayList(); + Iterator var7 = stationList.iterator(); + + while(var7.hasNext()) { + Dept station = (Dept)var7.next(); + sidList.add(station.getStationId()); + sMap.put(station.getStationId(), station.getDeptName()); + } + + resultMap.put("sidList", sidList); + resultMap.put("snmMap", sMap); + logger.info("构建的站点map为:{}", JSON.toJSONString(resultMap)); + return resultMap; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/DysmsMassageSender.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/DysmsMassageSender.java new file mode 100644 index 0000000..e6fafcc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/DysmsMassageSender.java @@ -0,0 +1,189 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.utils; + +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; + +public class DysmsMassageSender { + final String product = "Dysmsapi"; + final String domain = "dysmsapi.aliyuncs.com"; + private String connectTimeout = RealDataUtil.getMessageConnectTimeout(); + private String readTimeout = RealDataUtil.getMessageReadTimeout(); + private String accessKeyId = RealDataUtil.getMessageAccessKeyId(); + private String accessKeySecret = RealDataUtil.getMessageAccessKeySecret(); + private String profilePoint = RealDataUtil.getMessageProfilePoint(); + private String endPoint = RealDataUtil.getMessageEndpoint(); + private String signName = RealDataUtil.getMessageSignName(); + private IClientProfile profile; + private IAcsClient acsClient; + private SendSmsRequest sendRequest; + private SendSmsResponse sendSmsResponse; + private MethodType methodType; + private String phoneNum; + private String templateCode; + private String templateParam; + private String outId; + + public DysmsMassageSender() { + this.methodType = MethodType.POST; + this.templateCode = RealDataUtil.getMessageTemplateCode(); + this.outId = null; + } + + public SendSmsResponse sendMessage() throws ClientException { + System.setProperty("sun.net.client.defaultConnectTimeout", this.connectTimeout); + System.setProperty("sun.net.client.defaultReadTimeout", this.readTimeout); + IClientProfile profile = DefaultProfile.getProfile(this.profilePoint, this.accessKeyId, this.accessKeySecret); + DefaultProfile.addEndpoint(this.endPoint, this.endPoint, "Dysmsapi", "dysmsapi.aliyuncs.com"); + IAcsClient acsClient = new DefaultAcsClient(profile); + SendSmsRequest sendRequest = new SendSmsRequest(); + sendRequest.setMethod(this.methodType); + sendRequest.setPhoneNumbers(this.phoneNum); + sendRequest.setSignName(this.signName); + sendRequest.setTemplateCode(this.templateCode); + sendRequest.setTemplateParam(this.templateParam); + if (this.outId != null) { + sendRequest.setOutId(this.outId); + } + + return (SendSmsResponse)acsClient.getAcsResponse(sendRequest); + } + + public String getConnectTimeout() { + return this.connectTimeout; + } + + public void setConnectTimeout(String connectTimeout) { + this.connectTimeout = connectTimeout; + } + + public String getReadTimeout() { + return this.readTimeout; + } + + public void setReadTimeout(String readTimeout) { + this.readTimeout = readTimeout; + } + + public String getAccessKeyId() { + return this.accessKeyId; + } + + public void setAccessKeyId(String accessKeyId) { + this.accessKeyId = accessKeyId; + } + + public String getAccessKeySecret() { + return this.accessKeySecret; + } + + public void setAccessKeySecret(String accessKeySecret) { + this.accessKeySecret = accessKeySecret; + } + + public String getProfilePoint() { + return this.profilePoint; + } + + public void setProfilePoint(String profilePoint) { + this.profilePoint = profilePoint; + } + + public String getEndPoint() { + return this.endPoint; + } + + public void setEndPoint(String endPoint) { + this.endPoint = endPoint; + } + + public String getSignName() { + return this.signName; + } + + public void setSignName(String signName) { + this.signName = signName; + } + + public IClientProfile getProfile() { + return this.profile; + } + + public void setProfile(IClientProfile profile) { + this.profile = profile; + } + + public IAcsClient getAcsClient() { + return this.acsClient; + } + + public void setAcsClient(IAcsClient acsClient) { + this.acsClient = acsClient; + } + + public SendSmsRequest getSendRequest() { + return this.sendRequest; + } + + public void setSendRequest(SendSmsRequest sendRequest) { + this.sendRequest = sendRequest; + } + + public SendSmsResponse getSendSmsResponse() { + return this.sendSmsResponse; + } + + public void setSendSmsResponse(SendSmsResponse sendSmsResponse) { + this.sendSmsResponse = sendSmsResponse; + } + + public MethodType getMethodType() { + return this.methodType; + } + + public void setMethodType(MethodType methodType) { + this.methodType = methodType; + } + + public String getPhoneNum() { + return this.phoneNum; + } + + public void setPhoneNum(String phoneNum) { + this.phoneNum = phoneNum; + } + + public String getTemplateCode() { + return this.templateCode; + } + + public void setTemplateCode(String templateCode) { + this.templateCode = templateCode; + } + + public String getTemplateParam() { + return this.templateParam; + } + + public void setTemplateParam(String templateParam) { + this.templateParam = templateParam; + } + + public String getOutId() { + return this.outId; + } + + public void setOutId(String outId) { + this.outId = outId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/RealDataUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/RealDataUtil.java new file mode 100644 index 0000000..5541d4c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/RealDataUtil.java @@ -0,0 +1,355 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.utils; + +import org.springblade.hz3000_real_data.entity.SystemPath; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeKind; +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.ESoeState; +import org.apache.commons.lang.StringUtils; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.jaxen.JaxenException; +import org.jaxen.dom4j.Dom4jXPath; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.fac.config.Global; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.text.Collator; +import java.util.*; + +public class RealDataUtil { + public static final String DATA_CACHE = "dataCache"; + public static final String ALL_FACTORIES_RECURSIVE = "all_factories_recursive"; + public static final String ALL_FACTORIES = "all_factories"; + public static final String FACTORY_ID = "factory_id_"; + public static final String GROUP_ID = "group_id_"; + public static final String POINT_ID = "point_id_"; + public static final String TELEMETRYPOINT_ID = "telemetry_point_id_"; + public static final String current_validate_code = "current_validate_code"; + public static final String current_validate_time = "current_validate_time"; + public static final String current_device = "current_device"; + public static final String pc_device = "pc"; + private static String DYNAMIC_FILE_PATH = null; + private static String DYNAMIC_FILE_MAPPING_PATH = null; + private static String DLL_PATH = null; + private static String XML_SETTING_PATH = null; + private static String READ_DLL_NAME = null; + private static String WRITE_DLL_NAME = null; + private static String FIVE_PREVENTION_NAME = null; + private static String SOE_ALARM_TYPE = null; + private static String message_connect_timeout = null; + private static String message_read_timeout = null; + private static String message_accessKeyid = null; + private static String message_accessKeySecret = null; + private static String message_profilePoint = null; + private static String message_endPoint = null; + private static String message_check_interval = null; + private static String message_signName = null; + private static String message_template_code = null; + public static List> soeTypes = new ArrayList(); + + public RealDataUtil() { + } + + public static String getSettingPath() { + if (XML_SETTING_PATH == null) { + if (SystemPath.isLinux()) { + XML_SETTING_PATH = Global.getConfig("hz3000.runtime.setting.linux"); + } else { + XML_SETTING_PATH = Global.getConfig("hz3000.runtime.setting.windows"); + } + } + + return XML_SETTING_PATH; + } + + public static String getDllPath() { + if (DLL_PATH == null) { + if (SystemPath.isLinux()) { + DLL_PATH = Global.getConfig("hz3000.dll.path.linux"); + } else { + DLL_PATH = Global.getConfig("hz3000.dll.path.windows"); + } + } + + return DLL_PATH; + } + + public static String getReadDllName() { + if (READ_DLL_NAME == null) { + if (SystemPath.isLinux()) { + READ_DLL_NAME = Global.getConfig("hz3000.read.dll.name.linux"); + } else { + READ_DLL_NAME = Global.getConfig("hz3000.read.dll.name.windows"); + } + } + + return READ_DLL_NAME; + } + + public static String getFivePreventionName() { + if (FIVE_PREVENTION_NAME == null) { + if (SystemPath.isLinux()) { + FIVE_PREVENTION_NAME = Global.getConfig("hz3000.fiveprevention.dll.linux"); + } else { + FIVE_PREVENTION_NAME = Global.getConfig("hz3000.fiveprevention.dll.windows"); + } + } + + return FIVE_PREVENTION_NAME; + } + + public static String getWriteDllName() { + if (WRITE_DLL_NAME == null) { + if (SystemPath.isLinux()) { + WRITE_DLL_NAME = Global.getConfig("hz3000.write.dll.name.linux"); + } else { + WRITE_DLL_NAME = Global.getConfig("hz3000.write.dll.name.windows"); + } + } + + return WRITE_DLL_NAME; + } + + public static String getDynamicFilePath() { + if (DYNAMIC_FILE_PATH == null) { + DYNAMIC_FILE_PATH = Global.getConfig("dynamic.file.path"); + } + + return DYNAMIC_FILE_PATH; + } + + public static String getDynamicFileMappingPath() { + if (DYNAMIC_FILE_MAPPING_PATH == null) { + DYNAMIC_FILE_MAPPING_PATH = Global.getConfig("dynamic.file.mapping.path"); + } + + return DYNAMIC_FILE_MAPPING_PATH; + } + + public static String getMessageReadTimeout() { + if (message_read_timeout == null) { + message_read_timeout = Global.getConfig("message.read.timeout"); + } + + return message_read_timeout; + } + + public static String getMessageAccessKeyId() { + if (message_accessKeyid == null) { + message_accessKeyid = Global.getConfig("message.accessKeyId"); + } + + return message_accessKeyid; + } + + public static String getMessageAccessKeySecret() { + if (message_accessKeySecret == null) { + message_accessKeySecret = Global.getConfig("message.accessKeySecret"); + } + + return message_accessKeySecret; + } + + public static String getMessageEndpoint() { + if (message_endPoint == null) { + message_endPoint = Global.getConfig("message.endPoint"); + } + + return message_endPoint; + } + + public static String getMessageProfilePoint() { + if (message_profilePoint == null) { + message_profilePoint = Global.getConfig("message.profilePoint"); + } + + return message_profilePoint; + } + + public static int getMessageCheckInterval() { + int result = 0; + if (message_check_interval == null) { + message_check_interval = Global.getConfig("message.check.interval"); + } + + if (!message_check_interval.isEmpty()) { + result = Integer.parseInt(message_check_interval); + } + + return result; + } + + public static String getMessageConnectTimeout() { + if (message_connect_timeout == null) { + message_connect_timeout = Global.getConfig("message.connect.timeout"); + } + + return message_connect_timeout; + } + + public static String getMessageSignName() { + if (message_signName == null) { + message_signName = Global.getConfig("message.signName"); + } + + return message_signName; + } + + public static String getMessageTemplateCode() { + if (message_template_code == null) { + message_template_code = Global.getConfig("message.templateCode"); + } + + return message_template_code; + } + + public static String getSoeAlarmTypeLocation() { + if (SOE_ALARM_TYPE == null) { + if (SystemPath.isLinux()) { + SOE_ALARM_TYPE = Global.getConfig("hz3000.soe.alarm.type.linux"); + } else { + SOE_ALARM_TYPE = Global.getConfig("hz3000.soe.alarm.type.windows"); + } + } + + return SOE_ALARM_TYPE; + } + + public static List getFileMenuList(String path) { + if (path != null && !path.isEmpty()) { + List menuList = new ArrayList(); + File file = new File(path); + File[] fileList = file.listFiles(); + File[] var7 = fileList; + int var6 = fileList.length; + + for(int var5 = 0; var5 < var6; ++var5) { + File singleFile = var7[var5]; + if (!singleFile.isDirectory()) { + menuList.add(singleFile.getName()); + } + } + + Collections.sort(menuList, Collator.getInstance(Locale.CHINA)); + return menuList; + } else { + return null; + } + } + + public static String getMessageValidateCode(int num) { + String result = ""; + + for(int i = 0; i < num; ++i) { + result = result + (int)(Math.floor(Math.random() * 100.0D) % 9.0D + 1.0D); + } + + return result; + } + + public static String getMessageReplaceJson(String code) { + return "{\"code\":\"" + code + "\"}"; + } + + public static String getIpAdrress(HttpServletRequest request) { + Logger logger = LoggerFactory.getLogger(RealDataUtil.class); + logger.error("进入方法"); + String Xip = request.getHeader("X-Real-IP"); + String XFor = request.getHeader("X-Forwarded-For"); + if (StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)) { + int index = XFor.indexOf(","); + return index != -1 ? XFor.substring(0, index) : XFor; + } else { + XFor = Xip; + if (StringUtils.isNotEmpty(Xip) && !"unKnown".equalsIgnoreCase(Xip)) { + return Xip; + } else { + if (StringUtils.isBlank(Xip) || "unknown".equalsIgnoreCase(Xip)) { + XFor = request.getHeader("Proxy-Client-IP"); + } + + if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) { + XFor = request.getHeader("WL-Proxy-Client-IP"); + } + + if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) { + XFor = request.getHeader("HTTP_CLIENT_IP"); + } + + if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) { + XFor = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + + if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) { + XFor = request.getRemoteAddr(); + } + + return XFor; + } + } + } + + public static List> paseSOEAlarmType() throws DocumentException, JaxenException { + if (soeTypes.isEmpty()) { + SAXReader saxReader = new SAXReader(); + File file = new File(getSoeAlarmTypeLocation()); + if (file.exists()) { + Document document = saxReader.read(file); + String xpathExpr = "//SOEAlarmType"; + Dom4jXPath xpath = new Dom4jXPath(xpathExpr); + List elements = xpath.selectNodes(document); + Iterator var7 = elements.iterator(); + + while(true) { + Object element; + do { + if (!var7.hasNext()) { + return soeTypes; + } + + element = var7.next(); + } while(!(element instanceof Element)); + + Element node = (Element)element; + Iterator items = node.elementIterator(); + + while(items.hasNext()) { + Element item = (Element)items.next(); + String[] values = item.attribute("Name").getValue().split("/"); + List valueList = new ArrayList(); + String[] var16 = values; + int var15 = values.length; + + for(int var14 = 0; var14 < var15; ++var14) { + String value = var16[var14]; + valueList.add(value); + } + + soeTypes.add(valueList); + } + } + } + } + + return soeTypes; + } + + public static String getSoeStateDescription(ESoeKind kind, ESoeState state) throws JaxenException, DocumentException { + String result = ""; + List> typeList = paseSOEAlarmType(); + int maxSize = typeList.size(); + if (maxSize > 0) { + result = (String)((List)typeList.get(kind.ordinal() >= maxSize ? maxSize - 1 : kind.ordinal())).get(state.ordinal()); + } + + return result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/TranscodeUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/TranscodeUtil.java new file mode 100644 index 0000000..b1a3ee8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/TranscodeUtil.java @@ -0,0 +1,42 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.utils; + +public class TranscodeUtil { + public TranscodeUtil() { + } + + public static String string2Unicode(String string) { + StringBuffer unicode = new StringBuffer(); + + for(int i = 0; i < string.length(); ++i) { + char c = string.charAt(i); + unicode.append("\\u" + Integer.toHexString(c)); + } + + return unicode.toString(); + } + + public static String unicode2String(String unicode) { + StringBuffer string = new StringBuffer(); + String[] hex = unicode.split("\\\\u"); + + for(int i = 1; i < hex.length; ++i) { + int data = Integer.parseInt(hex[i], 16); + string.append((char)data); + } + + return string.toString(); + } + +// public static void main(String[] args) { +// String test = "中国"; +// String unicode = string2Unicode(test); +// String string = unicode2String(unicode); +// System.out.println(unicode); +// System.out.println(string); +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventListener.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventListener.java new file mode 100644 index 0000000..9d7852a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventListener.java @@ -0,0 +1,51 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEvent; +import org.springblade.hz3000_real_data.readdata.ReadData.RevYkReturnEventListener; +import org.springblade.hz3000_real_data.real.controller.YkWebSocket; + +import java.math.BigInteger; +import java.util.Iterator; +import java.util.concurrent.CopyOnWriteArraySet; + +public class YkReturnEventListener implements RevYkReturnEventListener { + Logger logger = LoggerFactory.getLogger(this.getClass()); + public static CopyOnWriteArraySet eventList = new CopyOnWriteArraySet(); + + public YkReturnEventListener() { + } + + public void fireYkReturnEvent(RevYkReturnEvent event) { + try { + Iterator iterator = YkWebSocket.webSocketSet.iterator(); + this.logger.info("获得 id :" + event.Ykv.ID + " 的遥控反校"); + boolean hasIt = false; + + while(iterator.hasNext()) { + YkWebSocket ykWebSocket = (YkWebSocket)iterator.next(); + BigInteger bigInteger = new BigInteger(ykWebSocket.getPramaryKey()); + long id = bigInteger.longValue(); + if (id == event.Ykv.ID) { + ykWebSocket.sendMessage(event.Ykstatus); + hasIt = true; + break; + } + } + + if (!hasIt) { + eventList.add(event); + } + } catch (Exception var8) { + this.logger.error("系统错误", var8); + var8.printStackTrace(); + } + + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventServletHZNet.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventServletHZNet.java new file mode 100644 index 0000000..bb99758 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/utils/YkReturnEventServletHZNet.java @@ -0,0 +1,25 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.utils; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadData; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +public class YkReturnEventServletHZNet extends HttpServlet { + private static final long serialVersionUID = 810626857399765737L; + public static YkReturnEventListener ykReturnEventListener = new YkReturnEventListener(); + + public YkReturnEventServletHZNet() { + } + + public void init() throws ServletException { + super.init(); + System.out.println("HZNet遥控返校开启!"); + ReadData.Instance.AddRevYkReturnEventListener(ykReturnEventListener); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/BaseRequest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/BaseRequest.java new file mode 100644 index 0000000..74140f0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/BaseRequest.java @@ -0,0 +1,24 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +import java.io.Serializable; + +public class BaseRequest implements Serializable { + private static final long serialVersionUID = -3961385591992091511L; + private String realId; + + public BaseRequest() { + } + + public String getRealId() { + return this.realId; + } + + public void setRealId(String realId) { + this.realId = realId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/DataResponse.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/DataResponse.java new file mode 100644 index 0000000..d50ed59 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/DataResponse.java @@ -0,0 +1,33 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +import java.io.Serializable; + +public class DataResponse implements Serializable { + private static final long serialVersionUID = -7528617579336963629L; + private String status; + private String errorMsg; + + public DataResponse() { + } + + public String getStatus() { + return this.status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getErrorMsg() { + return this.errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYcValueResult.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYcValueResult.java new file mode 100644 index 0000000..f270d8f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYcValueResult.java @@ -0,0 +1,44 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.springblade.hz3000_real_data.real.entity.Data; + +import java.util.Date; +import java.util.Objects; + +public class PrecYcValueResult { + private final double value; + private final Date time; + private final int q; + + public PrecYcValueResult(Data data) { + Objects.requireNonNull(data); + this.value = data.getValue(); + this.time = data.getTime(); + this.q = data.getQ(); + } + + @JsonProperty("Val") + @JsonFormat( + pattern = "#.##" + ) + public double getValue() { + return this.value; + } + + @JsonProperty("Q") + public int getQ() { + return this.q; + } + + @JsonProperty("Time") + public Date getTime() { + return this.time; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYxValueResult.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYxValueResult.java new file mode 100644 index 0000000..fddad62 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/PrecYxValueResult.java @@ -0,0 +1,50 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +import org.springblade.hz3000_real_data.readdata.ReadData.ReadDataTypes.EYxTpye; +import org.springblade.hz3000_real_data.readdata.ReadData.YxRValue; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Date; + +public class PrecYxValueResult { + private final byte value; + private final Date time; + private final short q; + private final EYxTpye yxType; + + public PrecYxValueResult(YxRValue data) { + this(data.Value, data.Time, data.q, data.YxType); + } + + public PrecYxValueResult(byte value, Date time, short q, EYxTpye yxType) { + this.value = value; + this.time = time; + this.q = q; + this.yxType = yxType; + } + + @JsonProperty("Val") + public byte getValue() { + return this.value; + } + + @JsonProperty("Q") + public short getQ() { + return this.q; + } + + @JsonProperty("Time") + public Date getTime() { + return this.time; + } + + @JsonProperty("YxType") + public EYxTpye getYxType() { + return this.yxType; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsGetResponse.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsGetResponse.java new file mode 100644 index 0000000..49925ed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsGetResponse.java @@ -0,0 +1,22 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +public class RdsGetResponse extends DataResponse { + private static final long serialVersionUID = 2685896174304793479L; + private double result; + + public RdsGetResponse() { + } + + public double getResult() { + return this.result; + } + + public void setResult(double result) { + this.result = result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsRequest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsRequest.java new file mode 100644 index 0000000..dfe91a4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RdsRequest.java @@ -0,0 +1,78 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +import java.io.Serializable; + +public class RdsRequest implements Serializable { + private static final long serialVersionUID = -1344152314978454512L; + private String action; + private long channel; + private int module; + private int address; + private int type; + private double value; + private int q; + + public RdsRequest() { + } + + public String getAction() { + return this.action; + } + + public void setAction(String action) { + this.action = action; + } + + public long getChannel() { + return this.channel; + } + + public void setChannel(long channel) { + this.channel = channel; + } + + public int getModule() { + return this.module; + } + + public void setModule(int module) { + this.module = module; + } + + public int getAddress() { + return this.address; + } + + public void setAddress(int address) { + this.address = address; + } + + public int getType() { + return this.type; + } + + public void setType(int type) { + this.type = type; + } + + public double getValue() { + return this.value; + } + + public void setValue(double value) { + this.value = value; + } + + public int getQ() { + return this.q; + } + + public void setQ(int q) { + this.q = q; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RealIdInfoResponse.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RealIdInfoResponse.java new file mode 100644 index 0000000..52af1bd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/RealIdInfoResponse.java @@ -0,0 +1,22 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +public class RealIdInfoResponse extends DataResponse { + private static final long serialVersionUID = 6003193332601536641L; + private String result; + + public RealIdInfoResponse() { + } + + public String getResult() { + return this.result; + } + + public void setResult(String result) { + this.result = result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/Result.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/Result.java new file mode 100644 index 0000000..25c78c2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/Result.java @@ -0,0 +1,30 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.real.vo; + +public class Result { + private String key; + private String time; + + public Result() { + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getTime() { + return this.time; + } + + public void setTime(String time) { + this.time = time; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/YkAction.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/YkAction.java new file mode 100644 index 0000000..1148d09 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/real/vo/YkAction.java @@ -0,0 +1,40 @@ +package org.springblade.hz3000_real_data.real.vo; + +public class YkAction { + private String action; + private String data; + private String userId; + private String stationId; + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getStationId() { + return stationId; + } + + public void setStationId(String stationId) { + this.stationId = stationId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/FileConversionController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/FileConversionController.java new file mode 100644 index 0000000..80286d7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/FileConversionController.java @@ -0,0 +1,75 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.controller; + +import net.lingala.zip4j.exception.ZipException; +import org.springblade.hz3000_real_data.site_configuration.utils.CopyTest; +import org.springblade.hz3000_real_data.site_configuration.utils.ProcessTest; +import org.springblade.hz3000_real_data.site_configuration.utils.RenameTest; +import org.springblade.hz3000_real_data.site_configuration.utils.Zip4jTest; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +@Controller +@RequestMapping({"/fileConversion"}) +public class FileConversionController { + private String fileToPath = "D:/FileConversion/"; + private String picsPath = "D:/hz3000/runtime/pics/"; + + public FileConversionController() { + } + + @RequestMapping({"/conversion"}) + public String toGenerationsList(HttpServletRequest request, HttpServletResponse response) { + return "modules/conversion/fileConversion"; + } + + @ResponseBody + @RequestMapping({"/fileupload"}) + public int upload(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException, ZipException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + String res = sdf.format(new Date()); + String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/"); + String originalFileName = file.getOriginalFilename(); + String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf(".")); + Calendar date = Calendar.getInstance(); + File dateDirs = new File(date.get(1) + File.separator + (date.get(2) + 1)); + File newFile = new File(rootPath + File.separator + dateDirs + File.separator + originalFileName); + if (!newFile.getParentFile().exists()) { + newFile.getParentFile().mkdirs(); + } + + System.out.println(newFile); + file.transferTo(newFile); + (new StringBuilder(String.valueOf(date.get(1)))).append("/").append(date.get(2) + 1).append("/").append(newFileName).toString(); + String filePath = rootPath + File.separator + dateDirs + File.separator; + int result = RenameTest.reName(originalFileName, filePath, this.fileToPath); + if (result == 1) { + result += Zip4jTest.unZip(originalFileName, this.fileToPath, this.fileToPath, ""); + } + + if (result == 2) { + result += CopyTest.copyFile(originalFileName.replace(".prot", ""), this.fileToPath, this.picsPath); + } + + if (result == 3) { + result += ProcessTest.ProcessTest(); + } + + return result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/SiteConfigurationController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/SiteConfigurationController.java new file mode 100644 index 0000000..e394fd5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/controller/SiteConfigurationController.java @@ -0,0 +1,196 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.controller; + +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.hz3000_real_data.fac.entity.YcPoint; +import org.springblade.hz3000_real_data.fac.entity.YxPoint; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.site_configuration.entity.Generations; +import org.springblade.hz3000_real_data.site_configuration.service.SiteConfigurationService; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +@Controller +@RequestMapping({"/siteConfiguration"}) +public class SiteConfigurationController { + @Autowired + private SiteConfigurationService siteConfigurationService; + + @Autowired + ISysClient sysClient; + + public SiteConfigurationController() { + } + + @RequestMapping({"/list"}) + public String toGenerationsList(HttpServletRequest request, HttpServletResponse response) { + return "modules/generations/list"; + } + + @RequestMapping({"/edit"}) + public String totoGenerationsEdit(HttpServletRequest request, HttpServletResponse response) { + return "modules/generations/edit"; + } + + @ResponseBody + @RequestMapping({"/getAllGenerations"}) + public List getAllGenerations(HttpServletRequest request, HttpServletResponse response) { + Object list = new ArrayList(); + + try { + list = this.siteConfigurationService.getAllGenerations(); + } catch (Exception var5) { + var5.printStackTrace(); + } + + return (List)list; + } + + @ResponseBody + @RequestMapping({"/getGenerationsByStationId"}) + public List getGenerationsByStationId(HttpServletRequest request, HttpServletResponse response) { + Object list = new ArrayList(); + + try { + String stationId = (String)request.getSession().getAttribute("stationId"); + if (stationId != null && !stationId.equals("")) { + list = this.siteConfigurationService.getGenerationsByStationId(stationId); + } else { + list = this.siteConfigurationService.getAllGenerations(); + } + } catch (Exception var5) { + var5.printStackTrace(); + } + + return (List)list; + } + + @ResponseBody + @RequestMapping({"/getGenerationsById"}) + public Generations getGenerationsById(HttpServletRequest request, HttpServletResponse response, int id) { + Generations generations = new Generations(); + + try { + generations = this.siteConfigurationService.getGenerationsById(id); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return generations; + } + + @ResponseBody + @RequestMapping({"/updataGenerations"}) + public int updataGenerations(Generations generations) { + int res = 0; + + try { + String deptId=AuthUtil.getDeptId(); + R result=sysClient.getDept(Long.valueOf(deptId)); + Dept dept=result.getData(); + if (dept != null) { + generations.setStationId(dept.getStationId()); + generations.setStationName(dept.getDeptName()); + } + + res = this.siteConfigurationService.updataGenerations(generations); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return res; + } + + @ResponseBody + @RequestMapping({"/insertGenerations"}) + public int insertGenerations(Generations generations) { + int res = 0; + + try { + String deptId=AuthUtil.getDeptId(); + R result=sysClient.getDept(Long.valueOf(deptId)); + Dept dept=result.getData(); + if (dept != null) { + generations.setStationId(dept.getStationId()); + generations.setStationName(dept.getDeptName()); + } + + res = this.siteConfigurationService.insertGenerations(generations); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return res; + } + + @ResponseBody + @RequestMapping({"/delectGenerationsById"}) + public int delectGenerationsById(HttpServletRequest request, HttpServletResponse response, int id) { + int res = 0; + + try { + res = this.siteConfigurationService.delectGenerationsById(id); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return res; + } + + @ResponseBody + @RequestMapping({"/getYxPointByGroupId"}) + public List getYxPointByGroupId(HttpServletRequest request, HttpServletResponse response, String groupId) { + List list = null; + + try { + list = FacInfoFactory.getInstance().getYxPointByGroupId(groupId); + return list; + } catch (Exception var6) { + list = new ArrayList(); + var6.printStackTrace(); + return list; + } + } + + @ResponseBody + @RequestMapping({"/getYcInfoById"}) + public YcPoint getYcInfoById(HttpServletRequest request, HttpServletResponse response, String id) { + YcPoint ycPoint = new YcPoint(); + + try { + ycPoint = FacInfoFactory.getInstance().getYcPointById(id); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return ycPoint; + } + + @ResponseBody + @RequestMapping({"/getYxInfoById"}) + public YxPoint getYxInfoById(HttpServletRequest request, HttpServletResponse response, String id) { + YxPoint YxPoint = new YxPoint(); + + try { + YxPoint = FacInfoFactory.getInstance().getYxPointById(id); + } catch (Exception var6) { + var6.printStackTrace(); + } + + return YxPoint; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/Generations.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/Generations.java new file mode 100644 index 0000000..f17289c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/Generations.java @@ -0,0 +1,149 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.entity; + +import java.util.List; + +public class Generations { + private int id; + private String name; + private String stationId; + private String stationName; + private String genState; + private String genStateName; + private String genPower; + private String genPowerName; + private String genCapacity; + private String genP; + private String genPName; + private String genStopSoe; + private double ct; + private double pt; + private List stopSoeList; + + public Generations() { + } + + public int getId() { + return this.id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStationId() { + return this.stationId; + } + + public void setStationId(String stationId) { + this.stationId = stationId; + } + + public String getGenState() { + return this.genState; + } + + public void setGenState(String genState) { + this.genState = genState; + } + + public String getGenPower() { + return this.genPower; + } + + public void setGenPower(String genPower) { + this.genPower = genPower; + } + + public String getGenCapacity() { + return this.genCapacity; + } + + public void setGenCapacity(String genCapacity) { + this.genCapacity = genCapacity; + } + + public String getGenP() { + return this.genP; + } + + public void setGenP(String genP) { + this.genP = genP; + } + + public String getStationName() { + return this.stationName; + } + + public void setStationName(String stationName) { + this.stationName = stationName; + } + + public String getGenStateName() { + return this.genStateName; + } + + public void setGenStateName(String genStateName) { + this.genStateName = genStateName; + } + + public String getGenPowerName() { + return this.genPowerName; + } + + public void setGenPowerName(String genPowerName) { + this.genPowerName = genPowerName; + } + + public String getGenPName() { + return this.genPName; + } + + public void setGenPName(String genPName) { + this.genPName = genPName; + } + + public String getGenStopSoe() { + return this.genStopSoe; + } + + public void setGenStopSoe(String genStopSoe) { + this.genStopSoe = genStopSoe; + } + + public List getStopSoeList() { + return this.stopSoeList; + } + + public void setStopSoeList(List stopSoeList) { + this.stopSoeList = stopSoeList; + } + + public double getCt() { + return this.ct; + } + + public void setCt(double ct) { + this.ct = ct; + } + + public double getPt() { + return this.pt; + } + + public void setPt(double pt) { + this.pt = pt; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/StopSoe.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/StopSoe.java new file mode 100644 index 0000000..5e1c61c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/entity/StopSoe.java @@ -0,0 +1,34 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.entity; + +public class StopSoe { + private String id; + private String name; + + public StopSoe() { + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String toString() { + return "StopSoe [id=" + this.id + ", name=" + this.name + "]"; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.java new file mode 100644 index 0000000..dfe903e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.java @@ -0,0 +1,25 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.mapper; + + +import org.springblade.hz3000_real_data.site_configuration.entity.Generations; + +import java.util.List; + +public interface GenerationsMapper { + List getAllGenerations(); + + Generations getGenerationsById(int var1); + + int insertGenerations(Generations var1); + + int delectGenerationsById(int var1); + + int updateGenerations(Generations var1); + + List getGenerationsByStationId(String var1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.xml new file mode 100644 index 0000000..a352232 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/mapper/GenerationsMapper.xml @@ -0,0 +1,102 @@ + + + + + + a.id, + a.name, + a.station_id, + a.station_name, + a.gen_state, + a.gen_state_name, + a.gen_power, + a.gen_power_name, + a.gen_capacity, + a.gen_p, + a.gen_p_name, + a.gen_stop_soe, + a.ct, + a.pt + + + + + + + + + + + + + + INSERT INTO hy_generations( + name, + station_id, + station_name, + gen_state, + gen_state_name, + gen_power, + gen_power_name, + gen_capacity, + gen_p, + gen_p_name, + gen_stop_soe, + ct, + pt + ) SELECT + #{name}, + #{stationId}, + #{stationName}, + #{genState}, + #{genStateName}, + #{genPower}, + #{genPowerName}, + #{genCapacity}, + #{genP}, + #{genPName}, + #{genStopSoe}, + #{ct}, + #{pt} + FROM DUAL WHERE NOT EXISTS( + SELECT name FROM hy_generations WHERE name = #{name}) + + + + + UPDATE hy_generations SET + name = #{name}, + station_id = #{stationId}, + station_name = #{stationName}, + gen_state = #{genState}, + gen_state_name = #{genStateName}, + gen_power = #{genPower}, + gen_power_name = #{genPowerName}, + gen_capacity = #{genCapacity}, + gen_p = #{genP}, + gen_p_name = #{genPName}, + gen_stop_soe = #{genStopSoe}, + ct = #{ct}, + pt = #{pt} + WHERE id = #{id} + + + + + delete from hy_generations where id=#{id} + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/service/SiteConfigurationService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/service/SiteConfigurationService.java new file mode 100644 index 0000000..9c75234 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/service/SiteConfigurationService.java @@ -0,0 +1,96 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.service; + +import org.apache.commons.lang.StringUtils; +import org.springblade.hz3000_real_data.fac.entity.BasePoint; +import org.springblade.hz3000_real_data.fac.utils.FacInfoFactory; +import org.springblade.hz3000_real_data.site_configuration.mapper.GenerationsMapper; +import org.springblade.hz3000_real_data.site_configuration.entity.Generations; +import org.springblade.hz3000_real_data.site_configuration.entity.StopSoe; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +@Service("SiteConfigurationService") +public class SiteConfigurationService { + @Autowired + private GenerationsMapper generationsDao; + + public SiteConfigurationService() { + } + + public List getAllGenerations() { + List list = this.generationsDao.getAllGenerations(); + list = this.dealStopSoe(list); + return list; + } + + public Generations getGenerationsById(int id) { + return this.generationsDao.getGenerationsById(id); + } + + public int updataGenerations(Generations generations) { + return this.generationsDao.updateGenerations(generations); + } + + public int insertGenerations(Generations generations) { + return this.generationsDao.insertGenerations(generations); + } + + public int delectGenerationsById(int id) { + return this.generationsDao.delectGenerationsById(id); + } + + public List getGenerationsByStationId(String stationId) { + List list = this.generationsDao.getGenerationsByStationId(stationId); + list = this.dealStopSoe(list); + return list; + } + + public List dealStopSoe(List list) { + try { + Iterator var3 = list.iterator(); + + while(true) { + Generations generations; + String stopSoeValue; + do { + if (!var3.hasNext()) { + return list; + } + + generations = (Generations)var3.next(); + stopSoeValue = generations.getGenStopSoe(); + } while(!StringUtils.isNotBlank(stopSoeValue)); + + String[] soeArr = stopSoeValue.split(","); + List tempList = new ArrayList(); + String[] var10 = soeArr; + int var9 = soeArr.length; + + for(int var8 = 0; var8 < var9; ++var8) { + String stopSoe = var10[var8]; + StopSoe stopSoeObj = new StopSoe(); + BasePoint point = FacInfoFactory.getInstance().getDataPointDef(stopSoe); + if (point != null) { + stopSoeObj.setId(point.getId()); + stopSoeObj.setName(point.getName()); + tempList.add(stopSoeObj); + } + } + + generations.setStopSoeList(tempList); + } + } catch (Exception var13) { + var13.printStackTrace(); + return list; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/CopyTest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/CopyTest.java new file mode 100644 index 0000000..aae708b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/CopyTest.java @@ -0,0 +1,60 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.utils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; + +public class CopyTest { + public CopyTest() { + } + +// public static void main(String[] args) { +// String filePath = "D:\\工作文件\\"; +// String fileToPath = "D:\\工作文件\\pics\\"; +// +// try { +// copyFile("广东梅州梅西水电站", filePath, fileToPath); +// } catch (IOException var4) { +// var4.printStackTrace(); +// } +// +// } + + public static int copyFile(String fileName, String filePath, String fileToPath) throws IOException { + String path = filePath + fileName + "\\projects\\" + fileName + "\\pics\\"; + File file = new File(path); + File[] fs = file.listFiles(); + File[] var9 = fs; + int var8 = fs.length; + + for(int var7 = 0; var7 < var8; ++var7) { + File f = var9[var7]; + if (f.isFile()) { + try { + FileInputStream ins = new FileInputStream(path + f.getName()); + FileOutputStream out = new FileOutputStream(fileToPath + f.getName()); + byte[] b = new byte[1024]; + boolean var13 = false; + + int n; + while((n = ins.read(b)) != -1) { + out.write(b, 0, n); + } + + ins.close(); + out.close(); + } catch (IOException var14) { + var14.printStackTrace(); + } + } + } + + return 1; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Delect.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Delect.java new file mode 100644 index 0000000..2dfd766 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Delect.java @@ -0,0 +1,28 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.utils; + +import java.io.File; + +public class Delect { + public Delect() { + } + + public static boolean deleteFile(File file) { + if (file.exists() && file.isFile()) { + if (file.delete()) { + System.out.println("删除单个文件" + file.getName() + "成功!"); + return true; + } else { + System.out.println("删除单个文件" + file.getName() + "失败!"); + return false; + } + } else { + System.out.println("删除单个文件失败:" + file.getName() + "不存在!"); + return false; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/ProcessTest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/ProcessTest.java new file mode 100644 index 0000000..b3b2e46 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/ProcessTest.java @@ -0,0 +1,30 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.utils; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.Charset; + +public class ProcessTest { + public ProcessTest() { + } + + public static int ProcessTest() throws IOException { + Runtime run = Runtime.getRuntime(); + Process process = run.exec("java -jar d:\\HZ3000\\runtime\\servers\\transfertool\\bin\\Html5ParserAuto.jar"); + BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.forName("GBK"))); + String line = ""; + + while((line = br.readLine()) != null) { + System.out.println(line); + } + + br.close(); + return 1; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/RenameTest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/RenameTest.java new file mode 100644 index 0000000..71f9574 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/RenameTest.java @@ -0,0 +1,44 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.utils; + +import java.io.File; + +public class RenameTest { + public RenameTest() { + } + +// public static void main(String[] args) { +// String a = "D:\\workspace\\hznet\\hznet3.0workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\site-configuration-web\\resource\\uploads\\2018\\9\\"; +// File oldFile = new File(a + "sliver20180920120012.prot"); +// File newFile = new File("D:/工作文件/广东梅州梅西水电站.zip"); +// boolean flag = oldFile.renameTo(newFile); +// if (flag) { +// System.out.println("File renamed successfully"); +// } else { +// System.out.println("Rename operation failed"); +// } +// +// } + + public static int reName(String fileName, String filePath, String fileToPath) { + File file = new File(fileToPath + fileName.replace(".prot", ".zip")); + if (file.exists()) { + Delect.deleteFile(file); + } + + File oldFile = new File(filePath + fileName); + File newFile = new File(fileToPath + fileName.replace(".prot", ".zip")); + boolean flag = oldFile.renameTo(newFile); + if (flag) { + System.out.println("File renamed successfully"); + return 1; + } else { + System.out.println("Rename operation failed"); + return 0; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Zip4jTest.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Zip4jTest.java new file mode 100644 index 0000000..102ce33 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/java/org/springblade/hz3000_real_data/site_configuration/utils/Zip4jTest.java @@ -0,0 +1,45 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hz3000_real_data.site_configuration.utils; + +import net.lingala.zip4j.core.ZipFile; +import net.lingala.zip4j.exception.ZipException; + +import java.io.File; + +public class Zip4jTest { + public Zip4jTest() { + } + +// public static void main(String[] args) { +// try { +// unZip("广东梅州梅西水电站.zip", "D:\\FileConversion\\", "D:\\FileConversion\\", ""); +// } catch (ZipException var2) { +// var2.printStackTrace(); +// } +// +// } + + public static int unZip(String fileName, String filePath, String fileToPath, String passwd) throws ZipException { + ZipFile zfile = new ZipFile(filePath + fileName.replace(".prot", ".zip")); + zfile.setFileNameCharset("GBK"); + if (!zfile.isValidZipFile()) { + throw new ZipException("压缩文件不合法,可能已经损坏!"); + } else { + File file = new File(fileToPath + fileName.replace(".prot", "")); + if (file.isDirectory() && !file.exists()) { + file.mkdirs(); + } + + if (zfile.isEncrypted()) { + zfile.setPassword(passwd.toCharArray()); + } + + zfile.extractAll(fileToPath + fileName.replace(".prot", "")); + return 1; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..91de9f9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-dev.yml @@ -0,0 +1,59 @@ +#服务器端口 +server: + port: 8210 + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 + +#ObjectServiceImpl +hzinfo: + task: + pdf: + # pdf模板路径 ,请配置绝对路径 + # module-path: /data/inspect/pdf/templet/inspectObj.html # linux + module-path: D:\data\hzinfo\templet\inspectObj.html # windows + # pdf文件存储路径,请配置绝对路径 + # file-path: /data/inspect/pdf/file # linux + file-path: D:/data/hzinfo/file # windows + +#TaskRemindManager +hzims: + tasks: + flag: 1 + inspect: + ai: + # 文件外网访问路径 + replace-url: http://175.6.40.67:19000 + rabbit-mq-send-topic: inspect_task_send_ia_task + face: + # 人脸识别服务地址 + url: http://192.168.65.249:9876 + # 越小精度越高 + ratio: 0.6 + video: + # 文件内网访问路径 + minio-url: http://192.168.65.246:8585 + task: + #短信模块code + templateCode: + #巡检任务开始前发送短信信息阿里云模板 + taskBegin: aliyun-task-begin + #巡检任务结束前发送短信信息阿里云模板 + taskEnd: aliyun-task-end + #巡检消息推送模板 - 极光 + jgPushCode: hzinfo-inspect + +soe: + show: + number: 10 + +dynamic: + file: + path: D:\\upload \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application.yml new file mode 100644 index 0000000..2b3ed91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hz3000-real-data-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: hz3000-real-data + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/pom.xml new file mode 100644 index 0000000..93e17bd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/pom.xml @@ -0,0 +1,160 @@ + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + 4.0.0 + + pxhd-hzinfo-inspect-service + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + + org.springblade + blade-starter-excel + + + + org.springblade + blade-core-cloud + provided + + + + org.springblade + pxhd-hzinfo-inspect-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-starter-datascope + 4.5.0.RELEASE + + + + org.springblade + blade-system-api + ${bladex.project.version} + + + org.springblade + blade-dict-api + ${bladex.project.version} + + + org.springblade + blade-user-api + ${bladex.project.version} + + + org.springblade + blade-flow-api + ${bladex.project.version} + + + org.springblade + blade-resource-api + ${bladex.project.version} + + + + com.xuxueli + xxl-job-core + + + + net.sf.ehcache + ehcache-core + 2.6.9 + + + + + com.itextpdf + itextpdf + 5.5.13 + + + + com.itextpdf.tool + xmlworker + 5.5.13 + + + org.xhtmlrenderer + flying-saucer-pdf-itext5 + 9.0.7 + + + com.google.zxing + javase + 2.2 + + + + com.hikvision.ga + artemis-http-client + 1.1.2 + + + + com.alibaba + easyexcel + 2.2.7 + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/HzInfoInspectApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/HzInfoInspectApplication.java new file mode 100644 index 0000000..aac60c7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/HzInfoInspectApplication.java @@ -0,0 +1,26 @@ +package org.springblade.hzinfo_inspect; + +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; + +/** + * 通用巡检启动器 + * + * @author ninglong + */ +@EnableBladeFeign +@SpringCloudApplication +public class HzInfoInspectApplication extends SpringBootServletInitializer { + + public static void main(String[] args) { + BladeApplication.run(Constants.APP_NAME, HzInfoInspectApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(Constants.APP_NAME, HzInfoInspectApplication.class); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/RouteGatherController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/RouteGatherController.java new file mode 100644 index 0000000..9bf2798 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/RouteGatherController.java @@ -0,0 +1,53 @@ +package org.springblade.hzinfo_inspect.gather.controller; + +import io.swagger.annotations.Api; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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.hzinfo_inspect.gather.entity.RouteGatherEntity; +import org.springblade.hzinfo_inspect.gather.service.IRouteGatherService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.metadata.IPage; + + +/** + * 控制器 + * + * @author py + */ +@RestController +@AllArgsConstructor +@RequestMapping("/st_re_route_gather") +@Api(value = "聚合巡检路径", tags = "集控站,聚合巡检路径") +public class RouteGatherController extends BladeController { + + private final IRouteGatherService st_re_route_gatherService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入st_re_route_gather") + public R detail(RouteGatherEntity st_re_route_gather) { + RouteGatherEntity detail = st_re_route_gatherService.getOne(Condition.getQueryWrapper(st_re_route_gather)); + return R.data(detail); + } + + /** + * 分页 代码自定义代号 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入st_re_route_gather") + public R> list(RouteGatherEntity st_re_route_gather, Query query) { + IPage pages = st_re_route_gatherService.page(Condition.getPage(query), Condition.getQueryWrapper(st_re_route_gather)); + return R.data(pages); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/TaskGatherController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/TaskGatherController.java new file mode 100644 index 0000000..773563d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/controller/TaskGatherController.java @@ -0,0 +1,55 @@ +package org.springblade.hzinfo_inspect.gather.controller; + +import io.swagger.annotations.Api; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; + +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.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.service.ITaskGatherService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.metadata.IPage; + + + +/** + * 控制器 + * + * @author py + */ +@RestController +@AllArgsConstructor +@RequestMapping("/st_hi_task_gather") +@Api(value = "巡检任务统计数据集合对象", tags = "巡检任务统计数据集合对象") +public class TaskGatherController extends BladeController { + + private final ITaskGatherService st_hi_task_gatherService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入st_hi_task_gather") + public R detail(TaskGatherEntity st_hi_task_gather) { + TaskGatherEntity detail = st_hi_task_gatherService.getOne(Condition.getQueryWrapper(st_hi_task_gather)); + return R.data(detail); + } + + /** + * 分页 代码自定义代号 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入st_hi_task_gather") + public R> list(TaskGatherEntity st_hi_task_gather, Query query) { + IPage pages = st_hi_task_gatherService.page(Condition.getPage(query), Condition.getQueryWrapper(st_hi_task_gather)); + return R.data(pages); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/RouteGatherDTO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/RouteGatherDTO.java new file mode 100644 index 0000000..25a2da4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/RouteGatherDTO.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.gather.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; + +/** + * 模型DTO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RouteGatherDTO extends RouteGatherEntity { + + private static final long serialVersionUID = 1L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/TaskGatherDTO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/TaskGatherDTO.java new file mode 100644 index 0000000..f4d96bb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/dto/TaskGatherDTO.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.gather.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; + +/** + * 模型DTO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class TaskGatherDTO extends TaskGatherEntity { + + private static final long serialVersionUID = 1L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/RouteGatherEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/RouteGatherEntity.java new file mode 100644 index 0000000..1ee21da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/RouteGatherEntity.java @@ -0,0 +1,53 @@ +package org.springblade.hzinfo_inspect.gather.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_re_route_gather") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "Route对象", description = "聚合巡检路径,集控站使用") +public class RouteGatherEntity extends BaseEntity { + + private static final long serialVersionUID = 643218503830864943L; + + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty("租户ID") + private String tenantId; + + /** + * 路线名称 + */ + @QueryField(condition = SqlCondition.LIKE) + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 路线数据 + * json list + * 格式: + * [{"sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"},{"sort":2,"objectId":"191","objectName":"厂房","templateId":"2235","templateName":"人员考勤"}] + */ + @ApiModelProperty(value = "路线数据") + private String routeData; + + /** + * 巡检类型标识 + */ + @ApiModelProperty(value = " 巡检类型标识 0普通巡检,1视频自动巡检,2机器人巡检") + @QueryField(condition = SqlCondition.EQUAL) + private String supportAutoVideo; + +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java new file mode 100644 index 0000000..265ef9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/entity/TaskGatherEntity.java @@ -0,0 +1,164 @@ +package org.springblade.hzinfo_inspect.gather.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.springblade.core.mp.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.time.format.DateTimeFormatter; +import java.time.LocalDateTime; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_hi_task_gather") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "TaskGather对象", description = "巡检任务统计数据集合对象,集控站使用") +public class TaskGatherEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty("租户ID") + private String tenantId; + + /** + * 用户id + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "用户id") + private Long userId; + /** + * 用户名称 + */ + @ApiModelProperty(value = "用户名称") + private String userName; + /** + * 路径id + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "路径id") + private Long routeId; + /** + * + */ + @ApiModelProperty(value = "路径名称") + private String routeName; + /** + * 问题数 + */ + @ApiModelProperty(value = "问题数") + private Long problemNum; + /** + * 计划ID + */ + @ApiModelProperty(value = "计划ID") + private Long planId; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式") + private String type; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String planName; + /** + * 任务批次号 + */ + @ApiModelProperty(value = "任务批次号") + private String batchNumber; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周 + */ + @ApiModelProperty(value = "计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周") + private String cycle; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + private String method; + /** + * 任务计划开始时间 + */ + @ApiModelProperty(value = "任务计划开始时间") + private LocalDateTime planStartTime; + /** + * 任务计划结束时间 + */ + @ApiModelProperty(value = "任务计划结束时间") + private LocalDateTime planEndTime; + /** + * 任务实际开始时间 + */ + @ApiModelProperty(value = "任务实际开始时间") + private LocalDateTime startTime; + /** + * 任务实际结束时间 + */ + @ApiModelProperty(value = "任务实际结束时间") + private LocalDateTime endTime; + /** + * 巡检报备 0 未报备 1已报备 + */ + @ApiModelProperty(value = "巡检报备 0 未报备 1已报备") + private String keepOnRecord; + /** + * 巡检类型标识: 0普通巡检,1,视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1,视频自动巡检,2机器人巡检") + private String autoVideo; + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @ApiModelProperty(value = "计划类型,common常规任务,temporary临时任务") + private String planType; + /** + * 任务开始前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务开始前 是否发送提醒短信 标识") + private Boolean startRemindFlag; + /** + * 任务结束前 是否发送提醒短信 标识 + */ + @ApiModelProperty(value = "任务结束前 是否发送提醒短信 标识") + private Boolean endRemindFlag; + /** + * 开始前提醒时间 + */ + @ApiModelProperty(value = "开始前提醒时间") + private LocalDateTime startRemindTime; + /** + * 结束前提醒时间 + */ + @ApiModelProperty(value = "结束前提醒时间") + private LocalDateTime endRemindTime; + + public String getStrPlanStartTime(){ + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return dfShort.format(getPlanStartTime()); + } + + public Long getProblemNum() { + if(problemNum == null){ + return 0L; + } + return problemNum; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectGatherClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectGatherClient.java new file mode 100644 index 0000000..e486f80 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectGatherClient.java @@ -0,0 +1,94 @@ +package org.springblade.hzinfo_inspect.gather.feigns; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.feign.IInspectGatherClient; +import org.springblade.hzinfo_inspect.gather.service.ITaskGatherService; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherReportVO; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.task.TaskContants; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.system.cache.DictCache; +import org.springblade.system.user.cache.UserCache; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.time.Duration; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +@RestController +@RequestMapping(value = "/feign/gather") +public class InspectGatherClient implements IInspectGatherClient { + @Autowired + private ITaskGatherService taskGatherService; + + @GetMapping("/listGatherTaskByDisposer") + @Override + public R> listGatherTaskByDisposer(String disposer){ + List disposerList = Arrays.asList(disposer.split(",")); + List taskGatherEntityList = taskGatherService.list(new QueryWrapper().in("USER_ID",disposerList)); + return R.data(taskGatherEntityList); + } + + @PostMapping("/listTaskGatherReport") + @Override + public List listTaskGatherReport(@RequestBody Map params) { + List taskGatherReportVOList = new ArrayList<>(); + List taskGatherEntityList = taskGatherService.list(new LambdaQueryWrapper(){{ + ge(TaskGatherEntity::getPlanStartTime,params.get("startDate")); + le(TaskGatherEntity::getPlanEndTime,params.get("endDate")); + in(TaskGatherEntity::getCreateDept,(List)params.get("deptId")); + }}); + Map> taskGatherListByUserId = taskGatherEntityList.stream().filter(o-> ObjectUtil.isNotEmpty(o.getUserId())).collect(Collectors.groupingBy(TaskGatherEntity::getUserId)); + taskGatherListByUserId.forEach((userId,list)->{ + TaskGatherReportVO taskGatherReportVO = new TaskGatherReportVO(); + taskGatherReportVO.setUserName(UserCache.getUser(userId).getName()); + AtomicReference completeSituation = new AtomicReference<>(""); + AtomicReference inCompleteSituation = new AtomicReference<>(""); + if(CollectionUtil.isNotEmpty(list)){ + Map> taskGatherListGroupByAutoVideo = list.stream().filter(o-> StringUtil.isNotBlank(o.getAutoVideo())).collect(Collectors.groupingBy(TaskGatherEntity::getAutoVideo)); + taskGatherListGroupByAutoVideo.forEach((autoVideo,videoList)->{ + if(CollectionUtil.isNotEmpty(videoList)){ + List completeList = videoList.stream().filter(o-> TaskContants.TaskStatusEnum.FINISH_STATUS.equals(o.getStatus())).collect(Collectors.toList()); + List inCompleteList = videoList.stream().filter(o-> TaskContants.TaskStatusEnum.UNFINISH_STATUS.equals(o.getStatus())).collect(Collectors.toList()); + completeSituation.set(completeSituation.get().concat(DictCache.getKey(PlanContants.INSPECT_TYPE,autoVideo)).concat(":").concat(String.valueOf(completeList.size())).concat("\r\n")); + inCompleteSituation.set(inCompleteSituation.get().concat(DictCache.getKey(PlanContants.INSPECT_TYPE,autoVideo)).concat(":").concat(String.valueOf(inCompleteList.size())).concat("\r\n")); + } + }); + } + taskGatherReportVO.setCompleteSituation(completeSituation.get()); + taskGatherReportVO.setIncompleteSituation(inCompleteSituation.get()); + Long hours = list.stream().mapToLong(o->{ + return Duration.between(o.getPlanStartTime(),o.getPlanEndTime()).toHours(); + }).sum(); + taskGatherReportVO.setHours(hours); + taskGatherReportVO.setFindProblemCount(list.stream().mapToLong(TaskGatherEntity::getProblemNum).sum()); + taskGatherReportVOList.add(taskGatherReportVO); + }); + return taskGatherReportVOList; + } + + @PostMapping("/getInspectConclusion") + @Override + public List> getInspectConclusion(@RequestBody Map params) { + return taskGatherService.getInspectConclusion(params); + } + + @PostMapping("/listByTimeAndPerson") + @Override + public List listByTimeAndPerson(@RequestBody Map params){ + List taskGatherEntityList = taskGatherService.list(new QueryWrapper(){{ + between("PLAN_START_TIME",params.get("startDate"),params.get("endDate")); + if(params.get("userId") != null){ + eq("USER_ID",params.get("userId")); + } + }}); + return taskGatherEntityList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectReportClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectReportClient.java new file mode 100644 index 0000000..8431a7f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/feigns/InspectReportClient.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.gather.feigns; + +import org.springblade.hzinfo_inspect.report.feign.IInspectReportClient; +import org.springblade.hzinfo_inspect.report.service.InspectReportService; +import org.springblade.hzinfo_inspect.report.vo.AlarmRoutReportVO; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; +import java.util.Map; + +public class InspectReportClient implements IInspectReportClient { + + @Autowired + private InspectReportService inspectReportService; + + @Override + public Map getAlarmReport(List depts, String date) { + return inspectReportService.getAlarnReport(date,depts); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.java new file mode 100644 index 0000000..bea20cb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.gather.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface RouteGatherMapper extends UserDataScopeBaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.xml new file mode 100644 index 0000000..d1c7f24 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/RouteGatherMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.java new file mode 100644 index 0000000..bbd7fad --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.java @@ -0,0 +1,38 @@ +package org.springblade.hzinfo_inspect.gather.mapper; + +import com.baomidou.mybatisplus.annotation.SqlParser; +import org.springblade.core.datascope.annotation.UserDataAuth; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; + +import java.util.List; +import java.util.Map; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskGatherMapper extends UserDataScopeBaseMapper { + + + /** + * 根据月份查询任务统计数据 + * @param task + * @return + */ + @UserDataAuth + List getMonthTask(@Param("task") TaskGatherQueryVO task); + + /** + * 根据部门、时间查询巡检站点月报内容 + * @param params + * @return + */ + @SqlParser(filter = true) + List> getInspectConclusion(Map params); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.xml new file mode 100644 index 0000000..1a6ff61 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/mapper/TaskGatherMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/IRouteGatherService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/IRouteGatherService.java new file mode 100644 index 0000000..b6b98a9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/IRouteGatherService.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.gather.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; + +/** + * 服务类 + * + * @author Chill + */ +public interface IRouteGatherService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/ITaskGatherService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/ITaskGatherService.java new file mode 100644 index 0000000..a92c16a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/ITaskGatherService.java @@ -0,0 +1,28 @@ +package org.springblade.hzinfo_inspect.gather.service; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskGatherService extends BaseService { + + + + /** + * 根据月份查询任务统计数据 + * @param task + * @return + */ + List getMonthTask(@Param("task") TaskGatherQueryVO task); + + List> getInspectConclusion(Map params); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/RouteGatherServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/RouteGatherServiceImpl.java new file mode 100644 index 0000000..16097f5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/RouteGatherServiceImpl.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.gather.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; +import org.springblade.hzinfo_inspect.gather.mapper.RouteGatherMapper; +import org.springblade.hzinfo_inspect.gather.service.IRouteGatherService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class RouteGatherServiceImpl extends BaseServiceImpl implements IRouteGatherService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/TaskGatherServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/TaskGatherServiceImpl.java new file mode 100644 index 0000000..db3bc36 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/service/impl/TaskGatherServiceImpl.java @@ -0,0 +1,33 @@ +package org.springblade.hzinfo_inspect.gather.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.mapper.TaskGatherMapper; +import org.springblade.hzinfo_inspect.gather.service.ITaskGatherService; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskGatherServiceImpl extends BaseServiceImpl implements ITaskGatherService { + @Autowired + private TaskGatherMapper taskGatherMapper; + + @Override + public List getMonthTask(TaskGatherQueryVO task) { + return this.baseMapper.getMonthTask(task); + } + + @Override + public List> getInspectConclusion(Map params) { + return taskGatherMapper.getInspectConclusion(params); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/RouteGatherVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/RouteGatherVO.java new file mode 100644 index 0000000..ba5941a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/RouteGatherVO.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.gather.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; + +/** + * 模型VO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RouteGatherVO extends RouteGatherEntity { + + private static final long serialVersionUID = 1L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherQueryVO.java new file mode 100644 index 0000000..e723623 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/vo/TaskGatherQueryVO.java @@ -0,0 +1,41 @@ +package org.springblade.hzinfo_inspect.gather.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 模型VO + * + * @author py + */ +@Data +@ApiModel(value = "TaskGatherQueryVO", description = "巡检任务统计数据查询对象") +public class TaskGatherQueryVO { + + private static final long serialVersionUID = 7984974939305694394L; + + /** + * 年月 2019-02 + */ + @ApiModelProperty(value = "年月 2019-02") + private String month; + + /** + * 路径id ,如果为空则不进行路径筛选 + */ + @ApiModelProperty(value = "路径id ,如果为空则不进行路径筛选") + private Long routId; + + /** + * 用户id,如果为空则不进行用户筛选 + */ + @ApiModelProperty(value = "用户id,如果为空则不进行用户筛选") + private Long userId; + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id") + private String tenantId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/RouteGatherWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/RouteGatherWrapper.java new file mode 100644 index 0000000..bfb6f5b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/RouteGatherWrapper.java @@ -0,0 +1,31 @@ +package org.springblade.hzinfo_inspect.gather.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.hzinfo_inspect.gather.entity.RouteGatherEntity; +import org.springblade.hzinfo_inspect.gather.vo.RouteGatherVO; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class RouteGatherWrapper extends BaseEntityWrapper { + + public static RouteGatherWrapper build() { + return new RouteGatherWrapper(); + } + + @Override + public RouteGatherVO entityVO(RouteGatherEntity st_re_route_gather) { + RouteGatherVO st_re_route_gatherVO = BeanUtil.copy(st_re_route_gather, RouteGatherVO.class); + + //User createUser = UserCache.getUser(st_re_route_gather.getCreateUser()); + //User updateUser = UserCache.getUser(st_re_route_gather.getUpdateUser()); + //st_re_route_gatherVO.setCreateUserName(createUser.getName()); + //st_re_route_gatherVO.setUpdateUserName(updateUser.getName()); + + return st_re_route_gatherVO; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/TaskGatherWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/TaskGatherWrapper.java new file mode 100644 index 0000000..805fe75 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/gather/wrapper/TaskGatherWrapper.java @@ -0,0 +1,31 @@ +package org.springblade.hzinfo_inspect.gather.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class TaskGatherWrapper extends BaseEntityWrapper { + + public static TaskGatherWrapper build() { + return new TaskGatherWrapper(); + } + + @Override + public TaskGatherQueryVO entityVO(TaskGatherEntity st_hi_task_gather) { + TaskGatherQueryVO st_hi_task_gatherVO = BeanUtil.copy(st_hi_task_gather, TaskGatherQueryVO.class); + + //User createUser = UserCache.getUser(st_hi_task_gather.getCreateUser()); + //User updateUser = UserCache.getUser(st_hi_task_gather.getUpdateUser()); + //st_hi_task_gatherVO.setCreateUserName(createUser.getName()); + //st_hi_task_gatherVO.setUpdateUserName(updateUser.getName()); + + return st_hi_task_gatherVO; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/ObjContants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/ObjContants.java new file mode 100644 index 0000000..338f8a7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/ObjContants.java @@ -0,0 +1,245 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj; + +import lombok.Getter; + +/** + * @author ninglong + * + */ +public interface ObjContants { + + /** + * 是否重复记录 0 不允许 1允许 + * @author ninglong + * + */ + public enum DuplicateRecordEnum{ + no("0"),yes("1"); + @Getter + private String type; + private DuplicateRecordEnum(String type){ + this.type = type; + } + } + + /** + * 巡检监测类型 0目测 1仪器 2热成像 3拍照 4视频巡检 + * @author py + * + */ + enum CheckTypeEnum{ + /** + * 目测 + */ + EYE("0"), + /** + *仪器 + */ + INSTRUMENT("1"), + /** + *热成像 + */ + THERMAL("2"), + /** + *拍照 + */ + PICTURE("3"), + /** + *视频巡检 + */ + AUTO_VIDEO("4"), + /** + *机器人巡检 + */ + ROBOT("5"); + + @Getter + private String type; + + CheckTypeEnum(String type){ + this.type = type; + } + } + + /** + * 巡检视频巡检类型 0图片 11通过表针识别记值 + * @author py + * + */ + enum VideoCheckTypeEnum{ + /** + * 图片 + */ + PICTURE("0"), + /** + *通过表针识别记值 + */ + IDENTIFY("11"); + + + @Getter + private String type; + + VideoCheckTypeEnum(String type){ + this.type = type; + } + } + + /** + * 机器人巡检类型 + * @author py + * + */ + enum RobotCheckTypeEnum{ + /** + * 图片 + */ + PICTURE("0"), + /** + *识别 + */ + IDENTIFY("1"), + /** + *热成像 + */ + THERMAL("10"), + /** + * 声音 + */ + VOICE("20"); + + @Getter + private String type; + + RobotCheckTypeEnum(String type){ + this.type = type; + } + + /** + * 根据值获取枚举 + * @param val + * @return + */ + public static RobotCheckTypeEnum getType(String val){ + for (RobotCheckTypeEnum type : RobotCheckTypeEnum.values()) { + if(type.getType().equals(val)){ + return type; + } + } + return null; + } + + + public static RobotCheckTypeEnum getEnum(String type){ + if(type.equals(PICTURE.getType())){ + return PICTURE; + } + if(type.equals(IDENTIFY.getType())){ + return IDENTIFY; + } + if(type.equals(THERMAL.getType())){ + return THERMAL; + } + return null; + } + } + /** + * 巡检机器人识别类型 + * @author py + * 数据字典:identifyType + * + */ + enum RobotIdentifyTypeEnum{ + /** + * 表针识别 + */ + METER("11"), + /** + *灯识别 + */ + LIGHT("13"), + /** + *黑色短柄切换开关识别 + */ + SH("14"), + /** + *红色切换开关识别 + */ + KNOB("15"), + /** + *多联微型断路器识别 + */ + SWITCH_H("16"), + /** + *微型断路器识别 + */ + SWITCH_TURN("17"), + /** + *塑壳断路器 + */ + SWITCH_PUSH("18"), + /** + *磁翻板液位计 + */ + MAGNETIC_FLAP_LEVEL_GAUGE("19"), + /** + *液位计 + */ + LEVEL_GAUGE("20"), + /** + *电子表 + */ + DIGIT("21"), + + /** + *压板接线端子 + */ + PRESSEDBOARD("23"), + /** + * 噪音 + */ + RECORD("24"), + /** + *黑色旋扭切换开关 + */ + ROTARY_SWITCH("25"), + + /** + *工装识别 + */ + SUIT("32"), + /** + *安全帽识别 + */ + HAT("33"), + /** + *入侵识别 + */ + PERSON("34") + ; + + @Getter + private String type; + + RobotIdentifyTypeEnum(String type){ + this.type = type; + } + + /** + * 根据值获取枚举 + * @param val + * @return + */ + public static RobotIdentifyTypeEnum getIdentifyType(String val){ + for (RobotIdentifyTypeEnum type : RobotIdentifyTypeEnum.values()) { + if(type.getType().equals(val)){ + return type; + } + } + return null; + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ContentEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ContentEntity.java new file mode 100644 index 0000000..0fbdd8d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ContentEntity.java @@ -0,0 +1,131 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.Size; + +/** + * 巡检对象 实体类 + * @author ninglong + */ +@Data +@TableName("hz_st_re_content") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检内容对象", description = "巡检对象") +public class ContentEntity extends BaseEntity { + + private static final long serialVersionUID = 6469854303492635712L; + + /** + * 内容编码 + */ + @ApiModelProperty(value = "内容编码") + private String code; + /** + * 内容名称 + */ + @ApiModelProperty(value = "内容名称,长度必须为1到128") + @Size(min=1,max = 128,message ="内容名称长度必须为1到128") + private String name; + /** + * 内容描述 + */ + @ApiModelProperty(value = "内容描述,长度必须为0到512") + @Size(min=0,max = 512,message ="内容描述长度必须为0到512") + private String description; + /** + * 记录类型 0不记录 1仅选择 2仅记值 3选择并记值 + */ + @ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值") + private String recordType; + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + private String checkType; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + private String checkTypeSon; + + /** + * 表针识别,表盘ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "表针识别,表盘ID") + private Long clockId; + + /** + * 视频巡检摄像机ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "视频巡检摄像机ID") + private Long cameraId; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + + /** + * 上限值 + */ + @ApiModelProperty(value = "上限值") + private Double upLimit; + + + /** + * 下限值 + */ + @ApiModelProperty(value = "下限值") + private Double downLimit; + + /** + * 问题排除建议 + */ + @ApiModelProperty(value = "问题排除建议") + private String suggestion; + + /** + * 排序 + */ + @ApiModelProperty(value = "排序") + private Integer sort; + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = " inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + + /** + * 开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0 + */ + @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0") + private String cameraAddr; + + + /** + * 其他参数,例如多联断路器内断路器的个数 + */ + @ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数") + private String otherParam; + + /** + * 校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开 + */ + @ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开") + private String checkVal; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/InspectPdf.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/InspectPdf.java new file mode 100644 index 0000000..41f0ed4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/InspectPdf.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import lombok.Data; + +/** + * pdf 模板字段 + */ +@Data +public class InspectPdf { + private String data_1; + + private String data_2; + + private String data_3; + + private String data_4; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectDangerEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectDangerEntity.java new file mode 100644 index 0000000..54d2362 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectDangerEntity.java @@ -0,0 +1,43 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_re_object_danger") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "ObjectDanger对象", description = "巡检对象危险点关联表( 一个巡检对象对应多个危险点)") +public class ObjectDangerEntity extends BaseEntity { + + private static final long serialVersionUID = 6190850398432879394L; + + /** + * 巡检对象ID + */ + @ApiModelProperty(value = "巡检对象ID") + private Long objectId; + + /** + * 危险点ID + */ + @ApiModelProperty(value = "危险点ID") + private Long dangerId; + + /** + * 排序 + */ + @ApiModelProperty(value = "排序") + private Integer sort; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectEntity.java new file mode 100644 index 0000000..bc47940 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectEntity.java @@ -0,0 +1,102 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; + +import javax.validation.constraints.Size; +import java.math.BigDecimal; +import java.util.List; + + +/** + * 巡检对象实体类 + * + * @author ninglong + */ +@Data +@TableName("hz_st_re_object") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检对象", description = "巡检对象") +public class ObjectEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + private String code; + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称,长度必须为1到128") + @Size(min=1,max = 128,message ="对象名称长度必须为1到128") + private String name; + /** + * 地理位置 + */ + @ApiModelProperty(value = "地理位置,长度必须为1到128") + @Size(min=1,max = 128,message ="地理位置长度必须为1到128") + private String address; + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal lttd; + /** + * 对象来源 对象来源于哪一个表 + */ + @ApiModelProperty(value = "对象来源 对象来源于哪一个表") + private String tableCode; + /** + * 对象实际ID 对象所在的来源表对应的真实ID + */ + @ApiModelProperty(value = "对象实际ID 对象所在的来源表对应的真实ID") + private Long realId; + /** + * 对象描述 + */ + @ApiModelProperty(value = "对象描述,长度必须为0到512") + @Size(min=0,max = 512,message ="对象描述长度必须为0到512") + private String description; + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检,3防汛巡检,4特殊巡检 + */ + @ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检,3防汛巡检,4特殊巡检") + private String supportAutoVideo; + + + /** + * 对象危险点list + */ + @TableField(exist = false) + @ApiModelProperty(value = "对象危险点list") + private List objectDangers; + + /** + * 对象危险点详情list + */ + @TableField(exist = false) + @ApiModelProperty(value = "对象危险点详情list") + private List dangerSources; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectTemplateEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectTemplateEntity.java new file mode 100644 index 0000000..092080c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectTemplateEntity.java @@ -0,0 +1,46 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@ApiModel +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Builder +@TableName(value="hz_st_re_object_template") +public class ObjectTemplateEntity extends BaseEntity { + + private static final long serialVersionUID = 3611587990613010673L; + + @ApiModelProperty(value = "模板id") + private Long templateId; + @ApiModelProperty(value = "对象id") + private Long objectId; + + + @ApiModelProperty(value = "模板编码") + @TableField(exist = false) + private String code; + @ApiModelProperty(value = "模板名称") + @TableField(exist = false) + private String name; + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + @TableField(exist = false) + private String supportAutoVideo; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectUserEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectUserEntity.java new file mode 100644 index 0000000..dc4dfa7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ObjectUserEntity.java @@ -0,0 +1,35 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 巡检对象用户 + * @author ninglong + */ +@Data +@ApiModel +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Builder +@TableName(value="hz_st_re_object_user") +public class ObjectUserEntity extends BaseEntity { + + private static final long serialVersionUID = 1224431667042529779L; + + @ApiModelProperty(value="对象id") + private Long objectId; + + @ApiModelProperty(value="用户id") + private Long userId; + + @ApiModelProperty(value = "模板id") + private Long templateId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/OtherObjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/OtherObjectEntity.java new file mode 100644 index 0000000..68281da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/OtherObjectEntity.java @@ -0,0 +1,78 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.Size; +import java.math.BigDecimal; +import java.util.Date; + + +/** + * 巡检对象实体类 + * + * @author py + */ +@Data +@TableName("hz_st_other_object") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "其他巡检对象", description = "其他巡检对象") +public class OtherObjectEntity extends BaseEntity { + + private static final long serialVersionUID = 5811271564051268417L; + /** + * 来源类型 + */ + @ApiModelProperty(value = "来源类型") + private String type; + + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + private String code; + + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称,长度必须为1到128") + @Size(min=1,max = 128,message ="对象名称长度必须为1到128") + private String name; + + /** + * 地理位置 + */ + @ApiModelProperty(value = "地理位置,长度必须为1到128") + @Size(min=1,max = 128,message ="地理位置长度必须为1到128") + private String address; + /** + * 经度(东经) + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "经度(东经)") + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal lttd; + /** + * 对象来源 对象来源于哪一个表 + */ + @ApiModelProperty(value = "对象来源 对象来源于哪一个表") + private String tableCode; + /** + * 对象实际ID 对象所在的来源表对应的真实ID + */ + @ApiModelProperty(value = "对象实际ID 对象所在的来源表对应的真实ID") + private Long realId; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectContentEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectContentEntity.java new file mode 100644 index 0000000..92b811e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectContentEntity.java @@ -0,0 +1,113 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@ApiModel +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Builder +@TableName(value="hz_st_re_project_content") +public class ProjectContentEntity extends BaseEntity { + + private static final long serialVersionUID = 735528015136698761L; + + @ApiModelProperty(value = "项目id") + private Long projectId; + @ApiModelProperty(value = "内容id") + private Long contentId; + @ApiModelProperty(value = "排序") + private Integer sort; + + /** + * 内容编码 + */ + @ApiModelProperty(value = "内容编码") + @TableField(exist = false) + private String code; + /** + * 内容名称 + */ + @ApiModelProperty(value = "内容名称") + @TableField(exist = false) + private String name; + + /** + * 记录类型 0不记录 1仅选择 2仅记值 3选择并记值 + */ + @ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值") + @TableField(exist = false) + private String recordType; + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + @TableField(exist = false) + private String checkType; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + @TableField(exist = false) + private String checkTypeSon; + + /** + * 表针识别,表盘ID + */ + @ApiModelProperty(value = "表针识别,表盘ID") + @TableField(exist = false) + private Long clockId; + + /** + * 视频巡检摄像机ID + */ + @ApiModelProperty(value = "视频巡检摄像机ID") + @TableField(exist = false) + private Long cameraId; + + /** + * 开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0 + */ + @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0") + @TableField(exist = false) + private String cameraAddr; + + /** + * 其他参数,例如多联断路器内断路器的个数 + */ + @ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数") + @TableField(exist = false) + private String otherParam; + + /** + * 校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开 + */ + @ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开") + @TableField(exist = false) + private String checkVal; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + @TableField(exist = false) + private String dictType; + + @ApiModelProperty(value = "检测标准") + @TableField(exist = false) + private String description; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectEntity.java new file mode 100644 index 0000000..2939a75 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/ProjectEntity.java @@ -0,0 +1,63 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.Size; +import java.util.List; + + +/** + * 巡检项目实体类 + * + * @author ninglong + */ +@Data +@ToString +@TableName("hz_st_re_project") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检项目", description = "巡检项目") +public class ProjectEntity extends BaseEntity { + + private static final long serialVersionUID = -1105554271550820235L; + + /** + * 项目编码 + */ + @ApiModelProperty(value = "项目编码") + private String code; + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称长度必须为1到128") + @Size(min=1,max = 128,message ="项目名称长度必须为1到128") + private String name; + /** + * 项目描述 + */ + @ApiModelProperty(value = "项目描述长度必须为0到512") + @Size(min=0,max = 512,message ="项目描述长度必须为0到512") + private String description; + + @ApiModelProperty(value = "内容统计(项)") + @TableField(exist=false) + private Integer contentNum; + + @TableField(exist = false) + @ApiModelProperty(value = "需要过滤的项目id") + private List ids = Lists.newArrayList(); + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateEntity.java new file mode 100644 index 0000000..aee859f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateEntity.java @@ -0,0 +1,61 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.Size; +import java.util.List; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_re_template") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检模板对象", description = "") +public class TemplateEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 模板代码 + */ + @ApiModelProperty(value = "模板代码") + private String code; + /** + * 模板名称 + */ + @ApiModelProperty(value = "模板名称长度必须为1到128") + @Size(min=1,max = 128,message ="模板名称长度必须为1到128") + private String name; + /** + * 模板描述 + */ + @ApiModelProperty(value = "模板描述长度必须为0到512") + @Size(min=0,max = 512,message ="模板描述长度必须为0到512") + private String description; + /** + * 是否重复记录 0 不允许 1允许 + */ + @ApiModelProperty(value = "是否重复记录 0 不允许 1允许") + private String duplicateRecord; + + @TableField(exist = false) + @ApiModelProperty(value = "需要过滤的模板id") + private List ids = Lists.newArrayList(); + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateProjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateProjectEntity.java new file mode 100644 index 0000000..98dea03 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/entity/TemplateProjectEntity.java @@ -0,0 +1,50 @@ +package org.springblade.hzinfo_inspect.obj.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@ApiModel +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Builder +@TableName(value="hz_st_re_template_project") +public class TemplateProjectEntity extends BaseEntity { + + private static final long serialVersionUID = 1874573847442392682L; + + @ApiModelProperty(value = "模板id") + private Long templateId; + @ApiModelProperty(value = "项目id") + private Long projectId; + @ApiModelProperty(value = "排序") + private Integer sort; + + /** + * 项目编码 + */ + @ApiModelProperty(value = "项目编码") + @TableField(exist = false) + private String code; + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称") + @TableField(exist = false) + private String name; + + @ApiModelProperty(value = "描述") + @TableField(exist = false) + private String description; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ContentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ContentMapper.java new file mode 100644 index 0000000..c00dd7b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ContentMapper.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * 巡检内容 + */ +@Mapper +public interface ContentMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.java new file mode 100644 index 0000000..88797ef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.java @@ -0,0 +1,39 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.obj.vo.ObjectDto; +import org.apache.ibatis.annotations.Mapper; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.annotation.UserDataAuth; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface InspectObjectMapper extends UserDataScopeBaseMapper { + + + /** + * 获取巡检对象信息(含来源于其他的数据) + * @param page + * @param obj + * @return + */ + @UserDataAuth + List getList(@Param("page") IPage page, @Param("obj") ObjectEntity obj); + + /** + * 获取巡检对象详情信息(含来源于其他的数据) + * @param objId + * @return + */ + ObjectDto getDetail(@Param("objId") Long objId); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.xml new file mode 100644 index 0000000..7bac78b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectObjectMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.java new file mode 100644 index 0000000..8490881 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.java @@ -0,0 +1,46 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import org.springblade.core.datascope.annotation.UserDataAuth; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.OtherObjectEntity; +import org.springblade.hzinfo_inspect.obj.vo.ObjectDto; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface InspectOtherObjectMapper extends UserDataScopeBaseMapper { + + /** + * 获取其他对象来源类型 + * @return + */ + List getOtherType(); + + /** + * 获获取未绑定的其他来源对象 - 分页 + * @param page + * @param obj + * @return + */ + @UserDataAuth + List getUnbindList(@Param("page") IPage page, @Param("obj") OtherObjectEntity obj); + + + /** + * 获取未绑定的其他来源对象 + * @return + */ + @UserDataAuth + List getUnbindList(@Param("obj") OtherObjectEntity obj); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.xml new file mode 100644 index 0000000..3046691 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/InspectOtherObjectMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.java new file mode 100644 index 0000000..bb3b5d3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ObjectDangerEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface ObjectDangerMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.xml new file mode 100644 index 0000000..e6827cb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectDangerMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.java new file mode 100644 index 0000000..875471d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.java @@ -0,0 +1,33 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import org.springblade.core.datascope.annotation.UserDataAuth; +import org.springblade.hzinfo_inspect.obj.vo.TemplateProjectVo; +import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 巡检内容 + */ +@Mapper +public interface ObjectTemplateMapper extends BaseMapper { + + /** + * 根据对象id获取模板list + * @return + */ + List getListByObjectId(@Param("objectId") Long objectId, @Param("type") String type); + + /** + * + * 根据对象id获取模板项目内容 + * @param objectId + */ + List getTemplateByObjectId(Long objectId); + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.xml new file mode 100644 index 0000000..0a6868e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectTemplateMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.java new file mode 100644 index 0000000..ec6b620 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import org.springblade.core.datascope.annotation.UserDataAuth; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ObjectUserEntity; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListQuery; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 巡检对象用户 + */ +@Mapper +public interface ObjectUserMapper extends BaseMapper{ + + @UserDataAuth + List getPageList(@Param("user") ObjectUserListQuery user); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.xml new file mode 100644 index 0000000..c2a8914 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ObjectUserMapper.xml @@ -0,0 +1,30 @@ + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.java new file mode 100644 index 0000000..f6f153a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.java @@ -0,0 +1,42 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * 巡检项目内容 + */ +@Mapper +public interface ProjectContentMapper extends BaseMapper{ + + /** + * 根据巡检项目获取巡检对象内容列表信息 + * @param projectId 项目id + * @return + */ + List getListByProjectId(Long projectId); + + /** + * hld + * 根据巡检项目获取巡检对象内容列表信息 + * @param projectId 项目id + * @return + */ + List getListByPrjId(Long projectId); + + + + /** + * 获取最大的排序 + * @param projectId + * @return + */ + Integer getMaxSortProjectContentByProjectId(Long projectId); + + List> countByProjectId(String deptId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.xml new file mode 100644 index 0000000..25ce4c5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectContentMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectMapper.java new file mode 100644 index 0000000..3d53f94 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/ProjectMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; + +import org.apache.ibatis.annotations.Mapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * 巡检项目 + */ +@Mapper +public interface ProjectMapper extends UserDataScopeBaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.java new file mode 100644 index 0000000..3b234fb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.java @@ -0,0 +1,25 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import org.springblade.core.datascope.annotation.UserDataAuth; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.apache.ibatis.annotations.Mapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TemplateMapper extends UserDataScopeBaseMapper { + + /** + * 获取所有包含项目的内容(不分页) + * @return + */ + @UserDataAuth + List getAllContainProjectOfTemplate(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.xml new file mode 100644 index 0000000..18d2e44 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateMapper.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.java new file mode 100644 index 0000000..a64a87a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.java @@ -0,0 +1,35 @@ +package org.springblade.hzinfo_inspect.obj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 巡检模板项目 + */ +@Mapper +public interface TemplateProjectMapper extends BaseMapper{ + + /** + * 根据模板id获取项目 + * @param templateId + */ + List getListByTemplateId(Long templateId); + + /** + * hld + * 根据模板id获取项目内容 + * @param templateId + */ + List getProjectsByTemplateId(Long templateId); + + /** + * 获取模板项目的最大排序值 + * @param templateId + * @return + */ + Integer getMaxSortTemplateProjectByTemplateId(Long templateId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.xml new file mode 100644 index 0000000..623c44e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/mapper/TemplateProjectMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ContentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ContentService.java new file mode 100644 index 0000000..3b05ddc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ContentService.java @@ -0,0 +1,16 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; + +import java.util.List; + +/** + * @author h w + * created in 2018/9/04 16:09 + * modified By: + */ +public interface ContentService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/DatabaseCopyHandler.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/DatabaseCopyHandler.java new file mode 100644 index 0000000..2ee446b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/DatabaseCopyHandler.java @@ -0,0 +1,39 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import java.util.ArrayList; +import java.util.List; + +/** + * 数据库复制 + * @Author: py + */ +public interface DatabaseCopyHandler { + /** + * 数据库 根据ids 批量复制 + * @param ids + * @return + */ + default List databaseCopyBatch(List ids){ + return databaseCopyBatch(ids, null); + } + + /** + * 数据库 根据ids 批量复制 + * @param ids + * @param pre 名称添加的前缀 + * @return + */ + default List databaseCopyBatch(List ids, String pre){ + List returnIds = new ArrayList<>(); + ids.stream().forEach(id -> returnIds.add(databaseCopyById(id, pre))); + return returnIds; + } + + /** + * 数据库 根据id 单个复制 + * @param id + * @param pre 名称添加的前缀 + * @return 新id + */ + Long databaseCopyById(Long id, String pre); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/IObjectDangerService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/IObjectDangerService.java new file mode 100644 index 0000000..d3f6c92 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/IObjectDangerService.java @@ -0,0 +1,23 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.obj.entity.ObjectDangerEntity; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; + +import java.util.List; + + +/** + * 服务类 + * + * @author Chill + */ +public interface IObjectDangerService extends BaseService { + /** + * 获取危险点详情 + * @param objectId + * @return + */ + List getDangerDetailByObjectId(Long objectId); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectExcelInputListener.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectExcelInputListener.java new file mode 100644 index 0000000..725de5c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectExcelInputListener.java @@ -0,0 +1,140 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.metadata.CellExtra; +import com.alibaba.fastjson.JSON; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ObjectExcelInputData; +import org.springblade.hzinfo_inspect.obj.vo.ObjectExcelInputVo; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; + +import java.util.ArrayList; +import java.util.List; + +/** + * 读取巡检对象Excel + * + * @Author: py + */ +public class ObjectExcelInputListener extends AnalysisEventListener { + private static final Logger LOGGER = LoggerFactory.getLogger(ObjectExcelInputData.class); + + // List list = new ArrayList<>(); + List objectList = new ArrayList<>(); + ObjectExcelInputVo currentObjVo; + List prjContents = new ArrayList<>(); + ProjectContentDto currentPrjVo; + List contents = new ArrayList<>(); + ObjectService baseObjectService; + + static final int BATCH_COUNT = 10; + + public ObjectExcelInputListener(ObjectService objectService) { + this.baseObjectService = objectService; + } + + @Override + public void invoke(ObjectExcelInputData data, AnalysisContext context) { + LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data)); + if (Func.isNotEmpty(data.getObjName())) { + if (Func.isNotEmpty(currentObjVo)) { + objectList.add(currentObjVo); + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (objectList.size() >= BATCH_COUNT) { + baseObjectService.excelAddObject(objectList); //保存到数据库 + // 存储完成清理 list + objectList.clear(); + } + prjContents = new ArrayList<>(); + contents = new ArrayList<>(); + } + currentObjVo = new ObjectExcelInputVo(); + currentObjVo.setName(data.getObjName()); + currentObjVo.setCode(Func.isEmpty(data.getObjCode())? CodeUtils.randomCode() : data.getObjCode()); + currentObjVo.setSupportAutoVideo(data.getSupportAutoVideo()); + currentObjVo.setDescription(data.getObjDesc()); + if (Func.isNotEmpty(data.getPrjName())) { + setProject(data); + } + currentObjVo.setPrjContents(prjContents); + } else { + if (Func.isNotEmpty(data.getPrjName())) { + contents = new ArrayList<>(); + setProject(data); + } else { + setContent(data); + } + } + } + + /** + * 设置对象信息 + * + * @param data + */ + private void setProject(ObjectExcelInputData data) { + currentPrjVo = new ProjectContentDto(); + currentPrjVo.setName(data.getPrjName()); + currentPrjVo.setCode(Func.isEmpty(data.getPrjCode())? CodeUtils.randomCode() : data.getPrjCode()); + currentPrjVo.setDescription(data.getPrjDesc()); + currentPrjVo.setPrjSort(data.getPrgSort()); + //currentObjVo.setSupportAutoVideo(data.getSupportAutoVideo()); + //currentPrjVo.setSupportAutoVideo(data.getSupportAutoVideo()); + currentPrjVo.setStatus(0); + setContent(data); + currentPrjVo.setContents(contents); + prjContents.add(currentPrjVo); + } + + /** + * 设置内容信息 + * + * @param data + */ + private void setContent(ObjectExcelInputData data) { + if (Func.isNotEmpty(data.getContentName())) { + ContentEntity content = new ContentEntity(); + content.setName(data.getContentName()); + content.setCode(Func.isEmpty(data.getContentCode())? CodeUtils.randomCode() : data.getContentCode()); + content.setCheckType(data.getCheckType()); + content.setDescription(data.getContentDesc()); + content.setRecordType(data.getRecordType()); + content.setSort(data.getContentSort()); + content.setSupportAutoVideo(data.getSupportAutoVideo()); + contents.add(content); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + LOGGER.info("所有数据解析完成!"); + objectList.add(currentObjVo); + baseObjectService.excelAddObject(objectList); //保存到数据库 + // 存储完成清理 list + objectList.clear(); + prjContents = new ArrayList<>(); + contents = new ArrayList<>(); + } + + @Override + public void extra(CellExtra extra, AnalysisContext context) { + LOGGER.info("读取到了一条额外信息:{}", JSON.toJSONString(extra)); + switch (extra.getType()) { + case MERGE: + LOGGER.info( + "额外信息是合并单元格,在firstRowIndex:{},firstColumnIndex;{},lastRowIndex:{},lastColumnIndex:{}", + extra.getFirstRowIndex(), extra.getFirstColumnIndex(), extra.getLastRowIndex(), + extra.getLastColumnIndex()); + break; + default: + break; + } + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectService.java new file mode 100644 index 0000000..8ed67b3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectService.java @@ -0,0 +1,45 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.obj.vo.ObjectDto; +import org.springblade.hzinfo_inspect.obj.vo.ObjectExcelInputVo; +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; + +import java.util.List; + +/** + * 巡检对象dao + */ +public interface ObjectService extends BaseService { + /** + * 分页获取对象信息 + * @param page + * @param object + * @return + */ + List getListPage(IPage page, ObjectEntity object); + + /** + * 查看详情 + * @param id + * @return + */ + ObjectEntity getDetail(Long id); + + + /** + * Excel 导入 对象信息 ( 含项目内容) + * @param list + * @return + */ + void excelAddObject(List list); + + /** + * 导出巡检对象为 PDF + * @return pdf 文件路径 + */ + String exportObjectPdf(List idList); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectTemplateService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectTemplateService.java new file mode 100644 index 0000000..f7351ef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectTemplateService.java @@ -0,0 +1,41 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import org.springblade.hzinfo_inspect.obj.vo.TemplateAddVo; +import org.springblade.hzinfo_inspect.obj.vo.TemplateProjectVo; +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; + +import java.util.List; + +/** + * @author py + * + * modified By: + */ +public interface ObjectTemplateService extends BaseService{ + + /** + * 新增模板,或者修改模板。连同模板项目绑定 + * @param temp + * @return + */ + Long submitTemplateAndProj(TemplateAddVo temp); + + + boolean saveOrUpdateObjectTemplate(ObjectTemplateEntity objectTemplateEntity); + /** + * 根据对象id获取模板list + * @param id + * @return + */ + List getListByObjectId(Long id, String type); + + /** + * hld + * 根据对象id获取模板项目内容 + * @param objectId + */ + List getTemplateByObjectId(Long objectId); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectUserService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectUserService.java new file mode 100644 index 0000000..4d17bbf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ObjectUserService.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectUserEntity; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListQuery; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface ObjectUserService extends BaseService { + + List getPageList(ObjectUserListQuery user); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/OtherObjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/OtherObjectService.java new file mode 100644 index 0000000..d593079 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/OtherObjectService.java @@ -0,0 +1,29 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.OtherObjectEntity; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 巡检对象dao + */ +public interface OtherObjectService extends BaseService { + + /** + * 获取其他对象来源类型 + * @return + */ + List getOtherType(); + + /** + * + * @param page + * @param object + * @return + */ + List getUnbindListPage(IPage page, OtherObjectEntity object); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectContentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectContentService.java new file mode 100644 index 0000000..6862daf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectContentService.java @@ -0,0 +1,53 @@ +package org.springblade.hzinfo_inspect.obj.services; + + +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; + +import java.util.List; +import java.util.Map; + +/** + * 巡检项目内容service + */ +public interface ProjectContentService extends BaseService{ + + boolean saveOrUpdateProjectContent(List list); + /** + * 根据巡检项目获取巡检对象内容列表信息 + * @param id 项目id + * @return + */ + List getListByProjectId(Long id); + + /** + * 获取最大的排序 + * @param projectId + * @return + */ + Integer getMaxSortProjectContentByProjectId(Long projectId); + + + /** + * hld + * 保存项目信息 、项目内容、项目内容关联 + * 新增或修改 + * @param pcDto + * @return + */ + ProjectEntity saveOrUpdatePrjContent(ProjectContentDto pcDto); + + /** + * hld + * 根据巡检项目获取巡检对象内容列表信息 + * @param projectId 项目id + * @return + */ + List getListByPrjId(Long projectId); + + Map countByProjectId(String deptId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectService.java new file mode 100644 index 0000000..0b60c13 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/ProjectService.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.obj.services; + + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; + +/** + * 巡检项目service + */ +public interface ProjectService extends BaseService{ + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateProjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateProjectService.java new file mode 100644 index 0000000..eab7269 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateProjectService.java @@ -0,0 +1,62 @@ +package org.springblade.hzinfo_inspect.obj.services; + + +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.springblade.hzinfo_inspect.obj.vo.TemplateAddVo; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 巡检模板项目service + */ +public interface TemplateProjectService extends BaseService{ + + + /** + * 保存模板项目关联 + * @param list + * @return + */ + boolean saveOrUpdateTemplateProject(List list); + + + /** + * 根据模板id获取项目 + * @param templateId + */ + List getListByTemplateId(Long templateId); + + /** + * 获取模板项目的最大排序值 + * @param templateId + * @return + */ + Integer getMaxSortTemplateProjectByTemplateId(Long templateId); + + /** + * hld + * 根据模板id获取项目内容 + * @param templateId 模板id + */ + List getProjectsByTemplateId(Long templateId); + + /** + * hld + * 获取(模板)的项目、内容列表 + * @param id (模板)id + * @return + */ + List getProjectAndContentList(Long id); + + /** + * 保存模板项目信息 + * @param dto + * @return + */ + ProjectEntity submitTempPrj(ProjectContentDto dto); + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateService.java new file mode 100644 index 0000000..cf7eb5f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/TemplateService.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.obj.services; + +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface TemplateService extends BaseService { + + /** + * 获取所有包含项目的内容(不分页) + * @return + */ + List getAllContainProjectOfTemplate(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ContentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ContentServiceImpl.java new file mode 100644 index 0000000..2fcc74c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ContentServiceImpl.java @@ -0,0 +1,90 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import org.springblade.hzinfo_inspect.obj.services.DatabaseCopyHandler; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.stereotype.Service; + +import org.springblade.hzinfo_inspect.obj.mapper.ContentMapper; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.services.ContentService; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author h w + * created in 2018/9/04 16:09 + * modified By: + */ +@Service +public class ContentServiceImpl extends BaseServiceImpl implements ContentService, DatabaseCopyHandler { + + @Override + public boolean saveBatch(Collection entityList, int batchSize) { + if(CollectionUtil.isNotEmpty(entityList)){ + for (ContentEntity contentEntity : entityList) { + if (StringUtil.isBlank(contentEntity.getCode())) { + contentEntity.setCode(CodeUtils.randomCode()); + } + if (StringUtil.isBlank(contentEntity.getName())) { + throw new ServiceException("巡检内容名称不能为空!"); + } + if (StringUtil.isBlank(contentEntity.getRecordType())){ + throw new ServiceException("记录类型不能为空!"); + } + if (StringUtil.isBlank(contentEntity.getCheckType())){ + throw new ServiceException("检测类型不能为空!"); + } + if(StringUtil.isNotBlank(contentEntity.getRecordType())){ + if(!contentEntity.getRecordType().equals("0") && !contentEntity.getRecordType().equals("1") && + !contentEntity.getRecordType().equals("2") && !contentEntity.getRecordType().equals("3")){ + throw new ServiceException("记录类型只能填写数字:0不记录 1仅选择 2仅记值 3选择并记值!"); + } + } + } + } + return super.saveBatch(entityList, batchSize); + } + + /** + * 批量复制 + * @param ids 内容Ids + * @param pre 名称添加的前缀 + * @return 新增的内容Ids + */ + @Override + public List databaseCopyBatch(List ids, String pre) { + List contentEntities = this.listByIds(ids); + contentEntities = contentEntities.stream() + .map(contentEntity -> { + contentEntity.setId(null); + if(Func.isNotEmpty(pre)){ + contentEntity.setName(pre + contentEntity.getName()); + } + contentEntity.setCode(CodeUtils.randomCode()); + return contentEntity; + }) + .collect(Collectors.toList()); + saveBatch(contentEntities); + return contentEntities.stream().map(contentEntity -> contentEntity.getId()).collect(Collectors.toList()); + } + + @Override + public Long databaseCopyById(Long id, String pre) { + ContentEntity contentEntity = this.getById(id); + contentEntity.setId(null); + if(Func.isNotEmpty(pre)){ + contentEntity.setName(pre + contentEntity.getName()); + } + contentEntity.setCode(CodeUtils.randomCode()); + // 复制项目下的内容 + this.save(contentEntity); + return contentEntity.getId(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectDangerServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectDangerServiceImpl.java new file mode 100644 index 0000000..446a7be --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectDangerServiceImpl.java @@ -0,0 +1,43 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.obj.entity.ObjectDangerEntity; +import org.springblade.hzinfo_inspect.obj.mapper.ObjectDangerMapper; +import org.springblade.hzinfo_inspect.obj.services.IObjectDangerService; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.feign.IDangerSourceClient; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class ObjectDangerServiceImpl extends BaseServiceImpl implements IObjectDangerService { + + private IDangerSourceClient sourceClient; + + @Override + public List getDangerDetailByObjectId(Long objectId) { + List dangers = this.list(Wrappers.lambdaQuery() + .eq(ObjectDangerEntity::getObjectId, objectId).orderByAsc(ObjectDangerEntity::getSort)); + List dangerIds = new ArrayList<>(); + dangers.stream().forEach(t -> { + dangerIds.add(t.getDangerId().toString()); + }); + if(dangerIds.size() > 0){ + return sourceClient.details(dangerIds.toArray(new String[dangerIds.size()])); + } else { + return new ArrayList<>(); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectServiceImpl.java new file mode 100644 index 0000000..382e04e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectServiceImpl.java @@ -0,0 +1,247 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.zxing.BarcodeFormat; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.hzinfo_inspect.obj.entity.*; +import org.springblade.hzinfo_inspect.obj.mapper.InspectObjectMapper; +import org.springblade.hzinfo_inspect.obj.services.*; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ObjectDto; +import org.springblade.hzinfo_inspect.obj.vo.ObjectExcelInputVo; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.springblade.hzinfo_inspect.utils.HtmlModule; +import org.springblade.hzinfo_inspect.utils.HtmltoPdf; +import org.springblade.hzinfo_inspect.utils.ZxingGenCode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author h w + * created in 2018/8/30 16:09 + * modified By: + */ +@Service +public class ObjectServiceImpl extends BaseServiceImpl implements ObjectService { + + @Autowired + private TemplateService templateService; + @Autowired + private ObjectTemplateService objectTemplateService; + @Autowired + private ProjectContentService projectContentService; + @Autowired + private TemplateProjectService templateProjectService; + + /** pdf文件存储路径 */ + @Value("${hzinfo.task.pdf.file-path}") + private String uploadPath; + + /** pdf模板路径 */ + @Value("${hzinfo.task.pdf.module-path}") + private String pdfModulePathInspect; + + private static final String UPLOAD_IMG_SUFFIX = ".jpg"; + + @Override + public List getListPage(IPage page , ObjectEntity object) { + List re = new ArrayList<>(); + List list = this.baseMapper.getList(page,object); + if(Func.isNotEmpty(list)){ + for (ObjectDto dto : list) { + ObjectEntity vo = BeanUtil.copy(dto, ObjectEntity.class); + if(Func.isNotEmpty(dto.getRealId())){ + vo.setName(dto.getOtherName()); + vo.setAddress(dto.getOtherAddress()); + vo.setLgtd(dto.getOtherLgtd()); + vo.setLttd(dto.getOtherLttd()); + } + re.add(vo); + } + } + return re; + } + + @Override + public ObjectEntity getDetail(Long id) { + ObjectEntity vo = null; + ObjectDto dto = this.baseMapper.getDetail(id); + if(Func.isNotEmpty(dto)){ + vo = BeanUtil.copy(dto, ObjectEntity.class); + if(Func.isNotEmpty(dto.getRealId())){ + vo.setName(dto.getOtherName()); + vo.setAddress(dto.getOtherAddress()); + vo.setLgtd(dto.getOtherLgtd()); + vo.setLttd(dto.getOtherLttd()); + } + } + return vo; + } + + /** + * Excel 导入 对象信息 ( 含项目内容) + * @param list + * @return 成功数 + */ + @Override + public void excelAddObject(List list){ + for (ObjectExcelInputVo vo : list) { + try { + saveOneExcelObj(vo); + } catch (ServiceException e) { + log.error(e.toString()); + throw new ServiceException(e.getMessage()); + }catch (Exception e){ + log.error(e.toString()); + throw new ServiceException("对象(" + vo.getCode() + "-" + vo.getName() + ")或关联信息保存失败,该对象或关联信息存在重复code"); + } + } + } + + @Override + public boolean save(ObjectEntity entity) { + if (ObjectUtil.isNotEmpty(entity)) { + if (StringUtil.isBlank(entity.getCode())) { + throw new ServiceException("巡检点编码不能为空!"); + } + if (StringUtil.isBlank(entity.getName())) { + throw new ServiceException("巡检点名称不能为空!"); + } + if (StringUtil.isBlank(entity.getSupportAutoVideo())) { + throw new ServiceException("巡检点类型不能为空!"); + } + if (StringUtil.isBlank(entity.getDescription())) { + throw new ServiceException("巡检点象描述不能为空!"); + } + if (StringUtil.isNotBlank(entity.getSupportAutoVideo())) { + if (entity.getSupportAutoVideo().equals("0") + || entity.getSupportAutoVideo().equals("1") + || entity.getSupportAutoVideo().equals("2") + || entity.getSupportAutoVideo().equals("3") + || entity.getSupportAutoVideo().equals("4")) { + } else { + throw new ServiceException("巡检点类型只支持数字: 0普通巡检,1视频自动巡检,2机器人巡检,3防汛巡检,4特殊巡检"); + } + } + } + return super.save(entity); + } + + + @Transactional(rollbackFor = Exception.class) + public void saveOneExcelObj(ObjectExcelInputVo vo ){ + this.save(vo); + TemplateEntity template = new TemplateEntity(); + template.setName(vo.getName() + "模板"); + template.setCode(CodeUtils.randomCode()); + template.setSupportAutoVideo(vo.getSupportAutoVideo()); + templateService.save(template);//保存模板 + ObjectTemplateEntity objectTemplate = new ObjectTemplateEntity(); + objectTemplate.setTemplateId(template.getId()); + objectTemplate.setObjectId(vo.getId()); + objectTemplateService.save(objectTemplate);//保存对象模板关联 + + List tempPrjs = new ArrayList<>(); + + List prjContents = vo.getPrjContents(); + for (ProjectContentDto dto : prjContents) { + //保存项目内容信息 + ProjectEntity project = projectContentService.saveOrUpdatePrjContent(dto); + + TemplateProjectEntity temPrj = new TemplateProjectEntity(); + temPrj.setTemplateId(template.getId()); + temPrj.setProjectId(project.getId()); + temPrj.setSort(dto.getPrjSort()); + tempPrjs.add(temPrj); + } + //保存模板项目关联 + templateProjectService.saveBatch(tempPrjs); + } + + /** + * 导出巡检对象为 PDF + * @return pdf 文件路径 + */ + @Override + public String exportObjectPdf(List idList){ + //依据所得id查询出需要打印的设备信息 + List objects; + if(Func.isNotEmpty(idList)){ + objects = list(Wrappers.lambdaQuery() + .in(ObjectEntity::getId, idList) + .orderByDesc(ObjectEntity::getCreateTime)); + } else { + objects = list(Wrappers.lambdaQuery() + .orderByDesc(ObjectEntity::getCreateTime)); + } + if (Func.isNotEmpty(objects)) { + //生成巡检对象二维码 + for (ObjectEntity obj : objects) { + String imgPath = uploadPath + "/" + obj.getCreateDept() + obj.getCode() + UPLOAD_IMG_SUFFIX; + File file = new File(imgPath); + if (!file.exists()) { + ZxingGenCode.encode("XJXQ=" + obj.getId(), 200, 200, imgPath, BarcodeFormat.QR_CODE); + } + } + + //把设备替换成模板类 + List modules = asPDFModuleList(objects); + //转化html + String pdfPath = uploadPath + "/" + UUID.randomUUID().toString() + ".pdf"; + try { + String html = HtmlModule.buildHtml(modules, pdfModulePathInspect); + HtmltoPdf.htmlToPdf(html, pdfPath); + } catch (Exception e) { + throw new ServiceException("HTML转PDF转换异常 : " + e.toString()); + } + //返还pdf文档位置 + return pdfPath; + }else { + return null; + } + } + + + /** + * 转化成pdf模板类 + * + * @param list + * @return + */ + private List asPDFModuleList(List list) { + List modules = new ArrayList(list.size()); + for (ObjectEntity obj : list) { + modules.add(asModule(obj)); + } + return modules; + } + + /** + * 转化成模板类 + * + * @param obj + * @return + */ + private InspectPdf asModule(ObjectEntity obj) { + InspectPdf module = new InspectPdf(); + module.setData_1(obj.getName()); + module.setData_2(obj.getCode()); + module.setData_3(uploadPath + "/"+ obj.getCreateDept() + obj.getCode() + UPLOAD_IMG_SUFFIX); + return module; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectTemplateServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectTemplateServiceImpl.java new file mode 100644 index 0000000..43d68bd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectTemplateServiceImpl.java @@ -0,0 +1,110 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.mapper.ObjectTemplateMapper; +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectTemplateService; +import org.springblade.hzinfo_inspect.obj.services.TemplateProjectService; +import org.springblade.hzinfo_inspect.obj.services.TemplateService; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.TemplateAddVo; +import org.springblade.hzinfo_inspect.obj.vo.TemplateProjectVo; +import lombok.AllArgsConstructor; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.Func; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author h w + * created in 2018/9/04 16:09 + * modified By: + */ +@Service +@AllArgsConstructor +public class ObjectTemplateServiceImpl extends BaseServiceImpl implements ObjectTemplateService { + + + private TemplateProjectService templateProjectService; + private TemplateService templateService; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long submitTemplateAndProj(TemplateAddVo temp){ + // 新增标识 + boolean isNew = false; + if(Func.isEmpty(temp.getId())){ + if(Func.isBlank(temp.getCode())){ + temp.setCode(CodeUtils.randomCode()); + } + isNew = true; + } + templateService.saveOrUpdate(temp); + //绑定模板项目 + List list = temp.getTempProjs(); + if(Func.isEmpty(list)){ + throw new ServiceException("模板项目不能为空"); + } + if(isNew){ + for (TemplateProjectEntity entity : list) { + entity.setTemplateId(temp.getId()); + } + if(Func.isNotEmpty(temp.getObjectId())){ + //增加对象模板绑定 + ObjectTemplateEntity objTemp = new ObjectTemplateEntity(); + objTemp.setObjectId(temp.getObjectId()); + objTemp.setTemplateId(temp.getId()); + this.save(objTemp); + } + } else { + //先删除绑定 + QueryWrapper deleteWrapper = new QueryWrapper<>(); + deleteWrapper.eq("template_id",temp.getId()); + templateProjectService.remove(deleteWrapper); + } + if(templateProjectService.saveOrUpdateBatch(list)){ + return temp.getId(); + }else { + return null; + } + } + + + @Override + public boolean saveOrUpdateObjectTemplate(ObjectTemplateEntity objectTemplateEntity) { + this.remove(Wrappers.lambdaQuery().eq(ObjectTemplateEntity::getObjectId, objectTemplateEntity.getObjectId())); + return this.saveOrUpdate(objectTemplateEntity); + } + /** + * 根据对象id获取模板list + * @param id + * @return + */ + @Override + public List getListByObjectId(Long id, String type){ + return this.baseMapper.getListByObjectId(id,type); + } + + /** + * + * 根据对象id获取模板项目内容 + * @param objectId + */ + @Override + public List getTemplateByObjectId(Long objectId){ + List tempProjs = this.baseMapper.getTemplateByObjectId(objectId); + if(Func.isNotEmpty(tempProjs)){ + for (TemplateProjectVo dto : tempProjs) { + dto.setProjectContentList(templateProjectService.getProjectAndContentList(dto.getId())); + } + } + return tempProjs; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectUserServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectUserServiceImpl.java new file mode 100644 index 0000000..12c4918 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ObjectUserServiceImpl.java @@ -0,0 +1,24 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import org.springblade.hzinfo_inspect.obj.mapper.ObjectUserMapper; +import org.springblade.hzinfo_inspect.obj.entity.ObjectUserEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectUserService; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListQuery; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class ObjectUserServiceImpl extends BaseServiceImpl implements ObjectUserService { + + @Override + public List getPageList(ObjectUserListQuery user){ + return this.baseMapper.getPageList(user); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/OtherObjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/OtherObjectServiceImpl.java new file mode 100644 index 0000000..0034ef6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/OtherObjectServiceImpl.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.obj.entity.OtherObjectEntity; +import org.springblade.hzinfo_inspect.obj.mapper.InspectOtherObjectMapper; +import org.springblade.hzinfo_inspect.obj.services.OtherObjectService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author h w + * created in 2018/8/30 16:09 + * modified By: + */ +@Service +public class OtherObjectServiceImpl extends BaseServiceImpl implements OtherObjectService { + + /** + * 获取其他对象来源类型 + * @return + */ + @Override + public List getOtherType(){ + return this.baseMapper.getOtherType(); + } + + /** + * 获取未绑定的其他来源对象 -分页 + * @param page + * @param object + * @return + */ + @Override + public List getUnbindListPage(IPage page , OtherObjectEntity object){ + return this.baseMapper.getUnbindList(page,object); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectContentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectContentServiceImpl.java new file mode 100644 index 0000000..c3b8c28 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectContentServiceImpl.java @@ -0,0 +1,223 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +//import org.springblade.hzinfo_inspect.ai.service.IRobotTaskService; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.mapper.ProjectContentMapper; +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import org.springblade.hzinfo_inspect.obj.services.DatabaseCopyHandler; +import org.springblade.hzinfo_inspect.obj.services.ProjectContentService; +import org.springblade.hzinfo_inspect.obj.services.ProjectService; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 巡检项目service + */ +@Service +@AllArgsConstructor +@Slf4j +public class ProjectContentServiceImpl extends BaseServiceImpl implements ProjectContentService, DatabaseCopyHandler { + + private ProjectService projectService; + + private ContentServiceImpl contentService; + +// private IRobotTaskService robotTaskService; + + @Override + public boolean saveOrUpdateProjectContent(List list) { + for(ProjectContentEntity projectContentEntity: list){ + ProjectContentEntity entity = this.getOne(Wrappers.lambdaQuery().eq(ProjectContentEntity::getProjectId,projectContentEntity.getProjectId()).eq(ProjectContentEntity::getContentId,projectContentEntity.getContentId()).last("LIMIT 1")); + if(entity!=null){//如果项目id与内容id同时存在,则只做修改 + projectContentEntity.setId(entity.getId()); + } + } + return this.saveOrUpdateBatch(list); + } + /** + * 根据巡检项目获取巡检对象内容列表信息 + * @param id 项目id + * @return + */ + @Override + public List getListByProjectId(Long id){ + return this.baseMapper.getListByProjectId(id); + } + + /** + * 获取最大的排序 + * @param projectId + * @return + */ + @Override + public Integer getMaxSortProjectContentByProjectId(Long projectId){ + return this.baseMapper.getMaxSortProjectContentByProjectId(projectId); + } + + + /** + * hld + * 保存项目信息 、项目内容、项目内容关联 + * 新增或修改 + * @param pcDto + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public ProjectEntity saveOrUpdatePrjContent(ProjectContentDto pcDto) { + if(pcDto.getId()==null && Func.isBlank(pcDto.getCode())){ + pcDto.setCode(CodeUtils.randomCode()); + } + + //新增 + if(Func.isEmpty(pcDto.getId())){ + //新增项目 + if(projectService.save(pcDto)){ + //新增模板项目关联 + /*templateProjectService.save(TemplateProjectEntity + .builder() + .templateId(pcDto.getObjectId()) + .projectId(pcDto.getId()) + .sort(templateProjectService.getMaxSortTemplateProjectByTemplateId(pcDto.getObjectId()) + 1) + .build());*/ + + List contents = pcDto.getContents(); + if(Func.isNotEmpty(contents)){ + //新增内容 + if(contentService.saveOrUpdateBatch(contents)){ + List pcList = Lists.newArrayList(); + for (ContentEntity content : contents) { + ProjectContentEntity projectContentEntity = ProjectContentEntity.builder() + .projectId(pcDto.getId()) + .contentId(content.getId()) + .sort(content.getSort()).build(); + pcList.add(projectContentEntity); + } + //新增项目内容关联 + saveBatch(pcList); + } + } + } + } else { + //修改 + if(projectService.updateById(pcDto)){ + List contents = pcDto.getContents(); + if(Func.isNotEmpty(contents)){ + //保存内容 + if(contentService.saveOrUpdateBatch(contents)){ + //先删除绑定 + QueryWrapper deleteWrapper = new QueryWrapper<>(); + deleteWrapper.eq("project_id",pcDto.getId()); + if(this.baseMapper.delete(deleteWrapper) > 0){ + List pcList = Lists.newArrayList(); + for (ContentEntity content : contents) { + ProjectContentEntity projectContentEntity = ProjectContentEntity.builder() + .projectId(pcDto.getId()) + .contentId(content.getId()) + .sort(content.getSort()).build(); + pcList.add(projectContentEntity); + } + //新增项目内容关联 + saveBatch(pcList); + } + } + } + } + } + + ProjectEntity project = BeanUtil.copy(pcDto, ProjectEntity.class); + return project; + } + + + /** + * hld + * 根据巡检项目获取巡检对象内容列表信息 + * @param projectId 项目id + * @return + */ + @Override + public List getListByPrjId(Long projectId){ + return this.baseMapper.getListByPrjId(projectId); + } + + @Override + public Map countByProjectId(String deptId) { + Map res=new HashMap<>(); + List> list=baseMapper.countByProjectId(deptId); + for(Map map:list){ + Long projectId=Long.valueOf(map.get("projectId").toString()); + int total=Integer.valueOf(map.get("total").toString()); + res.put(projectId,total); + } + return res; + } + + /** + * 根据id 单个复制项目 + * @param id + * @param pre 名称添加的前缀 + * @return + */ + @Override + public Long databaseCopyById(Long id, String pre){ + ProjectEntity projectEntity = projectService.getById(id); + Long oldProjectId = projectEntity.getId(); + // 复制项目 + projectEntity.setId(null); + if(Func.isNotEmpty(pre)){ + projectEntity.setName(pre + projectEntity.getName()); + } + projectEntity.setCode(CodeUtils.randomCode()); + projectService.save(projectEntity); + + List proContents = list(Wrappers.lambdaQuery() + .eq(ProjectContentEntity::getProjectId, oldProjectId) + .orderByAsc(ProjectContentEntity::getSort)); + //新旧内容id 映射 + Map newOldContentIdMap = new HashMap<>(proContents.size()); + // 添加项目内容关联 + List pcList = new ArrayList<>(); + + proContents.forEach(projectContentEntity -> { + Long newContentId = contentService.databaseCopyById(projectContentEntity.getContentId(), pre); + newOldContentIdMap.put(projectContentEntity.getContentId(), newContentId); + + pcList.add(ProjectContentEntity + .builder() + .contentId(newContentId) + .projectId(projectEntity.getId()) + .sort(projectContentEntity.getSort() ) + .build()); + }); + + // 添加项目内容关联 + this.saveBatch(pcList); + + //复制项目下的机器人\视频任务 + if(PlanContants.InspectTypeEnum.ROBOT.getVal().equals(projectEntity.getSupportAutoVideo()) + || PlanContants.InspectTypeEnum.VIDEO.getVal().equals(projectEntity.getSupportAutoVideo())){ + //robotTaskService.databaseCopyByProject(pre, oldProjectId, projectEntity.getId(), newOldContentIdMap); + } + + return projectEntity.getId(); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..ab4787a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/ProjectServiceImpl.java @@ -0,0 +1,38 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.mapper.ProjectMapper; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.ProjectService; + +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 巡检项目service + */ +@Service +public class ProjectServiceImpl extends BaseServiceImpl implements ProjectService { + + @Override + public boolean save(ProjectEntity entity) { + if (ObjectUtil.isNotEmpty(entity)) { + if (StringUtil.isBlank(entity.getCode())) { + throw new ServiceException("项目编码不能为空"); + } + if (StringUtil.isBlank(entity.getName())) { + throw new ServiceException("项目名称不能为空"); + } + } + return super.save(entity); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateProjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateProjectServiceImpl.java new file mode 100644 index 0000000..a9e8f61 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateProjectServiceImpl.java @@ -0,0 +1,140 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.hzinfo_inspect.obj.entity.*; +import org.springblade.hzinfo_inspect.obj.mapper.TemplateProjectMapper; +import org.springblade.hzinfo_inspect.obj.services.DatabaseCopyHandler; +import org.springblade.hzinfo_inspect.obj.services.TemplateProjectService; +import org.springblade.hzinfo_inspect.obj.services.TemplateService; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.Func; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * 巡检模板项目service + */ +@Service +@AllArgsConstructor +public class TemplateProjectServiceImpl extends BaseServiceImpl implements TemplateProjectService, DatabaseCopyHandler { + + private ProjectContentServiceImpl projectContentService; + + private TemplateService templateService; + + + @Override + public boolean saveOrUpdateTemplateProject(List list) { + for(TemplateProjectEntity templateProjectEntity:list){ + TemplateProjectEntity entity = this.getOne(Wrappers.lambdaQuery().eq(TemplateProjectEntity::getProjectId,templateProjectEntity.getProjectId()).eq(TemplateProjectEntity::getTemplateId + ,templateProjectEntity.getTemplateId()).last("LIMIT 1")); + if(entity!=null){//如果项目id与模板id同时存在,则只做修改 + templateProjectEntity.setId(entity.getId()); + } + } + return this.saveOrUpdateBatch(list); + } + + @Override + public List getListByTemplateId(Long templateId) { + return this.baseMapper.getListByTemplateId(templateId); + } + + @Override + public List getProjectsByTemplateId(Long templateId) { + return this.baseMapper.getProjectsByTemplateId(templateId); + } + + /** + * 获取模板项目的最大排序值 + * @param templateId + * @return + */ + @Override + public Integer getMaxSortTemplateProjectByTemplateId(Long templateId){ + return this.baseMapper.getMaxSortTemplateProjectByTemplateId(templateId); + } + + /** + * hld + * 获取(模板)的项目、内容列表 + * @param id (模板)id + * @return + */ + @Override + public List getProjectAndContentList(Long id) { + List prjContents = getProjectsByTemplateId(id); + if(Func.isNotEmpty(prjContents)){ + for (ProjectContentDto dto : prjContents) { + if(Func.isNotEmpty(dto)){ + dto.setContents(projectContentService.getListByPrjId(dto.getId())); + } + } + } + return prjContents; + } + + /** + * 保存模板项目信息 + * @param dto + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public ProjectEntity submitTempPrj(ProjectContentDto dto){ + // 0 新增,1 修改 + int flag = 0 ; + if(Func.isNotEmpty(dto.getId())){ + flag = 1; + } + ProjectEntity prj = projectContentService.saveOrUpdatePrjContent(dto); + if(Func.isNotEmpty(dto.getTemplateId())){ + if(flag == 0){ + TemplateProjectEntity tempPrj = new TemplateProjectEntity(); + tempPrj.setTemplateId(dto.getTemplateId()); + tempPrj.setProjectId(prj.getId()); + this.baseMapper.insert(tempPrj); + } + } + return prj; + } + + @Override + public Long databaseCopyById(Long id, String pre) { + TemplateEntity templateEntity = templateService.getById(id); + Long oldTemplateId = templateEntity.getId(); + + templateEntity.setId(null); + if(Func.isNotEmpty(pre)){ + templateEntity.setName(pre + templateEntity.getName()); + } + templateEntity.setCode(CodeUtils.randomCode()); + // 复制模板 + templateService.save(templateEntity); + + List tempProjects = list(Wrappers.lambdaQuery() + .eq(TemplateProjectEntity::getTemplateId, oldTemplateId) + .orderByAsc(TemplateProjectEntity::getSort)); + List newTPList = new ArrayList<>(); + tempProjects.forEach(templateProjectEntity -> { + newTPList.add(TemplateProjectEntity + .builder() + .templateId(templateEntity.getId()) + //复制项目 + .projectId(projectContentService.databaseCopyById(templateProjectEntity.getProjectId(), pre)) + .sort(templateProjectEntity.getSort() ) + .build()); + }); + + // 添加模板项目关联 + this.saveBatch(newTPList); + return templateEntity.getId(); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateServiceImpl.java new file mode 100644 index 0000000..6491296 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/services/impl/TemplateServiceImpl.java @@ -0,0 +1,27 @@ +package org.springblade.hzinfo_inspect.obj.services.impl; + +import org.springblade.hzinfo_inspect.obj.mapper.TemplateMapper; +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.springblade.hzinfo_inspect.obj.services.TemplateService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TemplateServiceImpl extends BaseServiceImpl implements TemplateService { + + /** + * 获取所有包含项目的内容(不分页) + * @return + */ + @Override + public List getAllContainProjectOfTemplate() { + return this.baseMapper.getAllContainProjectOfTemplate(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/utils/CodeUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/utils/CodeUtils.java new file mode 100644 index 0000000..c8e51be --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/utils/CodeUtils.java @@ -0,0 +1,46 @@ +package org.springblade.hzinfo_inspect.obj.utils; + +import org.apache.commons.lang3.time.DateUtils; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author h w + * created in 2018/9/04 16:09 + * modified By: + */ +public class CodeUtils { + + /** + * 获取当前时间下的随机编码 + * @param + * @return 随机编码字符串 + */ + public static String randomCode() { + Calendar calendar = Calendar.getInstance(); + String code = "" + calendar.get(Calendar.YEAR) + (calendar.get(Calendar.MONTH)+1) + calendar.get(Calendar.DAY_OF_MONTH) + + calendar.get(Calendar.HOUR_OF_DAY) + calendar.get(Calendar.MINUTE) + calendar.get(Calendar.MILLISECOND); + code += new Random().nextInt(99); + return code; +// SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS"); +// String dataNowStr=sdf.format(new Date()); +// StringBuffer sb=new StringBuffer(dataNowStr); +// +// Random rd=new Random(); +// //3、产生4位随机数 +// String n = ""; +// int rdGet; //取得随机数 +// do { +//// rdGet = Math.abs(rd.nextInt()) % 10 + 48; //产生48到57的随机数(0-9的键位值) +// rdGet=Math.abs(rd.nextInt())%26+97; //产生97到122的随机数(a-z的键位值) +// char num1 = (char) rdGet; +// String dd = Character.toString(num1); +// n += dd; +// } while (n.length() < 4);// 假如长度小于4 +// sb.append(n); +// //4、返回唯一码 +// return sb.toString(); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentBatchVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentBatchVo.java new file mode 100644 index 0000000..a369ef0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentBatchVo.java @@ -0,0 +1,19 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: py + */ +@Data +@ApiModel(value = "巡检内容批量新增vo") +public class ContentBatchVo { + + @ApiModelProperty(value = "内容list") + List contents; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentListQueryVO.java new file mode 100644 index 0000000..b4079cd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ContentListQueryVO.java @@ -0,0 +1,70 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.io.Serializable; +import java.util.List; + +/** + * 内容查询对象 + * @author ninglong + * @create 2020-08-25 18:45 + */ +@Getter +@Setter +@ApiModel(value = "内容列表查询实体") +public class ContentListQueryVO implements Serializable { + + private static final long serialVersionUID = -4598844718075034109L; + /** + * 内容编码 + */ + @QueryField(condition = SqlCondition.LIKE) + @ApiModelProperty(value = "内容编码") + private String code; + + /** + * 内容名称 + */ + @QueryField(condition = SqlCondition.LIKE) + @ApiModelProperty(value = "内容名称") + private String name; + + /** + * 记录类型 0不记录 1仅选择 2仅记值 3选择并记值 + */ + @ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值") + @QueryField(condition = SqlCondition.EQUAL) + private String recordType; + + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + @QueryField(condition = SqlCondition.EQUAL) + private String checkType; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + @QueryField(condition = SqlCondition.EQUAL) + private String checkTypeSon; + + @ApiModelProperty(value = "需要过滤的内容id") + @QueryField(condition = SqlCondition.NOT_IN,columnName = "id") + private List ids = Lists.newArrayList(); + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private Integer supportAutoVideo; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectBatchVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectBatchVo.java new file mode 100644 index 0000000..207c816 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectBatchVo.java @@ -0,0 +1,19 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: py + */ +@Data +@ApiModel(value = "巡检对象批量新增vo") +public class ObjectBatchVo { + + @ApiModelProperty(value = "对象list") + List objects; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectDto.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectDto.java new file mode 100644 index 0000000..012429f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectDto.java @@ -0,0 +1,47 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 巡检对象传输类 + * @author ninglong + * @create 2020-08-26 7:59 + */ +@ApiModel(value = "巡检对象") +@Getter +@Setter +public class ObjectDto extends ObjectEntity implements Serializable { + private static final long serialVersionUID = 2941261823320323557L; + + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称,长度必须为1到128") + @Size(min=1,max = 128,message ="对象名称长度必须为1到128") + private String otherName; + /** + * 地理位置 + */ + @ApiModelProperty(value = "地理位置,长度必须为1到128") + @Size(min=1,max = 128,message ="地理位置长度必须为1到128") + private String otherAddress; + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + private BigDecimal otherLgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal otherLttd; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputData.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputData.java new file mode 100644 index 0000000..0de8597 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputData.java @@ -0,0 +1,106 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Size; + + +/** + * 巡检对象导入数据 + * @Author: py + * 属性顺序需要与Excel列顺序一致 + */ +@Data +public class ObjectExcelInputData { + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称,长度必须为1到128") + @Size(min=1,max = 128,message ="对象名称长度必须为1到128") + private String objName; + + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + private String objCode; + + /** + * 对象描述 + */ + @ApiModelProperty(value = "对象描述,长度必须为0到512") + @Size(min=0,max = 512,message ="对象描述长度必须为0到512") + private String objDesc; + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称长度必须为1到128") + @Size(min=1,max = 128,message ="项目名称长度必须为1到128") + private String prjName; + + /** + * 项目编码 + */ + @ApiModelProperty(value = "项目编码") + private String prjCode; + + /** + * 项目排序 + */ + @ApiModelProperty(value = "排序") + private Integer prgSort; + + + /** + * 项目描述 + */ + @ApiModelProperty(value = "项目描述长度必须为0到512") + @Size(min=0,max = 512,message ="项目描述长度必须为0到512") + private String prjDesc; + + + + /** + * 内容名称 + */ + @ApiModelProperty(value = "内容名称,长度必须为1到128") + @Size(min=1,max = 128,message ="内容名称长度必须为1到128") + private String contentName; + + /** + * 内容编码 + */ + @ApiModelProperty(value = "内容编码") + private String contentCode; + + /** + * 内容描述 + */ + @ApiModelProperty(value = "内容描述,长度必须为0到512") + @Size(min=0,max = 512,message ="内容描述长度必须为0到512") + private String contentDesc; + /** + * 内容记录类型 0不记录 1仅选择 2仅记值 3选择并记值 + */ + @ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值") + private String recordType; + /** + * 内容检测类型 + */ + @ApiModelProperty(value = "检测类型 0目测 2热成像 3拍照") + private String checkType; + + /** + * 内容排序 + */ + @ApiModelProperty(value = "内容排序") + private Integer contentSort; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputVo.java new file mode 100644 index 0000000..f3afcac --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectExcelInputVo.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import lombok.Data; + +import java.util.List; + +/** + * @Author: py + */ +@Data +public class ObjectExcelInputVo extends ObjectEntity{ + + /** + * 项目内容列表 + */ + private List prjContents; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectListQueryVO.java new file mode 100644 index 0000000..a6bbf2d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectListQueryVO.java @@ -0,0 +1,48 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.io.Serializable; + +/** + * 巡检对象列表查询实体 + * @author ninglong + * @create 2020-08-26 7:59 + */ +@ApiModel(value = "巡检对象列表查询实体") +@Getter +@Setter +public class ObjectListQueryVO implements Serializable { + private static final long serialVersionUID = 2941261823320323697L; + + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + @QueryField(condition = SqlCondition.LIKE) + private String code; + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称") + @QueryField(condition = SqlCondition.LIKE) + private String name; + + @ApiModelProperty("业务状态 0-启用,1-停用") + @QueryField(condition = SqlCondition.EQUAL) + private Integer status; + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserAddVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserAddVO.java new file mode 100644 index 0000000..f699917 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserAddVO.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020. + * This software is not allowed to copy, transfer, reprint, disclose, modify, transcribe + * and publicize without prior written permission + * 公司:华自科技 www.cshnac.com + * 作者: ninglong 宁龙 (510613518@qq.com) + */ + +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ninglong + * @create 2020-09-22 10:27 + */ +@ApiModel(value = "添加对象用户实体") +@Data +public class ObjectUserAddVO implements Serializable { + + @ApiModelProperty(value="对象id") + private Long objectId; + @ApiModelProperty(value = "模板id") + private Long templateId; + @ApiModelProperty(value="多个用户id") + private List userIds; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListQuery.java new file mode 100644 index 0000000..729e1a1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListQuery.java @@ -0,0 +1,44 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * 对象用户列表查询 + * @author ninglong + * @create 2020-08-27 8:42 + */ +@Getter +@Setter +@ApiModel("对象用户列表查询对象") +public class ObjectUserListQuery implements Serializable { + + @ApiModelProperty(value = "对象编码") + private String objCode; + @ApiModelProperty(value = "对象名称") + private String objName; + + @ApiModelProperty(value = "模板编码") + private String tempCode; + @ApiModelProperty(value = "模板名称") + private String tempName; + + @ApiModelProperty(value = "用户代码") + private String userCode; + + @ApiModelProperty("用户姓名") + private String userName; + @ApiModelProperty("登录名称") + private String loginName; + + @ApiModelProperty(value = "租户id",hidden = true) + private String tenantId; + @ApiModelProperty(value = "用户代码",hidden = true) + private Long userId; + @ApiModelProperty(value = "主键",hidden = true) + private Long id; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListVO.java new file mode 100644 index 0000000..b5359da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ObjectUserListVO.java @@ -0,0 +1,47 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author ninglong + * + */ +@ApiModel("对象人员") +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ObjectUserListVO implements Serializable{ + + private static final long serialVersionUID = -3044589795282757286L; + + @ApiModelProperty("主键") + private Long id; + @ApiModelProperty("对象编码") + private String objCode; + @ApiModelProperty("对象名称") + private String objName; + @ApiModelProperty("用户ID") + private Long userId; + @ApiModelProperty("用户代码") + private String userCode; + @ApiModelProperty("用户姓名") + private String userName; + @ApiModelProperty("登录名称") + private String loginName; + + @ApiModelProperty(value = "模板编码") + private String tempCode; + @ApiModelProperty(value = "模板名称") + private String tempName; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/OtherObjectListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/OtherObjectListQueryVO.java new file mode 100644 index 0000000..e2a82a0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/OtherObjectListQueryVO.java @@ -0,0 +1,51 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.io.Serializable; + +/** + * 巡检对象列表查询实体 + * @author py + */ +@ApiModel(value = "其他巡检对象列表查询实体") +@Getter +@Setter +public class OtherObjectListQueryVO implements Serializable { + private static final long serialVersionUID = 2941261823320323699L; + + /** + * 来源类型 + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "来源类型") + private String type; + + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + @QueryField(condition = SqlCondition.LIKE) + private String code; + + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称") + @QueryField(condition = SqlCondition.LIKE) + private String name; + + /** + * 对象实际ID 对象所在的来源表对应的真实ID + */ + @ApiModelProperty(value = "对象实际ID 对象所在的来源表对应的真实ID") + @QueryField(condition = SqlCondition.EQUAL) + private Long realId; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectContentDto.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectContentDto.java new file mode 100644 index 0000000..ae9bf47 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectContentDto.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: py + */ +@Data +@ApiModel(value = "对象内容DTO") +public class ProjectContentDto extends ProjectEntity{ + + /** + * 对象Id,同模板id + */ + @ApiModelProperty(value = "模板id") + private Long templateId; + + /** + * 模板项目关联表Id + */ +// private Long tempPrjId; + + /** + * 模板中项目的排序 + */ + private Integer prjSort; + + /** + * 对象内容list + */ + @ApiModelProperty(value = "项目内容list") + private List contents; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListQueryVO.java new file mode 100644 index 0000000..3ffcc34 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListQueryVO.java @@ -0,0 +1,54 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.io.Serializable; +import java.util.List; + +/** + * 项目列表查询实体 + * @author ninglong + * @create 2020-08-26 8:09 + */ +@ApiModel(value = "项目列表查询实体") +@Getter +@Setter +public class ProjectListQueryVO implements Serializable { + private static final long serialVersionUID = -953928646703619934L; + + /** + * 项目编码 + */ + @ApiModelProperty(value = "项目编码") + @QueryField(condition = SqlCondition.LIKE) + private String code; + + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称") + @QueryField(condition = SqlCondition.LIKE) + private String name; + + @ApiModelProperty("业务状态 0-启用,1-停用") + @QueryField(condition = SqlCondition.EQUAL) + private Integer status; + + @ApiModelProperty(value = "需要过滤的项目id") + @QueryField(condition = SqlCondition.NOT_IN,columnName = "id") + private List ids = Lists.newArrayList(); + + /** + * 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = " inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListVo.java new file mode 100644 index 0000000..4767ee7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/ProjectListVo.java @@ -0,0 +1,29 @@ +package org.springblade.hzinfo_inspect.obj.vo; + + +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: py + */ +@Data +@ApiModel(value = "ProjectListVo", description = "巡检项目内容机器人任务表") +public class ProjectListVo { + + /** + * 项目内容 + */ + @ApiModelProperty(value = "项目内容") + private List contents; + + /** + * 该项目中 机器人任务 + */ +// @ApiModelProperty(value = "该项目中 机器人任务") +// private List robotTasks; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateAddVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateAddVo.java new file mode 100644 index 0000000..0866d52 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateAddVo.java @@ -0,0 +1,31 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 模板项目dto + * @Author: py + */ +@Data +@ApiModel +public class TemplateAddVo extends TemplateEntity { + + /** + * 对象Id + */ + @ApiModelProperty(value = "对象Id") + private Long objectId; + + + /** + * 模板项目绑定list + */ + @ApiModelProperty(value = "模板项目绑定list") + private List tempProjs; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateListQueryVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateListQueryVO.java new file mode 100644 index 0000000..814362d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateListQueryVO.java @@ -0,0 +1,55 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ninglong + * @create 2020-08-26 8:14 + */ +@Setter +@Getter +@ApiModel(value = "模板列表查询对象") +public class TemplateListQueryVO implements Serializable { + + private static final long serialVersionUID = 4273952650677998155L; + + /** + * 模板代码 + */ + @ApiModelProperty(value = "模板代码") + @QueryField(condition = SqlCondition.LIKE) + private String code; + /** + * 模板名称 + */ + @ApiModelProperty(value = "模板名称") + @QueryField(condition = SqlCondition.LIKE) + private String name; + + @ApiModelProperty(value = "重复记录") + @QueryField(condition = SqlCondition.EQUAL) + private String duplicateRecord; + + + @ApiModelProperty(value = "需要过滤的模板id") + @QueryField(condition = SqlCondition.NOT_IN,columnName = "id") + private List ids = Lists.newArrayList(); + + /** + * 是否支持视频自动巡检 + */ + @QueryField(condition = SqlCondition.EQUAL) + @ApiModelProperty(value = "是否支持视频自动巡检") + private Integer supportAutoVideo; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateProjectVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateProjectVo.java new file mode 100644 index 0000000..b9f4f03 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/TemplateProjectVo.java @@ -0,0 +1,30 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @Author: py + */ +@ApiModel(value = "巡检模板项目vo") +@Getter +@Setter +public class TemplateProjectVo extends TemplateEntity { + + /** + * 对象模板关联id + */ + @ApiModelProperty(value = "对象模板关联id") + private Long objTempId; + + /** + * 项目list + */ + @ApiModelProperty(value = "项目list") + private List projectContentList; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/UserVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/UserVO.java new file mode 100644 index 0000000..aab0cae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/vo/UserVO.java @@ -0,0 +1,35 @@ +package org.springblade.hzinfo_inspect.obj.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Date 2020/11/18 12:05 + * @Created by ninglong + */ +@ApiModel("人员") +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class UserVO implements Serializable { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("用户姓名") + private String userName; + + @ApiModelProperty("登录名") + private String loginName; + + @ApiModelProperty("机构名") + private String deptName; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ContentController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ContentController.java new file mode 100644 index 0000000..a9bcba4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ContentController.java @@ -0,0 +1,120 @@ +package org.springblade.hzinfo_inspect.obj.web; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.obj.entity.ContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import org.springblade.hzinfo_inspect.obj.services.ProjectContentService; +import org.springblade.hzinfo_inspect.obj.services.impl.ContentServiceImpl; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ContentBatchVo; +import org.springblade.hzinfo_inspect.obj.vo.ContentListQueryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 巡检内容 + * ninglong + */ +@RestController +@RequestMapping("/obj/content") +@Api(value = "巡检内容", tags = "巡检内容") +@Slf4j +public class ContentController { + + @Autowired + private ContentServiceImpl contentService; + @Autowired + private ProjectContentService projectContentService; + + /** + * 巡检内容列表 + */ + @GetMapping("/list") + @ApiOperation(value = "巡检内容列表", notes = "巡检内容列表") + public R> list(ContentListQueryVO content, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new ContentEntity(),content); + queryWrapper.eq(ContentEntity::getCreateDept,bladeUser.getDeptId()); + queryWrapper.orderByDesc(ContentEntity::getUpdateTime); + //IPage pages = contentService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.eq(ContentEntity::getTenantId, bladeUser.getTenantId()) : queryWrapper); + + IPage pages = contentService.page(Condition.getPage(query), queryWrapper); + return R.data(pages); + } + + /** + * 查询单条 + */ + @GetMapping("/detail") + @ApiOperation(value = "查看详情", notes = "传入id") + public R detail(Long id) { + ContentEntity content = contentService.getById(id); + return R.data(content); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperation(value = "新增或修改", notes = "传入巡检内容") + public R submit(@Valid @RequestBody ContentEntity content) { + if(content.getId()==null && Func.isBlank(content.getCode())){ + content.setCode(CodeUtils.randomCode()); + } + boolean flag=contentService.saveOrUpdate(content); + if(flag) { + return R.data(content.getId()); + }else{ + return R.fail("保存失败"); + } + } + + @PostMapping("/saveBatch") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "巡检内容批量新增", notes = "传入object") + public R submit(@Valid @RequestBody ContentBatchVo batchVo) { + return R.status(contentService.saveBatch(batchVo.getContents())); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperation(value = "删除", notes = "传入id集合") + public R remove(@RequestParam String ids) { + List delIdList = Func.toLongList(ids); + QueryWrapper qw = new QueryWrapper(); + qw.lambda().in(ProjectContentEntity::getContentId,delIdList); + int count = projectContentService.count(qw); + if(count>0) { + return R.fail("该巡检内容已被巡检项目引用,无法删除。"); + } + return R.status(contentService.deleteLogic(delIdList)); + } + + /** + * 根据ids 批量复制 + */ + @PostMapping("/insertCopyBatch") + @ApiOperation(value = "根据ids 数据库批量复制", notes = "传入id集合") + public R insertCopyBatch(@ApiParam(value = "主键集合 ,隔开", required = true)@RequestParam String ids, + @ApiParam(value = "添加的名称前缀") @RequestParam String pre) { + contentService.databaseCopyBatch(Func.toLongList(ids), pre); + return R.success("操作成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectController.java new file mode 100644 index 0000000..b74f044 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectController.java @@ -0,0 +1,276 @@ +package org.springblade.hzinfo_inspect.obj.web; + +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.obj.entity.ObjectDangerEntity; +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; +import org.springblade.hzinfo_inspect.obj.entity.OtherObjectEntity; +import org.springblade.hzinfo_inspect.obj.services.*; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.*; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.plan.entity.PlanObjectTemplateEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanObjectTemplateService; +import org.springblade.hzinfo_inspect.task.TaskContants; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.commons.io.FileUtils; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + + +/** + * 巡检对象控制器 + * @author ninglong + */ +@RestController +@AllArgsConstructor +@RequestMapping("/obj/object") +@Api(value = "巡检对象", tags = "巡检对象") +public class ObjectController extends BladeController { + + private final ObjectService objectService; + private final OtherObjectService otherObjectService; + private final IPlanObjectTemplateService planObjectTemplateService; + private final ObjectTemplateService objectTemplateService; + private static final int MAX_SIZE = 1024 * 1024 * 200; + private final IObjectDangerService objectDangerService; + + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看", notes = "传入id") + public R detail(Long id) { + ObjectEntity detail = objectService.getDetail(id); + detail.setDangerSources(objectDangerService.getDangerDetailByObjectId(id)); + return R.data(detail); + + } + +// @GetMapping("/list") +// @ApiOperationSupport(order = 2) +// @ApiOperation(value = "巡检对象列表", notes = "巡检对象列表") +// public R> list(ObjectListQueryVO object, Query query, BladeUser bladeUser) { +// LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new ObjectEntity(),object); +// queryWrapper.orderByDesc(ObjectEntity::getUpdateTime); +// IPage pages = objectService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.eq(ObjectEntity::getTenantId, bladeUser.getTenantId()) : queryWrapper); +// return R.data(pages); +// } + + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "巡检对象列表", notes = "巡检对象列表") + public R> list(ObjectListQueryVO object, Query query, BladeUser bladeUser) { + IPage pages = Condition.getPage(query); + ObjectEntity entity = new ObjectEntity(); +// if(!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)){ +// entity.setTenantId(bladeUser.getTenantId()); +// } + entity.setCreateDept(Long.valueOf(bladeUser.getDeptId())); + + entity.setCode(object.getCode()); + entity.setName(object.getName()); + entity.setStatus(object.getStatus()); + entity.setSupportAutoVideo(object.getSupportAutoVideo()); + pages.setRecords(objectService.getListPage(pages,entity)); + return R.data(pages); + } + + @GetMapping("/other_list_page") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "其他巡检对象列表-分页", notes = "其他巡检对象列表,分页") + public R> otherListPage(OtherObjectListQueryVO object, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new OtherObjectEntity(),object); + queryWrapper.eq(OtherObjectEntity::getCreateDept,bladeUser.getDeptId()); + queryWrapper.orderByDesc(OtherObjectEntity::getRealId); + IPage pages = otherObjectService.page(Condition.getPage(query), queryWrapper); + return R.data(pages); + } + + @GetMapping("/other_list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "其他巡检对象列表", notes = "其他巡检对象列表,不分页") + public R> otherList(OtherObjectListQueryVO object, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new OtherObjectEntity(),object); + queryWrapper.eq(OtherObjectEntity::getCreateDept,bladeUser.getDeptId()); + queryWrapper.orderByDesc(OtherObjectEntity::getRealId); + //List list = otherObjectService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.eq(OtherObjectEntity::getTenantId, bladeUser.getTenantId()) : queryWrapper); + List list = otherObjectService.list(queryWrapper); + return R.data(list); + } + + @GetMapping("/other_unbind_list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "获获取未绑定的其他来源对象", notes = "获获取未绑定的其他来源对象,分页") + public R> otherUnbindList(OtherObjectListQueryVO obj, Query query, BladeUser bladeUser) { + IPage pages = Condition.getPage(query); + OtherObjectEntity object = new OtherObjectEntity(); + object.setName(obj.getName()); + object.setCode(obj.getCode()); + object.setType(obj.getType()); + object.setRealId(obj.getRealId()); +// object.setTenantId(bladeUser.getTenantId()); + object.setCreateDept(Long.valueOf(bladeUser.getDeptId())); + pages.setRecords(otherObjectService.getUnbindListPage(pages,object)); + return R.data(pages); + } + + @PostMapping("/submit") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "新增或修改", notes = "传入object") + public R submit(@Valid @RequestBody ObjectEntity object) { + if(object.getId()==null && Func.isBlank(object.getCode())){ + object.setCode(CodeUtils.randomCode()); + } + if(object.getSupportAutoVideo().equals(PlanContants.InspectTypeEnum.COMMON.getVal()) && (Func.isEmpty(object.getObjectDangers()) || object.getObjectDangers().size() == 0)){ + throw new ServiceException("对象告警list为空"); + } + objectService.saveOrUpdate(object); + objectDangerService.remove(Wrappers.lambdaQuery().eq(ObjectDangerEntity::getObjectId, object.getId())); + List objectDangers = object.getObjectDangers(); + if(CollectionUtil.isNotEmpty(objectDangers)){ + objectDangers.stream().forEach(e -> { + e.setObjectId(object.getId()); + }); + objectDangerService.saveBatch(objectDangers); + } + return R.data(object.getId()); + } + + @PostMapping("/saveBatch") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "批量新增", notes = "传入object") + public R submit(@Valid @RequestBody ObjectBatchVo batchVo) { + return R.status(objectService.saveBatch(batchVo.getObjects())); + } + + @PostMapping("/remove") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + List delIdList = Func.toLongList(ids); + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().in(PlanObjectTemplateEntity::getObjectId,delIdList); + int count = planObjectTemplateService.count(qw); + if(count>0) { + return R.fail("该巡检对象已被巡检计划引用,无法删除"); + } + for (Long aLong : delIdList) { + objectTemplateService.remove(new QueryWrapper(){{ + eq("OBJECT_ID",aLong); + }}); + } + return R.status(objectService.deleteLogic(delIdList)); + } + + @GetMapping("/disableOrEnable") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "启用/停用", notes = "传入id,以及目标状态0-启用,1-停用") + public R disableOrEnable(@RequestParam Long id,@RequestParam Integer status) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(PlanObjectTemplateEntity::getObjectId,id); + int count = planObjectTemplateService.count(qw); + if(count>0) { + return R.fail("该巡检对象已被巡检计划引用,无法停用"); + } + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().set(ObjectEntity::getStatus,status).eq(ObjectEntity::getId, id); + return R.status(objectService.update(ew)); + } + + @GetMapping("/getAllEnableOfObject") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "获取所有启用状态的对象(不分页)", notes = "获取所有启用状态的对象(不分页") + public R> getAllEnableOfObject(){ + List list = objectService.list(Wrappers.lambdaQuery().eq(ObjectEntity::getStatus,0)); + return R.data(list); + } + + @GetMapping("/getObjectList") + @ApiOperationSupport(order = 11) + @ApiOperation(value = "获获取未绑定的其他来源对象", notes = "获获取未绑定的其他来源对象,分页") + public R> getObjectList(ObjectEntity object){ + List list = objectService.list(org.springblade.core.mp.support.Condition.getQueryWrapper(new ObjectEntity(),object)); + return R.data(list); + } + + @GetMapping("/getOtherType") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "获取其他对象来源类型", notes = "获取其他对象来源类型") + public R> getOtherType(){ + List list = otherObjectService.getOtherType(); + return R.data(list); + } + + /** + * Excel导入巡检对象(含项目和内容) + */ + @PostMapping("/importObjectByExcel") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "Excel导入巡检对象(含项目和内容)", notes = "Excel导入巡检对象(含项目和内容)") + public R importObjectByExcel(@ApiParam(value = "excel文件,巡检对象导入模板", required = true) @RequestParam(value="file") MultipartFile file) throws IOException { + if (file.getSize() > MAX_SIZE) { + throw new ServiceException( "上传文件大小不能超过200M"); + } + EasyExcel.read(file.getInputStream(), ObjectExcelInputData.class, new ObjectExcelInputListener(objectService)).sheet().doRead(); + return R.status(true); + } + + @ApiOperationSupport(order = 9) + @ApiOperation(value = "巡检对象标签导出,下载pdf", notes = "巡检对象标签导出,下载pdf") + @RequestMapping(value = "/objectPdfDownload", method = {RequestMethod.GET, RequestMethod.POST}) + public void objectPdfDownload(HttpServletResponse response,@ApiParam(value = "导出对象的ids, 通过,隔开。 不传则返回全部对象", required = false) @RequestParam String ids) { + List idList = null; + if(Func.isNotEmpty(ids)){ + idList = Arrays.asList(ids.split(",")); + } + String pdfPath = objectService.exportObjectPdf(idList); + File file = new File(pdfPath); + OutputStream out = null; + try { + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + file.getName()); + out = response.getOutputStream(); + out.write(FileUtils.readFileToByteArray(file)); + out.flush(); + } catch (IOException e) { + throw new ServiceException("导出PDF发生异常 :" + e.toString()); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + throw new ServiceException("导出PDF,关闭流发生异常"); + } + } + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectTemplateController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectTemplateController.java new file mode 100644 index 0000000..7c9e482 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectTemplateController.java @@ -0,0 +1,109 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.web; + +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectTemplateService; +import org.springblade.hzinfo_inspect.obj.vo.TemplateAddVo; +import org.springblade.hzinfo_inspect.obj.vo.TemplateProjectVo; +import io.swagger.annotations.*; +import oracle.jdbc.proxy.annotation.Post; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.List; + +/** + * 巡检对象模板 + * @author ninglong + */ +@RestController +@RequestMapping("/obj/objectTemplate") +@Api(value = "巡检对象模板", tags = "巡检对象模板") +public class ObjectTemplateController { + + @Autowired + private ObjectTemplateService objectTemplateService; + + @GetMapping("getListByObjectId") + @ApiOperation(value = "根据巡检对象id获取该对象下的巡检模板") + public R> getListByObjectId(@ApiParam(value = "对象id", required = true)@RequestParam Long id) { + return R.data(objectTemplateService.getListByObjectId(id,null)); + } + + @GetMapping("getTemplates") + @ApiOperation(value = "根据巡检对象id获取该对象下的巡检模板,加类型筛选") + public R> getTemplates(@ApiParam(value = "对象id", required = true)@RequestParam Long id, + @ApiParam(value = "支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检", required = true)@RequestParam String type) { + return R.data(objectTemplateService.getListByObjectId(id, type)); + } +/* + @GetMapping("/addObjectTemplate") + @ApiOperation(value = "新增一个对象下的巡检模板,给一个对象只能关联一个模板,如果对象已经关联了,再次关联则替换", notes = "新增一个对象下的巡检模板") + @ApiImplicitParams({ + @ApiImplicitParam(name="objectId",value="巡检对象id"), + @ApiImplicitParam(name="templateId",value="巡检模板id") + }) + public R addObjectTemplate(@RequestParam Long objectId,@RequestParam Long templateId){ + ObjectTemplateEntity objectTemplateEntity = ObjectTemplateEntity.builder().objectId(objectId).templateId(templateId).build(); + return R.status(objectTemplateService.saveOrUpdateObjectTemplate(objectTemplateEntity)); + }*/ + + + @PostMapping("/submitTempAndProj") + @ApiOperation(value = "hld-新增对象下的模板,或者修改模板。同时处理模板项目绑定", notes = "新增模板,或者修改模板。同时处理模板项目绑定") + public R submitTemplateAndProj(@Valid @RequestBody TemplateAddVo temp){ + return R.data(objectTemplateService.submitTemplateAndProj(temp)); + } + + + @GetMapping("/addObjectTemplate") + @ApiOperation(value = "新增一个对象下的一个巡检模板,一个对象可以关联多个模板", notes = "新增一个对象下的巡检模板") + @ApiImplicitParams({ + @ApiImplicitParam(name="objectId",value="巡检对象id"), + @ApiImplicitParam(name="templateId",value="巡检模板id") + }) + public R addObjectTemplate(@RequestParam Long objectId,@RequestParam Long templateId){ + ObjectTemplateEntity objectTemplateEntity = ObjectTemplateEntity.builder().objectId(objectId).templateId(templateId).build(); + return R.status(objectTemplateService.save(objectTemplateEntity)); + } + + @GetMapping("/addObjTempBatch") + @ApiOperation(value = "hld-批量新增一个对象下的多个巡检模板", notes = "hld-批量新增一个对象下的多个巡检模板") + public R addObjTempBatch(@ApiParam(value = "巡检对象id", required = true)@RequestParam Long objectId, + @ApiParam(value = "巡检模板ids,逗号隔开", required = true) @RequestParam String templateIds){ + if(Func.isBlank(templateIds)){ + throw new ServiceException("模板ids不能为空"); + } + String[] temps = templateIds.split(","); + List objTemps = new ArrayList<>(); + for (String tempId : temps) { + ObjectTemplateEntity ot = new ObjectTemplateEntity(); + ot.setObjectId(objectId); + ot.setTemplateId(Long.valueOf(tempId)); + objTemps.add(ot); + } + return R.status(objectTemplateService.saveBatch(objTemps)); + } + + + + @PostMapping("/deleteObjectTemplate") + @ApiOperation(value = "删除对象模板", notes = "传入ids集合") + public R deleteObjectTemplate(@RequestParam String ids){ + return R.status(objectTemplateService.deleteLogic(Func.toLongList(ids))); + } + + @GetMapping("/getTemplatesByObjectId") + @ApiOperation(value = "hld 根据对象id获取模板项目内容") + public R> getTemplateByObjectId(@ApiParam(value = "对象id", required = true)@RequestParam Long id) { + return R.data(objectTemplateService.getTemplateByObjectId(id)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectUserController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectUserController.java new file mode 100644 index 0000000..2c2ec39 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ObjectUserController.java @@ -0,0 +1,163 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.web; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Lists; +import org.springblade.hzinfo_inspect.obj.entity.ObjectUserEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectUserService; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserAddVO; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListQuery; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListVO; +import org.springblade.hzinfo_inspect.obj.vo.ObjectUserListVO.ObjectUserListVOBuilder; +import org.springblade.hzinfo_inspect.obj.vo.UserVO; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.ISysClient; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 巡检对象用户 + * @author ninglong + */ +@RestController +@RequestMapping("/obj/user") +@Api(value = "巡检对象用户", tags = "巡检对象用户") +@Slf4j +public class ObjectUserController { + + @Autowired + private ObjectUserService objectUserService; + @Autowired + private IUserClient userClient; + + @Autowired + ISysClient sysClient; + + /** + * 巡检对象用户列表 + */ + @GetMapping("/list") + @ApiOperation(value = "巡检对象用户列表", notes = "巡检对象用户列表(跨服务查询)") + public R> list(ObjectUserListQuery content, Query query, BladeUser bladeUser) { + if(!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)){ + content.setTenantId(AuthUtil.getTenantId()); + } + List objectUserEntityList = objectUserService.getPageList(content); + if(objectUserEntityList.size()==0){ + return R.data(Condition.getPage(query)); + } + R> r = userClient.userListByCodeAndNameAndAccount(bladeUser.getTenantId(),content.getUserCode(),content.getUserName(),content.getLoginName()); + if(!r.isSuccess()){ + log.error(r.getMsg()); + throw new ServiceException("调用用户服务失败"); + } + List userList = r.getData();//TODO 根据查询条件获取所有用户不分页 + if(userList.size()==0){ + log.warn("没有符合条件的用户...."); + return R.data(Condition.getPage(query)); + } + Map userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity())); + List list = Lists.newArrayList();//所有符合条件的,不分页 + for(ObjectUserListQuery objectUserEntity:objectUserEntityList){ + ObjectUserListVOBuilder builder = ObjectUserListVO.builder() + .id(objectUserEntity.getId()) + .objCode(objectUserEntity.getObjCode()) + .objName(objectUserEntity.getObjName()) + .tempCode(objectUserEntity.getTempCode()) + .tempName(objectUserEntity.getTempName()); + User user = userMap.get(objectUserEntity.getUserId()); + if(user!=null){ + list.add(builder.userCode(user.getCode()).userName(user.getRealName()).loginName(user.getAccount()).userId(user.getId()).build()); + } + } + IPage resultPage = Condition.getPage(query); + resultPage.setTotal(list.size()); + //list 进行内存分页 + if(list.size()>resultPage.getSize()){ + list = list.stream().skip((resultPage.getCurrent()-1)* resultPage.getSize()).limit(resultPage.getSize()).collect(Collectors.toList()); + } + resultPage.setRecords(list); + return R.data(resultPage); + } + + /** + * 新增 + */ + @PostMapping("/submit") + @ApiOperation(value = "新增", notes = "传入巡检对象人员") + public R submit(@Valid @RequestBody ObjectUserAddVO objectUser) { + List objectUsers = Lists.newArrayList(); + objectUser.getUserIds().stream().forEach(id->{ + objectUsers.add(ObjectUserEntity.builder().objectId(objectUser.getObjectId()).templateId(objectUser.getTemplateId()).userId(id).build()); + }); + return R.status(objectUserService.saveBatch(objectUsers)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperation(value = "删除", notes = "传入id集合") + public R remove(@RequestParam String ids) { + List delIdList = Func.toLongList(ids); + return R.status(objectUserService.deleteLogic(delIdList)); + } + + /** + * 获取所有已绑定对象的巡检人员 + * @return + */ + @GetMapping("/getUserListOfBingObject") + @ApiOperation(value = "获取所有已绑定对象的巡检人员", notes = "获取所有已绑定对象的巡检人员") + public R> getUserListOfBingObject(){ + List list = Lists.newArrayList(); + List objectUserEntityList = objectUserService.list(); + for (ObjectUserEntity objectUserEntity:objectUserEntityList){ + User user = UserCache.getUser(objectUserEntity.getUserId()); + Dept dept=sysClient.getDept(Long.valueOf(user.getDeptId())).getData(); + UserVO vo ; + if(Func.isNotEmpty(user)){ + vo = UserVO.builder() + .id(objectUserEntity.getUserId()) + .loginName(user.getAccount()) + .deptName(dept.getDeptName()) + .userName(user.getRealName()).build(); + } else { + vo = UserVO.builder() + .id(objectUserEntity.getUserId()) + .loginName(user.getAccount()) + .userName(objectUserEntity.getUserId().toString()) + .deptName(dept.getDeptName()) + .build(); + } + list.add(vo); + } + return R.data(list.stream().distinct().collect(Collectors.toList())); + } + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectContentController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectContentController.java new file mode 100644 index 0000000..5272023 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectContentController.java @@ -0,0 +1,97 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.web; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.google.common.collect.Lists; +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.ProjectContentService; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import io.swagger.annotations.*; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 巡检项目内容 + * @author ninglong + */ +@RestController +@RequestMapping("/obj/projectContent") +@Api(value = "巡检项目内容", tags = "巡检项目内容") +public class ProjectContentController { + + @Autowired + private ProjectContentService projectContentService; + + @GetMapping("getListByProjectId") + @ApiOperation(value = "根据巡检项目id获取该项目下的巡检内容") + public R> getListByProjectId(Long id) { + return R.data(projectContentService.getListByProjectId(id)); + } + + @GetMapping("/sortProjectContent") + @ApiOperation(value = "修改一个项目下的巡检内容顺序", notes = "上移、下移") + @ApiImplicitParams({ + @ApiImplicitParam(name="id",value="当前操作的巡检项目内容id"), + @ApiImplicitParam(name="targetId",value="当前操作巡检项目内容的上/下一条数据id") + }) + public R sortProjectContent(@RequestParam Long id,@RequestParam Long targetId){ + ProjectContentEntity projectContentEntity = projectContentService.getById(id); + ProjectContentEntity targetProjectContentEntity = projectContentService.getById(targetId); + Integer sortValue = projectContentEntity.getSort(); + projectContentEntity.setSort(targetProjectContentEntity.getSort()); + targetProjectContentEntity.setSort(sortValue); + List list = Lists.newArrayList(); + list.add(projectContentEntity); + list.add(targetProjectContentEntity); + boolean success = projectContentService.updateBatchById(list); + return R.status(success); + } + + @GetMapping("/addProjectContent") + @ApiOperation(value = "新增一个项目下的巡检内容", notes = "新增一个项目下的巡检内容") + @ApiImplicitParams({ + @ApiImplicitParam(name="projectId",value="巡检项目id"), + @ApiImplicitParam(name="contentIds",value="巡检内容ids,多个内容以逗号分隔") + }) + public R addProjectContent(@RequestParam Long projectId,@RequestParam String contentIds){ + String [] contentId = contentIds.split(","); + List list = Lists.newArrayList(); + Integer maxValue = projectContentService.getMaxSortProjectContentByProjectId(projectId); + maxValue = maxValue==null?0:maxValue; + for(int i=0,len=contentId.length;i deleteProjectContent(@RequestParam String ids){ + return R.status(projectContentService.deleteLogic(Func.toLongList(ids))); + } + + @PostMapping("/submit-hld") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "hld 新增或修改,保存项目信息 、项目内容、项目内容关联", notes = "传入ProjectContentDto") + public R submit(@Valid @RequestBody ProjectContentDto dto) { + return R.data(projectContentService.saveOrUpdatePrjContent(dto)); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectController.java new file mode 100644 index 0000000..4da9856 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/ProjectController.java @@ -0,0 +1,153 @@ +package org.springblade.hzinfo_inspect.obj.web; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.obj.entity.ProjectContentEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.ProjectService; +import org.springblade.hzinfo_inspect.obj.services.TemplateProjectService; +import org.springblade.hzinfo_inspect.obj.services.impl.ProjectContentServiceImpl; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ProjectListQueryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 巡检项目 + * ninglong + */ +@RestController +@RequestMapping("/obj/project") +@Api(value = "巡检项目",tags = "巡检项目") +public class ProjectController { + + @Autowired + private ProjectService projectService; + @Autowired + private TemplateProjectService templateProjectService; + @Autowired + private ProjectContentServiceImpl projectContentService; + + /** + * 巡检项目列表 + */ + @GetMapping("/list") + @ApiOperation(value = "巡检项目列表", notes = "巡检项目列表") + public R> list(ProjectListQueryVO project, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new ProjectEntity(),project); + queryWrapper.eq(ProjectEntity::getCreateDept,bladeUser.getDeptId()); + queryWrapper.orderByDesc(ProjectEntity::getUpdateTime); + //IPage pages = projectService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.eq(ProjectEntity::getTenantId, bladeUser.getTenantId()) : queryWrapper); + + IPage pages = projectService.page(Condition.getPage(query), queryWrapper); + + //查询巡检项目对应的内容个数 + Map countMap=projectContentService.countByProjectId(bladeUser.getDeptId()); + + pages.getRecords().forEach(entity->{ +// QueryWrapper qw = new QueryWrapper<>(); +// qw.lambda().eq(ProjectContentEntity::getProjectId, entity.getId()); +// int contentNum = projectContentService.count(qw); + + entity.setContentNum(countMap.get(entity.getId())); + }); + return R.data(pages); + } + + /** + * 查询单条 + */ + @ApiOperation(value = "查看详情", notes = "传入id") + @GetMapping("/detail") + public R detail(Long id) { + ProjectEntity project = projectService.getById(id); + return R.data(project); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperation(value = "新增或修改", notes = "传入巡检项目") + public R submit(@Valid @RequestBody ProjectEntity project) { + if(project.getId()==null && Func.isBlank(project.getCode())){ + project.setCode(CodeUtils.randomCode()); + } + return R.status(projectService.saveOrUpdate(project)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "删除", notes = "传入id集合") + @Transactional(rollbackFor = Exception.class) + public R remove(@RequestParam String ids) { + List delIdList = Func.toLongList(ids); + QueryWrapper qw = new QueryWrapper(); + qw.lambda().in(TemplateProjectEntity::getProjectId,delIdList); + int count = templateProjectService.count(qw); + if(count>0) { + return R.fail("该巡检项目已被巡检模板引用,无法删除。"); + } + projectService.deleteLogic(delIdList); + //删除项目关联内容 + List contentList = projectContentService.list(new LambdaQueryWrapper(){{ + in(ProjectContentEntity::getProjectId,delIdList); + }}); + if(CollectionUtil.isNotEmpty(contentList)) { + projectContentService.deleteLogic(contentList.stream().map(ProjectContentEntity::getId).collect(Collectors.toList())); + } + return R.success("删除成功!"); + } + + /** + * 启用/停用 + */ + @GetMapping("/disableOrEnable") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "启用/停用", notes = "传入id,以及状态") + public R disableOrEnable(@RequestParam Long id,@RequestParam Integer status) { + QueryWrapper qw = new QueryWrapper(); + qw.lambda().eq(TemplateProjectEntity::getProjectId,id); + int count = templateProjectService.count(qw); + if(count>0) { + return R.fail("请取消关联巡检模板后进行巡检项目停用操作"); + } + UpdateWrapper ew = new UpdateWrapper(); + ew.lambda().set(ProjectEntity::getStatus,status).eq(ProjectEntity::getId, id); + return R.status(projectService.update(ew)); + } + + /** + * 根据ids 批量复制 + */ + @PostMapping("/insertCopyBatch") + @ApiOperation(value = "根据ids 数据库批量复制", notes = "传入id集合") + public R insertCopyBatch(@ApiParam(value = "主键集合 ,隔开", required = true)@RequestParam String ids, + @ApiParam(value = "添加的名称前缀") @RequestParam String pre) { + projectContentService.databaseCopyBatch(Func.toLongList(ids), pre); + return R.success("操作成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateController.java new file mode 100644 index 0000000..73944d6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateController.java @@ -0,0 +1,164 @@ +package org.springblade.hzinfo_inspect.obj.web; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.obj.entity.ObjectTemplateEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectTemplateService; +import org.springblade.hzinfo_inspect.obj.services.ProjectContentService; +import org.springblade.hzinfo_inspect.obj.services.TemplateProjectService; +import org.springblade.hzinfo_inspect.obj.services.TemplateService; +import org.springblade.hzinfo_inspect.obj.services.impl.TemplateProjectServiceImpl; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import org.springblade.hzinfo_inspect.obj.vo.TemplateListQueryVO; +import org.springblade.hzinfo_inspect.plan.entity.PlanObjectTemplateEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanObjectTemplateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping("/obj/template") +@Api(value = "巡检模板", tags = "巡检模板") +public class TemplateController extends BladeController { + + private final TemplateService templateService; + private final IPlanObjectTemplateService planObjectTemplateService; + private final ObjectTemplateService ObjectTemplateService; + private final TemplateProjectServiceImpl templateProjectService; + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看", notes = "传入巡检模板id") + public R detail(Long id) { + TemplateEntity detail = templateService.getById(id); + return R.data(detail); + } + + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "巡检模板列表分页", notes = "传入巡检模板") + public R> list(TemplateListQueryVO inspectionTemplate, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new TemplateEntity(),inspectionTemplate); + queryWrapper.eq(TemplateEntity::getCreateDept,bladeUser.getDeptId()); + queryWrapper.orderByDesc(TemplateEntity::getUpdateTime); + //IPage pages = templateService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.eq(TemplateEntity::getTenantId, bladeUser.getTenantId()) : queryWrapper); + queryWrapper.eq(TemplateEntity::getCreateDept,bladeUser.getDeptId()); + IPage pages = templateService.page(Condition.getPage(query), queryWrapper); + + return R.data(pages); + } + + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改巡检模板", notes = "传入巡检模板") + public R submit(@Valid @RequestBody TemplateEntity inspectionTemplate) { + if(inspectionTemplate.getId()==null && Func.isBlank(inspectionTemplate.getCode())){ + inspectionTemplate.setCode(CodeUtils.randomCode()); + } + return R.status(templateService.saveOrUpdate(inspectionTemplate)); + } + + /** + * 启用/停用 + */ + @GetMapping("/disableOrEnable") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "启用/停用", notes = "传入id,,以及目标状态0-启用,1-停用") + public R disableOrEnable(@RequestParam Long id,@RequestParam Integer status) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(PlanObjectTemplateEntity::getTemplateId,id); + int count = planObjectTemplateService.count(qw); + if(count>0) { + return R.fail("该巡检模板已被巡检项目引用,无法停用。"); + } + QueryWrapper qwObj = new QueryWrapper<>(); + qwObj.lambda().eq(ObjectTemplateEntity::getTemplateId,id); + count = ObjectTemplateService.count(qwObj); + if(count>0) { + return R.fail("该巡检模板已被巡检项目引用,无法停用。"); + } + UpdateWrapper ew = new UpdateWrapper(); + ew.lambda().set(TemplateEntity::getStatus,status).eq(TemplateEntity::getId, id); + return R.status(templateService.update(ew)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + //已引用的不能删除(对象引用模板、计划引用模板) + List delIdList = Func.toLongList(ids); + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().in(PlanObjectTemplateEntity::getTemplateId,delIdList); + int count = planObjectTemplateService.count(qw); + if(count>0) { + return R.fail("该巡检模板已被巡检计划引用,无法删除。"); + } + QueryWrapper qwObj = new QueryWrapper<>(); + qwObj.lambda().in(ObjectTemplateEntity::getTemplateId,delIdList); + count = ObjectTemplateService.count(qwObj); + if(count>0) { + return R.fail("该巡检模板已被巡检对象引用,无法删除。"); + } + + //先删除模板关联到的项目 + List templateProjectEntityList = templateProjectService.list(new LambdaQueryWrapper(){{ + in(TemplateProjectEntity::getTemplateId, Arrays.asList(ids.split(","))); + }}); + if(CollectionUtil.isNotEmpty(templateProjectEntityList)){ + templateProjectService.deleteLogic(templateProjectEntityList.stream().map(TemplateProjectEntity::getId).collect(Collectors.toList())); + } + return R.status(templateService.deleteLogic(Func.toLongList(ids))); + } + + @GetMapping("/getAllContainProjectOfTemplate") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "获取所有包含项目的模板(不分页)", notes = "获取所有包含项目的模板(不分页") + public R> getAllContainProjectOfTemplate(){ + List list = templateService.getAllContainProjectOfTemplate(); + return R.data(list); + } + + /** + * 根据ids 批量复制 + */ + @PostMapping("/insertCopyBatch") + @ApiOperation(value = "根据ids 数据库批量复制", notes = "传入id集合") + public R insertCopyBatch(@ApiParam(value = "主键集合 ,隔开", required = true)@RequestParam String ids, + @ApiParam(value = "添加的名称前缀") @RequestParam String pre) { + templateProjectService.databaseCopyBatch(Func.toLongList(ids), pre); + return R.success("操作成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateProjectController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateProjectController.java new file mode 100644 index 0000000..3bb8f59 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/obj/web/TemplateProjectController.java @@ -0,0 +1,99 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.obj.web; + +import com.google.common.collect.Lists; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.TemplateProjectService; +import org.springblade.hzinfo_inspect.obj.vo.ProjectContentDto; +import io.swagger.annotations.*; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 巡检模板项目 + * @author ninglong + */ +@RestController +@RequestMapping("/obj/templateProject") +@Api(value = "巡检模板项目", tags = "巡检模板项目") +public class TemplateProjectController { + + @Autowired + private TemplateProjectService templateProjectService; + + @GetMapping("/addTemplateProject") + @ApiOperation(value = "新增一个模板下的巡检项目", notes = "新增一个模板下的巡检项目") + @ApiImplicitParams({ + @ApiImplicitParam(name="templateId",value="巡检模板id"), + @ApiImplicitParam(name="projectIds",value="巡检项目ids,多个内容以逗号分隔") + }) + public R addTemplateProject(@RequestParam Long templateId,@RequestParam String projectIds){ + String [] projectId = projectIds.split(","); + List list = Lists.newArrayList(); + Integer maxValue = templateProjectService.getMaxSortTemplateProjectByTemplateId(templateId); + maxValue = maxValue==null?0:maxValue; + for(int i=0,len=projectId.length;i> getListByProjectId(Long id) { + return R.data(templateProjectService.getListByTemplateId(id)); + } + + @GetMapping("/sortTemplateProject") + @ApiOperation(value = "修改一个模板下的巡检项目顺序", notes = "修改一个模板下的巡检项目顺序") + @ApiImplicitParams({ + @ApiImplicitParam(name="id",value="当前操作的巡检模板项目id"), + @ApiImplicitParam(name="targetId",value="当前操作巡检模板项目的上/下一条数据id") + }) + public R sortTemplateProject(@RequestParam Long id,@RequestParam Long targetId){ + TemplateProjectEntity templateContentEntity = templateProjectService.getById(id); + TemplateProjectEntity targetTemplateContentEntity = templateProjectService.getById(targetId); + Integer sortValue = templateContentEntity.getSort(); + templateContentEntity.setSort(targetTemplateContentEntity.getSort()); + targetTemplateContentEntity.setSort(sortValue); + List list = Lists.newArrayList(); + list.add(templateContentEntity); + list.add(targetTemplateContentEntity); + boolean success = templateProjectService.updateBatchById(list); + return R.status(success); + } + + @PostMapping("/deleteTemplateProject") + @ApiOperation(value = "删除模板巡检项目", notes = "传入ids集合") + public R deleteTemplateProject(@RequestParam String ids){ + return R.status(templateProjectService.deleteLogic(Func.toLongList(ids))); + } + + @GetMapping("/getPrjAndContents-hld") + @ApiOperation(value = "hld 获取(模板)的项目、内容列表") + public R> getProjectAndContentList(@ApiParam(value = "模板id", required = true)Long id) { + return R.data(templateProjectService.getProjectAndContentList(id)); + } + + @PostMapping("/submitTempPrj") + @ApiOperation(value = "保存项目模板、信息 、项目内容、项目内容关联", notes = "传入ProjectContentDto") + public R submit(@Valid @RequestBody ProjectContentDto dto) { + return R.data(templateProjectService.submitTempPrj(dto)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/PlanController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/PlanController.java new file mode 100644 index 0000000..42a2954 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/PlanController.java @@ -0,0 +1,173 @@ +package org.springblade.hzinfo_inspect.plan.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.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanObjectTemplateService; +import org.springblade.hzinfo_inspect.plan.service.IPlanService; +import org.springblade.hzinfo_inspect.plan.vo.PlanListQueryVO; +import org.springblade.hzinfo_inspect.plan.vo.PlanVO; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.time.LocalDate; +import java.util.List; + + +/** + * 控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping("/plan") +@Validated +@Api(value = "巡检计划", tags = "巡检计划") +public class PlanController extends BladeController { + + private final IPlanService planService; + private final IPlanObjectTemplateService planObjectTemplateService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看", notes = "传入planId") + public R detail(Long id) { + PlanVO detail = planService.detail(id); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页显示计划列表", notes = "传入plan") + public R> list(PlanListQueryVO plan, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new PlanEntity(),plan); + if(plan.getStartTime()!=null){ + queryWrapper.ge(PlanEntity::getStartTime,plan.getStartTime()); + } + if(plan.getEndTime()!=null){ + queryWrapper.le(PlanEntity::getEndTime,plan.getEndTime()); + } + if(plan.getStatus()==null){ + queryWrapper.ne(PlanEntity::getStatus, PlanContants.PlanStatusEnum.PLAN_AUTH.getStatus()); + } + + queryWrapper.eq(PlanEntity::getCreateDept, bladeUser.getDeptId()); + + queryWrapper.orderByDesc(PlanEntity::getUpdateTime); + + IPage pages = planService.page(Condition.getPage(query), queryWrapper); + return R.data(pages); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入plan") + public R submit(@Valid @RequestBody PlanVO plan) { + return R.status(planService.submit(plan)); + } + + /** + * 新增巡检计划 并审核、生成任务 + */ + @PostMapping("/addAndChecked") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入plan") + public R> addAndChecked(@Valid @RequestBody PlanVO plan) { + return R.data(planService.addAndChecked(plan)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除,不删除关联信息", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(planService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 删除该计划下的所有任务信息等 + */ + @PostMapping("/removeRelatives") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除,删除该计划下的所有任务信息等", notes = "传入id") + public R removeRelatives(@ApiParam(value = "主键", required = true) @RequestParam Long id) { + return R.status(planService.deletePlanAndRelatives(id)); + } + + /** + * 计划状态 0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过 + */ + @GetMapping("/modifyPlanStatus") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "修改计划状态 0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交", + notes = "提交、暂停、恢复、停止、通过、驳回") + @ApiImplicitParams({ + @ApiImplicitParam(name="id",value="计划id"), + @ApiImplicitParam(name="status",value="0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交") + }) + public R modifyPlanStatus(@RequestParam(value = "id") @ApiParam(value = "主键ID",required = true) Long id, + @RequestParam(value = PlanContants.PLAN_STATUS) Integer status) { + return R.status(planService.modifyPlanStatus(id, status)); + } + + /** + * 逻辑删除计划中的对象模板 + */ + @PostMapping("/removePlanObjectTemplate") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "逻辑删除计划中的对象模板", notes = "传入ids") + public R removePlanObjectTemplate(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(planObjectTemplateService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 新增或修改 + */ + @PostMapping("/submitHld") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "hld 新增或修改", notes = "传入plan") + public R submitHld(@Valid @RequestBody PlanVO plan) { + if(plan.getId()==null && Func.isEmpty(plan.getCode())){ + plan.setCode(CodeUtils.randomCode()); + LocalDate now = LocalDate.now(); + if(plan.getStartTime().isBefore(now)){ + throw new ServiceException("新增计划时开始时间不能早于当前时间"); + } + } + if(plan.getEndTime().isBefore(plan.getStartTime())){ + throw new ServiceException("结束时间不能早于开始时间"); + } + if(Func.isEmpty(plan.getRouteData())){ + throw new ServiceException("巡检路径数据不能为空"); + } + return R.status(planService.submitForHld(plan)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/RouteController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/RouteController.java new file mode 100644 index 0000000..0326a3c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/controller/RouteController.java @@ -0,0 +1,103 @@ +package org.springblade.hzinfo_inspect.plan.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.*; +import lombok.AllArgsConstructor; +import javax.validation.Valid; +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 org.springblade.hzinfo_inspect.plan.entity.RouteEntity; +import org.springblade.hzinfo_inspect.plan.service.IRouteService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.metadata.IPage; +import springfox.documentation.annotations.ApiIgnore; + + +import java.util.Map; + +/** + * 控制器 + * + * @author py + */ +@RestController +@AllArgsConstructor +@RequestMapping("/st_re_route") +@Api(value = "hld-巡检路径", tags = "hld-巡检路径") +public class RouteController extends BladeController { + + private final IRouteService st_re_routeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入st_re_route") + public R detail(RouteEntity st_re_route) { + RouteEntity detail = st_re_routeService.getOne(Condition.getQueryWrapper(st_re_route)); + return R.data(detail); + } + + /** + * 分页 代码自定义代号 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入st_re_route") + @ApiImplicitParams({ + }) + public R> list(@ApiIgnore @RequestParam Map st_re_route, Query query) { + QueryWrapper queryWrapper = Condition.getQueryWrapper( st_re_route, RouteEntity.class); + IPage pages = st_re_routeService.page(Condition.getPage(query), queryWrapper); + return R.data(pages); + } + + /** + * 新增 代码自定义代号 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入st_re_route") + public R save(@Valid @RequestBody RouteEntity st_re_route) { + return R.status(st_re_routeService.save(st_re_route)); + } + + /** + * 修改 代码自定义代号 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入st_re_route") + public R update(@Valid @RequestBody RouteEntity st_re_route) { + return R.status(st_re_routeService.updateById(st_re_route)); + } + + /** + * 新增或修改 代码自定义代号 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入st_re_route") + public R submit(@Valid @RequestBody RouteEntity st_re_route) { + st_re_routeService.saveOrUpdate(st_re_route); + return R.data(st_re_route.getId()); + } + + + /** + * 删除 代码自定义代号 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(st_re_routeService.deleteLogic(Func.toLongList(ids))); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanClassEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanClassEntity.java new file mode 100644 index 0000000..a5b244d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanClassEntity.java @@ -0,0 +1,32 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 巡检计划用户 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划班次") +@TableName("hz_st_re_plan_class") +@EqualsAndHashCode(callSuper = true) +public class PlanClassEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864963L; + + @ApiModelProperty(value="计划id") + private Long planId; + + @ApiModelProperty(value="班次id") + private Long classId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java new file mode 100644 index 0000000..0e04e96 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanEntity.java @@ -0,0 +1,200 @@ +package org.springblade.hzinfo_inspect.plan.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; +import java.time.LocalDateTime; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_re_plan") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检计划", description = "巡检计划") +@ToString +public class PlanEntity extends BaseEntity { + + private static final long serialVersionUID = 765388503678954943L; + + /** + * 计划编码 + */ + @ApiModelProperty(value = "计划编码") + private String code; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String name; + /** + * 计划开始时间 + */ + @ApiModelProperty(value = "计划开始时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate startTime; + /** + * 计划结束时间 + */ + @ApiModelProperty(value = "计划结束时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + private LocalDate endTime; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 5 临时任务 + */ + @ApiModelProperty(value = "计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 5 临时任务") + private String type; + /** + * 派发方式:0 抢占模式 1 并发模式 + */ + @ApiModelProperty(value = "派发方式:0 抢占模式 1 并发模式") + private String method; + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "计划周期 0: 每次 1:每天 2:每月 3:每季度 4:每年 5:每周") + private String cycle; + /** + * 审批人 + */ + @ApiModelProperty(value = "审批人") + private Long approver; + /** + * 审批时间 + */ + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "审批时间 ") + private LocalDateTime approveTime; + /** + * 计划来源 1巡检 2点检 + */ + @ApiModelProperty(value = "计划来源 1巡检 2点检") + private String fromSource; + + /** + * 是否立即生产任务 1-是 0-否 + */ + @ApiModelProperty(value = "是否立即生产任务 1-是 0-否") + private Integer taskFlg; + + /** + * 执行时间-开始(HH:mm:ss) + */ + @ApiModelProperty(value = "执行时间-开始(HH:mm:ss)") + @TableField(exist = false) + private String execStartTime; + + /** + * 执行时间-结束(HH:mm:ss) + */ + @ApiModelProperty(value = "执行时间-结束(HH:mm:ss)") + @TableField(exist = false) + private String execEndTime; + + /** + * 巡检路线数据 + * [{"sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"},{"sort":2,"objectId":"191","objectName":"厂房","templateId":"2235","templateName":"人员考勤"}] + */ + @ApiModelProperty(value = "巡检路线数据 : [{\"sort\":1,\"objectId\":\"225\",\"objectName\":\"人员考勤\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"},{\"sort\":2,\"objectId\":\"191\",\"objectName\":\"厂房\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"}]" ) + private String routeData; + /** + * 巡检路线ID字段 + */ + @ApiModelProperty(value = "巡检路线ID字段") + private Long routeId; + /** + * 路线名称 + */ + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 开始前提醒(分钟) + */ + @ApiModelProperty(value = "开始前提醒(分钟)") + private Integer startRemind; + /** + * 结束前提醒(分钟) + */ + @ApiModelProperty(value = "结束前提醒(分钟)") + private Integer endRemind; + /** + * 一天任务次数 + */ + @ApiModelProperty(value = "一天任务次数") + private Integer taskTimesADay; + /** + * 任务执行时间json数据 + * json格式:execStartTime表示开始时间,execEndTime表示结束时间 + * [{"execStartTime":"08:00:00","execEndTime":"20:40:00"},{"execStartTime":"08:00:00","execEndTime":"20:40:00"}] + */ + @ApiModelProperty(value = "任务执行时间json数据,json格式:[{\"execStartTime\":\"08:00:00\",\"execEndTime\":\"20:40:00\"},{\"execStartTime\":\"08:00:00\",\"execEndTime\":\"20:40:00\"}]") + private String execTimeJson; + /** + * 开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 " ^ "隔开 + */ + @ApiModelProperty(value = "开始任务时AI检测项,来自数据字段表: beginCheckType, 多个检测项直接通过 ^ 隔开") + private String aiCheckItems; + + /** + * 巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检") + private String autoVideo; + + /** + * 计划类型,common常规任务,temporary临时任务 + */ + @ApiModelProperty(value = "计划类型,common常规任务,temporary临时任务 ") + private String planType; + + /** + * 临时任务的巡检任务内容 + */ + @ApiModelProperty(value = "临时任务的巡检任务内容") + private String taskContent; + + /** + * 值班id + */ + @TableField(exist=false) + @ApiModelProperty(value = "值班id") + private Long dutyId; + + @ApiModelProperty(value = "是否有下一天") + private boolean nextDay; + + public boolean getIsNextDay(){ + return nextDay; + } + + public boolean setIsNextDay(boolean nextDay){ + return this.nextDay=nextDay; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java new file mode 100644 index 0000000..478aef2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanObjectTemplateEntity.java @@ -0,0 +1,34 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * + * 巡检计划对象模板 + * @author ninglong + */ +@Data +@TableName("hz_st_re_plan_object_template") +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PlanObjectTemplateEntity extends BaseEntity { + + private static final long serialVersionUID = -2081929783559311856L; + + private Long planId; + private Long objectId; + private Long templateId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java new file mode 100644 index 0000000..64e9ef4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanOrgEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划机构 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划机构") +@TableName("hz_st_re_plan_org") +@EqualsAndHashCode(callSuper = true) +public class PlanOrgEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="机构id") + private Long orgId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java new file mode 100644 index 0000000..a05db91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanPositionEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划岗位 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划岗位") +@TableName("hz_st_re_plan_position") +@EqualsAndHashCode(callSuper = true) +public class PlanPositionEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="用户id") + private Long positionId; +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java new file mode 100644 index 0000000..42f12c1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/PlanUserEntity.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.plan.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 巡检计划用户 + * @author ninglong + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@ApiModel(value="巡检计划用户") +@TableName("hz_st_re_plan_user") +@EqualsAndHashCode(callSuper = true) +public class PlanUserEntity extends BaseEntity { + + private static final long serialVersionUID = 696388503830864943L; + + @ApiModelProperty(value="计划id") + private Long planId; + @ApiModelProperty(value="用户id") + private Long userId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java new file mode 100644 index 0000000..8e2a29f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/entity/RouteEntity.java @@ -0,0 +1,44 @@ +package org.springblade.hzinfo_inspect.plan.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.springblade.core.mp.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * 实体类 + * + * @author py + */ +@Data +@TableName("hz_st_re_route") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "Route对象", description = "巡检路径") +public class RouteEntity extends BaseEntity { + + private static final long serialVersionUID = 643218503830864943L; + + /** + * 路线名称 + */ + @ApiModelProperty(value = "路线名称") + private String routeName; + /** + * 路线数据 + * json list + * 格式: + * [{"sort":1,"objectId":"225","objectName":"人员考勤","templateId":"2235","templateName":"人员考勤"},{"sort":2,"objectId":"191","objectName":"厂房","templateId":"2235","templateName":"人员考勤"}] + */ + @ApiModelProperty(value = "路线数据: [{\"sort\":1,\"objectId\":\"225\",\"objectName\":\"人员考勤\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"},{\"sort\":2,\"objectId\":\"191\",\"objectName\":\"厂房\",\"templateId\":\"2235\",\"templateName\":\"人员考勤\"}]") + private String routeData; + + /** + * 巡检类型标识 + */ + @ApiModelProperty(value = " 巡检类型标识 0普通巡检,1视频自动巡检,2机器人巡检") + private String supportAutoVideo; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/feign/InspectPlanClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/feign/InspectPlanClient.java new file mode 100644 index 0000000..dbb9767 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/feign/InspectPlanClient.java @@ -0,0 +1,28 @@ +package org.springblade.hzinfo_inspect.plan.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.plan.service.IPlanService; +import org.springblade.hzinfo_inspect.plan.vo.PlanVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author: py + */ + +@RestController +@RequestMapping(value = "/feign/plan") +public class InspectPlanClient implements IInspectPlanClient { + @Autowired + private IPlanService planService; + + @PostMapping("/addPlanAndChecked") + @Override + public R> addPlanAndChecked(PlanVO plan) { + return R.data(planService.addAndChecked(plan)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanMapper.java new file mode 100644 index 0000000..07a6ab2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanMapper.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PlanMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanObjectTemplateMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanObjectTemplateMapper.java new file mode 100644 index 0000000..ce35895 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanObjectTemplateMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springblade.hzinfo_inspect.plan.entity.PlanObjectTemplateEntity; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PlanObjectTemplateMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanOrgMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanOrgMapper.java new file mode 100644 index 0000000..7cb4e74 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanOrgMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.plan.entity.PlanOrgEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PlanOrgMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanPositionMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanPositionMapper.java new file mode 100644 index 0000000..e921117 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanPositionMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.plan.entity.PlanPositionEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PlanPositionMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanUserMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanUserMapper.java new file mode 100644 index 0000000..887754e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/PlanUserMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.plan.entity.PlanUserEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PlanUserMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/RouteMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/RouteMapper.java new file mode 100644 index 0000000..d975467 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/mapper/RouteMapper.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.plan.mapper; + +import org.springblade.hzinfo_inspect.plan.entity.RouteEntity; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * Mapper 接口 + * + * @author py + */ +public interface RouteMapper extends UserDataScopeBaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanObjectTemplateService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanObjectTemplateService.java new file mode 100644 index 0000000..3a6568b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanObjectTemplateService.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.plan.entity.PlanObjectTemplateEntity; + +/** + * 巡检计划对象模板服务类 + * + * @author Chill + */ +public interface IPlanObjectTemplateService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanOrgService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanOrgService.java new file mode 100644 index 0000000..f6ca389 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanOrgService.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.plan.entity.PlanOrgEntity; + +/** + * 巡检计划机构模板服务类 + * + * @author Chill + */ +public interface IPlanOrgService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanPositionService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanPositionService.java new file mode 100644 index 0000000..3dbfdc2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanPositionService.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.plan.entity.PlanPositionEntity; + +/** + * 巡检计划岗位服务类 + * + * @author Chill + */ +public interface IPlanPositionService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanService.java new file mode 100644 index 0000000..6fe86ee --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanService.java @@ -0,0 +1,59 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.vo.PlanVO; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface IPlanService extends BaseService { + + /** + * 保存巡检计划 + * @param plan + * @return + */ + Boolean submit(PlanVO plan); + + /** + * 新增巡检计划 并审核、生成任务 + * @param plan + * @return + */ + List addAndChecked(PlanVO plan); + + + /** + * hld版本 保存巡检计划 + * 含临时任务,立即生成任务 + * @param plan + * @return + */ + Boolean submitForHld(PlanVO plan); + + /** + * 改变计划状态 + * @param planId + * @return + */ + Boolean modifyPlanStatus(Long planId, Integer status); + + /** + * 查看巡检计划 + * @param id + * @return + */ + PlanVO detail(Long id); + + /** + * 删除巡检计划,删除巡检计划相关的所有信息 + * @param id + * @return + */ + Boolean deletePlanAndRelatives(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanUserService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanUserService.java new file mode 100644 index 0000000..cc7ea60 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IPlanUserService.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.plan.entity.PlanUserEntity; + +/** + * 巡检计划用户模板服务类 + * + * @author Chill + */ +public interface IPlanUserService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IRouteService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IRouteService.java new file mode 100644 index 0000000..f5197c0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/IRouteService.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.plan.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.plan.entity.RouteEntity; + +/** + * 服务类 + * + * @author py + */ +public interface IRouteService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanObjectTemplateServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanObjectTemplateServiceImpl.java new file mode 100644 index 0000000..9dd48ce --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanObjectTemplateServiceImpl.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.plan.entity.PlanObjectTemplateEntity; +import org.springblade.hzinfo_inspect.plan.mapper.PlanObjectTemplateMapper; +import org.springblade.hzinfo_inspect.plan.service.IPlanObjectTemplateService; +import org.springframework.stereotype.Service; + + +/** + * 巡检计划对象模板服务实现类 + * + * @author Chill + */ +@Service +public class PlanObjectTemplateServiceImpl extends BaseServiceImpl implements IPlanObjectTemplateService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanOrgServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanOrgServiceImpl.java new file mode 100644 index 0000000..9484cc1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanOrgServiceImpl.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.plan.entity.PlanOrgEntity; +import org.springblade.hzinfo_inspect.plan.mapper.PlanOrgMapper; +import org.springblade.hzinfo_inspect.plan.service.IPlanOrgService; +import org.springframework.stereotype.Service; + + +/** + * 巡检计划机构服务实现类 + * + * @author Chill + */ +@Service +public class PlanOrgServiceImpl extends BaseServiceImpl implements IPlanOrgService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanPositionServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanPositionServiceImpl.java new file mode 100644 index 0000000..6d0159c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanPositionServiceImpl.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import org.springblade.hzinfo_inspect.plan.entity.PlanPositionEntity; +import org.springblade.hzinfo_inspect.plan.mapper.PlanPositionMapper; +import org.springblade.hzinfo_inspect.plan.service.IPlanPositionService; + +/** + * 巡检计划岗位服务实现类 + * + * @author Chill + */ +@Service +public class PlanPositionServiceImpl extends BaseServiceImpl implements IPlanPositionService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanServiceImpl.java new file mode 100644 index 0000000..b9eb004 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanServiceImpl.java @@ -0,0 +1,546 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.system.feign.ISysClient; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +//import com.hnac.hzims.operational.duty.feign.IDutyClassClient; +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.TemplateEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectService; +import org.springblade.hzinfo_inspect.obj.services.TemplateService; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanTypeEnum; +import org.springblade.hzinfo_inspect.plan.entity.*; +import org.springblade.hzinfo_inspect.plan.mapper.PlanMapper; +import org.springblade.hzinfo_inspect.plan.service.*; +import org.springblade.hzinfo_inspect.plan.vo.PlanObjectTemplateVO; +import org.springblade.hzinfo_inspect.plan.vo.PlanTaskListVO; +import org.springblade.hzinfo_inspect.plan.vo.PlanVO; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.job.service.ITaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.impl.ConcurrentTaskServcie; +import org.springblade.hzinfo_inspect.task.job.service.impl.SeizeTaskService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 巡检计划服务实现类 + * + * @author Chill + */ +@Service +public class PlanServiceImpl extends BaseServiceImpl implements IPlanService { + + @Autowired + private IPlanObjectTemplateService planObjectTemplateService; + @Autowired + private IPlanUserService planUserService; + @Autowired + private IPlanPositionService planPositionService; + @Autowired + private IPlanOrgService planOrgService; + @Autowired + private ObjectService objectService; + @Autowired + private TemplateService templateService; + @Autowired + private ISysClient sysClient; + @Autowired + private ITaskService taskService; +// @Autowired +// private IDutyClassClient dutyClassClient; + + /** + * 任务提醒缓存名字 cacheName + */ +// private static final String TASK_REMIND_CACHE_NAME = "taskRemindCache"; + /** + * 任务开始提醒缓存key cacheName + */ +// private static final String TASK_START_REMIND_KEY = "taskStartRemind"; + /** + * 任务结束提醒缓存key cacheName + */ +// private static final String TASK_END_REMIND_KEY = "taskEndRemind"; + + + + /** + * 删除巡检计划,删除巡检计划相关的所有信息 + * @param id + * @return + */ + @Override + public Boolean deletePlanAndRelatives(Long id){ + taskService.deleteTaskByPlanId(id); + planUserService.remove(Wrappers.lambdaQuery().eq(PlanUserEntity::getPlanId,id)); + planOrgService.remove(Wrappers.lambdaQuery().eq(PlanOrgEntity::getPlanId,id)); + planPositionService.remove(Wrappers.lambdaQuery().eq(PlanPositionEntity::getPlanId,id)); + planObjectTemplateService.remove(Wrappers.lambdaQuery().eq(PlanObjectTemplateEntity::getPlanId,id)); + return remove(Wrappers.lambdaQuery().eq(PlanEntity::getId,id)); + } + + /** + * 保存巡检计划 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public Boolean submit(PlanVO plan){ + checkInputParam(plan); + boolean modify = plan.getId()!=null; + PlanEntity entity = BeanUtil.copy(plan, PlanEntity.class); + //不管是新增还是修改成功后都为待提交状态 + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.PLAN_SUBMIT.getStatus())); + boolean success = this.saveOrUpdate(entity); + if(success){ + plan.setId(entity.getId()); + success = insertPlanRelations(modify,plan); + } + return success; + } + + + /** + * 新增巡检计划 并审核、生成任务 + * @param plan + * @return 返回taskId list + */ + @Transactional(rollbackFor = Exception.class) + @Override + public List addAndChecked(PlanVO plan){ + List taskIds = new ArrayList<>(); + checkInputParam(plan); + boolean modify = plan.getId()!=null; + PlanEntity entity = BeanUtil.copy(plan, PlanEntity.class); + //不管是新增还是修改成功后都为待提交状态 + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.CHECK_STATUS.getStatus())); + boolean success = this.save(entity); + if(success){ + plan.setId(entity.getId()); + success = insertPlanRelations(modify,plan); + if(success){ + taskIds = genPresentTaskReturnTaskId(entity.getId()); + } + } + return taskIds; + } + + /** + * 校验提交参数 + * @param plan + */ + private void checkInputParam(PlanVO plan){ + if(plan.getId()==null && Func.isEmpty(plan.getCode())){ + plan.setCode(CodeUtils.randomCode()); + LocalDate now = LocalDate.now(); + if(plan.getStartTime().isBefore(now)){ + throw new ServiceException("新增计划时开始时间不能早于当前时间"); + } + } + if(plan.getEndTime().isBefore(plan.getStartTime())){ + throw new ServiceException("结束时间不能早于开始时间"); + } + if(!plan.getType().equals(PlanContants.PlanTypeEnum.FREE_TYPE.getType()) && Func.isEmpty(plan.getRouteData())){ + throw new ServiceException("巡检路径数据不能为空"); + } + } + + /** + * 插入巡检计划相关表 + * @param modify 是否是修改 + * @param plan + * @return + */ + private boolean insertPlanRelationsOld(boolean modify,PlanVO plan){ + boolean success = false; + //添加巡检计划对象模板(一个对象在一个计划只能出现一次) + List obtList = plan.getPlanObjectTemplates().stream().filter(objectEntity->objectEntity.getId()==null).collect(Collectors.toList()); + if(obtList.size()>0){ + List planObjectIds = planObjectTemplateService.list(Wrappers.lambdaQuery() + .eq(PlanObjectTemplateEntity::getPlanId,plan.getId())).stream().map(objEntity->objEntity.getObjectId()).distinct().collect(Collectors.toList()); + planObjectIds.addAll(obtList.stream().map(planObjectVO->planObjectVO.getObjectId()).collect(Collectors.toList())); + Set planObjectIdsSet = new HashSet<>(planObjectIds); + boolean repeat = planObjectIds.size()!=planObjectIdsSet.size(); + if(repeat){ + throw new ServiceException("一个对象在一个计划只能出现一次"); + } + List pteList = Lists.newArrayList(); + for(PlanObjectTemplateVO tvo :obtList){ + PlanObjectTemplateEntity pte = PlanObjectTemplateEntity.builder().objectId(tvo.getObjectId()).templateId(tvo.getTemplateId()).planId(plan.getId()).build(); + pte.setId(tvo.getId()); + pteList.add(pte); + } + if(pteList.size()>0){ + success = planObjectTemplateService.saveOrUpdateBatch(pteList); + } + } + if(modify){//修改先要删除 + //巡检计划模式人员 + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().eq(PlanUserEntity::getPlanId, plan.getId()); + planUserService.remove(ew); + //巡检计划模式岗位 + UpdateWrapper ew1 = new UpdateWrapper<>(); + ew1.lambda().eq(PlanPositionEntity::getPlanId, plan.getId()); + planPositionService.remove(ew1); + //巡检计划模式机构 + UpdateWrapper ew2 = new UpdateWrapper<>(); + ew2.lambda().eq(PlanOrgEntity::getPlanId, plan.getId()); + planOrgService.remove(ew2); + } + //巡检计划模式人员 + List uVoList = plan.getPlanUsers(); + if(Func.isNotEmpty(uVoList)){ + List uList = Lists.newArrayList(); + for(Long uId:uVoList){ + uList.add(PlanUserEntity.builder().planId(plan.getId()).userId(uId).build()); + } + if(uList.size()>0){ + success = planUserService.saveBatch(uList); + } + } + + //巡检计划模式岗位 + List pVoList = plan.getPlanPosts(); + if(Func.isNotEmpty(pVoList)){ + List pList = Lists.newArrayList(); + for(Long pId:pVoList){ + pList.add(PlanPositionEntity.builder().planId(plan.getId()).positionId(pId).build()); + } + if(pList.size()>0){ + success = planPositionService.saveBatch(pList); + } + } + + //巡检计划模式机构 + List oVoList = plan.getPlanOrgs(); + if(Func.isNotEmpty(oVoList)){ + List oList = Lists.newArrayList(); + for(Long oId:oVoList){ + oList.add(PlanOrgEntity.builder().planId(plan.getId()).orgId(oId).build()); + } + if(oList.size()>0){ + success = planOrgService.saveBatch(oList); + } + } + return success; + } + + + /** + * 插入巡检计划相关表 + * 对象模板信息来源于路径 + * @param modify 是否是修改 + * @param plan + * @return + */ + public boolean insertPlanRelations(boolean modify,PlanVO plan){ + boolean success = false; + //添加巡检计划对象模板(一个对象在一个计划只能出现一次) + List obtList = new ArrayList<>(); + if(!plan.getType().equals(PlanContants.PlanTypeEnum.FREE_TYPE.getType())){ + if(Func.isNotBlank(plan.getRouteData())){ + JSONArray routeJson = JSON.parseArray(plan.getRouteData()); + int len = routeJson.size(); + for (int i = 0; i < len; i++) { + PlanObjectTemplateEntity pot = new PlanObjectTemplateEntity(); + JSONObject time = routeJson.getJSONObject(i); + pot.setObjectId(Long.valueOf(time.get("objectId").toString())); + pot.setTemplateId(Long.valueOf(time.get("templateId").toString())); + pot.setPlanId(plan.getId()); + obtList.add(pot); + } + } else { + throw new ServiceException("巡检路径数据不能为空"); + } + } + + + if(modify){//修改先要删除 + //巡检计划模式人员 + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().eq(PlanUserEntity::getPlanId, plan.getId()); + planUserService.remove(ew); + //巡检计划模式岗位 + UpdateWrapper ew1 = new UpdateWrapper<>(); + ew1.lambda().eq(PlanPositionEntity::getPlanId, plan.getId()); + planPositionService.remove(ew1); + //巡检计划模式机构 + UpdateWrapper ew2 = new UpdateWrapper<>(); + ew2.lambda().eq(PlanOrgEntity::getPlanId, plan.getId()); + planOrgService.remove(ew2); + //巡检计划对象模板 + UpdateWrapper ew3 = new UpdateWrapper<>(); + ew3.lambda().eq(PlanObjectTemplateEntity::getPlanId, plan.getId()); + planObjectTemplateService.remove(ew3); + + //巡检计划班次 在计划时间json中实现 + } + + //巡检计划对象模板 + planObjectTemplateService.saveBatch(obtList); + + //巡检计划模式人员 + List uVoList = plan.getPlanUsers(); + if(Func.isNotEmpty(uVoList)){ + List uList = Lists.newArrayList(); + for(Long uId:uVoList){ + uList.add(PlanUserEntity.builder().planId(plan.getId()).userId(uId).build()); + } + if(uList.size()>0){ + success = planUserService.saveBatch(uList); + } + } + + //巡检计划模式岗位 + List pVoList = plan.getPlanPosts(); + if(Func.isNotEmpty(pVoList)){ + List pList = Lists.newArrayList(); + for(Long pId:pVoList){ + pList.add(PlanPositionEntity.builder().planId(plan.getId()).positionId(pId).build()); + } + if(pList.size()>0){ + success = planPositionService.saveBatch(pList); + } + } + + //巡检计划模式机构 + List oVoList = plan.getPlanOrgs(); + if(Func.isNotEmpty(oVoList)){ + List oList = Lists.newArrayList(); + for(Long oId:oVoList){ + oList.add(PlanOrgEntity.builder().planId(plan.getId()).orgId(oId).build()); + } + if(oList.size()>0){ + success = planOrgService.saveBatch(oList); + } + } + + if(plan.getType().equals(PlanTypeEnum.CLASS_TYPE.getType()) ){ + success = true; + } + + return success; + } + + /** + * hld 保存巡检计划 + * @param plan + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean submitForHld(PlanVO plan){ + boolean modify = plan.getId()!=null; + PlanEntity entity = BeanUtil.copy(plan, PlanEntity.class); + //不管是新增还是修改成功后都为已审核状态 + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.CHECK_STATUS.getStatus())); + + //临时任务 + if(plan.getPlanType() != null && plan.getPlanType().equals(PlanContants.PlanContentTypeEnum.TEMP.getDesc())){ + /*add for huanglongdai 20190927 生成临时任务*/ + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.FINISH_STATUS.getStatus())); + } else { + entity.setPlanType(PlanContants.PlanContentTypeEnum.COMMON.getDesc()); + if(plan.getTaskFlg() != null && plan.getTaskFlg() == PlanContants.GenTaskImmediateEnum.YES.getFlag()){ + if (plan.getCycle().equals(PlanContants.PlanCycleEnum.NEVER_CYCLE.getCycle())){ + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.FINISH_STATUS.getStatus())); + }else{ + entity.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.UNDERWAY_STATUS.getStatus())); + } + } + } + + boolean success = this.saveOrUpdate(entity); + if(success){ + plan.setId(entity.getId()); + success = insertPlanRelations(modify,plan); + + //立即生成任务 或者 临时任务 hld + if(plan.getTaskFlg() == PlanContants.GenTaskImmediateEnum.YES.getFlag() + || plan.getPlanType().equals(PlanContants.PlanContentTypeEnum.TEMP.getDesc())){ + + ITaskJobService taskJobService = null; + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(SeizeTaskService.class); + }else if(PlanContants.PlanMethodEnum.CONCURRENT.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(ConcurrentTaskServcie.class); + } + taskJobService.sendTask(entity); + } + } + return success; + } + + @Override + public Boolean modifyPlanStatus(Long planId, Integer status){ + boolean re; + LambdaUpdateWrapper uw = new UpdateWrapper().lambda(); + uw.set(PlanEntity::getStatus, status); + if(PlanContants.PlanStatusEnum.CHECK_STATUS.getStatus().equals(String.valueOf(status))|| + PlanContants.PlanStatusEnum.AUTH_STOP.getStatus().equals(String.valueOf(status))){//通过、驳回时需要填审核信息 + uw.set(PlanEntity::getApprover, AuthUtil.getUserId()).set(PlanEntity::getApproveTime, LocalDateTime.now()); + } + uw.eq(PlanEntity::getId, planId); + re = update(uw); + if(re){ + if(PlanContants.PlanStatusEnum.CHECK_STATUS.getStatus().equals(String.valueOf(status))){ + genPresentTask(planId); + } + } + return re; + } + + /** + * 生成当天任务 + * 如果计划开始时间小于等于当天则产生当天任务 + * @param planId 计划id + */ + @Transactional(rollbackFor = Exception.class) + public void genPresentTask(Long planId){ + PlanEntity plan = this.baseMapper.selectById(planId); + //立即生成任务 或者 临时任务 hld + if(plan.getStartTime().isBefore(LocalDate.now()) || plan.getStartTime().isEqual(LocalDate.now()) ){ + ITaskJobService taskJobService = null; + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(SeizeTaskService.class); + }else if(PlanContants.PlanMethodEnum.CONCURRENT.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(ConcurrentTaskServcie.class); + } + taskJobService.sendTask(plan); + plan.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.UNDERWAY_STATUS.getStatus())); + this.baseMapper.updateById(plan); + } + } + + @Transactional(rollbackFor = Exception.class) + public List genPresentTaskReturnTaskId(Long planId){ + List taskIds = new ArrayList<>(); + PlanEntity plan = this.baseMapper.selectById(planId); + //立即生成任务 或者 临时任务 hld + if(plan.getStartTime().isBefore(LocalDate.now()) || plan.getStartTime().isEqual(LocalDate.now()) ){ + ITaskJobService taskJobService = null; + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(SeizeTaskService.class); + }else if(PlanContants.PlanMethodEnum.CONCURRENT.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(ConcurrentTaskServcie.class); + } + taskIds = taskJobService.sendTaskReturnTaskId(plan); + plan.setStatus(Integer.valueOf(PlanContants.PlanStatusEnum.UNDERWAY_STATUS.getStatus())); + this.baseMapper.updateById(plan); + } + return taskIds; + } + + /** + * 查看巡检计划 + * @param id + */ + @Override + public PlanVO detail(Long id){ + PlanEntity entity = this.getById(id); + PlanVO plan = BeanUtil.copy(entity, PlanVO.class); + //巡检计划对象模板 + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(PlanObjectTemplateEntity::getPlanId, id); + List pteList = planObjectTemplateService.list(qw); + if(pteList!=null && pteList.size()>0){ + List objIds = Lists.newArrayList(); + List tmpIds = Lists.newArrayList(); + for(PlanObjectTemplateEntity pote:pteList){ + objIds.add(pote.getObjectId()); + tmpIds.add(pote.getTemplateId()); + } + Map objMap = objectService.listByIds(objIds).stream().collect(Collectors.toMap(ObjectEntity::getId, ObjectEntity::getName)); + Map tmpMap = templateService.listByIds(tmpIds).stream().collect(Collectors.toMap(TemplateEntity::getId, TemplateEntity::getName)); + List planObjectTemplates = Lists.newArrayList(); + for(PlanObjectTemplateEntity pote:pteList){ + planObjectTemplates.add(PlanObjectTemplateVO.builder().id(pote.getId()).objectId(pote.getObjectId()).objectName(objMap.get(pote.getObjectId())) + .templateId(pote.getTemplateId()).templateName(tmpMap.get(pote.getTemplateId())) + .build()); + } + plan.setPlanObjectTemplates(planObjectTemplates); + } + //人员||自由模式 + List planUserNames = Lists.newArrayList(); + List planUserIds = Lists.newArrayList(); + if(PlanTypeEnum.USER_TYPE.getType().equals(plan.getType()) || PlanTypeEnum.FREE_TYPE.getType().equals(plan.getType())){ + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().eq(PlanUserEntity::getPlanId, entity.getId()); + List list = planUserService.list(ew); + list.forEach(e->{ + User user = UserCache.getUser(e.getUserId()); + if(user!=null){ + planUserNames.add(user.getRealName()); + planUserIds.add(user.getId()); + } + }); + } + plan.setPlanUsers(planUserIds); + plan.setPlanUserNames(planUserNames); + //岗位 + List planPostNames = Lists.newArrayList(); + List planPostIds = Lists.newArrayList(); + if(PlanTypeEnum.POSITION_TYPE.getType().equals(plan.getType())){ + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().eq(PlanPositionEntity::getPlanId, entity.getId()); + List list = planPositionService.list(ew); + planPostIds = list.stream().map(e->e.getPositionId()).collect(Collectors.toList()); + String postIds = String.join(",", list.stream().map(e->String.valueOf(e.getPositionId())).collect(Collectors.toList())); + planPostNames.addAll(sysClient.getPostNames(postIds).getData()); + } + plan.setPlanPosts(planPostIds); + plan.setPlanPostNames(planPostNames); + //机构 + List planOrgNames = Lists.newArrayList(); + List planOrgIds = Lists.newArrayList(); + if(PlanTypeEnum.ORG_TYPE.getType().equals(plan.getType())){ + UpdateWrapper ew = new UpdateWrapper<>(); + ew.lambda().eq(PlanOrgEntity::getPlanId, entity.getId()); + List list = planOrgService.list(ew); + planOrgIds = list.stream().map(e->e.getOrgId()).collect(Collectors.toList()); + String orgIds = String.join(",", list.stream().map(e->String.valueOf(e.getOrgId())).collect(Collectors.toList())); + planOrgNames.addAll(sysClient.getDeptNames(orgIds).getData()); + } + plan.setPlanOrgs(planOrgIds); + plan.setPlanOrgNames(planOrgNames); + //值班班次 + /* if(PlanTypeEnum.CLASS_TYPE.getType().equals(plan.getType())){ + PlanClassEntity one = planClassService.getOne(Wrappers.lambdaQuery(PlanClassEntity.class).eq(PlanClassEntity::getPlanId, plan.getId()).last(" limit 1 ")); + plan.setClassName(dutyClassClient.getClassName(one.getClassId())); + plan.setClassId(one.getClassId()); + }*/ + + //任务 + List taskList = taskService.list(Wrappers.lambdaQuery().eq(TaskEntity::getPlanId,plan.getId())); + List planTaskVO = Lists.newArrayList(); + taskList.forEach(entityTask->{ + planTaskVO.add(PlanTaskListVO.builder().taskId(entityTask.getId()).batchNumber(entityTask.getBatchNumber()).planStartTime(entityTask.getPlanStartTime()).planEndTime(entityTask.getPlanEndTime()).status(entityTask.getStatus()).build()); + }); + plan.setTasks(planTaskVO); + return plan; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanUserServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanUserServiceImpl.java new file mode 100644 index 0000000..0b3a08d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/PlanUserServiceImpl.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import org.springblade.hzinfo_inspect.plan.entity.PlanUserEntity; +import org.springblade.hzinfo_inspect.plan.mapper.PlanUserMapper; +import org.springblade.hzinfo_inspect.plan.service.IPlanUserService; + +/** + * 巡检计划用户模板服务实现类 + * + * @author Chill + */ +@Service +public class PlanUserServiceImpl extends BaseServiceImpl implements IPlanUserService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/RouteServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/RouteServiceImpl.java new file mode 100644 index 0000000..1eb0056 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/plan/service/impl/RouteServiceImpl.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.plan.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.plan.entity.RouteEntity; +import org.springblade.hzinfo_inspect.plan.mapper.RouteMapper; +import org.springblade.hzinfo_inspect.plan.service.IRouteService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author py + */ +@Service +public class RouteServiceImpl extends BaseServiceImpl implements IRouteService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/ProblemConstants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/ProblemConstants.java new file mode 100644 index 0000000..daf7b83 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/ProblemConstants.java @@ -0,0 +1,12 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.problem; + +/** + * @author ninglong + * + */ +public interface ProblemConstants { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionFileController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionFileController.java new file mode 100644 index 0000000..670d864 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionFileController.java @@ -0,0 +1,194 @@ +package org.springblade.hzinfo_inspect.problem.controller; + +import io.swagger.annotations.ApiOperation; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.services.InspectionFileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.Date; +import java.util.List; + +/** + * @author h w + * created in 2018/10/20 11:09 + * modified By: + */ +@RestController +@RequestMapping("/inspection/file") +public class InspectionFileController{ + + @Autowired + private InspectionFileService inspectionFileService; + + @Value("${file.upload.path}") + private String fileUploadPath; + + private static final int MAX_SIZE = 1024 * 1024 * 200; + + @RequestMapping(value="/uploadFile", method = {RequestMethod.POST}) + @ApiOperation(notes ="上传单个文件", value = "上传单个文件") + public R addImage(@RequestParam("file") MultipartFile file){ + try { + Object path = inspectionFileService.addFile(file,"inspectInfo"); + if (path!=null) { + return R.data(path); + } else { + return R.fail("操作失败"); + } + }catch (Exception e) { + return R.fail("操作失败"); + } + } + + @RequestMapping(value="/uploadFiles", method = {RequestMethod.POST}) + @ApiOperation(notes ="上传多文件", value = "上传多文件") + public R addFiles(@RequestParam("files") MultipartFile[] files){ + try { + List paths = inspectionFileService.addFiles(files,"inspectInfo"); + if (paths!=null) { + return R.data(paths); + } else { + return R.fail("操作失败"); + } + }catch (Exception e) { + return R.fail("操作失败"); + } + } + + /** + * 巡检文件上传 + * @author hw + * @param uploadFile 文件实例 + * @return 巡检文件对象实例 + */ + @ResponseBody + @RequestMapping(value = "/fileUpload") + public R fileUpload(HttpServletRequest request, @RequestParam(value="file") MultipartFile uploadFile) throws IOException { + request.setCharacterEncoding("utf-8"); + if(uploadFile.getSize() > MAX_SIZE) { + return R.data(500,false, "上传文件大小不能超过200M"); + } + //获得磁盘文件条目工厂 + DiskFileItemFactory factory = new DiskFileItemFactory(); + File file = new File(fileUploadPath); + if(!file.exists()) { + file.mkdirs(); + } + + String path = fileUploadPath + "/inspectInfo"; + File dirFile = new File(path); + if(!dirFile.exists()) { + dirFile.mkdirs(); + } + factory.setRepository(dirFile); + factory.setSizeThreshold(MAX_SIZE); + String fileName = uploadFile.getOriginalFilename(); + fileName = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss") + fileName.substring(fileName.lastIndexOf("."), fileName.length()); + if(!uploadFile.isEmpty()) { + uploadFile.transferTo(new File(path, fileName)); + } + InspectionFile fileInfo = new InspectionFile(); + fileInfo.setCreateTime(new Date()); + fileInfo.setName(uploadFile.getOriginalFilename()); + fileInfo.setFileSource(path + fileName); + fileInfo.setSize(Double.valueOf(uploadFile.getSize())); + InspectionFile res = inspectionFileService.insertInspectionFile(fileInfo); + return R.data(res,"上传成功"); + } + + /** + * 删除已上传文件 + * @author hw + * @param file 文件实例 + * @return 结果整型数 + */ + @ResponseBody + @RequestMapping(value = "/removeFile") + public R removeFile(@RequestBody InspectionFile file) { + file.setWorkspace(fileUploadPath); + int res = inspectionFileService.deleteInspectionFile(file); + return R.data(res,"删除成功"); + } + + /** + * 根据唯一标识查询文件 + * @author hw + * @param file 文件实例 + * @return 结果整型数 + */ + @ResponseBody + @RequestMapping(value = "/getFile") + public R getFile(@RequestBody InspectionFile file) { + InspectionFile res = inspectionFileService.selectInspectionFile(file); + return R.data(res,"查询成功"); + } + + /** + * 根据唯一标识下载文件 + * @author hw + * @param file 文件实例 + * @return + */ + @ResponseBody + @RequestMapping(value = "/downloadFile") + public void downloadFile(HttpServletRequest request, HttpServletResponse response, @RequestBody InspectionFile file) { + InspectionFile res = inspectionFileService.selectInspectionFile(file); + String path = request.getSession().getServletContext().getRealPath(""); + path = path.replaceAll("\\\\", "/"); + path = path.substring(0, path.indexOf("/") + 1); + String filePath = path + res.getFileSource().substring(res.getFileSource().indexOf("/") + 1); + File resFile = new File(filePath); + if(resFile.exists()) { + try { + response.addHeader("Content-disposition", + "attachment;filename=" + new String(res.getName().getBytes("gbk"), "iso8859-1")); + // 定义输出类型 + response.setContentType("octets/stream;rset=UTF-8"); + // 创建输出对象 + ServletOutputStream out = response.getOutputStream(); + // 工作簿输出 + InputStream fis = new BufferedInputStream(new FileInputStream(resFile)); + byte[] buf = new byte[512]; + int len = 0; + while((len = fis.read(buf)) > 0) { + out.write(buf, 0, len); + } + //关闭输入流 + fis.close(); + // 关闭输出流 + out.close(); + }catch (Exception e) { + e.printStackTrace(); + } + } + } + + /** + * 从输入流中获取字节数组 + * @param inputStream + * @return + * @throws IOException + */ + private byte[] readInputStream(InputStream inputStream) throws IOException { + byte[] buffer = new byte[1024]; + int len = 0; + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + while((len = inputStream.read(buffer)) != -1) { + bos.write(buffer, 0, len); + } + bos.close(); + return bos.toByteArray(); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemController.java new file mode 100644 index 0000000..9e7d62d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemController.java @@ -0,0 +1,163 @@ +package org.springblade.hzinfo_inspect.problem.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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 org.springblade.hzinfo_inspect.problem.entity.InspectionProblem; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUserHandle; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemView; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemAttachmentService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemHandleAttachmentService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemUserHandleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * @author h w + * created in 2018/11/2 14:09 + * modified By: + */ +@Controller +@RequestMapping("/inspection/problem") +public class InspectionProblemController extends BladeController { + + @Autowired + private InspectionProblemService ips; + @Autowired + private InspectionProblemUserHandleService ipuhs; + @Autowired + private InspectionProblemAttachmentService ipas; + @Autowired + private InspectionProblemHandleAttachmentService iphas; + + /** + * 获取已处理巡检问题视图列表信息 + * @param ipv 巡检问题视图实例 + * @return 已处理巡检问题视图列表 + */ + @RequestMapping("/getHandledInspectionProblemViewList") + @ResponseBody + public R getHandledInspectionProblemViewList(InspectionProblemView ipv, Query query) { + ipv.setAcceptor(AuthUtil.getUserId()); + ipv.setCreator(AuthUtil.getUserId()); + IPage res = ips.selectHandledInspectionProblemViewList(ipv, Condition.getPage(query)); + return R.data(res,"查询成功"); + } + + /** + * 获取巡检问题视图列表信息 + * @param ipv 巡检问题视图实例 + * @return 巡检问题视图列表 + */ + @RequestMapping("/getInspectionProblemViewList") + @ResponseBody + public R getInspectionProblemViewList(InspectionProblemView ipv, Query query) { + ipv.setAcceptor(AuthUtil.getUserId()); + ipv.setCreator(AuthUtil.getUserId()); + IPage res = ips.selectInspectionProblemViewList(ipv, Condition.getPage(query)); + return R.data(res,"查询成功"); + } + + /** + * 获取巡检问题视图信息 + * @param ipv 巡检问题视图实例 + * @return 巡检问题视图实例 + */ + + @RequestMapping("/getInspectionProblemView") + @ResponseBody + public R getInspectionProblemView(@RequestBody InspectionProblemView ipv) { + InspectionProblemView res = ips.selectInspectionProblemView(ipv); + return R.data(res,"查询成功"); + } + + /** + * 插入巡检问题信息 + * @param ip 巡检问题实例 + * @return 结果整型数 + */ + @RequestMapping("/addInspectionProblem") + @ResponseBody + public R addInspectionProblem(@RequestBody InspectionProblem ip) { + ip.setCreator(AuthUtil.getUserId()); +// ip.setAcceptor(InspectionUserUtils.getCurrentUserInfo(request)); + InspectionProblem res = ips.insertInspectionProblem(ip); + return R.data(res,"插入成功"); + } + + /** + * 更新巡检问题信息 + * @param ip 巡检问题实例 + * @return 结果整型数 + */ + @RequestMapping("/modifyInspectionProblem") + @ResponseBody + public R modifyInspectionProblem(@RequestBody InspectionProblem ip) { + ip.setAcceptor(AuthUtil.getUserId()); + int res = ips.updateInspectionProblem(ip); + return R.data(res,"更新成功"); + } + + /** + * 移除已处理巡检问题信息 + * @param ipuh 已处理巡检问题实例 + * @return 结果整型数 + */ + + @RequestMapping("/removeHandledInspectionProblem") + @ResponseBody + public R removeHandledInspectionProblem(@RequestBody InspectionProblemUserHandle ipuh) { + ipuh.setUserId(AuthUtil.getUserId()); + int res = ipuhs.deleteInspectionProblemUserHandle(ipuh); + return R.data(res,"移除成功"); + } + + /** + * 批量插入巡检问题附件信息 + * @param ids 问题id以及文件id集合 + * @return 结果整型数 + */ + + @RequestMapping("/addInspectionProblemAttachmentBatch") + @ResponseBody + public R addInspectionProblemAttachmentBatch(@RequestBody List ids) { + int res = ipas.insertInspectionProblemAttachmentBatch(ids.get(0), ids.subList(1, ids.size())); + return R.data(res,"新增成功"); + } + + /** + * 批量插入巡检问题处理过程附件信息 + * @param ids 过程id以及文件id集合 + * @return 结果整型数 + */ + + @RequestMapping("/addInspectionProblemHandleAttachmentBatch") + @ResponseBody + public R addInspectionProblemHandleAttachmentBatch(@RequestBody List ids) { + int res = iphas.insertInspectionProblemHandleAttachmentBatch(ids.get(0), ids.subList(1, ids.size())); + return R.data(res,"新增成功"); + } + + /** + * 批量插入巡检问题处理过程附件信息 + * @param ids 过程id以及文件id集合 + * @return 结果整型数 + */ + + @RequestMapping("/addProblemHandleAttachment") + @ResponseBody + public R addProblemHandleAttachment(@RequestBody List ids) { + int res = iphas.addProblemHandleAttachment(ids.get(0), ids.subList(1, ids.size())); + return R.data(res,"新增成功"); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemHandleController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemHandleController.java new file mode 100644 index 0000000..6118db5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/InspectionProblemHandleController.java @@ -0,0 +1,67 @@ +package org.springblade.hzinfo_inspect.problem.controller; + +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandle; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUserHandle; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemHandleService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemUserHandleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @author h w + * created in 2018/11/2 14:09 + * modified By: + */ +@Controller +@RequestMapping("/inspection/handle") +public class InspectionProblemHandleController{ + + + @Autowired + InspectionProblemHandleService problemHandleService; + + @Autowired + InspectionProblemUserHandleService problemUserHandleService; + + /** + * 修改巡检问题处理过程信息 + * @param iph 巡检问题处理过程实例 + * @return 结果整型数 + */ + @RequestMapping("/modifyInspectionProblemHandle") + @ResponseBody + public R modifyInspectionProblemHandle(@RequestBody InspectionProblemHandle iph) { + int res = problemHandleService.updateInspectionProblemHandle(iph); + return R.data(res,"更新成功"); + } + + /** + * 新增已处理巡检问题信息 + * @param ipuh 已处理巡检问题实例 + * @return 结果整型数 + */ + @RequestMapping("/addInspectionProblemUserHandle") + @ResponseBody + public R addInspectionProblemUserHandle(@RequestBody InspectionProblemUserHandle ipuh) { + int res = problemUserHandleService.insertInspectionProblemUserHandle(ipuh); + return R.data(res,"新增成功"); + } + + /** + * 修改已处理巡检问题信息 + * @param ipuh 已处理巡检问题实例 + * @return 结果整型数 + */ + @RequestMapping("/modifyInspectionProblemUserHandle") + @ResponseBody + public R modifyInspectionProblemUserHandle(@RequestBody InspectionProblemUserHandle ipuh) { + int res = problemUserHandleService.updateInspectionProblemUserHandle(ipuh); + return R.data(res,"新增成功"); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/ProblemProcessController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/ProblemProcessController.java new file mode 100644 index 0000000..4bb0478 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/controller/ProblemProcessController.java @@ -0,0 +1,108 @@ +package org.springblade.hzinfo_inspect.problem.controller; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.flow.core.constant.ProcessConstant; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.feign.IFlowClient; +import org.springblade.flow.core.vo.ComleteTask; +import org.springblade.hzinfo_inspect.task.service.IEventAttachmentService; +import org.springblade.hzinfo_inspect.task.service.IEventService; +import org.springblade.system.feign.IDictClient; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.hzinfo_inspect.problem.vo.ProblemVO; +import org.springblade.hzinfo_inspect.task.entity.EventAttachmentEntity; +import org.springblade.hzinfo_inspect.task.entity.EventEntity; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; + + +/** + * @author ninglong + * @create 2020-08-20 19:24 + * 问题处理流程 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/process/problem") +@Api(value = "问题处理流程", tags = "问题处理流程") +public class ProblemProcessController { + + private final IEventService eventService; + private final IEventAttachmentService eventAttachmentService; + private final IDictClient dictBizClient; + private final IFlowClient flowClient; + + + /** + * 查看问题流程详情 + * @param businessId 主键 + */ + @GetMapping("/detail") + @ApiOperation(value = "查看问题流程详情",notes = "查看问题流程详情") + public R detail(Long businessId) { + EventEntity detail = eventService.getById(businessId); + ProblemVO vo = BeanUtil.copy(detail,ProblemVO.class); + if(Func.isNotEmpty(detail.getTypeBig())){ + String typeBig = dictBizClient.getValue("problemType",detail.getTypeBig()).getData(); + String typeSmall = dictBizClient.getValue(detail.getTypeBig(),detail.getTypeSmall()).getData(); + vo.setTypeBig(typeBig); + vo.setTypeSmall(typeSmall); + } + User user = UserCache.getUser(detail.getUserId()); + vo.setUserName(user.getRealName()); + vo.setUserPhone(user.getPhone()); + vo.setEventId(detail.getId()); + vo.setEventTime(detail.getCreateTime()); + List attachments = eventAttachmentService.list(Wrappers.query().lambda().eq(EventAttachmentEntity::getEventId, detail.getId())).stream().map(entity->entity.getFileUrl()).collect(Collectors.toList()); + vo.setAttachments(attachments); + return R.data(vo); + } + + @PostMapping("/handle") + @ApiOperation(value = "处理问题",notes = "处理问题") + public R handle(@RequestBody BladeFlow flow){ + ComleteTask task = new ComleteTask(); + task.setTaskId(flow.getTaskId()); + task.setComment(flow.getComment()); + task.setAttachments(flow.getAttachments()); + task.setFlag(flow.getFlag()); + task.setVariables(flow.getVariables()); + Map map = flow.getVariables(); + + flowClient.completeTask(task); + Integer status = ProcessConstant.ProcessInstanceStatusEnum.running.ordinal(); + R result = flowClient.queryProcessInstanceStatus(flow.getProcessInstanceId()); + if(result.isSuccess()){ + status = ProcessConstant.ProcessInstanceStatusEnum.over.name().equals(result.getData())?ProcessConstant.ProcessInstanceStatusEnum.over.ordinal():status; + } + if(Func.isNotEmpty(map) && Func.isNotEmpty(map.get("typeBig"))){ + eventService.update(Wrappers.lambdaUpdate() + .set(EventEntity::getStatus,status) + .set(EventEntity::getTypeBig, map.get("typeBig")) + .set(EventEntity::getTypeSmall, map.get("typeSmall")) + .eq(EventEntity::getProcessInstanceId,flow.getProcessInstanceId())); + } else { + eventService.update(Wrappers.lambdaUpdate() + .set(EventEntity::getStatus,status) + .eq(EventEntity::getProcessInstanceId,flow.getProcessInstanceId())); + } + + return R.status(true); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionFile.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionFile.java new file mode 100644 index 0000000..2f0427f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionFile.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +import java.util.Date; + +@Data +public class InspectionFile { + private Long id; + private String type; + private String name; + private Double size; + private String workspace; + private String fileSource; + private String fileThumbnail; + private Date createTime; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblem.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblem.java new file mode 100644 index 0000000..9cfec66 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblem.java @@ -0,0 +1,39 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblem { + + private Long id; + private String code; + private String title; + private String description; + private String status; + private Long creator; + private String callPhone; + private String wechat; + private String qq; + private Date createTime; + private String fromSource; + private String typeBig; + private String typeSmall; + private String needFeedback; + private Long orgId; + private Long acceptor; + private Date acceptTime; + private String publicity; + private String address; + private BigDecimal lgtd; + private BigDecimal lttd; + private Long eventId; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemAttachment.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemAttachment.java new file mode 100644 index 0000000..be33efa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemAttachment.java @@ -0,0 +1,16 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblemAttachment { + + private Long problemId; + private Long fileId; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandle.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandle.java new file mode 100644 index 0000000..a3c274c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandle.java @@ -0,0 +1,26 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +import java.util.Date; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblemHandle { + + private Long id; + private Long preId; + private Long afterId; + private Long problemId; + private Long handler; + private String status; + private Date createTime; + private Date acceptTime; + private Date handleTime; + private String opinion; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleAttachment.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleAttachment.java new file mode 100644 index 0000000..b9cb40c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleAttachment.java @@ -0,0 +1,16 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblemHandleAttachment { + + private Long handleId; + private Long fileId; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleView.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleView.java new file mode 100644 index 0000000..a6c88a4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemHandleView.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +import java.util.List; + +/** + * @author h w + * created in 2018/11/28 10:09 + * modified By: + */ +@Data +public class InspectionProblemHandleView extends InspectionProblemHandle { + + private String handlerName; + private List files; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUser.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUser.java new file mode 100644 index 0000000..0424c1b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUser.java @@ -0,0 +1,14 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblemUser { + private Integer problemId; + private Integer acceptor; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUserHandle.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUserHandle.java new file mode 100644 index 0000000..0fc5c47 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemUserHandle.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.problem.entity; + +import lombok.Data; + +import java.util.Date; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Data +public class InspectionProblemUserHandle { + + private Long userId; + private Long problemId; + private Date handleTime; + private Date lastUrgeTime; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemView.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemView.java new file mode 100644 index 0000000..506fb31 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/entity/InspectionProblemView.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.problem.entity; + + +import lombok.Data; + +import java.util.List; + +/** + * @author h w + * created in 2018/11/5 11:09 + * modified By: + */ +@Data +public class InspectionProblemView extends InspectionProblem { + + private String problemBigName; + private String problemSmallName; + private List files; + private List handles; + private String creatorName; + private boolean deal; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.java new file mode 100644 index 0000000..e9c18ed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.java @@ -0,0 +1,57 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; + +/** + * @author h w + * created in 2018/10/29 10:09 + * modified By: + */ +public interface InspectionFileMapper { + + /** + * 插入巡检文件信息 + * @param file 巡检文件的实例 + * @return 结果整型数 + */ + int insertInspectionFile(InspectionFile file); + + /** + * 插入巡检文件信息返回主键ID + * @param file 巡检文件的实例 + * @return 结果整型数 + */ + Integer insertInspectionFileGetKey(InspectionFile file); + + /** + * 根据唯一标识删除巡检文件信息 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 结果整型数 + */ + int deleteInspectionFile(InspectionFile file); + + /** + * 根据唯一标识更新巡检文件信息 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 结果整型数 + */ + int updateInspectionFile(InspectionFile file); + + /** + * 通过唯一标识获取巡检文件信息 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 巡检文件实例 + */ + InspectionFile selectInspectionFile(InspectionFile file); + + /** + * 根据查询条件获取巡检文件列表信息 + * @param file 查询条件 + * @param pageBounds 分页条件 + * @return 巡检文件列表 + */ + IPage selectInspectionFileList(@Param("file") InspectionFile file, IPage pageBounds); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.xml new file mode 100644 index 0000000..cfe5712 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionFileMapper.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + insert into HZ_CM_FILE + (TYPE, NAME, SIZE, WORKSPACE, FILE_SOURCE, FILE_THUMBNAIL, CREATE_TIME) + values + (#{type}, #{name}, #{size}, #{workspace}, #{fileSource}, #{fileThumbnail}, #{createTime}) + + + + insert into HZ_CM_FILE + (TYPE, NAME, SIZE, WORKSPACE, FILE_SOURCE, FILE_THUMBNAIL, CREATE_TIME) + values + (#{type}, #{name}, #{size}, #{workspace}, #{fileSource}, #{fileThumbnail}, #{createTime}) + + + + delete from HZ_CM_FILE + where + + + ID=#{id} + + + and NAME=#{name} + + + 1=2 + + + + update HZ_CM_FILE + + + TYPE=#{type}, + + + NAME=#{name}, + + + SIZE=#{size}, + + + WORKSPACE=#{workspace}, + + + FILE_SOURCE=#{fileSource}, + + + FILE_THUMBNAIL=#{fileThumbnail}, + + + CREATE_TIME=#{createTime}, + + + where ID=#{id} + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.java new file mode 100644 index 0000000..2f7c574 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.java @@ -0,0 +1,57 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemAttachment; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemAttachmentMapper { + + /** + * 插入巡检问题附件信息 + * @param ipa 巡检问题附件的实例 + * @return 结果整型数 + */ + int insertInspectionProblemAttachment(InspectionProblemAttachment ipa); + + /** + * 根据唯一标识删除巡检问题附件信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemAttachment(InspectionProblemAttachment ipa); + + /** + * 根据条件批量删除巡检问题附件信息 + * @param ipa 巡检问题附件的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemAttachmentBatch(InspectionProblemAttachment ipa); + + /** + * 通过唯一标识获取巡检问题附件信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 巡检问题附件实例 + */ + InspectionProblemAttachment selectInspectionProblemAttachment(InspectionProblemAttachment ipa); + + /** + * 通过唯一标识获取巡检问题附件列表信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 巡检问题附件列表 + */ + List selectInspectionProblemAttachmentList(InspectionProblemAttachment ipa); + + /** + * 通过查询条件获取巡检问题附件列表信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 巡检问题附件列表实例 + */ + List selectInspectionFileListByProblem(InspectionProblemAttachment ipa); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.xml new file mode 100644 index 0000000..1b69fdf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemAttachmentMapper.xml @@ -0,0 +1,79 @@ + + + + + + insert into HZ_QU_PROBLEM_ATTACHMENT + (PROBLEM_ID, FILE_ID) + values (#{problemId}, #{fileId}) + + + + delete from HZ_QU_PROBLEM_ATTACHMENT + where 1=2 or ( + + + PROBLEM_ID=#{problemId} and FILE_ID=#{fileId} + + + ) + + + + delete from HZ_QU_PROBLEM_ATTACHMENT + where 1=2 or ( + + + PROBLEM_ID=#{problemId} + + + or FILE_ID=#{fileId} + + + ) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.java new file mode 100644 index 0000000..d77f7e2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.java @@ -0,0 +1,57 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleAttachment; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemHandleAttachmentMapper { + + /** + * 插入巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例 + * @return 结果整型数 + */ + int insertInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + + /** + * 根据唯一标识删除巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + + /** + * 根据条件批量删除巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemHandleAttachmentBatch(InspectionProblemHandleAttachment ipha); + + /** + * 通过唯一标识获取巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 巡检问题处理过程附件实例 + */ + InspectionProblemHandleAttachment selectInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + + /** + * 通过唯一标识获取巡检问题处理过程附件列表 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 巡检问题处理过程附件列表 + */ + List selectInspectionProblemHandleAttachmentList(InspectionProblemHandleAttachment ipha); + + /** + * 通过查询条件获取巡检问题处理过程附件列表信息 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 巡检问题处理过程附件列表实例 + */ + List selectInspectionFileListByHandle(InspectionProblemHandleAttachment ipha); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.xml new file mode 100644 index 0000000..8097aa2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleAttachmentMapper.xml @@ -0,0 +1,79 @@ + + + + + + insert into HZ_QU_HANDLE_ATTACHMENT + (HANDLE_ID, FILE_ID) + values (#{handleId}, #{fileId}) + + + + delete from HZ_QU_HANDLE_ATTACHMENT + where 1=2 or ( + + + HANDLE_ID=#{handleId} and FILE_ID=#{fileId} + + + ) + + + + delete from HZ_QU_HANDLE_ATTACHMENT + where 1=2 or ( + + + HANDLE_ID=#{handleId} + + + or FILE_ID=#{fileId} + + + ) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.java new file mode 100644 index 0000000..3c9726a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.java @@ -0,0 +1,61 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandle; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleView; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemHandleMapper { + + /** + * 插入巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例 + * @return 结果整型数 + */ + int insertInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据唯一标识删除巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 结果整型数 + */ + int deleteInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据唯一标识更新巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 结果整型数 + */ + int updateInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 通过唯一标识获取巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 巡检问题处理过程实例 + */ + InspectionProblemHandle selectInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据条件查询巡检问题处理过程列表信息 + * @param iph 查询条件 + * @param pageBounds 分页条件 + * @return 巡检问题处理过程列表 + */ + IPage selectInspectionProblemHandleList(@Param("iph") InspectionProblemHandle iph, IPage pageBounds); + + /** + * 根据条件查询巡检问题处理过程视图列表信息 + * @param iphv 查询条件 + * @param pageBounds 分页条件 + * @return 巡检问题处理过程视图列表 + */ + IPage selectInspectionProblemHandleViewList(@Param("iphv") InspectionProblemHandleView iphv, IPage pageBounds); + List selectInspectionProblemHandleViewList(@Param("iphv") InspectionProblemHandleView iphv); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.xml new file mode 100644 index 0000000..19e51f2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemHandleMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + insert into HZ_QU_HANDLE + (ID, PRE_ID, AFTER_ID, PROBLEM_ID, HANDLER, CREATE_TIME, ACCEPT_TIME, HANDLE_TIME, OPINION) + values + (#{id}, #{preId}, #{afterId}, #{problemId}, #{handler}, #{createTime}, #{acceptTime}, #{handleTime}, #{opinion}) + + + + delete from HZ_QU_HANDLE + + 1=2 + + + ID=#{id} + + + + + + + update HZ_QU_HANDLE + + + PRE_ID=#{preId}, + + + AFTER_ID=#{afterId}, + + + PROBLEM_ID=#{problemId}, + + + HANDLER=#{handler}, + + + STATUS=#{status}, + + + CREATE_TIME=#{createTime}, + + + ACCEPT_TIME=#{acceptTime}, + + + HANDLE_TIME=#{handleTime}, + + + OPINION=#{opinion}, + + + where ID=#{id} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.java new file mode 100644 index 0000000..da006db --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.java @@ -0,0 +1,66 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblem; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemView; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemMapper { + + /** + * 插入巡检问题信息 + * @param ip 巡检问题的实例 + * @return 结果整型数 + */ + int insertInspectionProblem(InspectionProblem ip); + + /** + * 根据唯一标识删除巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 结果整型数 + */ + int deleteInspectionProblem(InspectionProblem ip); + + /** + * 根据唯一标识更新巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 结果整型数 + */ + int updateInspectionProblem(InspectionProblem ip); + + /** + * 通过唯一标识获取巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 巡检问题实例 + */ + InspectionProblem selectInspectionProblem(InspectionProblem ip); + + /** + * 通过唯一标识获取巡检问题视图信息 + * @param ipv 巡检问题视图的实例(唯一标识有ID CODE) + * @return 巡检问题视图实例 + */ + InspectionProblemView selectInspectionProblemView(InspectionProblemView ipv); + + /** + * 根据条件查询巡检问题视图列表信息 + * @param ipv 查询条件 + * @param page 分页条件 + * @return 巡检问题视图列表 + */ + IPage selectInspectionProblemViewList(@Param("ipv") InspectionProblemView ipv, IPage page); + + /** + * 根据条件查询已处理巡检问题视图列表信息 + * @param ipv 查询条件 + * @param page 分页条件 + * @return 已处理巡检问题视图列表 + */ + IPage selectHandledInspectionProblemViewList(@Param("ipv") InspectionProblemView ipv, IPage page); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.xml new file mode 100644 index 0000000..465d111 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into HZ_QU_PROBLEM + (ID, CODE, TITLE, DESCRIPTION, CREATOR, CALL_PHONE, WECHAT, QQ, CREATE_TIME, FROM_SOURCE, TYPE_BIG, TYPE_SMALL, + NEED_FEEDBACK, ORG_ID, ACCEPTOR, ACCEPT_TIME, PUBLICITY, ADDRESS, LGTD, LTTD,EVENT_ID) + values + (#{id}, #{code}, #{title}, #{description}, #{creator}, #{callPhone}, #{wechat}, #{qq}, #{createTime}, #{fromSource}, + #{typeBig}, #{typeSmall}, #{needFeedback}, #{orgId}, #{acceptor}, #{acceptTime}, #{publicity}, #{address}, #{lgtd}, #{lttd},#{eventId}) + + + + delete from HZ_QU_PROBLEM + + 1=2 + + + ID=#{id} + + + or CODE=#{code} + + + + + + + update HZ_QU_PROBLEM + + + CODE=#{code}, + + + TITLE=#{title}, + + + DESCRIPTION=#{description}, + + + STATUS=#{status}, + + + CREATOR=#{creator}, + + + CALL_PHONE=#{callPhone}, + + + WECHAT=#{wechat}, + + + QQ=#{qq}, + + + CREATE_TIME=#{createTime}, + + + FROM_SOURCE=#{fromSource}, + + + TYPE_BIG=#{typeBig}, + + + TYPE_SMALL=#{typeSmall}, + + + NEED_FEEDBACK=#{needFeedback}, + + + ORG_ID=#{orgId}, + + + ACCEPTOR=#{acceptor}, + + + ACCEPT_TIME=#{acceptTime}, + + + PUBLICITY=#{publicity}, + + + ADDRESS=#{address}, + + + LGTD=#{lgtd}, + + + LTTD=#{lttd}, + + + where ID=#{id} + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.java new file mode 100644 index 0000000..528b28d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.java @@ -0,0 +1,56 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUserHandle; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemUserHandleMapper { + + /** + * 插入巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例 + * @return 结果整型数 + */ + int insertInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 根据唯一标识删除巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 根据条件批量删除巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemUserHandleBatch(InspectionProblemUserHandle ipuh); + + /** + * 根据唯一标识更新巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 结果整型数 + */ + int updateInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 通过唯一标识获取巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 巡检用户已处理问题实例 + */ + InspectionProblemUserHandle selectInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 通过唯一标识获取巡检用户已处理问题列表 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 巡检用户已处理问题列表 + */ + List selectInspectionProblemUserHandleList(InspectionProblemUserHandle ipuh); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.xml new file mode 100644 index 0000000..fbb22c4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserHandleMapper.xml @@ -0,0 +1,74 @@ + + + + + + insert into HZ_QU_USER_HANDLE + (PROBLEM_ID, USER_ID, HANDLE_TIME, LAST_URGE_TIME) + values (#{problemId}, #{userId}, #{handleTime}, #{lastUrgeTime}) + + + + delete from HZ_QU_USER_HANDLE + where 1=2 or ( + + + PROBLEM_ID=#{problemId} and USER_ID=#{userId} + + + ) + + + + delete from HZ_QU_USER_HANDLE + where 1=2 or ( + + + PROBLEM_ID=#{problemId} + + + or USER_ID=#{userId} + + + ) + + + + update HZ_QU_USER_HANDLE + + + HANDLE_TIME=#{handleTime}, + + + LAST_URGE_TIME=#{lastUrgeTime} + + + where PROBLEM_ID=#{problemId} and USER_ID=#{userId} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.java new file mode 100644 index 0000000..1831cf4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.problem.mapper; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUser; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemUserMapper { + + /** + * 插入巡检受理人信息 + * @param ipu 巡检受理人的实例 + * @return 结果整型数 + */ + int insertInspectionProblemUser(InspectionProblemUser ipu); + + /** + * 根据唯一标识删除巡检受理人信息 + * @param ipu 巡检受理人的实例(唯一标识为PROBLEM_ID联合ACCEPTOR) + * @return 结果整型数 + */ + int deleteInspectionProblemUser(InspectionProblemUser ipu); + + /** + * 根据条件批量删除巡检受理人信息 + * @param ipu 巡检受理人的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemUserBatch(InspectionProblemUser ipu); + + /** + * 通过唯一标识获取巡检受理人信息 + * @param ipu 巡检受理人的实例(唯一标识为PROBLEM_ID联合ACCEPTOR) + * @return 巡检受理人实例 + */ + InspectionProblemUser selectInspectionProblemUser(InspectionProblemUser ipu); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.xml new file mode 100644 index 0000000..2b04832 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/mapper/InspectionProblemUserMapper.xml @@ -0,0 +1,45 @@ + + + + + + insert into HZ_QU_ACCEPT_USER + (PROBLEM_ID, ACCEPTOR) + values (#{problemId}, #{acceptor}) + + + + delete from HZ_QU_ACCEPT_USER + where 1=2 or ( + + + PROBLEM_ID=#{problemId} and ACCEPTOR=#{acceptor} + + + ) + + + + delete from HZ_QU_ACCEPT_USER + where 1=2 or ( + + + PROBLEM_ID=#{problemId} + + + or ACCEPTOR=#{acceptor} + + + ) + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionFileService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionFileService.java new file mode 100644 index 0000000..5a2d6d3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionFileService.java @@ -0,0 +1,56 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * @author h w + * created in 2018/10/29 10:09 + * modified By: + */ +public interface InspectionFileService { + + String addFile(MultipartFile file, String childPath); + List addFiles(MultipartFile[] files, String childPath); + /** + * 插入巡检文件信息,当文件为图片时生成缩略图,视频则指定缩略图 + * @param file 巡检文件的实例 + * @return 所插入的巡检文件对象 + * @throws IOException 裁剪缩略图异常时抛出 + */ + InspectionFile insertInspectionFile(InspectionFile file) throws IOException; + + /** + * 根据唯一标识删除巡检文件信息并删除文件 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 结果整型数 + */ + int deleteInspectionFile(InspectionFile file); + + /** + * 根据唯一标识更新巡检文件信息 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 结果整型数 + */ + int updateInspectionFile(InspectionFile file); + + /** + * 通过唯一标识获取巡检文件信息 + * @param file 巡检文件的实例(唯一标识为ID) + * @return 巡检文件实例 + */ + InspectionFile selectInspectionFile(InspectionFile file); + + /** + * 根据查询条件获取巡检文件列表信息 + * @param file 查询条件 + * @param pageBounds 分页条件 + * @return 巡检文件列表 + */ + IPage selectInspectionFileList(InspectionFile file, IPage pageBounds); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemAttachmentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemAttachmentService.java new file mode 100644 index 0000000..474f6dc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemAttachmentService.java @@ -0,0 +1,51 @@ +package org.springblade.hzinfo_inspect.problem.services; + + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemAttachment; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemAttachmentService { + + /** + * 插入巡检问题附件信息 + * @param ipa 巡检问题附件的实例 + * @return 结果整型数 + */ + int insertInspectionProblemAttachment(InspectionProblemAttachment ipa); + + /** + * 批量插入巡检问题附件信息 + * @param problemId 巡检问题id + * @param fileIds 附件id集合 + * @return 结果整型数 + */ + int insertInspectionProblemAttachmentBatch(Long problemId, List fileIds); + + /** + * 根据唯一标识删除巡检问题附件信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemAttachment(InspectionProblemAttachment ipa); + + /** + * 根据条件批量删除巡检问题附件信息 + * @param ipa 巡检问题附件的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemAttachmentBatch(InspectionProblemAttachment ipa); + + /** + * 通过唯一标识获取巡检问题附件信息 + * @param ipa 巡检问题附件的实例(唯一标识为PROBLEM_ID联合FILE_ID) + * @return 巡检问题附件实例 + */ + InspectionProblemAttachment selectInspectionProblemAttachment(InspectionProblemAttachment ipa); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleAttachmentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleAttachmentService.java new file mode 100644 index 0000000..95aacda --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleAttachmentService.java @@ -0,0 +1,54 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleAttachment; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemHandleAttachmentService { + + /** + * 插入巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例 + * @return 结果整型数 + */ + int insertInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + + /** + * 批量插入巡检问题处理过程附件信息 + * @param handleId 过程id + * @param fileIds 附件id集合 + * @return 结果整型数 + */ + int insertInspectionProblemHandleAttachmentBatch(Long handleId, List fileIds); + + int addProblemHandleAttachment(String handleId, List fileIds); + + + + /** + * 根据唯一标识删除巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + + /** + * 根据条件批量删除巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemHandleAttachmentBatch(InspectionProblemHandleAttachment ipha); + + /** + * 通过唯一标识获取巡检问题处理过程附件信息 + * @param ipha 巡检问题处理过程附件的实例(唯一标识为HANDLE_ID联合FILE_ID) + * @return 巡检问题处理过程附件实例 + */ + InspectionProblemHandleAttachment selectInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleService.java new file mode 100644 index 0000000..e801626 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemHandleService.java @@ -0,0 +1,61 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandle; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleView; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemHandleService { + + /** + * 插入巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例 + * @return 结果整型数 + */ + int insertInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据唯一标识删除巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 结果整型数 + */ + int deleteInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据唯一标识更新巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 结果整型数 + */ + int updateInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 通过唯一标识获取巡检问题处理过程信息 + * @param iph 巡检问题处理过程的实例(唯一标识为ID) + * @return 巡检问题处理过程实例 + */ + InspectionProblemHandle selectInspectionProblemHandle(InspectionProblemHandle iph); + + /** + * 根据条件查询巡检问题处理过程列表信息 + * @param iph 查询条件 + * @param pageBounds 分页条件 + * @return 巡检问题处理过程列表 + */ + IPage selectInspectionProblemHandleList(InspectionProblemHandle iph, IPage pageBounds); + + /** + * 根据条件查询巡检问题处理过程视图列表信息 + * @param iphv 查询条件 + * @param pageBounds 分页条件 + * @return 巡检问题处理过程视图列表 + */ + IPage selectInspectionProblemHandleViewList(InspectionProblemHandleView iphv, IPage pageBounds); + List selectInspectionProblemHandleViewList(InspectionProblemHandleView iphv); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemService.java new file mode 100644 index 0000000..27d5d55 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemService.java @@ -0,0 +1,65 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblem; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemView; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemService { + + /** + * 插入巡检问题信息 + * @param ip 巡检问题的实例 + * @return 巡检问题实例 + */ + InspectionProblem insertInspectionProblem(InspectionProblem ip); + + /** + * 根据唯一标识删除巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 结果整型数 + */ + int deleteInspectionProblem(InspectionProblem ip); + + /** + * 根据唯一标识更新巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 结果整型数 + */ + int updateInspectionProblem(InspectionProblem ip); + + /** + * 通过唯一标识获取巡检问题信息 + * @param ip 巡检问题的实例(唯一标识有ID CODE) + * @return 巡检问题实例 + */ + InspectionProblem selectInspectionProblem(InspectionProblem ip); + + /** + * 通过唯一标识获取巡检问题视图信息 + * @param ipv 巡检问题视图的实例(唯一标识有ID CODE) + * @return 巡检问题视图实例 + */ + InspectionProblemView selectInspectionProblemView(InspectionProblemView ipv); + + /** + * 根据条件查询巡检问题视图列表信息 + * @param ipv 查询条件 + * @param pageBounds 分页条件 + * @return 巡检问题视图列表 + */ + IPage selectInspectionProblemViewList(InspectionProblemView ipv, IPage pageBounds); + + /** + * 根据条件查询已处理巡检问题列表信息 + * @param ipv 查询条件 + * @param pageBounds 分页条件 + * @return 已处理巡检问题列表 + */ + IPage selectHandledInspectionProblemViewList(InspectionProblemView ipv, IPage pageBounds); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserHandleService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserHandleService.java new file mode 100644 index 0000000..1433c6c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserHandleService.java @@ -0,0 +1,47 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUserHandle; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemUserHandleService { + + /** + * 插入巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例 + * @return 结果整型数 + */ + int insertInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 根据唯一标识删除巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 结果整型数 + */ + int deleteInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 根据条件批量删除巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemUserHandleBatch(InspectionProblemUserHandle ipuh); + + /** + * 根据唯一标识更新巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 结果整型数 + */ + int updateInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + + /** + * 通过唯一标识获取巡检用户已处理问题信息 + * @param ipuh 巡检用户已处理问题的实例(唯一标识为PROBLEM_ID联合USER_ID) + * @return 巡检用户已处理问题实例 + */ + InspectionProblemUserHandle selectInspectionProblemUserHandle(InspectionProblemUserHandle ipuh); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserService.java new file mode 100644 index 0000000..3ea28d7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/InspectionProblemUserService.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.problem.services; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUser; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +public interface InspectionProblemUserService { + + /** + * 插入巡检受理人信息 + * @param ipu 巡检受理人的实例 + * @return 结果整型数 + */ + int insertInspectionProblemUser(InspectionProblemUser ipu); + + /** + * 根据唯一标识删除巡检受理人信息 + * @param ipu 巡检受理人的实例(唯一标识为PROBLEM_ID联合ACCEPTOR) + * @return 结果整型数 + */ + int deleteInspectionProblemUser(InspectionProblemUser ipu); + + /** + * 根据条件批量删除巡检受理人信息 + * @param ipu 巡检受理人的实例 + * @return 结果整型数 + */ + int deleteInspectionProblemUserBatch(InspectionProblemUser ipu); + + /** + * 通过唯一标识获取巡检受理人信息 + * @param ipu 巡检受理人的实例(唯一标识为PROBLEM_ID联合ACCEPTOR) + * @return 巡检受理人实例 + */ + InspectionProblemUser selectInspectionProblemUser(InspectionProblemUser ipu); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionFileServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionFileServiceImpl.java new file mode 100644 index 0000000..dd8619f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionFileServiceImpl.java @@ -0,0 +1,164 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.io.FileUtils; +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionFileMapper; +import org.springblade.hzinfo_inspect.problem.services.InspectionFileService; +import org.springblade.hzinfo_inspect.problem.utils.PictureHandle; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author h w + * created in 2018/10/29 10:09 + * modified By: + */ +@Service +public class InspectionFileServiceImpl implements InspectionFileService { + + @Autowired + private InspectionFileMapper ifdao; + private static final String PIC_STR = ".bmp.jpg.png.tif.gif.jpeg.wmf"; + private static final String VIDEO_STR = ".avi.rmvb.rm.asf.divx.mpg.mpeg.mpe.wmv.mp4.mkv.vob"; + + @Value("${file.upload.path}") + private String fileUploadPath; + + @Override + public String addFile(MultipartFile file, String childPath) { + MultipartFile[] files=new MultipartFile[1]; + files[0] = file; + return addFiles(files,childPath).get(0); + } + + @Override + public List addFiles(MultipartFile[] files, String childPath){ + List list=new ArrayList<>(); + String dirName = UUID.randomUUID().toString().replace("-", ""); + File uploadPath = new File(fileUploadPath, childPath); + uploadPath = new File(uploadPath, dirName); + try { + if(!uploadPath.exists()){ + uploadPath.mkdirs(); + } + for(MultipartFile file:files){ + saveFile(file, uploadPath); + list.add(File.separator+childPath+File.separator+dirName+File.separator+file.getOriginalFilename()); + } + return list; + }catch (IOException e){ + return list; + } + } + + /** + * 保存文件,如果后期有要求需要处理重名情况 + * + * @param file 待保存的文件 + * @param uploadPath 上传的路径 + * @throws IOException + */ + private void saveFile(MultipartFile file, File uploadPath) throws IOException { + String originalName = file.getOriginalFilename(); + File path = new File(uploadPath, originalName); + if(!path.exists()){ + path.createNewFile(); + } + FileUtils.copyInputStreamToFile(file.getInputStream(), path); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public InspectionFile insertInspectionFile(InspectionFile file) throws IOException { + String suffix = file.getName().substring(file.getName().lastIndexOf(".")); + String filePath = file.getFileSource().substring(0, file.getFileSource().lastIndexOf("/")) + "/pictures"; + if(PIC_STR.indexOf(suffix) != -1) { + file.setType("1"); + File srcFile = new File(file.getFileSource()); + File dirFile = new File(filePath); + if(!dirFile.exists()) { + dirFile.mkdirs(); + } + String fileName = "small_" + file.getFileSource().substring(file.getFileSource().lastIndexOf("/") + 1); + File destFile = new File(dirFile, fileName); + PictureHandle.resizeFix(srcFile, destFile, 120, 90); + file.setFileSource("files" + file.getFileSource().substring(file.getFileSource().indexOf("/"))); + filePath = "files" + filePath.substring(filePath.indexOf("/")); + file.setFileThumbnail(filePath + "/" + fileName); + }else if(VIDEO_STR.indexOf(suffix) != -1) { + file.setType("2"); + file.setFileSource("files" + file.getFileSource().substring(file.getFileSource().indexOf("/"))); + file.setFileThumbnail(file.getFileSource().substring(0, file.getFileSource().indexOf("/")) + "/upload/upload/video.jpg"); + }else { + file.setType("3"); + file.setFileSource("files" + file.getFileSource().substring(file.getFileSource().indexOf("/"))); + } + if(fileUploadPath != null && !"".equals(fileUploadPath)) { + if(fileUploadPath.endsWith("/") && fileUploadPath.startsWith("/")) { + file.setFileThumbnail(file.getFileThumbnail().replace(fileUploadPath, "/")); + file.setFileSource(file.getFileSource().replace(fileUploadPath, "/")); + }else { + file.setFileThumbnail(file.getFileThumbnail().replace(fileUploadPath, "")); + file.setFileSource(file.getFileSource().replace(fileUploadPath, "")); + } + } + ifdao.insertInspectionFile(file); + return ifdao.selectInspectionFile(file); + } + + @Override + public int deleteInspectionFile(InspectionFile file) { + String sourceDir = file.getWorkspace(); + file = ifdao.selectInspectionFile(file); + if(file.getFileSource() != null) { + File delFile = new File(sourceDir + file.getFileSource().substring(file.getFileSource().indexOf("/"))); + if(delFile.exists()) { + delFile.delete(); + } + } + if(file.getFileThumbnail() != null) { + File delFile = new File(sourceDir + file.getFileThumbnail().substring(file.getFileThumbnail().indexOf("/"))); + if(delFile.exists()) { + delFile.delete(); + } + } + return ifdao.deleteInspectionFile(file); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int updateInspectionFile(InspectionFile file) { + if(file == null) { +// throw new HZException("208", "该巡检文件数据不存在"); + return -1; + } + InspectionFile temp = ifdao.selectInspectionFile(file); + if(temp == null) { +// throw new HZException("208", "该巡检文件数据不存在"); + return -2; + } + file.setId(temp.getId()); + return ifdao.updateInspectionFile(file); + } + + @Override + public InspectionFile selectInspectionFile(InspectionFile file) { + return ifdao.selectInspectionFile(file); + } + + @Override + public IPage selectInspectionFileList(InspectionFile file, IPage pageBounds) { + return ifdao.selectInspectionFileList(file, pageBounds); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemAttachmentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemAttachmentServiceImpl.java new file mode 100644 index 0000000..94ee511 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemAttachmentServiceImpl.java @@ -0,0 +1,56 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemAttachmentMapper; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemAttachment; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemAttachmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemAttachmentServiceImpl implements InspectionProblemAttachmentService { + + @Autowired + private InspectionProblemAttachmentMapper ipadao; + + @Override + public int insertInspectionProblemAttachment(InspectionProblemAttachment ipa) { + return ipadao.insertInspectionProblemAttachment(ipa); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int insertInspectionProblemAttachmentBatch(Long problemId, List fileIds) { + int res = 0; + for (Long fileId : fileIds) { + InspectionProblemAttachment temp = new InspectionProblemAttachment(); + temp.setProblemId(problemId); + temp.setFileId(fileId); + res += ipadao.insertInspectionProblemAttachment(temp); + } + return res; + } + + @Override + public int deleteInspectionProblemAttachment(InspectionProblemAttachment ipa) { + return ipadao.deleteInspectionProblemAttachment(ipa); + } + + @Override + public int deleteInspectionProblemAttachmentBatch(InspectionProblemAttachment ipa) { + return ipadao.deleteInspectionProblemAttachmentBatch(ipa); + } + + @Override + public InspectionProblemAttachment selectInspectionProblemAttachment(InspectionProblemAttachment ipa) { + return ipadao.selectInspectionProblemAttachment(ipa); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleAttachmentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleAttachmentServiceImpl.java new file mode 100644 index 0000000..6ffcbb4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleAttachmentServiceImpl.java @@ -0,0 +1,78 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionFileMapper; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemHandleAttachmentMapper; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleAttachment; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemHandleAttachmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemHandleAttachmentServiceImpl implements InspectionProblemHandleAttachmentService { + + @Autowired + private InspectionProblemHandleAttachmentMapper iphadao; + + @Autowired + InspectionFileMapper inspectionFileMapper; + + @Override + public int insertInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha) { + return iphadao.insertInspectionProblemHandleAttachment(ipha); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int insertInspectionProblemHandleAttachmentBatch(Long handleId, List fileIds) { + int res = 0; + for (Long fileId : fileIds) { + InspectionProblemHandleAttachment temp = new InspectionProblemHandleAttachment(); + temp.setHandleId(handleId); + temp.setFileId(fileId); + res += iphadao.insertInspectionProblemHandleAttachment(temp); + } + return res; + } + + @Override + public int addProblemHandleAttachment(String handleId, List fileIds) { + int res = 0; + for (String fileUrl : fileIds) { + InspectionFile param = new InspectionFile(); + param.setCreateTime(new Date()); + param.setFileSource(fileUrl); + inspectionFileMapper.insertInspectionFile(param); + InspectionProblemHandleAttachment temp = new InspectionProblemHandleAttachment(); + temp.setHandleId(Long.valueOf(handleId)); + temp.setFileId(param.getId()); + res += iphadao.insertInspectionProblemHandleAttachment(temp); + } + return res; + } + + @Override + public int deleteInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha) { + return iphadao.deleteInspectionProblemHandleAttachment(ipha); + } + + @Override + public int deleteInspectionProblemHandleAttachmentBatch(InspectionProblemHandleAttachment ipha) { + return iphadao.deleteInspectionProblemHandleAttachmentBatch(ipha); + } + + @Override + public InspectionProblemHandleAttachment selectInspectionProblemHandleAttachment(InspectionProblemHandleAttachment ipha) { + return iphadao.selectInspectionProblemHandleAttachment(ipha); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleServiceImpl.java new file mode 100644 index 0000000..be2efa6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemHandleServiceImpl.java @@ -0,0 +1,133 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemMapper; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemHandleAttachmentMapper; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemHandleMapper; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblem; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandle; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleAttachment; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemHandleView; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemHandleService; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemHandleServiceImpl implements InspectionProblemHandleService { + + @Autowired + private InspectionProblemHandleMapper iphdao; + @Autowired + private InspectionProblemMapper ipdao; + @Autowired + private InspectionProblemHandleAttachmentMapper iphadao; + + @Autowired + IUserClient userClient; + + private static final String HANDLED_STATUS = "2"; + + @Override + public int insertInspectionProblemHandle(InspectionProblemHandle iph) { + return iphdao.insertInspectionProblemHandle(iph); + } + + @Override + public int deleteInspectionProblemHandle(InspectionProblemHandle iph) { + return iphdao.deleteInspectionProblemHandle(iph); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int updateInspectionProblemHandle(InspectionProblemHandle iph) { + if(iph == null) { +// throw new HZException("208", "该巡检问题处理过程数据不存在"); + return -1; + } + InspectionProblemHandle temp = iphdao.selectInspectionProblemHandle(iph); + if(temp == null) { +// throw new HZException("208", "该巡检问题处理过程数据不存在"); + return -2; + } + if(iph.getHandler() != null) { + InspectionProblemHandle nextHandle = null; + if(HANDLED_STATUS.equals(iph.getStatus())) { + nextHandle = new InspectionProblemHandle(); + nextHandle.setPreId(iph.getId()); + nextHandle.setProblemId(temp.getProblemId()); + nextHandle.setCreateTime(new Date()); + nextHandle.setHandler(iph.getHandler()); + nextHandle.setAcceptTime(new Date()); + iphdao.insertInspectionProblemHandle(nextHandle); + nextHandle = iphdao.selectInspectionProblemHandle(nextHandle); + } + iph.setAfterId(nextHandle.getId()); + iph.setHandleTime(new Date()); + iph.setHandler(null); + iphdao.updateInspectionProblemHandle(iph); + InspectionProblem ip = new InspectionProblem(); + ip.setId(iph.getProblemId()); + ip.setStatus("2"); + return ipdao.updateInspectionProblem(ip); + }else { + iph.setHandleTime(new Date()); + return iphdao.updateInspectionProblemHandle(iph); + } + } + + @Override + public InspectionProblemHandle selectInspectionProblemHandle(InspectionProblemHandle iph) { + return iphdao.selectInspectionProblemHandle(iph); + } + + @Override + public IPage selectInspectionProblemHandleList(InspectionProblemHandle iph, IPage pageBounds) { + return iphdao.selectInspectionProblemHandleList(iph, pageBounds); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public IPage selectInspectionProblemHandleViewList(InspectionProblemHandleView iphv, IPage pageBounds) { + IPage res = iphdao.selectInspectionProblemHandleViewList(iphv, pageBounds); + for (InspectionProblemHandleView inspectionProblemHandleView : res.getRecords()) { + if(inspectionProblemHandleView.getHandler() != null) { + R userRes=userClient.userInfoById(inspectionProblemHandleView.getHandler()); + if(userRes != null && userRes.getData()!=null) { + inspectionProblemHandleView.setHandlerName(userRes.getData().getName()); + } + InspectionProblemHandleAttachment ipha = new InspectionProblemHandleAttachment(); + ipha.setHandleId(inspectionProblemHandleView.getId()); + inspectionProblemHandleView.setFiles(iphadao.selectInspectionFileListByHandle(ipha)); + } + } + return res; + } + + @Override + public List selectInspectionProblemHandleViewList(InspectionProblemHandleView param) { + List list=iphdao.selectInspectionProblemHandleViewList(param); + for(InspectionProblemHandleView view:list) { + R userRes = userClient.userInfoById(view.getHandler()); + if (userRes != null && userRes.getData() != null) { + view.setHandlerName(userRes.getData().getName()); + } + InspectionProblemHandleAttachment ipha = new InspectionProblemHandleAttachment(); + ipha.setHandleId(view.getId()); + view.setFiles(iphadao.selectInspectionFileListByHandle(ipha)); + } + return list; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemServiceImpl.java new file mode 100644 index 0000000..a0060f1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemServiceImpl.java @@ -0,0 +1,166 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemAttachmentMapper; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemMapper; +import org.springblade.hzinfo_inspect.problem.entity.*; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemHandleService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemService; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemUserHandleService; +import org.springblade.hzinfo_inspect.problem.utils.CodeUtils; +import org.springblade.system.cache.DictCache; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemServiceImpl implements InspectionProblemService { + + @Autowired + private InspectionProblemMapper ipdao; + @Autowired + private InspectionProblemHandleService iphs; + @Autowired + private InspectionProblemUserHandleService ipuhs; + @Autowired + private InspectionProblemAttachmentMapper ipadao; + + @Autowired + IUserClient userClient; + + + private static final String FINISH_STATUS = "9"; + + @Override + @Transactional(rollbackFor = Exception.class) + public InspectionProblem insertInspectionProblem(InspectionProblem ip) { + if(ip.getCode() == null) { + ip.setCode(CodeUtils.randomCode()); + } + ip.setCreateTime(new Date()); + ip.setAcceptTime(new Date()); + ip.setStatus("1"); + ipdao.insertInspectionProblem(ip); + ip = ipdao.selectInspectionProblem(ip); + InspectionProblemHandle iph = new InspectionProblemHandle(); + iph.setProblemId(ip.getId()); + iph.setHandler(ip.getAcceptor()); + iph.setCreateTime(new Date()); + iph.setAcceptTime(new Date()); + iphs.insertInspectionProblemHandle(iph); + return ip; + } + + @Override + public int deleteInspectionProblem(InspectionProblem ip) { + return ipdao.deleteInspectionProblem(ip); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int updateInspectionProblem(InspectionProblem ip) { + if(ip == null) { +// throw new HZException("208", "该巡检问题数据不存在"); + return -1; + } + InspectionProblem temp = ipdao.selectInspectionProblem(ip); + if(temp == null) { +// throw new HZException("208", "该巡检问题数据不存在"); + return -2; + } + if(FINISH_STATUS.equals(ip.getStatus())) { + InspectionProblemUserHandle ipuh = new InspectionProblemUserHandle(); + ipuh.setProblemId(temp.getId()); + ipuh.setUserId(ip.getAcceptor()); + ipuh.setHandleTime(new Date()); + if(ipuhs.selectInspectionProblemUserHandle(ipuh) == null) { + ipuhs.insertInspectionProblemUserHandle(ipuh); + } + } + ip.setAcceptor(null); + return ipdao.updateInspectionProblem(ip); + } + + @Override + public InspectionProblem selectInspectionProblem(InspectionProblem ip) { + return ipdao.selectInspectionProblem(ip); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public InspectionProblemView selectInspectionProblemView(InspectionProblemView ipv) { + InspectionProblemView res = ipdao.selectInspectionProblemView(ipv); + if(res.getTypeBig() != null && !res.getTypeBig().isEmpty() && res.getTypeSmall() != null && !res.getTypeSmall().isEmpty()) { + String bigName=DictCache.getValue("problemType",res.getTypeBig()); + res.setProblemBigName(bigName); + String smallName=DictCache.getValue("typeSmall",res.getTypeSmall()); + res.setProblemSmallName(smallName); + } + InspectionProblemHandleView temp = new InspectionProblemHandleView(); + temp.setProblemId(res.getId()); + List handles = iphs.selectInspectionProblemHandleViewList(temp); + res.setHandles(handles); + InspectionProblemAttachment ipa = new InspectionProblemAttachment(); + ipa.setProblemId(res.getId()); + res.setFiles(ipadao.selectInspectionFileListByProblem(ipa)); + R userR=userClient.userInfoById(res.getCreator()); + if(userR!=null && userR.getData()!=null) { + res.setCreatorName(userR.getData().getName()); + } + return res; + } + + @Override + public IPage selectInspectionProblemViewList(InspectionProblemView ipv, IPage pageBounds) { + IPage res = ipdao.selectInspectionProblemViewList(ipv, pageBounds); + return distributeHandles(res); + } + + @Override + public IPage selectHandledInspectionProblemViewList(InspectionProblemView ipv, IPage pageBounds) { + IPage res = ipdao.selectHandledInspectionProblemViewList(ipv, pageBounds); + return distributeHandles(res); + } + + /** + * 加载问题的处理过程列表 + */ + private IPage distributeHandles(IPage problems) { + for (InspectionProblemView problem : problems.getRecords()) { + if(problem != null) { + InspectionProblemHandleView temp = new InspectionProblemHandleView(); + temp.setProblemId(problem.getId()); + List handles = iphs.selectInspectionProblemHandleViewList(temp); + problem.setHandles(handles); + InspectionProblemAttachment ipa = new InspectionProblemAttachment(); + ipa.setProblemId(problem.getId()); + problem.setFiles(ipadao.selectInspectionFileListByProblem(ipa)); + R userR=userClient.userInfoById(problem.getCreator()); + if(userR!=null && userR.getData()!=null) { + problem.setCreatorName(userR.getData().getName()); + } + + problem.setDeal(false); + Long acceptor=problem.getAcceptor(); + Long userId=AuthUtil.getUserId(); + if(acceptor!=null && userId!=null && acceptor.longValue() == userId.longValue()){ + problem.setDeal(true); + } + } + } + return problems; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserHandleServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserHandleServiceImpl.java new file mode 100644 index 0000000..7704ba3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserHandleServiceImpl.java @@ -0,0 +1,58 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemUserHandleMapper; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUserHandle; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemUserHandleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemUserHandleServiceImpl implements InspectionProblemUserHandleService { + + @Autowired + private InspectionProblemUserHandleMapper ipuhdao; + + @Override + public int insertInspectionProblemUserHandle(InspectionProblemUserHandle ipuh) { + ipuh.setHandleTime(new Date()); + return ipuhdao.insertInspectionProblemUserHandle(ipuh); + } + + @Override + public int deleteInspectionProblemUserHandle(InspectionProblemUserHandle ipuh) { + return ipuhdao.deleteInspectionProblemUserHandle(ipuh); + } + + @Override + public int deleteInspectionProblemUserHandleBatch(InspectionProblemUserHandle ipuh) { + return ipuhdao.deleteInspectionProblemUserHandleBatch(ipuh); + } + + @Override + public int updateInspectionProblemUserHandle(InspectionProblemUserHandle ipuh) { + if(ipuh == null) { +// throw new HZException("208", "该巡检用户已处理问题数据不存在"); + return -1; + } + InspectionProblemUserHandle temp = ipuhdao.selectInspectionProblemUserHandle(ipuh); + if(temp == null) { +// throw new HZException("208", "该巡检用户已处理问题数据不存在"); + return -2; + } + ipuh.setLastUrgeTime(new Date()); + return ipuhdao.updateInspectionProblemUserHandle(ipuh); + } + + @Override + public InspectionProblemUserHandle selectInspectionProblemUserHandle(InspectionProblemUserHandle ipuh) { + return ipuhdao.selectInspectionProblemUserHandle(ipuh); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserServiceImpl.java new file mode 100644 index 0000000..360955c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/services/impl/InspectionProblemUserServiceImpl.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.problem.services.impl; + +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemUserMapper; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemUser; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author h w + * created in 2018/10/26 10:09 + * modified By: + */ +@Service +public class InspectionProblemUserServiceImpl implements InspectionProblemUserService { + + @Autowired + private InspectionProblemUserMapper ipudao; + + @Override + public int insertInspectionProblemUser(InspectionProblemUser ipu) { + return ipudao.insertInspectionProblemUser(ipu); + } + + @Override + public int deleteInspectionProblemUser(InspectionProblemUser ipu) { + return ipudao.deleteInspectionProblemUser(ipu); + } + + @Override + public int deleteInspectionProblemUserBatch(InspectionProblemUser ipu) { + return ipudao.deleteInspectionProblemUserBatch(ipu); + } + + @Override + public InspectionProblemUser selectInspectionProblemUser(InspectionProblemUser ipu) { + return ipudao.selectInspectionProblemUser(ipu); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/CodeUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/CodeUtils.java new file mode 100644 index 0000000..018c39b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/CodeUtils.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.problem.utils; + +import java.util.Calendar; +import java.util.Random; + +public class CodeUtils { + public static String randomCode() { + Calendar calendar = Calendar.getInstance(); + String code = "" + calendar.get(1) + (calendar.get(2) + 1) + calendar.get(5) + calendar.get(11) + calendar.get(12) + calendar.get(13); + code = code + (new Random()).nextInt(99); + return code; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/PictureHandle.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/PictureHandle.java new file mode 100644 index 0000000..3255f42 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/utils/PictureHandle.java @@ -0,0 +1,165 @@ +package org.springblade.hzinfo_inspect.problem.utils; + +/** + * @author hw + * 上传图片生成缩略图工具类 + */ + +import org.apache.commons.io.FileUtils; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +public class PictureHandle { + public static void resizeFix(File srcFile, File destFile, int width, int height) throws IOException { + new PictureHandle(srcFile, destFile, width, height); + } + + public static void resizeFix(BufferedImage bufImg, File destFile, int width, int height) throws IOException { + new PictureHandle(bufImg, destFile, width, height); + } + + private int width; + private int height; + private int zoomWidth; + private int zoomHeight; + private File destFile; + private BufferedImage srcBufferImage; + + protected PictureHandle(File srcFile, File destFile, int zoomWidth, int zoomHeight) throws IOException { + this.destFile = destFile; + this.zoomWidth = zoomWidth; + this.zoomHeight = zoomHeight; + this.srcBufferImage = ImageIO.read(srcFile); + this.width = this.srcBufferImage.getWidth(); + this.height = this.srcBufferImage.getHeight(); + if (width <= zoomWidth && height <= zoomHeight) { + FileUtils.copyFile(srcFile, destFile); + } else { + resizeFix(); + } + } + + protected PictureHandle(BufferedImage srcBufferImage, File destFile, int zoomWidth, int zoomHeight) throws IOException { + this.destFile = destFile; + this.zoomWidth = zoomWidth; + this.zoomHeight = zoomHeight; + this.srcBufferImage = srcBufferImage; + this.width = this.srcBufferImage.getWidth(); + this.height = this.srcBufferImage.getHeight(); + resizeFix(); + } + + /** + * 压缩图片 + * + * @throws IOException + */ + protected void resizeFix() throws IOException { + if (width <= zoomWidth && height <= zoomHeight) { + resize(width, height); + } else if ((float) width / height > (float) zoomWidth / zoomHeight) { + resize(zoomWidth, Math.round((float) zoomWidth * height / width)); + } else { + resize(Math.round((float) zoomHeight * width / height), zoomHeight); + } + } + + private void resize(int w, int h) throws IOException { + BufferedImage imgBuf = scaleImage(w, h); + File parent = destFile.getParentFile(); + if (!parent.exists()) { + parent.mkdirs(); + } + ImageIO.write(imgBuf, "jpeg", destFile); + } + + private BufferedImage scaleImage(int outWidth, int outHeight) { + int[] rgbArray = srcBufferImage.getRGB(0, 0, width, height, null, 0, width); + BufferedImage pbFinalOut = new BufferedImage(outWidth, outHeight, BufferedImage.TYPE_INT_RGB); + double hScale = ((double) width) / ((double) outWidth);// 宽缩小的倍数 + double vScale = ((double) height) / ((double) outHeight);// 高缩小的倍数 + + int winX0, winY0, winX1, winY1; + int valueRGB = 0; + long R, G, B; + int x, y, i, j; + int n; + for (y = 0; y < outHeight; y++) { + winY0 = (int) (y * vScale + 0.5);// 得到原图高的Y坐标 + if (winY0 < 0) { + winY0 = 0; + } + winY1 = (int) (winY0 + vScale + 0.5); + if (winY1 > height) { + winY1 = height; + } + for (x = 0; x < outWidth; x++) { + winX0 = (int) (x * hScale + 0.5); + if (winX0 < 0) { + winX0 = 0; + } + winX1 = (int) (winX0 + hScale + 0.5); + if (winX1 > width) { + winX1 = width; + } + R = 0; + G = 0; + B = 0; + for (i = winX0; i < winX1; i++) { + for (j = winY0; j < winY1; j++) { + valueRGB = rgbArray[width * j + i]; + R += getRedValue(valueRGB); + G += getGreenValue(valueRGB); + B += getBlueValue(valueRGB); + } + } + n = (winX1 - winX0) * (winY1 - winY0); + R = (int) (((double) R) / n + 0.5); + G = (int) (((double) G) / n + 0.5); + B = (int) (((double) B) / n + 0.5); + valueRGB = comRGB(clip((int) R), clip((int) G), clip((int) B)); + pbFinalOut.setRGB(x, y, valueRGB); + } + } + return pbFinalOut; + } + + private int clip(int x) { + if (x < 0) + return 0; + if (x > 255) + return 255; + return x; + } + + private int getRedValue(int rgbValue) { + int temp = rgbValue & 0x00ff0000; + return temp >> 16; + } + + private int getGreenValue(int rgbValue) { + int temp = rgbValue & 0x0000ff00; + return temp >> 8; + } + + private int getBlueValue(int rgbValue) { + return rgbValue & 0x000000ff; + } + + private int comRGB(int redValue, int greenValue, int blueValue) { + + return (redValue << 16) + (greenValue << 8) + blueValue; + } + +// public static void main(String[] args) throws IOException { +// long start = System.currentTimeMillis(); +// File file1 = new File("D:/upload/2017/10/13/1.png"); +// File file2 = new File("D:/upload/2017/10/13/2.png"); +// PictureHandle.resizeFix(file1, file2, 120, 90); +// long end = System.currentTimeMillis(); +// System.out.println("success:" + (end - start)); +// } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/vo/ProblemVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/vo/ProblemVO.java new file mode 100644 index 0000000..99c8595 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/problem/vo/ProblemVO.java @@ -0,0 +1,88 @@ +package org.springblade.hzinfo_inspect.problem.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @author ninglong + * @create 2020-08-20 19:44 + */ +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ProblemVO implements Serializable { + + @ApiModelProperty(value = "事件id") + private Long eventId; + /** + * 事件描述 + */ + @ApiModelProperty(value = "事件描述") + private String description; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "登记时间") + private Date eventTime; + + /** + * 事件登记人 + */ + @ApiModelProperty(value = "事件登记人") + private String userName; + + /** + * 事件登记人电话 + */ + @ApiModelProperty(value = "事件登记人电话") + private String userPhone; + + /** + * 问题类型 + */ + @ApiModelProperty(value = "问题类型") + private String typeBig; + /** + * 问题子类 + */ + @ApiModelProperty(value = "问题子类") + private String typeSmall; + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal lttd; + /** + * 事件地点 + */ + @ApiModelProperty(value = "事件地点") + private String address; + /** + * 流程实例id + */ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + @ApiModelProperty(value = "巡检事件附件link") + @Builder.Default + private List attachments = Lists.newArrayList(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/controller/InspectReportController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/controller/InspectReportController.java new file mode 100644 index 0000000..ab5a819 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/controller/InspectReportController.java @@ -0,0 +1,137 @@ +package org.springblade.hzinfo_inspect.report.controller; + +import com.alibaba.druid.support.json.JSONUtils; +import com.alibaba.excel.EasyExcel; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; +import org.springblade.hzinfo_inspect.report.entity.InspectMonthReportExcel; +import org.springblade.hzinfo_inspect.report.entity.MonthRoutReport; +import org.springblade.hzinfo_inspect.report.service.InspectReportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: py + */ +@RestController +@AllArgsConstructor +@RequestMapping("/report") +@Api(value = "巡检报表", tags = "巡检报表") +public class InspectReportController { + + private InspectReportService irs; + + @RequestMapping(value = "/getInspectMonthReport", method = { RequestMethod.POST,RequestMethod.GET }) + @ApiOperation(notes = "子站-巡检月报表接口-按路径", value = "针对巡检月报表页") + public R> getInspectMonthReport( + @ApiParam(value = "年月 2019-02") @RequestParam(required = true) String month, + @ApiParam(value = "巡检路径id") @RequestParam(required = true) Long routId, + @ApiParam(value = "用户id,不传参则查询当前登录用户,查询全部用户传 -1") @RequestParam(required = false) Long userId) { + if(Func.isEmpty(userId)){ + userId = AuthUtil.getUserId(); + } + if(userId.equals(-1L)){ + userId = null; + } + return R.data(irs.getMonthReport(month, routId, userId)); + } + + + @ApiOperation(value = "子站-按月巡检报表导出-Excel") + @RequestMapping(value = "/exportMonthExcel", method = {RequestMethod.GET, RequestMethod.POST}) + public void exportMonthExcel(HttpServletResponse response, + @ApiParam(value = "年月 2019-02") @RequestParam(required = true) String month, + @ApiParam(value = "巡检路径id") @RequestParam(required = false) Long routId, + @ApiParam(value = "用户id,不传参则查询当前登录用户,查询全部用户传 -1") @RequestParam(required = false) Long userId) { + if(Func.isEmpty(userId)){ + userId = AuthUtil.getUserId(); + } + if(userId.equals(-1L)){ + userId = null; + } + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + String fileName = URLEncoder.encode(month + "巡检月报", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + List datas = irs.getExcelByMonth(month, routId, userId); + if(datas!=null && datas.size()>0){ + System.out.println("---------------- size = " + datas.size()); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), InspectMonthReportExcel.class).autoCloseStream(Boolean.FALSE).sheet(month +"巡检详情") + .doWrite(datas); + } + } catch (Exception e) { + System.out.println("exportExcel = " + e.toString()); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("success", "false"); + map.put("msg", "按月巡检详细信息导出失败" + e.getMessage()); + try { + response.getWriter().println(JSONUtils.toJSONString(map)); + } catch (IOException e3) { + throw new ServiceException( "发生异常 :" + e.toString()); + } + } + } + + @RequestMapping(value = "/getInspectMonthReportGather", method = { RequestMethod.POST}) + @ApiOperation(notes = "集控站 —— 巡检月报表接口", value = "集控站 —— 针对巡检月报表页") + public R> getInspectMonthReportGather(@Valid @RequestBody TaskGatherQueryVO vo) { + return R.data(irs.getMonthReportGather(vo)); + } + + + @ApiOperation(value = "集控站 —— 按月巡检报表导出-Excel") + @RequestMapping(value = "/exportMonthExcelGather", method = { RequestMethod.POST}) + public void exportMonthExcelGather(HttpServletResponse response, @Valid @RequestBody TaskGatherQueryVO vo) { + + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + String fileName = URLEncoder.encode(vo.getMonth() + "巡检月报", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + List datas = irs.getExcelByMonthGather(vo); + if(datas!=null && datas.size()>0){ + System.out.println("---------------- size = " + datas.size()); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), InspectMonthReportExcel.class).autoCloseStream(Boolean.FALSE).sheet(vo.getMonth() +"巡检详情") + .doWrite(datas); + } + } catch (Exception e) { + System.out.println("exportExcel = " + e.toString()); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("success", "false"); + map.put("msg", "集控站按月巡检详细信息导出失败" + e.getMessage()); + try { + response.getWriter().println(JSONUtils.toJSONString(map)); + } catch (IOException e3) { + throw new ServiceException( "发生异常 :" + e.toString()); + } + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/InspectMonthReportExcel.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/InspectMonthReportExcel.java new file mode 100644 index 0000000..5e44bdc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/InspectMonthReportExcel.java @@ -0,0 +1,44 @@ +package org.springblade.hzinfo_inspect.report.entity; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.*; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import org.apache.poi.ss.usermodel.FillPatternType; + +import java.util.Date; + +/** + * @Author: py + */ +@ApiModel(value = "巡检月报-Excel-导出") +@Data +@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 22) +@HeadRowHeight(45) +@ColumnWidth(20) +@ContentRowHeight(80) +@ContentStyle(wrapped = true) +public class InspectMonthReportExcel { + + @ExcelProperty(value = "用户名称", index = 0) + private String userName; + + @ExcelProperty(value = "路径名称", index = 1) + private String routeName; + + @ExcelProperty(value = "执行时间", index = 2) + private String time; + + @ExcelProperty(value = "任务次数", index = 3) + private Long taskNum; + + @ExcelProperty(value = "过检次数", index = 4) + private Long overNum; + + @ExcelProperty(value = "漏检次数", index = 5) + private Long missingNum; + + @ExcelProperty(value = "问题数", index = 6) + private Long problemNum; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/MonthRoutReport.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/MonthRoutReport.java new file mode 100644 index 0000000..c0de91c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/entity/MonthRoutReport.java @@ -0,0 +1,16 @@ +package org.springblade.hzinfo_inspect.report.entity; + + +import lombok.Data; + +/** + * 月报表 + * 按路径筛选 返回项 + */ +@Data +public class MonthRoutReport { + private Long taskNum ; // 任务次数 + private Long overNum ; // 过检次数 + private Long missingNum; // 漏检次数 + private Long problemNum; // 问题数 +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/feigns/InspectReportClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/feigns/InspectReportClient.java new file mode 100644 index 0000000..546516d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/feigns/InspectReportClient.java @@ -0,0 +1,24 @@ +package org.springblade.hzinfo_inspect.report.feigns; + +import org.springblade.hzinfo_inspect.report.feign.IInspectReportClient; +import org.springblade.hzinfo_inspect.report.service.InspectReportService; +import org.springblade.hzinfo_inspect.report.vo.AlarmRoutReportVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +public class InspectReportClient implements IInspectReportClient { + + @Autowired + private InspectReportService inspectReportService; + + @PostMapping(GET_ALARAM_REPORT) + @Override + public Map getAlarmReport(List depts, String date) { + return inspectReportService.getAlarnReport(date,depts); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.java new file mode 100644 index 0000000..12edb03 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.report.mapper; + + +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.report.vo.AlarmTaskGatherReportVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.annotation.UserDataAuth; + +import java.util.List; + + +@Mapper +public interface InspectReportMapper { + + /** + * 根据月份路径查询 任务含问题数 + * + * @param month + * @param routId + * @return + */ + @UserDataAuth + List getMonthTask( + @Param("month") String month, + @Param("routId") Long routId, + @Param("userId") Long userId + ); + + /** + * 根据月份路径查询 任务含问题数 + * + * @param date + * @param list + * @return + */ + List getTaskByDateAndDept(@Param("date") String date, @Param("list") List list); + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.xml new file mode 100644 index 0000000..adef646 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/mapper/InspectReportMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/InspectReportService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/InspectReportService.java new file mode 100644 index 0000000..f1db9d9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/InspectReportService.java @@ -0,0 +1,52 @@ +package org.springblade.hzinfo_inspect.report.service; + +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; +import org.springblade.hzinfo_inspect.report.entity.InspectMonthReportExcel; +import org.springblade.hzinfo_inspect.report.entity.MonthRoutReport; +import org.springblade.hzinfo_inspect.report.vo.AlarmRoutReportVO; + +import java.util.List; +import java.util.Map; + +public interface InspectReportService { + + /** + * 月度巡检报表 + * @param month 年月 2019-02 + * @param routId 路径id ,如果为空则不进行路径筛选 + * @param userId 用户id,如果为空则不进行用户筛选 + * @return 返回每个月的 巡检次数,缺陷数、漏检次数、过检次数 + */ + Map getMonthReport(String month, Long routId, Long userId); + + /** + * @param date 年月日 2021-10-28 + * @return 返回每个月的 巡检次数,缺陷数、漏检次数、过检次数 + */ + Map getAlarnReport(String date, List depts); + + + /** + * 获取按月导出数据 + * @param month 年月 2019-02 + * @param routId + * @param userId 用户id,如果为空则不进行用户筛选 + * @return + */ + List getExcelByMonth(String month, Long routId, Long userId); + + /** + * 集控站 —— 月度巡检报表 + * @param queryVo + * @return 返回每个月的 巡检次数,缺陷数、漏检次数、过检次数 + */ + Map getMonthReportGather(TaskGatherQueryVO queryVo); + + /** + * 集控站 —— 获取按月导出数据 + * @param queryVo + * @return + */ + List getExcelByMonthGather(TaskGatherQueryVO queryVo); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/imp/InspectReportServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/imp/InspectReportServiceImpl.java new file mode 100644 index 0000000..26a3503 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/service/imp/InspectReportServiceImpl.java @@ -0,0 +1,273 @@ +package org.springblade.hzinfo_inspect.report.service.imp; + +import org.springblade.hzinfo_inspect.gather.entity.TaskGatherEntity; +import org.springblade.hzinfo_inspect.gather.service.ITaskGatherService; +import org.springblade.hzinfo_inspect.gather.vo.TaskGatherQueryVO; +import org.springblade.hzinfo_inspect.plan.entity.RouteEntity; +import org.springblade.hzinfo_inspect.plan.service.IRouteService; +import org.springblade.hzinfo_inspect.report.entity.InspectMonthReportExcel; +import org.springblade.hzinfo_inspect.report.entity.MonthRoutReport; +import org.springblade.hzinfo_inspect.report.mapper.InspectReportMapper; +import org.springblade.hzinfo_inspect.report.service.InspectReportService; +import org.springblade.hzinfo_inspect.report.vo.AlarmRoutReportVO; +import org.springblade.hzinfo_inspect.report.vo.AlarmTaskGatherReportVO; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.user.cache.UserCache; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class InspectReportServiceImpl implements InspectReportService { + + @Autowired + private InspectReportMapper inspectReportMapper; + @Autowired + private IRouteService routeService; + @Autowired + private ITaskGatherService taskGatherService; + + + @Override + public Map getMonthReport(String month, Long routId, Long userId) { + //拿到当月所有含问题数的巡检任务 + List tasks = inspectReportMapper.getMonthTask(month, routId, userId); + return getCollectionNum(tasks); + } + + @Override + public Map getAlarnReport(String date, List depts) { + //拿到当日所有含问题数的巡检任务 + List tasks = inspectReportMapper.getTaskByDateAndDept(date, depts); + return getAlarmInfoCollectionNum(tasks); + } + + /** + * 获取按月导出数据 + * + * @param month 年月 2019-02 + * @return + */ + @Override + public List getExcelByMonth(String month, Long routId, Long userId) { + List result = new ArrayList<>(); + String routeName; + if (Func.isNotEmpty(routId)) { + RouteEntity route = routeService.getById(routId); + routeName = Func.isNotEmpty(route) ? route.getRouteName() : ""; + } else { + routeName = "全部"; + } + + Map reportMap = getMonthReport(month, routId, userId); + for (Map.Entry entry : reportMap.entrySet()) { + InspectMonthReportExcel reportExcel = new InspectMonthReportExcel(); + if (Func.isEmpty(userId)) { + reportExcel.setUserName("全部"); + } else { + reportExcel.setUserName(UserCache.getUser(userId).getName()); + } + reportExcel.setRouteName(routeName); + reportExcel.setTime(entry.getKey()); + reportExcel.setMissingNum(entry.getValue().getMissingNum()); + reportExcel.setOverNum(entry.getValue().getOverNum()); + reportExcel.setProblemNum(entry.getValue().getProblemNum()); + reportExcel.setTaskNum(entry.getValue().getTaskNum()); + result.add(reportExcel); + } + return result; + } + + /** + * 集控站用 + * + * @param queryVo + * @return + */ + @Override + public Map getMonthReportGather(TaskGatherQueryVO queryVo) { + //拿到当月所有含问题数的巡检任务 + List tasks = taskGatherService.getMonthTask(queryVo); + return getCollectionNum(tasks); + } + + /** + * 获取任务统计数据: 任务数 、过检次数、漏检次数、问题数 + * + * @param + * @param tasks + */ + private Map getCollectionNum(List tasks) { + Map resultMap = new HashMap<>(); + if (Func.isNotEmpty(tasks)) { + //任务数 + Map taskNums = + tasks.stream().collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + //过检次数 + Map overNums = tasks.stream() + .filter(task -> { + boolean re = false; + if (task.getStartTime() != null && LocalDateTime.now().isAfter(task.getPlanEndTime())) { + if (task.getEndTime() == null || task.getEndTime().isAfter(task.getPlanEndTime())) { + re = true; + } + } + return re; + }) + .collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + //漏检次数 + Map missingNums = tasks.stream() + .filter(task -> (task.getStartTime() == null && LocalDateTime.now().isAfter(task.getPlanStartTime()))) + .collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + // 问题数 + Map problemNums = + tasks.stream().collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime + , Collectors.summingLong(TaskGatherEntity::getProblemNum))); + + for (Map.Entry entry : taskNums.entrySet()) { + String key = entry.getKey(); + MonthRoutReport report = new MonthRoutReport(); + report.setTaskNum(entry.getValue()); + report.setMissingNum(missingNums.getOrDefault(key, 0L)); + report.setOverNum(overNums.getOrDefault(key, 0L)); + report.setProblemNum(problemNums.getOrDefault(key, 0L)); + resultMap.put(key, report); + } + } + return resultMap; + } + + /** + * 获取告警信息任务统计数据: 过检次数、漏检次数 + * + * @param + * @param tasks + */ + private Map getAlarmInfoCollectionNum(List tasks) { + Map resultMap = new HashMap<>(); + if (Func.isNotEmpty(tasks)) { + + List deptList = tasks.stream().map(AlarmTaskGatherReportVO::getDept).collect(Collectors.toList()); + //过检次数 + Map overNums = tasks.stream() + .filter(task -> { + boolean re = false; + if (task.getStartTime() != null && LocalDateTime.now().isAfter(task.getPlanEndTime())) { + if (task.getEndTime() == null || task.getEndTime().isAfter(task.getPlanEndTime())) { + re = true; + } + } + return re; + }) + .collect(Collectors.groupingBy(AlarmTaskGatherReportVO::getDept, Collectors.counting())); + + //漏检次数 + Map missingNums = tasks.stream() + .filter(task -> (task.getStartTime() == null && LocalDateTime.now().isAfter(task.getPlanStartTime()))) + .collect(Collectors.groupingBy(AlarmTaskGatherReportVO::getDept, Collectors.counting())); + + //Map> collect = tasks.stream().filter(task -> task.getStartTime() == null && LocalDateTime.now().isAfter(task.getPlanStartTime())).collect(Collectors.groupingBy(TaskGatherEntity::getCreateDept)); + + for (int i = 0; i < deptList.size(); i++) { + Long deptId = deptList.get(i); + AlarmRoutReportVO vo = new AlarmRoutReportVO(); + boolean bool = false; + Long orDefault = overNums.getOrDefault(deptId, 0L); + if(orDefault > 0){ + bool = true; + vo.setOverNum(orDefault); + } + Long orDefault1 = missingNums.getOrDefault(deptId, 0L); + if(orDefault1 > 0){ + bool = true; + vo.setMissingNum(orDefault1); + } + if(bool){ + resultMap.put(deptId,vo); + } + } + + } + return resultMap; + } + + /** + * 集控站用 + * + * @param queryVo + * @return + */ + @Override + public List getExcelByMonthGather(TaskGatherQueryVO queryVo) { + List result = new ArrayList<>(); + String routeName = "全部", userName = "全部"; + + //拿到当月所有含问题数的巡检任务 + List tasks = taskGatherService.getMonthTask(queryVo); + if (Func.isNotEmpty(tasks)) { + if (Func.isNotEmpty(queryVo.getRoutId())) { + routeName = tasks.stream() + .filter(s -> s.getRouteId().equals(queryVo.getRoutId())) + .findFirst() + .get().getRouteName(); + } + + if (Func.isNotEmpty(queryVo.getUserId())) { + userName = tasks.stream() + .filter(s -> s.getUserId().equals(queryVo.getUserId())) + .findFirst() + .get().getUserName(); + } + + //任务数 + Map taskNums = + tasks.stream().collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + //过检次数 + Map overNums = tasks.stream() + .filter(task -> { + boolean re = false; + if (task.getStartTime() != null && LocalDateTime.now().isAfter(task.getPlanEndTime())) { + if (task.getEndTime() == null || task.getEndTime().isAfter(task.getPlanEndTime())) { + re = true; + } + } + return re; + }) + .collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + //漏检次数 + Map missingNums = tasks.stream() + .filter(task -> (task.getStartTime() == null && LocalDateTime.now().isAfter(task.getPlanStartTime()))) + .collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime, Collectors.counting())); + + // 问题数 + Map problemNums = + tasks.stream().collect(Collectors.groupingBy(TaskGatherEntity::getStrPlanStartTime + , Collectors.summingLong(TaskGatherEntity::getProblemNum))); + + for (Map.Entry entry : taskNums.entrySet()) { + String key = entry.getKey(); + InspectMonthReportExcel reportExcel = new InspectMonthReportExcel(); + reportExcel.setUserName(userName); + reportExcel.setRouteName(routeName); + reportExcel.setTime(key); + reportExcel.setMissingNum(missingNums.getOrDefault(key, 0L)); + reportExcel.setOverNum(overNums.getOrDefault(key, 0L)); + reportExcel.setProblemNum(problemNums.getOrDefault(key, 0L)); + reportExcel.setTaskNum(entry.getValue()); + result.add(reportExcel); + } + } + return result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/vo/InspectReportQueryVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/vo/InspectReportQueryVo.java new file mode 100644 index 0000000..0f18004 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/report/vo/InspectReportQueryVo.java @@ -0,0 +1,27 @@ +package org.springblade.hzinfo_inspect.report.vo; + +import lombok.Data; + +/** + * 巡检报表查询vo + * @Author: py + */ +@Data +public class InspectReportQueryVo { + /** + * 年月 2019-02 + */ + private String month; + + /** + * 路径id ,如果为空则不进行路径筛选 + */ + private Long routId; + + /** + * 用户id,如果为空则不进行用户筛选 + */ + private Long userId; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/controller/DangerSourceController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/controller/DangerSourceController.java new file mode 100644 index 0000000..9a12adb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/controller/DangerSourceController.java @@ -0,0 +1,96 @@ +package org.springblade.hzinfo_inspect.safeproduct.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.hzinfo_inspect.safeproduct.dto.DangerSourceDTO; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.service.IDangerSourceService; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceVO; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + + +/** + * @author xiashandong + * @created 2020/9/1 15:15 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/dangerSource") +@Api(tags = "危险源") +public class DangerSourceController extends BladeController { + + private final IDangerSourceService dangerSourceService; + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 10) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(dangerSourceService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 20) + @ApiOperation(value = "新增", notes = "传入dangerSource") + public R save(@RequestBody DangerSourceDTO req) { + req.setTenantId(AuthUtil.getTenantId()); + return dangerSourceService.doSave(req); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 30) + @ApiOperation(value = "修改", notes = "传入dangerSource") + public R update(@RequestBody DangerSourceDTO req) { + return dangerSourceService.doUpdate(req); + } + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 40) + @ApiOperation(value = "详情", notes = "传入dangerSource") + public R detail(@RequestParam Long id) { + return dangerSourceService.detail(id); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 50) + @ApiOperation(value = "分页", notes = "查询条件:eqId,level,dangerEle,applyType,type") + public R> list(DangerSourceEntity req, Query query) { + req.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + return dangerSourceService.pageCondition(req, query); + } + + /** + * 导入数据 + */ + @ApiOperation(value = "导入Excel") + @ApiOperationSupport(order = 70) + @PostMapping(value = "/importExcel") + public R importExcel(MultipartFile file) { + dangerSourceService.importExcel(file); + return R.data(true); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourceDTO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourceDTO.java new file mode 100644 index 0000000..2f5c566 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourceDTO.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.safeproduct.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; + +/** + * @author xiashandong + * @created 2020/9/1 15:16 + **/ +@Data +@EqualsAndHashCode(callSuper = true) +public class DangerSourceDTO extends DangerSourceEntity { + + private static final long serialVersionUID = 1L; + + private DangerSourcePositionDTO position; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourcePositionDTO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourcePositionDTO.java new file mode 100644 index 0000000..7de1658 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/dto/DangerSourcePositionDTO.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.safeproduct.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourcePositionEntity; + +/** + * @author xiashandong + * @created 2020/9/1 15:19 + **/ +@Data +@EqualsAndHashCode(callSuper = true) +public class DangerSourcePositionDTO extends DangerSourcePositionEntity { + + private static final long serialVersionUID = 1L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckItemEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckItemEnum.java new file mode 100644 index 0000000..66bb199 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckItemEnum.java @@ -0,0 +1,35 @@ +package org.springblade.hzinfo_inspect.safeproduct.enums; + +/** + * 检查项(初始化数据,固定不能修改) + */ +public enum CheckItemEnum { + WORK_TICKET("工作票合格率", "开票数:%s张,合格率:%s%%"), + OPERATION_TICKET("操作票合格率", "开票数:%s张,合格率:%s%%"), + SUCCESSION("交接班制度执行", "交接班次数:%s次,正常交接班率:%s%%"), + REGULAR_TEST_CHECK("定期开展试验检查工作", "设备试验次数:%s次"), + STAFF_CIRCUIT("运行人员巡回检查扫码", "执行次数:%s次"), + MANAGER_CIRCUIT("管理及其他人员巡回检查扫码", "执行次数:%s次"), + QUARTER_CHECK("每季度开展一次安全大检查自查", "否"), + MAJOR_DEFECTS("重大缺陷", "重大缺陷:%s个,消缺率:%s%%"), + GENERAL_DEFECTS("一般缺陷", "一般缺陷:%s个,消缺率:%s%%"), + REGULAR_MAINTAIN("定期维护", "%s次"), + REGULAR_SERVICE("定期检修", "%s次"); + + private String name; + private String value; + + CheckItemEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getValue() { + return value; + } + + public String getName() { + return name; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckStatusEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckStatusEnum.java new file mode 100644 index 0000000..03c641b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/CheckStatusEnum.java @@ -0,0 +1,48 @@ +package org.springblade.hzinfo_inspect.safeproduct.enums; + +import org.springblade.core.tool.utils.StringUtil; + + +/** + * 检查状态 + */ +public enum CheckStatusEnum { + NOT_SUBMIT(1, "暂存"), + SUBMIT(2, "已提交"), + PASS(3, "核查通过"), + NOT_PASS(4, "核查不通过"); + + private int value; + private String name; + + CheckStatusEnum(int value, String name) { + this.value = value; + this.name = name; + } + + public int getValue() { + return value; + } + + public String getName() { + return name; + } + + public static String getName(int value) { + for (CheckStatusEnum item : CheckStatusEnum.values()) { + if (value == item.getValue()) { + return item.getName(); + } + } + return ""; + } + + public static Integer getValue(String name) { + for (CheckStatusEnum item : CheckStatusEnum.values()) { + if (StringUtil.equals(name, item.getName())) { + return item.getValue(); + } + } + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/DangerSourceLevelEnum.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/DangerSourceLevelEnum.java new file mode 100644 index 0000000..1175705 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/enums/DangerSourceLevelEnum.java @@ -0,0 +1,50 @@ +package org.springblade.hzinfo_inspect.safeproduct.enums; + +import org.springblade.core.tool.utils.StringUtil; + +/** + * 危险源等级Enum + * + * @author xiashandong + * @created 2020/9/1 15:34 + **/ +public enum DangerSourceLevelEnum { + _10(10, "稍有危险"), + _20(20, "一般危险"), + _30(30, "显著危险"), + _40(40, "高度危险"); + + private int value; + private String name; + + DangerSourceLevelEnum(int value, String name) { + this.value = value; + this.name = name; + } + + public int getValue() { + return value; + } + + public String getName() { + return name; + } + + public static String getName(int value) { + for (DangerSourceLevelEnum item : DangerSourceLevelEnum.values()) { + if (value == item.getValue()) { + return item.getName(); + } + } + return ""; + } + + public static Integer getValue(String name) { + for (DangerSourceLevelEnum item : DangerSourceLevelEnum.values()) { + if (StringUtil.equals(name, item.getName())) { + return item.getValue(); + } + } + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/excel/DangerSourceSaveExcel.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/excel/DangerSourceSaveExcel.java new file mode 100644 index 0000000..6443fda --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/excel/DangerSourceSaveExcel.java @@ -0,0 +1,63 @@ +package org.springblade.hzinfo_inspect.safeproduct.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author xiashandong + * @created 2020/9/7 9:15 + **/ +@Setter +@Getter +public class DangerSourceSaveExcel { + + @ExcelProperty(value = "应用类型",index = 0) + private String applyTypeName; + + /** + * 危险源类型 1=作业活动 2=设备 + */ + @ExcelProperty(value = "危险源类型(1:作业活动 2:设备)",index = 1) + private String typeName; + + @ExcelProperty(value = "风险等级",index = 2) + private String levelName; + private Integer level; + +// @ExcelProperty(value = "设备ID",index = 3) +// private String equName; + +// @ExcelProperty(value = "危险源名称",index = 4) +// private String name; + + @ExcelProperty(value = "危险源名称",index = 3) + private String name; + + @ExcelProperty(value = "危险因素", index = 4) + private String dangerEle; +// @ExcelProperty(value = "危险因素", index = 5) +// private String dangerEle; + +// @ExcelProperty(value = "经度", index = 6) +// private Double lgtd; + +// @ExcelProperty(value = "纬度", index = 7) +// private Double lttd; + +// @ExcelProperty(value = "平面图左边距", index = 8) +// private Double paddingLeft; + +// @ExcelProperty(value = "平面图顶部距离", index = 9) +// private Double paddingTop; + +// @ExcelProperty(value = "可能导致的事故",index = 10) +// private String cause; + @ExcelProperty(value = "可能导致的事故",index = 5) + private String cause; + +// @ExcelProperty(value = "措施",index = 11) +// private String measures; + @ExcelProperty(value = "措施",index = 6) + private String measures; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/DangerSourceClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/DangerSourceClient.java new file mode 100644 index 0000000..f3ca469 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/feign/DangerSourceClient.java @@ -0,0 +1,57 @@ +package org.springblade.hzinfo_inspect.safeproduct.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; +import org.apache.commons.lang.ArrayUtils; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.service.IDangerSourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 危险源API接口 + * + * @author xiashandong + * @created 2021/5/21 11:09 + **/ +@RestController +@AllArgsConstructor +public class DangerSourceClient implements IDangerSourceClient { + + @Autowired + private final IDangerSourceService service; + + @Override + @GetMapping(DETAILS) + public List details(@RequestParam String[] ids) { + List resp = service.listByIds(Arrays.asList(ids)); + + //未查到数据返回空集合 + if (CollectionUtils.isEmpty(resp)) { + return new ArrayList<>(); + } + //查到数据则将数据排序后再返回 + else { + Map sortCondition = Arrays.stream(ids).collect(Collectors.toMap(o -> o, o -> ArrayUtils.lastIndexOf(ids, o))); + resp.stream().sorted((o1, o2) -> sortCondition.get(o2) - sortCondition.get(o1)); + return resp; + } + } + + @GetMapping(LIST_BY_DEPT_ID) + @Override + public List listByDeptId(String deptId) { + return service.list(new LambdaQueryWrapper() {{ + eq(DangerSourceEntity::getCreateDept, Long.valueOf(deptId)); + }}); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.java new file mode 100644 index 0000000..d7bedeb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceLevelRecordEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceLevelRecordVO; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface DangerSourceLevelRecordMapper extends UserDataScopeBaseMapper { + + IPage pageCondition(@Param("page") DangerSourceLevelRecordEntity page, IPage query); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.xml new file mode 100644 index 0000000..b8a95b5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceLevelRecordMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.java new file mode 100644 index 0000000..c5ee991 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.java @@ -0,0 +1,21 @@ +package org.springblade.hzinfo_inspect.safeproduct.mapper; + +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceReportVO; + +import java.util.List; + +/** + * @author xiashandong + * @created 2020/9/1 15:27 + **/ +public interface DangerSourceMapper extends UserDataScopeBaseMapper { + + /** + * 危险等级统计数 + * @return + */ + List getLevelCount(); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.xml new file mode 100644 index 0000000..158fa11 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourceMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.java new file mode 100644 index 0000000..da93b8c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.safeproduct.mapper; + +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourcePositionEntity; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface DangerSourcePositionMapper extends UserDataScopeBaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.xml new file mode 100644 index 0000000..d19c0a6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/mapper/DangerSourcePositionMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/IDangerSourceService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/IDangerSourceService.java new file mode 100644 index 0000000..e96ec8a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/IDangerSourceService.java @@ -0,0 +1,37 @@ +package org.springblade.hzinfo_inspect.safeproduct.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.hzinfo_inspect.safeproduct.dto.DangerSourceDTO; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceReportVO; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceVO; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * @author xiashandong + * @created 2020/9/1 16:00 + **/ +public interface IDangerSourceService extends BaseService { + + R doSave(DangerSourceDTO req); + + R doUpdate(DangerSourceDTO req); + + R detail(Long id); + + R> pageCondition(DangerSourceEntity req, Query query); + + void importExcel(MultipartFile file); + + /** + * 危险等级统计数 + * @return + */ + List getLevelCount(); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/impl/DangerSourceServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/impl/DangerSourceServiceImpl.java new file mode 100644 index 0000000..12d0cad --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/service/impl/DangerSourceServiceImpl.java @@ -0,0 +1,273 @@ +package org.springblade.hzinfo_inspect.safeproduct.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.excel.support.ExcelException; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +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.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.hzinfo_inspect.safeproduct.constants.DictConstants; +import org.springblade.hzinfo_inspect.safeproduct.dto.DangerSourceDTO; +import org.springblade.hzinfo_inspect.safeproduct.dto.DangerSourcePositionDTO; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceLevelRecordEntity; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourcePositionEntity; +import org.springblade.hzinfo_inspect.safeproduct.enums.DangerSourceLevelEnum; +import org.springblade.hzinfo_inspect.safeproduct.excel.DangerSourceSaveExcel; +import org.springblade.hzinfo_inspect.safeproduct.mapper.DangerSourceLevelRecordMapper; +import org.springblade.hzinfo_inspect.safeproduct.mapper.DangerSourceMapper; +import org.springblade.hzinfo_inspect.safeproduct.mapper.DangerSourcePositionMapper; +import org.springblade.hzinfo_inspect.safeproduct.service.IDangerSourceService; +import org.springblade.hzinfo_inspect.safeproduct.util.ExcelToolListener; +import org.springblade.hzinfo_inspect.safeproduct.util.ExcelUtil; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourcePositionVO; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceReportVO; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceVO; +import org.springblade.hzinfo_inspect.safeproduct.wrapper.DangerSourcePostionWrapper; +import org.springblade.hzinfo_inspect.safeproduct.wrapper.DangerSourceWrapper; +import org.springblade.system.cache.DictCache; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Date; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author xiashandong + * @created 2020/9/1 16:00 + **/ +@Service +@AllArgsConstructor +@Slf4j +public class DangerSourceServiceImpl extends BaseServiceImpl implements IDangerSourceService { + + private final DangerSourceMapper dangerSourceMapper; + private final DangerSourcePositionMapper dangerSourcePositionMapper; + private final DangerSourceLevelRecordMapper dangerSourceLevelRecordMapper; +// private final IEmInfoClient emInfoClient; + + @Override + public R doSave(DangerSourceDTO req) { + //设备ID唯一性校验 +// Wrapper queryWrapper = new QueryWrapper() {{ +// eq("eq_id", req.getEqId()); +// }}; +// if (super.getBaseMapper().selectCount(queryWrapper) > 0) { +// //throw new RuntimeException(String.format("设备ID[%s]已经设置过危险等级了!", req.getEqId())); +// return R.fail(400,String.format("设备ID[%s]已经设置过危险等级了!", req.getEqId())); +// } + + //新增危险源记录 + if (!super.save(req)) { + throw new RuntimeException("数据库insert失败!"); + } + + //新增危险源位置记录 + if (null != req.getPosition()) { + req.getPosition().setSourceId(req.getId()); + if (dangerSourcePositionMapper.insert(req.getPosition()) == 0) { + throw new RuntimeException("数据库insert失败!"); + } + } + + //记录危险源等级变更 + DangerSourceLevelRecordEntity levelRecordEntity = new DangerSourceLevelRecordEntity() {{ + setSourceId(req.getId()); + setOrgiLevel(-1); + setNewLevel(req.getLevel()); + setType(0); + setFlowId(""); + setUpdateTime(new Date()); + setRemark("初始化危险等级"); + }}; + if (dangerSourceLevelRecordMapper.insert(levelRecordEntity) == 0) { + throw new RuntimeException("数据库insert失败!"); + } + + return R.data(req.getId()); + } + + @Override + public R doUpdate(DangerSourceDTO req) { + //先查询做存在性校验 + DangerSourceEntity orginDangerSource = dangerSourceMapper.selectById(req.getId()); + if (null == orginDangerSource) { + throw new RuntimeException("记录不存在!"); + } + + //更新危险源 + //等级变更需要走工作流 + //req.setLevel(orginDangerSource.getLevel()); + if (!super.updateById(req)) { + throw new RuntimeException("数据库update失败!"); + } + //添加或更新危险源位置信息 + if (null != req.getPosition()) { + QueryWrapper queryWrapper = new QueryWrapper() {{ + eq("source_id", req.getId()); + }}; + + int line; + req.getPosition().setSourceId(req.getId()); + //不存在位置信息则新增位置信息 + if (null == dangerSourcePositionMapper.selectOne(queryWrapper)) { + line = dangerSourcePositionMapper.insert(req.getPosition()); + } else {//否则修改位置信息 + line = dangerSourcePositionMapper.update(req.getPosition(), queryWrapper); + } + + if (line == 0) { + throw new RuntimeException("数据库操作失败!"); + } + + } + + return R.data(req.getId()); + } + + @Override + public R detail(Long id) { + DangerSourceEntity dangerSource = dangerSourceMapper.selectById(id); + if (null == dangerSource) { + throw new RuntimeException("记录不存在!"); + } + + //查询危险源位置信息 + DangerSourcePositionEntity dangerSourcePosition = dangerSourcePositionMapper.selectOne(new QueryWrapper() {{ + eq("source_id", id); + }}); + + DangerSourceVO detail = DangerSourceWrapper.build().entityVO(dangerSource); + DangerSourcePositionVO position = DangerSourcePostionWrapper.build().entityVO(dangerSourcePosition); + detail.setPosition(position); + return R.data(detail); + } + + @Override + public R> pageCondition(DangerSourceEntity req, Query query) { + Wrapper queryWrapper = new LambdaQueryWrapper() {{ + orderByDesc(DangerSourceEntity::getCreateTime); + if (req.getType() != null) { + eq(DangerSourceEntity::getType, req.getType()); + } + if (null != req.getEqId()) { + eq(DangerSourceEntity::getEqId, req.getEqId()); + } + if (null != req.getCreateDept()) { + like(DangerSourceEntity::getCreateDept, req.getCreateDept()); + } + if (null != req.getLevel()) { + eq(DangerSourceEntity::getLevel, req.getLevel()); + } + if (StringUtil.isNotBlank(req.getName())) { + like(DangerSourceEntity::getName, req.getName()); + } + if (StringUtil.isNotBlank(req.getDangerEle())) { + like(DangerSourceEntity::getDangerEle, req.getDangerEle()); + } + if (StringUtil.isNotBlank(req.getApplyType())) { + eq(DangerSourceEntity::getApplyType, req.getApplyType()); + } + }}; + IPage page = super.page(Condition.getPage(query), queryWrapper); + page.setRecords(DangerSourceWrapper.build().listVO(page.getRecords())); + return R.data(page); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void importExcel(MultipartFile file) { + String filename = file.getOriginalFilename(); + ExcelToolListener excelToolListener = new ExcelToolListener(); + if (StringUtils.isEmpty(filename)) { + throw new ExcelException("请上传文件!"); + } else if (!StringUtils.endsWithIgnoreCase(filename, ".xls") && !StringUtils.endsWithIgnoreCase(filename, ".xlsx")) { + throw new ExcelException("请上传正确的excel文件!"); + } else { + try { + InputStream inputStream = new BufferedInputStream(file.getInputStream()); + ExcelUtil.asyncReadModel(inputStream, excelToolListener, DangerSourceSaveExcel.class,0,1); + } catch (IOException e) { + e.printStackTrace(); + } + } + /**完善内容**/ + List dataList = excelToolListener.getDataList(); + AtomicInteger index = new AtomicInteger(1); + dataList.forEach(data->{ + JSONObject object = JSONObject.parseObject(JSON.toJSONString(data)); + DangerSourceDTO dangerSourceDTO = BeanUtil.copy(data,DangerSourceDTO.class); + if(Func.isEmpty(object.getString("applyTypeName")) || Func.isEmpty(object.getString("typeName")) || Func.isEmpty(object.getString("levelName")) + || Func.isEmpty(object.getString("name")) || Func.isEmpty(object.getString("dangerEle")) || Func.isEmpty(object.getString("cause")) + || Func.isEmpty(object.getString("measures"))){ + throw new ServiceException("第"+index.get()+"行填入数据不全,请检查修改后再导入"); + } + /**完善应用类型**/ + String appType = DictCache.getKey(DictConstants.SAFE_DANGER_SOURCE_APPLY_TYPE,object.getString("applyTypeName")); + if(StringUtil.isEmpty(appType)){ + throw new ServiceException("第"+index.get()+"行填入应用类型查询不到相关数据,请检查修改后重新导入"); + } + dangerSourceDTO.setApplyType(appType); + /**完善危险源类型**/ + String type = DictCache.getKey(DictConstants.DANGER_TYPE,object.getString("typeName")); + if(StringUtil.isEmpty(type)){ + throw new ServiceException("第"+index.get()+"行填入危险源类型查询不到相关数据,请检查修改后重新导入"); + } + dangerSourceDTO.setType(Integer.valueOf(type)); + /**完善风险等级**/ + String level = DictCache.getKey(DictConstants.RISK_LEVEL,object.getString("levelName")); + if(StringUtil.isEmpty(level)){ + throw new ServiceException("第"+index.get()+"行填入风险等级查询不到相关数据,请检查修改后重新导入"); + } + /**完善设备**/ +// if(Func.isNotEmpty(object.getString("equName"))){ +// String equName = object.getString("equName"); +// R emInfoR = emInfoClient.getEmInfoByName(equName); +// log.info("设备查询结果为:{}",JSONObject.toJSONString(emInfoR)); +// if(!emInfoR.isSuccess() || Func.isEmpty(emInfoR.getData())){ +// throw new ServiceException("第"+index.get()+"行填入设备信息查询不到相关数据,请检查修改后重新导入"); +// } +// dangerSourceDTO.setEqId(emInfoR.getData().getId()); +// } + dangerSourceDTO.setLevel(Integer.valueOf(level)); + /**完善危险源位置对象**/ + DangerSourcePositionDTO positionDTO = BeanUtil.copy(object,DangerSourcePositionDTO.class); + dangerSourceDTO.setPosition(positionDTO); + this.doSave(dangerSourceDTO); + index.getAndIncrement(); + }); + } + + /** + * 危险等级统计数 + * + * @return + */ + @Override + public List getLevelCount() { + List re = dangerSourceMapper.getLevelCount(); + if (Func.isNotEmpty(re)) { + for (DangerSourceReportVO vo : re) { + vo.setName(DangerSourceLevelEnum.getName(vo.getLevel())); + } + } + return re; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/EasyExcelWriterFactory.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/EasyExcelWriterFactory.java new file mode 100644 index 0000000..3926410 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/EasyExcelWriterFactory.java @@ -0,0 +1,55 @@ +package org.springblade.hzinfo_inspect.safeproduct.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; + +import java.io.File; +import java.io.OutputStream; +import java.util.List; + +/** + * @author hx + */ +public class EasyExcelWriterFactory { + private int sheetNo = 0; + private ExcelWriter excelWriter = null; + + public EasyExcelWriterFactory(OutputStream outputStream) { + excelWriter = EasyExcel.write(outputStream).build(); + } + + public EasyExcelWriterFactory(File file) { + excelWriter = EasyExcel.write(file).build(); + } + + public EasyExcelWriterFactory(String filePath) { + excelWriter = EasyExcel.write(filePath).build(); + } + + /** + * 链式模板表头写入 + * @param headClazz 表头格式 + * @param data 数据 List 或者List> + * @return + */ + public EasyExcelWriterFactory writeModel(Class headClazz, List data, String sheetName){ + excelWriter.write(data, EasyExcel.writerSheet(this.sheetNo++, sheetName).head(headClazz).build()); + return this; + } + + /** + * 链式自定义表头写入 + * @param head + * @param data 数据 List 或者List> + * @param sheetName + * @return + */ + public EasyExcelWriterFactory write(List> head, List data, String sheetName){ + excelWriter.write(data, EasyExcel.writerSheet(this.sheetNo++, sheetName).head(head).build()); + return this; + } + + public void finish() { + excelWriter.finish(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelToolListener.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelToolListener.java new file mode 100644 index 0000000..d3ca74b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelToolListener.java @@ -0,0 +1,33 @@ +package org.springblade.hzinfo_inspect.safeproduct.util; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@Slf4j +@Data +public class ExcelToolListener extends AnalysisEventListener { + + /**保存数据**/ + private List dataList = Collections.synchronizedList(new ArrayList<>()); + + public ExcelToolListener() { + } + + @Override + public void invoke(Object data, AnalysisContext context) { + dataList.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + log.info("解析完成"); + log.info("------结果集为:{}------", JSONObject.toJSONString(dataList)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelUtil.java new file mode 100644 index 0000000..edc7a08 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/util/ExcelUtil.java @@ -0,0 +1,411 @@ +package org.springblade.hzinfo_inspect.safeproduct.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.EasyExcelFactory; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.write.handler.WriteHandler; +import org.apache.poi.ss.formula.functions.T; +import org.omg.CORBA_2_3.portable.OutputStream; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author hx + */ +public class ExcelUtil { + /** + * 同步无模型读(默认读取sheet0,从第2行开始读) + * @param filePath + * @return + */ + public static List> syncRead(String filePath){ + return EasyExcelFactory.read(filePath).sheet().doReadSync(); + } + + /** + * 同步无模型读(默认表头占一行,从第2行开始读) + * @param filePath + * @param sheetNo sheet页号,从0开始 + * @return + */ + public static List> syncRead(String filePath, Integer sheetNo){ + return EasyExcelFactory.read(filePath).sheet(sheetNo).doReadSync(); + } + + /** + * 同步无模型读(指定sheet和表头占的行数) + * @param inputStream + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return List> + */ + public static List> syncRead(InputStream inputStream, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); + } + + /** + * 同步无模型读(指定sheet和表头占的行数) + * @param file + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return List> + */ + public static List> syncRead(File file, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); + } + + /** + * 同步无模型读(指定sheet和表头占的行数) + * @param filePath + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return List> + */ + public static List> syncRead(String filePath, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); + } + + /** + * 同步按模型读(默认读取sheet0,从第2行开始读) + * @param filePath + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @return + */ + public static List syncReadModel(String filePath, Class clazz){ + return EasyExcelFactory.read(filePath).sheet().head(clazz).doReadSync(); + } + + /** + * 同步按模型读(默认表头占一行,从第2行开始读) + * @param filePath + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @return + */ + public static List syncReadModel(String filePath, Class clazz, Integer sheetNo){ + return EasyExcelFactory.read(filePath).sheet(sheetNo).head(clazz).doReadSync(); + } + + /** + * 同步按模型读(指定sheet和表头占的行数) + * @param inputStream + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static List syncReadModel(InputStream inputStream, Class clazz, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); + } + + /** + * 同步按模型读(指定sheet和表头占的行数) + * @param file + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static List syncReadModel(File file, Class clazz, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); + } + + /** + * 同步按模型读(指定sheet和表头占的行数) + * @param filePath + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static List syncReadModel(String filePath, Class clazz, Integer sheetNo, Integer headRowNum){ + return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); + } + + /** + * 异步无模型读(默认读取sheet0,从第2行开始读) + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param filePath 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static void asyncRead(String filePath, AnalysisEventListener excelListener){ + EasyExcelFactory.read(filePath, excelListener).sheet().doRead(); + } + + /** + * 异步无模型读(默认表头占一行,从第2行开始读) + * @param filePath 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param sheetNo sheet页号,从0开始 + * @return + */ + public static void asyncRead(String filePath, AnalysisEventListener excelListener, Integer sheetNo){ + EasyExcelFactory.read(filePath, excelListener).sheet(sheetNo).doRead(); + } + + /** + * 异步无模型读(指定sheet和表头占的行数) + * @param inputStream + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static void asyncRead(InputStream inputStream, AnalysisEventListener excelListener, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(inputStream, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 异步无模型读(指定sheet和表头占的行数) + * @param file + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static void asyncRead(File file, AnalysisEventListener excelListener, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(file, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 异步无模型读(指定sheet和表头占的行数) + * @param filePath + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + * @return + */ + public static void asyncRead(String filePath, AnalysisEventListener excelListener, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(filePath, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 异步按模型读取(默认读取sheet0,从第2行开始读) + * @param filePath + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + */ + public static void asyncReadModel(String filePath, AnalysisEventListener excelListener, Class clazz){ + EasyExcelFactory.read(filePath, clazz, excelListener).sheet().doRead(); + } + + /** + * 异步按模型读取(默认表头占一行,从第2行开始读) + * @param filePath + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + */ + public static void asyncReadModel(String filePath, AnalysisEventListener excelListener, Class clazz, Integer sheetNo){ + EasyExcelFactory.read(filePath, clazz, excelListener).sheet(sheetNo).doRead(); + } + + /** + * 异步按模型读取 + * @param inputStream + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + */ + public static void asyncReadModel(InputStream inputStream, AnalysisEventListener excelListener, Class clazz, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(inputStream, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 异步按模型读取 + * @param file + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + */ + public static void asyncReadModel(File file, AnalysisEventListener excelListener, Class clazz, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(file, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 异步按模型读取 + * @param filePath + * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 + * @param clazz 模型的类类型(excel数据会按该类型转换成对象) + * @param sheetNo sheet页号,从0开始 + * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) + */ + public static void asyncReadModel(String filePath, AnalysisEventListener excelListener, Class clazz, Integer sheetNo, Integer headRowNum){ + EasyExcelFactory.read(filePath, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); + } + + /** + * 无模板写文件 + * @param filePath + * @param head 表头数据 + * @param data 表内容数据 + */ + public static void write(String filePath, List> head, List> data){ + EasyExcel.write(filePath).head(head).sheet().doWrite(data); + } + + /** + * 无模板写文件 + * @param filePath + * @param head 表头数据 + * @param data 表内容数据 + * @param sheetNo sheet页号,从0开始 + * @param sheetName sheet名称 + */ + public static void write(String filePath, List> head, List> data, Integer sheetNo, String sheetName){ + EasyExcel.write(filePath).head(head).sheet(sheetNo, sheetName).doWrite(data); + } + + /** + * 根据excel模板文件写入文件 + * @param filePath + * @param templateFileName + * @param headClazz + * @param data + */ + public static void writeTemplate(String filePath, String templateFileName, Class headClazz, List data){ + EasyExcel.write(filePath, headClazz).withTemplate(templateFileName).sheet().doWrite(data); + } + + /** + * 根据excel模板文件写入文件 + * @param filePath + * @param templateFileName + * @param data + */ + public static void writeTemplate(String filePath, String templateFileName, List data){ + EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(data); + } + + /** + * 按模板写文件 + * @param filePath + * @param headClazz 表头模板 + * @param data 数据 + */ + public static void write(String filePath, Class headClazz, List data){ + EasyExcel.write(filePath, headClazz).sheet().doWrite(data); + } + + /** + * 按模板写文件 + * @param filePath + * @param headClazz 表头模板 + * @param data 数据 + * @param sheetNo sheet页号,从0开始 + * @param sheetName sheet名称 + */ + public static void write(String filePath, Class headClazz, List data, Integer sheetNo, String sheetName){ + EasyExcel.write(filePath, headClazz).sheet(sheetNo, sheetName).doWrite(data); + } + + /** + * 按模板写文件 + * @param filePath + * @param headClazz 表头模板 + * @param data 数据 + * @param writeHandler 自定义的处理器,比如设置table样式,设置超链接、单元格下拉框等等功能都可以通过这个实现(需要注册多个则自己通过链式去调用) + * @param sheetNo sheet页号,从0开始 + * @param sheetName sheet名称 + */ + public static void write(String filePath, Class headClazz, List data, WriteHandler writeHandler, Integer sheetNo, String sheetName){ + EasyExcel.write(filePath, headClazz).registerWriteHandler(writeHandler).sheet(sheetNo, sheetName).doWrite(data); + } + + /** + * 按模板写文件(包含某些字段) + * @param filePath + * @param headClazz 表头模板 + * @param data 数据 + * @param includeCols 过滤包含的字段,根据字段名称过滤 + * @param sheetNo sheet页号,从0开始 + * @param sheetName sheet名称 + */ + public static void writeInclude(String filePath, Class headClazz, List data, Set includeCols, Integer sheetNo, String sheetName){ + EasyExcel.write(filePath, headClazz).includeColumnFiledNames(includeCols).sheet(sheetNo, sheetName).doWrite(data); + } + + /** + * 按模板写文件(排除某些字段) + * @param filePath + * @param headClazz 表头模板 + * @param data 数据 + * @param excludeCols 过滤排除的字段,根据字段名称过滤 + * @param sheetNo sheet页号,从0开始 + * @param sheetName sheet名称 + */ + public static void writeExclude(String filePath, Class headClazz, List data, Set excludeCols, Integer sheetNo, String sheetName){ + EasyExcel.write(filePath, headClazz).excludeColumnFiledNames(excludeCols).sheet(sheetNo, sheetName).doWrite(data); + } + + /** + * 多个sheet页的数据链式写入 + * ExcelUtil.writeWithSheets(outputStream) + * .writeModel(ExcelModel.class, excelModelList, "sheetName1") + * .write(headData, data,"sheetName2") + * .finish(); + * @param outputStream + * @return + */ + public static EasyExcelWriterFactory writeWithSheets(OutputStream outputStream){ + EasyExcelWriterFactory excelWriter = new EasyExcelWriterFactory(outputStream); + return excelWriter; + } + + /** + * 多个sheet页的数据链式写入 + * ExcelUtil.writeWithSheets(file) + * .writeModel(ExcelModel.class, excelModelList, "sheetName1") + * .write(headData, data,"sheetName2") + * .finish(); + * @param file + * @return + */ + public static EasyExcelWriterFactory writeWithSheets(File file){ + EasyExcelWriterFactory excelWriter = new EasyExcelWriterFactory(file); + return excelWriter; + } + + /** + * 多个sheet页的数据链式写入 + * ExcelUtil.writeWithSheets(filePath) + * .writeModel(ExcelModel.class, excelModelList, "sheetName1") + * .write(headData, data,"sheetName2") + * .finish(); + * @param filePath + * @return + */ + public static EasyExcelWriterFactory writeWithSheets(String filePath){ + EasyExcelWriterFactory excelWriter = new EasyExcelWriterFactory(filePath); + return excelWriter; + } + + /** + * 多个sheet页的数据链式写入(失败了会返回一个有部分数据的Excel) + * ExcelUtil.writeWithSheets(response, exportFileName) + * .writeModel(ExcelModel.class, excelModelList, "sheetName1") + * .write(headData, data,"sheetName2") + * .finish(); + * @param response + * @param exportFileName 导出的文件名称 + * @return + */ + public static EasyExcelWriterFactory writeWithSheetsWeb(HttpServletResponse response, String exportFileName) throws IOException{ + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 + String fileName = URLEncoder.encode(exportFileName, "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcelWriterFactory excelWriter = new EasyExcelWriterFactory(response.getOutputStream()); + return excelWriter; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceLevelRecordVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceLevelRecordVO.java new file mode 100644 index 0000000..ccc7d09 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceLevelRecordVO.java @@ -0,0 +1,34 @@ +package org.springblade.hzinfo_inspect.safeproduct.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceLevelRecordEntity; +import org.springblade.hzinfo_inspect.safeproduct.enums.DangerSourceLevelEnum; + +/** + * 模型VO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DangerSourceLevelRecordVO extends DangerSourceLevelRecordEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "原等级Name") + private Integer orgiLevelName; + + @ApiModelProperty(value = "新等级Name") + private Integer newLevelName; + + public String getOrgiLevelName() { + return DangerSourceLevelEnum.getName(super.getOrgiLevel()); + } + + public String getNewLevelName() { + return DangerSourceLevelEnum.getName(super.getNewLevel()); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourcePositionVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourcePositionVO.java new file mode 100644 index 0000000..b8d6f33 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourcePositionVO.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.safeproduct.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourcePositionEntity; + +/** + * 模型VO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DangerSourcePositionVO extends DangerSourcePositionEntity { + + private static final long serialVersionUID = 1L; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceReportVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceReportVO.java new file mode 100644 index 0000000..44243f6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceReportVO.java @@ -0,0 +1,23 @@ +package org.springblade.hzinfo_inspect.safeproduct.vo; + +import lombok.Data; + +/** + * @Author: py + */ +@Data +public class DangerSourceReportVO { + + /** + * 风险等级名称 + */ + private String name; + /** + * 风险等级 + */ + private Integer level; + /** + * 统计数 + */ + private Integer value; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceVO.java new file mode 100644 index 0000000..0fc4bff --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/vo/DangerSourceVO.java @@ -0,0 +1,36 @@ +package org.springblade.hzinfo_inspect.safeproduct.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.enums.DangerSourceLevelEnum; + +/** + * @author xiashandong + * @created 2020/9/1 15:46 + **/ +@Data +@EqualsAndHashCode(callSuper = true) +public class DangerSourceVO extends DangerSourceEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "危险等级Name") + private String levelName; + + @ApiModelProperty(value = "危险等级Name") + private String applyTypeName; + + @ApiModelProperty("创建人名称") + private String createUserName; + + @ApiModelProperty("修改人名称") + private String updateUserName; + + private DangerSourcePositionVO position; + + public String getLevelName() { + return DangerSourceLevelEnum.getName(super.getLevel()); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceLevelRecordWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceLevelRecordWrapper.java new file mode 100644 index 0000000..e2070b8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceLevelRecordWrapper.java @@ -0,0 +1,24 @@ +package org.springblade.hzinfo_inspect.safeproduct.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceLevelRecordEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceLevelRecordVO; + +/** + * @author xiashandong + * @created 2020/9/1 15:46 + **/ +public class DangerSourceLevelRecordWrapper extends BaseEntityWrapper { + + public static DangerSourceLevelRecordWrapper build() { + return new DangerSourceLevelRecordWrapper(); + } + + @Override + public DangerSourceLevelRecordVO entityVO(DangerSourceLevelRecordEntity entity) { + DangerSourceLevelRecordVO vo = BeanUtil.copy(entity, DangerSourceLevelRecordVO.class); + return vo; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourcePostionWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourcePostionWrapper.java new file mode 100644 index 0000000..857227a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourcePostionWrapper.java @@ -0,0 +1,24 @@ +package org.springblade.hzinfo_inspect.safeproduct.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourcePositionEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourcePositionVO; + +/** + * @author xiashandong + * @created 2020/9/1 15:45 + **/ +public class DangerSourcePostionWrapper extends BaseEntityWrapper { + + public static DangerSourcePostionWrapper build() { + return new DangerSourcePostionWrapper(); + } + + @Override + public DangerSourcePositionVO entityVO(DangerSourcePositionEntity entity) { + DangerSourcePositionVO vo = BeanUtil.copy(entity, DangerSourcePositionVO.class); + return vo; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceWrapper.java new file mode 100644 index 0000000..cc7de9a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/safeproduct/wrapper/DangerSourceWrapper.java @@ -0,0 +1,35 @@ +package org.springblade.hzinfo_inspect.safeproduct.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.hzinfo_inspect.safeproduct.constants.DictConstants; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; +import org.springblade.hzinfo_inspect.safeproduct.vo.DangerSourceVO; +import org.springblade.system.cache.DictCache; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; + +import java.util.Optional; + +/** + * @author xiashandong + * @created 2020/9/1 15:45 + **/ +public class DangerSourceWrapper extends BaseEntityWrapper { + + public static DangerSourceWrapper build() { + return new DangerSourceWrapper(); + } + + @Override + public DangerSourceVO entityVO(DangerSourceEntity entity) { + DangerSourceVO vo = BeanUtil.copy(entity, DangerSourceVO.class); + User createUser = UserCache.getUser(entity.getCreateUser()); + User updateUser = UserCache.getUser(entity.getUpdateUser()); + vo.setCreateUserName(Optional.ofNullable(createUser).map(User::getName).orElse(null)); + vo.setUpdateUserName(Optional.ofNullable(updateUser).map(User::getName).orElse(null)); + vo.setApplyTypeName(DictCache.getValue(DictConstants.SAFE_DANGER_SOURCE_APPLY_TYPE, entity.getApplyType())); + return vo; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/EventController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/EventController.java new file mode 100644 index 0000000..a93d701 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/EventController.java @@ -0,0 +1,144 @@ +package org.springblade.hzinfo_inspect.task.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.springblade.hzinfo_inspect.obj.entity.ObjectEntity; +import org.springblade.hzinfo_inspect.obj.entity.ProjectEntity; +import org.springblade.hzinfo_inspect.obj.services.ObjectService; +import org.springblade.hzinfo_inspect.obj.services.ProjectService; +import org.springblade.hzinfo_inspect.task.entity.*; +import org.springblade.hzinfo_inspect.task.service.*; +import org.springblade.hzinfo_inspect.task.vo.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.core.constant.ProcessConstant; +import org.springblade.flow.core.feign.IFlowClient; +import org.springblade.system.feign.IDictClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@AllArgsConstructor +@RequestMapping("/task/event") +@Api(value = "巡检任务情况", tags = "巡检任务情况") +public class EventController{ + + private final IEventService eventService; + private final IEventRecordService eventRecordService; + private final ObjectService objectService; + private final ProjectService projectService; + private final ITaskObjectProjectContentService taskObjectProjectContentService; + private final IEventAttachmentService eventAttachmentService; + private final IDictClient dictBizClient; + private IFlowClient flowClient; + /** + * 获取巡检情况列表信息 + */ + @RequestMapping(value = "/list", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "任务查看弹窗下面的列表 巡检情况列表信息分页", notes = "传入taskId") + public R> list(Long taskId, Query query, BladeUser bladeUser) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery().eq(EventEntity::getTaskId,taskId).orderByDesc(EventEntity::getCreateTime); + + queryWrapper.eq(EventEntity::getCreateDept,bladeUser.getDeptId()); + IPage pages = eventService.page(Condition.getPage(query), queryWrapper); + IPage resultPages = new Page<>(pages.getCurrent(), pages.getSize(),pages.getTotal()); + + Map objectNames = Maps.newHashMap(); + Map projectNames = Maps.newHashMap(); + List result = Lists.newArrayList(); + pages.getRecords().forEach(entity->{ + //对象名 + String objectName = objectNames.get(entity.getObjectId()); + if(StringUtil.isEmpty(objectName)){ + ObjectEntity objectEntity = objectService.getById(entity.getObjectId()); + if(objectEntity!=null){ + objectName = objectEntity.getName(); + objectNames.put(entity.getObjectId(), objectName); + } + } + //项目名 + String projectName = projectNames.get(entity.getProjectId()); + if(StringUtil.isEmpty(projectName)){ + ProjectEntity projectEntity = projectService.getById(entity.getProjectId()); + if(projectEntity!=null){ + projectName = projectEntity.getName(); + projectNames.put(entity.getProjectId(), projectName); + } + } + result.add(EventListVO.builder().id(entity.getId()).objectName(objectName).projectName(projectName).isProblem(entity.getIsProblem()).checkInTime(entity.getCreateTime()).build()); + }); + resultPages.setRecords(result); + return R.data(resultPages); + } + + /** + * 查看巡检情况详情 + */ + @RequestMapping(value = "/detail", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "查看巡检情况详情", notes = "传入eventId") + public R detail(Long id) { + EventEntity detail = eventService.getById(id); + EventDetailVO v = BeanUtil.copy(detail,EventDetailVO.class); + List recordList = eventRecordService.list(Wrappers.query().lambda().eq(EventRecordEntity::getEventId, id)); + List rvList = Lists.newArrayList(); + for (EventRecordEntity entity:recordList){ + TaskObjectProjectContentEntity content = taskObjectProjectContentService.getOne(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getContentId,entity.getContentId()) + .eq(TaskObjectProjectContentEntity::getObjectId,entity.getObjectId()) + .eq(TaskObjectProjectContentEntity::getProjectId,entity.getProjectId()) + .eq(TaskObjectProjectContentEntity::getTaskId,detail.getTaskId()).last("LIMIT 1")); + rvList.add(EventRecordDetailVO.builder() + .contentName(content.getName()) + .recordType(content.getRecordType()) + .checkTypeSon(content.getCheckTypeSon()) + .checkType(content.getCheckType()) + .currentStatus(entity.getCurrentStatus()) + .currentValue(entity.getCurrentValue()) + .fileUrl(entity.getFileUrl()) + .cameraAddr(content.getCameraAddr()) + .dictType(content.getDictType()) + .description(content.getDescription()) + .build()); + } + v.setRecords(rvList); + List attachments = eventAttachmentService.list(Wrappers.query().lambda().eq(EventAttachmentEntity::getEventId, id)).stream().map(entity->entity.getFileUrl()).collect(Collectors.toList()); + v.setAttachments(attachments); + if("1".equals(v.getIsProblem())){//是问题 + String typeBig = "", typeSmall = ""; + if(Func.isNotEmpty(detail.getTypeBig())){ + typeBig = dictBizClient.getValue("problemType",detail.getTypeBig()).getData(); + typeSmall = dictBizClient.getValue(detail.getTypeBig(),detail.getTypeSmall()).getData(); + } + String problemStatus = "待处理"; + R result = flowClient.queryProcessInstanceStatus(detail.getProcessInstanceId()); + if(result.isSuccess()){ + problemStatus = ProcessConstant.ProcessInstanceStatusEnum.over.name().equals(result.getData())?"已处理":"处理中"; + } + v.setProblem(ProblemVO.builder().problemStatus(problemStatus).typeBig(typeBig).typeSmall(typeSmall).problemDetail(detail.getDescription()).build()); + } + return R.data(v); + } + + @PostMapping("/addTaskEvent") + @ApiOperation(value = "任务登记", notes = "传入eventId") + public R addTaskEvent(@RequestBody EventAddVO event){ + return R.status(eventService.addTaskEvent(event)); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskController.java new file mode 100644 index 0000000..61538f9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskController.java @@ -0,0 +1,307 @@ +package org.springblade.hzinfo_inspect.task.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.google.common.collect.Lists; +import com.hnac.hzinfo.core.push.enums.PushAudienceType; +import com.hnac.hzinfo.core.push.model.PushAudience; +import com.hnac.hzinfo.core.push.model.PushInfo; +import com.hnac.hzinfo.core.push.model.PushPlatform; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.task.TaskContants.ClaimStatusEnum; +import org.springblade.hzinfo_inspect.task.entity.EventEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.springblade.hzinfo_inspect.task.service.IEventService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import org.springblade.hzinfo_inspect.task.service.ITaskUserService; +import org.springblade.hzinfo_inspect.task.vo.TaskListQuery; +import org.springblade.hzinfo_inspect.task.vo.TaskObjectVO; +import org.springblade.hzinfo_inspect.task.vo.TaskVo; +import io.swagger.annotations.*; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.mp.support.BladePage; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.resource.feign.IPushClient; +import org.springblade.resource.vo.PushInfoVO; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + + +/** + * 巡检任务控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping("/task") +@Api(value = "巡检任务", tags = "巡检任务") +public class TaskController extends BladeController { + + private final ITaskService taskService; + private final ITaskUserService taskUserService; + private final IEventService eventService; + + /** + * 根据计划id获取任务列表 + */ + @GetMapping("/getTaskListPageByPlanId") + @ApiOperation(value = "根据计划id获取任务列表", notes = "传入计划id") + public R> getTaskListPageByPlanId(Long id, Query query) { + + IPage pages = taskService.page(Condition.getPage(query), Wrappers.query().lambda().eq(TaskEntity::getPlanId, id)); + return R.data(pages); + } + + /** + * 查看任务详情 + */ + @RequestMapping(value = "/detail", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "查看,下面列表再调用eventController.list", notes = "传入taskid") + public R detail(@RequestParam Long id) { + TaskEntity detail = taskService.getById(id); + TaskUserEntity taskUserEntity = taskUserService.getOne(Wrappers.query().lambda().eq(TaskUserEntity::getTaskId, id) + .eq(TaskUserEntity::getUserId,AuthUtil.getUserId()) + .eq(TaskUserEntity::getClaimStatus,ClaimStatusEnum.COLLECT.getStatus())); + if(taskUserEntity!=null){ + detail.setUserId(taskUserEntity.getUserId()); + User user = UserCache.getUser(taskUserEntity.getUserId()); + if(user!=null){ + String userName = user.getRealName(); + detail.setUserName(userName); + } + + } + //巡检记录 + List points = Lists.newArrayList(); + EventEntity queryTemp = new EventEntity(); + queryTemp.setTaskId(id); + List eventList = eventService.getEventList(queryTemp); + for(EventEntity entity:eventList){ + if(entity.getLttd()!=null&&entity.getLgtd()!=null) + {points.add(entity.getLgtd().stripTrailingZeros().toPlainString()+","+entity.getLttd().stripTrailingZeros().toPlainString());} + } + detail.setPoint(points); + return R.data(detail); + } + + /** + * PC端分页显示任务列表 + */ + @GetMapping("/list") + @ApiOperation(value = "分页显示任务列表", notes = "传入task") + public R> list(TaskListQuery task, Query query) { +// CacheUtil.put("test#2","inspect","test","12"); +// LambdaQueryWrapper queryWrapper = Condition.getQueryWrapper(new TaskEntity(),task); +// queryWrapper.orderByDesc(TaskEntity::getUpdateTime); +// IPage pages = taskService.page(Condition.getPage(query), queryWrapper); + IPage pages = Condition.getPage(query); + if(!AuthUtil.isAdministrator()){ + task.setCurUserId(AuthUtil.getUserId()); + //task.setTenantId(AuthUtil.getTenantId()); + } + List list = taskService.getListPage(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * 根据值班id获取任务信息 + */ + @GetMapping("/listByDutyId") + @ApiOperation(value = "根据值班id获取任务信息", notes = "传入task") + public R> listByDutyId(Long dutyId, Query query) { + TaskListQuery task = new TaskListQuery(); + task.setDutyId(dutyId); +// task.setTenantId(AuthUtil.getTenantId()); + IPage pages = Condition.getPage(query); + List list = taskService.getListPage(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * 机器人任务列表 + */ + @GetMapping("/robotList") + @ApiOperation(value = "机器人任务列表", notes = "传入task") + public R> robotList(TaskListQuery task, Query query) { + IPage pages = Condition.getPage(query); + task.setAutoVideo(PlanContants.InspectTypeEnum.ROBOT.getVal()); +// task.setTenantId(AuthUtil.getTenantId()); + List list = taskService.getListPageAuth(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * 视频任务列表 + */ + @GetMapping("/videoList") + @ApiOperation(value = "视频任务列表", notes = "传入task") + public R> videoList(TaskListQuery task, Query query) { + IPage pages = Condition.getPage(query); + task.setAutoVideo(PlanContants.InspectTypeEnum.VIDEO.getVal()); +// task.setTenantId(AuthUtil.getTenantId()); + List list = taskService.getListPageAuth(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * phone端分页显示任务列表 + */ + @RequestMapping(value = "/listOfPhone", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "分页显示任务列表(手机端)", notes = "传入task") + public R> listOfPhone(TaskListQuery task, Query query) { + IPage pages = Condition.getPage(query); + if(!AuthUtil.isAdministrator()){ + task.setCurUserId(AuthUtil.getUserId()); +// task.setTenantId(AuthUtil.getTenantId()); + } + List list = taskService.getListPageOfPhone(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * 开始任务 + */ + @RequestMapping(value = "/startTask", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "开始任务", notes = "开始任务") + public R startTask(@RequestParam Long id) { + return R.status(taskService.startTask(id)); + } + + /** + * 修改任务状态 + */ + @RequestMapping(value = "/modifyTaskStatus", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "修改任务状态 0未开始 1进行中 2暂停 3已完成 4未完成", notes = "修改任务状态") + @ApiImplicitParams({ + @ApiImplicitParam(name="id",value="计划id"), + @ApiImplicitParam(name="status",value="0未开始 1进行中 2暂停 3已完成 4未完成") + }) + public R modifyTaskStatus(@RequestParam Long id,@RequestParam Integer status) { + return R.status(taskService.modifyTaskStatus(id,status)); + } + + /** + * 获取任务详情 + */ + @RequestMapping(value = "/getTaskById", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "获取任务详情", notes = "传入taskId") + public R> getTaskById(@RequestParam Long id) { + List list = taskService.getTaskById(id); + /*long begin = System.nanoTime(); + long end = System.nanoTime(); + System.out.println("--------耗时-------------" + (end - begin)/1000000000.0);*/ + return R.data(list); + } + + /** + * 扫描二维码 + * @param objectId 巡检对象id + * @return 巡检任务列表 + */ + @GetMapping("/scanQRCode") + @ApiOperation(value = "扫描二维码,查看对象任务,从二维码里获取对象id", notes = "传入objectId") + public R> scanQRCode(@ApiParam(value = "当前页") @RequestParam Integer current, @ApiParam(value = "每页显示条数") @RequestParam Integer size, @ApiParam(value = "对象id") @RequestParam Long objectId) { + IPage pages = new Page<>(current,size); + TaskListQuery task = new TaskListQuery(); + task.setCurUserId(AuthUtil.getUserId()); + task.setObjectId(objectId); + List list = taskService.getListPageOfPhone(pages,task); + pages.setRecords(list); + return R.data(BladePage.of(pages)); + } + + /** + * 撤销领用 + * @param taskId 巡检任务id + * @return + */ + @RequestMapping(value = "/cancelStart", method = {RequestMethod.GET, RequestMethod.POST}) + @ApiOperation(value = "撤销领用", notes = "传taskId") + public R cancelStart( @ApiParam(value = "任务id") @RequestParam Long taskId) { + return R.data(taskService.cancelStart(taskId)); + } + + /** + * 逻辑删除任务 + * 只有管理员能有该删除权限 + */ + @PreAuth("hasAnyRole('admin','administrator')") + @PostMapping("/removeTask") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "逻辑删除任务,只有管理员能有该删除权限", notes = "传入ids") + public R removePlanObjectTemplate(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(taskService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 机器人 + * 获取任务 项目list + */ + @GetMapping("/getObjPrj") + @ApiOperation(value = "机器人 获取任务 项目list", notes = "传入taskId") + public R> getObjPrj(Long taskId) { + List list = taskService.getObjPrj(taskId); + return R.data(list); + } + + @Autowired + private IPushClient pushClient; + + /** + * 测试消息推送 + */ + @GetMapping("/testPush") + @ApiOperation(value = "测试消息推送", notes = "测试消息推送") + public R testPush(@ApiParam(value = "tags 多个,隔开", required = false) @RequestParam String tags, + @ApiParam(value = "tenantId", required = false) @RequestParam String tenantId) { + // 移动端消息推送 : 使用 用户id做TAG,前端注册用户id为TAG + PushInfoVO pushInfoVO = new PushInfoVO(); + if(Func.isNotEmpty(tenantId)){ + pushInfoVO.setTenantId(tenantId); + } else { + pushInfoVO.setTenantId(AuthUtil.getTenantId()); + } + + PushPlatform platform = PushPlatform.all(); + Map> audienceMap = new HashMap<>(); + if(Func.isNotEmpty(tags)){ + audienceMap.put(PushAudienceType.TAG, Arrays.asList(tags)); + } else { + audienceMap.put(PushAudienceType.TAG, Arrays.asList("test")); + } + PushAudience audience = new PushAudience(false, audienceMap); + PushInfo pushInfo = new PushInfo("hzinfo-inspect" + , "测试后。。。。1" + , "测试内容" + , "测试后。。。。2" + , null + , platform + , audience); + pushInfoVO.setPushInfo(pushInfo); + pushClient.tenantPush(pushInfoVO); + return R.status(true); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskRecordController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskRecordController.java new file mode 100644 index 0000000..8c09dd7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/controller/TaskRecordController.java @@ -0,0 +1,71 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.mp.support.Condition; +import org.springblade.hzinfo_inspect.task.entity.TaskRecordEntity; +import org.springblade.hzinfo_inspect.task.service.ITaskRecordService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import org.springblade.hzinfo_inspect.task.vo.TaskListQuery; +import org.springblade.hzinfo_inspect.task.vo.TaskRecordAddVO; +import org.springblade.hzinfo_inspect.task.vo.TaskVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 巡检报备 + * @author ninglong + * + */ +@RestController +@AllArgsConstructor +@RequestMapping("/task/taskRecord") +@Api(value = "巡检报备", tags = "巡检报备") +@Slf4j +public class TaskRecordController { + + private final ITaskService taskService; + private final ITaskRecordService taskRecordService; + + @GetMapping("/list") + @ApiOperation(value = "巡检报备列表", notes = "巡检报备列表(只显示未开始)") + public R> getListTaskRecord(TaskListQuery task, Query query) { + IPage pages = Condition.getPage(query); + task.setCurUserId(AuthUtil.getUserId()); + task.setStatus(0); + List list = taskService.getListPage(pages,task); + pages.setRecords(list); + return R.data(pages); + } + + /** + * 插入巡检任务报备信息 + * @param itr 巡检任务报备实例 + * @return 结果整型数 + */ + @PostMapping("/addTaskRecord") + @ApiOperation(value = "巡检任务报备", notes = "巡检任务报备") + public R addTaskRecord(@RequestBody TaskRecordAddVO itr) { + TaskRecordEntity record = taskRecordService.getOne(Wrappers.query().lambda().eq(TaskRecordEntity::getTaskId,itr.getTaskId())); + if(record!=null){ + log.error("该任务已报备,不可重复进行任务报备"); + return R.fail("该任务已报备,不可重复进行任务报备"); + } + record = BeanUtil.copy(itr,TaskRecordEntity.class); + record.setCreator(AuthUtil.getUserId()); + boolean res = taskRecordService.addTaskRecord(record); + return R.status(res); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventAttachmentEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventAttachmentEntity.java new file mode 100644 index 0000000..b5011a3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventAttachmentEntity.java @@ -0,0 +1,43 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @author ninglong + * 事件附件 + */ +@Data +@TableName("hz_st_event_attachment") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检情况事件附件对象", description = "") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EventAttachmentEntity extends BaseEntity { + + private static final long serialVersionUID = 3218070292177460018L; + + /** + * 事件ID + */ + @ApiModelProperty(value = "事件ID") + private Long eventId; + /** + * 文件ID + */ + @ApiModelProperty(value = "文件地址") + private String fileUrl; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventEntity.java new file mode 100644 index 0000000..22f4717 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventEntity.java @@ -0,0 +1,102 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_ex_event") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检任务情况", description = "巡检任务情况") +public class EventEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objectId; + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long projectId; + /** + * 事件登记人 + */ + @ApiModelProperty(value = "事件登记人") + private Long userId; + /** + * 事件编号 + */ + @ApiModelProperty(value = "事件编号") + private String code; + /** + * 事件标题 + */ + @ApiModelProperty(value = "事件标题") + private String title; + /** + * 事件描述 + */ + @ApiModelProperty(value = "事件描述") + private String description; + /** + * 是否问题 0:否 1 是 默认0 + */ + @ApiModelProperty(value = "是否问题 0:否 1 是 默认0") + private String isProblem; + + /** + * 问题类型 + */ + @ApiModelProperty(value = "问题类型") + private String typeBig; + /** + * 问题子类 + */ + @ApiModelProperty(value = "问题子类") + private String typeSmall; + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal lttd; + /** + * 事件地点 + */ + @ApiModelProperty(value = "事件地点") + private String address; + /** + * 流程定义id + */ + @ApiModelProperty(value = "流程义id") + private String processDefinitionId; + /** + * 流程实例id + */ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventRecordEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventRecordEntity.java new file mode 100644 index 0000000..683575f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/EventRecordEntity.java @@ -0,0 +1,70 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import org.springblade.core.mp.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_ex_event_record") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检情况对象", description = "") +public class EventRecordEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 事件ID + */ + @ApiModelProperty(value = "事件ID") + private Long eventId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objectId; + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long projectId; + /** + * 内容ID + */ + @ApiModelProperty(value = "内容ID") + private Long contentId; + /** + * 内容当前状态 0 异常 1 正常 + */ + @ApiModelProperty(value = "内容当前状态 0 异常 1 正常 ") + private String currentStatus; + /** + * 内容当前值 + */ + @ApiModelProperty(value = "内容当前值") + private String currentValue; + + /** + * 文件地址 + */ + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/InspectionTaskSMS.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/InspectionTaskSMS.java new file mode 100644 index 0000000..b4031e8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/InspectionTaskSMS.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import lombok.Data; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; + +@Data +public class InspectionTaskSMS extends TaskEntity { + + /** + * 是否提前发送了提醒短信 + */ + private Boolean sendMsg ; + + /** + * 登录账号 + */ + private String loginName; + + /** + * 用户名称 + */ + private String cnName; + /** + * 手机号码 + */ + private String phone; + + /** + * 根据用户id 设置发短信需要的其他用户信息 + */ + public void setSmsDetail(){ + User user = UserCache.getUser(this.getUserId()); + this.setCnName(user.getName()); + this.setPhone(user.getPhone()); + this.setLoginName(user.getAccount()); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectEntity.java new file mode 100644 index 0000000..94c10ce --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectEntity.java @@ -0,0 +1,77 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import java.math.BigDecimal; +import java.util.List; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.google.common.collect.Lists; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_ex_object") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "TaskObject对象", description = "") +public class TaskObjectEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objectId; + /** + * 对象编码 + */ + @ApiModelProperty(value = "对象编码") + private String code; + /** + * 对象名称 + */ + @ApiModelProperty(value = "对象名称") + private String name; + + /** + * 地理位置 + */ + @ApiModelProperty(value = "地理位置") + private String address; + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal lttd; + /** + * 是否重复记录 0 不允许 1允许 + */ + @ApiModelProperty(value = "是否重复记录 0 不允许 1允许") + private String duplicateRecord; + + @TableField(exist=false) + @ApiModelProperty(value = "任务对象项目") + private List projects = Lists.newArrayList(); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectContentEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectContentEntity.java new file mode 100644 index 0000000..1e15d5a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectContentEntity.java @@ -0,0 +1,125 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_ex_object_project_content") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "TaskObjectProjectContent对象", description = "") +public class TaskObjectProjectContentEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objectId; + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long projectId; + /** + * 内容ID + */ + @ApiModelProperty(value = "内容ID") + private Long contentId; + /** + * 内容编码:由系统自动生成自动生成 + */ + @ApiModelProperty(value = "内容编码:由系统自动生成自动生成") + private String code; + /** + * 内容名称 + */ + @ApiModelProperty(value = "内容名称") + private String name; + /** + * 内容描述 + */ + @ApiModelProperty(value = "内容描述") + private String description; + + /** + * 完成标识 + */ + @ApiModelProperty(value = "完成标识 0 不可用 1 可用") + private String available; + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + private String checkType; + /** + * 记录类型 + */ + @ApiModelProperty(value = "记录类型") + private String recordType; + + /** + * 表针识别,表盘ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "表针识别,表盘ID") + private Long clockId; + + /** + * 视频巡检摄像机ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "视频巡检摄像机ID") + private Long cameraId; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + private String checkTypeSon; + + /** + * 开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0 + */ + @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0") + private String cameraAddr; + + + /** + * 其他参数,例如多联断路器内断路器的个数 + */ + @ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数") + private String otherParam; + + /** + * 校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开 + */ + @ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开") + private String checkVal; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectEntity.java new file mode 100644 index 0000000..e3c9ec1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskObjectProjectEntity.java @@ -0,0 +1,75 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import java.util.List; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.google.common.collect.Lists; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_ex_object_project") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "TaskObjectProject对象", description = "") +public class TaskObjectProjectEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objectId; + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long projectId; + + + /** + * 目标编码 + */ + @ApiModelProperty(value = "目标编码") + private String code; + /** + * 目标名称 + */ + @ApiModelProperty(value = "目标名称") + private String name; + + /** + * 目标描述 + */ + @ApiModelProperty(value = "目标描述") + private String description; + + @TableField(exist=false) + @ApiModelProperty(value = "任务对象项目内容") + private List contents = Lists.newArrayList(); + + /** + * 用户ID + */ + @TableField(exist=false) + @ApiModelProperty(value = "用户ID") + private Long userId; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskRecordEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskRecordEntity.java new file mode 100644 index 0000000..3d9e719 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskRecordEntity.java @@ -0,0 +1,52 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("hz_st_task_record") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检报备对象", description = "巡检报备") +public class TaskRecordEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 报备人 + */ + @ApiModelProperty(value = "报备人") + private Long creator; + /** + * 报备原因 + */ + @ApiModelProperty(value = "报备原因") + private String reason; + /** + * 报备模式 0 任务报备 1 人员报备 + */ + @ApiModelProperty(value = "报备模式 0 任务报备 1 人员报备") + private String type; + /** + * 任务执行人 + */ + @ApiModelProperty(value = "任务执行人") + private Long executor; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskResultEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskResultEntity.java new file mode 100644 index 0000000..0891c15 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskResultEntity.java @@ -0,0 +1,32 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 任务派发结果表 + * @author ninglong + * @create 2020-08-24 10:32 + */ +@Data +@TableName("hz_st_hi_task_result") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "任务派发结果", description = "") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TaskResultEntity extends BaseEntity { + + /** + * 计划ID + */ + @ApiModelProperty(value = "计划ID") + private Long planId; + @ApiModelProperty(value = "批次号") + private String batchNumber; + @ApiModelProperty(value = "原因") + private String reason; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskUserEntity.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskUserEntity.java new file mode 100644 index 0000000..fd2b60c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/entity/TaskUserEntity.java @@ -0,0 +1,53 @@ +package org.springblade.hzinfo_inspect.task.entity; + +import java.time.LocalDateTime; + +import org.springblade.core.mp.base.BaseEntity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + + +/** + * 实体类 + * @author Chill + */ +@Data +@TableName("hz_st_ex_task_user") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "巡检任务用户", description = "巡检任务用户") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TaskUserEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 用户ID + */ + @ApiModelProperty(value = "用户ID") + private Long userId; + /** + * 领用状态 0:未领用 1:已领用 每条任务可以存在多个用户,但是只有一个领用人 + */ + @ApiModelProperty(value = "领用状态 0:未领用 1:已领用 每条任务可以存在多个用户,但是只有一个领用人") + private String claimStatus; + /** + * 计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式 + */ + @ApiModelProperty(value = "领用时间") + private LocalDateTime claimTime; +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskClient.java new file mode 100644 index 0000000..6ba132f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskClient.java @@ -0,0 +1,40 @@ +package org.springblade.hzinfo_inspect.task.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; +import java.util.List; + +/** + * @author xiashandong + * @created 2021/6/4 15:44 + **/ +@AllArgsConstructor +@RestController +public class InspectTaskClient implements IInspectTaskClient { + + private final ITaskService taskService; + + @GetMapping(QUERY_BY_PLAN_START_TIME) + @Override + public List queryByPlanStartTime(@RequestParam String startDate, @RequestParam String endDate) { + Date startTime = DateUtil.parse(startDate, DateUtil.PATTERN_DATE); + Date endTime = DateUtil.plusDays(DateUtil.parse(endDate, DateUtil.PATTERN_DATE), 1); + return taskService.list(new LambdaQueryWrapper() {{ + ge(TaskEntity::getPlanStartTime, startTime); + lt(TaskEntity::getPlanStartTime, endTime); + }}); + } + @GetMapping(value = QUERY_BY_PLAN_START_TIME_AND_DEPT) + @Override + public List queryByPlanStartTimeAndDept(String startDate, String endDate, List depts) { + return taskService.queryByPlanStartTime(startDate,endDate,depts); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskReportClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskReportClient.java new file mode 100644 index 0000000..a7158bb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/feign/InspectTaskReportClient.java @@ -0,0 +1,138 @@ +package org.springblade.hzinfo_inspect.task.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import org.springblade.hzinfo_inspect.task.vo.DutyInspectTaskVO; +import org.springblade.hzinfo_inspect.task.vo.TaskCountVO; +import org.springblade.hzinfo_inspect.task.vo.TaskReportVO; +import org.apache.commons.collections4.MapUtils; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +@RestController +@RequestMapping(value = "real/time/task") +public class InspectTaskReportClient implements IInspectTaskReportClient { + + @Autowired + private ITaskService taskService; + + @RequestMapping(value = "/toReceives") + @Override + public List toReceives() { + //待领取 + List toReceives = taskService.list(new LambdaQueryWrapper() {{ + eq(TaskEntity::getStatus, 0); + ge(TaskEntity::getPlanStartTime, DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00")); + }}); + return toReceives; + } + + @RequestMapping(value = "/executorys") + @Override + public List executorys() { + //执行中 + List executory = taskService.list(new LambdaQueryWrapper() {{ + ge(TaskEntity::getPlanStartTime, DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00")). + and(wq -> wq.eq(TaskEntity::getStatus, 1).or().eq(TaskEntity::getStatus, 2).or().eq(TaskEntity::getStatus, 4)); + }}); + return executory; + } + + @RequestMapping(value = "/executeds") + @Override + public List executeds() { + //已完成 + List executeds = taskService.list(new LambdaQueryWrapper() {{ + eq(TaskEntity::getStatus, 3); + ge(TaskEntity::getPlanStartTime, DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00")); + }}); + return executeds; + } + + @RequestMapping(value = "/dayAll") + @Override + public List dayAll() { + List dayAll = taskService.list(new LambdaQueryWrapper() {{ + ge(TaskEntity::getPlanStartTime, DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00")); + }}); + return dayAll; + } + + @RequestMapping(value = "/classAll") + @Override + public List classAll(Map params) { + List classAll = taskService.list(new LambdaQueryWrapper() {{ + ge(TaskEntity::getPlanStartTime, params.get("endDate")); + lt(TaskEntity::getPlanStartTime, params.get("startDate")); + }}); + return classAll; + } + + @RequestMapping(value = "/getInspectTaskReport") + @Override + public List getInspectTaskReport(@RequestBody Map params) { + String startDate = (String) params.get("startDate"); + String endDate = (String) params.get("endDate"); + List deptId = (List) params.get("deptId"); + return taskService.getInspectTaskReport(startDate, endDate, deptId); + } + + @Override + @PostMapping(value = "/getReportConClusion") + public Map getReportConclusion(Map params) { + String startDate = (String) params.get("startDate"); + String endDate = (String) params.get("endDate"); + List deptId = (List) params.get("deptId"); + return taskService.getReportConclusion(startDate, endDate, deptId); + } + + @Override + public R getDutyInspectTask(Map params) { + DutyInspectTaskVO dutyInspectTaskVO = new DutyInspectTaskVO(); + dutyInspectTaskVO.setInspectTaskSum(0); + dutyInspectTaskVO.setInspectTaskFinish(0); + if(MapUtils.isEmpty(params)){ + return R.data(dutyInspectTaskVO); + } + LocalDateTime startTime = (LocalDateTime) params.get("startTime"); + LocalDateTime endTime = (LocalDateTime) params.get("endTime"); + List deptList = (List) params.get("deptList"); + if(!Optional.ofNullable(startTime).isPresent() || !Optional.ofNullable(endTime).isPresent() + || CollectionUtil.isEmpty(deptList)){ + return R.data(dutyInspectTaskVO); + } + // 查询所有巡检任务 + List taskList = taskService.list(new LambdaQueryWrapper() {{ + eq(TaskEntity::getIsDeleted, 0) + .ge(TaskEntity::getPlanStartTime, startTime) + .le(TaskEntity::getPlanStartTime, endTime) + .in(TaskEntity::getCreateDept, deptList); + }}); + if(CollectionUtil.isEmpty(taskList)){ + return R.data(dutyInspectTaskVO); + } + dutyInspectTaskVO.setInspectTaskSum(taskList.size()); + // 所有处理完成巡检任务 + List finshList = taskList.stream().filter(o-> null != o.getStatus() && o.getStatus().equals(3)).collect(Collectors.toList()); + if(CollectionUtil.isEmpty(finshList)){ + return R.data(dutyInspectTaskVO); + } + dutyInspectTaskVO.setInspectTaskFinish(finshList.size()); + return R.data(dutyInspectTaskVO); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/HzThreadPool.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/HzThreadPool.java new file mode 100644 index 0000000..eb66da2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/HzThreadPool.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.job; + +import java.util.concurrent.*; + +/** + * @Author: py + */ +public class HzThreadPool { + private static ThreadPoolExecutor fixedThreadExecutor; + + public HzThreadPool() { + } + + public static ThreadPoolExecutor getFixedThreadExecutor() { + return fixedThreadExecutor; + } + + static { + ThreadFactory threadFactory = Executors.defaultThreadFactory(); + fixedThreadExecutor = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque(), threadFactory); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/TaskJob.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/TaskJob.java new file mode 100644 index 0000000..c2ae9d4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/TaskJob.java @@ -0,0 +1,167 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task.job; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanCycleEnum; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanMethodEnum; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanStatusEnum; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanService; +import org.springblade.hzinfo_inspect.task.TaskContants.TaskStatusEnum; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.job.service.ITaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.TaskRemindManager; +import org.springblade.hzinfo_inspect.task.job.service.impl.ConcurrentTaskServcie; +import org.springblade.hzinfo_inspect.task.job.service.impl.SeizeTaskService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.utils.SpringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 任务派发 + * 计划状态 0:待审核-->1:已审核-->2:派发中(生成一次任务后)-->3:暂停-->4:结束-->5审核不通过 + * 任务状态 0未开始 1进行中 2暂停 3已完成 4未完成 + * @author ninglong + */ +@Component +@Slf4j +//@EnableScheduling +public class TaskJob { + + @Autowired + private IPlanService planService; + @Autowired + private ITaskService taskService; + @Autowired + private TaskRemindManager remindManager; +// @Autowired +// private IRobotTaskService robotTaskService; + + /** + * 派发任务 + */ + @Scheduled(cron = "30 0 0 * * ?") +// @XxlJob("taskJobDistribute") + @Transactional + public ReturnT taskDistribute() throws Exception { +// log.info("=====================派发任务==================="); + //清理无用的计划 + closePassedPlansAndTasks(); + //将已审核状态且开始时间在当前时间之前的计划改成派发中 + UpdateWrapper uwPlan = new UpdateWrapper<>(); + uwPlan.lambda().set(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.UNDERWAY_STATUS.getStatus())) + .eq(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.CHECK_STATUS.getStatus())) + .le(PlanEntity::getStartTime, LocalDate.now()); + planService.update(uwPlan); + //处理派发中(已经生成了一次任务)的计划 + QueryWrapper planQw = new QueryWrapper<>(); + planQw.lambda().eq(PlanEntity::getStatus,Integer.valueOf(PlanStatusEnum.UNDERWAY_STATUS.getStatus())); + List planList = planService.list(planQw); + for (PlanEntity plan:planList){ + if(PlanCycleEnum.NEVER_CYCLE.getCycle().equals(plan.getCycle())){//计划周期每次,只需要派发一次任务 + plan.setStatus(Integer.valueOf(PlanStatusEnum.FINISH_STATUS.getStatus())); + planService.updateById(plan); + } + ITaskJobService taskJobService = null; + if(PlanMethodEnum.SEIZE.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(SeizeTaskService.class); + }else if(PlanMethodEnum.CONCURRENT.getMethod().equals(plan.getMethod())){ + taskJobService = SpringUtil.getBean(ConcurrentTaskServcie.class); + } + taskJobService.sendTask(plan); + } + return ReturnT.SUCCESS; + } + + /** + * 定期关闭超过计划结束时间的巡检任务以及已审核状态的巡检计划 + * @param + * @return + */ +// @Scheduled(cron = "0 0 0 0 30 ?") + private void closePassedPlansAndTasks() { + //关闭超过计划结束时间暂停状态或者已审核或者派发中的巡检计划 + UpdateWrapper uwPlan = new UpdateWrapper<>(); + uwPlan.lambda().set(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.FINISH_STATUS.getStatus())) + .in(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.PAUSE_STATUS.getStatus()), + Integer.valueOf(PlanStatusEnum.CHECK_STATUS.getStatus()), + Integer.valueOf(PlanStatusEnum.UNDERWAY_STATUS.getStatus())) + .lt(PlanEntity::getEndTime, LocalDate.now()); + planService.update(uwPlan); + //关闭超过计划结束时间的巡检任务 + UpdateWrapper uwTask = new UpdateWrapper<>(); + uwTask.lambda().set(TaskEntity::getStatus, Integer.valueOf(TaskStatusEnum.UNFINISH_STATUS.getStatus())) + .ne(TaskEntity::getStatus, Integer.valueOf(TaskStatusEnum.FINISH_STATUS.getStatus())) + .lt(TaskEntity::getPlanEndTime, LocalDate.now()); + taskService.update(uwTask); + } + + /** + * 任务开始、结束前提醒、发短信 + * 每30秒执行一次 + */ + //@Scheduled(cron = "0/30 * * * * ?") + @XxlJob("taskRemind") + @Transactional + public ReturnT taskRemind(String param) throws Exception { + remindManager.taskRemind(); + return ReturnT.SUCCESS; + } + + /** + * 清空缓存, 主要是调试用 + * @param param + * @return + * @throws Exception + */ + @XxlJob("cleanCache") + public ReturnT cleanCache(String param) throws Exception { + remindManager.cleanCache(); + return ReturnT.SUCCESS; + } + + /** + * 重置缓存, 主要是调试用 + * @param param + * @return + * @throws Exception + */ + @XxlJob("resetCache") + public ReturnT resetCache(String param) throws Exception { + List beginList = taskService.list(Wrappers.lambdaQuery() + .ge(TaskEntity::getStartRemindTime, LocalDateTime.now()) + .eq(TaskEntity::getStartRemindFlag, true)); + List endList = taskService.list(Wrappers.lambdaQuery() + .ge(TaskEntity::getEndRemindTime, LocalDateTime.now()) + .eq(TaskEntity::getEndRemindFlag, true)); + remindManager.replaceBeginTaskCacheList(beginList); + remindManager.replaceEndTaskCacheList(endList); + return ReturnT.SUCCESS; + } + + /** + * 执行视频巡检任务 + * @param param + * @return + * @throws Exception + */ +// @XxlJob("execVideoTask") +// public ReturnT execVideoTask(String param) throws Exception { +// robotTaskService.executeVideoTaskByOrder(); +// return ReturnT.SUCCESS; +// } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/ITaskJobService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/ITaskJobService.java new file mode 100644 index 0000000..1a74c50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/ITaskJobService.java @@ -0,0 +1,55 @@ +package org.springblade.hzinfo_inspect.task.job.service; + +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; + +import java.util.List; + +/** + * 任务处理服务类 + * @author ninglong + * @create 2020-08-26 16:38 + */ +public interface ITaskJobService { + + /** + * 派发任务 + * @param plan 计划 + */ + default void sendTask(PlanEntity plan){ + if(PlanContants.PlanTypeEnum.CLASS_TYPE.getType().equals(plan.getType())){ + geneClassTask(plan.getId()); + } else { + sendTaskOther(plan); + } + } + + /** + * 派发任务,巡检计划类型不为班次时 + * @param plan 计划 + */ + void sendTaskOther(PlanEntity plan); + + /** + * 巡检计划类型为班次时,生成任务 + */ + List geneClassTask(Long planId); + + /** + * 派发任务, 有返回,巡检计划类型不为班次时 + * @param plan 计划 + */ + List sendTaskReturnTaskIdOther(PlanEntity plan); + + /** + * 派发任务, 有返回 + * @param plan 计划 + */ + default List sendTaskReturnTaskId(PlanEntity plan){ + if(PlanContants.PlanTypeEnum.CLASS_TYPE.getType().equals(plan.getType())){ + return geneClassTask(plan.getId()); + } else { + return sendTaskReturnTaskIdOther(plan); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskJobService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskJobService.java new file mode 100644 index 0000000..d0f718c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskJobService.java @@ -0,0 +1,422 @@ +package org.springblade.hzinfo_inspect.task.job.service; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +import org.springblade.hzinfo_inspect.obj.entity.*; +import org.springblade.hzinfo_inspect.obj.services.*; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanCycleEnum; +import org.springblade.hzinfo_inspect.plan.PlanContants.PlanTypeEnum; +import org.springblade.hzinfo_inspect.plan.entity.*; +import org.springblade.hzinfo_inspect.plan.service.*; +import org.springblade.hzinfo_inspect.task.TaskContants; +import org.springblade.hzinfo_inspect.task.TaskContants.ClaimStatusEnum; +import org.springblade.hzinfo_inspect.task.entity.*; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectProjectContentService; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectProjectService; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import com.xxl.job.core.log.XxlJobLogger; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.factory.annotation.Autowired; + +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.WeekFields; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 任务派发处理逻辑 + * @author ninglong + * @create 2020-08-26 17:06 + */ +@Slf4j +public class TaskJobService { + + @Autowired + private ITaskService taskService; + @Autowired + private IPlanUserService planUserService; + @Autowired + private IPlanPositionService planPostionService; + @Autowired + private IPlanOrgService planOrgService; + @Autowired + private IUserClient userClient; + @Autowired + private IPlanObjectTemplateService planObjectTemplateService; + @Autowired + private ObjectService objectService; + @Autowired + private ObjectUserService objectUserService; + @Autowired + private TemplateService templateService; + @Autowired + private ITaskObjectService taskObjectService; + @Autowired + private TemplateProjectService templateProjectService; + @Autowired + private ProjectService projectService; + @Autowired + private ITaskObjectProjectService taskObjectProjectService; + @Autowired + private ProjectContentService projectContentService; + @Autowired + private ITaskObjectProjectContentService taskObjectProjectContentService; + @Autowired + private ContentService contentService; + @Autowired + private ObjectTemplateService objectTemplateService; +// @Autowired +// private IDutyMainClient dutyMainClient; + + private final String dateSplit = "_"; + + /** + * 根据计划用户获取接任务的人 + * @param planUserId + * @param taskId + */ + public TaskUserEntity getTaskUser(Long planUserId, Long taskId,Long deptId) { +// public TaskUserEntity getTaskUser(Long planUserId, Long taskId,String tenantId) { + TaskUserEntity taskUserEntity = TaskUserEntity.builder().taskId(taskId).userId(planUserId) + .claimStatus(ClaimStatusEnum.UN_COLLECT.getStatus()).build(); +// taskUserEntity.setTenantId(tenantId); + taskUserEntity.setCreateDept(deptId); + return taskUserEntity; + } + + /** + * 从巡检计划和任务获取信息插入巡检任务对象表以及对应的历史数据表 + * @param plan 巡检计划实例 + * @param task 巡检任务实例 + * @return + */ + public String distributeTaskObjs(PlanEntity plan, TaskEntity task) { + String result = StringUtils.EMPTY; + List taskObjectList = Lists.newArrayList(); + if(PlanTypeEnum.FREE_TYPE.getType().equals(plan.getType())){//自由模式,通过计划找到用户,通过用户找到对象,通过对象找到模板 + List planUserList = planUserService.list(Wrappers.query().lambda().eq(PlanUserEntity::getPlanId,plan.getId())); + for (PlanUserEntity entity:planUserList){ + List objectUserList = objectUserService.list(Wrappers.query().lambda().eq(ObjectUserEntity::getUserId,entity.getUserId())); + for (ObjectUserEntity ou:objectUserList){ + //如果是抢占模式 + List existEntity = taskObjectList.stream().filter(taskObjectEntity -> ou.getObjectId().equals(taskObjectEntity.getObjectId())).collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(existEntity)){ + break; + } + result = distributeTaskObjs(taskObjectList,task,ou.getObjectId(),ou.getTemplateId()); + if(!result.equals(StringUtils.EMPTY)){ + break; + } + /*List otList = objectTemplateService.list(Wrappers.query().lambda().eq(ObjectTemplateEntity::getObjectId,ou.getObjectId())); + for (ObjectTemplateEntity template : otList) { + result = distributeTaskObjs(taskObjectList,task,template.getObjectId(),template.getTemplateId()); + if(!result.equals(StringUtils.EMPTY)){ + break; + } + }*/ + } + } + }else{ + List templates = planObjectTemplateService.list(Wrappers.query().lambda().eq(PlanObjectTemplateEntity::getPlanId,plan.getId())); + for (PlanObjectTemplateEntity template : templates) { + result = distributeTaskObjs(taskObjectList,task,template.getObjectId(),template.getTemplateId()); + if(!result.equals(StringUtils.EMPTY)){ + break; + } + } + } + if(taskObjectList.size()>0 && result.equals(StringUtils.EMPTY)){ + taskObjectService.saveBatch(taskObjectList); + } + return result; + } + + private String distributeTaskObjs(List taskObjectList,TaskEntity task,Long objectId,Long templateId){ + String result = StringUtils.EMPTY; + ObjectEntity io = objectService.getById(objectId); + if(io == null) { + return "巡检对象id="+objectId+"找不到记录"; + } + TemplateEntity templateInfo = templateService.getById(templateId); + if(templateInfo == null) { + return "巡检模板id="+templateId+"找不到记录"; + } + TaskObjectEntity ito = new TaskObjectEntity(); + ito.setTaskId(task.getId()); + ito.setObjectId(objectId); + ito.setCode(io.getCode()); + ito.setName(io.getName()); + ito.setAddress(io.getAddress()); + ito.setLttd(io.getLttd()); + ito.setLgtd(io.getLgtd()); + ito.setCreateUser(task.getCreateUser()); + ito.setCreateDept(task.getCreateDept()); + ito.setCreateTime(task.getCreateTime()); + ito.setDuplicateRecord(templateInfo.getDuplicateRecord()); +// ito.setTenantId(task.getTenantId()); + ito.setStatus(TaskContants.StatusEnum.INIT_STATUS.getStatus()); + taskObjectList.add(ito); + List projects = templateProjectService.list(Wrappers.query().lambda().eq(TemplateProjectEntity::getTemplateId,templateId)); + for (TemplateProjectEntity project : projects) { + result = distributeTaskProjects(task, objectId, project); + if(!result.equals(StringUtils.EMPTY)){ + break; + } + } + return result; + } + /** + * 从巡检任务、巡检计划对象模板、巡检模板项目获取信息插入巡检任务项目表以及对应的历史数据表 + * @param objectId 巡检计划对象模板实例 + * @param project 巡检模板项目实例 + * @return + */ + private String distributeTaskProjects(TaskEntity task, Long objectId, TemplateProjectEntity project) { + String result = StringUtils.EMPTY; + ProjectEntity ip = projectService.getById(project.getProjectId()); + if(ip == null) return "巡检项目id="+project.getProjectId()+"找不到记录"; + TaskObjectProjectEntity itop = new TaskObjectProjectEntity(); + itop.setObjectId(objectId); + itop.setProjectId(ip.getId()); + itop.setTaskId(task.getId()); + itop.setName(ip.getName()); + itop.setCode(ip.getCode()); + itop.setDescription(ip.getDescription()); + itop.setCreateTime(project.getCreateTime()); +// itop.setTenantId(task.getTenantId()); + itop.setCreateUser(task.getCreateUser()); + itop.setCreateDept(task.getCreateDept()); + itop.setStatus(TaskContants.StatusEnum.INIT_STATUS.getStatus()); + taskObjectProjectService.save(itop); + List contents = projectContentService.list(Wrappers.query().lambda().eq(ProjectContentEntity::getProjectId,project.getProjectId())); + for (ProjectContentEntity content : contents) { + result = distributeTaskContents(task, objectId, content); + if(!result.equals(StringUtils.EMPTY)){ + break; + } + } + return result; + } + + /** + * 从巡检任务、巡检计划对象模板、巡检项目内容获取信息插入巡检任务内容表以及对应的历史数据表 + * @param objectId 巡检计划对象模板实例 + * @param content 巡检项目内容实例 + * @return + */ + private String distributeTaskContents(TaskEntity task, Long objectId, ProjectContentEntity content) { + ContentEntity ioc = contentService.getById(content.getContentId()); + if(ioc == null) {return "巡检内容id="+content.getContentId()+"找不到记录";} + TaskObjectProjectContentEntity itopc = new TaskObjectProjectContentEntity(); + itopc.setTaskId(task.getId()); + itopc.setObjectId(objectId); + itopc.setProjectId(content.getProjectId()); + itopc.setContentId(content.getContentId()); + itopc.setCode(ioc.getCode()); + itopc.setName(ioc.getName()); + itopc.setDescription(ioc.getDescription()); + itopc.setCheckType(ioc.getCheckType()); + itopc.setRecordType(ioc.getRecordType()); + itopc.setCreateTime(content.getCreateTime()); +// itopc.setTenantId(task.getTenantId()); + itopc.setCreateUser(task.getCreateUser()); + itopc.setCreateDept(task.getCreateDept()); + itopc.setCheckTypeSon(ioc.getCheckTypeSon()); + itopc.setCameraAddr(ioc.getCameraAddr()); + itopc.setCameraId(ioc.getCameraId()); + itopc.setClockId(ioc.getClockId()); + itopc.setOtherParam(ioc.getOtherParam()); + itopc.setStatus(TaskContants.StatusEnum.INIT_STATUS.getStatus()); + itopc.setDictType(ioc.getDictType()); + taskObjectProjectContentService.save(itopc); + return StringUtils.EMPTY; + } + + /** + * 根据巡检计划返回与计划有关的所有用户 + * @param plan 巡检计划实例 + * @return 计划相关用户集合 + */ + public List getUsersByPlan(PlanEntity plan) { + List res = new LinkedList(); + if(PlanTypeEnum.USER_TYPE.getType().equals(plan.getType()) || PlanTypeEnum.FREE_TYPE.getType().equals(plan.getType())){ + QueryWrapper planUserQw = new QueryWrapper<>(); + planUserQw.lambda().eq(PlanUserEntity::getPlanId, plan.getId()); + res.addAll(planUserService.list(planUserQw)); + }else if(PlanTypeEnum.POSITION_TYPE.getType().equals(plan.getType())){ + QueryWrapper planPositionEntityQueryWrapper = new QueryWrapper<>(); + planPositionEntityQueryWrapper.lambda().eq(PlanPositionEntity::getPlanId, plan.getId()); + planPostionService.list(planPositionEntityQueryWrapper).stream().forEach(entity->{ + //获取该机构下所有用户列表 + List users = new ArrayList<>(); + List positionUsers = userClient.userListByPosition(entity.getPositionId()).getData(); + if(CollectionUtil.isNotEmpty(positionUsers)){ + users = positionUsers.stream().filter(user->user.getCreateDept().toString().contains(entity.getCreateDept().toString())).collect(Collectors.toList()); + } + //List users = userClient.userListByPositionAndDept(entity.getPositionId(), plan.getCreateDept()).getData(); + log.info("岗位信息:" + entity.toString() + "; 获取到的user:{}",users.stream().map(User::getName).collect(Collectors.joining(","))); + for(User u:users){ + res.add(PlanUserEntity.builder().planId(plan.getId()).userId(u.getId()).build()); + } + }); + }else if(PlanTypeEnum.ORG_TYPE.getType().equals(plan.getType())){ + QueryWrapper planOrgEntityQueryWrapper = new QueryWrapper<>(); + planOrgEntityQueryWrapper.lambda().eq(PlanOrgEntity::getPlanId, plan.getId()); + planOrgService.list(planOrgEntityQueryWrapper).stream().forEach(entity->{ + List users = userClient.userListByDeptId(entity.getOrgId()).getData(); + for(User u:users){ + res.add(PlanUserEntity.builder().planId(plan.getId()).userId(u.getId()).build()); + } + }); + }else if(PlanTypeEnum.CLASS_TYPE.getType().equals(plan.getType())){ + log.error("巡检计划为班次时,有单独的处理流程,不应该跑到该分支下面来, plan = " + plan.toString()); + JSONArray timeJsonArray; + if(Func.isNotEmpty(plan.getExecTimeJson())){ + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } + else{ + throw new ServiceException("巡检计划未设置值班班次: plan = " + plan.toString()); + } + for(int i=0;i ids = mainPerson.getPersons(); + //log.info("--计划为:{};人员ID为:{}--",plan.getName(),ids.stream().map(id->String.valueOf(id)).collect(Collectors.joining(","))); + //plan.setDutyId(mainPerson.getMainId()); +// if(Func.isNotEmpty(ids)){ +// for (Long id : ids) { +// res.add(PlanUserEntity.builder().planId(plan.getId()).userId(id).build()); +// } +// } else { +// log.error("获取该班次值班人员为空, plan = " + plan.toString()); +// } + } + } + /*PlanClassEntity one = planClassService.getOne(Wrappers.lambdaQuery(PlanClassEntity.class).eq(PlanClassEntity::getPlanId, plan.getId()).last(" limit 1 ")); + if(Func.isNotEmpty(one)) { + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + ImsDutyMainFeignVO mainPerson = dutyMainClient.getMainPerson(one.getClassId(), dfShort.format(LocalDate.now())); + List ids = mainPerson.getPersons(); + plan.setDutyId(mainPerson.getMainId()); + if(Func.isNotEmpty(ids)){ + for (Long id : ids) { + res.add(PlanUserEntity.builder().planId(plan.getId()).userId(id).build()); + } + } else { + log.error("获取该班次值班人员为空, plan = " + plan.toString()); + } + } else { + log.error("巡检计划未设置值班班次, plan = " + plan.toString()); + }*/ + } + //设置租户 + List userResult = res.stream().distinct().map(entity-> { +// entity.setTenantId(plan.getTenantId()); + entity.setCreateDept(plan.getCreateDept()); + return entity; + }).collect(Collectors.toList()); + //res.forEach(entity->entity.setTenantId(plan.getTenantId())); + return userResult; + } + + /** + * 根据计划信息设置任务信息 + * @param plan 巡检计划实例 + * @param totalTaskNum 任务数 并发任务有多少个人做任务就生成多少个任务,抢占任务只生成一个 + * @return 巡检任务实例 + */ + public TaskEntity fillInspectionTask(PlanEntity plan,int totalTaskNum) { + totalTaskNum = plan.getTaskTimesADay() * totalTaskNum; + TaskEntity task = new TaskEntity(); + LocalDate now = LocalDate.now(); + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd "); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + if(PlanCycleEnum.NEVER_CYCLE.getCycle().equals(plan.getCycle())) { + task.setBatchNumber(now.getYear()+dateSplit+now.getMonthValue()+dateSplit+now.getDayOfMonth() + "N"); + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(plan.getEndTime())+plan.getExecEndTime(), df)); + }else if(PlanCycleEnum.EVERYDAY_CYCLE.getCycle().equals(plan.getCycle())) { + task.setBatchNumber(now.getYear()+dateSplit+now.getMonthValue()+dateSplit+now.getDayOfMonth() +""); + if(Func.isNotEmpty(plan.getIsNextDay()) && plan.getIsNextDay()){ + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now.plusDays(1L)) + plan.getExecEndTime(), df)); + } else { + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now) + plan.getExecEndTime(), df)); + } + }else if(PlanCycleEnum.EVERYWEEK_CYCLE.getCycle().equals(plan.getCycle())) { + WeekFields weekFields = WeekFields.of(DayOfWeek.MONDAY,1); + int weeks = now.get(weekFields.weekOfYear()); + task.setBatchNumber(now.getYear()+dateSplit+now.getMonthValue() + dateSplit+weeks + "W"); + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now.plusWeeks(1)) + plan.getExecEndTime(), df)); + }else if(PlanCycleEnum.EVERYMONTH_CYCLE.getCycle().equals(plan.getCycle())) { + task.setBatchNumber(now.getYear()+dateSplit+now.getMonthValue()); + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now.plusMonths(1))+plan.getExecEndTime(), df)); + }else if(PlanCycleEnum.EVERYQUARTER_CYCLE.getCycle().equals(plan.getCycle())) { + task.setBatchNumber(now.getYear()+dateSplit+now.getMonthValue() + "Q"); + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now.plusMonths(3)) + plan.getExecEndTime(), df)); + }else if(PlanCycleEnum.EVERYYEAR_CYCLE.getCycle().equals(plan.getCycle())){ + task.setBatchNumber(now.getYear()+""); + task.setPlanEndTime(LocalDateTime.parse(dfShort.format(now.plusYears(1))+plan.getExecEndTime(), df)); + } + task.setDutyId(plan.getDutyId()); + task.setPlanId(plan.getId()); + task.setPlanName(plan.getName()); + task.setType(plan.getType()); + task.setCycle(plan.getCycle()); + if(PlanCycleEnum.NEVER_CYCLE.getCycle().equals(plan.getCycle())) { + task.setPlanStartTime(LocalDateTime.parse(dfShort.format(plan.getStartTime()) + plan.getExecStartTime(), df)); + } else { + task.setPlanStartTime(LocalDateTime.parse(dfShort.format(now) + plan.getExecStartTime(), df)); + } + task.setStatus(Integer.valueOf(TaskContants.TaskStatusEnum.INIT_STATUS.getStatus())); +// task.setTenantId(plan.getTenantId()); + task.setCreateUser(plan.getCreateUser()); + task.setCreateDept(plan.getCreateDept()); + task.setAutoVideo(plan.getAutoVideo()); + task.setMethod(plan.getMethod()); + task.setEndRemindFlag(true); + task.setStartRemindFlag(true); + task.setStartRemindTime(task.getPlanStartTime().minusMinutes(plan.getStartRemind())); + task.setEndRemindTime(task.getPlanEndTime().minusMinutes(plan.getEndRemind())); + int taskCount = taskService.count(Wrappers.query().lambda().eq(TaskEntity::getPlanId,task.getPlanId()).eq(TaskEntity::getBatchNumber, task.getBatchNumber())); + XxlJobLogger.log("该计划已生成计划批次:{},数量:{}",task.getBatchNumber(),taskCount); + if(taskCount>=totalTaskNum){ + log.info("计划id={}本周期batchNumber={}的任务已生成",plan.getId(),task.getBatchNumber()); + return null; + } + /*if(!(PlanContants.PlanTypeEnum.CLASS_TYPE.getType().equals(plan.getType()) + && PlanContants.PlanMethodEnum.CONCURRENT.getMethod().equals(plan.getMethod()))){ + + }*/ + taskService.save(task); +// remindCacheManager.addTaskToVideoCacheList(task); + return task; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskRemindManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskRemindManager.java new file mode 100644 index 0000000..8b61891 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskRemindManager.java @@ -0,0 +1,290 @@ +package org.springblade.hzinfo_inspect.task.job.service; + +import com.alibaba.fastjson.JSON; +import com.hnac.hzinfo.core.push.enums.PushAudienceType; +import com.hnac.hzinfo.core.push.model.PushAudience; +import com.hnac.hzinfo.core.push.model.PushInfo; +import com.hnac.hzinfo.core.push.model.PushPlatform; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.job.HzThreadPool; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.resource.feign.IPushClient; +import org.springblade.resource.feign.ISmsClient; +import org.springblade.resource.vo.PushInfoVO; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.DefaultTypedTuple; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.*; + +import java.util.concurrent.TimeUnit; + +/** + * 巡检任务通知、短信提醒管理器 + * 提醒列表使用redis缓存 + * + * @author py + */ +@Slf4j +@Component +public class TaskRemindManager { + + /** + * 巡检任务开始前发送短信信息阿里云模板 + **/ + @Value("${hzims.inspect.task.templateCode.taskBegin}") + private String taskBeginTemplateCode; + + /** + * 巡检任务结束前发送短信信息阿里云模板 + **/ + @Value("${hzims.inspect.task.templateCode.taskEnd}") + private String taskEndTemplateCode; + + /** + * 巡检消息推送模板 - 极光 + **/ + @Value("${hzims.inspect.task.jgPushCode}") + private String jgPushCode; + + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private ISmsClient smsClient; + @Autowired + private IPushClient pushClient; + + + /** + * 开始前提醒任务列表 + */ + final static String REMIND_TASK_BEGIN_LIST = "hzinfo:remind:begin:tasks"; + /** + * 结束前提醒任务列表 + */ + final static String REMIND_TASK_END_LIST = "hzinfo:remind:end:tasks"; + + /** + * 开始 + * 重置redis开始提醒缓存列表 + * 按照时间排序 : 正序 + */ + public void replaceBeginTaskCacheList(List taskBegin){ + //先删除 + redisTemplate.opsForZSet().removeRange(REMIND_TASK_BEGIN_LIST,0, -1); + setTaskBeginList(taskBegin); + } + + /** + * 结束 + * 重置redis结束提醒缓存列表 + * 按照时间排序 : 正序 + */ + public void replaceEndTaskCacheList(List taskEnd){ + //先删除 + redisTemplate.opsForZSet().removeRange(REMIND_TASK_END_LIST,0, -1); + setTaskEndList(taskEnd); + } + + /** + * 开始 + * 任务批量加入redis提醒缓存列表中 + * + */ + public void setTaskBeginList(List tasks){ + HashSet set = new HashSet(); + + for (int i = 0,len = tasks.size(); i < len ; i++){ + DefaultTypedTuple tuple = new DefaultTypedTuple<>(tasks.get(i),Double.valueOf(tasks.get(i).getStartRemindTime().toEpochSecond(ZoneOffset.of("+8")))); + set.add(tuple); + } + if(Func.isNotEmpty(set)){ + redisTemplate.opsForZSet().add(REMIND_TASK_BEGIN_LIST, set); + } + } + + /** + * 结束 + * 任务批量加入redis提醒缓存列表中 + */ + public void setTaskEndList(List tasks){ + HashSet set = new HashSet(); + for (int i = 0,len = tasks.size(); i < len ; i++){ + DefaultTypedTuple tuple = new DefaultTypedTuple<>(tasks.get(i),Double.valueOf(tasks.get(i).getEndRemindTime().toEpochSecond(ZoneOffset.of("+8")))); + set.add(tuple); + } + if(Func.isNotEmpty(set)){ + redisTemplate.opsForZSet().add(REMIND_TASK_END_LIST, set); + } + } + + + /** + * 把任务加入redis提醒缓存列表中 + * 加入的时候 按照时间排序 : 正序 + */ + public void addTaskToCacheList(TaskEntity task){ + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd "); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + redisTemplate.expire(REMIND_TASK_BEGIN_LIST,365,TimeUnit.DAYS); + if(task.getStartRemindTime().isAfter(LocalDateTime.parse(dfShort.format(LocalDate.now()) + "00:00:00", df))){ + redisTemplate.opsForZSet().add(REMIND_TASK_BEGIN_LIST, task, task.getStartRemindTime().toEpochSecond(ZoneOffset.of("+8"))); + log.info("--------------- key = hzinfo:remind:begin:tasks ---- size = " + redisTemplate.opsForZSet().size(REMIND_TASK_BEGIN_LIST)); + } + + if(task.getEndRemindTime().isAfter(LocalDateTime.parse(dfShort.format(LocalDate.now()) + "00:00:00", df))){ + redisTemplate.opsForZSet().add(REMIND_TASK_END_LIST, task, task.getEndRemindTime().toEpochSecond(ZoneOffset.of("+8"))); + log.info("--------------- key = hzinfo:remind:end:tasks ---- size = " + redisTemplate.opsForZSet().size(REMIND_TASK_END_LIST)); + } + } + + /** + * 任务开始前 + */ + static final int BEGIN_SEND_FLAG = 1; + /** + * 任务结束前 + */ + static final int END_SEND_FLAG = 2; + + /** + * 任务开始、结束前提醒 + */ + public void taskRemind(){ + sendMsg(BEGIN_SEND_FLAG); + sendMsg(END_SEND_FLAG); + } + + /** + * 任务开始、结束前提醒 + */ + public void cleanCache(){ + long currentTime = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")); + String key = REMIND_TASK_BEGIN_LIST; + for (int i = 0; i < 2; i++) { + if(i == 1 ){ + key = REMIND_TASK_END_LIST; + } + Set tasks = redisTemplate.opsForZSet().rangeByScore(key,0, currentTime); + if(Func.isNotEmpty(tasks)){ + for (TaskEntity task : tasks) { + //用户id为空,删除数据 + redisTemplate.opsForZSet().remove(key, task); + } + } + log.info(key + " 清空cache后 ---- size = " + redisTemplate.opsForZSet().size(key)); + } + + } + + /** + * 任务开始/结束前 + * 推送消息、发送短信 + * @param sendFlag 发送标识:任务开始前提醒 1;任务结束前提醒 2; + */ + private void sendMsg(int sendFlag){ + //redis key; 消息推送标题; 短信模板code + String key = "", title = "", templateCode = ""; + + switch (sendFlag){ + case BEGIN_SEND_FLAG: + key = REMIND_TASK_BEGIN_LIST; + title = "任务开始前提醒"; + templateCode = taskBeginTemplateCode; + break; + case END_SEND_FLAG: + key = REMIND_TASK_END_LIST; + title = "任务结束前提醒"; + templateCode = taskEndTemplateCode; + break; + default: + break; + } + + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + long currentTime = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")); + Set tasks = redisTemplate.opsForZSet().rangeByScore(key,0, currentTime); + + if(Func.isNotEmpty(tasks)){ + for (TaskEntity task : tasks) { +// if(ObjectUtil.isEmpty(task.getUserId())){ +// //把已发送的数据移除 +// redisTemplate.opsForZSet().remove(key, task); +// continue; +// } + // 移动端消息推送 : 使用 用户id做TAG,前端注册用户id为TAG + PushInfoVO pushInfoVO = new PushInfoVO(); +// pushInfoVO.setTenantId(task.getTenantId()); + + pushInfoVO.setTenantId(String.valueOf(task.getCreateDept())); + + PushPlatform platform = PushPlatform.all(); + Map> audienceMap = new HashMap<>(); + audienceMap.put(PushAudienceType.TAG, Arrays.asList(task.getUserId().toString())); + PushAudience audience = new PushAudience(false, audienceMap); + PushInfo pushInfo = new PushInfo(jgPushCode + , title + , "任务“"+ task.getPlanName() + "”的计划执行时间是:" + df.format(task.getPlanStartTime())+ " —— " + df.format(task.getPlanEndTime()) + , "" + , null + , platform + , audience); + pushInfoVO.setPushInfo(pushInfo); + + Map smsMap = new HashMap<>(3); + smsMap.put("one", task.getPlanName()); + if(sendFlag == BEGIN_SEND_FLAG){ + smsMap.put("two", df.format(task.getPlanStartTime())); + } else if(sendFlag == END_SEND_FLAG){ + smsMap.put("two", df.format(task.getPlanEndTime())); + } else { + //smsMap.put("three", df.format(task.getPlanEndTime())); + } + + String jsonParam = JSON.toJSONString(smsMap); + + User user = UserCache.getUser(task.getUserId()); + String userPhone = Func.isNotEmpty(user) ? user.getPhone() : null; + log.info("------------ 发送短信 用户手机号 = " + userPhone); + + String finalTemplateCode = templateCode; + HzThreadPool.getFixedThreadExecutor().execute(new Runnable() { + @Override + public void run() { + if(Func.isNotEmpty(userPhone)){ + // 发送短信 +// R success = smsClient.sendMessage(task.getTenantId(), finalTemplateCode, jsonParam, userPhone); + R success = smsClient.sendMessage(String.valueOf(task.getCreateDept()), finalTemplateCode, jsonParam, userPhone); + //log.info("msg -- 用户手机号:" + userPhone + " ; 短信内容:" + jsonParam + " ; TenantId:" + task.getTenantId() + " ; finalTemplateCode:" + finalTemplateCode + ";返回信息 = " + (Func.isNotEmpty(success)?success.toString(): "返回为空")); + log.info("msg -- 用户手机号:" + userPhone + " ; 短信内容:" + jsonParam + " ; deptId:" + String.valueOf(task.getCreateDept()) + " ; finalTemplateCode:" + finalTemplateCode + ";返回信息 = " + (Func.isNotEmpty(success)?success.toString(): "返回为空")); + + } + //推送消息给移动端 + pushClient.tenantPush(pushInfoVO); + log.info("msg -- 推送信息完成" ); + } + }); + + + //把已发送的数据移除 + redisTemplate.opsForZSet().remove(key, task); + log.info("已推送、发送短信后 --------------- key = " + key + " ---- size = " + redisTemplate.opsForZSet().size(key)); + } + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskVideoManager.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskVideoManager.java new file mode 100644 index 0000000..6e9084a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/TaskVideoManager.java @@ -0,0 +1,96 @@ +package org.springblade.hzinfo_inspect.task.job.service; + +//import org.springblade.hzinfo_inspect.ai.dto.VideoReturnDTO; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.*; + + +/** + * 视频巡检任务 + * 提醒列表使用redis缓存 + * @Author: py + */ +@Component +public class TaskVideoManager { + + /** + * 视频巡检任务列表 + */ + final static String VIDEO_TASK_LIST = "hzinfo:video:tasks"; + + /** + * 视频巡检 AI识别结果列表 + */ + final static String VIDEO_TASK_AI_RESULT= "hzinfo:video:ai:results"; + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 把AI识别结果加入redis缓存中 + */ +// public void addAiResultToMap(VideoReturnDTO returnDTO){ +// redisTemplate.opsForHash().put(VIDEO_TASK_AI_RESULT, returnDTO.getVideo(), returnDTO); +// } +// +// /** +// * 从redis缓存中取出AI识别结果 +// */ +// public VideoReturnDTO getAiResultFromMap(String video){ +// if(redisTemplate.opsForHash().hasKey(VIDEO_TASK_AI_RESULT, video)){ +// return (VideoReturnDTO)redisTemplate.opsForHash().get(VIDEO_TASK_AI_RESULT, video); +// } +// return null; +// } + + + + /** + * 把任务加入redis提醒缓存列表中 + */ + public void addTaskToVideoCacheList(TaskEntity task){ + if(task.getAutoVideo().equals(PlanContants.InspectTypeEnum.VIDEO.getVal())){ + redisTemplate.opsForHash().put(VIDEO_TASK_LIST, task.getId(), task); + } + } + + + /** + * 把任务加入redis提醒缓存列表中 + */ + public void deleteTaskFromCacheList(TaskEntity task){ + redisTemplate.opsForHash().delete(VIDEO_TASK_LIST, task.getId()); + } + + + /** + * + */ + public void deleteTaskFromCacheList(String taskId){ + redisTemplate.opsForHash().delete(VIDEO_TASK_LIST, taskId); + } + + /** + * 从缓存中取出当前时间加一分钟之前的所有数据 + */ + public List getTasksFromCacheList(){ + List tasks = new ArrayList<>(); + HashMap map = (HashMap) redisTemplate.opsForHash().entries(VIDEO_TASK_LIST); + map.forEach((id, task) ->{ + if(task.getPlanStartTime().isBefore(LocalDateTime.now().plusMinutes(1L))){ + tasks.add(task); + deleteTaskFromCacheList(id); + } + }); + return tasks; + } + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/ConcurrentTaskServcie.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/ConcurrentTaskServcie.java new file mode 100644 index 0000000..32ffb69 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/ConcurrentTaskServcie.java @@ -0,0 +1,256 @@ +package org.springblade.hzinfo_inspect.task.job.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; +//import com.hnac.hzims.operational.duty.feign.IDutyMainClient; +//import com.hnac.hzims.operational.duty.vo.ImsDutyMainFeignVO; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.entity.PlanUserEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanService; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskResultEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.springblade.hzinfo_inspect.task.job.service.ITaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.TaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.TaskRemindManager; +import org.springblade.hzinfo_inspect.task.job.service.TaskVideoManager; +import org.springblade.hzinfo_inspect.task.service.ITaskResultService; +import org.springblade.hzinfo_inspect.task.service.ITaskUserService; +import com.xxl.job.core.log.XxlJobLogger; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * 并发任务派发 + * + * @author ninglong + * @create 2020-08-26 16:42 + */ +@Service +@Slf4j +public class ConcurrentTaskServcie extends TaskJobService implements ITaskJobService { + + @Autowired + private ITaskUserService taskUserService; + @Autowired + private ITaskResultService taskResultService; + @Autowired + private TaskRemindManager remindCacheManager; + @Autowired + private TaskVideoManager taskVideoManager; + @Autowired + private IPlanService planService; +// @Autowired +// private IDutyMainClient dutyMainClient; + + /** + * 派发任务 + * + * @param plan 计划 + */ + @Override + public void sendTaskOther(PlanEntity plan) { + plan = planService.getById(plan.getId()); + LocalDateTime now = LocalDateTime.now(); + String defaultReason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + List users = this.getUsersByPlan(plan); + List taskUserList = Lists.newArrayList(); + + JSONArray timeJsonArray = null; + if (Func.isNotEmpty(plan.getExecTimeJson())) { + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } + for (PlanUserEntity user : users) { + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + if (Func.isNotEmpty(timeJsonArray)) { + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if (time.containsKey("isNextDay")) { + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + } else { + plan.setExecStartTime("00:00:00"); + plan.setExecEndTime("23:59:59"); + } + TaskEntity task = fillInspectionTask(plan, users.size()); + if (task == null) { + continue; + } + taskUserList.add(this.getTaskUser(user.getUserId(), task.getId(), plan.getCreateDept())); + String reason = distributeTaskObjs(plan, task); + if (reason.equals(StringUtils.EMPTY)) { + reason = defaultReason; + } + XxlJobLogger.log(reason); + + TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); + taskResultEntity.setCreateDept(plan.getCreateDept()); + taskResultService.save(taskResultEntity); + + //添加到提醒cache + task.setUserId(user.getUserId()); + remindCacheManager.addTaskToCacheList(task); + taskVideoManager.addTaskToVideoCacheList(task); + } + } + if (taskUserList.size() > 0) { + taskUserService.saveBatch(taskUserList); + } else { + log.error("ConcurrentTaskServcie...没有任务用户: plan = " + plan.toString()); + XxlJobLogger.log("ConcurrentTaskServcie...没有任务用户: plan = " + plan.toString()); + } + } + + /** + * 巡检计划为班次时,生成任务 + */ + @Override + public List geneClassTask(Long planId) { + List taskIds = new ArrayList<>(); + PlanEntity plan = planService.getById(planId); + List taskUserList = Lists.newArrayList(); + + LocalDateTime now = LocalDateTime.now(); + String defaultReason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + + JSONArray timeJsonArray; + if (Func.isNotEmpty(plan.getExecTimeJson())) { + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } else { + log.error("巡检计划未设置值班班次: plan = " + plan.toString()); + return taskIds; + } + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if (time.containsKey("isNextDay")) { + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + + //获取值班用户 + if (time.containsKey("classId")) { + Long classId = time.getLong("classId"); + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// ImsDutyMainFeignVO mainPerson = dutyMainClient.getMainPerson(classId, dfShort.format(LocalDate.now())); +// List ids = mainPerson.getPersons(); +// plan.setDutyId(mainPerson.getMainId()); +// if (Func.isNotEmpty(ids)) { +// for (Long id : ids) { +// TaskEntity task = fillInspectionTask(plan, ids.size()); +// if (task == null) { +// continue; +// } +// taskUserList.add(this.getTaskUser(id, task.getId(), plan.getTenantId())); +// String reason = distributeTaskObjs(plan, task); +// if (reason.equals(StringUtils.EMPTY)) { +// reason = defaultReason; +// } +// +// XxlJobLogger.log(reason); +// TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); +// taskResultService.save(taskResultEntity); +// +// //添加到提醒cache +// task.setUserId(id); +// remindCacheManager.addTaskToCacheList(task); +// taskVideoManager.addTaskToVideoCacheList(task); +// taskIds.add(task.getId()); +// } +// } else { +// log.error("获取该班次值班人员为空, plan = " + plan.toString()); +// return taskIds; +// } + } else { + log.error("巡检计划未设置值班班次, plan = " + plan.toString()); + return taskIds; + } + } + if (taskUserList.size() > 0) { + taskUserService.saveBatch(taskUserList); + } + return taskIds; + } + + /** + * 派发任务 + * + * @param plan 计划 + */ + @Override + public List sendTaskReturnTaskIdOther(PlanEntity plan) { + List taskIds = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + String defaultReason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + List users = this.getUsersByPlan(plan); + List taskUserList = Lists.newArrayList(); + + JSONArray timeJsonArray = null; + if (Func.isNotEmpty(plan.getExecTimeJson())) { + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } + for (PlanUserEntity user : users) { + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + if (Func.isNotEmpty(timeJsonArray)) { + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if (time.containsKey("isNextDay")) { + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + } else { + plan.setExecStartTime("00:00:00"); + plan.setExecEndTime("23:59:59"); + } + TaskEntity task = fillInspectionTask(plan, users.size()); + if (task == null) { + continue; + } + taskUserList.add(this.getTaskUser(user.getUserId(), task.getId(), plan.getCreateDept())); + String reason = distributeTaskObjs(plan, task); + if (reason.equals(StringUtils.EMPTY)) { + reason = defaultReason; + } + XxlJobLogger.log(reason); + TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); + taskResultEntity.setCreateDept(plan.getCreateDept()); + taskResultService.save(taskResultEntity); + + //添加到提醒cache + task.setUserId(user.getUserId()); + remindCacheManager.addTaskToCacheList(task); + taskVideoManager.addTaskToVideoCacheList(task); + taskIds.add(task.getId()); + } + } + if (taskUserList.size() > 0) { + taskUserService.saveBatch(taskUserList); + } else { + log.error("ConcurrentTaskServcie...没有任务用户: plan = " + plan.toString()); + XxlJobLogger.log("ConcurrentTaskServcie...没有任务用户: plan = " + plan.toString()); + } + + return taskIds; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/SeizeTaskService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/SeizeTaskService.java new file mode 100644 index 0000000..ef830d2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/job/service/impl/SeizeTaskService.java @@ -0,0 +1,238 @@ +package org.springblade.hzinfo_inspect.task.job.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.entity.PlanUserEntity; +import org.springblade.hzinfo_inspect.plan.service.IPlanService; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskResultEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.springblade.hzinfo_inspect.task.job.service.ITaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.TaskJobService; +import org.springblade.hzinfo_inspect.task.job.service.TaskRemindManager; +import org.springblade.hzinfo_inspect.task.job.service.TaskVideoManager; +import org.springblade.hzinfo_inspect.task.service.ITaskResultService; +import org.springblade.hzinfo_inspect.task.service.ITaskUserService; +import com.xxl.job.core.log.XxlJobLogger; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 抢占任务派发 + * @author ninglong + * @create 2020-08-26 16:39 + */ +@Service +@Slf4j +public class SeizeTaskService extends TaskJobService implements ITaskJobService { + + @Autowired + private ITaskUserService taskUserService; + @Autowired + private ITaskResultService taskResultService; + @Autowired + private TaskRemindManager remindCacheManager; + @Autowired + private TaskVideoManager taskVideoManager; + @Autowired + private IPlanService planService; +// @Autowired +// private IDutyMainClient dutyMainClient; + + /** + * 派发任务 + * @param plan 计划 + */ + @Override + public void sendTaskOther(PlanEntity plan) { + plan = planService.getById(plan.getId()); + List users = this.getUsersByPlan(plan); + List taskUserList = Lists.newArrayList(); + + JSONArray timeJsonArray = null; + if(Func.isNotEmpty(plan.getExecTimeJson())){ + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + if(Func.isNotEmpty(timeJsonArray)){ + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if(time.containsKey("isNextDay")){ + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + } else { + plan.setExecStartTime("00:00:00"); + plan.setExecEndTime("23:59:59"); + } + TaskEntity task = this.fillInspectionTask(plan,1); + if(task==null){continue;} + for(PlanUserEntity user:users){ + taskUserList.add(this.getTaskUser(user.getUserId(),task.getId(),plan.getCreateDept())); + //添加到提醒cache + task.setUserId(user.getUserId()); + remindCacheManager.addTaskToCacheList(task); + taskVideoManager.addTaskToVideoCacheList(task); + } + String reason = this.distributeTaskObjs(plan,task); + if(reason.equals(StringUtils.EMPTY)){ + LocalDateTime now = LocalDateTime.now(); + reason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + } + XxlJobLogger.log(reason); + TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); + taskResultEntity.setCreateDept(plan.getCreateDept()); + taskResultService.save(taskResultEntity); + } + + if(taskUserList.size()>0){ + taskUserService.saveBatch(taskUserList); + } else { + log.error("没有用户: plan = " + plan.toString()); + XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + plan.toString()); + } + } + + /** + * 巡检计划为班次时,生成任务 + */ + @Override + public List geneClassTask(Long planId) + { + List taskIds = new ArrayList<>(); + + PlanEntity plan = planService.getById(planId); + List taskUserList = Lists.newArrayList(); + + JSONArray timeJsonArray; + if(Func.isNotEmpty(plan.getExecTimeJson())){ + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } else { + log.error("巡检计划未设置值班班次: plan = " + plan.toString()); + return taskIds; + } + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if(time.containsKey("isNextDay")){ + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + + TaskEntity task = this.fillInspectionTask(plan,1); + if(task==null){continue;} + //获取值班用户 + if(time.containsKey("classId")){ + Long classId = time.getLong("classId"); + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// ImsDutyMainFeignVO mainPerson = dutyMainClient.getMainPerson(classId, dfShort.format(LocalDate.now())); +// List ids = mainPerson.getPersons(); +// plan.setDutyId(mainPerson.getMainId()); +// if(Func.isNotEmpty(ids)){ +// for (Long id : ids) { +// taskUserList.add(this.getTaskUser(id,task.getId(),plan.getTenantId())); +// //添加到提醒cache +// task.setUserId(id); +// remindCacheManager.addTaskToCacheList(task); +// taskVideoManager.addTaskToVideoCacheList(task); +// } +// } + } else { + log.error("获取该班次值班人员为空, plan = " + plan.toString()); + return taskIds; + } + String reason = this.distributeTaskObjs(plan,task); + if(reason.equals(StringUtils.EMPTY)){ + LocalDateTime now = LocalDateTime.now(); + reason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + } + XxlJobLogger.log(reason); + TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); + taskResultEntity.setCreateDept(plan.getCreateDept()); + taskResultService.save(taskResultEntity); + } + + if(taskUserList.size()>0){ + taskUserService.saveBatch(taskUserList); + } + return taskIds; + } + + /** + * 派发任务 + * @param plan 计划 + */ + @Override + public List sendTaskReturnTaskIdOther(PlanEntity plan) { + List taskIds = new ArrayList<>(); + List users = this.getUsersByPlan(plan); + List taskUserList = Lists.newArrayList(); + + JSONArray timeJsonArray = null; + if(Func.isNotEmpty(plan.getExecTimeJson())){ + /** 多次计划执行时间 **/ + timeJsonArray = JSON.parseArray(plan.getExecTimeJson()); + } + /** 多次任务 **/ + for (int j = 0; j < plan.getTaskTimesADay(); j++) { + if(Func.isNotEmpty(timeJsonArray)){ + JSONObject time = timeJsonArray.getJSONObject(j); + plan.setExecStartTime(time.get("execStartTime").toString()); + plan.setExecEndTime(time.get("execEndTime").toString()); + if(time.containsKey("isNextDay")){ + plan.setIsNextDay(time.getBoolean("isNextDay")); + } + } else { + plan.setExecStartTime("00:00:00"); + plan.setExecEndTime("23:59:59"); + } + TaskEntity task = this.fillInspectionTask(plan,1); + if(task==null){continue;} + for(PlanUserEntity user:users){ + taskUserList.add(this.getTaskUser(user.getUserId(),task.getId(),plan.getCreateDept())); + //添加到提醒cache + task.setUserId(user.getUserId()); + remindCacheManager.addTaskToCacheList(task); + taskVideoManager.addTaskToVideoCacheList(task); + } + String reason = this.distributeTaskObjs(plan,task); + if(reason.equals(StringUtils.EMPTY)){ + LocalDateTime now = LocalDateTime.now(); + reason = plan.getName() + now.getYear() + "年" + now.getMonthValue() + "月" + now.getDayOfMonth() + "日的任务派发成功"; + } + XxlJobLogger.log(reason); + TaskResultEntity taskResultEntity = TaskResultEntity.builder().planId(task.getPlanId()).batchNumber(task.getBatchNumber()).reason(reason).build(); +// taskResultEntity.setTenantId(plan.getTenantId()); + taskResultEntity.setCreateDept(plan.getCreateDept()); + taskResultService.save(taskResultEntity); + taskIds.add(task.getId()); + } + + if(taskUserList.size()>0){ + taskUserService.saveBatch(taskUserList); + } else { + log.error("没有用户: plan = " + plan.toString()); + XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + plan.toString()); + } + return taskIds; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.java new file mode 100644 index 0000000..8d88190 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.EventAttachmentEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface EventAttachmentMapper extends BaseMapper { + + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.xml new file mode 100644 index 0000000..49c0371 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventAttachmentMapper.xml @@ -0,0 +1,14 @@ + + + + + update hz_st_event_attachment set IS_DELETED = 1 + where ID IN ( select * from + ( + SELECT a.ID from hz_st_event_attachment a + LEFT JOIN hz_st_ex_event e ON a.EVENT_ID = e.ID + LEFT JOIN hz_st_ex_task t on e.TASK_ID = t.id WHERE t.PLAN_ID = #{planId} + )n ) + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.java new file mode 100644 index 0000000..e19d93d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.EventRecordEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface EventRecordMapper extends BaseMapper { + + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.xml new file mode 100644 index 0000000..b6c94ce --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/EventRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + update hz_st_ex_event_record set IS_DELETED = 1 + where ID IN ( select * from + ( + SELECT r.ID from hz_st_ex_event_record r + LEFT JOIN hz_st_ex_event e ON r.EVENT_ID = e.ID + LEFT JOIN hz_st_ex_task t on e.TASK_ID = t.id WHERE t.PLAN_ID = #{planId} + )n ) + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.java new file mode 100644 index 0000000..9bb88b5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.java @@ -0,0 +1,25 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.EventEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskEventMapper extends BaseMapper { + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); + + List getEvents(@Param("event") EventEntity event); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.xml new file mode 100644 index 0000000..ec5f7d5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskEventMapper.xml @@ -0,0 +1,30 @@ + + + + + update hz_st_ex_event set IS_DELETED = 1 + where ID IN ( select * from + ( + SELECT e.ID from hz_st_ex_event e + LEFT JOIN hz_st_ex_task t on e.TASK_ID = t.id + WHERE t.PLAN_ID = #{planId} + )n ) + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.java new file mode 100644 index 0000000..d040c0d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.java @@ -0,0 +1,100 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import org.springblade.hzinfo_inspect.task.vo.TaskCountVO; +import org.springblade.core.datascope.annotation.UserDataAuth; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.task.entity.InspectionTaskSMS; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.vo.TaskListQuery; +import org.springblade.hzinfo_inspect.task.vo.TaskVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +import java.util.List; + +/** + * 任务 Mapper 接口 + * @author Chill + */ +@Mapper +public interface TaskMapper extends UserDataScopeBaseMapper { + + /** + * PC端任务列表 + * @return + */ + List getListPage(@Param("page") IPage page, @Param("task") TaskListQuery task); + + /** + * PC端任务列表 + * @return + */ + @UserDataAuth + List getListPageAuth(@Param("page") IPage page, @Param("task") TaskListQuery task); + + + /** + * 任务报备列表 + * @return + */ + @UserDataAuth + List getListPageOfTaskRecord(@Param("page") IPage page, @Param("task") TaskListQuery task); + + + /** + * phone端任务列表 + * @return + */ + List getListPageOfPhone(@Param("page") IPage page, @Param("task") TaskListQuery task); + + /** + * phone端任务列表 不分页 + * @param task + * @return + */ + List getListPageOfPhone(@Param("task") TaskListQuery task); + + /** + * 机器人获取当天任务列表 不分页 + * @param task + * @return + */ + @UserDataAuth + List getListOfPhone(@Param("task") TaskListQuery task); + + + /** + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发开始前提醒短信) + * @param it + * @return + */ + @UserDataAuth + List selectTodayStartRemindTaskSMSListByPlanId(@Param("it") TaskEntity it); + + /** + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发结束前提醒短信) + * @param it + * @return + */ + @UserDataAuth + List selectTodayEndRemindTaskSMSListByPlanId(@Param("it") TaskEntity it); + + /** + * 根据计划开始时间结束时间及创建部门查询任务 + * @param startTime + * @param endTime + * @param list + * @return + */ + List selectByPlanStartTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List list); + + /** + * 根据计划开始时间以及部门列表查询任务(根据执行人组合) + * @param startTime + * @param endTime + * @param list + * @return + */ + List selectReportByTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.xml new file mode 100644 index 0000000..089aaa7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskMapper.xml @@ -0,0 +1,283 @@ + + + + + + + and t.TENANT_ID = #{task.tenantId} + + + and t.PLAN_NAME like concat('%', #{task.planName}, '%') + + + and t.BATCH_NUMBER like concat('%', #{task.batchNumber}, '%') + + + and t.PLAN_START_TIME >= #{task.planStartTime} + + + and t.PLAN_END_TIME <= #{task.planEndTime} + + + and t.PLAN_END_TIME >= #{task.startTime} + + + and t.CYCLE=#{task.cycle} + + + and t.STATUS=#{task.status} + + + and t.KEEP_ON_RECORD=#{task.keepOnRecord} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskNoUserDataScopeMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskNoUserDataScopeMapper.java new file mode 100644 index 0000000..ac7c42c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskNoUserDataScopeMapper.java @@ -0,0 +1,12 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author hx + */ +@Mapper +public interface TaskNoUserDataScopeMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.java new file mode 100644 index 0000000..fe04c7a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectEntity; +import org.springblade.hzinfo_inspect.task.vo.TaskObjectVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskObjectMapper extends BaseMapper { + + List getTaskObjects(@Param("to") TaskObjectEntity to); + + List getTaskObjectsDetail(@Param("to") TaskObjectEntity to); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.xml new file mode 100644 index 0000000..8353411 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectMapper.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.java new file mode 100644 index 0000000..fec7783 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.java @@ -0,0 +1,19 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectContentEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskObjectProjectContentMapper extends BaseMapper { + + List getTaskObjectProjectContents(@Param("topc") TaskObjectProjectContentEntity topc); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.xml new file mode 100644 index 0000000..86b119b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectContentMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.java new file mode 100644 index 0000000..847d480 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.java @@ -0,0 +1,19 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskObjectProjectMapper extends BaseMapper { + + List getTaskObjectProjects(@Param("top") TaskObjectProjectEntity top); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.xml new file mode 100644 index 0000000..3d20f87 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskObjectProjectMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskRecordMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskRecordMapper.java new file mode 100644 index 0000000..54de442 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskRecordMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskRecordEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskRecordMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskResultMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskResultMapper.java new file mode 100644 index 0000000..ce824da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskResultMapper.java @@ -0,0 +1,15 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskResultEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskResultMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.java new file mode 100644 index 0000000..c20ef92 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.java @@ -0,0 +1,24 @@ +package org.springblade.hzinfo_inspect.task.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface TaskUserMapper extends BaseMapper { + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); + + int updateDeleteStatus(@Param("taskId") Long taskId); + int deleteByTaskId(@Param("taskId") Long taskId,@Param("claimStatus")String claimStatus); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.xml new file mode 100644 index 0000000..d740a91 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/mapper/TaskUserMapper.xml @@ -0,0 +1,24 @@ + + + + + update hz_st_ex_task_user set IS_DELETED = 1 + where ID IN ( select * from + ( + SELECT u.ID from hz_st_ex_task_user u + LEFT JOIN hz_st_ex_task t on u.TASK_ID = t.id + WHERE t.PLAN_ID = #{planId} + )n ) + + + + update hz_st_ex_task_user set IS_DELETED = 0 + where task_id = #{taskId} + + + + delete from hz_st_ex_task_user where task_id = #{taskId} and CLAIM_STATUS=#{claimStatus} + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventAttachmentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventAttachmentService.java new file mode 100644 index 0000000..10b6592 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventAttachmentService.java @@ -0,0 +1,21 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; + +import org.springblade.hzinfo_inspect.task.entity.EventAttachmentEntity; + +/** + * 服务类 + * + * @author Chill + */ +public interface IEventAttachmentService extends BaseService { + + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventRecordService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventRecordService.java new file mode 100644 index 0000000..1ef0c24 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventRecordService.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.EventRecordEntity; + +/** + * 服务类 + * + * @author Chill + */ +public interface IEventRecordService extends BaseService { + + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(@Param("planId") Long planId); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventService.java new file mode 100644 index 0000000..aee9b1c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/IEventService.java @@ -0,0 +1,36 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.EventEntity; +import org.springblade.hzinfo_inspect.task.vo.EventAddVO; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface IEventService extends BaseService { + + + + boolean addTaskEvent(EventAddVO event); + + /** + * 机器人 添加事件 + * @param event + * @return + */ + boolean addTaskEventAuto(EventAddVO event); + + /** + * 删除事件,事件的所有关联表 + * @param planId + * @return + */ + boolean deleteEventByPlanId(Long planId); + + List getEventList(EventEntity event); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectContentService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectContentService.java new file mode 100644 index 0000000..357f8c3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectContentService.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectContentEntity; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskObjectProjectContentService extends BaseService { + + List getTaskObjectProjectContentList(TaskObjectProjectContentEntity topc); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectService.java new file mode 100644 index 0000000..e20feb5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectProjectService.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectEntity; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskObjectProjectService extends BaseService { + + List getTaskObjectProjectList(TaskObjectProjectEntity top); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectService.java new file mode 100644 index 0000000..1219d1e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskObjectService.java @@ -0,0 +1,25 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.hzinfo_inspect.task.vo.TaskObjectVO; +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectEntity; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskObjectService extends BaseService { + + List getTaskObjectList(TaskObjectEntity taskObjectEntity); + + /** + * 获取任务对象详情,含项目、内容 + * @param to + * @return + */ + List getTaskObjectsDetail(TaskObjectEntity to); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskRecordService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskRecordService.java new file mode 100644 index 0000000..8228380 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskRecordService.java @@ -0,0 +1,18 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.hzinfo_inspect.task.entity.TaskRecordEntity; + +/** + * 巡检报备服务类 + * + * @author Chill + */ +public interface ITaskRecordService extends BaseService { + + + /** + * 添加报备信息 + */ + Boolean addTaskRecord(TaskRecordEntity itr); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskResultService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskResultService.java new file mode 100644 index 0000000..0604910 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskResultService.java @@ -0,0 +1,13 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.hzinfo_inspect.task.entity.TaskResultEntity; +import org.springblade.core.mp.base.BaseService; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskResultService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskService.java new file mode 100644 index 0000000..25a1efd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskService.java @@ -0,0 +1,146 @@ +package org.springblade.hzinfo_inspect.task.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.hzinfo_inspect.task.entity.InspectionTaskSMS; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.vo.*; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskService extends BaseService { + + /** + * 删除任务,任务的所有关联表 + * @param planId + * @return + */ + boolean deleteTaskByPlanId(Long planId); + + /** + * 如果项目下面的任务都完成了,则变更项目状态为已完成 + * @param eventAddVO + */ + void checkProjectFinish(EventAddVO eventAddVO); + + /** + * 如果任务下面的对象都完成了,则变更任务状态为已完成 + * @param eventAddVO + */ + void checkTaskFinish(EventAddVO eventAddVO); + + /** + * 修改任务状态 + * + * 0未开始 1进行中 2暂停 3已完成 4未完成 + */ + Boolean modifyTaskStatus(Long id, Integer status); + + /** + * 开始任务 + */ + Boolean startTask(Long id); + + /** + * 机器人 + * 开始任务 + */ + Boolean startTaskForRobot(Long id, Long userId); + + /** + * 获取任务详情 + */ + List getTaskById(Long id); + + /** + * PC端任务列表 + * @return + */ + List getListPage(IPage page, TaskListQuery task); + + /** + * PC端任务列表 + * @return + */ + List getListPageAuth(IPage page, TaskListQuery task); + + + /** + * 任务报备列表 + * @return + */ + List getListPageOfTaskRecord(IPage page, TaskListQuery task); + + + /** + * 机器人获取当天任务列表 + * @param + * @return + */ + List getListOfPhone(String tenantId, Long userId); + + /** + * phone端任务列表 + * @return + */ + List getListPageOfPhone(IPage page, TaskListQuery task); + + /** + * 撤销领用 + * @param taskId + * @return + */ + Boolean cancelStart(Long taskId); + + /** + * hld + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发开始前提醒短信) + * @param it + * @return + */ + List selectTodayStartRemindTaskSMSListByPlanId(TaskEntity it); + + /** + * hld + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发结束前提醒短信) + * @param it + * @return + */ + List selectTodayEndRemindTaskSMSListByPlanId(TaskEntity it); + + /** + * 获取任务 项目list + * @param taskId + * @return + */ + List getObjPrj(Long taskId); + + List queryByPlanStartTime(String startTime, String endTime, List depts); + + /** + * 获取运维统计月报巡检模块内容 + * @param startDate + * @param endDate + * @param deptIdList + * @return + */ + List getInspectTaskReport(String startDate, String endDate, List deptIdList); + + Map getReportConclusion(String startDate, String endDate, List deptIdList); + + /** + * 根据开始时间以及机构列表查询任务,结果根据执行人组合 + * @param startDate + * @param endDate + * @param deptIdList + * @return + */ + List getTaskCountByTime(String startDate, String endDate, List deptIdList); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskUserService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskUserService.java new file mode 100644 index 0000000..9d93bae --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/ITaskUserService.java @@ -0,0 +1,23 @@ +package org.springblade.hzinfo_inspect.task.service; + +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITaskUserService extends BaseService { + /** + * 删除 + * @param planId 计划id + * @return + */ + int deleteByPlanId(Long planId); + + int updateDeleteStatus(Long taskId); + + int deleteByTaskId(Long taskId,String status); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventAttachmentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventAttachmentServiceImpl.java new file mode 100644 index 0000000..01714f4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventAttachmentServiceImpl.java @@ -0,0 +1,27 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import org.springblade.hzinfo_inspect.task.entity.EventAttachmentEntity; +import org.springblade.hzinfo_inspect.task.mapper.EventAttachmentMapper; +import org.springblade.hzinfo_inspect.task.service.IEventAttachmentService; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class EventAttachmentServiceImpl extends BaseServiceImpl implements IEventAttachmentService { + /** + * 删除 + * @param planId 计划id + * @return + */ + @Override + public int deleteByPlanId(@Param("planId") Long planId){ + return this.baseMapper.deleteByPlanId(planId); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventRecordServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventRecordServiceImpl.java new file mode 100644 index 0000000..1a11723 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventRecordServiceImpl.java @@ -0,0 +1,27 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.task.entity.EventRecordEntity; +import org.springblade.hzinfo_inspect.task.mapper.EventRecordMapper; +import org.springblade.hzinfo_inspect.task.service.IEventRecordService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class EventRecordServiceImpl extends BaseServiceImpl implements IEventRecordService { + + /** + * 删除 + * @param planId 计划id + * @return + */ + @Override + public int deleteByPlanId(@Param("planId") Long planId){ + return this.baseMapper.deleteByPlanId(planId); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventServiceImpl.java new file mode 100644 index 0000000..76974bf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/EventServiceImpl.java @@ -0,0 +1,443 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +import org.springblade.flow.core.utils.TaskUtil; +import org.springblade.hzinfo_inspect.obj.ObjContants.DuplicateRecordEnum; +import org.springblade.hzinfo_inspect.obj.utils.CodeUtils; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.problem.entity.InspectionFile; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblem; +import org.springblade.hzinfo_inspect.problem.entity.InspectionProblemAttachment; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionFileMapper; +import org.springblade.hzinfo_inspect.problem.mapper.InspectionProblemAttachmentMapper; +import org.springblade.hzinfo_inspect.problem.services.InspectionProblemService; +import org.springblade.hzinfo_inspect.task.TaskContants; +import org.springblade.hzinfo_inspect.task.TaskContants.AvailableEnum; +import org.springblade.hzinfo_inspect.task.entity.*; +import org.springblade.hzinfo_inspect.task.mapper.TaskEventMapper; +import org.springblade.hzinfo_inspect.task.service.*; +import org.springblade.hzinfo_inspect.task.vo.EventAddVO; +import org.springblade.hzinfo_inspect.task.vo.EventRecordAddVO; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.log.logger.BladeLogger; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.flow.core.constant.ProcessConstant; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.feign.IFlowClient; +import org.springblade.flow.core.utils.FlowUtil; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * 服务实现类 + * @author Chill + */ +@Service +public class EventServiceImpl extends BaseServiceImpl implements IEventService { + + @Autowired + private IEventRecordService eventRecordService; + @Autowired + private IEventAttachmentService eventAttachmentService; + @Autowired + private ITaskObjectService taskObjectService; + @Autowired + private ITaskObjectProjectContentService taskObjectProjectContentService; + @Autowired + private IFlowClient flowClient; + @Autowired + private ITaskObjectProjectService taskObjectProjectService; + @Autowired + private ITaskUserService taskUserService; + @Autowired + private IUserClient userClient; + + @Autowired + InspectionProblemService inspectionProblemService; + +// @Autowired +// private IOperPhenomenonClient phenomenonClient; + @Autowired + InspectionFileMapper inspectionFileMapper; + @Autowired + InspectionProblemAttachmentMapper problemAttachmentMapper; + + @Autowired + BladeLogger logger; + + private static final String PIC_STR = ".bmp.jpg.png.tif.gif.jpeg.wmf"; + private static final String VIDEO_STR = ".avi.rmvb.rm.asf.divx.mpg.mpeg.mpe.wmv.mp4.mkv.vob"; + + @Override + public List getEventList(EventEntity event){ + return this.baseMapper.getEvents(event); + } + + + /** + * 删除事件,事件的所有关联表 + * @param planId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteEventByPlanId(Long planId){ + eventAttachmentService.deleteByPlanId(planId); + eventRecordService.deleteByPlanId(planId); + this.baseMapper.deleteByPlanId(planId); + return true; + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addTaskEvent(EventAddVO eventVO){ + BladeUser user = AuthUtil.getUser(); + + //第一次登记时,需领用任务 + if(!AuthUtil.isAdministrator()){ + ITaskService taskService = SpringUtil.getBean(ITaskService.class); + TaskEntity taskEntity = taskService.getById(eventVO.getTaskId()); + TaskUserEntity taskUserEntity = taskUserService.getOne(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,eventVO.getTaskId()).eq(TaskUserEntity::getUserId,user == null ? eventVO.getUserId() : user.getUserId())); + if(taskUserEntity==null){ + throw new ServiceException("该任务已被别人领取"); + } + if(TaskContants.ClaimStatusEnum.UN_COLLECT.getStatus().equals(taskUserEntity.getClaimStatus())){ + taskUserEntity.setClaimStatus(TaskContants.ClaimStatusEnum.COLLECT.getStatus()); + taskUserEntity.setClaimTime(LocalDateTime.now()); + taskUserService.updateById(taskUserEntity); + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(taskEntity.getMethod())){//如果是抢占任务,删除能够抢占此任务的其他人 + taskUserService.remove(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,eventVO.getTaskId()).ne(TaskUserEntity::getUserId,taskUserEntity.getUserId())); + } + } + } + + EventEntity event = BeanUtil.copy(eventVO, EventEntity.class); + event.setUserId(user == null ? eventVO.getUserId() : user.getUserId()); +// if(Func.isEmpty(user)){ +// event.setTenantId("000000"); +// } + event.setObjectId(eventVO.getObjId()); + event.setCode(CodeUtils.randomCode()); + boolean success = this.save(event); + TaskObjectEntity taskObj = taskObjectService.getOne(Wrappers.lambdaQuery().eq(TaskObjectEntity::getTaskId, event.getTaskId()).eq(TaskObjectEntity::getObjectId, event.getObjectId())); + List recordVOList = eventVO.getRecords(); + List list = Lists.newArrayList(); + List taskObjectProjectContentEntityList = Lists.newArrayList(); + for(EventRecordAddVO recordVO:recordVOList){ + EventRecordEntity record = BeanUtil.copy(recordVO, EventRecordEntity.class); + record.setEventId(event.getId()); + record.setObjectId(eventVO.getObjId()); + record.setProjectId(eventVO.getProjectId()); + list.add(record); + + // 更新对象项目内容 + TaskObjectProjectContentEntity taskObjectProjectContent = taskObjectProjectContentService.getOne(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getTaskId,event.getTaskId()) + .eq(TaskObjectProjectContentEntity::getObjectId, event.getObjectId()) + .eq(TaskObjectProjectContentEntity::getProjectId, event.getProjectId()) + .eq(TaskObjectProjectContentEntity::getContentId, record.getContentId())); + if(taskObjectProjectContent!=null){ + //判断可重复记录 + if(DuplicateRecordEnum.no.getType().equals(taskObj.getDuplicateRecord())){ + taskObjectProjectContent.setAvailable(AvailableEnum.no.getType()); + } + taskObjectProjectContent.setStatus(TaskContants.StatusEnum.FINISH_STATUS.getStatus()); + taskObjectProjectContentEntityList.add(taskObjectProjectContent); + } + } + if(success && list.size()>0){ + success = eventRecordService.saveBatch(list); + } + if(success && taskObjectProjectContentEntityList.size()>0){ + success = taskObjectProjectContentService.updateBatchById(taskObjectProjectContentEntityList); + } + List fileList = Lists.newArrayList(); + for(String fileUrl:eventVO.getAttachments()){ + EventAttachmentEntity entity = EventAttachmentEntity.builder().eventId(event.getId()).fileUrl(fileUrl).build(); + fileList.add(entity); + } + if(success && fileList.size()>0){ + success = eventAttachmentService.saveBatch(fileList); + } + //如果是问题则启动工作流引擎 + if(TaskContants.ProblemEnum.yes.getType().equals(eventVO.getIsProblem())){ + //TODO 并入缺陷处理模块 +// startFlow(user,taskObj,event); + //登记问题 + insertProblem(eventVO,event); + + /**OperPhenomenonEntity phenomenon = new OperPhenomenonEntity(); + phenomenon.setSourceCode(DefectConstant.DefectSourceEnum.XJ.getStatus()); + phenomenon.setSourceId(event.getId()); + phenomenon.setFinder(user == null ? eventVO.getUserId() : user.getUserId()); + phenomenon.setDescripiton(eventVO.getDescription()); + phenomenon.setInitResult(eventVO.getInitResult()); + startPhenomenonFlow(phenomenon);**/ + } + checkProjectFinish(eventVO); + return success; + } + + //登记问题 + private void insertProblem(EventAddVO vo,EventEntity event){ + InspectionProblem param=new InspectionProblem(); + param.setDescription(vo.getDescription()); + param.setAddress(vo.getAddress()); + param.setTypeBig(vo.getTypeBig()); + param.setTypeSmall(vo.getTypeSmall()); + param.setCreator(AuthUtil.getUserId()); + param.setLgtd(vo.getLgtd()); + param.setLttd(vo.getLttd()); + param.setAcceptor(vo.getAcceptor()); + param.setTitle(vo.getTitle()); + param.setEventId(event.getId()); + InspectionProblem ip=inspectionProblemService.insertInspectionProblem(param); + + saveProblemFile(vo,ip.getId()); + } + //附件保存 + private void saveProblemFile(EventAddVO vo,Long problemId){ + for(String str:vo.getAttachments()) { + String suffix = str.substring(str.lastIndexOf(".")); + InspectionFile param = new InspectionFile(); + if(PIC_STR.indexOf(suffix) != -1) { + param.setType("1"); + }else if(VIDEO_STR.indexOf(suffix) != -1) { + param.setType("2"); + }else { + param.setType("3"); + } + param.setCreateTime(new Date()); + param.setFileSource(str); + inspectionFileMapper.insertInspectionFile(param); + InspectionProblemAttachment ipa=new InspectionProblemAttachment(); + ipa.setFileId(param.getId()); + ipa.setProblemId(problemId); + problemAttachmentMapper.insertInspectionProblemAttachment(ipa); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addTaskEventAuto(EventAddVO eventVO){ + BladeUser user = AuthUtil.getUser(); + + //第一次登记时,需领用任务 + if(!AuthUtil.isAdministrator()){ + ITaskService taskService = SpringUtil.getBean(ITaskService.class); + TaskEntity taskEntity = taskService.getById(eventVO.getTaskId()); + TaskUserEntity taskUserEntity = taskUserService.getOne(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,eventVO.getTaskId()).eq(TaskUserEntity::getUserId,user == null ? eventVO.getUserId() : user.getUserId())); + if(taskUserEntity==null){ + throw new ServiceException("该任务已被别人领取"); + } + if(TaskContants.ClaimStatusEnum.UN_COLLECT.getStatus().equals(taskUserEntity.getClaimStatus())){ + taskUserEntity.setClaimStatus(TaskContants.ClaimStatusEnum.COLLECT.getStatus()); + taskUserEntity.setClaimTime(LocalDateTime.now()); + taskUserService.updateById(taskUserEntity); + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(taskEntity.getMethod())){//如果是抢占任务,删除能够抢占此任务的其他人 + taskUserService.remove(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,eventVO.getTaskId()).ne(TaskUserEntity::getId,taskUserEntity.getUserId())); + } + } + } + + EventEntity event = BeanUtil.copy(eventVO, EventEntity.class); + event.setUserId(user == null ? eventVO.getUserId() : user.getUserId()); + event.setObjectId(eventVO.getObjId()); + event.setCode(CodeUtils.randomCode()); + boolean success = this.save(event); + TaskObjectEntity taskObj = taskObjectService.getOne(Wrappers.lambdaQuery().eq(TaskObjectEntity::getTaskId, event.getTaskId()).eq(TaskObjectEntity::getObjectId, event.getObjectId())); + List recordVOList = eventVO.getRecords(); + List list = Lists.newArrayList(); + List taskObjectProjectContentEntityList = Lists.newArrayList(); + + /**是否是问题 */ + boolean isProblem = false; + String contentNames = ""; + for(EventRecordAddVO recordVO:recordVOList){ + EventRecordEntity record = BeanUtil.copy(recordVO, EventRecordEntity.class); + record.setEventId(event.getId()); + record.setObjectId(eventVO.getObjId()); + record.setProjectId(eventVO.getProjectId()); + if(!isProblem && TaskContants.CurrentStatusEnum.abnormal.getType().equals(record.getCurrentStatus())){ + isProblem = true; + event.setIsProblem(TaskContants.ProblemEnum.yes.getType()); + event.setTypeBig("auto"); + event.setTypeSmall("1"); + this.updateById(event); + } + list.add(record); + // 更新对象项目内容 + TaskObjectProjectContentEntity taskObjectProjectContent = taskObjectProjectContentService.getOne(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getTaskId,event.getTaskId()) + .eq(TaskObjectProjectContentEntity::getObjectId, event.getObjectId()) + .eq(TaskObjectProjectContentEntity::getProjectId, event.getProjectId()) + .eq(TaskObjectProjectContentEntity::getContentId, record.getContentId())); + if(taskObjectProjectContent!=null){ + //判断可重复记录 + if(DuplicateRecordEnum.no.getType().equals(taskObj.getDuplicateRecord())){ + taskObjectProjectContent.setAvailable(AvailableEnum.no.getType()); + } + taskObjectProjectContent.setStatus(TaskContants.StatusEnum.FINISH_STATUS.getStatus()); + taskObjectProjectContentEntityList.add(taskObjectProjectContent); + + if(TaskContants.CurrentStatusEnum.abnormal.getType().equals( recordVO.getCurrentStatus() )){ + if(Func.isEmpty(contentNames)){ + contentNames = "-" + taskObjectProjectContent.getName(); + } else { + contentNames = contentNames + ";" + taskObjectProjectContent.getName(); + } + } + } + + } + if(success && list.size()>0){ + success = eventRecordService.saveBatch(list); + } + if(success && taskObjectProjectContentEntityList.size()>0){ + success = taskObjectProjectContentService.updateBatchById(taskObjectProjectContentEntityList); + } + + List fileList = Lists.newArrayList(); + for(String fileUrl:eventVO.getAttachments()){ + EventAttachmentEntity entity = EventAttachmentEntity.builder().eventId(event.getId()).fileUrl(fileUrl).build(); + fileList.add(entity); + } + if(success && fileList.size()>0){ + success = eventAttachmentService.saveBatch(fileList); + } + if(isProblem){ + event.setDescription("巡检值有异常"); + } + //如果是问题则登记任务 + if(TaskContants.ProblemEnum.yes.getType().equals(event.getIsProblem())){ + if(Func.isEmpty(user)){ + user = new BladeUser(); + user.setUserId(eventVO.getUserId()); + User userInfo = userClient.userInfoById(eventVO.getUserId()).getData(); + user.setUserName(userInfo.getName()); + } + //TODO 并入缺陷处理模块 + +// startFlow(user,taskObj,event); + //登记问题 + insertProblem(eventVO,event); +// OperPhenomenonEntity phenomenon = new OperPhenomenonEntity(); +// phenomenon.setTypeCode("1"); +// phenomenon.setName(taskObj.getName()); +// phenomenon.setDiscriminateStatus(DefectConstant.DiscrStatusEnum.INIT_STATUS.getStatus()); +// phenomenon.setFaultName(taskObj.getName() + contentNames + "-智能巡检异常"); +// phenomenon.setSourceCode(DefectConstant.DefectSourceEnum.XJ.getStatus()); +// phenomenon.setSourceId(event.getId()); +// phenomenon.setFinder(user.getUserId()); +// phenomenon.setDescripiton(eventVO.getDescription()); +// phenomenon.setInitResult(eventVO.getInitResult()); +// phenomenon.setTenantId(eventVO.getTenantId()); +// phenomenon.setCreateUser(eventVO.getCreateUser()); +// phenomenon.setCreateDept(eventVO.getCreateDept()); +// startPhenomenonFlow(phenomenon); +// logger.info("addTaskEventAuto", phenomenon.toString()); + } + checkProjectFinish(eventVO); + return success; + } + + /** + * 把问题加入缺陷处理流程 + */ +// private void startPhenomenonFlow(OperPhenomenonEntity phenomenon){ +// phenomenonClient.submit(phenomenon); +// } + + private void startFlow(BladeUser user,TaskObjectEntity taskObj,EventEntity event){ + String processName = user.getUserName()+"关于【"+taskObj.getName()+"】的问题处理流程"; + Kv variables = Kv.create() + .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, user.getUserName()) +// .set(TaskContants.TASK_USER, TaskUtil.getTaskUser(user.getUserId().toString())) //任务处理人就一定提出问题的人么 + ; + R result = flowClient.startProcessInstanceContainNameByKey(TaskContants.PROGROM_FLOWABLE_KEY, + FlowUtil.getBusinessKey("hz_st_ex_event",String.valueOf(event.getId())),processName, variables); + if (result.isSuccess()) { + BladeFlow flow = result.getData(); + log.debug("流程已启动,流程ID:" + flow.getProcessInstanceId()); + // 返回流程id写入event + event.setProcessInstanceId(flow.getProcessInstanceId()); + updateById(event); + } else { + throw new ServiceException("开启流程失败,code=" + result.getCode()); + } + } + + /** + * 如果项目下面的任务都完成了,则变更项目状态为已完成 + * @param eventAddVO + */ + private void checkProjectFinish(EventAddVO eventAddVO){ + List topcList = taskObjectProjectContentService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getTaskId,eventAddVO.getTaskId()) + .eq(TaskObjectProjectContentEntity::getObjectId,eventAddVO.getObjId()) + .eq(TaskObjectProjectContentEntity::getProjectId, eventAddVO.getProjectId())); + + if(Func.isNotEmpty(topcList)){ + for (TaskObjectProjectContentEntity content : topcList) { + /*if(content.getAvailable().equals(AvailableEnum.yes.getType())){ + return; + }*/ + if(content.getStatus().equals(TaskContants.StatusEnum.INIT_STATUS.getStatus())){ + return; + } + } + } + + /** 任务项目状态设置为已完成*/ + taskObjectProjectService.update(Wrappers.lambdaUpdate() + .set(TaskObjectProjectEntity::getStatus, TaskContants.StatusEnum.FINISH_STATUS.getStatus()) + .eq(TaskObjectProjectEntity::getTaskId, eventAddVO.getTaskId()) + .eq(TaskObjectProjectEntity::getObjectId, eventAddVO.getObjId()) + .eq(TaskObjectProjectEntity::getProjectId, eventAddVO.getProjectId())); + + checkObjFinish(eventAddVO); + } + + /** + * 如果对象下面的任务都完成了,则变更对象状态为已完成 + * @param eventAddVO + */ + private void checkObjFinish(EventAddVO eventAddVO){ + List topList = taskObjectProjectService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectEntity::getTaskId,eventAddVO.getTaskId()) + .eq(TaskObjectProjectEntity::getObjectId,eventAddVO.getObjId())); + + + if(Func.isNotEmpty(topList)){ + for (TaskObjectProjectEntity project : topList) { + if(project.getStatus().equals(TaskContants.StatusEnum.INIT_STATUS.getStatus())){ + return; + } + } + } + + /** 任务对象状态设置为已完成*/ + taskObjectService.update(Wrappers.lambdaUpdate() + .set(TaskObjectEntity::getStatus, TaskContants.StatusEnum.FINISH_STATUS.getStatus()) + .eq(TaskObjectEntity::getTaskId, eventAddVO.getTaskId()) + .eq(TaskObjectEntity::getObjectId, eventAddVO.getObjId())); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectContentServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectContentServiceImpl.java new file mode 100644 index 0000000..d4cc7f7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectContentServiceImpl.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectContentEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskObjectProjectContentMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectProjectContentService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskObjectProjectContentServiceImpl extends BaseServiceImpl implements ITaskObjectProjectContentService { + @Override + public List getTaskObjectProjectContentList(TaskObjectProjectContentEntity topc) { + return this.baseMapper.getTaskObjectProjectContents(topc); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectServiceImpl.java new file mode 100644 index 0000000..4e6ee79 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectProjectServiceImpl.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectProjectEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskObjectProjectMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectProjectService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskObjectProjectServiceImpl extends BaseServiceImpl implements ITaskObjectProjectService { + @Override + public List getTaskObjectProjectList(TaskObjectProjectEntity top){ + return this.baseMapper.getTaskObjectProjects(top); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectServiceImpl.java new file mode 100644 index 0000000..9e9fd9e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskObjectServiceImpl.java @@ -0,0 +1,29 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.springblade.hzinfo_inspect.task.vo.TaskObjectVO; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.hzinfo_inspect.task.entity.TaskObjectEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskObjectMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskObjectService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskObjectServiceImpl extends BaseServiceImpl implements ITaskObjectService { + + @Override + public List getTaskObjectList(TaskObjectEntity taskObjectEntity) { + return this.baseMapper.getTaskObjects(taskObjectEntity); + } + + @Override + public List getTaskObjectsDetail(TaskObjectEntity to){ + return this.baseMapper.getTaskObjectsDetail(to); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskRecordServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskRecordServiceImpl.java new file mode 100644 index 0000000..3060b10 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskRecordServiceImpl.java @@ -0,0 +1,78 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.hzinfo_inspect.task.TaskContants; +import org.springblade.hzinfo_inspect.task.TaskContants.ClaimStatusEnum; +import org.springblade.hzinfo_inspect.task.TaskContants.TaskRecordTypeEnum; +import org.springblade.hzinfo_inspect.task.TaskContants.keepOnRecordEnum; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskRecordEntity; +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskRecordMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskRecordService; +import org.springblade.hzinfo_inspect.task.service.ITaskService; +import org.springblade.hzinfo_inspect.task.service.ITaskUserService; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; + +/** + * 巡检报备服务实现类 + * + * @author Chill + */ +@Service +public class TaskRecordServiceImpl extends BaseServiceImpl implements ITaskRecordService { + + @Autowired + private ITaskUserService taskUserService; + @Autowired + private ITaskService taskService; + + @Override + public Boolean addTaskRecord(TaskRecordEntity itr) { + TaskEntity task = taskService.getById(itr.getTaskId()); + if(TaskContants.TaskStatusEnum.UNFINISH_STATUS.getStatus().equals(task.getStatus())){ + throw new ServiceException("未完成的任务不能报备"); + } + if(TaskContants.TaskStatusEnum.FINISH_STATUS.getStatus().equals(task.getStatus())){ + throw new ServiceException("已完成的任务不能报备"); + } + + if(TaskRecordTypeEnum.people.getType().equals(itr.getType())) { + //人员报备(删除此任务以前的所属人,然后将任务指派给新的人) + taskUserService.deleteByTaskId(itr.getTaskId(),ClaimStatusEnum.UN_COLLECT.getStatus()); + //领取任务 + TaskUserEntity itu = TaskUserEntity.builder().taskId(itr.getTaskId()).userId(itr.getExecutor()). + claimStatus(ClaimStatusEnum.COLLECT.getStatus()).claimTime(LocalDateTime.now()).build(); + + taskUserService.save(itu); + }else{//任务报备(谁第一个登录任务谁就领取任务) +// //领取任务(抢占任务取第一个人员领取该任务,并发任务,一个任务对应的一个人也是取第一个人) +// TaskUserEntity itu = taskUserService.getOne(Wrappers.query().lambda().eq(TaskUserEntity::getTaskId, itr.getTaskId()).eq(TaskUserEntity::getClaimStatus,ClaimStatusEnum.UN_COLLECT.getStatus()).last("limit 1")); +// if(itu!=null){ +// itu.setClaimStatus(ClaimStatusEnum.COLLECT.getStatus()); +// itu.setClaimTime(LocalDateTime.now()); +// taskUserService.updateById(itu); +// //如果是抢占任务,删除能够抢占此任务的其他人 +// if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(task.getMethod())) { +// taskUserService.remove(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,task.getId()).ne(TaskUserEntity::getId,itu.getUserId())); +// } +// } + } + + UpdateWrapper uwTask = new UpdateWrapper<>(); + uwTask.lambda() + .set(TaskEntity::getKeepOnRecord, keepOnRecordEnum.yes.getType()) + .set(TaskEntity::getStartTime,LocalDateTime.now()) + .set(TaskEntity::getStatus, TaskContants.TaskStatusEnum.UNDERWAY_STATUS.getStatus()) + .eq(TaskEntity::getId, itr.getTaskId()); + taskService.update(uwTask); + //报备记录存储 + return this.save(itr); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskResultServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskResultServiceImpl.java new file mode 100644 index 0000000..b00ef96 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskResultServiceImpl.java @@ -0,0 +1,17 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.springblade.hzinfo_inspect.task.entity.TaskResultEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskResultMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskResultService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskResultServiceImpl extends BaseServiceImpl implements ITaskResultService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..7563c12 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskServiceImpl.java @@ -0,0 +1,847 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +//import com.hnac.hzims.safeproduct.entity.ImsMonCameraInfoEntity; +//import com.hnac.hzims.safeproduct.feign.IImsMonCameraInfoClient; +//import org.springblade.hzinfo_inspect.ai.service.IRobotService; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.hzinfo_inspect.obj.ObjContants; +import org.springblade.hzinfo_inspect.obj.services.IObjectDangerService; +import org.springblade.hzinfo_inspect.plan.PlanContants; +import org.springblade.hzinfo_inspect.task.TaskContants; +import org.springblade.hzinfo_inspect.task.TaskContants.ClaimStatusEnum; +import org.springblade.hzinfo_inspect.task.TaskContants.TaskStatusEnum; +import org.springblade.hzinfo_inspect.task.entity.*; +import org.springblade.hzinfo_inspect.task.mapper.TaskMapper; +import org.springblade.hzinfo_inspect.task.mapper.TaskNoUserDataScopeMapper; +import org.springblade.hzinfo_inspect.task.service.*; +import org.springblade.hzinfo_inspect.task.vo.*; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.*; +import org.springblade.system.cache.DictCache; +import org.springblade.system.feign.ISysClient; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; +import org.springblade.hzinfo_inspect.plan.entity.PlanEntity; +import org.springblade.hzinfo_inspect.plan.mapper.PlanMapper; +import org.springblade.hzinfo_inspect.plan.vo.RoutObject; +import org.springblade.core.tool.jackson.JsonUtil; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@Slf4j +@AllArgsConstructor +public class TaskServiceImpl extends BaseServiceImpl implements ITaskService { + + @Autowired + private ITaskObjectService taskObjectService; + @Autowired + private IEventService eventService; + @Autowired + private ITaskUserService taskUserService; + @Autowired + private ITaskObjectProjectService taskObjectProjectService; + @Autowired + private ITaskObjectProjectContentService taskObjectProjectContentService; + @Autowired + private ISysClient sysClient; + @Autowired + private IEventRecordService eventRecordService; + +// private IImsMonCameraInfoClient cameraInfoClient; +// @Autowired +// private IRobotService robotService; + @Autowired + private ITaskResultService taskResultService; + @Autowired + private IObjectDangerService objectDangerService; + @Autowired + private PlanMapper planMapper; + + @Autowired + private TaskNoUserDataScopeMapper taskNoUserDataScopeMapper; + + /** + * 正在调用开始任务的id集合 + */ + static Set startTaskIds = new HashSet<>(); + + /** + * startTaskIds 已经存在该id + * @param id + * @return + */ + public static boolean hasExistStartId(Long id) { + return startTaskIds.contains(id); + } + + public static synchronized boolean addStartTaskId(Long id) { + return startTaskIds.add(id); + } + + public static boolean removeStartTaskId(Long id) { + return startTaskIds.remove(id); + } + + /** + * 删除任务,任务的所有关联表 + * @param planId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteTaskByPlanId(Long planId){ + eventService.deleteEventByPlanId(planId); + taskResultService.remove(Wrappers.lambdaQuery().eq(TaskResultEntity::getPlanId,planId)); + taskUserService.deleteByPlanId(planId); + return remove(Wrappers.lambdaQuery().eq(TaskEntity::getPlanId,planId)); + } + + /** + * 如果项目下面的任务都完成了,则变更项目状态为已完成 + * @param eventAddVO + */ + @Override + public void checkProjectFinish(EventAddVO eventAddVO){ + List topcList = taskObjectProjectContentService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getTaskId,eventAddVO.getTaskId()) + .eq(TaskObjectProjectContentEntity::getObjectId,eventAddVO.getObjId()) + .eq(TaskObjectProjectContentEntity::getProjectId, eventAddVO.getProjectId())); + + if(Func.isNotEmpty(topcList)){ + for (TaskObjectProjectContentEntity content : topcList) { + if(content.getAvailable().equals(TaskContants.AvailableEnum.yes.getType())){ + return; + } + } + } + + /** 任务项目状态设置为已完成*/ + taskObjectProjectService.update(Wrappers.lambdaUpdate() + .set(TaskObjectProjectEntity::getStatus, TaskContants.StatusEnum.FINISH_STATUS.getStatus()) + .eq(TaskObjectProjectEntity::getTaskId, eventAddVO.getTaskId()) + .eq(TaskObjectProjectEntity::getObjectId, eventAddVO.getObjId()) + .eq(TaskObjectProjectEntity::getProjectId, eventAddVO.getProjectId())); + + checkObjFinish(eventAddVO); + } + + /** + * 如果对象下面的任务都完成了,则变更对象状态为已完成 + * @param eventAddVO + */ + private void checkObjFinish(EventAddVO eventAddVO){ + List topList = taskObjectProjectService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectEntity::getTaskId,eventAddVO.getTaskId()) + .eq(TaskObjectProjectEntity::getObjectId,eventAddVO.getObjId())); + + + if(Func.isNotEmpty(topList)){ + for (TaskObjectProjectEntity project : topList) { + if(project.getStatus().equals(TaskContants.StatusEnum.INIT_STATUS.getStatus())){ + return; + } + } + } + + /** 任务项目状态设置为已完成*/ + taskObjectService.update(Wrappers.lambdaUpdate() + .set(TaskObjectEntity::getStatus, TaskContants.StatusEnum.FINISH_STATUS.getStatus()) + .eq(TaskObjectEntity::getTaskId, eventAddVO.getTaskId()) + .eq(TaskObjectEntity::getObjectId, eventAddVO.getObjId())); + + checkTaskFinish(eventAddVO); + } + + /** + * 如果任务下面的对象都完成了,则变更任务状态为已完成 + * @param eventAddVO + */ + @Override + public void checkTaskFinish(EventAddVO eventAddVO){ + List topList = taskObjectService.list(Wrappers.lambdaQuery() + .eq(TaskObjectEntity::getTaskId,eventAddVO.getTaskId())); + + if(Func.isNotEmpty(topList)){ + for (TaskObjectEntity obj : topList) { + if(obj.getStatus().equals(TaskContants.StatusEnum.INIT_STATUS.getStatus())){ + return; + } + } + } + /** 任务更新为完成状态 */ + modifyTaskStatus(eventAddVO.getTaskId(),Integer.valueOf(TaskContants.TaskStatusEnum.FINISH_STATUS.getStatus())); + } + + @Override + public Boolean modifyTaskStatus(Long id, Integer status) { + TaskEntity task = this.getById(id); + task.setStatus(status); + if(TaskStatusEnum.UNDERWAY_STATUS.getStatus().equals(status.toString())){//恢复任务 + //处理同时开启几个任务的情况 + checkOpenMutipleTask(AuthUtil.getUserId()); + } + if(TaskStatusEnum.FINISH_STATUS.getStatus().equals(status.toString())){//任务完成 + task.setEndTime(LocalDateTime.now()); + List taskObjs = taskObjectService.list(Wrappers.query().lambda().eq(TaskObjectEntity::getTaskId, task.getId())); + for (TaskObjectEntity taskObj : taskObjs) { + if(taskObj.getStatus().equals(TaskContants.StatusEnum.INIT_STATUS.getStatus())){ + log.error("该任务未登记完成,不可结束。"); + throw new ServiceException("该任务未登记完成,不可结束。"); + } + } + } + return this.updateById(task); + } + + /** + * 开始任务 + */ + @Override + @Transactional + public Boolean startTask(Long id){ + TaskEntity task = this.getById(id); + + if(hasExistStartId(id) || !addStartTaskId(id)){ + throw new ServiceException("该任务有人在领用,请稍后重试"); + } + //检查任务 + checkOpenMutipleTask(AuthUtil.getUserId()); + TaskUserEntity userEntity = taskUserService.getOne(Wrappers.lambdaQuery() + .eq(TaskUserEntity::getClaimStatus, ClaimStatusEnum.COLLECT.getStatus()) + .eq(TaskUserEntity::getTaskId, task.getId())); + if(Func.isNotEmpty(userEntity)){ + removeStartTaskId(id); + throw new ServiceException("该任务已被领用,请刷新页面"); + } + + //给当前人领取任务 + taskUserService.update(Wrappers.lambdaUpdate() + .set(TaskUserEntity::getClaimStatus, ClaimStatusEnum.COLLECT.getStatus()) + .set(TaskUserEntity::getClaimTime, LocalDateTime.now()) + .eq(TaskUserEntity::getTaskId, task.getId()) + .eq(TaskUserEntity::getUserId, AuthUtil.getUserId())); + //如果是抢占任务,删除能够抢占此任务的其他人 + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(task.getMethod())) { + taskUserService.remove(Wrappers.lambdaQuery() + .eq(TaskUserEntity::getTaskId,task.getId()) + .ne(TaskUserEntity::getClaimStatus, ClaimStatusEnum.COLLECT.getStatus()) + .ne(TaskUserEntity::getUserId,AuthUtil.getUserId())); + } + task.setStatus(Integer.valueOf(TaskStatusEnum.UNDERWAY_STATUS.getStatus())); + task.setStartTime(LocalDateTime.now()); + boolean re = this.updateById(task); + removeStartTaskId(id); + return re; + } + + /** + * 检查任务 + */ + public void checkOpenMutipleTask(Long userId){ + R r = sysClient.getParamValue(TaskContants.OPEN_MULTIPLE_TASK); + if(r.isSuccess()&& "0".equals(r.getData())){//处理同时开启几个任务的情况 + int count = taskUserService.count(Wrappers.query().lambda().eq(TaskUserEntity::getUserId,userId).eq(TaskUserEntity::getClaimStatus, ClaimStatusEnum.COLLECT.getStatus())); + if(count>0){ + log.error("不能同时开启两个巡检任务"); + throw new ServiceException("不能同时开启两个巡检任务"); + } + } + } + + /** + * 机器人 + * 开始任务 + */ + @Override + public Boolean startTaskForRobot(Long id, Long userId){ + TaskEntity task = this.getById(id); + //检查任务 + checkOpenMutipleTask(userId); + //给当前人领取任务 + taskUserService.update(Wrappers.lambdaUpdate() + .set(TaskUserEntity::getClaimStatus, ClaimStatusEnum.COLLECT.getStatus()) + .set(TaskUserEntity::getClaimTime, LocalDateTime.now()) + .eq(TaskUserEntity::getTaskId, task.getId()) + .eq(TaskUserEntity::getUserId, userId)); + //如果是抢占任务,删除能够抢占此任务的其他人 + if(PlanContants.PlanMethodEnum.SEIZE.getMethod().equals(task.getMethod())) { + taskUserService.remove(Wrappers.lambdaQuery().eq(TaskUserEntity::getTaskId,task.getId()).ne(TaskUserEntity::getId,userId)); + } + task.setStatus(Integer.valueOf(TaskStatusEnum.UNDERWAY_STATUS.getStatus())); + task.setStartTime(LocalDateTime.now()); + return this.updateById(task); + } + + /** + * 获取任务 项目list + * @param taskId + * @return + */ + @Override + public List getObjPrj(Long taskId){ + List list = taskObjectService.list(Wrappers.lambdaQuery().eq(TaskObjectEntity::getTaskId, taskId)); + List result = Lists.newArrayList(); + for(TaskObjectEntity taskObject:list){ + TaskObjectVO vo = TaskObjectVO.builder().objId(taskObject.getObjectId()).taskId(taskObject.getTaskId()).objName(taskObject.getName()).build(); + List taskObjectProjectList = taskObjectProjectService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectEntity::getTaskId,taskObject.getTaskId()) + .eq(TaskObjectProjectEntity::getObjectId, taskObject.getObjectId())); + List projectVOList = Lists.newArrayList(); + for(TaskObjectProjectEntity taskObjectProject:taskObjectProjectList){ + TaskObjectProjectVO projectVO = TaskObjectProjectVO.builder().projectId(taskObjectProject.getProjectId()).projectName(taskObjectProject.getName()).build(); + List taskObjectProjectContentList = taskObjectProjectContentService.list(Wrappers.lambdaQuery() + .eq(TaskObjectProjectContentEntity::getTaskId,taskObjectProject.getTaskId()) + .eq(TaskObjectProjectContentEntity::getObjectId,taskObjectProject.getObjectId()) + .eq(TaskObjectProjectContentEntity::getProjectId, taskObjectProject.getProjectId())); + List eventIds = eventService.list(Wrappers.lambdaQuery() + .eq(EventEntity::getTaskId,taskId) + .eq(EventEntity::getObjectId, taskObject.getObjectId()) + .eq(EventEntity::getProjectId, taskObjectProject.getProjectId())).stream().map(entity->entity.getId()).collect(Collectors.toList()); + List contentVOList = Lists.newArrayList(); + for(TaskObjectProjectContentEntity entity:taskObjectProjectContentList){ + TaskObjectProjectContentVO contentVO = BeanUtil.copy(entity,TaskObjectProjectContentVO.class); + if("0".equals(contentVO.getAvailable()) && eventIds.size()>0){//不可重复记录时,需要显示之前记录的值 + EventRecordEntity ere = eventRecordService.getOne(Wrappers.lambdaQuery() + .in(EventRecordEntity::getEventId,eventIds) + .eq(EventRecordEntity::getObjectId, taskObject.getObjectId()) + .eq(EventRecordEntity::getProjectId, taskObjectProject.getProjectId()) + .eq(EventRecordEntity::getContentId,contentVO.getContentId()).last("LIMIT 1")); + contentVO.setCurrentStatus(ere.getCurrentStatus()); + contentVO.setCurrentValue(ere.getCurrentValue()); + contentVO.setFileUrl(ere.getFileUrl()); + } + contentVOList.add(contentVO); + } + projectVO.setContents(contentVOList); + projectVOList.add(projectVO); + } + vo.setProjects(projectVOList); + result.add(vo); + } + return result; + } + + /** + * 根据计划开始时间结束时间及创建部门查询任务 + * @param startTime + * @param endTime + * @param depts + * @return + */ + @Override + public List queryByPlanStartTime(String startTime, String endTime, List depts) { + return this.baseMapper.selectByPlanStartTime(startTime,endTime,depts); + } + + @Override + public List getInspectTaskReport(String startDate, String endDate, List deptIdList) { + List result = new ArrayList<>(); + List taskCountVOList = getTaskCountByTime(startDate, endDate, deptIdList); + Map> userMap = taskCountVOList.stream().collect(Collectors.groupingBy(TaskCountVO::getUserId)); + userMap.forEach((userId,list)->{ + User user = UserCache.getUser(userId); + if(ObjectUtil.isEmpty(user)){ + return; + } + if(CollectionUtil.isNotEmpty(list)){ + TaskReportVO taskReportVO = new TaskReportVO(); + taskReportVO.setHours(list.stream().mapToLong(TaskCountVO::getHours).sum()); + //巡检任务完成情况 + String finishSituation = list.stream().filter(vo-> StringUtil.isNotBlank(DictCache.getValue(TaskContants.INSPECT_TASK_TYPE,vo.getAutoVideo()))) + .map(vo-> DictCache.getValue(TaskContants.INSPECT_TASK_TYPE,vo.getAutoVideo()).concat(":").concat(String.valueOf(Optional.ofNullable(vo.getFinishTask()).orElse(0)))).collect(Collectors.joining("\r\n")); + //巡检任务未完成情况 + String undoSituation = list.stream().filter(vo-> StringUtil.isNotBlank(DictCache.getValue(TaskContants.INSPECT_TASK_TYPE,vo.getAutoVideo()))) + .map(vo-> DictCache.getValue(TaskContants.INSPECT_TASK_TYPE,vo.getAutoVideo()).concat(":").concat(String.valueOf(Optional.ofNullable(vo.getUndoneTask()).orElse(0)))).collect(Collectors.joining("\r\n")); + taskReportVO.setCompleteSituation(finishSituation); + taskReportVO.setIncompleteSituation(undoSituation); + taskReportVO.setUserName(user.getName()); + result.add(taskReportVO); + } + }); + return result; + } + + @Override + public Map getReportConclusion(String startDate, String endDate, List deptIdList) { + Map result = new HashMap<>(); + List taskCountVOList = getTaskCountByTime(startDate, endDate, deptIdList); + taskCountVOList = taskCountVOList.stream().filter(vo-> StringUtil.isNotBlank(DictCache.getValue(TaskContants.INSPECT_TASK_TYPE,vo.getAutoVideo()))).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(taskCountVOList)){ + result.put("INSPECT_TASK_COUNT",taskCountVOList.stream().mapToInt(vo->Optional.ofNullable(vo.getFinishTask()).orElse(0)+Optional.ofNullable(vo.getUndoneTask()).orElse(0)).sum()); + result.put("INSPECT_COMPLETE_TASK_COUNT",taskCountVOList.stream().filter(t->Func.isNotEmpty(t.getFinishTask())).mapToInt(TaskCountVO::getFinishTask).sum()); + result.put("PROBLEM_NUM",null); + } + return result; + } + + @Override + public List getTaskCountByTime(String startDate, String endDate, List deptIdList) { + return this.baseMapper.selectReportByTime(startDate, endDate, deptIdList); + } + + public List getTaskById0(Long id) { + TaskEntity task = this.getById(id); + PlanEntity plan = planMapper.selectById(task.getPlanId()); + + List routObjects = new ArrayList<>(); + if(Func.isNotEmpty(plan.getRouteData())){ + routObjects = JsonUtil.parseArray(plan.getRouteData(), RoutObject.class); + } + Map routMap = new HashMap<>(); + for (RoutObject rout : routObjects) { + routMap.put(rout.getObjectId(), rout.getSort()); + } + + TaskObjectEntity toQuery = new TaskObjectEntity(); + toQuery.setTaskId(id); + List list = taskObjectService.getTaskObjectList(toQuery); + + List result = Lists.newArrayList(); + for(TaskObjectEntity taskObject:list){ + TaskObjectVO vo = TaskObjectVO.builder().objId(taskObject.getObjectId()).taskId(taskObject.getTaskId()).objName(taskObject.getName()).status(taskObject.getStatus()).build(); + + TaskObjectProjectEntity topQuery = new TaskObjectProjectEntity(); + topQuery.setTaskId(taskObject.getTaskId()); + topQuery.setObjectId(taskObject.getObjectId()); + List taskObjectProjectList = taskObjectProjectService.getTaskObjectProjectList(topQuery); + List projectVOList = Lists.newArrayList(); + for(TaskObjectProjectEntity taskObjectProject:taskObjectProjectList){ + TaskObjectProjectVO projectVO = TaskObjectProjectVO.builder().projectId(taskObjectProject.getProjectId()).projectName(taskObjectProject.getName()).status(taskObjectProject.getStatus()).build(); + + TaskObjectProjectContentEntity topcQuery = new TaskObjectProjectContentEntity(); + topcQuery.setTaskId(taskObjectProject.getTaskId()); + topcQuery.setObjectId(taskObjectProject.getObjectId()); + topcQuery.setProjectId(taskObjectProject.getProjectId()); + List taskObjectProjectContentList = taskObjectProjectContentService.getTaskObjectProjectContentList(topcQuery); + + EventEntity eventQuery = new EventEntity(); + eventQuery.setTaskId(id); + eventQuery.setObjectId(taskObject.getObjectId()); + eventQuery.setProjectId(taskObjectProject.getProjectId()); + List eventIds = eventService.getEventList(eventQuery) + .stream().map(entity->entity.getId()).collect(Collectors.toList()); + List contentVOList = Lists.newArrayList(); + + for(TaskObjectProjectContentEntity entity:taskObjectProjectContentList){ + TaskObjectProjectContentVO contentVO = BeanUtil.copy(entity,TaskObjectProjectContentVO.class); + if("0".equals(contentVO.getAvailable()) && eventIds.size()>0){//不可重复记录时,需要显示之前记录的值 + EventRecordEntity ere = eventRecordService.getOne(Wrappers.lambdaQuery() + .in(EventRecordEntity::getEventId,eventIds) + .eq(EventRecordEntity::getObjectId, taskObject.getObjectId()) + .eq(EventRecordEntity::getProjectId, taskObjectProject.getProjectId()) + .eq(EventRecordEntity::getContentId,contentVO.getContentId()).last("LIMIT 1")); + contentVO.setCurrentStatus(ere.getCurrentStatus()); + contentVO.setCurrentValue(ere.getCurrentValue()); + contentVO.setFileUrl(ere.getFileUrl()); + } + contentVOList.add(contentVO); + } + projectVO.setContents(contentVOList); + projectVOList.add(projectVO); + } + vo.setProjects(projectVOList); +// vo.setDangers(objectDangerService.getDangerDetailByObjectId(taskObject.getObjectId())); + vo.setOrder(routMap.get(taskObject.getObjectId())); + result.add(vo); + } + return result; + } + + @Override + public List getTaskById(Long id) { + TaskEntity task = this.getById(id); + PlanEntity plan = planMapper.selectById(task.getPlanId()); + + List routObjects = new ArrayList<>(); + if(Func.isNotEmpty(plan.getRouteData())){ + routObjects = JsonUtil.parseArray(plan.getRouteData(), RoutObject.class); + } + Map routMap = new HashMap<>(); + for (RoutObject rout : routObjects) { + routMap.put(rout.getObjectId(), rout); + } + + TaskObjectEntity toQuery = new TaskObjectEntity(); + toQuery.setTaskId(id); + List result = taskObjectService.getTaskObjectsDetail(toQuery); + result.forEach(vo -> { + RoutObject rout=routMap.get(vo.getObjId()); + vo.setDangers(objectDangerService.getDangerDetailByObjectId(vo.getObjId())); + vo.setOrder(rout.getSort()); + vo.setLat(rout.getLat()); + vo.setLng(rout.getLng()); + log.info("---routMap:{};objId:{}---",JSONObject.toJSONString(routMap),vo.getObjId()); + }); + + return result.stream().sorted(Comparator.comparing(TaskObjectVO::getOrder)).collect(Collectors.toList()); + } + + @Override + public List getListPageOfTaskRecord(IPage page, TaskListQuery task) { + return this.baseMapper.getListPageOfTaskRecord(page,task); + } + + @Override + public List getListPage(IPage page, TaskListQuery task) { + String autoVideo=task.getAutoVideo(); + if(StringUtils.isNotEmpty(autoVideo)) { + task.setAutoVideos(Arrays.asList(autoVideo.split(","))); + task.setAutoVideo(null); + } + List re = this.baseMapper.getListPage(page,task); + setVoInfo(re); + return re; + } + + @Override + public List getListPageAuth(IPage page, TaskListQuery task) { + List re = this.baseMapper.getListPageAuth(page,task); + setVoInfo(re); + return re; + } + + /** + * phone端任务列表 + * @return + */ + @Override + public List getListPageOfPhone(IPage page,TaskListQuery task){ + List re = this.baseMapper.getListPageOfPhone(page,task); + for (TaskVo vo : re) { + vo.setCanCancel(false); + if(vo.getMethod().equals("0")){ + if(vo.getStatus().equals(1) || vo.getStatus().equals(2)){ + EventEntity entity = eventService.getOne(Wrappers.lambdaQuery(EventEntity.class).eq(EventEntity::getTaskId , vo.getId()).last("LIMIT 1")); + if(entity == null){ + vo.setCanCancel(true); + } + } + } + } + setVoInfo(re); + return re; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public Boolean cancelStart(Long taskId) { + EventEntity entity = eventService.getOne(Wrappers.lambdaQuery(EventEntity.class).eq(EventEntity::getTaskId, taskId).last("LIMIT 1")); + if(entity != null){ + throw new ServiceException("该任务已有历史记录,不能撤销领用"); + } + taskUserService.update(Wrappers.lambdaUpdate(TaskUserEntity.class) + .eq(TaskUserEntity::getUserId,AuthUtil.getUserId()) + .eq(TaskUserEntity::getTaskId, taskId) + .set(TaskUserEntity::getClaimStatus, ClaimStatusEnum.UN_COLLECT.getStatus()) + .set(TaskUserEntity::getClaimTime, null)); + taskUserService.updateDeleteStatus(taskId); + this.update(Wrappers.lambdaUpdate(TaskEntity.class) + .eq(TaskEntity::getId, taskId) + .set(BaseEntity::getStatus, TaskStatusEnum.INIT_STATUS.ordinal())); + return true; + } + + /** + * 机器人 + * 机器人获取当天任务列表 + * 只取第一条 + * @param + * @return + */ + @Override + public List getListOfPhone(String tenantId, Long userId){ + LocalDate now = LocalDate.now(); + DateTimeFormatter dfShort = DateTimeFormatter.ofPattern("yyyy-MM-dd "); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + TaskListQuery task = new TaskListQuery(); + task.setCurUserId(userId); + //task.setTenantId(tenantId); + task.setPlanStartTimeEnd(LocalDateTime.now()); + task.setStartTime(LocalDateTime.now()); + /*task.setPlanStartTime(LocalDateTime.parse(dfShort.format(now) + "00:00:00", df)); + task.setPlanStartTimeEnd(LocalDateTime.now());*/ + task.setAutoVideo(PlanContants.InspectTypeEnum.ROBOT.getVal()); + List tasks = this.baseMapper.getListOfPhone(task); + setVoInfo(tasks); + return Func.isEmpty(tasks) ? new ArrayList<>() : Arrays.asList(tasks.get(0)); + } + + /** + * 设置机器人信息等 + * @param re + */ + private void setVoInfo(List re){ + if(Func.isNotEmpty(re)){ + for (TaskVo vo : re) { + if(Func.isNotEmpty(vo.getUserId())){ + vo.setUserName(UserCache.getUser(vo.getUserId()) == null? "" : UserCache.getUser(vo.getUserId()).getName()); + } + if(vo.getAutoVideo().equals(PlanContants.InspectTypeEnum.ROBOT.getVal())){ + //任务执行人 + TaskUserEntity query = taskUserService.getOne(Wrappers.lambdaQuery() + .eq(TaskUserEntity::getTaskId, vo.getId())); + if(Func.isNotEmpty(query)){ +// vo.setRobot(robotService.getDetailByUserId(query.getUserId())); + } + } + } + } + } + + /** + * 海康sdk url :https://open.hikvision.com/docs/8530061f19534a9993e2afeb70e7c96a#d82bbc55 + * 摄像头截图方式:从视频云获取 + * 视频巡检没有执行人 + * TODO + * 执行视频自动巡检 + */ + public void execAutoVideoTask(Long taskId){ + //任务对象 + List taskObjectVOS = getTaskById(taskId); + for (TaskObjectVO objectVo : taskObjectVOS) { + // 对象项目 + List objectProjectVOs = objectVo.getProjects(); + for (TaskObjectProjectVO projectVo : objectProjectVOs) { + //对象项目内容 + List contentVOS = projectVo.getContents(); + //提交事件 + EventAddVO submitEventVo = new EventAddVO(); + //提交事件记录list + List submitRecords = new ArrayList<>(); + submitEventVo.setRecords(submitRecords); + + for (TaskObjectProjectContentVO content : contentVOS) { + //提交事件记录 + EventRecordAddVO submitRecord = new EventRecordAddVO(); + submitRecord.setContentId(content.getContentId()); + //当前值 + String currentVal = ""; + if(content.getCheckType().equals(ObjContants.CheckTypeEnum.AUTO_VIDEO.getType())){ + //视频巡检 存图 + if(content.getRecordType().equals(ObjContants.VideoCheckTypeEnum.PICTURE.getType())){ + submitRecord.setCurrentStatus(TaskContants.CurrentStatusEnum.normal.getType()); + //ImsMonCameraInfoEntity query = new ImsMonCameraInfoEntity(); + //query.setId(content.getCameraId()); + //query = cameraInfoClient.detail(query).getData(); +// if(Func.isNotEmpty(query)){ +// //从摄像机取一张图片,存到iso +// currentVal = HiKUtil.getIOSPicUrl(query.getPointCode()); +// } else { +// log.error("content id = " + content.getContentId() + ", cameraId = " + content.getCameraId() + " 摄像头信息为空"); +// } + } + // TODO 识别 存值 + else if(content.getRecordType().equals(ObjContants.VideoCheckTypeEnum.IDENTIFY.getType())){ + + } + submitRecord.setCurrentValue(currentVal); + } + submitRecords.add(submitRecord); + } + //提交事件 + eventService.addTaskEvent(submitEventVo); + } + //TODO 提交对象 + + } + } + + + /** + * hld + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发开始前提醒短信) + * @param it + * @return + */ + @Override + public List selectTodayStartRemindTaskSMSListByPlanId(TaskEntity it){ + List result = this.baseMapper.selectTodayStartRemindTaskSMSListByPlanId(it); + if(Func.isNotEmpty(result)){ + for (InspectionTaskSMS sms : result) { + sms.setSmsDetail(); + } + } + return result; + } + + /** + * hld + * 获取当前有效的任务 (状态不为3:完成,4:未完成以及计划结束时间未超过当前时间,并且为发结束前提醒短信) + * @param it + * @return + */ + @Override + public List selectTodayEndRemindTaskSMSListByPlanId(TaskEntity it){ + List result = this.baseMapper.selectTodayEndRemindTaskSMSListByPlanId(it); + if(Func.isNotEmpty(result)){ + for (InspectionTaskSMS sms : result) { + sms.setSmsDetail(); + } + } + return result; + } + + /* + + */ +/** + * 立即生成任务 发送短信通知提醒 + * @param it + *//* + + @Override + public void taskGenerateSMSNoticeNew(TaskEntity it){ + List taskSMSs = itdao.selectInspectionTaskSMSListByPlan(it) ; + Map> planIdAndUserIdMap = taskSMSs.stream().collect(Collectors.groupingBy(TaskSMS -> TaskSMS.getPlanId().toString()+"_"+TaskSMS.getUserId().toString())) ; + if(planIdAndUserIdMap==null || planIdAndUserIdMap.size()<=0){ + logger.error("根据planId获取任务信息为空,任务生成短信发送结束 !"); + return; + } + Set>> planIdTaskSMSSet = planIdAndUserIdMap.entrySet(); + Iterator>> planIdTaskSMSSetIterator = planIdTaskSMSSet.iterator(); + while(planIdTaskSMSSetIterator.hasNext()) { + Map.Entry entry = planIdTaskSMSSetIterator.next(); + List taskSMSList = (List) entry.getValue(); + if(taskSMSList==null || taskSMSList.size()<=0){ + continue; + } + InspectionTaskSMS taskSMS = taskSMSList.get(0); + + //TODO 巡检通知 + addNotice(taskSMS,"generate"); + taskSMS.setSendMsg(true); + itdao.updateTaskSendStatus(taskSMS); + otherThreadSendSMS(taskSMS,taskGenerateTemplateCode); + } + } + + */ +/** + * TODO 巡检通知 + * 向通知表添加任务结束记录 + * @param taskSMS + *//* + + private void addNotice (InspectionTaskSMS taskSMS,String type){ + Notify notify = new Notify(); + notify.setNoticeTypeId(OldDictUitls.getDictId("INSPECT", "notifyType")); + notify.setReallyId(taskSMS.getId().toString()); + notify.setCreateTime(new Date()); + notify.setReceiveUserId(taskSMS.getLoginName()); + String detail = ""; + if(!StringUtils.isEmpty(type)){ + if(type.equalsIgnoreCase("start")){ + detail = String.format("您有巡检工作任务(%s)需要在%s开始执行,请及时处理。", + taskSMS.getPlanName(), DateUtils.formatDate(taskSMS.getPlanStartTime(),"yyyy-MM-dd HH:mm:ss")); + }else if(type.equalsIgnoreCase("end")){ + detail = String.format("您有巡检工作任务(%s)即将在%s 结束,请及时处理。", + taskSMS.getPlanName(), DateUtils.formatDate(taskSMS.getPlanEndTime(),"yyyy-MM-dd HH:mm:ss")); + }else if(type.equalsIgnoreCase("generate")){ + String two = DateUtils.formatDate(taskSMS.getPlanStartTime(),"yyyy-MM-dd HH:mm:ss"); + two += " - "+DateUtils.formatDate(taskSMS.getPlanEndTime(),"yyyy-MM-dd HH:mm:ss"); + detail = String.format("您已被派发巡检工作任务(%s),任务周期为 %s ,请及时处理。", + taskSMS.getPlanName(), two); + } + } + notify.setReallyDetail(detail); + notify.setNoticeTypesonId(OldDictUitls.getDictId("TASK", "inspectNoticeType")); + notifyService.insertNotifys(notify); + } + + */ +/** + * 另开线程发送短信 + *//* + + private void otherThreadSendSMS(InspectionTaskSMS taskSMS,String templateCode){ + HzimsThreadPool.getFixedThreadExecutor().execute(new Runnable() { + @Override + public void run() { + sendSMS(taskSMS,templateCode); + } + }); + } + + */ +/** + * TODO + * 发送短信 + *//* + + private int sendSMS(InspectionTaskSMS taskSMS,String templateCode){ + int re = 0; + try { + Map map = new HashMap<>(); + map.put("one", taskSMS.getPlanName()); + String two = DateUtils.formatDate(taskSMS.getPlanStartTime(),"yyyy-MM-dd HH:mm:ss"); + if(!StringUtils.isEmpty(templateCode)&&templateCode.equals(this.taskEndTemplateCode)){ + two = DateUtils.formatDate(taskSMS.getPlanEndTime(),"yyyy-MM-dd HH:mm:ss"); + }else if(!StringUtils.isEmpty(templateCode)&&templateCode.equals(this.taskGenerateTemplateCode)){ + String three = DateUtils.formatDate(taskSMS.getPlanEndTime(),"yyyy-MM-dd HH:mm:ss"); + map.put("three", three); + } + map.put("two", two); + String phoneNumber = taskSMS.getPhone(); + if(!isBlank(phoneNumber)){ + String jsonParam = JSON.toJSONString(map); + HZSendContent content = + HZSendContent.getTemplateContent(phoneNumber, templateCode, jsonParam); + HZSendStatu sendStatu = hzSendSms.sendMsg(content); + if (!HZSendStatu.SEND_SUCCESS.equals(sendStatu)) { + logger.warn("发送短信失败 : ", "HZSendStatu.SEND_SUCCESS = " + HZSendStatu.SEND_SUCCESS); + } else { + re = 1; + } + } else { + logger.warn("发送短信失败 : ", "用户:" + taskSMS.getCnName() + "未填写手机号码"); + } + + } catch (Exception e) { + logger.error("发送短信失败 : ", e.toString()); + } + return re; + } + + public boolean isBlank(String paramString) { + int i; + if (paramString != null && (i = paramString.length()) != 0) { + for(int j = 0; j < i; ++j) { + if (!Character.isWhitespace(paramString.charAt(j))) { + return false; + } + } + return true; + } else { + return true; + } + } + +*/ + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskUserServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskUserServiceImpl.java new file mode 100644 index 0000000..39f30d0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/service/impl/TaskUserServiceImpl.java @@ -0,0 +1,36 @@ +package org.springblade.hzinfo_inspect.task.service.impl; + +import org.springblade.hzinfo_inspect.task.entity.TaskUserEntity; +import org.springblade.hzinfo_inspect.task.mapper.TaskUserMapper; +import org.springblade.hzinfo_inspect.task.service.ITaskUserService; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TaskUserServiceImpl extends BaseServiceImpl implements ITaskUserService { + /** + * 删除 + * @param planId 计划id + * @return + */ + @Override + public int deleteByPlanId(Long planId){ + return this.baseMapper.deleteByPlanId(planId); + } + + @Override + public int updateDeleteStatus(Long taskId) { + return this.baseMapper.updateDeleteStatus(taskId); + } + + @Override + public int deleteByTaskId(Long taskId, String claimStatus) { + return baseMapper.deleteByTaskId(taskId,claimStatus); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/CacheUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/CacheUtils.java new file mode 100644 index 0000000..f7ce6da --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/CacheUtils.java @@ -0,0 +1,139 @@ +package org.springblade.hzinfo_inspect.task.util; + + +import org.springblade.hzinfo_inspect.task.entity.InspectionTaskSMS; +import net.sf.ehcache.Cache; +import net.sf.ehcache.CacheManager; +import net.sf.ehcache.Element; +import org.springblade.core.tool.utils.SpringUtil; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class CacheUtils { + private static CacheManager cacheManager = (CacheManager) SpringUtil.getBean("ehcache"); + private static final String SYS_CACHE = "sysCache"; + + public CacheUtils() { + } + + public static Object get(String key) { + return get("sysCache", key); + } + + public static void put(String key, Object value) { + put("sysCache", key, value); + } + + public static void remove(String key) { + remove("sysCache", key); + } + + public static void removeTaskSMSByTaskId(String cacheName, String key, Integer valueId) { + Object obj = get(cacheName,key) ; + if(obj == null){ + return ; + } + List taskList = (List)obj ; + Iterator iter = taskList.iterator(); + while (iter.hasNext()){ + InspectionTaskSMS taskSMS = iter.next(); + if(valueId.equals(taskSMS.getId())){ + iter.remove(); + } + } + put(cacheName,key,taskList); + } + + public static void removeTaskSMSOthersUser(String cacheName, String key, InspectionTaskSMS value) { + Object obj = get(cacheName,key) ; + if(obj == null){ + return ; + } + List taskList = (List)obj ; + Iterator iter = taskList.iterator(); + while (iter.hasNext()){ + InspectionTaskSMS taskSMS = iter.next(); + if(value.getId().equals(taskSMS.getId()) && !(value.getUserId().equals(taskSMS.getUserId()))){ + iter.remove(); + } + } + put(cacheName,key,taskList); + } + + public static Object get(String cacheName, Object key) { + Element element = getCache(cacheName).get(key); + return element == null ? null : element.getObjectValue(); + } + + public static void put(String cacheName, Object key, Object value) { + Element element = new Element(key, value); + getCache(cacheName).put(element); + } + + public static void putToList(String cacheName, Object key, Object value) { + Object obj = get(cacheName,key) ; + List taskList = (obj==null?new ArrayList():(List)obj) ; + InspectionTaskSMS taskSMS = new InspectionTaskSMS(); + BeanUtils.copyProperties(value,taskSMS) ; + taskSMS.setStartRemindFlag(taskSMS.getStartRemindFlag() == null?false:taskSMS.getStartRemindFlag() ); + taskSMS.setEndRemindFlag(taskSMS.getEndRemindFlag() == null?false:taskSMS.getEndRemindFlag() ); + taskList.add(taskSMS) ; + put(cacheName,key,taskList); + } + + public static void putTaskSMSToList(String cacheName, Object key, InspectionTaskSMS value) { + Object obj = get(cacheName,key) ; + List taskList = (obj==null?new ArrayList():(List)obj) ; + taskList.add(value) ; + put(cacheName,key,taskList); + } + + public static void putListToList(String cacheName, Object key, List values) { + for (Object value:values){ + putToList(cacheName,key,value); + } + } + + public static void putTaskSMSListToList(String cacheName, Object key, List values) { + for (InspectionTaskSMS value:values){ + putTaskSMSToList(cacheName,key,value); + } + } + + /** + * 将task列表加到缓存列表 + * @param cacheName + * @param key + * @param values + * @param isCovered 是否覆盖 + */ + public static void putTaskSMSListToList(String cacheName, Object key, List values,boolean isCovered) { + if(isCovered){ + put(cacheName,key,values); + }else { + putTaskSMSListToList(cacheName,key,values); + } + } + + public static void remove(String cacheName, Object key) { + getCache(cacheName).remove(key); + } + + private static Cache getCache(String cacheName) { + Cache cache = cacheManager.getCache(cacheName); + if (cache == null) { + cacheManager.addCache(cacheName); + cache = cacheManager.getCache(cacheName); + cache.getCacheConfiguration().setEternal(true); + } + + return cache; + } + + public static CacheManager getCacheManager() { + return cacheManager; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/TaskRemindCacheUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/TaskRemindCacheUtils.java new file mode 100644 index 0000000..a7f4fe9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/util/TaskRemindCacheUtils.java @@ -0,0 +1,296 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.hzinfo_inspect.task.util; + + +import org.springblade.hzinfo_inspect.task.entity.InspectionTaskSMS; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; +import net.sf.ehcache.Cache; +import net.sf.ehcache.CacheManager; +import net.sf.ehcache.Element; +import org.springblade.core.tool.utils.SpringUtil; + +import java.util.*; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +public class TaskRemindCacheUtils { + private static CacheManager cacheManager = (CacheManager) SpringUtil.getBean("ehcache"); + private static final String task_REMIND_CACHE = "taskRemindCache"; + + public TaskRemindCacheUtils() { + } + + public static CacheManager getCacheManager() { + return cacheManager; + } + + private static Cache getCache(String cacheName) { + Cache cache = cacheManager.getCache(cacheName); + if (cache == null) { + cacheManager.addCache(cacheName); + cache = cacheManager.getCache(cacheName); + cache.getCacheConfiguration().setEternal(true); + } + return cache; + } + + public static Object get(String key) { + return get(task_REMIND_CACHE, key); + } + + public static Object get(String cacheName, Object key) { + Element element = getCache(cacheName).get(key); + return element == null ? null : element.getObjectValue(); + } + + public static Map> getRemindTimeValueByCache(String cacheName, Object key, Date remindTimeKey) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + Map> remindTimeMap = (cacheTaskSMSMap==null)?null:cacheTaskSMSMap.get(remindTimeKey) ; + return remindTimeMap; + } + + public static List getPlanIdAndUserIdValueByCache(String cacheName, Object key, Date remindTimeKey, String planIdAndUserIdKey) { + Map> remindTimeMap = getRemindTimeValueByCache(cacheName,key,remindTimeKey) ; + return remindTimeMap==null?null:remindTimeMap.get(planIdAndUserIdKey); + } + + public static void put(String key, Object value) { + put(task_REMIND_CACHE, key, value); + } + + public static void put(String cacheName, Object key, Object value) { + Element element = new Element(key, value); + getCache(cacheName).put(element); + } + + /** + * 覆盖缓存中已有的 + * @param cacheName + * @param key + * @param groupFields 时间分组字段(startRemindTime/endRemindTime) + * @param taskSMSList + */ + public static void putTaskSMSListAndCover(String cacheName, Object key, String groupFields, List taskSMSList) { + Map>> taskSMSMap = groupTaskSMSList(groupFields,taskSMSList) ; + if(taskSMSMap==null){ + return; + } + + // 升序,降序为.sorted(Collections.reverseOrder(Entry.comparingByKey())) + LinkedHashMap>> remindDateSortMap = taskSMSMap.entrySet().stream() + .sorted(Entry.comparingByKey()) + .collect(Collectors.toMap(Entry::getKey, Entry::getValue, + (oldValue, newValue) -> newValue, + LinkedHashMap::new)); + + put(cacheName,key,remindDateSortMap); + } + + /** + * 追加到缓存中已有的 + * @param cacheName + * @param key + * @param groupFields 时间分组字段(startRemindTime/endRemindTime) + * @param taskSMSList + */ + public static void putTaskSMSListAndAppend(String cacheName, Object key, String groupFields, List taskSMSList) { + Map>> taskSMSMap = groupTaskSMSList(groupFields,taskSMSList) ; + + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + if(cacheTaskSMSMap==null){cacheTaskSMSMap = new HashMap<>();} + cacheTaskSMSMap.putAll(taskSMSMap); + + // 升序,降序为.sorted(Collections.reverseOrder(Entry.comparingByKey())) + LinkedHashMap>> remindDateSortMap = cacheTaskSMSMap.entrySet().stream() + .sorted(Entry.comparingByKey()) + .collect(Collectors.toMap(Entry::getKey, Entry::getValue, + (oldValue, newValue) -> newValue, + LinkedHashMap::new)); + put(cacheName,key,remindDateSortMap); + } + + /** + * 分组封装 + * @param groupFields 时间分组字段(startRemindTime/endRemindTime) + * @param taskSMSList + */ + private static Map>> groupTaskSMSList(String groupFields, List taskSMSList) { + Map>> taskSMSMap = new HashMap<>() ; + if(taskSMSList==null || taskSMSList.size()<=0){ + return taskSMSMap; + } + Map> remindDateMap = new HashMap<>() ; + if("endRemindTime".equalsIgnoreCase(groupFields)){ +// remindDateMap = taskSMSList.stream().collect(Collectors.groupingBy(InspectionTaskSMS::getEndRemindTime)) ; + }else { +// remindDateMap = taskSMSList.stream().collect(Collectors.groupingBy(InspectionTaskSMS::getStartRemindTime)) ; + } + remindDateMap.entrySet().stream().forEach(entry ->{ + Date thisKey = (Date) entry.getKey(); + List thisValue = (List) entry.getValue(); + Map> planIdAndUserIdMap = thisValue.stream().collect(Collectors.groupingBy(TaskSMS -> TaskSMS.getPlanId().toString()+"_"+TaskSMS.getUserId().toString())) ; + taskSMSMap.put(thisKey,planIdAndUserIdMap) ; + }); + return taskSMSMap ; + } + + /** + * 已经分好组的taskSMSMap 覆盖缓存中已有的 + * @param cacheName + * @param key + * @param GroupTaskSMSMap + */ + public static void putGroupTaskSMSMapAndCover(String cacheName, Object key, Map>> GroupTaskSMSMap) { + if(GroupTaskSMSMap==null || GroupTaskSMSMap.size()<=0){ + return; + } + // 升序,降序为.sorted(Collections.reverseOrder(Entry.comparingByKey())) + LinkedHashMap>> remindDateSortMap = GroupTaskSMSMap.entrySet().stream() + .sorted(Entry.comparingByKey()) + .collect(Collectors.toMap(Entry::getKey, Entry::getValue, + (oldValue, newValue) -> newValue, + LinkedHashMap::new)); + + put(cacheName,key,remindDateSortMap); + } + + /** + * 已经分好组的taskSMSMap 追加到缓存中已有的 + * @param cacheName + * @param key + * @param GroupTaskSMSMap + */ + public static void putGroupTaskSMSMapAndAppend(String cacheName, Object key, Map>> GroupTaskSMSMap) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + if(cacheTaskSMSMap==null){cacheTaskSMSMap = new HashMap<>();} + cacheTaskSMSMap.putAll(GroupTaskSMSMap); + + // 升序,降序为.sorted(Collections.reverseOrder(Entry.comparingByKey())) + LinkedHashMap>> remindDateSortMap = cacheTaskSMSMap.entrySet().stream() + .sorted(Entry.comparingByKey()) + .collect(Collectors.toMap(Entry::getKey, Entry::getValue, + (oldValue, newValue) -> newValue, + LinkedHashMap::new)); + put(cacheName,key,remindDateSortMap); + } + + + public static void remove(String key) { + remove(task_REMIND_CACHE, key); + } + + public static void remove(String cacheName, Object key) { + getCache(cacheName).remove(key); + } + + public static void remove(String cacheName, Object key, Date remindTimeKey) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + cacheTaskSMSMap.remove(remindTimeKey) ; + //这里可以测试一下需不需要重新排序,需要则调用 putGroupTaskSMSMapAndCover + put(cacheName,key,cacheTaskSMSMap); + } + + public static void remove(String cacheName, Object key, Date remindTimeKey, String planIdAndUserIdKey) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + cacheTaskSMSMap.remove(remindTimeKey,planIdAndUserIdKey) ; + //这里可以测试一下需不需要重新排序,需要则调用 putGroupTaskSMSMapAndCover + put(cacheName,key,cacheTaskSMSMap); + } + + public static void removeTaskSMSOthersUser(String cacheName, Object key, Date remindTimeKey, String planIdAndUserIdKey, InspectionTaskSMS taskSMS) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + Map> planIdTaskSMSMap = cacheTaskSMSMap.get(remindTimeKey); + if(planIdTaskSMSMap==null || planIdTaskSMSMap.size()<=0){ + return; + } + Set>> planIdTaskSMSSet = planIdTaskSMSMap.entrySet(); + Iterator>> planIdTaskSMSSetIterator = planIdTaskSMSSet.iterator(); + while(planIdTaskSMSSetIterator.hasNext()) { + Entry entry = planIdTaskSMSSetIterator.next(); + if(!planIdAndUserIdKey.equalsIgnoreCase((String) entry.getKey())){ + List taskSMSList = (List) entry.getValue(); + if(taskSMSList==null || taskSMSList.size()<=0){ + return; + } + Iterator listIterator = taskSMSList.iterator() ; + while (listIterator.hasNext()){ + InspectionTaskSMS entity = listIterator.next(); + if(entity.getId().equals(taskSMS.getId())){ + listIterator.remove(); + } + } +// planIdTaskSMSSetIterator.remove(); + } + } + cacheTaskSMSMap.put(remindTimeKey,planIdTaskSMSMap) ;//这句应该可以不用,会自动更新 + put(cacheName,key,cacheTaskSMSMap); + } + + /** + * 删除掉缓存中能匹配上的 taskSMS,根据planId_userId匹配 + * @param cacheName + * @param key + * @param remindTimeKey + * @param taskSMSList + */ + public static void removeTaskSMSByTaskSMSList(String cacheName, Object key, Date remindTimeKey, List taskSMSList) { + if(taskSMSList==null || taskSMSList.size()<=0){ + return; + } + Map> planIdTaskSMSMap = getRemindTimeValueByCache(cacheName,key,remindTimeKey); + if(planIdTaskSMSMap==null || planIdTaskSMSMap.size()<=0){ + return; + } + Set>> planIdTaskSMSSet = planIdTaskSMSMap.entrySet(); + Iterator>> planIdTaskSMSSetIterator = planIdTaskSMSSet.iterator(); + String planIdAndUserIdKey = "" ; + while(planIdTaskSMSSetIterator.hasNext()) { + Entry entry = planIdTaskSMSSetIterator.next(); + for(InspectionTaskSMS entity:taskSMSList){ + planIdAndUserIdKey = entity.getPlanId().toString()+"_"+entity.getUserId().toString() ; + if(planIdAndUserIdKey.equalsIgnoreCase((String) entry.getKey())){ + planIdTaskSMSSetIterator.remove(); + } + } + } + } + + public static void updateTaskSMSStatus(String cacheName, Object key, Date remindTimeKey, String planIdAndUserIdKey, TaskEntity it) { + Object obj = get(cacheName,key) ; + Map>> cacheTaskSMSMap = (obj==null?new HashMap<>(): (Map>>) obj) ; + Map> planIdTaskSMSMap = cacheTaskSMSMap.get(remindTimeKey); + if(planIdTaskSMSMap==null || planIdTaskSMSMap.size()<=0){ + return; + } + List taskSMSList = planIdTaskSMSMap.get(planIdAndUserIdKey) ; + if(taskSMSList==null || taskSMSList.size()<=0){ + return; + } + for(InspectionTaskSMS entity:taskSMSList){ + if(entity.getId().equals(it.getId())){ + entity.setStatus(it.getStatus()); + } + } + cacheTaskSMSMap.put(remindTimeKey,planIdTaskSMSMap) ;//这句应该可以不用,会自动更新 + put(cacheName,key,cacheTaskSMSMap); + } + + public static void updateTaskSMSStatus2(String cacheName, Object key, Date remindTimeKey, String planIdAndUserIdKey, TaskEntity it) { + List taskSMSList = getPlanIdAndUserIdValueByCache(cacheName,key,remindTimeKey,planIdAndUserIdKey); + for(InspectionTaskSMS entity:taskSMSList){ + if(entity.getId().equals(it.getId())){ + entity.setStatus(it.getStatus()); + } + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventAddVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventAddVO.java new file mode 100644 index 0000000..3a25d37 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventAddVO.java @@ -0,0 +1,120 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 添加巡检事件 + * @author ninglong + */ +@ApiModel +@Getter +@Setter +public class EventAddVO implements Serializable{ + + private static final long serialVersionUID = -904847315218750903L; + + /** + * 用户ID + */ + @ApiModelProperty(value = "用户ID") + private Long userId; + + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 对象ID + */ + @ApiModelProperty(value = "对象ID") + private Long objId; + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long projectId; + + /** + * 是否问题 0:否 1 是 默认0 + */ + @ApiModelProperty(value = "是否问题 0:否 1 是 默认0") + private String isProblem; + /** + * 问题类型 + */ + @ApiModelProperty(value = "问题类型") + private String typeBig; + /** + * 问题子类 + */ + @ApiModelProperty(value = "问题子类") + private String typeSmall; + + /** + * 经度(东经) + */ + @ApiModelProperty(value = "经度(东经)") + private BigDecimal lgtd; + /** + * 纬度(北纬) + */ + @ApiModelProperty(value = "纬度(北纬)") + private BigDecimal lttd; + /** + * 事件地点 + */ + @ApiModelProperty(value = "事件地点,长度必须为1到256") + @Size(min=1,max = 256,message ="事件地点长度必须为1到256") + private String address; + + /** + * 事件描述 + */ + @ApiModelProperty(value = "事件描述,长度必须为1到1024") + @Size(min=1,max = 1024,message ="事件描述长度必须为1到1024") + private String description; + + /** + * 问题初步分析结果 + */ + @ApiModelProperty(value = "问题初步分析结果") + private String initResult; + + + @ApiModelProperty(value = "巡检事件附件link") + private List attachments = Lists.newArrayList(); + + @ApiModelProperty(value = "巡检事件项目内容") + private List records = Lists.newArrayList(); + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id") + private String tenantId; + + @ApiModelProperty("创建人") + private Long createUser; + + @ApiModelProperty("创建部门") + private Long createDept; + + //问题标题 + private String title; + //问题处理人 + private Long acceptor; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventDetailVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventDetailVO.java new file mode 100644 index 0000000..88833db --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventDetailVO.java @@ -0,0 +1,53 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; + +@ApiModel +@Getter +@Setter +public class EventDetailVO implements Serializable { + + private static final long serialVersionUID = -1898580459294636409L; + + @ApiModelProperty(value = "eventid") + private Long id; + /** + * 流程实例id + */ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + /** + * 巡检情况 + */ + @ApiModelProperty(value = "巡检情况") + private String description; + + /** + * 巡检记录详情列表 + */ + @ApiModelProperty(value = "巡检记录详情列表") + private List records = Lists.newArrayList(); + + /** + * 是否问题 0:否 1 是 默认0 + */ + @ApiModelProperty(value = "是否问题 0:否 1 是 默认0") + private String isProblem; + + /** + * 巡检问题情况 + */ + @ApiModelProperty(value = "巡检问题情况") + private ProblemVO problem; + + @ApiModelProperty(value = "巡检事件附件link") + private List attachments = Lists.newArrayList(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventListVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventListVO.java new file mode 100644 index 0000000..e334426 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventListVO.java @@ -0,0 +1,49 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +@ApiModel(value = "巡检情况列表") +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EventListVO implements Serializable { + + private static final long serialVersionUID = 3596553809412766823L; + + @ApiModelProperty(value = "eventId") + private Long id; + + @ApiModelProperty(value = "巡检对象名称") + private String objectName; + @ApiModelProperty(value = "巡检项目名称") + private String projectName; + + /** + * 是否问题 0:否 1 是 默认0 + */ + @ApiModelProperty(value = "是否问题 0:否 1 是 默认0") + private String isProblem; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "登记时间") + private Date checkInTime; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordAddVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordAddVO.java new file mode 100644 index 0000000..9c1a8cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordAddVO.java @@ -0,0 +1,67 @@ +/** + * + */ +package org.springblade.hzinfo_inspect.task.vo; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.Size; + +/** + * 添加巡检事件记录 + * @author ninglong + */ +@ApiModel +@Getter +@Setter +public class EventRecordAddVO implements Serializable{ + + private static final long serialVersionUID = 6126024462815116035L; + + /** + * 内容ID + */ + @ApiModelProperty(value = "内容ID") + private Long contentId; + /** + * 内容当前状态 0 异常 1 正常 + */ + @ApiModelProperty(value = "内容当前状态 0 异常 1 正常 ") + private String currentStatus; + /** + * 内容当前值 + */ + @ApiModelProperty(value = "内容当前值,长度必须为0到32") + @Size(min=0,max = 32,message ="内容当前值长度必须为0到32") + private String currentValue; + + /** + * 文件地址 + */ + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id") + private String tenantId; + + @ApiModelProperty("创建人") + private Long createUser; + + @ApiModelProperty("创建部门") + private Long createDept; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordDetailVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordDetailVO.java new file mode 100644 index 0000000..d370cf8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/EventRecordDetailVO.java @@ -0,0 +1,93 @@ +package org.springblade.hzinfo_inspect.task.vo; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import java.io.Serializable; + +/** + * + * @author ninglong + */ +@ApiModel +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EventRecordDetailVO implements Serializable { + + private static final long serialVersionUID = -4953886177398343272L; + + /** + * 项目内容 + */ + @ApiModelProperty(value = "项目内容") + private String contentName; + + /** + * 记录类型 0不记录 1仅选择 2仅记值 3选择并记值 + */ + @ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值") + private String recordType; + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + private String checkType; + /** + * 内容当前状态 0 异常 1 正常 + */ + @ApiModelProperty(value = "内容当前状态 0 异常 1 正常 ") + private String currentStatus; + /** + * 内容当前值 + */ + @ApiModelProperty(value = "内容当前值") + private String currentValue; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + private String checkTypeSon; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + + + /** + * 文件地址 + */ + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0 + */ + @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0") + private String cameraAddr; + + /** + * 其他参数,例如多联断路器内断路器的个数 + */ + @ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数") + private String otherParam; + + /** + * 校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开 + */ + @ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开") + private String checkVal; + + /** + * 内容描述 + */ + @ApiModelProperty(value = "内容描述") + private String description; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/ProblemVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/ProblemVO.java new file mode 100644 index 0000000..b48906d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/ProblemVO.java @@ -0,0 +1,38 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import java.io.Serializable; + +@ApiModel(value = "问题") +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProblemVO implements Serializable { + + private static final long serialVersionUID = -5071556826690427655L; + + /** + * 问题类型 + */ + @ApiModelProperty(value = "问题类型") + private String typeBig; + /** + * 问题子类 + */ + @ApiModelProperty(value = "问题子类") + private String typeSmall; + + /** + * 问题处理状态 + */ + @ApiModelProperty(value = "问题处理状态") + private String problemStatus; + + @ApiModelProperty(value = "巡检情况") + private String problemDetail; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskCountVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskCountVO.java new file mode 100644 index 0000000..a6e8521 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskCountVO.java @@ -0,0 +1,37 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +/** + * @author hx + */ +@EqualsAndHashCode +@Data +public class TaskCountVO implements Serializable { + + @ApiModelProperty("人员ID") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long userId; + + @ApiModelProperty("巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检") + private String autoVideo; + + @ApiModelProperty("完成任务数") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer finishTask; + + @ApiModelProperty("未完成任务数") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer undoneTask; + + @ApiModelProperty("工时") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer hours; + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskListQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskListQuery.java new file mode 100644 index 0000000..f26670f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskListQuery.java @@ -0,0 +1,101 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author ninglong + * @create 2020-08-26 8:32 + */ +@Getter +@Setter +@ApiModel(value="任务列表查询对象") +public class TaskListQuery implements Serializable { + private static final long serialVersionUID = 6980525036205124047L; + + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String planName; + + /** + * 值班id + */ + @ApiModelProperty(value = "值班id") + private Long dutyId; + + /** + * 任务批次号 + */ + @ApiModelProperty(value = "任务批次号") + private String batchNumber; + + @ApiModelProperty("任务状态 0未开始 1进行中 2暂停 3已完成 4未完成") + private Integer status; + + /** + * 计划周期 0: 从不 1:每天 2:每月 3:每季度 4:每年 5:每周 + */ + @ApiModelProperty(value = "巡检周期 0: 每次 1:每天 2:每月 3:每季度 4:每年 5:每周") + private String cycle; + + /** + * 任务计划开始时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "任务计划开始时间-起") + private LocalDateTime planStartTime; + + /** + * 任务计划开始时间-止 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "任务计划开始时间-止") + private LocalDateTime planStartTimeEnd; + + /** + * 任务计划结束时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "任务计划结束时间") + private LocalDateTime planEndTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "任务实际开始时间") + private LocalDateTime startTime; + + @ApiModelProperty(value = "租户id",hidden = true) + private String tenantId; + + @ApiModelProperty(value = "当前登录的用户",hidden = true) + private Long curUserId; + + @ApiModelProperty(value = "当前对象id,用于扫描对象接口",hidden = true) + private Long objectId; + + @ApiModelProperty(value = "任务报备 0 未报备 1已报备") + private String keepOnRecord; + + /** + * 巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 + */ + @ApiModelProperty(value = "巡检类型标识: 0普通巡检,1视频自动巡检,2机器人巡检 3防汛巡检 4特殊巡检") + private String autoVideo; + + private List autoVideos; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectContentVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectContentVO.java new file mode 100644 index 0000000..e22addb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectContentVO.java @@ -0,0 +1,119 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import java.io.Serializable; + +/** + * 任务对象项目内容 + * @author ninglong + * @create 2020-08-24 8:55 + */ +@Setter +@Getter +@ApiModel(value = "任务对象项目内容") +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class TaskObjectProjectContentVO implements Serializable { + + /** + * 内容ID + */ + @ApiModelProperty(value = "内容ID") + private Long contentId; + + /** + * 内容名称 + */ + @ApiModelProperty(value = "内容名称") + private String name; + /** + * 检测标准 + */ + @ApiModelProperty(value = "检测标准") + private String description; + + /** + * 完成标识 + */ + @ApiModelProperty(value = "完成标识 0 不可用 1 可用") + private String available; + /** + * 检测类型 + */ + @ApiModelProperty(value = "检测类型") + private String checkType; + /** + * 记录类型 + */ + @ApiModelProperty(value = "记录类型") + private String recordType; + + /** + * 内容当前状态 0 异常 1 正常 + */ + @ApiModelProperty(value = "内容当前状态 0 异常 1 正常 ") + private String currentStatus; + /** + * 内容当前值 + */ + @ApiModelProperty(value = "内容当前值") + private String currentValue; + + /** + * 文件地址 + */ + @ApiModelProperty(value = "文件地址") + private String fileUrl; + + /** + * 表针识别,表盘ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "表针识别,表盘ID") + private Long clockId; + + /** + * 视频巡检摄像机ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "视频巡检摄像机ID") + private Long cameraId; + + /** + * 检测类型子类 + */ + @ApiModelProperty(value = "检测类型子类") + private String checkTypeSon; + + /** + * 开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0 + */ + @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0") + private String cameraAddr; + + + /** + * 其他参数,例如多联断路器内断路器的个数 + */ + @ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数") + private String otherParam; + + /** + * 校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开 + */ + @ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开") + private String checkVal; + + /** + * 记值方式为选择时选择值 + */ + @ApiModelProperty(value = "记值方式为选择时选择值") + private String dictType; + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectVO.java new file mode 100644 index 0000000..dee5440 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectProjectVO.java @@ -0,0 +1,34 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 任务对象项目 + * @author ninglong + * @create 2020-08-24 8:52 + */ +@Getter +@Setter +@ApiModel(value = "任务对象项目") +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TaskObjectProjectVO implements Serializable { + + @ApiModelProperty(value = "任务对象项目ID") + private Long projectId; + @ApiModelProperty(value = "任务对象项目名称") + private String projectName; + @ApiModelProperty(value = "项目状态") + private Integer status; + + @Builder.Default + @ApiModelProperty(value = "任务对象项目内容") + private List contents = Lists.newArrayList(); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectVO.java new file mode 100644 index 0000000..6ccbb26 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskObjectVO.java @@ -0,0 +1,64 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import com.google.common.collect.Lists; +//import com.hnac.hzims.safeproduct.entity.DangerSourceEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.hzinfo_inspect.safeproduct.entity.DangerSourceEntity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 任务对象 + * @author ninglong + * @create 2020-08-24 8:51 + */ +@Setter +@Getter +@ApiModel(value = "任务对象") +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TaskObjectVO implements Serializable { + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + + @ApiModelProperty(value = "任务对象ID") + private Long objId; + @ApiModelProperty(value = "任务对象名称") + private String objName; + @ApiModelProperty(value = "对象状态") + private Integer status; + + private BigDecimal lng; + private BigDecimal lat; + /** + * 是否重复记录 0 不允许 1允许 + */ + @ApiModelProperty(value = "是否重复记录 0 不允许 1允许") + private String duplicateRecord; + + @ApiModelProperty(value = "排序") + private Integer order; + + @ApiModelProperty(value = "巡检对象危险点信息") + private List dangers; + + @Builder.Default + @ApiModelProperty(value = "任务对象项目") + private List projects = Lists.newArrayList(); + + public Integer getOrder() { + if(ObjectUtil.isEmpty(this.order)){ + return 1; + } + return order; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskRecordAddVO.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskRecordAddVO.java new file mode 100644 index 0000000..a50c00b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskRecordAddVO.java @@ -0,0 +1,42 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.Size; +import java.io.Serializable; + +/** + * @author ninglong + * @create 2020-08-24 8:26 + */ +@Setter +@Getter +@ApiModel(value = "巡检报备") +public class TaskRecordAddVO implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + /** + * 报备原因 + */ + @ApiModelProperty(value = "报备原因,长度必须为0到1024") + @Size(min=0,max = 1024,message ="报备原因长度必须为0到1024") + private String reason; + /** + * 报备模式 0 任务报备 1 人员报备 + */ + @ApiModelProperty(value = "报备模式 0 任务报备 1 人员报备",required=true) + private String type; + /** + * 任务执行人 + */ + @ApiModelProperty(value = "任务执行人") + private Long executor; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskVo.java new file mode 100644 index 0000000..3f4c4d6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/task/vo/TaskVo.java @@ -0,0 +1,20 @@ +package org.springblade.hzinfo_inspect.task.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; +import org.springblade.hzinfo_inspect.task.entity.TaskEntity; + +/** + * @Author: py + */ +@Getter +@Setter +@ApiModel(value="任务返回对象") +public class TaskVo extends TaskEntity { + + /** + * 是否能撤销领用 + */ + private Boolean canCancel = false; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Base64ImgReplacedElementFactory.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Base64ImgReplacedElementFactory.java new file mode 100644 index 0000000..88b1b0f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Base64ImgReplacedElementFactory.java @@ -0,0 +1,106 @@ +package org.springblade.hzinfo_inspect.utils; + +import java.io.IOException; + + +import com.itextpdf.text.BadElementException; +import com.itextpdf.text.Image; +import com.itextpdf.text.pdf.codec.Base64; +import org.w3c.dom.Element; +import org.xhtmlrenderer.extend.FSImage; +import org.xhtmlrenderer.extend.ReplacedElement; +import org.xhtmlrenderer.extend.ReplacedElementFactory; +import org.xhtmlrenderer.extend.UserAgentCallback; +import org.xhtmlrenderer.layout.LayoutContext; +import org.xhtmlrenderer.pdf.ITextFSImage; +import org.xhtmlrenderer.pdf.ITextImageElement; +import org.xhtmlrenderer.render.BlockBox; +import org.xhtmlrenderer.simple.extend.FormSubmissionListener; + +/** + *  * 图片base64支持,把图片转换为itext自己的图片对象 + */ +public class Base64ImgReplacedElementFactory implements ReplacedElementFactory { + + + /** + *    * 实现createReplacedElement 替换html中的Img标签 + *    *  + *    * @param c 上下文 + *    * @param box 盒子 + *    * @param uac 回调 + *    * @param cssWidth css宽 + *    * @param cssHeight css高 + *    * @return ReplacedElement + *     + */ + @Override + public ReplacedElement createReplacedElement(LayoutContext c, BlockBox box, UserAgentCallback uac, int cssWidth, int cssHeight) { + Element e = box.getElement(); + if (e == null) { + return null; + } + String nodeName = e.getNodeName(); + // 找到img标签 + if (nodeName.equals("img")) { + String attribute = e.getAttribute("src"); + FSImage fsImage; + try { + // 生成itext图像 + fsImage = buildImage( attribute, uac); + } catch (BadElementException e1) { + fsImage = null; + } catch (IOException e1) { + fsImage = null; + } + if (fsImage != null) { + // 对图像进行缩放 + if (cssWidth != -1 || cssHeight != -1) { + fsImage.scale(cssWidth, cssHeight); + } + return new ITextImageElement(fsImage); + } + } + + return null; + } + + + /** + *    * 编解码base64并生成itext图像     + *     + */ + protected FSImage buildImage(String srcAttr, UserAgentCallback uac) throws IOException, + BadElementException { + FSImage fiImg = null; + if (srcAttr.toLowerCase().startsWith("data:image/")) { + String base64Code = srcAttr.substring(srcAttr.indexOf("base64,") + "base64,".length(), srcAttr.length()); + // 解码 + byte[] decodedBytes = Base64.decode(base64Code); + + + fiImg = new ITextFSImage(Image.getInstance(decodedBytes)); + } else { + if(srcAttr.contains("http")){ + fiImg = uac.getImageResource( srcAttr).getImage(); + } else { + fiImg = uac.getImageResource( "file:///" + srcAttr).getImage(); + } + } + return fiImg; + } + + + @Override + public void reset() { + } + + @Override + public void remove(Element arg0) { + } + + @Override + public void setFormSubmissionListener(FormSubmissionListener arg0) { + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Condition.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Condition.java new file mode 100644 index 0000000..4337707 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/Condition.java @@ -0,0 +1,81 @@ +package org.springblade.hzinfo_inspect.utils; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; +import org.springblade.core.tool.utils.Func; + +import java.lang.reflect.Field; +import java.util.List; + +/** + * @author ninglong + * @create 2020-08-25 18:59 + */ +public class Condition extends org.springblade.core.mp.support.Condition { + + /** + * 驼峰转下划线 + * @param c + * @return + */ + private static String camel2under(String c) { + String separator = "_"; + c = c.replaceAll("([a-z])([A-Z])", "$1" + separator + "$2").toUpperCase(); + return c; + } + + /** + * 支持配置化的模糊查询 + * @param entity 数据库返回的对象实体 + * @param query 查询条件实体 + * @param 数据库返回的对象实体 + * @return + */ + public static LambdaQueryWrapper getQueryWrapper(T entity, Object query) { + QueryWrapper qw = new QueryWrapper(); + qw.setEntityClass(entity.getClass()); + Class queryClass = query.getClass(); + Field[] fields = queryClass.getDeclaredFields(); + for(Field field:fields){ + field.setAccessible(true); + QueryField queryField = field.getAnnotation(QueryField.class); + if(queryField==null)continue; + Object value; + try { + value = field.get(query); + } catch (Exception e) { + throw new ServiceException("获取属性性出错"); + } + if(value==null)continue; + List list = null; + if(value instanceof List){ + list = (List)value; + if(list.size()==0)continue; + } + String condition = queryField.condition(); + if(Func.isBlank(condition))continue; + String fileName = camel2under(field.getName()); + if(SqlCondition.EQUAL.equals(condition)) { + qw.eq(fileName, value); + }else if(SqlCondition.LIKE.equals(condition)){ + qw.like(fileName,value); + }else if(SqlCondition.LIKE_LEFT.equals(condition)){ + qw.likeLeft(fileName,value); + }else if(SqlCondition.LIKE_RIGHT.equals(condition)){ + qw.likeRight(fileName,value); + }else if(SqlCondition.NOT_IN.equals(condition)){ + String columnName = queryField.columnName(); + if(Func.isBlank(columnName))throw new ServiceException("查询不包含条件时需要指定列名"); + qw.notIn(camel2under(columnName),list); + }else if(SqlCondition.IN.equals(condition)){ + String columnName = queryField.columnName(); + if(Func.isBlank(columnName))throw new ServiceException("查询包含条件时需要指定列名"); + qw.in(camel2under(columnName),list); + } + } + return qw.lambda(); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HiKUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HiKUtil.java new file mode 100644 index 0000000..e4d78ad --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HiKUtil.java @@ -0,0 +1,158 @@ +package org.springblade.hzinfo_inspect.utils; + +import com.alibaba.druid.support.json.JSONUtils; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.hikvision.artemis.sdk.ArtemisHttpUtil; +import com.hikvision.artemis.sdk.config.ArtemisConfig; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import org.springblade.core.http.HttpRequest; +import org.springblade.core.http.LogLevel; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Value; +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: liugang + * @Date: 2020/3/24 14:40 + */ +public class HiKUtil { + + /** + * minio ip 地址 + */ + @Value("${hzims.inspect.video.minio-url}") + private static String minioUrl; + + + /** + * 获取视频流 + * + * @param videoId + * @return + */ + public static String previewURL(String videoId) { + //请求路径 + String api = "/api/video/v1/cameras/previewURLs"; + //STEP5:组装请求参数 + Map map = new HashMap<>(8); + map.put("cameraIndexCode", videoId); + map.put("streamType", 0); + map.put("protocol", "rtsp"); + map.put("transmode", 1); + map.put("expand", "streamform=ps"); + String result = send(api, map); + + JSONObject object = JsonUtil.parse(result, JSONObject.class); + return object.getString("url"); + } + + /** + * 从摄像头截图 + * + * @param pointCode cameraIndexCode + * @return 视频云图片地址 + */ + private static String manualCapture(String pointCode) { + //请求路径 + String api = "/api/video/v1/manualCapture"; + //STEP5:组装请求参数 + Map map = new HashMap<>(8); + map.put("cameraIndexCode", pointCode); + String result = send(api, map); + JSONObject object = JsonUtil.parse(result, JSONObject.class); + return object.getString("picUrl"); + } + + + /** + * 发送请求到视频云 + * + * @param api + * @param map + * @return + */ + public static String send(String api, Map map) { + //STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数. + ArtemisConfig.host = "175.6.40.71:443"; + ArtemisConfig.appKey = "21815698"; + ArtemisConfig.appSecret = "QzPHyG2qWgQM8tBJOAJk"; + //STEP2:设置OpenAPI接口的上下文 + final String ARTEMIS_PATH = "/artemis"; + //STEP3:设置接口的URI地址 + final String url = ARTEMIS_PATH + api; + Map path = new HashMap(2) { + { + //根据现场环境部署确认是http还是https + put("https://", url); + } + }; + //STEP4:设置参数提交方式 + String contentType = "application/json"; + String body = JSONUtils.toJSONString(map); + //post请求application/json类型参数 + String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null); + JSONObject object = JsonUtil.parse(result, JSONObject.class); + return object.getString("data"); + } + + /** + * 根据视频云图片地址,获取图片字节流,存入minio,返回url + * @param picUrl 视频云图片地址 + * @return 图片存储在minio的地址 + */ + private static String getVedioPicUrl(String picUrl) { + byte[] file = HttpRequest.get(picUrl) + // 设定全局日志级别 NONE,BASIC,HEADERS,BODY, 默认:NONE + .log(LogLevel.BODY) + .execute() + .onFailed(((request, e) -> { + System.out.println("获取图片信息失败:" + e.toString()); + })) + .asBytes(); + + //上传到minio + RequestBody body = RequestBody.create(MediaType.parse("application/octet-stream") + , file); + MultipartBody multipartBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file", "jietu.jpg", body) + .build(); + JsonNode result = HttpRequest.post(minioUrl + "/api/blade-resource/oss/endpoint/put-file?code=minio") + // 设定全局日志级别 NONE,BASIC,HEADERS,BODY, 默认:NONE + .log(LogLevel.BASIC) + .body(multipartBody) + .execute() + .onFailed(((request, e) -> { + System.out.println("上传视频截图到minio失败:" + e.toString()); + })) + .asJsonNode(); + + String re = ""; + if(Func.isNotEmpty(result) && Func.isNotEmpty(result.get("data"))){ + JsonNode data = result.get("data"); + re = data.get("link").asText(); + } + return re; + } + + /** + * 获取摄像头截图,存入iso - minio,返回url + * @param pointCode 摄像头接入视频云的cameraIndexCode + * @return 图片存储在minio的地址 + */ + public static String getIOSPicUrl(String pointCode){ + String isoPicurl = ""; + String picUrl = manualCapture(pointCode); + if(Func.isNotEmpty(picUrl)){ + isoPicurl = getVedioPicUrl(picUrl); + } + return isoPicurl; + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmlModule.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmlModule.java new file mode 100644 index 0000000..789f276 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmlModule.java @@ -0,0 +1,121 @@ +package org.springblade.hzinfo_inspect.utils; + +import lombok.extern.slf4j.Slf4j; + +import java.io.*; +import java.lang.reflect.Field; +import java.util.List; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 专门用来解析生成PDF文档的html自定义模板 + */ +@Slf4j +public class HtmlModule { + + /** + * 读取resource资源下的html模板文件 + * 保留head部分,循环生成body部分 + * @param modules + * @param templetPath + * @return + * @throws Exception + */ + public static String buildHtml(List modules, String templetPath) throws Exception { + //读取html +// String filePath = HtmlModule.class.getResource(templetPath).getPath(); + String html = readToString(templetPath); + StringBuilder htmlStr = new StringBuilder(); + //找到头的部分 + String headHtml = findInString(html, ".*"); + //找到body部分 + String bodyHtml = findInString(html, ".*"); + //处理body部分 + bodyHtml = bodyHtml.substring(6, bodyHtml.length() - 7); + //构造html + //定义HTML的DOCTYPE + htmlStr.append(""); + htmlStr.append(""); + htmlStr.append(headHtml); + htmlStr.append(""); + for (int i = 0; i < modules.size(); i++) { + if (i < 1) { + //htmlStr.append("
"); + htmlStr.append(buildHtmlBody(bodyHtml, modules.get(i))); + //htmlStr.append("
"); + } else { + //htmlStr.append("
"); + htmlStr.append(buildHtmlBody(bodyHtml, modules.get(i))); + //htmlStr.append("
"); + } + } + htmlStr.append(""); + htmlStr.append(""); + log.info(htmlStr.toString()); + return htmlStr.toString().replaceAll(" "," "); + } + + /** + * 利用反射把数据注入模板内容中 + * @param bodyHtml + * @param object + * @return + * @throws IllegalAccessException + */ + public static String buildHtmlBody(String bodyHtml, Object object) throws IllegalAccessException { + //获取该对象所有属性 + Field[] fields = object.getClass().getDeclaredFields(); + //设置值 + String result = bodyHtml; + for (Field field : fields) { + field.setAccessible(true); + String key = field.getName(); + Object objValue = field.get(object); + String value = ""; + if (!Objects.isNull(objValue)) { + value = objValue.toString(); + } + result = result.replace("${" + key + "}", value); + } + return result; + } + + /** + * 读取文件到String中,指定以UTF-8格式读取 + * @param filePath + * @return + * @throws IOException + */ + public static String readToString(String filePath) throws IOException { + InputStream is = new FileInputStream(filePath); + StringBuffer buffer = new StringBuffer(); + String line; // 用来保存每行读取的内容 + BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8")); + line = reader.readLine(); // 读取第一行 + while (line != null) { // 如果 line 为空说明读完了 + buffer.append(line); // 将读到的内容添加到 buffer 中 + line = reader.readLine(); // 读取下一行 + } + reader.close(); + is.close(); + return buffer.toString(); + } + + /** + * 查找html内容里的标签内容 + * @param html + * @param regex + * @return + */ + public static String findInString(String html, String regex) { + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(html); + if (matcher.find()) { + return matcher.group(); + } + return null; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmltoPdf.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmltoPdf.java new file mode 100644 index 0000000..94c20a9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HtmltoPdf.java @@ -0,0 +1,136 @@ +package org.springblade.hzinfo_inspect.utils; + +import com.itextpdf.text.Document; +import com.itextpdf.text.DocumentException; +import com.itextpdf.text.Font; +import com.itextpdf.text.Rectangle; +import com.itextpdf.text.pdf.BaseFont; +import com.itextpdf.text.pdf.PdfWriter; +import com.itextpdf.tool.xml.XMLWorkerFontProvider; +import com.itextpdf.tool.xml.XMLWorkerHelper; +import com.itextpdf.tool.xml.html.CssAppliers; +import com.itextpdf.tool.xml.html.CssAppliersImpl; +import com.itextpdf.tool.xml.html.Tags; +import com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext; +import org.xhtmlrenderer.pdf.ITextFontResolver; +import org.xhtmlrenderer.pdf.ITextRenderer; + +import java.io.*; +import java.net.URL; +import java.nio.charset.Charset; + +/** + * HTML 转 PDF + */ +public class HtmltoPdf { + + /** + * 生成页面pdf文档 + * @param rectangle 页面大小可以设置长和高 + * @param htmlstr 需要解析的html文档 + * @param filePath 生成的pdf写入路径 + * @throws IOException + * @throws DocumentException + */ + public static void html2pdf(Rectangle rectangle,String htmlstr, String filePath) throws IOException, DocumentException{ + Document document = new Document(rectangle,10,10,10,10); + PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filePath)); + document.open(); + InputStream htmlInput = new ByteArrayInputStream(htmlstr.getBytes("UTF-8")); + // 使用自定义的字体提供器,并将其设置为unicode字体样式 + FontsProvider fontProvider = new FontsProvider(); + fontProvider.addFontSubstitute("lowagie", "garamond"); + fontProvider.setUseUnicode(true); + CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); + HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); + htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); + XMLWorkerHelper.getInstance().getDefaultCssResolver(true); + //解析html文件 + XMLWorkerHelper.getInstance().parseXHtml(writer, document, htmlInput, null, Charset.forName("UTF-8"), fontProvider); + + //关闭流 + document.close(); + writer.close(); + } + + public static void html2pdfnew(String html, String font, String pdfpath) throws IOException, DocumentException { + OutputStream outputStream = new FileOutputStream(pdfpath); + ITextRenderer renderer = new ITextRenderer(); + + //解决中文支持问题 + ITextFontResolver resolver = renderer.getFontResolver(); + resolver.addFont(font , BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + renderer.setDocumentFromString(html); + renderer.layout(); + renderer.createPDF(outputStream); + outputStream.close(); + } + + + /** + * html 转换为PDF + * @param html HTML string + * @param pdfpath pdf文件路径 + * @throws IOException + * @throws DocumentException + */ + public static void htmlToPdf(String html, String pdfpath) throws IOException, DocumentException { + OutputStream outputStream = new FileOutputStream(pdfpath); + ITextRenderer renderer = new ITextRenderer(); + // 插入图片 + renderer.getSharedContext().setReplacedElementFactory(new Base64ImgReplacedElementFactory()); + + //解决中文支持问题 + ITextFontResolver resolver = renderer.getFontResolver(); + if("linux".equals(getCurrentOperatingSystem())){ + resolver.addFont("/usr/share/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + }else{ + resolver.addFont("C:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + } + + renderer.setDocumentFromString(html); + renderer.layout(); + renderer.createPDF(outputStream); + outputStream.close(); + } + + public static String getCurrentOperatingSystem(){ + String os = System.getProperty("os.name").toLowerCase(); + System.out.println("---------当前操作系统是-----------" + os); + return os; + } + + private static class FontsProvider extends XMLWorkerFontProvider { + + /** + *   * 构造函数 + *    + */ + public FontsProvider() { + super(null, null); + } + + /** + *    * 重载,获取自定义的字体 + *          * @param fontName字体名称 + *          * @param encoding编码信息 + *          * @param size字体大小 + *          * @param style字体风格 + *          * @return Font 自定义的字体 + *          + */ + @Override + public Font getFont(final String fontName, String encoding, float size, final int style) { + String fntname = fontName; + if (fntname == null) { + fntname = "宋体"; + } + if (size == 0) { + size = 4; + } + return super.getFont(fntname, encoding, size, style); + } + } + +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HttpClientUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HttpClientUtils.java new file mode 100644 index 0000000..fc20c16 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HttpClientUtils.java @@ -0,0 +1,113 @@ +package org.springblade.hzinfo_inspect.utils; + +import lombok.extern.log4j.Log4j2; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; + +import javax.net.ssl.*; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; + +@Log4j2 +public abstract class HttpClientUtils { + + /** + * 请求参数格式 + */ + public static final String CONTENT_TYPE_APPLICATION_JSON = "application/json"; + public static final String CONTENT_TYPE_APPLICATION_XWWWFORM = "application/x-www-form-urlencoded"; + + /** + * 默认请求编码 + */ + private static final String DEFAULT_CHARSET = "UTF-8"; + private static PoolingHttpClientConnectionManager cm = null; + + static { + if (cm == null) { + SSLContext sc = null; + + try { + sc = SSLContext.getInstance("SSLv3"); + sc.init((KeyManager[]) null, new TrustManager[]{new X509TrustManager() { + public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { + } + + public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { + } + + public X509Certificate[] getAcceptedIssuers() { + return null; + } + }}, (SecureRandom) null); + } catch (NoSuchAlgorithmException var3) { + var3.printStackTrace(); + } catch (KeyManagementException var2) { + var2.printStackTrace(); + } + Registry socketFactoryRegistry = RegistryBuilder.create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sc, new HostnameVerifier() { + public boolean verify(String s, SSLSession sslSession) { + return true; + } + })).build(); + + cm = new PoolingHttpClientConnectionManager(socketFactoryRegistry); + cm.setMaxTotal(200); + cm.setDefaultMaxPerRoute(20); + } + } + + /** + * 下载文件 + * + * @param url 文件路径 + * @param filePath 文件保存地址 + */ + public static void download(String url, String filePath) { + FileOutputStream out = null; + InputStream is = null; + try { + CloseableHttpClient client = HttpClients.custom().setConnectionManager(cm).setConnectionManagerShared(true).build(); + HttpGet get = new HttpGet(url); + is = client.execute(get).getEntity().getContent(); + + File file = new File(filePath); + file.getParentFile().mkdirs(); + out = new FileOutputStream(file); + byte[] buffer = new byte[1024]; + int ch = 0; + while ((ch = is.read(buffer)) != -1) { + out.write(buffer, 0, ch); + } + } catch (Exception ex) { + throw new RuntimeException("download file error!", ex); + } finally { + try { + if (is == null) { + is.close(); + } + if (out != null) { + out.flush(); + out.close(); + } + } catch (IOException ex) { + throw new RuntimeException("close io error!", ex); + } + } + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HzimsThreadPool.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HzimsThreadPool.java new file mode 100644 index 0000000..6b92229 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/HzimsThreadPool.java @@ -0,0 +1,22 @@ +package org.springblade.hzinfo_inspect.utils; + +import java.util.concurrent.*; + +/** + * @Author: py + */ +public class HzimsThreadPool { + private static ThreadPoolExecutor fixedThreadExecutor; + + public HzimsThreadPool() { + } + + public static ThreadPoolExecutor getFixedThreadExecutor() { + return fixedThreadExecutor; + } + + static { + ThreadFactory threadFactory = Executors.defaultThreadFactory(); + fixedThreadExecutor = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque(), threadFactory); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/JsonFileUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/JsonFileUtil.java new file mode 100644 index 0000000..fec65d0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/JsonFileUtil.java @@ -0,0 +1,212 @@ +package org.springblade.hzinfo_inspect.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import org.apache.commons.io.FileUtils; + +import java.io.*; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; +import java.util.List; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; + +/** + * @author h w + * created in 2019/3/11 10:10 + * modified By: + */ +public class JsonFileUtil { + + /** + * 解析本地json文件 + * @param list + * @param fileName 文件名称 + * @param filePath 文件存储路例 + * @param clazz + * @return file 文件对象 + */ + public static List readJsonFile(String filePath, Class clazz) { + File file = new File(filePath); + if(!file.exists()) { + return null; + } + String content = ""; + try { + content = FileUtils.readFileToString(file, "UTF-8"); + } catch (IOException e) { + e.printStackTrace(); + } + JSONArray jsonArray = JSONObject.parseArray(content); + ArrayList temp = JSONArray.parseObject(content, new TypeReference>() {}); + List res = new ArrayList(); + for (Object re : temp) { + res.add(JSONObject.parseObject(JSONObject.toJSONString(re), clazz)); + } + file.delete(); + return res; + } + + /** + * 泛型集合转存为json文件 + * @param list + * @param filePath 文件存储路例 + * @param fileName 文件名称 + * @return file 文件对象 + */ + public static File listToJsonFile(Collection list, String filePath, String fileName) { + File dir = new File(filePath); + if(!dir.exists()){ + dir.mkdirs(); + } + File jsonFile = new File(filePath + fileName); + if(jsonFile.exists()){ + jsonFile.delete(); + } + String json = "[]"; + if(list != null) { + json = JSONObject.toJSONString(list); + } + try { + OutputStreamWriter op = new OutputStreamWriter(new FileOutputStream(jsonFile), "UTF-8"); + op.append(json); + op.flush(); + op.close(); + } catch (IOException e) { + e.printStackTrace(); + } + return jsonFile; + } + + /** + * 多文件打包为ZIP文件 + * @param files 文件集合 + * @param filePath 文件存储路例 + * @param fileName 文件名称 + * @return file 打包后的文件对象 + */ + public static File filesPackageToZip(List filesOld, String filePath, String fileName) { + List files = filesOld.stream().distinct().collect(Collectors.toList()); + File res = null; + try { + byte[] buffer = new byte[1024]; + File resDir = new File(filePath); + if(!resDir.exists()) { + resDir.mkdirs(); + } + res = new File(filePath + fileName); + if(!res.exists()) { + res.createNewFile(); + } + ZipOutputStream out = new ZipOutputStream(new FileOutputStream(res)); + for (int i = 0; i < files.size(); i++) { + FileInputStream fis = new FileInputStream(files.get(i)); + out.putNextEntry(new ZipEntry(files.get(i).getName())); + int len; + while ((len = fis.read(buffer)) > 0) { + out.write(buffer, 0, len); + } + out.closeEntry(); + fis.close(); + } + out.close(); + for (File file : files) { + file.delete(); + } + }catch (IOException e) { + e.printStackTrace(); + } + return res; + } + + /** + * 复制一个文件到新路径 + * @param oldFilePath 原文件路径 + * @param targetDir 目标目录 + * @param targetFileName 目标文件名 + * @return file 复制后的文件对象 + */ + public static File copyfile(String oldFilePath, String targetDir, String targetFileName) { + File oldFile = new File(oldFilePath); + if(!oldFile.exists()) { + return null; + } + File targetDirFile = new File(targetDir); + File targetFile = null; + try { + if(!targetDirFile.exists()) { + targetDirFile.mkdirs(); + } + targetFile = new File(targetDir + targetFileName); + if(!targetFile.exists()) { + targetFile.createNewFile(); + } + FileInputStream ins = new FileInputStream(oldFile); + FileOutputStream out = new FileOutputStream(targetFile); + byte[] b = new byte[1024]; + int n = 0; + while((n = ins.read(b)) != -1) { + out.write(b, 0, b.length); + } + ins.close(); + out.close(); + }catch (IOException e) { + e.printStackTrace(); + } + return targetFile; + } + + /** + * 解压Zip文件到指定目录 + * @param zipPath zip文件路径 + * @param descDir 指定目录路径(如果是文件夹需要以"/"结尾) + * @return + */ + public static void unZipFiles(String zipPath, String descDir) { + File zipFile = new File(zipPath); + if(!zipFile.exists()) { + return; + } + File pathFile = new File(descDir); + if(!pathFile.exists()) { + pathFile.mkdirs(); + } + //解决zip文件中有中文目录或者中文文件 + try { + ZipFile zip = new ZipFile(zipFile, Charset.forName("GBK")); + for(Enumeration entries = zip.entries(); entries.hasMoreElements();) { + ZipEntry entry = (ZipEntry)entries.nextElement(); + String zipEntryName = entry.getName(); + InputStream in = zip.getInputStream(entry); + String outPath = (descDir + zipEntryName).replaceAll("\\*", "/");; + //判断路径是否存在,不存在则创建文件路径 + File file = new File(outPath.substring(0, outPath.lastIndexOf('/'))); + if(!file.exists()) { + file.mkdirs(); + } + //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压 + if(new File(outPath).isDirectory()) { + continue; + } + //输出文件路径信息 + OutputStream out = new FileOutputStream(outPath); + byte[] buf = new byte[1024]; + int len; + while((len = in.read(buf)) > 0) { + out.write(buf,0,len); + } + in.close(); + out.close(); + } + zipFile.delete(); + }catch(Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/ZxingGenCode.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/ZxingGenCode.java new file mode 100644 index 0000000..1e34580 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/java/org/springblade/hzinfo_inspect/utils/ZxingGenCode.java @@ -0,0 +1,92 @@ +package org.springblade.hzinfo_inspect.utils; +import com.google.zxing.*; +import com.google.zxing.client.j2se.BufferedImageLuminanceSource; +import com.google.zxing.client.j2se.MatrixToImageWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.common.HybridBinarizer; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; +import org.springblade.core.log.exception.ServiceException; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.util.HashMap; +import java.util.Map; + +/** + * 二维码、条形码 编解码 + */ +public class ZxingGenCode { + /** + * 条形码编码 + * @param contents + * @param width + * @param height + * @param imgPath + */ + public static void encode(String contents, int width, int height, String imgPath, BarcodeFormat format) { + //保证最小为70*25的大小 + int codeWidth = Math.max(70, width); + int codeHeight = Math.max(25, height); + try { + Map hints = new HashMap<>(); + hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.MARGIN,1); + BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, + format, codeWidth, codeHeight, hints); + bitMatrix = deleteWhite(bitMatrix); + MatrixToImageWriter.writeToStream(bitMatrix, "png", + new FileOutputStream(imgPath)); + } catch (Exception e) { + throw new ServiceException("生产条码或二维码异常:" + e.toString()); + } + } + + /** + * 解析条形码 + * @param imgPath + * @return + */ + public static String decode(String imgPath) { + BufferedImage image = null; + Result result = null; + try { + image = ImageIO.read(new File(imgPath)); + if (image == null) { + System.out.println("the decode image may be not exit."); + } + LuminanceSource source = new BufferedImageLuminanceSource(image); + BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); + + result = new MultiFormatReader().decode(bitmap, null); + return result.getText(); + } catch (Exception e) { + throw new ServiceException("解析条码或二维码异常:" + e.toString()); + } + } + + /** + * 删除白色边框 + * + * @param matrix matrix + * @return BitMatrix + */ + private static BitMatrix deleteWhite(BitMatrix matrix) { + int[] rec = matrix.getEnclosingRectangle(); + int resWidth = rec[2] + 1; + int resHeight = rec[3] + 1; + + BitMatrix resMatrix = new BitMatrix(resWidth, resHeight); + resMatrix.clear(); + for (int i = 0; i < resWidth; i++) { + for (int j = 0; j < resHeight; j++) { + if (matrix.get(i + rec[0], j + rec[1])) + resMatrix.set(i, j); + } + } + return resMatrix; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..7b32920 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-dev.yml @@ -0,0 +1,51 @@ +#服务器端口 +server: + port: 8209 + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 + +#ObjectServiceImpl +hzinfo: + task: + pdf: + # pdf模板路径 ,请配置绝对路径 + # module-path: /data/inspect/pdf/templet/inspectObj.html # linux + module-path: D:\data\hzinfo\templet\inspectObj.html # windows + # pdf文件存储路径,请配置绝对路径 + # file-path: /data/inspect/pdf/file # linux + file-path: D:/data/hzinfo/file # windows + +#TaskRemindManager +hzims: + tasks: + flag: 1 + inspect: + ai: + # 文件外网访问路径 + replace-url: http://175.6.40.67:19000 + rabbit-mq-send-topic: inspect_task_send_ia_task + face: + # 人脸识别服务地址 + url: http://192.168.65.249:9876 + # 越小精度越高 + ratio: 0.6 + video: + # 文件内网访问路径 + minio-url: http://192.168.65.246:8585 + task: + #短信模块code + templateCode: + #巡检任务开始前发送短信信息阿里云模板 + taskBegin: aliyun-task-begin + #巡检任务结束前发送短信信息阿里云模板 + taskEnd: aliyun-task-end + #巡检消息推送模板 - 极光 + jgPushCode: hzinfo-inspect \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application.yml new file mode 100644 index 0000000..46e3d2b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/hzinfo-inspect-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: hzinfo-inspect + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/pom.xml new file mode 100644 index 0000000..45a7de5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/pom.xml @@ -0,0 +1,104 @@ + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + 4.0.0 + + pxhd-messaging-center-service + 4.5.0.RELEASE + jar + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + + com.github.xingePush + xinge + 1.2.4.10 + + + org.springblade + pxhd-hz3000-real-data-api + 4.5.0.RELEASE + compile + + + com.hnac.hzinfo.data + hzinfo-data-sdk + 4.5.0.RELEASE + compile + + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.3.2 + compile + + + org.springblade + blade-user-api + 4.5.0.RELEASE + compile + + + org.springblade + pxhd-messaging-center-service-api + 4.5.0.RELEASE + compile + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/MessagingCenterApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/MessagingCenterApplication.java new file mode 100644 index 0000000..1a68ce4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/MessagingCenterApplication.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright Example, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * Example, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.messaging_center; + +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; + +/** + * Demo启动器 + * + * @author Chill + */ +@EnableBladeFeign +@SpringCloudApplication +public class MessagingCenterApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="messaging-center"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, MessagingCenterApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, MessagingCenterApplication.class); + } +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageGroupController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageGroupController.java new file mode 100644 index 0000000..4a01f8d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageGroupController.java @@ -0,0 +1,87 @@ +package org.springblade.messaging_center.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springblade.core.log.annotation.ApiLog; +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 org.springblade.messaging_center.entity.HzMessageGroup; +import org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.service.HzMessageGroupService; +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.RestController; + +import java.util.Date; +import java.util.List; + + +@RestController +@RequestMapping("/messaging/messageGroup") +@Api(tags = "自定义消息人员组接口") +public class HzMessageGroupController { + @Autowired + HzMessageGroupService hzMessageGroupService; + + + @ApiOperation(value = "自定义消息人员组分页",notes = "自定义消息人员组分页") + @RequestMapping("/pageList") + public R pageList(String name,Query query){ + LambdaQueryWrapper wrapper =new LambdaQueryWrapper(); + wrapper.like(HzMessageGroup::getGroupName,name); + wrapper.eq(HzMessageGroup::getIsDeleted,0); + IPage data=hzMessageGroupService.page(Condition.getPage(query),wrapper); + return R.data(data,"查询成功"); + } + + + @ApiOperation(value = "自定义消息人员组列表",notes = "自定义消息人员组列表") + @RequestMapping("/list") + public R list(String name){ + LambdaQueryWrapper wrapper =new LambdaQueryWrapper(); + wrapper.like(HzMessageGroup::getGroupName,name); + wrapper.eq(HzMessageGroup::getIsDeleted,0); + List data=hzMessageGroupService.list(wrapper); + return R.data(data,"查询成功"); + } + + @ApiOperation(value = "自定义消息人员组新增",notes = "自定义消息人员组新增") + @RequestMapping("/save") + public R add(@RequestBody HzMessageGroup hzMessageGroup){ + hzMessageGroup.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + hzMessageGroup.setCreateTime(new Date()); + hzMessageGroup.setCreateUser(AuthUtil.getUserId()); + hzMessageGroup.setIsDeleted(0); + boolean data=hzMessageGroupService.save(hzMessageGroup); + if(data) { + return R.data(data, "新增成功"); + }else { + return R.fail(500,"新增失败"); + } + } + + @ApiOperation(value = "自定义消息人员组修改",notes = "自定义消息人员组修改") + @RequestMapping("/update") + public R update(@RequestBody HzMessageGroup hzMessageGroup){ + hzMessageGroup.setUpdateTime(new Date()); + hzMessageGroup.setUpdateUser(AuthUtil.getUserId()); + boolean data=hzMessageGroupService.updateById(hzMessageGroup); + if(data) { + return R.data(data, "修改成功"); + } + return R.fail(500, "修改失败"); + } + + @ApiOperation(value = "自定义消息人员组删除",notes = "自定义消息人员组删除") + @RequestMapping("/remove") + public R remove(Long id){ + boolean data=hzMessageGroupService.removeById(id); + return R.data(data,"删除成功"); + } + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRelationController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRelationController.java new file mode 100644 index 0000000..b2c9f43 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRelationController.java @@ -0,0 +1,34 @@ +package org.springblade.messaging_center.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springblade.core.tool.api.R; +import org.springblade.messaging_center.service.HzMessageRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/messaging/messageRelation") +@Api(tags = "消息模板与消息规则关联接口") +public class HzMessageRelationController { + @Autowired + HzMessageRelationService hzMessageRelationService; + + /** + * 查询消息列表 + */ + @ApiOperation(value = "消息模板与消息规则关联列表",notes = "消息模板与消息规则关联列表") + @RequestMapping("/save") + public R save(Long id,String ruleIds){ + List ruleIdList=Arrays.stream(ruleIds.split(",")) + .map(s -> Long.parseLong(s.trim())) + .collect(Collectors.toList()); + boolean data=hzMessageRelationService.saveRelation(id,ruleIdList); + return R.data(data,"查询成功"); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRuleController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRuleController.java new file mode 100644 index 0000000..1e4ef9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageRuleController.java @@ -0,0 +1,92 @@ +package org.springblade.messaging_center.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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 org.springblade.messaging_center.entity.HzMessageGroup; +import org.springblade.messaging_center.entity.MessageRule; +import org.springblade.messaging_center.service.HzMessageGroupService; +import org.springblade.messaging_center.service.HzMessageRuleService; +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.RestController; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/messaging/messageRule") +@Api(tags = "消息规则接口") +public class HzMessageRuleController { + @Autowired + HzMessageRuleService hzMessageRuleService; + + @ApiOperation(value = "消息规则分页",notes = "消息规则分页") + @RequestMapping("/pageList") + public R pageList(String name,String code, Query query){ + Map param =new HashMap<>(); + if(name!=null && !"".equals(name)) { + param.put("name", "%"+name+"%"); + } + if(code!=null && !"".equals(code)) { + param.put("code", code); + } + param.put("tenantId",AuthUtil.getTenantId()); + IPage data=hzMessageRuleService.selectPage(param,Condition.getPage(query)); + return R.data(data,"查询成功"); + } + + + @ApiOperation(value = "消息规则列表",notes = "消息规则列表") + @RequestMapping("/list") + public R list(String name,String code){ + Map param =new HashMap<>(); + param.put("tenantId",AuthUtil.getTenantId()); + if(name!=null && !"".equals(name)) { + param.put("name", "%"+name+"%"); + } + if(code!=null && !"".equals(code)) { + param.put("code", code); + } + List data=hzMessageRuleService.selectPage(param); + return R.data(data,"查询成功"); + } + + @ApiOperation(value = "消息规则新增",notes = "消息规则新增") + @RequestMapping("/save") + public R add(@RequestBody MessageRule messageRule){ + messageRule.setTenantId(AuthUtil.getTenantId()); + boolean data=hzMessageRuleService.insert(messageRule); + if(data) { + return R.data(data, "新增成功"); + }else { + return R.fail(500,"新增失败"); + } + } + + @ApiOperation(value = "消息规则修改",notes = "消息规则修改") + @RequestMapping("/update") + public R update(@RequestBody MessageRule messageRule){ + messageRule.setTenantId(AuthUtil.getTenantId()); + boolean data=hzMessageRuleService.update(messageRule); + if(data) { + return R.data(data, "修改成功"); + } + return R.fail(500, "修改失败"); + } + + @ApiOperation(value = "消息规则删除",notes = "消息规则删除") + @RequestMapping("/remove") + public R remove(Long id){ + boolean data=hzMessageRuleService.deleteById(id); + return R.data(data,"删除成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageTemplateController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageTemplateController.java new file mode 100644 index 0000000..846072c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzMessageTemplateController.java @@ -0,0 +1,107 @@ +package org.springblade.messaging_center.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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 org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.service.HzMessageTemplateService; +import org.springblade.messaging_center.vo.MessageTemplateQuery; +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.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/messaging/pushMessageTemplate") +@Api(tags = "消息模板接口") +public class HzMessageTemplateController { + @Autowired + HzMessageTemplateService hzMessageTemplateService; + + /** + * 查询消息列表 + */ + @ApiOperation(value = "消息模板列表",notes = "消息模板列表") + @RequestMapping("/queryMessageTemplate") + public R queryMessageTemplate(MessageTemplateQuery query){ + query.setTenantId(AuthUtil.getTenantId()); + List data=hzMessageTemplateService.queryMessageTemplate(query); + return R.data(data,"查询成功"); + } + + @ApiOperation(value = "消息模板分页",notes = "消息模板分页") + @RequestMapping("/pageList") + public R pageList(String title,String type,String status, Query query){ + Map param=new HashMap<>(); + param.put("tenantId",AuthUtil.getTenantId()); + if(title!=null && !"".equals(title)) { + param.put("title", "%"+title+"%"); + } + if(type!=null && !"".equals(type)) { + param.put("type", type); + } + if(status!=null && !"".equals(status)) { + param.put("status", status); + } + IPage data=hzMessageTemplateService.pageList(param, Condition.getPage(query)); + return R.data(data,"查询成功"); + } + + + @ApiOperation(value = "消息模板分页",notes = "消息模板分页") + @RequestMapping("/list") + public R list(String title,String type,String status){ + Map param=new HashMap<>(); + param.put("tenantId",AuthUtil.getTenantId()); + if(title!=null && !"".equals(title)) { + param.put("title", "%"+title+"%"); + } + if(type!=null && !"".equals(type)) { + param.put("type", type); + } + if(status!=null && !"".equals(status)) { + param.put("status", status); + } + List data=hzMessageTemplateService.list(param); + return R.data(data,"查询成功"); + } + + @ApiOperation(value = "消息模板新增",notes = "消息模板新增") + @RequestMapping("/save") + public R add(@RequestBody MessageTemplate template){ + template.setTenantId(AuthUtil.getTenantId()); + boolean data=hzMessageTemplateService.save(template); + if(data) { + return R.data(data, "新增成功"); + }else { + return R.fail(500,"新增失败"); + } + } + + @ApiOperation(value = "消息模板修改",notes = "消息模板修改") + @RequestMapping("/update") + public R update(@RequestBody MessageTemplate template){ + template.setTenantId(AuthUtil.getTenantId()); + boolean data=hzMessageTemplateService.update(template); + if(data) { + return R.data(data, "修改成功"); + } + return R.fail(500, "修改失败"); + } + + @ApiOperation(value = "消息模板删除",notes = "消息模板删除") + @RequestMapping("/remove") + public R remove(Long id){ + boolean data=hzMessageTemplateService.remove(id); + return R.data(data,"删除成功"); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzWdPushMessageController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzWdPushMessageController.java new file mode 100644 index 0000000..7b77bb2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/controller/HzWdPushMessageController.java @@ -0,0 +1,67 @@ +package org.springblade.messaging_center.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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 org.springblade.messaging_center.entity.MessageInfo; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.enums.MsgStatusEnum; +import org.springblade.messaging_center.service.HzPushMessageService; +import org.springblade.messaging_center.vo.MessageInfoVo; +import org.springblade.messaging_center.vo.MessageQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; + +@RestController +@RequestMapping("/messaging/pushMessage") +@Api(tags = "消息接口") +public class HzWdPushMessageController { + + @Autowired + HzPushMessageService hzPushMessageService; + + /** + * 查询消息列表 + */ + @ApiOperation(value = "查询消息列表",notes = "查询消息列表") + @GetMapping("/querySendMessage") + public R querySendMessage(MessageQuery messageQuery, Query query){ + if(messageQuery.getUserId()==null) { + Long userId = AuthUtil.getUserId(); + messageQuery.setUserId(userId); + } + messageQuery.setTenantId(AuthUtil.getTenantId()); + IPage data=hzPushMessageService.querySendMessage(messageQuery, Condition.getPage(query)); + return R.data(data,"查询成功"); + } + + //发送消息接口 + @ApiOperation(value = "发送信息",notes = "发送信息") + @PostMapping("/sendMessage") + public R sendMessage(@RequestBody SendMsgInfo info){ + Long userId= AuthUtil.getUserId(); + boolean data=hzPushMessageService.sendMessageInfo(userId,info,AuthUtil.getTenantId()); + return R.data(data,"发送信息成功"); + } + + //修改消息状态 + @ApiOperation(value = "修改消息状态",notes = "修改消息状态") + @PostMapping("/updateMessage") + public R updateMessage(Long id){ + MessageInfo info=new MessageInfo(); + info.setId(id); + info.setStatus(MsgStatusEnum.ONE.getType()); + info.setOkTime(new Date()); + boolean flag=hzPushMessageService.updateMessage(info); + return R.data(flag,"发送信息成功"); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/feign/MessagingClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/feign/MessagingClient.java new file mode 100644 index 0000000..4d86bb2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/feign/MessagingClient.java @@ -0,0 +1,20 @@ +package org.springblade.messaging_center.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.service.HzPushMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class MessagingClient implements IMessagingClient{ + + @Autowired + HzPushMessageService hzPushMessageService; + + @Override + public R sendMessage(SendMsgInfo info,Long userId) { + boolean data=hzPushMessageService.sendMessage(userId,info); + return R.data(data,"发送信息成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.java new file mode 100644 index 0000000..f2eafb5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.java @@ -0,0 +1,18 @@ +package org.springblade.messaging_center.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface HzDealDataBaseMapper { + @DS("mysql") + List> selectMasterData(@Param("param") Map param); + @DS("slave") + List> selectSlaveData(@Param("param") Map param); + @DS("slave1") + List> selectSlave1Data(@Param("param") Map param); + @DS("slave2") + List> selectSlave2Data(@Param("param") Map param); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.xml new file mode 100644 index 0000000..65c30cd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzDealDataBaseMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.java new file mode 100644 index 0000000..858074f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.java @@ -0,0 +1,8 @@ +package org.springblade.messaging_center.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.messaging_center.entity.HzMessageGroup; + +public interface HzMessageGroupMapper extends BaseMapper { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.xml new file mode 100644 index 0000000..ef56020 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageGroupMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.java new file mode 100644 index 0000000..123a148 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.java @@ -0,0 +1,11 @@ +package org.springblade.messaging_center.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.messaging_center.entity.HzMessageRelation; + +import java.util.List; + +public interface HzMessageRelationMapper { + int batchInsert(@Param("list") List list); + int deletById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.xml new file mode 100644 index 0000000..aede1b9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRelationMapper.xml @@ -0,0 +1,17 @@ + + + + + insert hz_send_message_relation(id,rule_id) + values + + (#{item.id},#{item.ruleId}) + + + + + + delete from hz_send_message_relation where id=#{id} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.java new file mode 100644 index 0000000..deb2b55 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.java @@ -0,0 +1,23 @@ +package org.springblade.messaging_center.mapper; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.messaging_center.entity.MessageRule; +import org.springblade.messaging_center.vo.MessageRuleVo; + +import java.util.List; +import java.util.Map; + +public interface HzMessageRuleMapper { + List queryRulesByIds(@Param("ids") List ruleIds); + List queryRulesByTempIds(@Param("ids") List templateIds); + List getMessageRuleById(Long id); + + IPage selectPage(@Param("rule") Map param, IPage page); + List selectPage(@Param("rule") Map param); + + int insert(MessageRule template); + int update(MessageRule template); + int deleteById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.xml new file mode 100644 index 0000000..2d3ff6c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageRuleMapper.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, + code, + name, + unit, + data_source, + query_type, + value_info, + period_type, + dt_gap, + compare_rule, + compare_value, + compare_msg, + format, + tenant_id + + + + + + + + INSERT hz_send_message_rule( + code, + name, + unit, + data_source, + query_type, + value_info, + period_type, + dt_gap, + compare_rule, + compare_value, + compare_msg, + format, + tenant_id + )VALUES( + #{code,jdbcType=VARCHAR}, + #{name,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, + #{dataSource,jdbcType=INTEGER}, + #{queryType,jdbcType=VARCHAR}, + #{valueInfo,jdbcType=VARCHAR}, + #{periodType,jdbcType=CHAR}, + #{dtGap,jdbcType=INTEGER}, + #{compareRule,jdbcType=VARCHAR}, + #{compareValue,jdbcType=DECIMAL}, + #{compareMsg,jdbcType=VARCHAR}, + #{format,jdbcType=VARCHAR}, + #{tenantId,jdbcType=VARCHAR} + ) + + + + UPDATE + hz_send_message_rule + SET + + code = #{code,jdbcType=VARCHAR}, + + + name = #{name,jdbcType=VARCHAR}, + + + unit = #{unit,jdbcType=VARCHAR}, + + + data_source = #{dataSource,jdbcType=INTEGER}, + + + query_type = #{queryType,jdbcType=VARCHAR}, + + + value_info = #{valueInfo,jdbcType=VARCHAR}, + + + period_type = #{periodType,jdbcType=CHAR}, + + + dt_gap = #{dtGap,jdbcType=INTEGER}, + + + compare_rule = #{compareRule,jdbcType=VARCHAR}, + + + compare_value = #{compareValue,jdbcType=DECIMAL}, + + + compare_msg = #{compareMsg,jdbcType=VARCHAR}, + + + format = #{format,jdbcType=VARCHAR} + + WHERE ID = #{id,jdbcType=BIGINT} + + + + delete from hz_send_message_rule where id=#{id} + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.java new file mode 100644 index 0000000..fb0006d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.java @@ -0,0 +1,20 @@ +package org.springblade.messaging_center.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.vo.MessageTemplateQuery; + +import java.util.List; +import java.util.Map; + +public interface HzMessageTemplateMapper { + List queryMessageTemplate(@Param("param") MessageTemplateQuery query); + + IPage selectPage(@Param("param") Map param, IPage page); + List selectPage(@Param("param") Map param); + + int insert(MessageTemplate template); + int update(MessageTemplate template); + int deleteById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.xml new file mode 100644 index 0000000..c10e678 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzMessageTemplateMapper.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + id, + title, + content, + cron, + status, + person_type, + person_type_ids, + type, + operate, + tenant_id, + template_type, + template_type_seg + + + + + + insert hz_send_message_template( + title, + content, + cron, + status, + person_type, + person_type_ids, + type, + operate, + tenant_id, + template_type, + template_type_seg + ) values( + #{title,jdbcType=VARCHAR}, + #{content,jdbcType=VARCHAR}, + #{cron,jdbcType=VARCHAR}, + #{status,jdbcType=INTEGER}, + #{personType,jdbcType=INTEGER}, + #{personTypeIds,jdbcType=VARCHAR}, + #{type,jdbcType=VARCHAR}, + #{operate,jdbcType=INTEGER}, + #{tenantId,jdbcType=VARCHAR}, + #{templateType,jdbcType=VARCHAR}, + #{templateTypeSeg,jdbcType=VARCHAR} + ) + + + + UPDATE + hz_send_message_template + SET + + title = #{title,jdbcType=VARCHAR}, + + + content = #{content,jdbcType=VARCHAR}, + + + cron = #{cron,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=INTEGER}, + + + person_type = #{personType,jdbcType=INTEGER}, + + + person_type_ids = #{personTypeIds,jdbcType=VARCHAR}, + + + type = #{type,jdbcType=VARCHAR}, + + + operate = #{operate,jdbcType=INTEGER} + + WHERE ID = #{id,jdbcType=BIGINT} + + + + delete from hz_send_message_template where id=#{id} + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.java new file mode 100644 index 0000000..d563e23 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.java @@ -0,0 +1,15 @@ +package org.springblade.messaging_center.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.messaging_center.entity.MessageInfo; +import org.springblade.messaging_center.vo.MessageQuery; + +import java.util.List; + +public interface HzPushMessageMapper { + IPage querySendMessage(@Param("param") MessageQuery messageQuery, IPage page); + int updateMessage(MessageInfo info); + int insertMessage(MessageInfo info); + int batchInsertMessage(@Param("list") List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.xml new file mode 100644 index 0000000..7268f79 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/mapper/HzPushMessageMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + id, + title, + send_user_id, + receive_user_id, + content, + send_time, + ok_time, + msg_type, + status, + msg_level, + template_id + + + + + + UPDATE + hz_send_message + SET + + OK_TIME = #{okTime,jdbcType=TIMESTAMP}, + + + STATUS = #{status,jdbcType=INTEGER} + + WHERE ID = #{id,jdbcType=BIGINT} + + + + INSERT INTO hz_send_message ( + title,send_user_id,receive_user_id, + content,send_time,msg_type, + status,msg_level,template_id + ) + VALUES + (#{title,jdbcType=VARCHAR}, #{sendUserId,jdbcType=BIGINT}, #{receiveUserId,jdbcType=BIGINT}, + #{content,jdbcType=VARCHAR},#{sendTime,jdbcType=TIMESTAMP},#{msgType,jdbcType=INTEGER}, + #{status,jdbcType=INTEGER},#{msgLevel,jdbcType=INTEGER},#{templateId,jdbcType=BIGINT} + ) + + + + INSERT INTO hz_send_message ( + title,send_user_id,receive_user_id, + content,send_time,msg_type, + status,msg_level,template_id + ) + VALUES + + (#{item.title,jdbcType=VARCHAR}, #{item.sendUserId,jdbcType=BIGINT}, #{item.receiveUserId,jdbcType=BIGINT}, + #{item.content,jdbcType=VARCHAR},#{item.sendTime,jdbcType=TIMESTAMP},#{item.msgType,jdbcType=INTEGER}, + #{item.status,jdbcType=INTEGER},#{item.msgLevel,jdbcType=INTEGER},#{item.templateId,jdbcType=BIGINT} + ) + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/rule/DealRule.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/rule/DealRule.java new file mode 100644 index 0000000..e0e6df3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/rule/DealRule.java @@ -0,0 +1,227 @@ +package org.springblade.messaging_center.rule; + +import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; +import com.hnac.hzinfo.datasearch.real.po.RealDataSearchPO; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.apache.commons.lang3.StringUtils; +import org.springblade.hz3000_real_data.feign.IHz3000RealDataClient; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.messaging_center.enums.CompareRuleEnum; +import org.springblade.messaging_center.enums.MsgRuleDataSourceEnum; +import org.springblade.messaging_center.service.impl.HzDealDataBaseService; +import org.springblade.messaging_center.util.DataDealUtil; +import org.springblade.messaging_center.vo.MessageRuleVo; +import org.springblade.messaging_center.vo.MessageTemplateVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; + +@Component +public class DealRule { + @Autowired + IHz3000RealDataClient hz3000RealDataClient; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Autowired + HzDealDataBaseService hzDealDataBaseService; + + + //模型对应的消息 + public Map parseRuleMessage(List list){ + if(list!=null && !list.isEmpty()) { + Map result=new HashMap<>(); + for (MessageTemplateVo vo : list) { + String message=parseRule(vo.getContent(),vo.getRuleList()); + result.put(vo.getId(),message); + } + return result; + } + return null; + } + + private String parseRule(String content,List ruleList){ + for(MessageRuleVo vo:ruleList){ + String value=dataFromSource(vo); + content = replaceMsg(content,vo.getCode(),value); + } + return content; + } + + private String dataFromSource(MessageRuleVo vo){ + + if(MsgRuleDataSourceEnum.ONE.getCode().equals(vo.getDataSource())){ + return parseRedisDataRule(vo); + } + if(MsgRuleDataSourceEnum.TWO.getCode().equals(vo.getDataSource())){ + return parsePlatformDataRule(vo); + } + + if(MsgRuleDataSourceEnum.THREE.getCode().equals(vo.getDataSource())){ + return parseDataBaseRule(vo); + } + + if(MsgRuleDataSourceEnum.FOUR.getCode().equals(vo.getDataSource())){ + return parseDateRule(vo); + } + return ""; + } + + private String parseDateRule(MessageRuleVo vo){ + SimpleDateFormat sdf=new SimpleDateFormat(vo.getFormat()); + Date now=new Date(); + int filed=Calendar.HOUR; + if("D".equals(vo.getPeriodType())){ + filed = Calendar.DAY_OF_MONTH; + } + Date date= DataDealUtil.calcDate(filed,vo.getDtGap(),now); + return sdf.format(date); + } + + private String parseRedisDataRule(MessageRuleVo vo){ + String valueInfo=vo.getValueInfo(); + Map valueInfoMap=DataDealUtil.parseJsonStr(valueInfo); + List ids=new ArrayList(); + ids.add(valueInfoMap.get("ycId")); + int type=Integer.valueOf(valueInfoMap.get("type")); + List data=hz3000RealDataClient.getRealData(ids,type,valueInfoMap.get("stationId")); + if(data!=null && !data.isEmpty()){ + return String.format(vo.getFormat(),data.get(0).getValue()); + } + return "0"; + } + + private String parsePlatformDataRule(MessageRuleVo vo){ + String value="0"; + String valueInfo=vo.getValueInfo(); + Map valueInfoMap=DataDealUtil.parseJsonStr(valueInfo); + //获取实时值 + RealDataSearchPO po=new RealDataSearchPO(); + String deviceCode=valueInfoMap.get("deviceCode"); + String signage=valueInfoMap.get("signage"); + po.setAnalyzeCode(deviceCode); + Result> res=realDataSearchClient.getRealDataByDeviceCode(po); + if(res!=null && res.getData()!=null) { + value = dealRealDataBySignage(res.getData(), signage); + if (value != null && !"".equals(value) && vo.getFormat()!=null) { + value = String.format(vo.getFormat(), Double.valueOf(value)); + } + } + + String compareMsg=vo.getCompareMsg(); + String compareRule=vo.getCompareRule(); + if(StringUtils.isNotBlank(compareMsg)){ + //替换值 + compareMsg=replaceMsg(compareMsg,vo.getCode(),value); + if(CompareRuleEnum.GQ.getType().equals(compareRule)){ + String tmpMsg=""; + BigDecimal compareVal=vo.getCompareValue(); + if(new BigDecimal(value).compareTo(compareVal)>=0){ + BigDecimal tmpVal=new BigDecimal(value).subtract(compareVal); + tmpMsg=",超过警戒值("+compareVal+vo.getUnit()+")"+String.format(vo.getFormat(), tmpVal)+vo.getUnit(); + } + compareMsg=replaceMsg(compareMsg,compareRule+"Msg",tmpMsg); + } + + if(CompareRuleEnum.GT.getType().equals(compareRule)){ + String tmpMsg=""; + BigDecimal compareVal=vo.getCompareValue(); + if(new BigDecimal(value).compareTo(compareVal)>0){ + BigDecimal tmpVal=new BigDecimal(value).subtract(compareVal); + tmpMsg=",超过警戒值("+compareVal+vo.getUnit()+")"+String.format(vo.getFormat(), tmpVal)+vo.getUnit(); + } + compareMsg=replaceMsg(compareMsg,compareRule+"Msg",tmpMsg); + } + + value = compareMsg; + } + + return value; + } + + private String replaceMsg(String msg,String code,String value){ + String tmpMsg=msg.replaceAll("\\{"+code+"\\}",value); + return tmpMsg; + } + + private String parseDataBaseRule(MessageRuleVo vo){ + String valueInfo=vo.getValueInfo(); + Map valueInfoMap=DataDealUtil.parseJsonStr(valueInfo); + Map param=new HashMap<>(); + param.put("database",valueInfoMap.get("database"));//选择哪一个数据库 主库mysql 从库 slave salve1 slave2 + param.put("table",valueInfoMap.get("table")); + param.put("columns",valueInfoMap.get("columns")); + + String whereSql=valueInfoMap.get("whereSql");//拼接条件 + + param.put("whereSql",whereSql); + List> list=hzDealDataBaseService.selectData(param); + if(list!=null && !list.isEmpty()){ + StringBuilder sb=new StringBuilder(); + for(Map map:list) { + String value=String.valueOf(map.get("value")); + if (vo.getFormat() != null) { + value= String.format(vo.getFormat(), map.get("value")); + } + if(StringUtils.isNotBlank(value)) { + sb.append(value+","); + } + } + return sb.substring(0,sb.length()-1); + } + return ""; + } + + private String dealRealDataBySignage(List list,String signage){ + for (FieldsData fieldsData:list){ + if(signage.equals(fieldsData.getSignage())) { + return fieldsData.getValue(); + } + } + return null; + } + +// public static void main(String[] args) { +// List ruleList=new ArrayList<>(); +// MessageRuleVo vo=new MessageRuleVo(); +// vo.setId(1L); +// vo.setCode("date"); +// vo.setName("当前年月日"); +// vo.setUnit(""); +// vo.setDataSource("4"); +// vo.setQueryType(""); +// vo.setValueInfo(""); +// vo.setPeriodType("D"); +// vo.setDtGap(0); +// vo.setCompareRule(""); +// vo.setCompareValue(null); +// vo.setCompareMsg(null); +// vo.setFormat("yyyy年MM月dd日"); +// ruleList.add(vo); +// vo=new MessageRuleVo(); +// vo.setId(2L); +// vo.setCode("rz"); +// vo.setName("上游水位"); +// vo.setUnit("m"); +// vo.setDataSource("1"); +// vo.setQueryType("common"); +// vo.setValueInfo("{\"ycId\":\"1\",\"stationId\":\"0\",\"type\":\"1\"}"); +// vo.setPeriodType("H"); +// vo.setDtGap(0); +// vo.setCompareRule(""); +// vo.setCompareValue(null); +// vo.setCompareMsg(null); +// vo.setFormat("%.3f"); +// ruleList.add(vo); +// String msg = "{date}8时资水犬木塘工程枢纽上游水位为{rz}m(桂花大桥处),下游水位为{blrz}m(资江二桥处),孔雀滩坝下水位{kqrz}m"; +// DealRule rule=new DealRule(); +// String str=rule.parseRule(msg,ruleList); +// System.out.println(str); +// } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageGroupService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageGroupService.java new file mode 100644 index 0000000..6a7429f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageGroupService.java @@ -0,0 +1,8 @@ +package org.springblade.messaging_center.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.messaging_center.entity.HzMessageGroup; + +public interface HzMessageGroupService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRelationService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRelationService.java new file mode 100644 index 0000000..e30c98f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRelationService.java @@ -0,0 +1,7 @@ +package org.springblade.messaging_center.service; + +import java.util.List; + +public interface HzMessageRelationService { + boolean saveRelation(Long id, List ruleIds); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRuleService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRuleService.java new file mode 100644 index 0000000..22f02c1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageRuleService.java @@ -0,0 +1,19 @@ +package org.springblade.messaging_center.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.messaging_center.entity.MessageRule; + +import java.util.List; +import java.util.Map; + +public interface HzMessageRuleService { + List getMessageRuleById(Long id); + + IPage selectPage(@Param("rule") Map param, IPage page); + List selectPage(@Param("rule") Map param); + + boolean insert(MessageRule template); + boolean update(MessageRule template); + boolean deleteById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageTemplateService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageTemplateService.java new file mode 100644 index 0000000..d1e7e0b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzMessageTemplateService.java @@ -0,0 +1,23 @@ +package org.springblade.messaging_center.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.vo.MessageTemplateQuery; +import org.springblade.messaging_center.vo.MessageTemplateVo; + +import java.util.List; +import java.util.Map; + +public interface HzMessageTemplateService { + List queryMessageTemplateVo(MessageTemplateQuery query); + List queryMessageTemplate(MessageTemplateQuery query); + + IPage pageList(Map param, IPage page); + List list(Map param); + boolean save(MessageTemplate template); + boolean update(MessageTemplate template); + boolean remove(Long id); + String dealPersonIds(int personType,String personTypeIds,String tenantId); + MessageTemplate selectById(Long id); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzPushMessageService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzPushMessageService.java new file mode 100644 index 0000000..bbe6da5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/HzPushMessageService.java @@ -0,0 +1,20 @@ +package org.springblade.messaging_center.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.messaging_center.entity.MessageInfo; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.vo.MessageInfoVo; +import org.springblade.messaging_center.vo.MessageQuery; + +import java.util.List; + + +public interface HzPushMessageService { + IPage querySendMessage(MessageQuery messageQuery, IPage pageParam); + boolean sendMessage(Long userId, SendMsgInfo info); + boolean sendMessageInfo(Long userId, SendMsgInfo info,String tenantId); + boolean sendMessageByTemplate(Long userId,String cron,String type); + boolean updateMessage(MessageInfo info); + boolean insertMessage(MessageInfo info); + boolean batchInsertMessage(List list); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzDealDataBaseService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzDealDataBaseService.java new file mode 100644 index 0000000..b84b319 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzDealDataBaseService.java @@ -0,0 +1,27 @@ +package org.springblade.messaging_center.service.impl; + +import org.springblade.messaging_center.mapper.HzDealDataBaseMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class HzDealDataBaseService { + @Resource + HzDealDataBaseMapper hzDealDataBaseMapper; + + public List> selectData(Map param){ + if("mysql".equals(param.get("database"))) { + return hzDealDataBaseMapper.selectMasterData(param); + }else if("slave".equals(param.get("database"))){ + return hzDealDataBaseMapper.selectSlaveData(param); + }else if("slave1".equals(param.get("database"))){ + return hzDealDataBaseMapper.selectSlave1Data(param); + }else if("slave2".equals(param.get("database"))){ + return hzDealDataBaseMapper.selectSlave2Data(param); + } + return null; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageGroupServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageGroupServiceImpl.java new file mode 100644 index 0000000..999d7ed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageGroupServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.messaging_center.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.messaging_center.entity.HzMessageGroup; +import org.springblade.messaging_center.mapper.HzMessageGroupMapper; +import org.springblade.messaging_center.service.HzMessageGroupService; +import org.springframework.stereotype.Service; + +@Service +public class HzMessageGroupServiceImpl extends BaseServiceImpl implements HzMessageGroupService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRelationServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRelationServiceImpl.java new file mode 100644 index 0000000..90f316a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRelationServiceImpl.java @@ -0,0 +1,35 @@ +package org.springblade.messaging_center.service.impl; + +import org.springblade.messaging_center.entity.HzMessageRelation; +import org.springblade.messaging_center.mapper.HzMessageRelationMapper; +import org.springblade.messaging_center.service.HzMessageRelationService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class HzMessageRelationServiceImpl implements HzMessageRelationService { + @Resource + HzMessageRelationMapper hzMessageRelationMapper; + @Override + public boolean saveRelation(Long id, List ruleIds) { + hzMessageRelationMapper.deletById(id); + List list=dealHzMessageRelation(id,ruleIds); + int count=hzMessageRelationMapper.batchInsert(list); + return count>0; + } + + private List dealHzMessageRelation(Long id, List ruleIds){ + List list=new ArrayList<>(); + for(Long ruleId:ruleIds){ + HzMessageRelation relation=new HzMessageRelation(); + relation.setId(id); + relation.setRuleId(ruleId); + list.add(relation); + } + return list; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRuleServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRuleServiceImpl.java new file mode 100644 index 0000000..b91eea1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageRuleServiceImpl.java @@ -0,0 +1,48 @@ +package org.springblade.messaging_center.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.messaging_center.entity.MessageRule; +import org.springblade.messaging_center.mapper.HzMessageRuleMapper; +import org.springblade.messaging_center.service.HzMessageRuleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class HzMessageRuleServiceImpl implements HzMessageRuleService { + + @Resource + HzMessageRuleMapper hzMessageRuleMapper; + + @Override + public List getMessageRuleById(Long id) { + return hzMessageRuleMapper.getMessageRuleById(id); + } + + @Override + public IPage selectPage(Map param, IPage page) { + return hzMessageRuleMapper.selectPage(param,page); + } + + @Override + public List selectPage(Map param) { + return hzMessageRuleMapper.selectPage(param); + } + + @Override + public boolean insert(MessageRule template) { + return hzMessageRuleMapper.insert(template)>0; + } + + @Override + public boolean update(MessageRule template) { + return hzMessageRuleMapper.update(template)>0; + } + + @Override + public boolean deleteById(Long id) { + return hzMessageRuleMapper.deleteById(id)>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageTemplateServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageTemplateServiceImpl.java new file mode 100644 index 0000000..28b8b05 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzMessageTemplateServiceImpl.java @@ -0,0 +1,152 @@ +package org.springblade.messaging_center.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.messaging_center.entity.HzMessageGroup; +import org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.mapper.HzMessageGroupMapper; +import org.springblade.messaging_center.mapper.HzMessageRuleMapper; +import org.springblade.messaging_center.mapper.HzMessageTemplateMapper; +import org.springblade.messaging_center.service.HzMessageTemplateService; +import org.springblade.messaging_center.vo.MessageRuleVo; +import org.springblade.messaging_center.vo.MessageTemplateQuery; +import org.springblade.messaging_center.vo.MessageTemplateVo; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class HzMessageTemplateServiceImpl implements HzMessageTemplateService { + @Resource + HzMessageTemplateMapper hzMessageTemplateMapper; + + @Resource + HzMessageRuleMapper hzMessageRuleMapper; + + @Autowired + IUserClient userClient; + + @Resource + HzMessageGroupMapper hzMessageGroupMapper; + + @Override + public MessageTemplate selectById(Long id){ + MessageTemplateQuery query=new MessageTemplateQuery(); + query.setId(id); + List messageTemplates=hzMessageTemplateMapper.queryMessageTemplate(query); + if(messageTemplates!=null && !messageTemplates.isEmpty()) { + return messageTemplates.get(0); + } + return null; + } + + @Override + public List queryMessageTemplateVo(MessageTemplateQuery query) { + List voList=new ArrayList<>(); + //模板 + List messageTemplates=hzMessageTemplateMapper.queryMessageTemplate(query); +// dealMessageTemplatePerson(messageTemplates); + //规则 + if(messageTemplates!=null && !messageTemplates.isEmpty()){ + List tempIds=messageTemplates.stream().map(MessageTemplate::getId).collect(Collectors.toList()); + List messageRuleVos=hzMessageRuleMapper.queryRulesByTempIds(tempIds); + for(MessageTemplate messageTemplate:messageTemplates) { + MessageTemplateVo messageTemplateVo=new MessageTemplateVo(); + BeanUtils.copyProperties(messageTemplate,messageTemplateVo); + List messageRuleList=getMessageRuleList(messageRuleVos,messageTemplate.getId()); + messageTemplateVo.setRuleList(messageRuleList); + voList.add(messageTemplateVo); + } + } + + return voList; + } + + private void dealMessageTemplatePerson(List messageTemplates){ + for(MessageTemplate template:messageTemplates){ + int personType=template.getPersonType(); + String personTypeIds=template.getPersonTypeIds(); + String tenantId =template.getTenantId(); + template.setPersonTypeIds(dealPersonIds(personType,personTypeIds,tenantId)); + } + } + + @Override + public String dealPersonIds(int personType,String personTypeIds,String tenantId){ + if(personType == 2){//部门 + R> list=userClient.userListByDeptId(Long.valueOf(personTypeIds)); + return dealUserList(list,personTypeIds); + } + if(personType == 3){//角色 + R> list=userClient.getAllUserList(tenantId); + return dealUserList(list,personTypeIds); + } + if(personType == 4){//自定义组 + HzMessageGroup hzMessageGroup=hzMessageGroupMapper.selectById(Long.valueOf(personTypeIds)); + if(hzMessageGroup!=null){ + return hzMessageGroup.getPersonIds(); + } + } + return personTypeIds; + } + + private String dealUserList(R> list,String personTypeIds){ + if(list!=null && list.getData()!=null) { + List ids=list.getData().stream().map(User::getId).collect(Collectors.toList()); + return ids.stream().map(s->String.valueOf(s)).collect(Collectors.joining(",")); + } + return personTypeIds; + } + + private List getMessageRuleList(List messageRuleVos,Long templateId){ + List rules=new ArrayList<>(); + for(MessageRuleVo vo:messageRuleVos){ + if(vo.getTemplateId().longValue() == templateId.longValue()){ + rules.add(vo); + } + } + return rules; + } + + + @Override + public List queryMessageTemplate(MessageTemplateQuery query) { + List list=hzMessageTemplateMapper.queryMessageTemplate(query); + return list; + } + + @Override + public IPage pageList(Map param, IPage page) { + return hzMessageTemplateMapper.selectPage(param,page); + } + + @Override + public List list(Map param) { + return hzMessageTemplateMapper.selectPage(param); + } + + @Override + public boolean save(MessageTemplate template) { + return hzMessageTemplateMapper.insert(template)>0; + } + + @Override + public boolean update(MessageTemplate template) { + return hzMessageTemplateMapper.update(template)>0; + } + + @Override + public boolean remove(Long id) { + return hzMessageTemplateMapper.deleteById(id)>0; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzTencentPushMessageService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzTencentPushMessageService.java new file mode 100644 index 0000000..207ebf6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/service/impl/HzTencentPushMessageService.java @@ -0,0 +1,166 @@ +package org.springblade.messaging_center.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tencent.xinge.XingeApp; +import org.springblade.messaging_center.entity.MessageInfo; +import org.springblade.messaging_center.entity.MessageTemplate; +import org.springblade.messaging_center.entity.SendMsgInfo; +import org.springblade.messaging_center.mapper.HzPushMessageMapper; +import org.springblade.messaging_center.rule.DealRule; +import org.springblade.messaging_center.service.HzMessageTemplateService; +import org.springblade.messaging_center.service.HzPushMessageService; +import org.springblade.messaging_center.util.TencentPush; +import org.springblade.messaging_center.vo.MessageInfoVo; +import org.springblade.messaging_center.vo.MessageQuery; +import org.springblade.messaging_center.vo.MessageTemplateQuery; +import org.springblade.messaging_center.vo.MessageTemplateVo; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class HzTencentPushMessageService implements HzPushMessageService { + + @Resource + HzPushMessageMapper hzWdPushMessageMapper; + + @Autowired + HzMessageTemplateService hzMessageTemplateService; + + @Autowired + IUserClient userClient; + + @Autowired + DealRule dealRule; + + @Value("${tencent.push.appId}") + private String tencentAppId; + @Value("${tencent.push.secretKey}") + private String secretKey; + + @Override + public boolean sendMessage(Long userId, SendMsgInfo msgInfo) { + if(msgInfo==null){ + return false; + } + List list=new ArrayList<>(); + //查询用户 + for(String receiveUserId:msgInfo.getTags()) { + MessageInfo info=new MessageInfo(); + info.setSendUserId(userId); + info.setReceiveUserId(Long.valueOf(receiveUserId)); + info.setTitle(msgInfo.getTitle()); + info.setContent(msgInfo.getContent()); + info.setSendTime(new Date()); + info.setTemplateId(msgInfo.getId()); + info.setStatus(0);//未读 + info.setMsgType(1);//通知 + info.setMsgLevel(1);//1级 + list.add(info); + } + XingeApp xingeApp= TencentPush.toBuild(tencentAppId,secretKey); + TencentPush.pushTagAndroid(xingeApp,msgInfo); + //信息入库 + if(list!=null && !list.isEmpty()){ + return batchInsertMessage(list); + }else{ + return false; + } + + } + + @Override + public boolean sendMessageInfo(Long userId, SendMsgInfo info,String tenantId) { + MessageTemplate template=hzMessageTemplateService.selectById(info.getId()); + if(template==null){ + return false; + } + String ids=hzMessageTemplateService.dealPersonIds(template.getPersonType(),template.getPersonTypeIds(),tenantId); + String[] idsArr=ids.split(","); + ArrayList personIds = new ArrayList(Arrays.asList(idsArr)) ; + info.setTags(personIds); + return sendMessage(userId,info); + } + + @Override + public boolean sendMessageByTemplate(Long userId,String cron,String type) { + MessageTemplateQuery query=new MessageTemplateQuery(); + query.setCron(cron); + query.setType(type); + List list=hzMessageTemplateService.queryMessageTemplateVo(query); + Map idMsg=dealRule.parseRuleMessage(list); + for(MessageTemplateVo vo:list){ + String msg=idMsg.get(vo.getId()); + SendMsgInfo info=new SendMsgInfo(); + info.setContent(msg); + String personTypeIds=vo.getPersonTypeIds(); + if(personTypeIds == null || "".equals(personTypeIds)){ + continue; + } + String[] idsArr=personTypeIds.split(","); + ArrayList personIds = new ArrayList(Arrays.asList(idsArr)) ; + info.setId(vo.getId()); + info.setTags(personIds); + info.setTitle(vo.getTitle()); + sendMessage(userId,info); + } + return true; + } + + + @Override + public boolean updateMessage(MessageInfo info) { + int count=hzWdPushMessageMapper.updateMessage(info); + return count>0; + } + + @Override + public boolean insertMessage(MessageInfo info) { + int count=hzWdPushMessageMapper.insertMessage(info); + return count>0; + } + + @Override + public boolean batchInsertMessage(List list) { + int count=hzWdPushMessageMapper.batchInsertMessage(list); + return count>0; + } + + + @Override + public IPage querySendMessage(MessageQuery messageQuery, IPage pageParam) { + List userList=userClient.getAllUserList(messageQuery.getTenantId()).getData(); + IPage pageList= hzWdPushMessageMapper.querySendMessage(messageQuery,pageParam); + List list=pageList.getRecords(); + List voList=new ArrayList<>(); + IPage page=new Page<>(pageList.getCurrent(),pageList.getSize(),pageList.getTotal()); + for(MessageInfo info:list){ + MessageInfoVo vo=new MessageInfoVo(); + BeanUtils.copyProperties(info,vo); + vo.setReceiveUserName(getUserName(info.getReceiveUserId(),userList)); + vo.setSendUserName(getUserName(info.getSendUserId(),userList)); + voList.add(vo); + } + page.setRecords(voList); + page.setPages(pageList.getPages()); + + return page; + } + + private String getUserName(Long userId,List userList){ + for(User user:userList){ + if(user.getId().longValue() == userId.longValue()){ + return user.getName(); + } + } + return userId+""; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/task/MessageTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/task/MessageTask.java new file mode 100644 index 0000000..77eb6b5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/task/MessageTask.java @@ -0,0 +1,20 @@ +package org.springblade.messaging_center.task; + +import org.springblade.messaging_center.service.impl.HzTencentPushMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class MessageTask { + + @Autowired + HzTencentPushMessageService hzTencentPushMessageService; + + @Scheduled(cron="30 0 8 * * ?") + public void taskStart1(){ + String cron="30 0 8 * * ?"; + hzTencentPushMessageService.sendMessageByTemplate(1527461973250625537L,cron,"system"); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/DataDealUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/DataDealUtil.java new file mode 100644 index 0000000..6efdac2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/DataDealUtil.java @@ -0,0 +1,22 @@ +package org.springblade.messaging_center.util; + +import com.alibaba.fastjson.JSON; + +import java.util.Calendar; +import java.util.Date; +import java.util.Map; + +public class DataDealUtil { + + public static Date calcDate(int field,int gap,Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + // 24小时制 + cal.add(field, gap); + return cal.getTime(); + } + + public static Map parseJsonStr(String valueInfo){ + return JSON.parseObject(valueInfo,Map.class); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/TencentPush.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/TencentPush.java new file mode 100644 index 0000000..fc082a4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/util/TencentPush.java @@ -0,0 +1,56 @@ +package org.springblade.messaging_center.util; + +import com.tencent.xinge.XingeApp; +import com.tencent.xinge.bean.*; +import com.tencent.xinge.push.app.PushAppRequest; +import org.json.JSONObject; +import org.springblade.messaging_center.entity.SendMsgInfo; + +/** + * 腾讯推送 + */ +public class TencentPush { + + public static XingeApp toBuild(String appId,String secretKey){ + return new XingeApp.Builder() + .appId(appId) + .secretKey(secretKey) + .domainUrl("https://api.tpns.sh.tencent.com/") + .build(); + } + + //Android 标签推送示例 + public static JSONObject pushTagAndroid(XingeApp xingeApp, SendMsgInfo info) { + PushAppRequest pushAppRequest = new PushAppRequest(); + pushAppRequest.setAudience_type(AudienceType.tag); + pushAppRequest.setPlatform(Platform.android); + pushAppRequest.setMessage_type(MessageType.notify); + Message message = new Message(); + message.setTitle(info.getTitle()); + message.setContent(info.getContent()); + MessageAndroid messageAndroid = new MessageAndroid(); + message.setAndroid(messageAndroid); + pushAppRequest.setMessage(message); + TagListObject tagListObject = new TagListObject(); + tagListObject.setTags(info.getTags()); + tagListObject.setOp(OpType.OR); + pushAppRequest.setTag_list(tagListObject); + return xingeApp.pushApp(pushAppRequest); + } + + //安卓全部设备推送 + public static JSONObject pushAllAndroid(XingeApp xingeApp, SendMsgInfo info) { + PushAppRequest pushAppRequest = new PushAppRequest(); + pushAppRequest.setAudience_type(AudienceType.all); + pushAppRequest.setPlatform(Platform.android); + pushAppRequest.setMessage_type(MessageType.notify); + Message message = new Message(); + message.setTitle(info.getTitle()); + message.setContent(info.getContent()); + MessageAndroid messageAndroid = new MessageAndroid(); + message.setAndroid(messageAndroid); + pushAppRequest.setMessage(message); + return xingeApp.pushApp(pushAppRequest); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageInfoVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageInfoVo.java new file mode 100644 index 0000000..a32e3bb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageInfoVo.java @@ -0,0 +1,46 @@ +package org.springblade.messaging_center.vo; + +import org.springblade.messaging_center.entity.MessageInfo; +import org.springblade.messaging_center.enums.MsgLevelEnum; +import org.springblade.messaging_center.enums.MsgStatusEnum; +import org.springblade.messaging_center.enums.MsgTypeEnum; + +public class MessageInfoVo extends MessageInfo { + private String sendUserName; + private String receiveUserName; + + private String msgTypeName; + private String statusName; + private String msgLevelName; + + + public String getSendUserName() { + return sendUserName; + } + + public void setSendUserName(String sendUserName) { + this.sendUserName = sendUserName; + } + + public String getReceiveUserName() { + return receiveUserName; + } + + public void setReceiveUserName(String receiveUserName) { + this.receiveUserName = receiveUserName; + } + + public String getMsgTypeName() { + return MsgTypeEnum.getNameByType(getMsgType()); + } + + public String getStatusName() { + return MsgStatusEnum.getNameByType(getStatus()); + } + + + public String getMsgLevelName() { + return MsgLevelEnum.getNameByType(getMsgLevel()); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageQuery.java new file mode 100644 index 0000000..afbe721 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageQuery.java @@ -0,0 +1,12 @@ +package org.springblade.messaging_center.vo; + +import lombok.Data; + +@Data +public class MessageQuery { + private Integer status; + private Long userId; + private String start; + private String end; + private String tenantId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageRuleVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageRuleVo.java new file mode 100644 index 0000000..1849581 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageRuleVo.java @@ -0,0 +1,15 @@ +package org.springblade.messaging_center.vo; + +import org.springblade.messaging_center.entity.MessageRule; + +public class MessageRuleVo extends MessageRule { + private Long templateId; + + public Long getTemplateId() { + return templateId; + } + + public void setTemplateId(Long templateId) { + this.templateId = templateId; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateQuery.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateQuery.java new file mode 100644 index 0000000..5cdad93 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateQuery.java @@ -0,0 +1,11 @@ +package org.springblade.messaging_center.vo; + +import lombok.Data; + +@Data +public class MessageTemplateQuery { + private Long id; + private String cron; + private String type; + private String tenantId; +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateVo.java new file mode 100644 index 0000000..415d314 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/java/org/springblade/messaging_center/vo/MessageTemplateVo.java @@ -0,0 +1,17 @@ +package org.springblade.messaging_center.vo; + +import org.springblade.messaging_center.entity.MessageTemplate; + +import java.util.List; + +public class MessageTemplateVo extends MessageTemplate { + List ruleList; + + public List getRuleList() { + return ruleList; + } + + public void setRuleList(List ruleList) { + this.ruleList = ruleList; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..931c833 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-dev.yml @@ -0,0 +1,17 @@ +#服务器端口 +server: + port: 8212 + +file: + upload: + path: D:\\upload + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application.yml new file mode 100644 index 0000000..3af0a9b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/messaging-center-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: messaging-center + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/pom.xml new file mode 100644 index 0000000..91314dc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/pom.xml @@ -0,0 +1,27 @@ + + + + + org.springblade + HZInfo-RIS + 4.5.0.RELEASE + + + 4.0.0 + + hzinfo-ris-pxhd-service + ${project.artifactId} + 4.5.0.RELEASE + + dam-safety-monitor-service + reservoir-baseinfo-service + water-rain-monitor-service + engineering-management-service + general-dispatching-service + video-image-service + hzinfo-inspect-service + hz3000-real-data-service + messaging-center-service + + pom + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/pom.xml new file mode 100644 index 0000000..ca1d5c8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/pom.xml @@ -0,0 +1,126 @@ + + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + 4.0.0 + + pxhd-reservoir-baseinfo + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + org.springblade + pxhd-reservoir-baseinfo-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-starter-datascope + 4.5.0.RELEASE + compile + + + + + dom4j + dom4j + 1.6.1 + + + com.hnac.hzinfo.data + hzinfo-data-sdk + 4.5.0.RELEASE + compile + + + org.springblade + hzinfo-ris-pxhd-common-service-api + 4.5.0.RELEASE + compile + + + org.springblade + blade-starter-tenant + 4.5.0.RELEASE + compile + + + org.springblade + blade-system-api + 4.5.0.RELEASE + compile + + + + org.apache.httpcomponents + httpmime + 4.5.12 + + + + com.alibaba + fastjson + 1.2.73 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/ReservoirBaseInfoApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/ReservoirBaseInfoApplication.java new file mode 100644 index 0000000..79cef93 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/ReservoirBaseInfoApplication.java @@ -0,0 +1,24 @@ +package org.springblade.reservoirbase; + +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; + +/*** + * 河流信息 水库信息 水库防洪信息 库(湖)容曲线 湖库信息 + */ +@EnableBladeFeign +@SpringCloudApplication +public class ReservoirBaseInfoApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="reservoir-baseinfo"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, ReservoirBaseInfoApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, ReservoirBaseInfoApplication.class); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/config/Constants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/config/Constants.java new file mode 100644 index 0000000..142415d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/config/Constants.java @@ -0,0 +1,13 @@ +package org.springblade.reservoirbase.config; + +import org.springblade.reservoirbase.entity.CityInfo; +import org.springblade.reservoirbase.entity.Weather; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Constants { + public static Map CITY_INFO=new HashMap<>(1); + public static Map> WEATHERS=new HashMap<>(1); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/GateInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/GateInfoController.java new file mode 100644 index 0000000..8c03f89 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/GateInfoController.java @@ -0,0 +1,162 @@ +package org.springblade.reservoirbase.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +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.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.entity.IrrBDGate; +import org.springblade.reservoirbase.entity.IrrBDGateRefData; +import org.springblade.reservoirbase.service.IGateInfoService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/reservoirBaseInfo/gateInfo") +@AllArgsConstructor +@Api(value = "闸门信息", tags = "闸门信息接口") +public class GateInfoController extends BladeController implements CacheNames { + private final IGateInfoService gateInfoService; + + + @RequestMapping(value="save",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("添加闸门") + public R addGate(@RequestBody IrrBDGate irrBDGate){ + String deptId=AuthUtil.getDeptId(); + IrrBDGate tmp=new IrrBDGate(); + tmp.setDeptId(deptId); + tmp.setStrobeCode(irrBDGate.getStrobeCode()); + tmp.setStcd(irrBDGate.getStcd()); + List page = gateInfoService.list(tmp); + if(page!=null && !page.isEmpty()){ + return R.fail(500,"存在重复的闸门代码为:"+irrBDGate.getStrobeCode()+"的数据"); + } + irrBDGate.setDeptId(deptId); + return gateInfoService.addGate(irrBDGate); + } + + + @RequestMapping(value="remove",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("删除闸门") + public R deleteGate(@ApiParam(value = "闸门id") @RequestParam String gateCode){ + int i = gateInfoService.deleteGate(gateCode); + if(i > 0 ) { + return R.data(true,"删除成功"); + } + return R.fail(500,"不存在此记录"); + } + + + @RequestMapping(value="updateGate",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("修改闸门") + public R updateGate(@RequestBody IrrBDGate irrBDGate){ + int i = gateInfoService.updateGate(irrBDGate); + if( i > 0 ){ + return R.data(true,"修改成功"); + } + return R.fail(500,"修改失败"); + } + + @RequestMapping(value="pageList",method={RequestMethod.GET}) + @ResponseBody + @ApiOperation("查询闸门") + public R pageList(@ModelAttribute IrrBDGate irrBDGate, Query query){ + irrBDGate.setDeptId(AuthUtil.getDeptId()+"%"); + IPage page = gateInfoService.selectGate(irrBDGate, Condition.getPage(query)); + return R.data(page,"查询成功"); + } + + + @RequestMapping(value="list",method={RequestMethod.GET}) + @ResponseBody + @ApiOperation("查询闸门") + public R list(@ModelAttribute IrrBDGate irrBDGate){ + + irrBDGate.setDeptId(AuthUtil.getDeptId()+"%"); + List list = gateInfoService.list(irrBDGate); + return R.data(list,"查询成功"); + + } + + + /** + * + * 修改闸门配置 + * @return + */ + @RequestMapping(value="saveRef",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("修改闸门配置") + public R saveRef(@RequestBody IrrBDGateRefData irrBDGateRef){ + int i = gateInfoService.addGateRef(irrBDGateRef); + if(i>0){ + return R.data(true,"修改成功"); + } + return R.fail(500,"修改失败"); + } + + /** + * + * 删除闸门配置 + * @return + */ + @RequestMapping(value="removeRef",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("删除闸门配置") + public R deleteGateRef(@ApiParam(value = "闸门编码") @RequestParam String gateCode){ + int i = gateInfoService.deleteGateRef(gateCode); + if(i>0){ + return R.data(true,"删除成功"); + } + return R.fail(500,"删除失败"); + + } + + /** + * + * 修改闸门配置 + * @return + */ + @RequestMapping(value="updateRef",method={RequestMethod.POST}) + @ResponseBody + @ApiOperation("修改闸门配置") + public R updateGateRef(@RequestBody IrrBDGateRefData irrBDGateRef){ + + + int i = gateInfoService.updateGateRef(irrBDGateRef); + if(i>0){ + return R.data(true,"修改成功"); + } + return R.fail(500,"修改失败"); + + + } + + /** + * + *查询闸门配置 + * @return + */ + @RequestMapping(value="detailRef",method={RequestMethod.GET}) + @ResponseBody + @ApiOperation("查询闸门配置") + public R listRef(@ApiParam(value = "闸门编码") @RequestParam String gateCode){ + + IrrBDGateRefData res = gateInfoService.detailRef(gateCode); + return R.data(res,"查询成功"); + + + } + + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzGisPageController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzGisPageController.java new file mode 100644 index 0000000..7389ff9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzGisPageController.java @@ -0,0 +1,41 @@ +package org.springblade.reservoirbase.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.service.IHzGisPageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springblade.core.mp.support.Query; +import org.springblade.core.mp.support.Condition; + +@RestController +@RequestMapping("/reservoirBaseInfo/gis") +@Api(tags = "Gis页面接口" ,value = "Gis页面接口") +public class HzGisPageController { + + @Autowired + IHzGisPageService hzGisPageService; + + /** + * 获取登录页以及主页显示的文字信息 + * @return list + */ + @ApiOperation(value = "获取登录页以及主页显示的文字信息",notes = "获取登录页以及主页显示的文字信息") + @RequestMapping("/getSystemInfo") + public R getSystemInfo(){ + return R.data(hzGisPageService.getSystemInfo(),"查询成功"); + } + + + @RequestMapping("/queryReservoirs") + @ApiOperation("获取水库列表") + public R queryReservoirs(@ApiParam(value = "名称")String name, Query query){ + //查询当前用户下所有站点的水库列表 + String deptId= AuthUtil.getDeptId(); + return R.data(hzGisPageService.queryReservoirs(deptId,name,Condition.getPage(query)),"操作成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzWeatherController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzWeatherController.java new file mode 100644 index 0000000..5b8add0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/HzWeatherController.java @@ -0,0 +1,79 @@ +package org.springblade.reservoirbase.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.dom4j.DocumentException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.common.cache.CacheNames; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.entity.CityInfo; +import org.springblade.reservoirbase.entity.Weather; +import org.springblade.reservoirbase.service.IWeatherService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.io.UnsupportedEncodingException; +import java.util.List; + +/** + * + * @author Huj + * @date 2019/07/25 08:19 + * + */ + +@Api(tags = "水库天气-天气信息获取") +@RestController +@RequestMapping("/reservoirBaseInfo/weather") +public class HzWeatherController extends BladeController implements CacheNames { + + private static Logger logger = LoggerFactory.getLogger(HzWeatherController.class); + + @Autowired + IWeatherService weatherService; + + @ApiOperation("获取城市当天天气 (guangdong,湛江) ") + @RequestMapping(value = "/getWeatherInfo", method = RequestMethod.GET) + public R getWeatherInfo(String province, String cityname) { + CityInfo ret = null; + try { + ret = weatherService.getWeatherInfo(province,cityname); + System.out.println(ret.getcityX()); + } catch (UnsupportedEncodingException | DocumentException e) { + e.printStackTrace(); + } + return R.data(ret,"查询成功"); + } + + @ApiOperation("获取城市一周天气 (beijing,丰台)") + @RequestMapping(value = "/gainWeatherInfo", method = RequestMethod.GET) + public R gainWeatherInfo(String province, String cityname) { + List list = null; + try { + list = weatherService.gainWeatherInfo(province, cityname, "") ; + } catch(Exception e) { + e.printStackTrace(); + logger.error(e.getMessage()); + } + return R.data(list,"查询列表成功"); + } + + @ApiOperation("获取风和城市当天天气 (101260514(天柱) 101250901(邵阳)) ") + @RequestMapping(value = "/getNewWeatherInfo", method = RequestMethod.GET) + public R getNewWeatherInfo(String location) { + CityInfo ret = weatherService.getNewWeatherInfo(location); + return R.data( ret,"查询成功"); + } + + + @ApiOperation("获取风和城市一周天气") + @RequestMapping(value = "/gainNewWeatherInfo", method = RequestMethod.GET) + public R gainNewWeatherInfo(String location) { + List list = weatherService.gainNewWeatherInfo(location) ; + return R.data( list,"查询成功"); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/IrrbireachController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/IrrbireachController.java new file mode 100644 index 0000000..20660f3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/IrrbireachController.java @@ -0,0 +1,118 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.Irrbireach; +import org.springblade.reservoirbase.service.IirrbireachService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/irrbireach") +@AllArgsConstructor +@Api(value = "河流信息", tags = "河流信息接口") +public class IrrbireachController extends BladeController implements CacheNames { + private final IirrbireachService irrbireachService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "riverCode", value = "河流编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "riverName", value = "河流名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入Irrbireach") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionIrrbireach(param); + IPage pages = irrbireachService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "riverCode", value = "河流编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "riverName", value = "河流名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入Irrbireach") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionIrrbireach(param); + List list = irrbireachService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入irrbireach") + public R detail(Irrbireach irrbireach) { + Irrbireach detail = irrbireachService.getOne(Condition.getQueryWrapper(irrbireach)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入irrbireach") + public R save(@RequestBody Irrbireach irrbireach) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(Irrbireach::getRiverCode,irrbireach.getRiverCode()); + List list =irrbireachService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("河流编码已存在"); + } + + wrapper=new LambdaQueryWrapper(); + wrapper.eq(Irrbireach::getRiverName,irrbireach.getRiverName()); + list =irrbireachService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("河流名称已存在"); + } + return R.status(irrbireachService.save(irrbireach)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入irrbireach") + public R update(@RequestBody Irrbireach irrbireach) { + return R.status(irrbireachService.updateById(irrbireach)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = irrbireachService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinController.java new file mode 100644 index 0000000..94452f6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinController.java @@ -0,0 +1,136 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.entity.StRsrHych; +import org.springblade.reservoirbase.service.IStRsrBsinService; +import org.springblade.reservoirbase.service.IStRsrHychService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springblade.reservoirbase.vo.StRsrBsinVo; +import org.springblade.reservoirbase.wrapper.StRsrBsinWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/stRsrBsin") +@AllArgsConstructor +@Api(value = "水库信息", tags = "水库信息接口") +public class StRsrBsinController extends BladeController implements CacheNames { + private final IStRsrBsinService stRsrBsinService; + + private final IStRsrHychService stRsrHychService; + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "rtunm", value = "水库名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入stRsrBsin") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStRsrBsin(param); + IPage pages = stRsrBsinService.page(Condition.getPage(query), wrapper); + return R.data(StRsrBsinWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "rtunm", value = "水库名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入stRsrBsin") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStRsrBsin(param); + List list = stRsrBsinService.list(wrapper); + return R.data(StRsrBsinWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入stRsrBsin") + public R> detail(StRsrBsin stRsrBsin) { + Map data=new HashMap<>(); + StRsrBsin detail = stRsrBsinService.getOne(Condition.getQueryWrapper(stRsrBsin)); + data.put("stRsrBsin",StRsrBsinWrapper.build().entityVO(detail)); + //防洪信息 + StRsrHych param=new StRsrHych(); + param.setRscd(stRsrBsin.getRscd()); + StRsrHych stRsrHych=stRsrHychService.getOne(Condition.getQueryWrapper(param)); + data.put("stRsrHych",stRsrHych); + return R.data(data); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入stRsrBsin") + public R save(@RequestBody StRsrBsin stRsrBsin) { + if(stRsrBsin==null){ + return R.fail("水库信息不能为空"); + } + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StRsrBsin::getRscd,stRsrBsin.getRscd()); + List list =stRsrBsinService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("水库编码已存在"); + } + + wrapper=new LambdaQueryWrapper(); + wrapper.eq(StRsrBsin::getRtunm,stRsrBsin.getRtunm()); + list =stRsrBsinService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("水库名称已存在"); + } + + return R.status(stRsrBsinService.save(stRsrBsin)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入stRsrBsin") + public R update(@RequestBody StRsrBsin stRsrBsin) { + return R.status(stRsrBsinService.updateById(stRsrBsin)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + stRsrBsinService.deleteLogic(Func.toLongList(ids)); + return R.status(true); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinDataController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinDataController.java new file mode 100644 index 0000000..183a106 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrBsinDataController.java @@ -0,0 +1,133 @@ +package org.springblade.reservoirbase.controller; + +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.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.CacheNames; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.service.IStRsrBsinDataService; +import org.springblade.ris_common.entity.Report; +import org.springblade.ris_common.util.CommonUtil; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/stRsrBsinData") +@AllArgsConstructor +@Api(value = "水库数据", tags = "水库数据接口") +public class StRsrBsinDataController extends BladeController implements CacheNames { + private final IStRsrBsinDataService stRsrBsinDataService; + + //根据实时水位计算库容 + @ApiOperation(notes = "根据库水位获取库容", value = "根据库水位获取库容") + @RequestMapping(value = "getWValue", method = { RequestMethod.GET}) + @ResponseBody + public R getWValue(String rscd,String rz) { + BigDecimal bd=new BigDecimal(rz); + BigDecimal data=stRsrBsinDataService.getWValue(rscd,bd); + return R.data(data); + } + + //获取实时水库对应数据 + @ApiOperation(notes = "获取实时水库对应数据", value = "获取实时水库对应数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "水库编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "col为rz或空 取水位库容值,不为空 取对应col的值", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "getRzData", method = { RequestMethod.GET}) + @ResponseBody + public R getRzData(String rscd,String col) { + if(col== null || "".equals(col) || "rz".equals(col)) { + col = "rz"; + Map res=new HashMap<>(); + BigDecimal rz=stRsrBsinDataService.getRzData(rscd,col); + BigDecimal w = stRsrBsinDataService.getWValue(rscd, rz); + res.put("rz", rz);//水位 + res.put("w", w);//库容 + return R.data(res); + }else { + BigDecimal data = stRsrBsinDataService.getRzData(rscd, col); + return R.data(data); + } + } + + @ApiOperation(notes = "获取实时水库数据", value = "获取实时水库数据") + @RequestMapping(value = "getRealData", method = { RequestMethod.GET}) + @ResponseBody + public R getRealData(String rscd) { + List data=stRsrBsinDataService.getRealData(rscd); + return R.data(data); + } + + @ApiOperation("表头列") + @RequestMapping(value = "/getTableHead", method = RequestMethod.GET) + public R getTableHead(String rscd) { + //查询基础数据 + List report = stRsrBsinDataService.getSignages(rscd); + return R.data(report,"查询成功"); + } + + //工作台 水位 库容 降雨曲线 + @ApiOperation("工作台 水位 库容 降雨曲线") + @RequestMapping(value = "/getRzWDrp", method = RequestMethod.GET) + public R getRzWDrp(String rscd,String beginSpt,String endSpt) { + Map res= CommonUtil.getStartEnd(beginSpt,endSpt); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + //查询基础数据 + List> report = stRsrBsinDataService.getRzWDrp(rscd,res.get("begin"), res.get("end")); + return R.data(report,"查询成功"); + } + + + + //获取库水位和流量 历史曲线 + @ApiOperation("获取库水位和流量 历史数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "type", value = "hour day month year", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "accessRules", + value = "取数规则0=最早值、1=最大值、2=最小值、3=平均值、4=(累计值/和值)、5=(变化值/差值) 6=最新值", + paramType = "query", dataType = "Integer") + }) + @RequestMapping(value = "/getHistoryData", method = RequestMethod.GET) + public R getHistoryData(String rscd,String beginSpt,String endSpt,String type,Integer accessRules,String col) { + Map res= CommonUtil.getStartEnd(beginSpt,endSpt); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + List report = stRsrBsinDataService.getHistoryData(rscd,res.get("begin"), res.get("end"),type,accessRules,col); + return R.data(report,"查询成功"); + } + + @ApiOperation("上游/下游水位、雨量年报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "year", value = "年份", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "col", value = "上游/下游水位、雨量", paramType = "query", dataType = "string") + }) + @RequestMapping(value = "/getRzYearReport", method = RequestMethod.GET) + public R getRzYearReport(String rscd,String year,String col) { + Map res= CommonUtil.getStartEnd(year+"-01-01 00:00:00",year+"-12-31 23:59:59"); + if(res == null){ + return R.data(500,false, "日期格式错误"); + } + Map report = stRsrBsinDataService.getRzYearReport(rscd,res.get("begin"), res.get("end"),col,8); + return R.data(report,"查询成功"); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrHychController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrHychController.java new file mode 100644 index 0000000..ccfdd47 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRsrHychController.java @@ -0,0 +1,107 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.StRsrHych; +import org.springblade.reservoirbase.service.IStRsrHychService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/stRsrHych") +@AllArgsConstructor +@Api(value = "水库防洪信息", tags = "水库防洪信息接口") +public class StRsrHychController extends BladeController implements CacheNames { + private final IStRsrHychService stRsrHychService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "rsvrtp", value = "水库类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入stRsrHych") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStRsrHych(param); + IPage pages = stRsrHychService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "rsvrtp", value = "水库类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入stRsrHych") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStRsrHych(param); + List list = stRsrHychService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入stRsrHych") + public R detail(StRsrHych stRsrHych) { + StRsrHych detail = stRsrHychService.getOne(Condition.getQueryWrapper(stRsrHych)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入stRsrHych") + public R save(@RequestBody StRsrHych stRsrHych) { + return R.status(stRsrHychService.save(stRsrHych)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入stRsrHych") + public R update(@RequestBody StRsrHych stRsrHych) { + return R.status(stRsrHychService.updateById(stRsrHych)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "rscd") + public R remove(@ApiParam(value = "水库代码集合") String rscd) { + List list= Func.toStrList(rscd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(StRsrHych::getRscd,list); + boolean temp = stRsrHychService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRtuParamController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRtuParamController.java new file mode 100644 index 0000000..b958f04 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StRtuParamController.java @@ -0,0 +1,109 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.StRtuParam; +import org.springblade.reservoirbase.service.IStRtuParamService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/stRtuParam") +@AllArgsConstructor +@Api(value = "遥测终端信息", tags = "遥测终端信息接口") +public class StRtuParamController extends BladeController implements CacheNames { + private final IStRtuParamService stRtuParamService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "emtc", value = "设备编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "emtp", value = "设备类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入stRtuParam") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStRtuParam(param); + IPage pages = stRtuParamService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "emtc", value = "设备编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "emtp", value = "设备类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入stRtuParam") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStRtuParam(param); + List list = stRtuParamService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入stRtuParam") + public R detail(StRtuParam stRtuParam) { + StRtuParam detail = stRtuParamService.getOne(Condition.getQueryWrapper(stRtuParam)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入stRtuParam") + public R save(@RequestBody StRtuParam stRtuParam) { + return R.status(stRtuParamService.save(stRtuParam)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入stRtuParam") + public R update(@RequestBody StRtuParam stRtuParam) { + return R.status(stRtuParamService.updateById(stRtuParam)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "emtc") + public R remove(@ApiParam(value = "设备编号集合") @RequestParam String emtc) { + List list= Func.toStrList(emtc); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(StRtuParam::getEmtc,list); + boolean temp = stRtuParamService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StZvarlBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StZvarlBController.java new file mode 100644 index 0000000..10bf7cc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/StZvarlBController.java @@ -0,0 +1,103 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.reservoirbase.service.IStZvarlBService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/stZvarlB") +@AllArgsConstructor +@Api(value = "库(湖)容曲线", tags = "库(湖)容曲线接口") +public class StZvarlBController extends BladeController implements CacheNames { + private final IStZvarlBService stZvarlBService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "库(湖)编码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入stZvarlB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStZvarlB(param); + IPage pages = stZvarlBService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "库(湖)编码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入stZvarlB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStZvarlB(param); + List list = stZvarlBService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入stZvarlB") + public R detail(StZvarlB stZvarlB) { + StZvarlB detail = stZvarlBService.getOne(Condition.getQueryWrapper(stZvarlB)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入stZvarlB") + public R save(@RequestBody StZvarlB stZvarlB) { + return R.status(stZvarlBService.save(stZvarlB)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入stZvarlB") + public R update(@RequestBody StZvarlB stZvarlB) { + return R.status(stZvarlBService.updateById(stZvarlB)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = stZvarlBService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/ThreeDutyPersonController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/ThreeDutyPersonController.java new file mode 100644 index 0000000..6c090fc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/ThreeDutyPersonController.java @@ -0,0 +1,114 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.ThreeDutyPerson; +import org.springblade.reservoirbase.service.IThreeDutyPersonService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + + +@RestController +@RequestMapping("/reservoirBaseInfo/threeDutyPerson") +@AllArgsConstructor +@Api(value = "三个责任人信息", tags = "三个责任人信息接口") +public class ThreeDutyPersonController extends BladeController implements CacheNames { + private final IThreeDutyPersonService threeDutyPersonService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入ThreeDutyPerson") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionThreeDutyPerson(param); + IPage pages = threeDutyPersonService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库编码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入ThreeDutyPerson") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionThreeDutyPerson(param); + List list = threeDutyPersonService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入ThreeDutyPerson") + public R detail(ThreeDutyPerson ThreeDutyPerson) { + ThreeDutyPerson detail = threeDutyPersonService.getOne(Condition.getQueryWrapper(ThreeDutyPerson)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入ThreeDutyPerson") + public R save(@RequestBody ThreeDutyPerson ThreeDutyPerson) { + return R.status(threeDutyPersonService.save(ThreeDutyPerson)); + } + + /** + * 新增 + */ + @PostMapping("/batchSave") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "新增", notes = "传入ThreeDutyPerson") + public R save(@RequestBody List ThreeDutyPerson) { + return R.status(threeDutyPersonService.saveOrUpdateBatch(ThreeDutyPerson)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入ThreeDutyPerson") + public R update(@RequestBody ThreeDutyPerson ThreeDutyPerson) { + return R.status(threeDutyPersonService.updateById(ThreeDutyPerson)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = threeDutyPersonService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqAdlrrBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqAdlrrBController.java new file mode 100644 index 0000000..4b63e02 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqAdlrrBController.java @@ -0,0 +1,130 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.WqAdlrrB; +import org.springblade.reservoirbase.service.IWqAdlrrBService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springblade.reservoirbase.vo.WqAdlrrBVo; +import org.springblade.reservoirbase.wrapper.WqAdlrrBWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/wqAdlrrB") +@AllArgsConstructor +@Api(value = "行政区划与湖库关系", tags = "行政区划与湖库关系接口") +public class WqAdlrrBController extends BladeController implements CacheNames { + private final IWqAdlrrBService wqAdlrrBService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "addvcd", value = "行政区划码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wqAdlrrB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWqAdlrrB(param); + IPage pages = wqAdlrrBService.page(Condition.getPage(query), wrapper); + return R.data(WqAdlrrBWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "addvcd", value = "行政区划码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wqAdlrrB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWqAdlrrB(param); + List list = wqAdlrrBService.list(wrapper); + return R.data(WqAdlrrBWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wqAdlrrB") + public R detail(WqAdlrrB wqAdlrrB) { + WqAdlrrB detail = wqAdlrrBService.getOne(Condition.getQueryWrapper(wqAdlrrB)); + return R.data(WqAdlrrBWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wqAdlrrB") + public R save(@RequestBody WqAdlrrB wqAdlrrB) { + if(check(wqAdlrrB)) { + return R.data(500,false,"行政区划与湖库关系已存在"); + }else { + return R.status(wqAdlrrBService.save(wqAdlrrB)); + } + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wqAdlrrB") + public R update(@RequestBody WqAdlrrB wqAdlrrB) { + if(check(wqAdlrrB)) { + return R.data(500,false,"行政区划与湖库关系已存在"); + }else{ + return R.status(wqAdlrrBService.updateById(wqAdlrrB)); + } + } + + private boolean check(WqAdlrrB wqAdlrrB){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(WqAdlrrB::getAddvcd,wqAdlrrB.getAddvcd()); + wrapper.eq(WqAdlrrB::getLrcd,wqAdlrrB.getLrcd()); + List list=wqAdlrrBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return true; + } + return false; + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "湖库代码集合") @RequestParam String ids) { + List list=Func.toLongList(ids); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(WqAdlrrB::getId,list); + boolean temp = wqAdlrrBService.delete(wrapper); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrinfBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrinfBController.java new file mode 100644 index 0000000..d2572fd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrinfBController.java @@ -0,0 +1,119 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity. WqLrinfB; +import org.springblade.reservoirbase.service.IWqLrinfBService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/wqLrinfB") +@AllArgsConstructor +@Api(value = "湖库信息", tags = "湖库信息接口") +public class WqLrinfBController extends BladeController implements CacheNames { + private final IWqLrinfBService wqLrinfBService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "watp", value = "水域类型", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrnm", value = "湖(库)名称", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wqLrinfB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWqLrinfB(param); + IPage pages = wqLrinfBService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "stnm", value = "测站名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "sttp", value = "站类", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wqLrinfB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWqLrinfB(param); + List list = wqLrinfBService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wqLrinfB") + public R detail(WqLrinfB wqLrinfB) { + WqLrinfB detail = wqLrinfBService.getOne(Condition.getQueryWrapper(wqLrinfB)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wqLrinfB") + public R save(@RequestBody WqLrinfB wqLrinfB) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(WqLrinfB::getLrcd,wqLrinfB.getLrcd()); + List list =wqLrinfBService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("湖库代码已存在"); + } + + wrapper=new LambdaQueryWrapper(); + wrapper.eq(WqLrinfB::getLrnm,wqLrinfB.getLrnm()); + list =wqLrinfBService.list(wrapper); + if(list!=null && !list.isEmpty()){ + return R.fail("湖库名称已存在"); + } + return R.status(wqLrinfBService.save( wqLrinfB)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wqLrinfB") + public R update(@RequestBody WqLrinfB wqLrinfB) { + return R.status(wqLrinfBService.updateById( wqLrinfB)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { + boolean temp = wqLrinfBService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrsrBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrsrBController.java new file mode 100644 index 0000000..1d05281 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqLrsrBController.java @@ -0,0 +1,130 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.WqLrsrB; +import org.springblade.reservoirbase.service.IWqLrsrBService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springblade.reservoirbase.vo.WqLrsrBVo; +import org.springblade.reservoirbase.wrapper.WqLrsrBWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/wqLrsrB") +@AllArgsConstructor +@Api(value = "湖库与测站关系", tags = "湖库与测站关系接口") +public class WqLrsrBController extends BladeController implements CacheNames { + private final IWqLrsrBService wqLrsrBService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wqLrsrB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWqLrsrB(param); + IPage pages = wqLrsrBService.page(Condition.getPage(query), wrapper); + return R.data(WqLrsrBWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wqLrsrB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWqLrsrB(param); + List list = wqLrsrBService.list(wrapper); + return R.data(WqLrsrBWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wqLrsrB") + public R detail(WqLrsrB wqLrsrB) { + WqLrsrB detail = wqLrsrBService.getOne(Condition.getQueryWrapper(wqLrsrB)); + return R.data(WqLrsrBWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wqLrsrB") + public R save(@RequestBody WqLrsrB wqLrsrB) { + if(check(wqLrsrB)) { + return R.data(500,false,"湖库与测站关系已存在"); + }else { + return R.status(wqLrsrBService.save(wqLrsrB)); + } + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wqLrsrB") + public R update(@RequestBody WqLrsrB wqLrsrB) { + if(check(wqLrsrB)) { + return R.data(500,false,"湖库与测站关系已存在"); + }else { + return R.status(wqLrsrBService.updateById(wqLrsrB)); + } + } + + private boolean check(WqLrsrB wqLrsrB){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(WqLrsrB::getStcd,wqLrsrB.getStcd()); + wrapper.eq(WqLrsrB::getLrcd,wqLrsrB.getLrcd()); + List list=wqLrsrBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return true; + } + return false; + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "测站编码集合") @RequestParam String ids) { + List list=Func.toLongList(ids); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(WqLrsrB::getId,list); + boolean temp = wqLrsrBService.delete(wrapper); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqWrrlrrBController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqWrrlrrBController.java new file mode 100644 index 0000000..a2559de --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/controller/WqWrrlrrBController.java @@ -0,0 +1,130 @@ +package org.springblade.reservoirbase.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 org.springblade.reservoirbase.entity.WqWrrlrrB; +import org.springblade.reservoirbase.service.IWqWrrlrrBService; +import org.springblade.reservoirbase.util.ParamUtil; +import org.springblade.reservoirbase.vo.WqWrrlrrBVo; +import org.springblade.reservoirbase.wrapper.WqWrrlrrBWrapper; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/reservoirBaseInfo/wqWrrlrrB") +@AllArgsConstructor +@Api(value = "水资源分区与湖库关系", tags = "水资源分区与湖库关系接口") +public class WqWrrlrrBController extends BladeController implements CacheNames { + private final IWqWrrlrrBService wqWrrlrrBService; + + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "wrrcd", value = "水资源分区码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入wqWrrlrrB") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionWqWrrlrrB(param); + IPage pages = wqWrrlrrBService.page(Condition.getPage(query), wrapper); + return R.data(WqWrrlrrBWrapper.build().pageVO(pages)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "wrrcd", value = "水资源分区码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "lrcd", value = "湖库代码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入wqWrrlrrB") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionWqWrrlrrB(param); + List list = wqWrrlrrBService.list(wrapper); + return R.data(WqWrrlrrBWrapper.build().listVO(list)); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入wqWrrlrrB") + public R detail(WqWrrlrrB wqWrrlrrB) { + WqWrrlrrB detail = wqWrrlrrBService.getOne(Condition.getQueryWrapper(wqWrrlrrB)); + return R.data(WqWrrlrrBWrapper.build().entityVO(detail)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入wqWrrlrrB") + public R save(@RequestBody WqWrrlrrB wqWrrlrrB) { + if(check(wqWrrlrrB)) { + return R.data(500,false,"水资源分区与湖库关系已存在"); + }else{ + return R.status(wqWrrlrrBService.save(wqWrrlrrB)); + } + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入wqWrrlrrB") + public R update(@RequestBody WqWrrlrrB wqWrrlrrB) { + if(check(wqWrrlrrB)) { + return R.data(500,false,"水资源分区与湖库关系已存在"); + }else{ + return R.status(wqWrrlrrBService.updateById(wqWrrlrrB)); + } + } + + private boolean check(WqWrrlrrB wqWrrlrrB){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(WqWrrlrrB::getWrrcd,wqWrrlrrB.getWrrcd()); + wrapper.eq(WqWrrlrrB::getLrcd,wqWrrlrrB.getLrcd()); + List list=wqWrrlrrBService.list(wrapper); + if(list!=null && !list.isEmpty()) { + return true; + } + return false; + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "ids") + public R remove(@ApiParam(value = "水资源分区码集合") @RequestParam String ids) { + List list=Func.toLongList(ids); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(WqWrrlrrB::getId,list); + boolean temp = wqWrrlrrBService.delete(wrapper); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StRsrBsinClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StRsrBsinClient.java new file mode 100644 index 0000000..7d419ef --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StRsrBsinClient.java @@ -0,0 +1,17 @@ +package org.springblade.reservoirbase.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.service.IStRsrBsinService; +import org.springframework.web.bind.annotation.RestController; + +@NonDS +@RestController +public class StRsrBsinClient implements IStRsrBsinClient{ + IStRsrBsinService stRsrBsinService; + @Override + public StRsrBsin getOne(LambdaQueryWrapper wrapper) { + return stRsrBsinService.getOne(wrapper); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StZvarlBClient.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StZvarlBClient.java new file mode 100644 index 0000000..855e9b2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/feign/StZvarlBClient.java @@ -0,0 +1,27 @@ +package org.springblade.reservoirbase.feign; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.reservoirbase.service.IStZvarlBService; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; +import java.util.List; + +@NonDS +@RestController +public class StZvarlBClient implements IStZvarlBClient{ + + IStZvarlBService stZvarlBService; + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stZvarlBService.list(wrapper); + } + + @Override + public BigDecimal calcResp(List list, BigDecimal rz) { + return stZvarlBService.calcResp(list,rz); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.java new file mode 100644 index 0000000..b7e4eff --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.java @@ -0,0 +1,16 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.reservoirbase.entity.IrrBDGate; + +import java.util.List; + +public interface IrrBDGateMapper { + int insertSelective(IrrBDGate record); + IrrBDGate selectByPrimaryKey(String strobeCode); + IPage selectByExample(@Param("example")IrrBDGate example, IPage page); + int deleteByPrimaryKey(String strobeCode); + int updateByPrimaryKeySelective(IrrBDGate record); + List selectByExample(@Param("example")IrrBDGate example); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.xml new file mode 100644 index 0000000..f514735 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateMapper.xml @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + STROBE_CODE, DEPT_ID, WATERGATE_CODE, PRODUCING_AREA, FACTORY, STROBE_TYPE, STROBE_MATERIAL, + HEIGHT, WIDTH, THICKNESS, MOTIVITY, TYPE, VELOCITY, AREA_CODE, LRCD, SZHLDM, DONGJ, + BEIW, DISCHARGE,STCD + + + + + + delete from irrbdgate + where STROBE_CODE = #{strobeCode,jdbcType=CHAR} + + + + insert into irrbdgate + + + STROBE_CODE, + + + DEPT_ID, + + + WATERGATE_CODE, + + + PRODUCING_AREA, + + + FACTORY, + + + STROBE_TYPE, + + + STROBE_MATERIAL, + + + HEIGHT, + + + WIDTH, + + + THICKNESS, + + + MOTIVITY, + + + TYPE, + + + VELOCITY, + + + AREA_CODE, + + + LRCD, + + + SZHLDM, + + + DONGJ, + + + BEIW, + + + DISCHARGE, + + + STCD, + + + + + #{strobeCode,jdbcType=CHAR}, + + + #{deptId,jdbcType=VARCHAR}, + + + #{watergateCode,jdbcType=CHAR}, + + + #{producingArea,jdbcType=VARCHAR}, + + + #{factory,jdbcType=VARCHAR}, + + + #{strobeType,jdbcType=CHAR}, + + + #{strobeMaterial,jdbcType=CHAR}, + + + #{height,jdbcType=DECIMAL}, + + + #{width,jdbcType=DECIMAL}, + + + #{thickness,jdbcType=DECIMAL}, + + + #{motivity,jdbcType=CHAR}, + + + #{type,jdbcType=CHAR}, + + + #{velocity,jdbcType=DECIMAL}, + + + #{areaCode,jdbcType=VARCHAR}, + + + #{lrcd,jdbcType=VARCHAR}, + + + #{szhldm,jdbcType=VARCHAR}, + + + #{dongj,jdbcType=REAL}, + + + #{beiw,jdbcType=REAL}, + + + #{discharge,jdbcType=REAL}, + + + #{stcd,jdbcType=VARCHAR}, + + + + + + update irrbdgate + + + DEPT_ID = #{deptId,jdbcType=VARCHAR}, + + + WATERGATE_CODE = #{watergateCode,jdbcType=CHAR}, + + + PRODUCING_AREA = #{producingArea,jdbcType=VARCHAR}, + + + FACTORY = #{factory,jdbcType=VARCHAR}, + + + STROBE_TYPE = #{strobeType,jdbcType=CHAR}, + + + STROBE_MATERIAL = #{strobeMaterial,jdbcType=CHAR}, + + + HEIGHT = #{height,jdbcType=DECIMAL}, + + + WIDTH = #{width,jdbcType=DECIMAL}, + + + THICKNESS = #{thickness,jdbcType=DECIMAL}, + + + MOTIVITY = #{motivity,jdbcType=CHAR}, + + + TYPE = #{type,jdbcType=CHAR}, + + + VELOCITY = #{velocity,jdbcType=DECIMAL}, + + + AREA_CODE = #{areaCode,jdbcType=VARCHAR}, + + + LRCD = #{lrcd,jdbcType=VARCHAR}, + + + SZHLDM = #{szhldm,jdbcType=VARCHAR}, + + + DONGJ = #{dongj,jdbcType=REAL}, + + + BEIW = #{beiw,jdbcType=REAL}, + + + DISCHARGE = #{discharge,jdbcType=REAL}, + + + STCD=#{stcd,jdbcType=VARCHAR}, + + + + where STROBE_CODE = #{strobeCode,jdbcType=CHAR} + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.java new file mode 100644 index 0000000..ac94d8d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.java @@ -0,0 +1,11 @@ +package org.springblade.reservoirbase.mapper; + +import org.springblade.reservoirbase.entity.IrrBDGateRefData; + + +public interface IrrBDGateRefDataMapper { + int insertSelective(IrrBDGateRefData record); + int updateByPrimaryKeySelective(IrrBDGateRefData record); + IrrBDGateRefData selectByPrimaryKey(String strobeCode); + int deleteByPrimaryKey(String strobeCode); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.xml new file mode 100644 index 0000000..ce1bdc9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrBDGateRefDataMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + STROBE_CODE, REFSTCD, REFQPOINT, REFZPOINT + + + + + insert into irrbdgate_refdata + + + STROBE_CODE, + + + REFSTCD, + + + REFQPOINT, + + + REFZPOINT, + + + + + #{strobeCode,jdbcType=CHAR}, + + + #{refstcd,jdbcType=CHAR}, + + + #{refqpoint,jdbcType=VARCHAR}, + + + #{refzpoint,jdbcType=CHAR}, + + + + + + update irrbdgate_refdata + + + REFSTCD = #{refstcd,jdbcType=CHAR}, + + + REFQPOINT = #{refqpoint,jdbcType=VARCHAR}, + + + REFZPOINT = #{refzpoint,jdbcType=CHAR}, + + + where STROBE_CODE = #{strobeCode,jdbcType=CHAR} + + + + + + + delete from irrbdgate_refdata + where STROBE_CODE = #{strobeCode,jdbcType=CHAR} + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.java new file mode 100644 index 0000000..52b1240 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.java @@ -0,0 +1,8 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.reservoirbase.entity.Irrbireach; + +public interface IrrbireachMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.xml new file mode 100644 index 0000000..160241b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/IrrbireachMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.java new file mode 100644 index 0000000..08ded43 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.java @@ -0,0 +1,8 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.reservoirbase.entity.StRsrBsin; + +public interface StRsrBsinMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.xml new file mode 100644 index 0000000..77b2227 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrBsinMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.java new file mode 100644 index 0000000..829f64f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity.StRsrHych; + +public interface StRsrHychMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.xml new file mode 100644 index 0000000..1837ddf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRsrHychMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.java new file mode 100644 index 0000000..ccd392d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity.StRtuParam; + +public interface StRtuParamMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.xml new file mode 100644 index 0000000..51bc805 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StRtuParamMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.java new file mode 100644 index 0000000..d8c3636 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity.StZvarlB; + +public interface StZvarlBMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.xml new file mode 100644 index 0000000..6dfeed9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/StZvarlBMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.java new file mode 100644 index 0000000..f5012ed --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.reservoirbase.entity.ThreeDutyPerson; + +public interface ThreeDutyPersonMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.xml new file mode 100644 index 0000000..6872b76 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/ThreeDutyPersonMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.java new file mode 100644 index 0000000..6bbbf5c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity.WqAdlrrB; + +public interface WqAdlrrBMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.xml new file mode 100644 index 0000000..f7d3b09 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqAdlrrBMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.java new file mode 100644 index 0000000..d01ea15 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.java @@ -0,0 +1,8 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import org.springblade.reservoirbase.entity.WqLrinfB; + +public interface WqLrinfBMapper extends UserDataScopeBaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.xml new file mode 100644 index 0000000..baa5fbd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrinfBMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.java new file mode 100644 index 0000000..c073ff1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity.WqLrsrB; + +public interface WqLrsrBMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.xml new file mode 100644 index 0000000..54ad5c5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqLrsrBMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.java new file mode 100644 index 0000000..d2b43f6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.java @@ -0,0 +1,8 @@ +package org.springblade.reservoirbase.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.reservoirbase.entity. WqWrrlrrB; + +public interface WqWrrlrrBMapper extends BaseMapper { +} + diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.xml new file mode 100644 index 0000000..ffde06c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/mapper/WqWrrlrrBMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IGateInfoService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IGateInfoService.java new file mode 100644 index 0000000..fdc2334 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IGateInfoService.java @@ -0,0 +1,27 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.entity.IrrBDGate; +import org.springblade.reservoirbase.entity.IrrBDGateRefData; + +import java.util.List; + +public interface IGateInfoService { + R addGate(IrrBDGate irrBDGate); + + int deleteGate(String gateCode); + + int updateGate(IrrBDGate irrBDGate); + + IPage selectGate(IrrBDGate irrBDGate, IPage page); + + int addGateRef(IrrBDGateRefData irrBDGateRefdata); + + int deleteGateRef(String gateCode); + + int updateGateRef(IrrBDGateRefData irrBDGateRefdata); + + IrrBDGateRefData detailRef(String gateCode); + List list(IrrBDGate irrBDGate); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IHzGisPageService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IHzGisPageService.java new file mode 100644 index 0000000..803b6d9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IHzGisPageService.java @@ -0,0 +1,12 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.SystemInfo; +import org.springblade.reservoirbase.vo.StRsrBsinVo; + +import java.util.List; + +public interface IHzGisPageService { + SystemInfo getSystemInfo(); + IPage queryReservoirs(String deptId, String name, IPage page); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinDataService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinDataService.java new file mode 100644 index 0000000..a526de2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinDataService.java @@ -0,0 +1,33 @@ +package org.springblade.reservoirbase.service; + +import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; +import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeInstanceFieldVO; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.ris_common.entity.Report; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface IStRsrBsinDataService { + BigDecimal getWValue(String stcd,BigDecimal rz); + //根据水库获取库容曲线 + List selectStZvarlB(String stcd); + //计算库容 + BigDecimal calcResp(List list,BigDecimal rz); + //计算小于等于rz最大 和 大于rz最小值的 水位与库容关系两个点 + List calcMaxMin(List list, BigDecimal rz); + //根据水库编码获取实时库水位 + BigDecimal getRzData(String stcd,String col); + + List getRealData(String stcd); + + List getSignages(String stcd); + + List getHistoryData(String stcd, Date start, Date end,String type, Integer accessRules,String col); + + Map getRzYearReport(String rscd, Date begin, Date end, String col,Integer sk); + + List> getRzWDrp(String rscd,Date begin, Date end); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinService.java new file mode 100644 index 0000000..b8d50ce --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrBsinService.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.reservoirbase.entity.StRsrBsin; + +public interface IStRsrBsinService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrHychService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrHychService.java new file mode 100644 index 0000000..e725014 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRsrHychService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StRsrHych; + +import java.util.List; + +public interface IStRsrHychService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StRsrHych getOne(QueryWrapper wrapper); + boolean save(StRsrHych entity); + boolean updateById(StRsrHych entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRtuParamService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRtuParamService.java new file mode 100644 index 0000000..44bad64 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStRtuParamService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StRtuParam; + +import java.util.List; + +public interface IStRtuParamService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StRtuParam getOne(QueryWrapper wrapper); + boolean save(StRtuParam entity); + boolean updateById(StRtuParam entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStZvarlBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStZvarlBService.java new file mode 100644 index 0000000..efebce0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IStZvarlBService.java @@ -0,0 +1,22 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StZvarlB; + +import javax.validation.constraints.NotEmpty; +import java.math.BigDecimal; +import java.util.List; + +public interface IStZvarlBService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StZvarlB getOne(QueryWrapper wrapper); + boolean save(StZvarlB entity); + boolean updateById(StZvarlB entity); + boolean deleteLogic(@NotEmpty List ids); + + BigDecimal calcResp(List list, BigDecimal rz); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IThreeDutyPersonService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IThreeDutyPersonService.java new file mode 100644 index 0000000..19fcb2a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IThreeDutyPersonService.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.reservoirbase.entity.ThreeDutyPerson; + +public interface IThreeDutyPersonService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWeatherService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWeatherService.java new file mode 100644 index 0000000..4eff6de --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWeatherService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import org.dom4j.DocumentException; +import org.springblade.reservoirbase.entity.CityInfo; +import org.springblade.reservoirbase.entity.Weather; + +import java.io.UnsupportedEncodingException; +import java.util.List; + +public interface IWeatherService { + public CityInfo getWeatherInfo(String province, String cityname) throws UnsupportedEncodingException, DocumentException; + + public List gainWeatherInfo(String province, String cityname, String cityen) ; + + public CityInfo getWeatherInfo(String province, String cityname, String cityen) throws UnsupportedEncodingException, DocumentException; + + List gainNewWeatherInfo(String location) ; + CityInfo getNewWeatherInfo(String location); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqAdlrrBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqAdlrrBService.java new file mode 100644 index 0000000..e55570a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqAdlrrBService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqAdlrrB; + +import java.util.List; + +public interface IWqAdlrrBService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + WqAdlrrB getOne(QueryWrapper wrapper); + boolean save(WqAdlrrB entity); + boolean updateById(WqAdlrrB entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrinfBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrinfBService.java new file mode 100644 index 0000000..7177183 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrinfBService.java @@ -0,0 +1,7 @@ +package org.springblade.reservoirbase.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.reservoirbase.entity.WqLrinfB; + +public interface IWqLrinfBService extends BaseService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrsrBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrsrBService.java new file mode 100644 index 0000000..8b327a1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqLrsrBService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqLrsrB; + +import java.util.List; + +public interface IWqLrsrBService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + WqLrsrB getOne(QueryWrapper wrapper); + boolean save(WqLrsrB entity); + boolean updateById(WqLrsrB entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqWrrlrrBService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqWrrlrrBService.java new file mode 100644 index 0000000..effe97a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IWqWrrlrrBService.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqWrrlrrB; + +import java.util.List; + +public interface IWqWrrlrrBService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + WqWrrlrrB getOne(QueryWrapper wrapper); + boolean save(WqWrrlrrB entity); + boolean updateById(WqWrrlrrB entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IirrbireachService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IirrbireachService.java new file mode 100644 index 0000000..b45303b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/IirrbireachService.java @@ -0,0 +1,8 @@ +package org.springblade.reservoirbase.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.reservoirbase.entity.Irrbireach; + +public interface IirrbireachService extends BaseService { + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/GateInfoServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/GateInfoServiceImpl.java new file mode 100644 index 0000000..978b0fb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/GateInfoServiceImpl.java @@ -0,0 +1,88 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.tool.api.R; +import org.springblade.reservoirbase.entity.IrrBDGate; +import org.springblade.reservoirbase.entity.IrrBDGateRefData; +import org.springblade.reservoirbase.mapper.IrrBDGateMapper; +import org.springblade.reservoirbase.mapper.IrrBDGateRefDataMapper; +import org.springblade.reservoirbase.service.IGateInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class GateInfoServiceImpl implements IGateInfoService { + + @Autowired + IrrBDGateMapper irrBDGateMapper; + + @Autowired + IrrBDGateRefDataMapper irrBDGateRefDataMapper; + + @Override + public R addGate(IrrBDGate irrBDGate) { + //判断闸门编码重复 + IrrBDGate juggeGate = irrBDGateMapper.selectByPrimaryKey(irrBDGate.getStrobeCode()); + if(juggeGate != null){ + return R.fail(500,"存在重复的闸门编码为:"+irrBDGate.getStrobeCode()+"的数据"); + } + irrBDGateMapper.insertSelective(irrBDGate); + return R.data(true,"新增成功"); + } + + @Override + public int deleteGate(String gateCode) { + int i = irrBDGateMapper.deleteByPrimaryKey(gateCode); + return i; + } + + @Override + public int updateGate(IrrBDGate irrBDGate) { + int k = 0; + //编辑时如果站点更换清除之前数据配置 + IrrBDGate judgeGate = irrBDGateMapper.selectByPrimaryKey(irrBDGate.getStrobeCode()); + int i = irrBDGateMapper.updateByPrimaryKeySelective(irrBDGate); + if (!irrBDGate.getDeptId().equals(judgeGate.getDeptId())) { + k = irrBDGateRefDataMapper.deleteByPrimaryKey(irrBDGate.getStrobeCode()); + } + return i+k; + } + + @Override + public IPage selectGate(IrrBDGate irrBDGate, IPage page) { + IPage irrBDGates = irrBDGateMapper.selectByExample(irrBDGate, page); + return irrBDGates; + } + + @Override + public int addGateRef(IrrBDGateRefData irrBDGateRefdata) { + int i = irrBDGateRefDataMapper.insertSelective(irrBDGateRefdata); + return i; + } + + @Override + public int deleteGateRef(String gateCode) { + int i = irrBDGateRefDataMapper.deleteByPrimaryKey(gateCode); + return i; + } + + @Override + public int updateGateRef(IrrBDGateRefData irrBDGateRefdata) { + int i = irrBDGateRefDataMapper.updateByPrimaryKeySelective(irrBDGateRefdata); + return i; + } + + @Override + public IrrBDGateRefData detailRef(String gateCode) { + IrrBDGateRefData res = irrBDGateRefDataMapper.selectByPrimaryKey(gateCode); + return res; + } + + @Override + public List list(IrrBDGate irrBDGate) { + List irrBDGates = irrBDGateMapper.selectByExample(irrBDGate); + return irrBDGates; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/HzGisPageServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/HzGisPageServiceImpl.java new file mode 100644 index 0000000..047280b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/HzGisPageServiceImpl.java @@ -0,0 +1,114 @@ +package org.springblade.reservoirbase.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.hzinfo.datasearch.analyse.domain.FieldsData; +import org.apache.commons.lang3.StringUtils; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.entity.SystemInfo; +import org.springblade.reservoirbase.service.IHzGisPageService; +import org.springblade.reservoirbase.service.IStRsrBsinDataService; +import org.springblade.reservoirbase.service.IStRsrBsinService; +import org.springblade.reservoirbase.vo.StRsrBsinVo; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class HzGisPageServiceImpl implements IHzGisPageService { + + @Value("${wd.gisUrl}") + private String gisUrl; + @Value("${wd.areaCodes}") + private String areaCodes; + @Value("${wd.areaCode}") + private String areaCode; + @Value("${wd.gisCodes}") + private String gisCode; + @Value("${wd.gisLevel}") + private String gisLevel; + @Value("${wd.stcd}") + private String stcd; + + + @Autowired + IStRsrBsinService stRsrBsinService; + @Autowired + IStRsrBsinDataService stRsrBsinDataService; + + + @Override + public SystemInfo getSystemInfo() { + SystemInfo info = new SystemInfo(); + Map gisInfo = new HashMap(); + if(!StringUtils.isEmpty(areaCodes) && !StringUtils.isEmpty(gisCode)){ + String[] areaCodeArr = areaCodes.split(","); + String[] gisCodes = gisCode.split(","); + int i = 0; + for (String s :areaCodeArr){ + if(!StringUtils.isEmpty(s) && gisCodes.length> i && !StringUtils.isEmpty(gisCodes[i])){ + gisInfo.put(s,gisCodes[i]); + } + i++; + } + } + info.setGisInfo(gisInfo); + info.setGisUrl(gisUrl); + info.setAreaCode(areaCode); + info.setGisLevel(gisLevel); + return info; + } + + @Override + public IPage queryReservoirs(String deptId, String name, IPage page) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + if(name!=null && !"".equals(name)) { + wrapper.like(StRsrBsin::getRtunm, name); + } + if(deptId!=null && !"".equals(deptId)) { + wrapper.like(StRsrBsin::getCreateDept, deptId); + } + IPage pageList = stRsrBsinService.page(page,wrapper); + List rows = bindReservoirs(pageList.getRecords()); + IPage pageModel = new Page<>(pageList.getCurrent(),pageList.getSize()); + pageModel.setRecords(rows); + pageModel.setPages(pageList.getPages()); + pageModel.setTotal(pageList.getTotal()); + return pageModel; + } + + private List bindReservoirs(List list) { + List stationVos = new ArrayList(); + for (StRsrBsin r :list) { + StRsrBsinVo vo = new StRsrBsinVo(); + BeanUtils.copyProperties(r,vo); + List values = stRsrBsinDataService.getRealData(r.getRscd()); + if(values!=null && !values.isEmpty()){ + for(FieldsData v:values) { + if (v.getSignage().equals("rz") && v.getValue() != null) { + String waterLevel=String.format("%.3f", Double.valueOf(v.getValue())); + vo.setWaterLevel(waterLevel); + BigDecimal nowVolume = stRsrBsinDataService.getWValue(r.getRscd(), new BigDecimal(v.getValue())); + String capacity=String.format("%.3f", nowVolume); + vo.setCapacity(capacity); + } + } + } + + stationVos.add(vo); + + } + return stationVos; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/IrrbireachServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/IrrbireachServiceImpl.java new file mode 100644 index 0000000..527ca1c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/IrrbireachServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.reservoirbase.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.reservoirbase.entity.Irrbireach; +import org.springblade.reservoirbase.mapper.IrrbireachMapper; +import org.springblade.reservoirbase.service.IirrbireachService; +import org.springframework.stereotype.Service; + +@Service +public class IrrbireachServiceImpl extends BaseServiceImpl implements IirrbireachService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinDataServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinDataServiceImpl.java new file mode 100644 index 0000000..df4973c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinDataServiceImpl.java @@ -0,0 +1,544 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.po.ComputeBaseStrategyPO; +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.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import org.apache.commons.lang3.StringUtils; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.reservoirbase.mapper.StZvarlBMapper; +import org.springblade.reservoirbase.service.IStRsrBsinDataService; +import org.springblade.ris_common.entity.QueryDateTypeEnum; +import org.springblade.ris_common.entity.Report; +import org.springblade.ris_common.entity.ReportData; +import org.springblade.ris_common.util.CommonUtil; +import org.springblade.ris_common.util.ReportDateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class StRsrBsinDataServiceImpl implements IStRsrBsinDataService { + + @Resource + StZvarlBMapper stZvarlBMapper; + + @Autowired + RealDataSearchClient realDataSearchClient; + + @Autowired + AnalyseDataSearchClient analyseDataSearchClient; + + @Override + public BigDecimal getWValue(String stcd, BigDecimal rz) { + List list=selectStZvarlB(stcd); + if(list!=null && !list.isEmpty()){ + return calcResp(list,rz); + }else{ + return BigDecimal.ZERO; + } + } + + + @Override + public BigDecimal calcResp(List list, BigDecimal rz) { + List data=calcMaxMin(list,rz); + if(data!=null && data.size()!=2){ + return BigDecimal.ZERO; + } + StZvarlB zvarlB0=data.get(0); + StZvarlB zvarlB1=data.get(1); + return calcRespTmp(zvarlB0, zvarlB1, rz); + } + + + @Override + public List selectStZvarlB(String stcd) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(StZvarlB::getRscd,stcd); + return stZvarlBMapper.selectList(wrapper); + } + + //获取小于等于rz最大值 和 大于rz最小值的两个点 + public List calcMaxMin(List list,BigDecimal rz){ + List data=new ArrayList<>(); + //求小于等于rz最大值 + StZvarlB max=calcMax(list,rz); + if(max!=null){ + data.add(max); + } + //求大于rz最小值 + StZvarlB min=calcMin(list,rz); + if(min!=null){ + data.add(min); + } + return data; + } + + @Override + public BigDecimal getRzData(String stcd,String col) { + List list=getRealData(stcd); + for(FieldsData data:list){ + if(col.equals(data.getSignage())){ + return new BigDecimal(data.getValue()); + } + } + return BigDecimal.ZERO; + } + + @Override + public List getHistoryData(String stcd, Date start, Date end,String type,Integer accessRules,String col) { + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(stcd==null || "".equals(stcd)){ + return null; + } + + if(dtEnum ==null){ + return null; + } + List result=new ArrayList<>(); + List signages=getSignages(stcd); + List list=listDataReport(start,end, dtEnum,stcd,accessRules,signages); + for(ReportData data:list){ + String signage=data.getStcd(); + FieldsData dd=new FieldsData(); + dd.setFieldName(data.getName()); + dd.setSignage(signage);//测站 换 属性 + dd.setValue(data.getVal()); + dd.setTime(data.getKeyStr()); + dd.setQ(0); + if(col!=null && col.equals(signage)) { + result.add(dd); + }else{ + result.add(dd); + } + } + return result; + } + + @Override + public Map getRzYearReport(String rscd, Date begin, Date end, String col,Integer sk) { + String type="day"; + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType(type); + if(rscd==null || "".equals(rscd)){ + return null; + } + //初始化报表 + Report report = new Report(); + report.initBaseReportMonth(31,12); + + List dataList = listDataReport(begin,end,dtEnum,rscd,6,col,sk); + for (int month = 0; month < 12; month++) { + List timeDataList =getDataByMonthStr(month,dataList); + 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(); +// } + if(value == null){ + value = "-"; + } + report.setBaseCell(reportData.getDay(), month, value); + } + dealMaxMin(report,month,timeDataList); + } + Map yearData=dealYearMaxMin(dataList); + Map res=new HashMap<>(); + res.put("monthData",report); + res.put("yearData",yearData); + return res; + } + + @Override + public List> getRzWDrp(String rscd,Date begin, Date end) { + //检查数据是否正常并转化 + final QueryDateTypeEnum dtEnum = CommonUtil.checkType("hour"); + if(rscd==null || "".equals(rscd)){ + return null; + } + + List list=selectStZvarlB(rscd); + + List signages=getSignages(rscd); + //初始化报表 + List dataList = listDataReport(begin,end,dtEnum,rscd,6,signages); + return dealRzWDrpReportData(dataList,list); + } + + List> dealRzWDrpReportData(List dataList,List list){ + + if(dataList==null || dataList.isEmpty()){ + return null; + } + Map> res=new HashMap<>(); + for(ReportData data:dataList){ + String keyStr=data.getKeyStr(); + Map tmp=res.get(keyStr); + if(tmp==null){ + tmp =new HashMap<>(); + } + String signage=data.getStcd(); + String val=data.getVal(); + tmp.put("tm",keyStr); + if(val==null || "".equals(val)){ + val ="0"; + } + tmp.put(signage,val); + if("rz".equals(signage)){ + if(list!=null && !list.isEmpty()){ + tmp.put("w", calcResp(list,new BigDecimal(val))); + }else { + tmp.put("w", "0"); + } + } + res.put(keyStr,tmp); + } + + List> result = new ArrayList<>(); + if(res!=null && !res.isEmpty()) { + for (Map.Entry> entry : res.entrySet()) { + result.add(entry.getValue()); + } + } + return result; + } + + List getDataByMonthStr(int month,List dataList){ + int tmpMonth=month+1; + return dataList.stream().filter(data -> data.getMonth() == tmpMonth).collect(Collectors.toList()); + } + + private Map dealYearMaxMin(List timeDataList){ + if(timeDataList==null || timeDataList.isEmpty()){ + return null; + } + Map yearData=new HashMap<>(); + Optional max = timeDataList.stream().max(Comparator.comparingDouble(ReportData::getValue)); + ReportData maxObj = max.get(); + yearData.put("max", String.valueOf(maxObj.getValue())); + yearData.put("maxDate",ReportDateUtil.getYMDStr(maxObj.getKeyDate())); + + Optional min = timeDataList.stream().min(Comparator.comparingDouble(ReportData::getValue)); + ReportData minObj = min.get(); + yearData.put("min", String.valueOf(minObj.getValue())); + yearData.put("minDate",ReportDateUtil.getYMDStr(minObj.getKeyDate())); + + Double avgs = timeDataList.stream().mapToDouble(ReportData::getValue).average().orElse(0D); + BigDecimal avg=new BigDecimal(String.valueOf(avgs)).setScale(3,BigDecimal.ROUND_HALF_UP); + yearData.put("avg",String.valueOf(avg)); + return yearData; + } + + + private void dealMaxMin(Report report ,int i,List timeDataList){ + if(timeDataList==null || timeDataList.isEmpty()){ + return; + } + Optional max = timeDataList.stream().max(Comparator.comparingDouble(ReportData::getValue)); + ReportData maxObj = max.get(); + Double maxValue=maxObj.getValue(); + report.setBaseCell("max", i, String.valueOf(maxValue)); + report.setBaseCell("maxDate", i, ReportDateUtil.getYMDStr(maxObj.getKeyDate())); + + Optional min = timeDataList.stream().min(Comparator.comparingDouble(ReportData::getValue)); + ReportData minObj = min.get(); + Double minValue=minObj.getValue(); + report.setBaseCell("min", i, String.valueOf(minValue)); + report.setBaseCell("minDate", i, ReportDateUtil.getYMDStr(minObj.getKeyDate())); + + Double avgs = timeDataList.stream().mapToDouble(ReportData::getValue).average().orElse(0D); + BigDecimal avg=new BigDecimal(String.valueOf(avgs)).setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("avg", i, String.valueOf(avg)); + + BigDecimal range=new BigDecimal(maxValue).subtract(new BigDecimal(minValue)); + BigDecimal tmpRange=range.setScale(3,BigDecimal.ROUND_HALF_UP); + report.setBaseCell("range", i, String.valueOf(tmpRange));//极差 + + } + + + private List listDataReport(Date begin,Date endSt,QueryDateTypeEnum dtEnum,String deviceCode, + Integer accessRules,String col, Integer sk) { + + //周期类型: 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()); + + return getDataByDeviceCode(deviceCode, accessRules, saveTimeType, start, end, col,sk); + } + + + List getDataByDeviceCode(String deviceCode,Integer accessRules,Integer saveTimeType, + LocalDateTime start,LocalDateTime end,String col, Integer sk){ + List reportData=new ArrayList<>(); + AnalyseCodeByAnalyseDataPO po=new AnalyseCodeByAnalyseDataPO(); + po.setDeviceCode(deviceCode); + + List 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> result=analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); + if(result==null){ + return null; + } + List datas=result.getData(); + if(datas==null || datas.isEmpty()){ + return null; + } + for(AnalyzeDataConditionVO vo:datas){ + if(vo.getSignage().equals(col)) { + List dataTaosVOs=vo.getList(); + for(AnalyseDataTaosVO vv:dataTaosVOs) { + ReportData data=getFilterData(vv,deviceCode,vo.getName(),sk,saveTimeType); + if(data!=null) { + reportData.add(data); + } + } + } + } + return reportData; + } + + private ReportData getFilterData(AnalyseDataTaosVO vv,String deviceCode,String name,Integer sk,Integer saveTimeType){ + ReportData data=null; + if(sk!=null && saveTimeType.intValue() <= 2){ + int hour=CommonUtil.getHour(vv.getTs()); + if (sk.intValue() == hour) { + data = new ReportData(); + } + }else{ + data=new ReportData(); + } + if(data!=null) { + data.setKeyStr(CommonUtil.getKeyBySaveTimeType(vv.getTs(), saveTimeType)); + data.setKeyDate(vv.getTs()); + data.setStcd(deviceCode); + data.setVal(vv.getVal()); + data.setName(name); + data.setMonth(CommonUtil.getMonth(vv.getTs())); + data.setDay(CommonUtil.getDay(vv.getTs())); + } + return data; + } + + + private List listDataReport(Date begin,Date endSt, QueryDateTypeEnum dtEnum, String deviceCode, Integer accessRules, List signages) { + //周期类型: 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()); + + return getDataByDeviceCode(deviceCode,accessRules,saveTimeType,start,end,signages); + } + + List getDataByDeviceCode(String deviceCode,Integer accessRules,Integer saveTimeType, + LocalDateTime start,LocalDateTime end,List signages){ + List reportData=new ArrayList<>(); + List datas=getAnalyzeDataConditionVO(deviceCode, accessRules, saveTimeType, start, end,signages); + if(datas!=null && !datas.isEmpty()) { + for (AnalyzeDataConditionVO vo : datas) { + List dataTaosVOs = vo.getList(); + for (AnalyseDataTaosVO vv : dataTaosVOs) { + ReportData data = new ReportData(); + data.setKeyStr(CommonUtil.getKeyBySaveTimeType(vv.getTs(), saveTimeType)); + data.setStcd(vo.getSignage());//测站变成属性值 + data.setVal(vv.getVal()); + data.setName(vo.getName()); + reportData.add(data); + } + } + } + return reportData; + } + + List getAnalyzeDataConditionVO(String deviceCode,Integer accessRules,Integer saveTimeType, + LocalDateTime start,LocalDateTime end,List signages){ + AnalyseCodeByAnalyseDataPO po=new AnalyseCodeByAnalyseDataPO(); + po.setDeviceCode(deviceCode); + + List signboardConditions=new ArrayList<>(); + + for(AnalyzeInstanceFieldVO vo:signages) { + AnalyzeDataConditionPO conditionPO = new AnalyzeDataConditionPO(); + conditionPO.setBeginTime(start); + conditionPO.setEndTime(end); + conditionPO.setSignages(vo.getSignage()); +// conditionPO.setKeepFigures(3); + conditionPO.setAccessRules(accessRules); + conditionPO.setSaveTimeType(saveTimeType); + conditionPO.setTimeInterval(1); + conditionPO.setFull(1); + signboardConditions.add(conditionPO); + } + + po.setSignboardConditions(signboardConditions); + + Result> result=analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); + if(result==null){ + return null; + } + List datas=result.getData(); + if(datas==null || datas.isEmpty()){ + return null; + } + return datas; + } + + + @Override + public List getRealData(String stcd){ + RealDataSearchPO po=new RealDataSearchPO(); + po.setAnalyzeCode(stcd); + List list=getSignages(stcd); + if(list==null || list.isEmpty()){ + return null; + } + List signages=new ArrayList<>(); + for(AnalyzeInstanceFieldVO vo:list){ + signages.add(vo.getSignage()); + } + po.setSignages(signages); + Result> result=realDataSearchClient.getRealDataByDeviceCode(po); + List data=result.getData(); + return data; + } + + @Override + public List getSignages(String stcd){ + //查询列 + Result> result=analyseDataSearchClient.getInstanceFieldByAnalyseCode(stcd,1,""); + List analyzeInstanceFieldVOS=result.getData(); + return analyzeInstanceFieldVOS; + } + + StZvarlB calcMax(List list,BigDecimal rz){ + List maxList=new ArrayList<>(); + for (StZvarlB stZvarlB:list){ + BigDecimal tmpRz=stZvarlB.getRz(); + if(tmpRz.compareTo(rz)<=0){ + maxList.add(stZvarlB); + } + } + if(maxList!=null && !maxList.isEmpty()){ + return maxList.get(maxList.size()-1); + }else{ + return null; + } + } + + StZvarlB calcMin(List list,BigDecimal rz){ + List minList=new ArrayList<>(); + for (StZvarlB stZvarlB:list){ + BigDecimal tmpRz=stZvarlB.getRz(); + if(tmpRz.compareTo(rz)>0){ + minList.add(stZvarlB); + } + } + if(minList!=null && !minList.isEmpty()){ + return minList.get(0); + }else{ + return null; + } + } + + + + private BigDecimal calcRespTmp(StZvarlB zvarlB0,StZvarlB zvarlB1,BigDecimal rz){ + try{ + BigDecimal data1=rz.subtract(zvarlB0.getRz()); + BigDecimal data2=zvarlB1.getRz().subtract(zvarlB0.getRz()); + BigDecimal data3 = zvarlB1.getW().subtract(zvarlB0.getW()); + Double tmp=Math.abs(data3.doubleValue()); + BigDecimal data4=data1.divide(data2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(tmp)); + return zvarlB0.getW().add(data4).setScale(2, BigDecimal.ROUND_HALF_UP); + }catch (Exception e){ + return new BigDecimal("0"); + } + } + + //按时间范围求最大值、最小值 + public List queryMaxOrMin(String deviceCode, Date startTime, Date endTime, + Integer calcType, String col) { + List res=new ArrayList<>(); + + List 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> result=analyseDataSearchClient.getComputeBaseStrategy(po); + if(result==null){ + return res; + } + List datas=result.getData(); + + if(datas!=null && !datas.isEmpty()){ + for(AnalyzeDataConditionVO vo:datas) { + if(col.equals(vo.getSignage()) && vo.getVo()!=null) { + ReportData reportData=new ReportData(); + String val=vo.getVo().getVal(); + String tm=vo.getVo().getTs(); + reportData.setKeyStr(tm); + reportData.setStcd(deviceCode); + reportData.setVal(val); + res.add(reportData); + } + } + } + + return res; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinServiceImpl.java new file mode 100644 index 0000000..c20f2f8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrBsinServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.reservoirbase.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.mapper.StRsrBsinMapper; +import org.springblade.reservoirbase.service.IStRsrBsinService; +import org.springframework.stereotype.Service; + +@Service +public class StRsrBsinServiceImpl extends BaseServiceImpl implements IStRsrBsinService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrHychServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrHychServiceImpl.java new file mode 100644 index 0000000..b087722 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRsrHychServiceImpl.java @@ -0,0 +1,55 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StRsrHych; +import org.springblade.reservoirbase.mapper.StRsrHychMapper; +import org.springblade.reservoirbase.service.IStRsrHychService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class StRsrHychServiceImpl implements IStRsrHychService { + @Resource + StRsrHychMapper stRsrHychMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stRsrHychMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stRsrHychMapper.selectList(wrapper); + } + + @Override + public StRsrHych getOne(QueryWrapper wrapper) { + return stRsrHychMapper.selectOne(wrapper); + } + + @Override + public boolean save(StRsrHych entity) { + int count=stRsrHychMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StRsrHych entity) { + LambdaUpdateWrapper wrapper=new LambdaUpdateWrapper(); + wrapper.eq(StRsrHych::getRscd,entity.getRscd()); + int count=stRsrHychMapper.update(entity,wrapper); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=stRsrHychMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRtuParamServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRtuParamServiceImpl.java new file mode 100644 index 0000000..cdb3e22 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StRtuParamServiceImpl.java @@ -0,0 +1,53 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StRtuParam; +import org.springblade.reservoirbase.mapper.StRtuParamMapper; +import org.springblade.reservoirbase.service.IStRtuParamService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Service +public class StRtuParamServiceImpl implements IStRtuParamService { + @Resource + StRtuParamMapper stRtuParamMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stRtuParamMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stRtuParamMapper.selectList(wrapper); + } + + @Override + public StRtuParam getOne(QueryWrapper wrapper) { + return stRtuParamMapper.selectOne(wrapper); + } + + @Override + public boolean save(StRtuParam entity) { + int count=stRtuParamMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StRtuParam entity) { + int count=stRtuParamMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=stRtuParamMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StZvarlBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StZvarlBServiceImpl.java new file mode 100644 index 0000000..b6dde02 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/StZvarlBServiceImpl.java @@ -0,0 +1,133 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.StZvarlB; +import org.springblade.reservoirbase.mapper.StZvarlBMapper; +import org.springblade.reservoirbase.service.IStZvarlBService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +@Service +public class StZvarlBServiceImpl implements IStZvarlBService { + @Resource + StZvarlBMapper stZvarlBMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stZvarlBMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stZvarlBMapper.selectList(wrapper); + } + + @Override + public BigDecimal calcResp(List list, BigDecimal rz) { + List data = this.calcMaxMin(list, rz); + if (data != null && data.size() != 2) { + return BigDecimal.ZERO; + } else { + StZvarlB zvarlB0 = (StZvarlB)data.get(0); + StZvarlB zvarlB1 = (StZvarlB)data.get(1); + return this.calcRespTmp(zvarlB0, zvarlB1, rz); + } + } + + public List calcMaxMin(List list, BigDecimal rz) { + List data = new ArrayList(); + StZvarlB max = this.calcMax(list, rz); + if (max != null) { + data.add(max); + } + + StZvarlB min = this.calcMin(list, rz); + if (min != null) { + data.add(min); + } + + return data; + } + + StZvarlB calcMax(List list, BigDecimal rz) { + List maxList = new ArrayList(); + Iterator var4 = list.iterator(); + + while(var4.hasNext()) { + StZvarlB stZvarlB = (StZvarlB)var4.next(); + BigDecimal tmpRz = stZvarlB.getRz(); + if (tmpRz.compareTo(rz) <= 0) { + maxList.add(stZvarlB); + } + } + + if (maxList != null && !maxList.isEmpty()) { + return (StZvarlB)maxList.get(maxList.size() - 1); + } else { + return null; + } + } + + StZvarlB calcMin(List list, BigDecimal rz) { + List minList = new ArrayList(); + Iterator var4 = list.iterator(); + + while(var4.hasNext()) { + StZvarlB stZvarlB = (StZvarlB)var4.next(); + BigDecimal tmpRz = stZvarlB.getRz(); + if (tmpRz.compareTo(rz) > 0) { + minList.add(stZvarlB); + } + } + + if (minList != null && !minList.isEmpty()) { + return (StZvarlB)minList.get(0); + } else { + return null; + } + } + + private BigDecimal calcRespTmp(StZvarlB zvarlB0, StZvarlB zvarlB1, BigDecimal rz) { + try { + BigDecimal data1 = rz.subtract(zvarlB0.getRz()); + BigDecimal data2 = zvarlB1.getRz().subtract(zvarlB0.getRz()); + BigDecimal data3 = zvarlB1.getW().subtract(zvarlB0.getW()); + Double tmp = Math.abs(data3.doubleValue()); + BigDecimal data4 = data1.divide(data2).multiply(new BigDecimal(tmp)); + return zvarlB0.getW().add(data4).setScale(2, 4); + } catch (Exception var9) { + return new BigDecimal("0"); + } + } + + @Override + public StZvarlB getOne(QueryWrapper wrapper) { + return stZvarlBMapper.selectOne(wrapper); + } + + @Override + public boolean save(StZvarlB entity) { + int count=stZvarlBMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StZvarlB entity) { + int count=stZvarlBMapper.updateById(entity); + return count>0; + } + + @Override + public boolean deleteLogic(@NotEmpty List ids) { + int count=stZvarlBMapper.deleteBatchIds(ids); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/ThreeDutyPersonServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/ThreeDutyPersonServiceImpl.java new file mode 100644 index 0000000..be67346 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/ThreeDutyPersonServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.reservoirbase.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.reservoirbase.entity.ThreeDutyPerson; +import org.springblade.reservoirbase.mapper.ThreeDutyPersonMapper; +import org.springblade.reservoirbase.service.IThreeDutyPersonService; +import org.springframework.stereotype.Service; + +@Service +public class ThreeDutyPersonServiceImpl extends BaseServiceImpl implements IThreeDutyPersonService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WeatherServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WeatherServiceImpl.java new file mode 100644 index 0000000..756649d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WeatherServiceImpl.java @@ -0,0 +1,311 @@ +package org.springblade.reservoirbase.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.springblade.reservoirbase.config.Constants; +import org.springblade.reservoirbase.entity.CityInfo; +import org.springblade.reservoirbase.entity.Weather; +import org.springblade.reservoirbase.service.IWeatherService; +import org.springblade.reservoirbase.util.HttpRequestUtils; +import org.springblade.reservoirbase.util.HttpUtil; +import org.springblade.reservoirbase.util.SignUtil; +import org.springblade.reservoirbase.util.StringUtils; +import org.springframework.stereotype.Service; + +import java.io.ByteArrayInputStream; +import java.io.UnsupportedEncodingException; +import java.util.*; + +@Service +public class WeatherServiceImpl implements IWeatherService { + public CityInfo getWeatherInfo(String province, String cityname) throws UnsupportedEncodingException, DocumentException{ + String urlsk = "http://flash.weather.com.cn/wmaps/xml/" + province + ".xml"; + String retString = HttpRequestUtils.sendGet(urlsk, ""); + String xmlHeader = ""; + System.out.println(retString); + return parseXml(xmlHeader + retString, cityname); + } + + public List gainWeatherInfo(String province, String cityname, String cityen) { + // 中华万年历:通过城市id获得一周(昨天以及后面五天)天气数据,xml文件数据 (北京citykey=101010100) +// String url = "http://wthrcdn.etouch.cn/WeatherApi?citykey=" + cityen; + String url = "http://wthrcdn.etouch.cn/WeatherApi?city=" + cityname; + String xmlString = HttpRequestUtils.sendXmlGet(url); + List res = parseXMLInfo(xmlString, province); + return res; + } + + public CityInfo getWeatherInfo(String province, String cityname, String cityen) + throws UnsupportedEncodingException, DocumentException { + // District district = energyMobileMapper.getDistrictInfo(cityen); + CityInfo result = new CityInfo(); + // 其中列出该省各个市的天气数据,beijing.xml就是各区的数据(hunan.xml、guangdong.xml) + String urlsk = "http://flash.weather.com.cn/wmaps/xml/" + province + ".xml"; + String retString = HttpRequestUtils.sendGet(urlsk, ""); + String xmlHeader = ""; + result = parseXml(xmlHeader + retString, cityname); + if (result.gettemNow() == null || result.gettemNow() == "" || (!StringUtils.isNumeric(result.gettemNow()))) { + // 中央天气预报(测试此链接返回空) + urlsk = "http://weather.51wnl.com/weatherinfo/GetMoreWeather?cityCode=" +cityen + + "&weatherType=1"; + retString = HttpRequestUtils.sendGet(urlsk, ""); + Map maps = (Map) JSON.parse(retString); + String json = maps.get("weatherinfo").toString(); + Map map2 = (Map) JSON.parse(json); + result.settemNow(map2.get("temp").toString()); + } + return result; + } + + @Override + public List gainNewWeatherInfo(String location) { + + if(Constants.WEATHERS.get("weathers")!=null){ + return Constants.WEATHERS.get("weathers"); + } + + String urlsk ="https://devapi.qweather.com/v7/weather/7d"; + Map paramMap = new HashMap<>(6); + paramMap.put("location", location); + paramMap.put("lang", "zh"); + String response = getResponse(urlsk, getRequestParam(paramMap)); + Map maps = (Map) JSON.parse(response); + JSONArray jsonArray=JSONArray.parseArray(JSONObject.toJSONString(maps.get("daily"))); + + //{"cloud":"25","fxDate":"2022-11-03","humidity":"73","iconDay":"100", + // "iconNight":"150","moonPhase":"盈凸月","moonPhaseIcon":"803","moonrise":"15:04", + // "moonset":"01:36","precip":"0.0","pressure":"956","sunrise":"06:51","sunset":"18:03", + // "tempMax":"24","tempMin":"10","textDay":"晴","textNight":"晴","uvIndex":"3","vis":"25", + // "wind360Day":"0","wind360Night":"0","windDirDay":"北风","windDirNight":"北风","windScaleDay":"1-2", + // "windScaleNight":"1-2","windSpeedDay":"3","windSpeedNight":"3"} + List list=new ArrayList<>(); + for(int i=0; i paramMap = new HashMap<>(6); + paramMap.put("location", location); + paramMap.put("lang", "zh"); + String response = getResponse(urlsk, getRequestParam(paramMap)); + Map maps = (Map) JSON.parse(response); + Map now = (Map) JSON.parse(JSONObject.toJSONString(maps.get("now"))); + CityInfo cityInfo=new CityInfo(); + cityInfo.settemNow(String.valueOf(now.get("temp"))); + cityInfo.setstateDetailed(String.valueOf(now.get("text"))); + cityInfo.setwindDir(String.valueOf(now.get("windDir"))); + cityInfo.setwindState(now.get("windScale")+"级"); + cityInfo.sethumidity(now.get("humidity")+"%"); + //存入缓存 + Constants.CITY_INFO.put("cityinfo",cityInfo); + + return cityInfo; + } + + protected Multimap getRequestParam(Map baseParam) { + baseParam.put("t", String.valueOf(System.currentTimeMillis() / 1000)); + baseParam.put("username", "HE2211021454421496"); + String signature = SignUtil.getSignature(baseParam, "6613aa913f4740baa8a4e1c29cee7623"); + baseParam.put("sign", signature); + return Multimaps.forMap(baseParam); + } + + protected String getResponse(String url, Multimap requestParam) { + Map headerMap = new HashMap<>(2); + headerMap.put("author", "笑乐"); + headerMap.put("v", "1.0"); + HttpUtil http = HttpUtil.getHttp(url, requestParam, headerMap); + http.setConnectTimeout(5000); + http.setSocketTimeout(7000); + return http.execute().getString(); + } + + private List parseXMLInfo(String xmlInfo, String province) { + boolean daySign = true; + Calendar calendar = new GregorianCalendar(); + calendar.setTime(new Date()); + if(calendar.get(Calendar.HOUR_OF_DAY) >= 7 && calendar.get(Calendar.HOUR_OF_DAY) < 19) + daySign = true; + else + daySign = false; + + List res = new ArrayList(6); + SAXReader saxReader = new SAXReader(); + Document document = null; + try { + document = saxReader.read(new ByteArrayInputStream(xmlInfo.getBytes("utf-8"))); + Element root = document.getRootElement(); + String location = province + root.elementText("city") + "市"; + String humidity = root.elementText("shidu"); + String nowTemperature = root.elementText("wendu"); + String updateTime = root.elementText("updatetime"); + Element yesterday = root.element("yesterday"); + Weather origin = new Weather(); + origin.setProvince(province); + origin.setLocation(location); + origin.setHumidity(humidity); + origin.setNowTemperature(nowTemperature); + origin.setUpdateTime(updateTime); + res.add(origin); + for (int i = 0; i < 5; i++) { + Weather temp = (Weather)origin.clone(); + res.add(temp); + } + + if(daySign) { + res.get(0).setWeather(yesterday.element("day_1").elementText("type_1")); + res.get(0).setWindDirection(yesterday.element("day_1").elementText("fx_1")); + res.get(0).setWindLevel(yesterday.element("day_1").elementText("fl_1")); + }else { + res.get(0).setWeather(yesterday.element("night_1").elementText("type_1")); + res.get(0).setWindDirection(yesterday.element("night_1").elementText("fx_1")); + res.get(0).setWindLevel(yesterday.element("night_1").elementText("fl_1")); + } + res.get(0).setHighTemperature(yesterday.elementText("high_1")); + res.get(0).setLowTemperature(yesterday.elementText("low_1")); + res.get(0).setDateStr(yesterday.elementText("date_1")); + + + List forecast = root.element("forecast").elements(); + int i = 1; + for (Element element : forecast) { + if(daySign) { + res.get(i).setWeather(element.element("day").elementText("type")); + res.get(i).setWindDirection(element.element("day").elementText("fengxiang")); + res.get(i).setWindLevel(element.element("day").elementText("fengli")); + }else { + res.get(i).setWeather(element.element("night").elementText("type")); + res.get(i).setWindDirection(element.element("night").elementText("fengxiang")); + res.get(i).setWindLevel(element.element("night").elementText("fengli")); + } + res.get(i).setHighTemperature(element.elementText("high")); + res.get(i).setLowTemperature(element.elementText("low")); + res.get(i).setDateStr(element.elementText("date")); + i++; + } + + } catch (Exception e) { + e.printStackTrace(); + } + return res; + } + + private CityInfo parseXml(String data, String cityname) throws UnsupportedEncodingException, DocumentException{ + SAXReader saxReader = new SAXReader(); + if(data.contains("风<")){ + data = data.replaceAll("风<","风小于"); + } + if(data.contains("风>")){ + data = data.replaceAll("风>","风大于"); + } + + if(data.contains("级级")){ + data = data.replaceAll("级级","级"); + } + + Document document = null; + document = saxReader.read(new ByteArrayInputStream(data.getBytes("utf-8"))); + Element root = document.getRootElement(); + //List rootchilds = root.elements(); + //root = rootchilds.get(0); + for (@SuppressWarnings("unchecked") + Iterator cityElements = root.elementIterator(); cityElements.hasNext();) { + Element cityElement = cityElements.next(); + Attribute attrCityName = cityElement.attribute("cityname"); + if (cityname.compareTo(attrCityName.getValue()) != 0){ + continue; + } + else + return parseCity(cityElement); + } + return new CityInfo(); + } + + private CityInfo parseCity(Element cityElement){ + CityInfo ci = new CityInfo(); + for (@SuppressWarnings("unchecked") + Iterator groupAttributes = cityElement.attributeIterator(); groupAttributes.hasNext();) { + Attribute groupAttribute = groupAttributes.next(); + switch (groupAttribute.getName()) { + case "cityX": + ci.setcityX(groupAttribute.getValue()); + break; + case "cityY": + ci.setcityY(groupAttribute.getValue()); + case "cityname": + ci.setcityname(groupAttribute.getValue()); + break; + case "centername": + ci.setcentername(groupAttribute.getValue()); + break; + case "pyName": + ci.setpyName(groupAttribute.getValue()); + break; + case "state1": + ci.setstate1(groupAttribute.getValue()); + break; + case "state2": + ci.setstate2(groupAttribute.getValue()); + break; + case "stateDetailed": + ci.setstateDetailed(groupAttribute.getValue()); + break; + case "tem1": + ci.settem1(groupAttribute.getValue()); + break; + case "tem2": + ci.settem2(groupAttribute.getValue()); + break; + case "temNow": + ci.settemNow(groupAttribute.getValue()); + break; + case "windState": + ci.setwindState(groupAttribute.getValue()); + break; + case "windDir": + ci.setwindDir(groupAttribute.getValue()); + break; + case "windPower": + ci.setwindPower(groupAttribute.getValue()); + break; + case "humidity": + ci.sethumidity(groupAttribute.getValue()); + break; + case "time": + ci.settime(groupAttribute.getValue()); + break; + case "url": + ci.seturl(groupAttribute.getValue()); + break; + } + } + return ci; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqAdlrrBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqAdlrrBServiceImpl.java new file mode 100644 index 0000000..f8b800c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqAdlrrBServiceImpl.java @@ -0,0 +1,52 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqAdlrrB; +import org.springblade.reservoirbase.mapper.WqAdlrrBMapper; +import org.springblade.reservoirbase.service.IWqAdlrrBService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class WqAdlrrBServiceImpl implements IWqAdlrrBService { + @Resource + WqAdlrrBMapper wqAdlrrBMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return wqAdlrrBMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return wqAdlrrBMapper.selectList(wrapper); + } + + @Override + public WqAdlrrB getOne(QueryWrapper wrapper) { + return wqAdlrrBMapper.selectOne(wrapper); + } + + @Override + public boolean save(WqAdlrrB entity) { + int count=wqAdlrrBMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(WqAdlrrB entity) { + int count=wqAdlrrBMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=wqAdlrrBMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrinfBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrinfBServiceImpl.java new file mode 100644 index 0000000..12016cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrinfBServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.reservoirbase.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.reservoirbase.entity.WqLrinfB; +import org.springblade.reservoirbase.mapper.WqLrinfBMapper; +import org.springblade.reservoirbase.service.IWqLrinfBService; +import org.springframework.stereotype.Service; + +@Service +public class WqLrinfBServiceImpl extends BaseServiceImpl implements IWqLrinfBService { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrsrBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrsrBServiceImpl.java new file mode 100644 index 0000000..ac57710 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqLrsrBServiceImpl.java @@ -0,0 +1,52 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqLrsrB; +import org.springblade.reservoirbase.mapper.WqLrsrBMapper; +import org.springblade.reservoirbase.service.IWqLrsrBService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class WqLrsrBServiceImpl implements IWqLrsrBService { + @Resource + WqLrsrBMapper wqLrsrBMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return wqLrsrBMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return wqLrsrBMapper.selectList(wrapper); + } + + @Override + public WqLrsrB getOne(QueryWrapper wrapper) { + return wqLrsrBMapper.selectOne(wrapper); + } + + @Override + public boolean save(WqLrsrB entity) { + int count=wqLrsrBMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(WqLrsrB entity) { + int count=wqLrsrBMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=wqLrsrBMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqWrrlrrBServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqWrrlrrBServiceImpl.java new file mode 100644 index 0000000..ed898fc --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/service/impl/WqWrrlrrBServiceImpl.java @@ -0,0 +1,54 @@ +package org.springblade.reservoirbase.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.reservoirbase.entity.WqWrrlrrB; +import org.springblade.reservoirbase.entity.WqWrrlrrB; +import org.springblade.reservoirbase.mapper.WqWrrlrrBMapper; +import org.springblade.reservoirbase.service.IWqWrrlrrBService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Service +public class WqWrrlrrBServiceImpl implements IWqWrrlrrBService { + @Resource + WqWrrlrrBMapper wqWrrlrrBMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return wqWrrlrrBMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return wqWrrlrrBMapper.selectList(wrapper); + } + + @Override + public WqWrrlrrB getOne(QueryWrapper wrapper) { + return wqWrrlrrBMapper.selectOne(wrapper); + } + + @Override + public boolean save(WqWrrlrrB entity) { + int count=wqWrrlrrBMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(WqWrrlrrB entity) { + int count=wqWrrlrrBMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=wqWrrlrrBMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/task/WeatherTask.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/task/WeatherTask.java new file mode 100644 index 0000000..87cbcc1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/task/WeatherTask.java @@ -0,0 +1,19 @@ +package org.springblade.reservoirbase.task; + +import org.springblade.reservoirbase.config.Constants; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class WeatherTask { + + @Scheduled(cron = "0 0 1 * * ?") // 每天凌晨1点执行 + public void resetCityInfo(){ + Constants.CITY_INFO.clear(); + } + + @Scheduled(cron = "0 0/20 * * * ?")// 每隔20分钟执行 + public void resetWeather(){ + Constants.WEATHERS.clear(); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/Encodes.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/Encodes.java new file mode 100644 index 0000000..c2365f1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/Encodes.java @@ -0,0 +1,152 @@ +/** + * Copyright (c) 2005-2012 springside.org.cn + */ +package org.springblade.reservoirbase.util; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.Hex; +import org.apache.commons.lang3.StringEscapeUtils; +import org.springblade.core.tool.utils.Exceptions; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; + +/** + * 封装各种格式的编码解码工具类. + * 1.Commons-Codec的 hex/base64 编码 + * 2.自制的base62 编码 + * 3.Commons-Lang的xml/html escape + * 4.JDK提供的URLEncoder + * @author calvin + * @version 2013-01-15 + */ +public class Encodes { + + private static final String DEFAULT_URL_ENCODING = "UTF-8"; + private static final char[] BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); + + /** + * Hex编码. + */ + public static String encodeHex(byte[] input) { + return new String(Hex.encodeHex(input)); + } + + /** + * Hex解码. + */ + public static byte[] decodeHex(String input) { + try { + return Hex.decodeHex(input.toCharArray()); + } catch (DecoderException e) { + throw Exceptions.unchecked(e); + } + } + + /** + * Base64编码. + */ + public static String encodeBase64(byte[] input) { + return new String(Base64.encodeBase64(input)); + } + + /** + * Base64编码. + */ + public static String encodeBase64(String input) { + try { + return new String(Base64.encodeBase64(input.getBytes(DEFAULT_URL_ENCODING))); + } catch (UnsupportedEncodingException e) { + return ""; + } + } + +// /** +// * Base64编码, URL安全(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548). +// */ +// public static String encodeUrlSafeBase64(byte[] input) { +// return Base64.encodeBase64URLSafe(input); +// } + + /** + * Base64解码. + */ + public static byte[] decodeBase64(String input) { + return Base64.decodeBase64(input.getBytes()); + } + + /** + * Base64解码. + */ + public static String decodeBase64String(String input) { + try { + return new String(Base64.decodeBase64(input.getBytes()), DEFAULT_URL_ENCODING); + } catch (UnsupportedEncodingException e) { + return ""; + } + } + + /** + * Base62编码。 + */ + public static String encodeBase62(byte[] input) { + char[] chars = new char[input.length]; + for (int i = 0; i < input.length; i++) { + chars[i] = BASE62[((input[i] & 0xFF) % BASE62.length)]; + } + return new String(chars); + } + + /** + * Html 转码. + */ + public static String escapeHtml(String html) { + return StringEscapeUtils.escapeHtml4(html); + } + + /** + * Html 解码. + */ + public static String unescapeHtml(String htmlEscaped) { + return StringEscapeUtils.unescapeHtml4(htmlEscaped); + } + + /** + * Xml 转码. + */ + public static String escapeXml(String xml) { + return StringEscapeUtils.escapeXml10(xml); + } + + /** + * Xml 解码. + */ + public static String unescapeXml(String xmlEscaped) { + return StringEscapeUtils.unescapeXml(xmlEscaped); + } + + /** + * URL 编码, Encode默认为UTF-8. + */ + public static String urlEncode(String part) { + try { + return URLEncoder.encode(part, DEFAULT_URL_ENCODING); + } catch (UnsupportedEncodingException e) { + throw Exceptions.unchecked(e); + } + } + + /** + * URL 解码, Encode默认为UTF-8. + */ + public static String urlDecode(String part) { + + try { + return URLDecoder.decode(part, DEFAULT_URL_ENCODING); + } catch (UnsupportedEncodingException e) { + throw Exceptions.unchecked(e); + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpRequestUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpRequestUtils.java new file mode 100644 index 0000000..64be01b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpRequestUtils.java @@ -0,0 +1,168 @@ +package org.springblade.reservoirbase.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; +import java.util.zip.GZIPInputStream; + +public class HttpRequestUtils { + /** + * 向指定URL发送GET方法的请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("Accept-Charset", "utf-8"); + connection.setRequestProperty("contentType", "utf-8"); + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader( + connection.getInputStream(), "utf-8")); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url + * 发送请求的 URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!"+e); + e.printStackTrace(); + } + //使用finally块来关闭输出流、输入流 + finally{ + try{ + if(out!=null){ + out.close(); + } + if(in!=null){ + in.close(); + } + } + catch(IOException ex){ + ex.printStackTrace(); + } + } + return result; + } + + /** + * 向指定URL用GET发送xml请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return res 返回响应内容 + */ + public static String sendXmlGet(String url) { + String result = ""; + BufferedReader br = null; + try { + URL realUrl = new URL(url); + HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection(); + conn.setReadTimeout(5*1000); + conn.setRequestMethod("GET"); + br = new BufferedReader(new InputStreamReader(new GZIPInputStream(conn.getInputStream()),"UTF-8"));//使用GZIPInputStream解压缩 + String temp = null; + while((temp = br.readLine()) != null) { + result += temp; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (br != null) { + br.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpUtil.java new file mode 100644 index 0000000..e8bb5cf --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/HttpUtil.java @@ -0,0 +1,468 @@ +package org.springblade.reservoirbase.util; + +import com.google.common.base.Strings; +import com.google.common.collect.Multimap; +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.StatusLine; +import org.apache.http.client.CookieStore; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.EntityBuilder; +import org.apache.http.client.methods.*; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.client.utils.HttpClientUtils; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.config.SocketConfig; +import org.apache.http.conn.HttpClientConnectionManager; +import org.apache.http.cookie.Cookie; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.impl.cookie.BasicClientCookie2; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.concurrent.TimeUnit; + +/** + * @author djc + * @since 15/11/4. + */ +public class HttpUtil { + + private static PoolingHttpClientConnectionManager cm; + private static IdleConnectionMonitorThread monitor; + + private HttpRequestBase request; + private final HttpClientBuilder clientBuilder; + private final CookieStore cookieStore; + /** + * 请求的相关配置 + */ + private final RequestConfig.Builder configBuilder; + + public static PoolingHttpClientConnectionManager getHttpClientConnectionManager() { + if (cm == null) { + cm = new PoolingHttpClientConnectionManager(); + cm.setMaxTotal(200); + cm.setDefaultMaxPerRoute(20); + SocketConfig config = SocketConfig.custom().setSoTimeout(10000).build(); + cm.setDefaultSocketConfig(config); + + monitor = new IdleConnectionMonitorThread(cm); + monitor.start(); + } + return cm; + } + + private HttpUtil() { + this.clientBuilder = HttpClients.custom().setConnectionManager(getHttpClientConnectionManager()); + this.configBuilder = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(10000).setCookieSpec(CookieSpecs.STANDARD); + this.cookieStore = new BasicCookieStore(); + } + + private static List convertParameters(Multimap params) { + List pairs = new ArrayList<>(params.size()); + for (Entry entry : params.entries()) { + pairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); + } + return pairs; + } + + public static HttpUtil newInstance() { + return new HttpUtil(); + } + + public static HttpUtil getHttp(String url, Multimap paramMap, Map headerMap) { + HttpUtil httpUtil = newInstance(); + URIBuilder uriBuilder = new URIBuilder(URI.create(url)); + uriBuilder.setCharset(StandardCharsets.UTF_8); + if (paramMap != null) { + List pairs = convertParameters(paramMap); + uriBuilder.setParameters(pairs); + } + HttpGet request = new HttpGet(uriBuilder.toString()); + if (headerMap != null && headerMap.size() > 0) { + for (Entry param : headerMap.entrySet()) { + request.addHeader(param.getKey(), param.getValue()); + } + } + + httpUtil.request = request; + return httpUtil; + } + + public static String get(String url) { + HttpUtil http = getHttp(url, null, null); + return http.execute().getString(); + } + + public static String get(String url, Multimap paramMap) { + HttpUtil http = getHttp(url, paramMap, null); + return http.execute().getString(); + } + + public static String get(String url, Multimap paramMap, Map headerMap) { + HttpUtil httputil = getHttp(url, paramMap, headerMap); + return httputil.execute().getString(); + } + + public static HttpUtil postHttp(String url, Multimap paramMap, Map fileMap, + Map headerMap) { + HttpUtil httpUtil = newInstance(); + HttpPost request = new HttpPost(url); + + if (fileMap != null && fileMap.size() > 0) { + MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create().setCharset(StandardCharsets.UTF_8).setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + for (Entry param : fileMap.entrySet()) { + multipartEntityBuilder.addBinaryBody(param.getKey(), param.getValue()); + } + + if (paramMap != null && paramMap.size() > 0) { + for (Entry param : paramMap.entries()) { + multipartEntityBuilder.addTextBody(param.getKey(), param.getValue(), ContentType.WILDCARD.withCharset(StandardCharsets.UTF_8)); + } + } + request.setEntity(multipartEntityBuilder.build()); + } else { + EntityBuilder entityBuilder = EntityBuilder.create().setContentType(ContentType.APPLICATION_FORM_URLENCODED.withCharset(StandardCharsets.UTF_8)).setContentEncoding(StandardCharsets.UTF_8.name()); + if (paramMap != null && paramMap.size() > 0) { + List nameValuePairs = convertParameters(paramMap); + entityBuilder.setParameters(nameValuePairs); + } + request.setEntity(entityBuilder.build()); + } + + if (headerMap != null) { + for (Entry param : headerMap.entrySet()) { + request.addHeader(param.getKey(), param.getValue()); + } + } + httpUtil.request = request; + return httpUtil; + } + + public static HttpUtil postJsonHttp(String url, String jsonParam, Map headerMap) { + HttpUtil httpUtil = newInstance(); + HttpPost request = new HttpPost(url); + + if (!Strings.isNullOrEmpty(jsonParam)) { + HttpEntity entity = EntityBuilder.create().setText(jsonParam).setContentType(ContentType.APPLICATION_JSON.withCharset(StandardCharsets.UTF_8)).setContentEncoding(StandardCharsets.UTF_8.name()).build(); + request.setEntity(entity); + } + + if (headerMap != null) { + for (Entry param : headerMap.entrySet()) { + request.addHeader(param.getKey(), param.getValue()); + } + } + httpUtil.request = request; + return httpUtil; + } + + public static String post(String url) { + HttpUtil httputil = postHttp(url, null, null, null); + return httputil.execute().getString(); + } + + public static String post(String url, Multimap map) { + HttpUtil httputil = postHttp(url, map, null, null); + return httputil.execute().getString(); + } + + public static String post(String url, Multimap paramMap, Map headerMap) { + HttpUtil httputil = postHttp(url, paramMap, null, headerMap); + return httputil.execute().getString(); + } + + public static String postFile(String url, Map fileMap) { + HttpUtil httputil = postHttp(url, null, fileMap, null); + return httputil.execute().getString(); + } + + public static String postFile(String url, File file) { + Map fileMap = new HashMap<>(1); + fileMap.put(file.getName(), file); + HttpUtil httputil = postHttp(url, null, fileMap, null); + return httputil.execute().getString(); + } + + public static String postFile(String url, Multimap paramMap, Map fileMap) { + HttpUtil httputil = postHttp(url, paramMap, fileMap, null); + return httputil.execute().getString(); + } + + public static String postFile(String url, Multimap paramMap, File file) { + Map fileMap = new HashMap<>(1); + fileMap.put(file.getName(), file); + HttpUtil httputil = postHttp(url, paramMap, fileMap, null); + return httputil.execute().getString(); + } + + public static String postFile(String url, Multimap paramMap, List fileList) { + Map fileMap = new HashMap<>(fileList.size()); + for (int i = 0, length = fileList.size(); i < length; i++) { + fileMap.put(fileList.get(i).getName(), fileList.get(i)); + } + HttpUtil httputil = postHttp(url, paramMap, fileMap, null); + return httputil.execute().getString(); + } + + public static HttpUtil putHttp(String url, Multimap paramMap, Map fileMap, + Map headerMap) { + HttpUtil httpUtil = newInstance(); + HttpPut request = new HttpPut(url); + + if (fileMap != null && fileMap.size() > 0) { + MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create().setCharset(StandardCharsets.UTF_8).setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + for (Entry param : fileMap.entrySet()) { + multipartEntityBuilder.addBinaryBody(param.getKey(), param.getValue()); + } + + if (paramMap != null && paramMap.size() > 0) { + for (Entry param : paramMap.entries()) { + multipartEntityBuilder.addTextBody(param.getKey(), param.getValue(), ContentType.WILDCARD.withCharset(StandardCharsets.UTF_8)); + } + } + request.setEntity(multipartEntityBuilder.build()); + } else { + EntityBuilder entityBuilder = EntityBuilder.create().setContentType(ContentType.APPLICATION_FORM_URLENCODED.withCharset(StandardCharsets.UTF_8)).setParameters(); + if (paramMap != null && paramMap.size() > 0) { + List nameValuePairs = convertParameters(paramMap); + entityBuilder.setParameters(nameValuePairs); + } + request.setEntity(entityBuilder.build()); + } + + if (headerMap != null) { + for (Entry param : headerMap.entrySet()) { + request.addHeader(param.getKey(), param.getValue()); + } + } + httpUtil.request = request; + return httpUtil; + } + + public static String put(String url) { + HttpUtil httputil = putHttp(url, null, null, null); + return httputil.execute().getString(); + } + + public static String put(String url, Multimap map) { + HttpUtil httputil = putHttp(url, map, null, null); + return httputil.execute().getString(); + } + + public static String put(String url, Multimap paramMap, Map headerMap) { + HttpUtil httputil = putHttp(url, paramMap, null, headerMap); + return httputil.execute().getString(); + } + + public static String putFile(String url, Map fileMap) { + HttpUtil httputil = postHttp(url, null, fileMap, null); + return httputil.execute().getString(); + } + + public static HttpUtil deleteHttp(String url, Map headerMap) { + HttpUtil httpUtil = newInstance(); + HttpDelete request = new HttpDelete(url); + if (headerMap != null) { + for (Entry param : headerMap.entrySet()) { + request.addHeader(param.getKey(), param.getValue()); + } + } + httpUtil.request = request; + return httpUtil; + } + + public static String delete(String url) { + HttpUtil httputil = deleteHttp(url, null); + return httputil.execute().getString(); + } + + public static String delete(String url, Map headerMap) { + HttpUtil httputil = deleteHttp(url, headerMap); + return httputil.execute().getString(); + } + + public void setSocketTimeout(int socketTimeout) { + this.configBuilder.setSocketTimeout(socketTimeout); + } + + public void setConnectTimeout(int connectTimeout) { + this.configBuilder.setConnectTimeout(connectTimeout); + } + + public ResponseWrap execute() { + this.request.setConfig(this.configBuilder.build()); + + CloseableHttpClient httpClient = clientBuilder.build(); + + HttpClientContext context = HttpClientContext.create(); + if (!this.cookieStore.getCookies().isEmpty()) { + context.setCookieStore(cookieStore); + } + + try { + CloseableHttpResponse response = httpClient.execute(request, context); + return new ResponseWrap(response, context); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public class ResponseWrap { + + private CloseableHttpResponse response; + private HttpClientContext context; + private HttpEntity entity; + + public ResponseWrap(CloseableHttpResponse response, HttpClientContext context) { + this.response = response; + this.context = context; + this.entity = response.getEntity(); + } + + public void close() { + HttpClientUtils.closeQuietly(response); + } + + public String getString() { + return getString(StandardCharsets.UTF_8); + } + + public String getString(Charset defaultCharset) { + try { + return entity == null ? "" : EntityUtils.toString(entity, defaultCharset); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + HttpClientUtils.closeQuietly(response); + } + } + + public byte[] getByteArray() { + try { + return entity == null ? null : EntityUtils.toByteArray(entity); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + HttpClientUtils.closeQuietly(response); + } + } + + public Header[] getAllHeaders() { + return response.getAllHeaders(); + } + + public Header[] getHeaders(String name) { + return response.getHeaders(name); + } + + public StatusLine getStatusLine() { + return response.getStatusLine(); + } + + public int getStatusCode() { + return response.getStatusLine().getStatusCode(); + } + + public boolean containsHeader(String name) { + return response.containsHeader(name); + } + + public List getCookies() { + return context.getCookieStore().getCookies(); + } + + public Cookie getCookie(String name) { + List cookies = context.getCookieStore().getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if (name.equals(cookie.getName())) { + return cookie; + } + } + } + return null; + } + + public InputStream getInputStream() { + try { + return entity == null ? null : entity.getContent(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + } + + public void addCookie(String name, String value) { + cookieStore.addCookie(new BasicClientCookie2(name, value)); + } + + public void addCookie(Map cookieMap) { + for (Entry entry : cookieMap.entrySet()) { + cookieStore.addCookie(new BasicClientCookie2(entry.getKey(), entry.getValue())); + } + } + + static class IdleConnectionMonitorThread extends Thread { + + private final HttpClientConnectionManager connMgr; + private volatile boolean shutdown; + + public IdleConnectionMonitorThread(HttpClientConnectionManager connMgr) { + super(); + this.connMgr = connMgr; + } + + @Override + public void run() { + try { + while (!shutdown) { + synchronized (this) { + wait(5000); + // Close expired connections + connMgr.closeExpiredConnections(); + // Optionally, close connections + // that have been idle longer than 30 sec + connMgr.closeIdleConnections(30, TimeUnit.SECONDS); + } + } + } catch (InterruptedException ex) { + ex.printStackTrace(); + Thread.currentThread().interrupt(); + } + } + + public void shutdown() { + shutdown = true; + synchronized (this) { + notifyAll(); + } + } + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/ParamUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/ParamUtil.java new file mode 100644 index 0000000..7f494fa --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/ParamUtil.java @@ -0,0 +1,120 @@ +package org.springblade.reservoirbase.util; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.reservoirbase.entity.*; + +import java.util.Map; + +public class ParamUtil { + public static LambdaQueryWrapper conditionIrrbireach(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("riverCode")!=null) { + wrapper.like(Irrbireach::getRiverCode,param.get("riverCode")); + } + if(param.get("riverName")!=null) { + wrapper.like(Irrbireach::getRiverName,param.get("riverName")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionStRsrBsin(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(StRsrBsin::getRscd,param.get("rscd")); + } + if(param.get("rtunm")!=null) { + wrapper.like(StRsrBsin::getRtunm,param.get("rtunm")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionStRsrHych(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(StRsrHych::getRscd,param.get("rscd")); + } + if(param.get("rsvrtp")!=null) { + wrapper.like(StRsrHych::getRsvrtp,param.get("rsvrtp")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionStRtuParam(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(StRtuParam::getRscd,param.get("rscd")); + } + if(param.get("emtc")!=null) { + wrapper.like(StRtuParam::getEmtc,param.get("emtc")); + } + if(param.get("emtp")!=null) { + wrapper.eq(StRtuParam::getEmtp,param.get("emtp")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionStZvarlB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(StZvarlB::getRscd,param.get("rscd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWqLrinfB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("lrcd")!=null) { + wrapper.like(WqLrinfB::getLrcd,param.get("lrcd")); + } + if(param.get("lrnm")!=null) { + wrapper.like(WqLrinfB::getLrnm,param.get("lrnm")); + } + if(param.get("watp")!=null) { + wrapper.eq(WqLrinfB::getWatp,param.get("watp")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWqWrrlrrB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("lrcd")!=null) { + wrapper.like(WqWrrlrrB::getLrcd,param.get("lrcd")); + } + if(param.get("wrrcd")!=null) { + wrapper.like(WqWrrlrrB::getWrrcd,param.get("wrrcd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionWqLrsrB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("lrcd")!=null) { + wrapper.like(WqLrsrB::getLrcd,param.get("lrcd")); + } + if(param.get("stcd")!=null) { + wrapper.like(WqLrsrB::getStcd,param.get("stcd")); + } + return wrapper; + } + + + public static LambdaQueryWrapper conditionWqAdlrrB(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("lrcd")!=null) { + wrapper.like(WqAdlrrB::getLrcd,param.get("lrcd")); + } + if(param.get("addvcd")!=null) { + wrapper.like(WqAdlrrB::getAddvcd,param.get("addvcd")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionThreeDutyPerson(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.eq(ThreeDutyPerson::getRscd,param.get("rscd")); + } + return wrapper; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/SignUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/SignUtil.java new file mode 100644 index 0000000..fe3854f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/SignUtil.java @@ -0,0 +1,57 @@ +package org.springblade.reservoirbase.util; + +import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; +import java.security.MessageDigest; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +public class SignUtil { + + /** + * 和风天气签名生成算法-JAVA版本 + * + * @param params 请求参数集,所有参数必须已转换为字符串类型 + * @param secret 签名密钥(用户的认证key) + * @return 签名 + */ + public static String getSignature(Map params, String secret) { + // 先将参数以其参数名的字典序升序进行排序 + Map sortedParams = new TreeMap<>(params); + Set> entrys = sortedParams.entrySet(); + + // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起 + StringBuilder baseString = new StringBuilder(); + for (Map.Entry param : entrys) { + //sign参数 和 空值参数 不加入算法 + if (param.getValue() != null && !"".equals(param.getKey().trim()) && !"sign".equals(param.getKey().trim()) && !"key".equals(param.getKey().trim()) && !"".equals(param.getValue().trim())) { + baseString.append(param.getKey().trim()).append("=").append(param.getValue().trim()).append("&"); + } + } + if (baseString.length() > 0) { + baseString.deleteCharAt(baseString.length() - 1).append(secret); + } + // 使用MD5对待签名串求签 + try { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + byte[] bytes = md5.digest(baseString.toString().getBytes(StandardCharsets.UTF_8)); + return new String(encodeHex(bytes)); + } catch (GeneralSecurityException ex) { + return ""; + } + } + + public static char[] encodeHex(byte[] data) { + int l = data.length; + char[] out = new char[l << 1]; + int i = 0; + char[] toDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + for (int var5 = 0; i < l; ++i) { + out[var5++] = toDigits[(240 & data[i]) >>> 4]; + out[var5++] = toDigits[15 & data[i]]; + } + return out; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/StringUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/StringUtils.java new file mode 100644 index 0000000..e272fba --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/util/StringUtils.java @@ -0,0 +1,423 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package org.springblade.reservoirbase.util; + +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringEscapeUtils; + +import javax.servlet.http.HttpServletRequest; +import java.io.UnsupportedEncodingException; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类 + * + * @author ThinkGem + * @version 2013-05-22 + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + + private static final char SEPARATOR = '_'; + private static final String CHARSET_NAME = "UTF-8"; + + /** + * 转换为字节数组 + * + * @param str + * @return + */ + public static byte[] getBytes(String str) { + if (str != null) { + try { + return str.getBytes(CHARSET_NAME); + } catch (UnsupportedEncodingException e) { + return null; + } + } else { + return null; + } + } + + /** + * 转换为字节数组 + * + * @param bytes + * @return + */ + public static String toString(byte[] bytes) { + try { + return new String(bytes, CHARSET_NAME); + } catch (UnsupportedEncodingException e) { + return EMPTY; + } + } + + /** + * 是否包含字符串 + * + * @param str + * 验证字符串 + * @param strs + * 字符串组 + * @return 包含返回true + */ + public static boolean inString(String str, String... strs) { + if (str != null) { + for (String s : strs) { + if (str.equals(trim(s))) { + return true; + } + } + } + return false; + } + + /** + * 替换掉HTML标签方法 + */ + public static String replaceHtml(String html) { + if (isBlank(html)) { + return ""; + } + String regEx = "<.+?>"; + Pattern p = Pattern.compile(regEx); + Matcher m = p.matcher(html); + String s = m.replaceAll(""); + return s; + } + + /** + * 替换为手机识别的HTML,去掉样式及属性,保留回车。 + * + * @param html + * @return + */ + public static String replaceMobileHtml(String html) { + if (html == null) { + return ""; + } + return html.replaceAll("<([a-z]+?)\\s+?.*?>", "<$1>"); + } + + /** + * 替换为手机识别的HTML,去掉样式及属性,保留回车。 + * + * @param txt + * @return + */ + public static String toHtml(String txt) { + if (txt == null) { + return ""; + } + return replace(replace(Encodes.escapeHtml(txt), "\n", "
"), "\t", "    "); + } + + /** + * 缩略字符串(不区分中英文字符) + * + * @param str + * 目标字符串 + * @param length + * 截取长度 + * @return + */ + public static String abbr(String str, int length) { + if (str == null) { + return ""; + } + try { + StringBuilder sb = new StringBuilder(); + int currentLength = 0; + for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) { + currentLength += String.valueOf(c).getBytes("GBK").length; + if (currentLength <= length - 3) { + sb.append(c); + } else { + sb.append("..."); + break; + } + } + return sb.toString(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return ""; + } + + public static String abbr2(String param, int length) { + if (param == null) { + return ""; + } + StringBuffer result = new StringBuffer(); + int n = 0; + char temp; + boolean isCode = false; // 是不是HTML代码 + boolean isHTML = false; // 是不是HTML特殊字符,如  + for (int i = 0; i < param.length(); i++) { + temp = param.charAt(i); + if (temp == '<') { + isCode = true; + } else if (temp == '&') { + isHTML = true; + } else if (temp == '>' && isCode) { + n = n - 1; + isCode = false; + } else if (temp == ';' && isHTML) { + isHTML = false; + } + try { + if (!isCode && !isHTML) { + n += String.valueOf(temp).getBytes("GBK").length; + } + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + if (n <= length - 3) { + result.append(temp); + } else { + result.append("..."); + break; + } + } + // 取出截取字符串中的HTML标记 + String temp_result = result.toString().replaceAll("(>)[^<>]*(]*/?>", + ""); + // 去掉成对的HTML标记 + temp_result = temp_result.replaceAll("<([a-zA-Z]+)[^<>]*>(.*?)", "$2"); + // 用正则表达式取出标记 + Pattern p = Pattern.compile("<([a-zA-Z]+)[^<>]*>"); + Matcher m = p.matcher(temp_result); + List endHTML = Lists.newArrayList(); + while (m.find()) { + endHTML.add(m.group(1)); + } + // 补全不成对的HTML标记 + for (int i = endHTML.size() - 1; i >= 0; i--) { + result.append(""); + } + return result.toString(); + } + + /** + * 转换为Double类型 + */ + public static Double toDouble(Object val) { + if (val == null) { + return 0D; + } + try { + return Double.valueOf(trim(val.toString())); + } catch (Exception e) { + return 0D; + } + } + + /** + * 转换为Float类型 + */ + public static Float toFloat(Object val) { + return toDouble(val).floatValue(); + } + + /** + * 转换为Long类型 + */ + public static Long toLong(Object val) { + return toDouble(val).longValue(); + } + + /** + * 转换为Integer类型 + */ + public static Integer toInteger(Object val) { + return toLong(val).intValue(); + } + + /** + * 获得i18n字符串 + */ + public static String getMessage(String code, Object[] args) { + /*LocaleResolver localLocaleResolver = (LocaleResolver) SpringContextHolder.getBean(LocaleResolver.class); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + Locale localLocale = localLocaleResolver.resolveLocale(request); + return SpringContextHolder.getApplicationContext().getMessage(code, args, localLocale);*/ + return "" ; + } + + /** + * 获得用户远程地址 + */ + public static String getRemoteAddr(HttpServletRequest request) { + String remoteAddr = request.getHeader("X-Real-IP"); + if (isNotBlank(remoteAddr)) { + remoteAddr = request.getHeader("X-Forwarded-For"); + } else if (isNotBlank(remoteAddr)) { + remoteAddr = request.getHeader("Proxy-Client-IP"); + } else if (isNotBlank(remoteAddr)) { + remoteAddr = request.getHeader("WL-Proxy-Client-IP"); + } + return remoteAddr != null ? remoteAddr : request.getRemoteAddr(); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase("hello_world") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCamelCase(String s) { + if (s == null) { + return null; + } + + s = s.toLowerCase(); + + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + if (c == SEPARATOR) { + upperCase = true; + } else if (upperCase) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase("hello_world") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCapitalizeCamelCase(String s) { + if (s == null) { + return null; + } + s = toCamelCase(s); + return s.substring(0, 1).toUpperCase() + s.substring(1); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase("hello_world") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toUnderScoreCase(String s) { + if (s == null) { + return null; + } + + StringBuilder sb = new StringBuilder(); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + boolean nextUpperCase = true; + + if (i < (s.length() - 1)) { + nextUpperCase = Character.isUpperCase(s.charAt(i + 1)); + } + + if ((i > 0) && Character.isUpperCase(c)) { + if (!upperCase || !nextUpperCase) { + sb.append(SEPARATOR); + } + upperCase = true; + } else { + upperCase = false; + } + + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 如果不为空,则设置值 + * + * @param target + * @param source + */ + public static void setValueIfNotBlank(String target, String source) { + if (isNotBlank(source)) { + target = source; + } + } + + /** + * 转换为JS获取对象值,生成三目运算返回结果 + * + * @param objectString + * 对象串 例如:row.user.id + * 返回:!row?'':!row.user?'':!row.user.id?'':row.user.id + */ + public static String jsGetVal(String objectString) { + StringBuilder result = new StringBuilder(); + StringBuilder val = new StringBuilder(); + String[] vals = split(objectString, "."); + for (int i = 0; i < vals.length; i++) { + val.append("." + vals[i]); + result.append("!" + (val.substring(1)) + "?'':"); + } + result.append(val.substring(1)); + return result.toString(); + } + + /** + * 把url中的特殊字符转化成asc码 + * + * @author ypj + * @param url + * @return + */ + public static String urlEncode(String url) { + url = url.replace("%", "%25"); + url = url.replace("+", "%2B"); + url = url.replace(" ", "%20"); + url = url.replace("/", "%2F"); + url = url.replace("?", "%3F"); + url = url.replace("#", "%23"); + url = url.replace("&", "%26"); + url = url.replace("=", "%3D"); + url = url.replace("@", "%40"); + url = url.replace("\"", "%22"); + url = url.replace("(", "%28"); + url = url.replace(")", "%29"); + url = url.replace("'", "%2C"); + url = url.replace(":", "%3A"); + url = url.replace(";", "%3B"); + url = url.replace("<", "%3C"); + url = url.replace("\\", "%5C"); + url = url.replace("|", "%7C"); + url = url.replace("*", "%2A"); + url = url.replace("!", "%21"); + url = url.replace("$", "%24"); + url = url.replace("{", "%7B"); + url = url.replace("}", "%7D"); + url = url.replace("~", "%7E"); + return url; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/StRsrBsinWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/StRsrBsinWrapper.java new file mode 100644 index 0000000..bde7ba0 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/StRsrBsinWrapper.java @@ -0,0 +1,32 @@ +package org.springblade.reservoirbase.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.reservoirbase.entity.StRsrBsin; +import org.springblade.reservoirbase.vo.StRsrBsinVo; +import org.springblade.system.cache.RegionCache; +import org.springblade.system.entity.Region; + +import java.util.Objects; + +public class StRsrBsinWrapper extends BaseEntityWrapper { + public StRsrBsinWrapper() { + } + + public static StRsrBsinWrapper build() { + return new StRsrBsinWrapper(); + } + + @Override + public StRsrBsinVo entityVO(StRsrBsin entity) { + if(entity == null){ + return null; + } + StRsrBsinVo stRsrBsinVo = Objects.requireNonNull(BeanUtil.copy(entity, StRsrBsinVo.class)); + Region region=RegionCache.getByCode(entity.getAddvcd()); + if(region!=null) { + stRsrBsinVo.setAddvcdnm(region.getName()); + } + return stRsrBsinVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqAdlrrBWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqAdlrrBWrapper.java new file mode 100644 index 0000000..9158275 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqAdlrrBWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.reservoirbase.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.reservoirbase.entity.WqAdlrrB; +import org.springblade.reservoirbase.vo.WqAdlrrBVo; + +import java.util.Objects; + +public class WqAdlrrBWrapper extends BaseEntityWrapper { + public WqAdlrrBWrapper() { + } + + public static WqAdlrrBWrapper build() { + return new WqAdlrrBWrapper(); + } + + @Override + public WqAdlrrBVo entityVO(WqAdlrrB entity) { + if(entity == null){ + return null; + } + WqAdlrrBVo wqAdlrrBVo = Objects.requireNonNull(BeanUtil.copy(entity, WqAdlrrBVo.class)); + + return wqAdlrrBVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqLrsrBWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqLrsrBWrapper.java new file mode 100644 index 0000000..21ffed7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqLrsrBWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.reservoirbase.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.reservoirbase.entity.WqLrsrB; +import org.springblade.reservoirbase.vo.WqLrsrBVo; + +import java.util.Objects; + +public class WqLrsrBWrapper extends BaseEntityWrapper { + public WqLrsrBWrapper() { + } + + public static WqLrsrBWrapper build() { + return new WqLrsrBWrapper(); + } + + @Override + public WqLrsrBVo entityVO(WqLrsrB entity) { + if(entity == null){ + return null; + } + WqLrsrBVo wqLrsrBVo = Objects.requireNonNull(BeanUtil.copy(entity, WqLrsrBVo.class)); + + return wqLrsrBVo; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqWrrlrrBWrapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqWrrlrrBWrapper.java new file mode 100644 index 0000000..e75200e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/java/org/springblade/reservoirbase/wrapper/WqWrrlrrBWrapper.java @@ -0,0 +1,27 @@ +package org.springblade.reservoirbase.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.reservoirbase.entity.WqWrrlrrB; +import org.springblade.reservoirbase.vo.WqWrrlrrBVo; + +import java.util.Objects; + +public class WqWrrlrrBWrapper extends BaseEntityWrapper { + public WqWrrlrrBWrapper() { + } + + public static WqWrrlrrBWrapper build() { + return new WqWrrlrrBWrapper(); + } + + @Override + public WqWrrlrrBVo entityVO(WqWrrlrrB entity) { + if(entity == null){ + return null; + } + WqWrrlrrBVo wqWrrlrrBVo = Objects.requireNonNull(BeanUtil.copy(entity, WqWrrlrrBVo.class)); + + return wqWrrlrrBVo; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-dev.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-dev.yml new file mode 100644 index 0000000..c67cada --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-dev.yml @@ -0,0 +1,17 @@ +#服务器端口 +server: + port: 8205 + +file: + upload: + path: D:\\upload + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} + cloud: + inetutils: + preferred-networks: 192.168.65 diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-prod.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-test.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application.yml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application.yml new file mode 100644 index 0000000..dbf5176 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/reservoir-baseinfo-service/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: reservoir-baseinfo + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/pom.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/pom.xml new file mode 100644 index 0000000..c735638 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/pom.xml @@ -0,0 +1,97 @@ + + + + hzinfo-ris-pxhd-service + org.springblade + 4.5.0.RELEASE + + + + 4.0.0 + + pxhd-video-image + 4.5.0.RELEASE + jar + + + + + com.google.guava + failureaccess + 1.0.1 + + + org.springblade + blade-common + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-core-cloud + provided + + + org.springblade + pxhd-video-image-api + 4.5.0.RELEASE + compile + + + + com.hikvision.ga + artemis-http-client + 1.1.2 + + + + + com.hnac.hzinfo.data + hzinfo-data-sdk + 4.5.0.RELEASE + compile + + + org.springblade + pxhd-hz3000-real-data-api + 4.5.0.RELEASE + compile + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + exec + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/VideoImageApplication.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/VideoImageApplication.java new file mode 100644 index 0000000..1198ee4 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/VideoImageApplication.java @@ -0,0 +1,21 @@ +package org.springblade.video_image; + +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; + +@EnableBladeFeign +@SpringCloudApplication +public class VideoImageApplication extends SpringBootServletInitializer { + static String APPLICATION_NAME="video-image"; + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, VideoImageApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, VideoImageApplication.class); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StCamInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StCamInfoController.java new file mode 100644 index 0000000..5c8a44a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StCamInfoController.java @@ -0,0 +1,114 @@ +package org.springblade.video_image.caminfo.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 org.springblade.video_image.caminfo.service.IStCamInfoService; +import org.springblade.video_image.caminfo.util.ParamUtil; +import org.springblade.video_image.entity.StCamInfo; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/videoImage/stCamInfo") +@AllArgsConstructor +@Api(value = "摄像头信息", tags = "摄像头信息接口") +public class StCamInfoController extends BladeController implements CacheNames { + + private final IStCamInfoService stCamInfoService; + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camcd", value = "摄像头编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camName", value = "摄像头名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camType", value = "类型", paramType = "query", dataType = "string") + + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入stCamInfo") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStCamInfo(param); + IPage pages = stCamInfoService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "rscd", value = "水库代码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "mpcd", value = "测点编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camcd", value = "摄像头编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camName", value = "摄像头名称", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camType", value = "类型", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入stCamInfo") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStCamInfo(param); + List list = stCamInfoService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入stCamInfo") + public R detail(StCamInfo stCamInfo) { + StCamInfo detail = stCamInfoService.getOne(Condition.getQueryWrapper(stCamInfo)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入stCamInfo") + public R save(@RequestBody StCamInfo stCamInfo) { + return R.status(stCamInfoService.save(stCamInfo)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入stCamInfo") + public R update(@RequestBody StCamInfo stCamInfo) { + return R.status(stCamInfoService.updateById(stCamInfo)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "camcd") + public R remove(@ApiParam(value = "摄像头编号集合") @RequestParam String camcd) { + List list=Func.toStrList(camcd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(StCamInfo::getCamcd,list); + boolean temp = stCamInfoService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbCamController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbCamController.java new file mode 100644 index 0000000..38dbd34 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbCamController.java @@ -0,0 +1,109 @@ +package org.springblade.video_image.caminfo.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 org.springblade.video_image.caminfo.util.ParamUtil; +import org.springblade.video_image.entity.StGbCam; +import org.springblade.video_image.caminfo.service.IStGbCamService; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/videoImage/stGbCam") +@AllArgsConstructor +@Api(value = "摄像头配置信息", tags = "摄像头配置信息接口") +public class StGbCamController extends BladeController implements CacheNames { + private final IStGbCamService stGbCamService; + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camcd", value = "摄像头编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camsipcd", value = "国标编码", paramType = "query", dataType = "string") + + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入StGbCam") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStGbCam(param); + IPage pages = stGbCamService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "stcd", value = "测站编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camcd", value = "摄像头编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "camsipcd", value = "国标编码", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入StGbCam") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStGbCam(param); + List list = stGbCamService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入StGbCam") + public R detail(StGbCam StGbCam) { + StGbCam detail = stGbCamService.getOne(Condition.getQueryWrapper(StGbCam)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入StGbCam") + public R save(@RequestBody StGbCam StGbCam) { + return R.status(stGbCamService.save(StGbCam)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入StGbCam") + public R update(@RequestBody StGbCam StGbCam) { + return R.status(stGbCamService.updateById(StGbCam)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "camcd") + public R remove(@ApiParam(value = "摄像头编号集合") @RequestParam String camcd) { + List list=Func.toStrList(camcd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(StGbCam::getCamcd,list); + boolean temp = stGbCamService.delete(wrapper); + return R.status(temp); + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbSipController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbSipController.java new file mode 100644 index 0000000..3e8ca1c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/controller/StGbSipController.java @@ -0,0 +1,109 @@ +package org.springblade.video_image.caminfo.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 org.springblade.video_image.caminfo.service.IStGbSipService; +import org.springblade.video_image.caminfo.util.ParamUtil; +import org.springblade.video_image.entity.StGbSip; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/videoImage/stGbSip") +@AllArgsConstructor +@Api(value = "GB服务器配置信息", tags = "GB服务器配置信息接口") +public class StGbSipController extends BladeController implements CacheNames { + private final IStGbSipService stGbSipService; + + /** + * 分页 + */ + @GetMapping("/pageList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "gbfcd", value = "平台国标编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "gbny", value = "域", paramType = "query", dataType = "string") + + }) + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "传入StGbSip") + public R> pageList(@ApiIgnore @RequestParam Map param, Query query) { + LambdaQueryWrapper wrapper= ParamUtil.conditionStGbSip(param); + IPage pages = stGbSipService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + /** + * 列表 + */ + @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "gbfcd", value = "平台国标编码", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "gbny", value = "域", paramType = "query", dataType = "string") + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入StGbSip") + public R> list(@ApiIgnore @RequestParam Map param) { + LambdaQueryWrapper wrapper=ParamUtil.conditionStGbSip(param); + List list = stGbSipService.list(wrapper); + return R.data(list); + } + + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "详情", notes = "传入StGbSip") + public R detail(StGbSip StGbSip) { + StGbSip detail = stGbSipService.getOne(Condition.getQueryWrapper(StGbSip)); + return R.data(detail); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入StGbSip") + public R save(@RequestBody StGbSip StGbSip) { + return R.status(stGbSipService.save(StGbSip)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入StGbSip") + public R update(@RequestBody StGbSip StGbSip) { + return R.status(stGbSipService.updateById(StGbSip)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "gbfcd") + public R remove(@ApiParam(value = "平台国标编码集合") @RequestParam String gbfcd) { + List list=Func.toStrList(gbfcd); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.in(StGbSip::getGbfcd,list); + boolean temp = stGbSipService.delete(wrapper); + return R.status(temp); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.java new file mode 100644 index 0000000..5b2046f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.java @@ -0,0 +1,7 @@ +package org.springblade.video_image.caminfo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.video_image.entity.StCamInfo; + +public interface StCamInfoMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.xml new file mode 100644 index 0000000..bb2b906 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StCamInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.java new file mode 100644 index 0000000..b1558c2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.java @@ -0,0 +1,8 @@ +package org.springblade.video_image.caminfo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.video_image.entity.StGbCam; + +public interface StGbCamMapper extends BaseMapper{ + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.xml new file mode 100644 index 0000000..f262cf3 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbCamMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.java new file mode 100644 index 0000000..3e2c2f5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.java @@ -0,0 +1,7 @@ +package org.springblade.video_image.caminfo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.video_image.entity.StGbSip; + +public interface StGbSipMapper extends BaseMapper { +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.xml new file mode 100644 index 0000000..ddd873c --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/mapper/StGbSipMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStCamInfoService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStCamInfoService.java new file mode 100644 index 0000000..1338b38 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStCamInfoService.java @@ -0,0 +1,19 @@ +package org.springblade.video_image.caminfo.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.entity.StCamInfo; + +import java.util.List; + +public interface IStCamInfoService{ + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StCamInfo getOne(QueryWrapper wrapper); + boolean save(StCamInfo entity); + boolean updateById(StCamInfo entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbCamService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbCamService.java new file mode 100644 index 0000000..a324f21 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbCamService.java @@ -0,0 +1,19 @@ +package org.springblade.video_image.caminfo.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.entity.StGbCam; + +import java.util.List; + +public interface IStGbCamService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StGbCam getOne(QueryWrapper wrapper); + boolean save(StGbCam entity); + boolean updateById(StGbCam entity); + boolean delete(Wrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbSipService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbSipService.java new file mode 100644 index 0000000..5a71c40 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/IStGbSipService.java @@ -0,0 +1,18 @@ +package org.springblade.video_image.caminfo.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.entity.StGbSip; + +import java.util.List; + +public interface IStGbSipService { + IPage page(IPage page, LambdaQueryWrapper wrapper); + + List list(LambdaQueryWrapper wrapper); + StGbSip getOne(QueryWrapper wrapper); + boolean save(StGbSip entity); + boolean updateById(StGbSip entity); + boolean delete(LambdaQueryWrapper wrapper); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StCamInfoServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StCamInfoServiceImpl.java new file mode 100644 index 0000000..9457ad2 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StCamInfoServiceImpl.java @@ -0,0 +1,52 @@ +package org.springblade.video_image.caminfo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.caminfo.mapper.StCamInfoMapper; +import org.springblade.video_image.caminfo.service.IStCamInfoService; +import org.springblade.video_image.entity.StCamInfo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class StCamInfoServiceImpl implements IStCamInfoService { + @Resource + StCamInfoMapper stCamInfoMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stCamInfoMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stCamInfoMapper.selectList(wrapper); + } + + @Override + public StCamInfo getOne(QueryWrapper wrapper) { + return stCamInfoMapper.selectOne(wrapper); + } + + @Override + public boolean save(StCamInfo entity) { + int count=stCamInfoMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StCamInfo entity) { + int count=stCamInfoMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=stCamInfoMapper.delete(wrapper); + return count>0; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbCamServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbCamServiceImpl.java new file mode 100644 index 0000000..a75eacd --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbCamServiceImpl.java @@ -0,0 +1,52 @@ +package org.springblade.video_image.caminfo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.entity.StGbCam; +import org.springblade.video_image.caminfo.mapper.StGbCamMapper; +import org.springblade.video_image.caminfo.service.IStGbCamService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class StGbCamServiceImpl implements IStGbCamService { + @Resource + StGbCamMapper stGbCamMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stGbCamMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stGbCamMapper.selectList(wrapper); + } + + @Override + public StGbCam getOne(QueryWrapper wrapper) { + return stGbCamMapper.selectOne(wrapper); + } + + @Override + public boolean save(StGbCam entity) { + int count=stGbCamMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StGbCam entity) { + int count=stGbCamMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(Wrapper wrapper) { + int count=stGbCamMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbSipServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbSipServiceImpl.java new file mode 100644 index 0000000..243c06d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/service/impl/StGbSipServiceImpl.java @@ -0,0 +1,51 @@ +package org.springblade.video_image.caminfo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.entity.StGbSip; +import org.springblade.video_image.caminfo.mapper.StGbSipMapper; +import org.springblade.video_image.caminfo.service.IStGbSipService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class StGbSipServiceImpl implements IStGbSipService { + @Resource + StGbSipMapper stGbSipMapper; + + @Override + public IPage page(IPage page, LambdaQueryWrapper wrapper) { + return stGbSipMapper.selectPage(page,wrapper); + } + + @Override + public List list(LambdaQueryWrapper wrapper) { + return stGbSipMapper.selectList(wrapper); + } + + @Override + public StGbSip getOne(QueryWrapper wrapper) { + return stGbSipMapper.selectOne(wrapper); + } + + @Override + public boolean save(StGbSip entity) { + int count=stGbSipMapper.insert(entity); + return count>0; + } + + @Override + public boolean updateById(StGbSip entity) { + int count=stGbSipMapper.updateById(entity); + return count>0; + } + + @Override + public boolean delete(LambdaQueryWrapper wrapper) { + int count=stGbSipMapper.delete(wrapper); + return count>0; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/util/ParamUtil.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/util/ParamUtil.java new file mode 100644 index 0000000..c8708e7 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/caminfo/util/ParamUtil.java @@ -0,0 +1,56 @@ +package org.springblade.video_image.caminfo.util; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.video_image.entity.StCamInfo; +import org.springblade.video_image.entity.StGbCam; +import org.springblade.video_image.entity.StGbSip; + +import java.util.Map; + +public class ParamUtil { + public static LambdaQueryWrapper conditionStGbSip(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("gbfcd")!=null) { + wrapper.like(StGbSip::getGbfcd,param.get("gbfcd")); + } + if(param.get("gbny")!=null) { + wrapper.eq(StGbSip::getGbny,param.get("gbny")); + } + + return wrapper; + } + + public static LambdaQueryWrapper conditionStCamInfo(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("rscd")!=null) { + wrapper.like(StCamInfo::getRscd,param.get("rscd")); + } + if(param.get("mpcd")!=null) { + wrapper.like(StCamInfo::getMpcd,param.get("mpcd")); + } + if(param.get("camcd")!=null) { + wrapper.like(StCamInfo::getCamcd,param.get("camcd")); + } + if(param.get("camName")!=null) { + wrapper.like(StCamInfo::getCamName,param.get("camName")); + } + if(param.get("camType")!=null) { + wrapper.eq(StCamInfo::getCamType,param.get("camType")); + } + return wrapper; + } + + public static LambdaQueryWrapper conditionStGbCam(Map param){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + if(param.get("stcd")!=null) { + wrapper.like(StGbCam::getStcd,param.get("stcd")); + } + if(param.get("camcd")!=null) { + wrapper.eq(StGbCam::getCamcd,param.get("camcd")); + } + if(param.get("camsipcd")!=null) { + wrapper.like(StGbCam::getCamsipcd,param.get("camsipcd")); + } + return wrapper; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageConfigController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageConfigController.java new file mode 100644 index 0000000..f65d11f --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageConfigController.java @@ -0,0 +1,230 @@ +package org.springblade.video_image.imagewall.controller; + +import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; +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.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.tool.api.R; +//import org.springblade.real_data.fac.entity.BasePoint; +//import org.springblade.real_data.fac.utils.FacInfoFactory; +import org.springblade.video_image.imagewall.entity.ImageConfig; +import org.springblade.video_image.imagewall.entity.ImageConfigExample; +import org.springblade.video_image.imagewall.service.ImageConfigService; +import org.springblade.video_image.imagewall.util.ConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/videoImage/imageConfig") +@Api(value = "图片墙配置接口", tags = "图片墙配置接口") +public class ImageConfigController { + + private static Logger logger = LoggerFactory.getLogger(ImageConfigController.class); + + @Autowired + private ImageConfigService imageConfigService; + + @Autowired + private RealDataSearchClient realDataSearchClient; + + @Autowired + AnalyseDataSearchClient analyseDataSearchClient; + + private Map dealRealDataMap(List list){ + Map data=new HashMap<>(); + for (FieldsData fieldsData:list){ + data.put(fieldsData.getSignage(),fieldsData.getValue()); + } + return data; + } + + @RequestMapping(value="/getRealFiled", method = {RequestMethod.GET}) + @ApiOperation(notes ="根据id获取实时数据", value = "根据id获取实时数据") + public R getRealFiled(String deviceCode){ + Result> list=analyseDataSearchClient.getInstanceFieldByAnalyseCode(deviceCode,1,""); + List vos=list.getData(); + return R.data(vos); + } + + /** + * + *

Title: getRealDataById

+ *

Description: 根据站点id和点id获取实时数据

+ * @param deviceCodes 设备编码集合 + * @return 实时数据集合 + */ + @RequestMapping(value="/getRealDataById", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据id获取实时数据", value = "根据id获取实时数据") + public R getRealDataById(@RequestParam String[] deviceCodes) { + Map> dataMap = new HashMap<>(); + + try { + for(int i = 0; i < deviceCodes.length; i++){ + String deviceCode=deviceCodes[i]; + //获取实时值 + RealDataSearchPO po=new RealDataSearchPO(); + po.setAnalyzeCode(deviceCode); + Result> res=realDataSearchClient.getRealDataByDeviceCode(po); + dataMap.put(deviceCode, dealRealDataMap(res.getData())); + } + + // TODO: 对于dataMap 中的各个realId 对应的实时数据,做拼接处理,增加数据名和单位 + //查询出所有的配置记录 + Map imageConfigContent = new HashMap(); + ImageConfigExample example = new ImageConfigExample(); + List imageConfigs = imageConfigService.selectByExample(example); + //通过realId 逐条对比,将对应的value 拼接对应的数据名称 和 单位 + Set set = dataMap.keySet(); + Iterator iterator = set.iterator(); + while (iterator.hasNext()) { + String key = iterator.next(); + for(ImageConfig ic: imageConfigs) { + String value = dataMap.get(key).get(ic.getCode()); + if (null != key && key.equals(ic.getRealid())) { + String name = ic.getName(); + String unit = ic.getUnit(); + //重新组装数据,以realId 作为key, 配置项数据 作为value 的map 集合方式返回给前端 + String content = name + ": " + Double.valueOf(value) + unit; + imageConfigContent.put(key, content); + } + } + } + return R.data(imageConfigContent); + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + + + + /** + * + *

Title: addImageConfig

+ *

Description:添加站点属性配置

+ * @param imageConfig 属性配置信息 + * @return 操作结果 + */ + @RequestMapping(value="/addImageConfig", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="添加测站设备配置", value = "添加测站设备配置") + public R addImageConfig(@ModelAttribute ImageConfig imageConfig){ + + try { + + int status = imageConfigService.addImageConfig(imageConfig); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + + } + + } + + /** + * + *

Title: deleteImageConfig

+ *

Description: 删除站点设备属性配置

+ * @param id 属性配置id + * @return 操作结果 + */ + @RequestMapping(value="/deleteImageConfig", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="删除测站设备配置", value = "删除测站设备配置") + public R deleteImageConfig(@RequestParam Long id){ + + try { + + int status = imageConfigService.deleteImageConfig(id); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: updateImageConfig

+ *

Description: 更新属性配置

+ * @param imageConfig 属性数据 + * @return 操作结果 + */ + @RequestMapping(value="/updateImageConfig", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="更新测站设备配置", value = "更新测站设备配置") + public R updateImageConfig(@ModelAttribute ImageConfig imageConfig){ + + try { + + int status = imageConfigService.updateImageConfig(imageConfig); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: queryImageConfig

+ *

Description:查询站点设备属性配置

+ * @param id 属性配置id + * @return 属性数据结构信息 + */ + @RequestMapping(value="/queryImageConfig", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="查询测站设备配置", value = "查询测站设备配置") + public R queryImageConfig(@RequestParam Long id){ + + try { + ImageConfig imageConfig = imageConfigService.selectImageConfig(id); + return R.data(imageConfig); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: getConfigsByStcd

+ *

Description: 根据测站编码stcd获取其所有配置属性

+ * @param stcd 测站设备编码 + * @return 配置属性集合 + */ + @RequestMapping(value="/getConfigsByStcd", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据测站编码stcd获取其所有配置属性", value = "根据测站编码stcd获取其所有配置属性") + public R getConfigsByStcd(@RequestParam String stcd) { + + try { + ImageConfigExample example = new ImageConfigExample(); + ImageConfigExample.Criteria criteria = example.createCriteria(); + criteria.andStcdEqualTo(stcd); + List imageConfigs = imageConfigService.selectByExample(example); + return R.data(imageConfigs); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageInfoController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageInfoController.java new file mode 100644 index 0000000..857a25b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImageInfoController.java @@ -0,0 +1,172 @@ +package org.springblade.video_image.imagewall.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.video_image.imagewall.entity.ImageInfo; +import org.springblade.video_image.imagewall.service.ImageInfoService; +import org.springblade.video_image.imagewall.util.ConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * + * 图片数据放在公共库,不进行切库处理,因此查询操作不需要加@ChangeHZDataSource + * + */ +@RestController +@RequestMapping("/videoImage/imageInfo") +@Api(value = "图片墙图片数据接口", tags = "图片墙图片数据接口") +public class ImageInfoController { + + @Autowired + private ImageInfoService imageInfoService; + + @RequestMapping(value="/addImage", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="上传图片", value = "上传图片") + public R addImage(@RequestParam("data") MultipartFile file, HttpServletRequest request) throws Exception { + + try { + Object path = imageInfoService.addImage(file); + if (path!=null) { + return R.data(path); + } else { + return R.fail(500,"操作失败"); + } + }catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + @RequestMapping(value="/addImageInfo", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="手动添加图片", value = "手动添加图片") + public R addImageInfo(@ModelAttribute ImageInfo imageInfo){ + + try { + int status = imageInfoService.addImageInfo(imageInfo); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + }catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + @RequestMapping(value="/deleteImageInfo", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="删除手动添加的图片", value = "删除手动添加的图片") + public R deleteImageInfo(@RequestParam long Id){ + + try { + int status = imageInfoService.deleteImageInfo(Id); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + }catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + + /** + * + *

Title: selectNewestImageByDevId

+ *

Description: 根据测站编码stcd获取最新图片信息

+ * @param stcds 测站设备编码 + * @return 图片信息集合 + */ + @RequestMapping(value="/selectNewestImageByDevId", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据测站编码stcd获取最新图片信息", value = "根据测站编码stcd获取最新图片信息") + public R selectNewestImageByDevId( String[] stcds) { + try { + + List imageInfos = imageInfoService.selectNewestImageByDevId(stcds); + return R.data(imageInfos); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + /** + * + *

Title: selectImagesByDevIdAndTime

+ *

Description:根据测站编码stcd和时间范围获取图片信息

+ * @param stcd 测站设备编码 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 图片数据集合 + */ + @RequestMapping(value="/selectImagesByDevIdAndTime", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据测站编码stcd和时间范围获取图片信息", value = "根据测站编码stcd和时间范围获取图片信息") + public R selectImagesByDevIdAndTime(@RequestParam String stcd, + @ApiParam(value="查询开始时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="startTime") String startTime, + @ApiParam(value="查询结束时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="endTime") String endTime) { + + try { + + List imageInfos = imageInfoService.selectImagesByDevIdAndTime(stcd, + startTime, endTime); + return R.data(imageInfos); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + @RequestMapping(value="/pageQueryImagesByDevIdAndTime", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据测站编码stcd和时间范围分页获取图片信息", value = "根据测站编码stcd和时间范围分页获取图片信息") + public R pageQueryImagesByDevIdAndTime(String stcd, + @ApiParam(value="查询开始时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="startTime") String startTime, + @ApiParam(value="查询结束时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="endTime") String endTime, + Query query) { + try { + + IPage imageInfos = imageInfoService.pageQueryImagesByDevIdAndTime(stcd, + startTime, endTime, Condition.getPage(query)); + return R.data(imageInfos); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + @RequestMapping(value="/pageQueryManualImagesByDevIdAndTime", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据测站编码stcd和时间范围分页获取手动上传图片信息", value = "根据测站编码stcd和时间范围分页获取手动上传图片信息") + public R pageQueryManualImagesByDevIdAndTime(String stcd, + @ApiParam(value="查询开始时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="startTime") String startTime, + @ApiParam(value="查询结束时间字符串,格式为yyyy-MM-dd HH:mm:ss") @RequestParam(required=true, value="endTime") String endTime, + Query query) { + try { + + IPage imageInfos = imageInfoService.pageQueryManualImagesByDevIdAndTime(stcd, + startTime, endTime, Condition.getPage(query)); + return R.data(imageInfos); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImagePointController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImagePointController.java new file mode 100644 index 0000000..ad75708 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/controller/ImagePointController.java @@ -0,0 +1,601 @@ +package org.springblade.video_image.imagewall.controller; + +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.hzinfo.datasearch.analyse.domain.FieldsData; +import com.hnac.hzinfo.datasearch.real.po.RealDataSearchPO; +import com.hnac.hzinfo.sdk.core.response.Result; +import com.hnac.hzinfo.sdk.real.RealDataSearchClient; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 org.springblade.real_data.fac.dao.FactoryInfoDao; +//import org.springblade.real_data.fac.enums.PointType; +//import org.springblade.real_data.fac.utils.FacInfoFactory; +//import org.springblade.real_data.realdata.entity.Data; +//import org.springblade.real_data.realdata.service.RealDataService; +import org.springblade.hz3000_real_data.feign.IHz3000RealDataClient; +import org.springblade.hz3000_real_data.real.entity.Data; +import org.springblade.video_image.imagewall.entity.*; +import org.springblade.video_image.imagewall.service.ImageConfigService; +import org.springblade.video_image.imagewall.service.ImageInfoService; +import org.springblade.video_image.imagewall.service.ImagePointService; +import org.springblade.video_image.imagewall.util.Constants; +import org.springblade.video_image.imagewall.util.ConvertUtils; +import org.springblade.video_image.imagewall.vo.ImagePointVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; + +@RestController +@RequestMapping("/videoImage/imagePoint") +@Api(value = "图片墙数据点接口", tags = "图片墙数据点接口") +public class ImagePointController { + + private static Logger logger = LoggerFactory.getLogger(ImagePointController.class); + + @Autowired + ImagePointService imagePointService; + + @Autowired + ImageConfigService imageConfigService; + + @Autowired + private RealDataSearchClient realDataSearchClient; + + @Autowired + ImageInfoService imageInfoService; + + @Autowired + IHz3000RealDataClient hz3000RealDataClient; + + + /** + * + *

Title: addImagePoint

+ *

Description:添加测站设备信息

+ * @param imagePoint 测站设备数据结构 + * @return 操作结果 + */ + @RequestMapping(value="/addImagePoint", method = {RequestMethod.POST}) + @ApiOperation(notes ="添加测站", value = "添加测站") + public R addImagePoint(@RequestBody ImagePoint imagePoint){ + + try { + Long userId=AuthUtil.getUserId(); + + imagePoint.setCreateUser(userId); + imagePoint.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); + imagePoint.setCreateTime(new Date()); + + imagePoint.setUpdateTime(new Date()); + imagePoint.setUpdateUser(userId); + imagePoint.setIsDeleted(0); + + int count = imagePointService.addImagePoint(imagePoint); + if (count == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(count); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: deleteImagePoint

+ *

Description: 删除测站设备信息,逻辑删除,物理数据库中保留

+ * @param id 测站设备id + * @return 操作结果 + */ + @RequestMapping(value="/deleteImagePoint", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="删除测站", value = "删除测站") + public R deleteImagePoint(@RequestParam Long id){ + try { + + int status = imagePointService.deleteImagePoint(id); + if (status == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(status); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: updateImagePoint

+ *

Description: 更新测站设备信息

+ * @param imagePoint 测站数据结果 + * @return 操作结果 + */ + @RequestMapping(value="/updateImagePoint", method = {RequestMethod.POST}) + @ApiOperation(notes ="更新测站", value = "更新测站") + public R updateImagePoint(@RequestBody ImagePoint imagePoint){ + + try { + imagePoint.setUpdateTime(new Date()); + imagePoint.setUpdateUser(AuthUtil.getUserId()); + int count = imagePointService.updateImagePoint(imagePoint); + if (count == 1) { + return R.data("操作成功"); + } else { + String msg = ConvertUtils.errorCodeToMsg(count); + return R.fail(500,msg); + } + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + /** + * + *

Title: queryImagePoint

+ *

Description: 查询测站设备

+ * @param stcd 测站设备编码 + * @return 测站设备信息 + */ + @RequestMapping(value="/queryImagePoint", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="查询测站", value = "查询测站") + public R queryImagePoint(@RequestParam String stcd){ + + try { + ImagePoint imagePoint = imagePointService.selectImagePoint(stcd); + return R.data(imagePoint); + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + /** + * + *

Title: queryAllImagePoint

+ *

Description:查询所有测站设备信息

+ * @return 测站设备信息集合 + */ + @RequestMapping(value="/queryAllImagePoint", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="查询所有测站", value = "查询所有测站") + public R queryAllImagePoint(){ + + try { + List imagePoints = imagePointService.selelctAllImagePoint(); + return R.data(imagePoints); + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + + /** + * + *

Title: getRealDataByDeviceCods

+ *

Description: 获取点的实时数据信息

+ * @param deviceCodes 点id + * @return 点id和对应实时数据映射集合 + */ + //15133048833073742754: {value: 0, time: "2000-01-01 00:00:00", point: "", q: 1} + //根据realId集合获取实时数据 + public Map> getRealDataByDeviceCods(String[] deviceCodes) { + + Map> dataMap = new HashMap>(); + try{ + for(int i = 0; i < deviceCodes.length; i++){ + String deviceCode=deviceCodes[i]; + //获取实时值 + RealDataSearchPO po=new RealDataSearchPO(); + po.setAnalyzeCode(deviceCode); + Result> res=realDataSearchClient.getRealDataByDeviceCode(po); + dataMap.put(deviceCode, dealRealDataMap(res.getData())); + } + } catch (Exception e) { + + } + + return dataMap; + } + + + private Map dealRealDataMap(List list){ + Map data=new HashMap<>(); + for (FieldsData fieldsData:list){ + data.put(fieldsData.getSignage(),fieldsData.getValue()); + } + return data; + } + + /** + * + *

Title: queryImagePointRelateInfo

+ *

Description: 分页查询当前站中的所有测站设备图文实时数据

+ * @param deptId 机构id + * @param query 分页参数 + * @return + */ + // TODO: 后续stationId 改为从session 中获取 + @RequestMapping(value="/queryImagePointRelateInfo", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="分页查询当前站中的所有测站设备图文实时数据", value = "分页查询当前站中的所有测站设备图文实时数据") + public R queryImagePointRelateInfo(@RequestParam(required=false, value = "deptId")String deptId, + Query query){ + + ArrayList imagePointRelateInfoList = new ArrayList<>(); + try { + + List queryDeptIds = new ArrayList<>(); + //http://175.6.40.67:8092/hznet/sys/user/wkStationList?userId=admin + logger.debug("queryImagePointRelateInfo deptId is" + deptId); + // 根据和前端约定,修改参数: + //1、第一次加载前端传当前站点ID + if(!StringUtils.isBlank(deptId)){ + queryDeptIds.add(deptId); + } else { + //前端不传deptId的情况,后台自动从session中获取 + String sessionDeptId = AuthUtil.getDeptId(); + logger.debug("queryImagePointRelateInfo sessionDeptId is " + sessionDeptId); + queryDeptIds.add(sessionDeptId); + } + + // 查出站集合下面的所有设备集合(站和设备,一对多) + List stcdList = new ArrayList<>(); + // 分页查询只要对站下面的设备返回结果分页即可 + List imagePoints = null; + IPage imagePointsModel = imagePointService.pageQueryImagePonit(queryDeptIds, null, null, Condition.getPage(query)); + //整理出站点下的设备集合 + if (null != imagePointsModel) { + imagePoints = imagePointsModel.getRecords(); + } + + for(ImagePointVo imagePoint : imagePoints) { + stcdList.add(imagePoint.getStcd()); + } + //logger.debug("queryImagePointRelateInfo stcdList=" +stcdList); + + // 根据编码stcds 查询出所有符合条件的属性记录集合,对于属性中的热点数据,需要实时获取 + ImageConfigExample configExample = new ImageConfigExample(); + ImageConfigExample.Criteria configCri = configExample.createCriteria(); + // stcdList 不为空才作为条件查询 + if (null != stcdList && stcdList.size() > 0){ + configCri.andStcdIn(stcdList); + // 根据前面的设备集合,查询所有的属性集合 (设备和属性,一对多) + List imageConfigs = imageConfigService.selectByExample(configExample); + + // TODO: 根据stcd查询其对应的deptId, 还是的一个站一个站地循环查实时数据 + ArrayList pointsForOneStation = new ArrayList<>(); + ArrayList ycIdList = new ArrayList<>(); + + ArrayList deviceList = new ArrayList<>(); + + for(String sid : queryDeptIds){ + for (ImagePoint imagePoint : imagePoints){ + //找到某个站下的所有设备stcd + if (sid.equals(imagePoint.getCreateDept())){ + pointsForOneStation.add(imagePoint); + } + } + + for(ImagePoint imagePoint : pointsForOneStation){ + //再根据设备找设备下的所有属性集合config下的实时数据 + for(ImageConfig ic: imageConfigs) { + String type = ic.getType(); + String stcd = ic.getStcd(); + if (Constants.REAL_DATA_TYPE.equals(type) && + stcd.equals(imagePoint.getStcd())) { + //统一收集realId, 随后一次查询 + String deviceCode = ic.getDeviceCode(); + String realId = ic.getRealid(); + if(deviceCode!=null && !"".equals(deviceCode)) { + deviceList.add(deviceCode); + } + if(realId!=null && !"".equals(realId)) { + ycIdList.add(realId); + } + + } + } + } + + //使用realId集成,查询所有需要查询设备的各个实时数据集成,填充数据结构中的value + String[] ycIds = ycIdList.toArray(new String[ycIdList.size()]); + String[] deviceCodes = deviceList.toArray(new String[deviceList.size()]); + + Map> realDataByCodes = getRealDataByDeviceCods(deviceCodes); + Map realDataByIds = hz3000RealDataClient.getRealDataById(ycIds,"0"); + + logger.debug("realDataByCodes data for sid=" + sid +" realDataByCodes size is "+( realDataByCodes==null ? null: realDataByCodes.size())); + + for(ImageConfig ic: imageConfigs) { + String type = ic.getType(); + if (Constants.REAL_DATA_TYPE.equals(type)) { + String deviceCode = ic.getDeviceCode(); + String realId = ic.getRealid(); + //查到实时数据先存储到对应的数据结构内存,不存数据库 + if (deviceCode!=null && null != realDataByCodes && + null!= realDataByCodes.get(deviceCode)){ + String value = realDataByCodes.get(deviceCode).get(ic.getCode()); + ic.setValue(value); + } + if(realId!=null && realDataByIds!=null && null!= realDataByIds.get(deviceCode)){ + double value = realDataByIds.get(realId).getValue(); + BigDecimal dd=new BigDecimal(value); + ic.setValue(dd.setScale(3,BigDecimal.ROUND_HALF_UP).toString()); + } + else { + logger.error("queryImagePointRelateInfo realData is null ,please check the redis config"); + } + + } + } + + //下一个站之前先清空数据 + pointsForOneStation.clear(); + deviceList.clear(); + ycIdList.clear(); + } + + // 根据stcds 查询设备的最新图片信息 + String[] stcds =stcdList.toArray(new String[stcdList.size()]); + List imageInfos = imageInfoService.selectNewestImageByDevId(stcds); + + //根据stcd来组装各条数据 + for(ImagePoint imagePoint: imagePoints) { + String stcd = imagePoint.getStcd(); + ImagePointRelateInfo imagePointRelateInfo = new ImagePointRelateInfo(); + imagePointRelateInfo.setCreateDept(imagePoint.getCreateDept()); + imagePointRelateInfo.setStcd(imagePoint.getStcd()); + imagePointRelateInfo.setAddress(imagePoint.getAddress()); + imagePointRelateInfo.setCreateTime(imagePoint.getCreateTime()); + imagePointRelateInfo.setLgtd(imagePoint.getLgtd()); + imagePointRelateInfo.setLtid(imagePoint.getLtid()); + imagePointRelateInfo.setRemark(imagePoint.getRemark()); + imagePointRelateInfo.setStnm(imagePoint.getStnm()); + imagePointRelateInfo.setPno(imagePoint.getPno()); + imagePointRelateInfo.setDefaultimagepath(imagePoint.getDefaultimagepath()); + + + ArrayList imageConfigList = new ArrayList<>(); + for(ImageConfig imageConfig: imageConfigs) { + //刷选绑定stcd关联 + if (stcd.equals(imageConfig.getStcd())) { + imageConfigList.add(imageConfig); + } + } + // 设置属性配置集合 + imagePointRelateInfo.setImageConfigs(imageConfigList); + + int index=0; + int imageInfosCount = imageInfos.size(); + for(ImageInfo imageInfo: imageInfos) { + + //判断年月日时相同 + if(!checkSameHour(imageInfo)){ + imageInfo.setData(null); + } + + // 将最新图片设置到对应的stcd + if (stcd.equals(imageInfo.getStcd())) { + imagePointRelateInfo.setNewestImageInfo(imageInfo); + break; + } + //记录是否能找到最新图片,找不到的话需要查询上传的默认图片路径 + index++; + } + logger.debug("imageInfosCount="+imageInfosCount+" index="+index + " stcd="+stcd); + if (imageInfosCount == index){ + logger.debug("use default image to show"); + //使用上传的默认图片地址构造一个最新图片对象 + ImageInfo defaultImage = new ImageInfo(); + defaultImage.setData(imagePoint.getDefaultimagepath()); + defaultImage.setStcd(imagePoint.getStcd()); + imagePointRelateInfo.setNewestImageInfo(defaultImage); + } + + //将数据组装好后放入列表集合中 + imagePointRelateInfoList.add(imagePointRelateInfo); + } + } + + + IPage imagePointRelateInfos = new Page(imagePointsModel.getCurrent(),imagePointsModel.getSize()); + imagePointRelateInfos.setRecords(imagePointRelateInfoList); + imagePointRelateInfos.setPages(imagePointsModel.getPages()); + imagePointRelateInfos.setTotal(imagePointsModel.getTotal()); + return R.data(imagePointRelateInfos); + + } catch (Exception e) { +// e.printStackTrace(); + return R.fail(500,"操作失败"); + } + } + + + private boolean checkSameHour(ImageInfo imageInfo){ + if(imageInfo!=null && imageInfo.getTime()!=null){ + Date now=new Date(); + Date old=imageInfo.getTime(); + + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); + + String nowStr=sdf.format(now); + String oldStr=sdf.format(old); + + if(nowStr.equals(oldStr)){ + return true; + } + } + return false; + } + + /** + * + *

Title: pageQueryImagePoint

+ *

Description:分页查询所有测站设备信息

+ * @param deptId 站点id + * @param stcd 测站设备编码 + * @param stnm 测站设备名称 + * @param query 分页参数 + * @return + */ + @RequestMapping(value="/pageQueryImagePoint", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="分页查询所有测站", value = "分页查询所有测站") + public R pageQueryImagePoint(@ApiParam(value = "deptId,精确匹配") @RequestParam(required=false, value = "deptId")String deptId, + @ApiParam(value = "测站设备编码,精确匹配") @RequestParam(required=false, value = "stcd") String stcd, + @ApiParam(value = "测站设备名称,模糊匹配") @RequestParam(required=false, value = "stnm")String stnm, + Query query){ + + try { + + List deptIds = new ArrayList<>(); + // 根据和前端约定,修改参数: + //1、第一次加载前端传当前站点ID + //2、前端查询站点下拉框中增加全部传为 ALL + if(!StringUtils.isBlank(deptId)){ + deptIds.add(deptId); + } else { + //前端不传deptId的情况,后台自动从session中获取 + deptId = AuthUtil.getDeptId(); + deptIds.add(deptId); + } + logger.debug("queryImagePointRelateInfo sessionDeptId is " + deptId); + + IPage imagePoints = imagePointService.pageQueryImagePonit(deptIds, stcd, stnm, Condition.getPage(query)); + + return R.data(imagePoints); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + } + + + /** + * + *

Title: pageQueryImagePointOrderBy

+ *

Description:分根据排序要求页查询所有测站设备信息

+ * @param request + * @param deptId 机构id + * @param stcd 测站设备编码 + * @param stnm 测站设备名称 + * @param query 分页参数 + * @param orderByField 排序参数 + * @return + */ + @RequestMapping(value="/pageQueryImagePointOrderBy", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="根据排序要求分页查询所有测站", value = "根据排序要求分页查询所有测站") + public R pageQueryImagePointOrderBy(HttpServletRequest request, + @ApiParam(value = "机构id,精确匹配") @RequestParam(required=false, value = "deptId")String deptId, + @ApiParam(value = "测站设备编码,精确匹配") @RequestParam(required=false, value = "stcd") String stcd, + @ApiParam(value = "测站设备名称,模糊匹配") @RequestParam(required=false, value = "stnm")String stnm, + Query query, + @ApiParam(value = "排序参数,只能传入stationName, stcd, stnm, pno 几个字段与 ASC升序 DESC降序 的排列组合,如果字段中有中文,需要将其转为gbk编码排序" + + "例如按照设备编码升序排序,stcd ASC, 按照设备名称降序排序,CONVERT(stnm USING gbk) DESC") + @RequestParam(required=false, value = "orderByField")String orderByField){ + try { + + // TODO: deptId 参数要改为列表,如果前端传入为空,则后台默认从session中获取userId,然后调用接口获取账号下的deptIds + List queryDeptIds = new ArrayList<>(); + logger.debug("queryImagePointRelateInfo deptId is " + deptId); + // 根据和前端约定,修改参数: + //1、第一次加载前端传当前站点ID + //2、前端查询站点下拉框中增加全部传为 ALL + if(!StringUtils.isBlank(deptId)){ + queryDeptIds.add(deptId); + } else { + //前端不传deptId的情况,后台自动从session中获取 + String sessionDeptId = AuthUtil.getDeptId(); + logger.debug("queryImagePointRelateInfo sessionDeptId is " + sessionDeptId); + queryDeptIds.add(sessionDeptId); + } + + IPage imagePoints = imagePointService.pageQueryImagePonitOrderBy(queryDeptIds, stcd, stnm, Condition.getPage(query), orderByField); + return R.data(imagePoints); + + } catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + + + @RequestMapping(value="/getNewestImageForStation", method = {RequestMethod.POST, RequestMethod.GET}) + @ApiOperation(notes ="获取站点下所有设备中最新采集的图片", value = "获取站点下所有设备中最新采集的图片") + public R getNewestImageForStation(HttpServletRequest request, + @ApiParam(value = "机构id,精确匹配") @RequestParam(required=false, value = "deptId")String deptId){ + + try { + List queryDeptIds = new ArrayList<>(); + + logger.debug("getNewestImageForStation deptId is " + deptId); + // 根据和前端约定,修改参数: + //1、第一次加载前端传当前站点ID + //2、前端查询站点下拉框中增加全部传为 ALL + if(!StringUtils.isBlank(deptId)){ + queryDeptIds.add(deptId); + } else { + //前端不传deptId的情况,后台自动从session中获取 + String sessionDeptId = AuthUtil.getDeptId(); + logger.debug("getNewestImageForStation sessionDeptId is " + sessionDeptId); + queryDeptIds.add(sessionDeptId); + } + + LambdaQueryWrapper exp=new LambdaQueryWrapper(); + exp.in(ImagePoint::getCreateDept,queryDeptIds); + List imagePoints = imagePointService.selectByExample(exp); + List stcds = new ArrayList<>(); + for(ImagePoint imagePoint: imagePoints){ + String stcd = imagePoint.getStcd(); + stcds.add(stcd); + } + + String[] stcdStrs = stcds.toArray(new String[stcds.size()]); + int len = (null==stcdStrs)?0:stcdStrs.length; + logger.debug("getNewestImageForStation stcdStrs length="+ len); + //如果没有查到任何设备就不要查询,因为查询接口会查所有设备,然后根据stcds过滤,没有则不过滤 + ImageInfo newestImageInfoForAllDevice = null; + if (len>0){ + List imageInfos = imageInfoService.selectNewestImageByDevId(stcdStrs); + if (null!=imageInfos && imageInfos.size()>0){ + int index = 0; + for(ImageInfo imageInfo: imageInfos){ + //将每次获取的第一个都赋值给最新图片变量,随后遍历比较时间如果有时间新的,则替换最新图片 + if (index == 0){ + newestImageInfoForAllDevice = imageInfo; + } + Date time = imageInfo.getTime(); + Date newestImageTime = newestImageInfoForAllDevice.getTime(); + if (time.after(newestImageTime)){ + newestImageInfoForAllDevice = imageInfo; + } + index++; + } + }else { + logger.debug("getNewestImageForStation 没有查询到图片"); + } + } + + return R.data(newestImageInfoForAllDevice); + + }catch (Exception e) { + return R.fail(500,"操作失败"); + } + + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfig.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfig.java new file mode 100644 index 0000000..d6d944a --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfig.java @@ -0,0 +1,29 @@ +package org.springblade.video_image.imagewall.entity; + +import io.swagger.annotations.ApiParam; +import lombok.Data; + +@Data +public class ImageConfig { + private Long id; + + private String stcd; + + private String name; + + @ApiParam(value="配置参数中的type有两种:0 代表常量数据, 1代表热点数据") + private String type; + + private String realid;//旧版本的实时数据id + + private String deviceCode;//分析模型code 获取实时数据 + + private Integer dataSource; + + private String code;//属性编码 + + private String value; + + private String unit; + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfigExample.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfigExample.java new file mode 100644 index 0000000..b2edf28 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageConfigExample.java @@ -0,0 +1,680 @@ +package org.springblade.video_image.imagewall.entity; + +import java.util.ArrayList; +import java.util.List; + +public class ImageConfigExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ImageConfigExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("ID is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("ID is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("ID =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("ID <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("ID >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("ID >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("ID <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("ID <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("ID in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("ID not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("ID between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("ID not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andStcdIsNull() { + addCriterion("STCD is null"); + return (Criteria) this; + } + + public Criteria andStcdIsNotNull() { + addCriterion("STCD is not null"); + return (Criteria) this; + } + + public Criteria andStcdEqualTo(String value) { + addCriterion("STCD =", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotEqualTo(String value) { + addCriterion("STCD <>", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdGreaterThan(String value) { + addCriterion("STCD >", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdGreaterThanOrEqualTo(String value) { + addCriterion("STCD >=", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLessThan(String value) { + addCriterion("STCD <", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLessThanOrEqualTo(String value) { + addCriterion("STCD <=", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLike(String value) { + addCriterion("STCD like", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotLike(String value) { + addCriterion("STCD not like", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdIn(List values) { + addCriterion("STCD in", values, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotIn(List values) { + addCriterion("STCD not in", values, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdBetween(String value1, String value2) { + addCriterion("STCD between", value1, value2, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotBetween(String value1, String value2) { + addCriterion("STCD not between", value1, value2, "stcd"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("NAME is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("NAME is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("NAME =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("NAME <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("NAME >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("NAME >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("NAME <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("NAME <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("NAME like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("NAME not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("NAME in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("NAME not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("NAME between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("NAME not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("TYPE is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("TYPE is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("TYPE =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("TYPE <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("TYPE >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("TYPE >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("TYPE <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("TYPE <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("TYPE like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("TYPE not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("TYPE in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("TYPE not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("TYPE between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("TYPE not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andRealidIsNull() { + addCriterion("REALID is null"); + return (Criteria) this; + } + + public Criteria andRealidIsNotNull() { + addCriterion("REALID is not null"); + return (Criteria) this; + } + + public Criteria andRealidEqualTo(String value) { + addCriterion("REALID =", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidNotEqualTo(String value) { + addCriterion("REALID <>", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidGreaterThan(String value) { + addCriterion("REALID >", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidGreaterThanOrEqualTo(String value) { + addCriterion("REALID >=", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidLessThan(String value) { + addCriterion("REALID <", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidLessThanOrEqualTo(String value) { + addCriterion("REALID <=", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidLike(String value) { + addCriterion("REALID like", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidNotLike(String value) { + addCriterion("REALID not like", value, "realid"); + return (Criteria) this; + } + + public Criteria andRealidIn(List values) { + addCriterion("REALID in", values, "realid"); + return (Criteria) this; + } + + public Criteria andRealidNotIn(List values) { + addCriterion("REALID not in", values, "realid"); + return (Criteria) this; + } + + public Criteria andRealidBetween(String value1, String value2) { + addCriterion("REALID between", value1, value2, "realid"); + return (Criteria) this; + } + + public Criteria andRealidNotBetween(String value1, String value2) { + addCriterion("REALID not between", value1, value2, "realid"); + return (Criteria) this; + } + + public Criteria andValueIsNull() { + addCriterion("VALUE is null"); + return (Criteria) this; + } + + public Criteria andValueIsNotNull() { + addCriterion("VALUE is not null"); + return (Criteria) this; + } + + public Criteria andValueEqualTo(String value) { + addCriterion("VALUE =", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotEqualTo(String value) { + addCriterion("VALUE <>", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThan(String value) { + addCriterion("VALUE >", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThanOrEqualTo(String value) { + addCriterion("VALUE >=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThan(String value) { + addCriterion("VALUE <", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThanOrEqualTo(String value) { + addCriterion("VALUE <=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLike(String value) { + addCriterion("VALUE like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotLike(String value) { + addCriterion("VALUE not like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueIn(List values) { + addCriterion("VALUE in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueNotIn(List values) { + addCriterion("VALUE not in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueBetween(String value1, String value2) { + addCriterion("VALUE between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andValueNotBetween(String value1, String value2) { + addCriterion("VALUE not between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andUnitIsNull() { + addCriterion("UNIT is null"); + return (Criteria) this; + } + + public Criteria andUnitIsNotNull() { + addCriterion("UNIT is not null"); + return (Criteria) this; + } + + public Criteria andUnitEqualTo(String value) { + addCriterion("UNIT =", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotEqualTo(String value) { + addCriterion("UNIT <>", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitGreaterThan(String value) { + addCriterion("UNIT >", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitGreaterThanOrEqualTo(String value) { + addCriterion("UNIT >=", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLessThan(String value) { + addCriterion("UNIT <", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLessThanOrEqualTo(String value) { + addCriterion("UNIT <=", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLike(String value) { + addCriterion("UNIT like", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotLike(String value) { + addCriterion("UNIT not like", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitIn(List values) { + addCriterion("UNIT in", values, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotIn(List values) { + addCriterion("UNIT not in", values, "unit"); + return (Criteria) this; + } + + public Criteria andUnitBetween(String value1, String value2) { + addCriterion("UNIT between", value1, value2, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotBetween(String value1, String value2) { + addCriterion("UNIT not between", value1, value2, "unit"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfo.java new file mode 100644 index 0000000..dbebafb --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfo.java @@ -0,0 +1,60 @@ +package org.springblade.video_image.imagewall.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +public class ImageInfo { + private Long id; + + private String stcd; + + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date time; + + private String data; + + private String manualpath; + + public String getManualpath() { + return manualpath; + } + + public void setManualpath(String manualpath) { + this.manualpath = manualpath; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd == null ? null : stcd.trim(); + } + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfoExample.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfoExample.java new file mode 100644 index 0000000..dfc1a45 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImageInfoExample.java @@ -0,0 +1,391 @@ +package org.springblade.video_image.imagewall.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class ImageInfoExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ImageInfoExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("ID is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("ID is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("ID =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("ID <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("ID >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("ID >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("ID <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("ID <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("ID in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("ID not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("ID between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("ID not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andStcdIsNull() { + addCriterion("STCD is null"); + return (Criteria) this; + } + + public Criteria andStcdIsNotNull() { + addCriterion("STCD is not null"); + return (Criteria) this; + } + + public Criteria andStcdEqualTo(String value) { + addCriterion("STCD =", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotEqualTo(String value) { + addCriterion("STCD <>", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdGreaterThan(String value) { + addCriterion("STCD >", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdGreaterThanOrEqualTo(String value) { + addCriterion("STCD >=", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLessThan(String value) { + addCriterion("STCD <", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLessThanOrEqualTo(String value) { + addCriterion("STCD <=", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdLike(String value) { + addCriterion("STCD like", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotLike(String value) { + addCriterion("STCD not like", value, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdIn(List values) { + addCriterion("STCD in", values, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotIn(List values) { + addCriterion("STCD not in", values, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdBetween(String value1, String value2) { + addCriterion("STCD between", value1, value2, "stcd"); + return (Criteria) this; + } + + public Criteria andStcdNotBetween(String value1, String value2) { + addCriterion("STCD not between", value1, value2, "stcd"); + return (Criteria) this; + } + + public Criteria andTimeIsNull() { + addCriterion("TIME is null"); + return (Criteria) this; + } + + public Criteria andTimeIsNotNull() { + addCriterion("TIME is not null"); + return (Criteria) this; + } + + public Criteria andTimeEqualTo(Date value) { + addCriterion("TIME =", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeNotEqualTo(Date value) { + addCriterion("TIME <>", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeGreaterThan(Date value) { + addCriterion("TIME >", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeGreaterThanOrEqualTo(Date value) { + addCriterion("TIME >=", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeLessThan(Date value) { + addCriterion("TIME <", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeLessThanOrEqualTo(Date value) { + addCriterion("TIME <=", value, "time"); + return (Criteria) this; + } + + public Criteria andTimeIn(List values) { + addCriterion("TIME in", values, "time"); + return (Criteria) this; + } + + public Criteria andTimeNotIn(List values) { + addCriterion("TIME not in", values, "time"); + return (Criteria) this; + } + + public Criteria andTimeBetween(Date value1, Date value2) { + addCriterion("TIME between", value1, value2, "time"); + return (Criteria) this; + } + + public Criteria andTimeNotBetween(Date value1, Date value2) { + addCriterion("TIME not between", value1, value2, "time"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePoint.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePoint.java new file mode 100644 index 0000000..5744111 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePoint.java @@ -0,0 +1,89 @@ +package org.springblade.video_image.imagewall.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import org.springblade.core.mp.base.BaseEntity; + +@TableName("image_point") +public class ImagePoint extends BaseEntity { + private String stcd; + + private Integer pno; + + private String stnm; + + private Double lgtd; + + private Double ltid; + + private String address; + + private String remark; + + private String defaultimagepath; + + + public String getStcd() { + return stcd; + } + + public void setStcd(String stcd) { + this.stcd = stcd == null ? null : stcd.trim(); + } + + + public Integer getPno() { + return pno; + } + + public void setPno(Integer pno) { + this.pno = pno; + } + + public String getStnm() { + return stnm; + } + + public void setStnm(String stnm) { + this.stnm = stnm == null ? null : stnm.trim(); + } + + public Double getLgtd() { + return lgtd; + } + + public void setLgtd(Double lgtd) { + this.lgtd = lgtd; + } + + public Double getLtid() { + return ltid; + } + + public void setLtid(Double ltid) { + this.ltid = ltid; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address == null ? null : address.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getDefaultimagepath() { + return defaultimagepath; + } + + public void setDefaultimagepath(String defaultimagepath) { + this.defaultimagepath = defaultimagepath == null ? null : defaultimagepath.trim(); + } +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePointRelateInfo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePointRelateInfo.java new file mode 100644 index 0000000..74f4df1 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/entity/ImagePointRelateInfo.java @@ -0,0 +1,34 @@ +package org.springblade.video_image.imagewall.entity; + +import java.util.List; + +public class ImagePointRelateInfo extends ImagePoint{ + + //属性配置 + private List imageConfigs; + + //最新快照图片,只有一张 + private ImageInfo newestImageInfo; + + public List getImageConfigs() { + return imageConfigs; + } + + public void setImageConfigs(List imageConfigs) { + this.imageConfigs = imageConfigs; + } + + public ImageInfo getNewestImageInfo() { + return newestImageInfo; + } + + public void setNewestImageInfo(ImageInfo newestImageInfo) { + this.newestImageInfo = newestImageInfo; + } + + + + + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.java new file mode 100644 index 0000000..a774dd9 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.java @@ -0,0 +1,34 @@ +package org.springblade.video_image.imagewall.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.video_image.imagewall.entity.ImageConfig; +import org.springblade.video_image.imagewall.entity.ImageConfigExample; + +import java.util.List; + +public interface ImageConfigMapper { + int countByExample(ImageConfigExample example); + + int deleteByExample(ImageConfigExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ImageConfig record); + + int insertSelective(ImageConfig record); + + List selectByExample(ImageConfigExample example); + + ImageConfig selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ImageConfig record, @Param("example") ImageConfigExample example); + + int updateByExample(@Param("record") ImageConfig record, @Param("example") ImageConfigExample example); + + int updateByPrimaryKeySelective(ImageConfig record); + + int updateByPrimaryKey(ImageConfig record); + + //插入多条记录 + int insertImageConfigs(List record); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.xml new file mode 100644 index 0000000..68a84f5 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageConfigMapper.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + ID, STCD, NAME, TYPE, REALID, VALUE, UNIT,DEVICE_CODE,CODE,DATA_SOURCE + + + + + delete from image_config + where ID = #{id,jdbcType=BIGINT} + + + delete from image_config + + + + + + insert into image_config (ID, STCD, NAME, TYPE, + REALID, VALUE, UNIT,DEVICE_CODE,CODE,DATA_SOURCE + ) + values (#{id,jdbcType=BIGINT}, #{stcd,jdbcType=CHAR}, #{name,jdbcType=VARCHAR}, #{type,jdbcType=CHAR}, + #{realid,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, + #{deviceCode,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR},#{dataSource,jdbcType=INTEGER} + ) + + + insert into image_config + + + ID, + + + STCD, + + + NAME, + + + TYPE, + + + REALID, + + + VALUE, + + + UNIT, + + + DEVICE_CODE, + + + CODE, + + + DATA_SOURCE + + + + + #{id,jdbcType=BIGINT}, + + + #{stcd,jdbcType=CHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{type,jdbcType=CHAR}, + + + #{realid,jdbcType=VARCHAR}, + + + #{value,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + #{deviceCode,jdbcType=VARCHAR}, + + + #{code,jdbcType=VARCHAR}, + + + #{dataSource,jdbcType=INTEGER} + + + + + + update image_config + + + ID = #{record.id,jdbcType=BIGINT}, + + + STCD = #{record.stcd,jdbcType=CHAR}, + + + NAME = #{record.name,jdbcType=VARCHAR}, + + + TYPE = #{record.type,jdbcType=CHAR}, + + + REALID = #{record.realid,jdbcType=VARCHAR}, + + + VALUE = #{record.value,jdbcType=VARCHAR}, + + + UNIT = #{record.unit,jdbcType=VARCHAR}, + + + DEVICE_CODE = #{record.deviceCode,jdbcType=VARCHAR}, + + + CODE = #{record.code,jdbcType=VARCHAR}, + + + DATA_SOURCE = #{record.dataSource,jdbcType=INTEGER} + + + + + + + + update image_config + set ID = #{record.id,jdbcType=BIGINT}, + STCD = #{record.stcd,jdbcType=CHAR}, + NAME = #{record.name,jdbcType=VARCHAR}, + TYPE = #{record.type,jdbcType=CHAR}, + REALID = #{record.realid,jdbcType=VARCHAR}, + VALUE = #{record.value,jdbcType=VARCHAR}, + UNIT = #{record.unit,jdbcType=VARCHAR}, + DEVICE_CODE = #{record.deviceCode,jdbcType=VARCHAR}, + CODE = #{record.code,jdbcType=VARCHAR}, + DATA_SOURCE = #{record.dataSource,jdbcType=INTEGER} + + + + + + update image_config + + + STCD = #{stcd,jdbcType=CHAR}, + + + NAME = #{name,jdbcType=VARCHAR}, + + + TYPE = #{type,jdbcType=CHAR}, + + + REALID = #{realid,jdbcType=VARCHAR}, + + + VALUE = #{value,jdbcType=VARCHAR}, + + + UNIT = #{unit,jdbcType=VARCHAR}, + + + DEVICE_CODE = #{deviceCode,jdbcType=VARCHAR}, + + + CODE = #{code,jdbcType=VARCHAR}, + + + DATA_SOURCE = #{dataSource,jdbcType=INTEGER} + + + where ID = #{id,jdbcType=BIGINT} + + + update image_config + set STCD = #{stcd,jdbcType=CHAR}, + NAME = #{name,jdbcType=VARCHAR}, + TYPE = #{type,jdbcType=CHAR}, + REALID = #{realid,jdbcType=VARCHAR}, + VALUE = #{value,jdbcType=VARCHAR}, + UNIT = #{unit,jdbcType=VARCHAR}, + DEVICE_CODE = #{deviceCode,jdbcType=VARCHAR}, + CODE = #{code,jdbcType=VARCHAR}, + DATA_SOURCE = #{dataSource,jdbcType=INTEGER} + where ID = #{id,jdbcType=BIGINT} + + + + insert into `image_config`(stcd,name,type,realid,value,unit,DEVICE_CODE,CODE,DATA_SOURCE) values + + (#{item.stcd},#{item.name},#{item.type},#{item.realid},#{item.value}, + #{item.unit},#{item.deviceCode},#{item.code},#{item.dataSource}) + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.java new file mode 100644 index 0000000..2e74da8 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.java @@ -0,0 +1,63 @@ +package org.springblade.video_image.imagewall.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.video_image.imagewall.entity.ImageInfo; +import org.springblade.video_image.imagewall.entity.ImageInfoExample; + +import java.util.List; + +public interface ImageInfoMapper { + int countByExample(ImageInfoExample example); + + int deleteByExample(ImageInfoExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ImageInfo record); + + int insertSelective(ImageInfo record); + + List selectByExampleWithBLOBs(ImageInfoExample example); + + List selectByExample(ImageInfoExample example); + + ImageInfo selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ImageInfo record, @Param("example") ImageInfoExample example); + + int updateByExampleWithBLOBs(@Param("record") ImageInfo record, @Param("example") ImageInfoExample example); + + int updateByExample(@Param("record") ImageInfo record, @Param("example") ImageInfoExample example); + + int updateByPrimaryKeySelective(ImageInfo record); + + int updateByPrimaryKeyWithBLOBs(ImageInfo record); + + int updateByPrimaryKey(ImageInfo record); + + //根据设备stcds查询各个设备最新图片信息 + List selectNewestImageByDevId(String[] stcds); + //根据设备编码和起始时间查询某个设备的图片信息集合 + List selectImagesByDevIdAndTime(@Param("stcd") String stcd, + @Param("startTime") String startTime, + @Param("endTime") String endTime); + + IPage pageQueryImagesByDevIdAndTime(@Param("stcd") String stcd, + @Param("startTime") String startTime, + @Param("endTime") String endTime, + IPage page); + + //手动插入数据 + int insertManualImageInfo(ImageInfo record); + + //查询某个设备某个时刻是否有手动上传的图片 + List selectImageInfoByStcdAndTime(@Param("stcd") String stcd, + @Param("time") String time); + + IPage pageQueryManualImagesByDevIdAndTime(@Param("stcd") String stcd, + @Param("startTime") String startTime, + @Param("endTime") String endTime, + IPage page); + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.xml new file mode 100644 index 0000000..9bb0816 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImageInfoMapper.xml @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + ID, STCD, TIME + + + DATA + + + + + + delete from image_info + where ID = #{id,jdbcType=BIGINT} + + + delete from image_info + + + + + + insert into image_info (ID, STCD, TIME, + DATA) + values (#{id,jdbcType=BIGINT}, #{stcd,jdbcType=CHAR}, #{time,jdbcType=TIMESTAMP}, + #{data,jdbcType=LONGVARBINARY}) + + + insert into image_info + + + ID, + + + STCD, + + + TIME, + + + DATA, + + + + + #{id,jdbcType=BIGINT}, + + + #{stcd,jdbcType=CHAR}, + + + #{time,jdbcType=TIMESTAMP}, + + + #{data,jdbcType=LONGVARBINARY}, + + + + + + update image_info + + + ID = #{record.id,jdbcType=BIGINT}, + + + STCD = #{record.stcd,jdbcType=CHAR}, + + + TIME = #{record.time,jdbcType=TIMESTAMP}, + + + DATA = #{record.data,jdbcType=LONGVARBINARY}, + + + + + + + + update image_info + set ID = #{record.id,jdbcType=BIGINT}, + STCD = #{record.stcd,jdbcType=CHAR}, + TIME = #{record.time,jdbcType=TIMESTAMP}, + DATA = #{record.data,jdbcType=LONGVARBINARY} + + + + + + update image_info + set ID = #{record.id,jdbcType=BIGINT}, + STCD = #{record.stcd,jdbcType=CHAR}, + TIME = #{record.time,jdbcType=TIMESTAMP} + + + + + + update image_info + + + STCD = #{stcd,jdbcType=CHAR}, + + + TIME = #{time,jdbcType=TIMESTAMP}, + + + DATA = #{data,jdbcType=LONGVARBINARY}, + + + where ID = #{id,jdbcType=BIGINT} + + + update image_info + set STCD = #{stcd,jdbcType=CHAR}, + TIME = #{time,jdbcType=TIMESTAMP}, + DATA = #{data,jdbcType=LONGVARBINARY} + where ID = #{id,jdbcType=BIGINT} + + + update image_info + set STCD = #{stcd,jdbcType=CHAR}, + TIME = #{time,jdbcType=TIMESTAMP} + where ID = #{id,jdbcType=BIGINT} + + + + + + + + + + + + + + + insert into image_info + + + STCD, + + + TIME, + + + MANUALPATH, + + + + + + #{stcd,jdbcType=CHAR}, + + + #{time,jdbcType=TIMESTAMP}, + + + #{manualpath,jdbcType=VARCHAR}, + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.java new file mode 100644 index 0000000..2839b1b --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.java @@ -0,0 +1,24 @@ +package org.springblade.video_image.imagewall.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.video_image.imagewall.entity.ImagePoint; +import org.springblade.video_image.imagewall.vo.ImagePointVo; + +import java.util.List; + +public interface ImagePointMapper extends BaseMapper { +// int countByExample(ImagePointExample example); + + IPage pageQueryImagePonit(@Param("deptIds") List deptIds, + @Param("stcd") String stcd, + @Param("stnm") String stnm, + IPage page); + + IPage pageQueryImagePonitOrderBy(@Param("deptIds") List deptIds, + @Param("stcd") String stcd, + @Param("stnm") String stnm, + IPage page, + @Param("orderByField") String orderByField); +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.xml b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.xml new file mode 100644 index 0000000..c1ad66d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/mapper/ImagePointMapper.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + ID,STCD, STATIONID, PNO, STNM, LGTD, LTID, ADDRESS, CREATETIME, REMARK, DEFAULTIMAGEPATH + + + + + + + + \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageConfigService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageConfigService.java new file mode 100644 index 0000000..8594d71 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageConfigService.java @@ -0,0 +1,24 @@ +package org.springblade.video_image.imagewall.service; + +import org.springblade.video_image.imagewall.entity.ImageConfig; +import org.springblade.video_image.imagewall.entity.ImageConfigExample; + +import java.util.List; + + +public interface ImageConfigService { + + public int addImageConfig(ImageConfig imageConfig); + + public int deleteImageConfig(Long id); + + public int updateImageConfig(ImageConfig imageConfig); + + public ImageConfig selectImageConfig(Long id); + + //查询配置集成 + public List selectByExample(ImageConfigExample example); + + //一次添加多条数据 + public int addImageConfigs(List imageConfigs); +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageInfoService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageInfoService.java new file mode 100644 index 0000000..b7ec100 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImageInfoService.java @@ -0,0 +1,31 @@ +package org.springblade.video_image.imagewall.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.video_image.imagewall.entity.ImageInfo; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +public interface ImageInfoService { + + String addImage(MultipartFile file); + + // 根据设备编码集合查询对应设备的最新图片信息集合 + public List selectNewestImageByDevId(String[] stcds); + + //根据设备编码和时间范围,查询某个设备一段时间的图片集合 + public List selectImagesByDevIdAndTime(String stcd, + String startTime, String endTime); + + IPage pageQueryImagesByDevIdAndTime(String stcd, String startTime, String endTime, + IPage page); + + public int addImageInfo(ImageInfo imageInfo); + + IPage pageQueryManualImagesByDevIdAndTime(String stcd, + String startTime, String endTime, IPage page); + + public int deleteImageInfo(long id); + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImagePointService.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImagePointService.java new file mode 100644 index 0000000..08d2c02 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/ImagePointService.java @@ -0,0 +1,34 @@ +package org.springblade.video_image.imagewall.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.video_image.imagewall.entity.ImagePoint; +import org.springblade.video_image.imagewall.vo.ImagePointVo; + +import java.util.List; + +public interface ImagePointService { + + public int addImagePoint(ImagePoint imagePoint); + + public int deleteImagePoint(Long id); + + public int updateImagePoint(ImagePoint imagePoint); + + public ImagePoint selectImagePoint(String stcd); + + public List selectByExample(LambdaQueryWrapper exp); + + public List selelctAllImagePoint(); + + IPage pageQueryImagePonit(List stationIds, String stcd, String stnm, + IPage page); + + public IPage pageQueryImagePonitOrderBy(List stationIds, + String stcd, + String stnm, + IPage page, + String orderByField); + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageConfigServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageConfigServiceImpl.java new file mode 100644 index 0000000..f087078 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageConfigServiceImpl.java @@ -0,0 +1,119 @@ +package org.springblade.video_image.imagewall.service.impl; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.video_image.imagewall.entity.ImageConfig; +import org.springblade.video_image.imagewall.entity.ImageConfigExample; +import org.springblade.video_image.imagewall.mapper.ImageConfigMapper; +import org.springblade.video_image.imagewall.service.ImageConfigService; +import org.springblade.video_image.imagewall.util.Constants; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + + +@Service +public class ImageConfigServiceImpl implements ImageConfigService { + + private static Logger logger = LoggerFactory.getLogger(ImageConfigServiceImpl.class); + + @Resource + ImageConfigMapper imageConfigMapper; + + @Override + public int addImageConfig(ImageConfig imageConfig) { + // 判断同一个设备stcd的是否有同名称属性 + if (null != imageConfig) { + String stcd = imageConfig.getStcd(); + String name = imageConfig.getName(); + if (!StringUtils.isBlank(stcd) && !StringUtils.isBlank(name)) { + ImageConfigExample example = new ImageConfigExample(); + ImageConfigExample.Criteria criteria = example.createCriteria(); + criteria.andStcdEqualTo(stcd); + criteria.andNameEqualTo(name); + List imageConfigs = imageConfigMapper.selectByExample(example); + if (null != imageConfigs && imageConfigs.size() > 0) { + logger.error("======addImageConfig ERROR_CODE_DUPLICATE_DEVICE_ATTRIBUTE"); + return Constants.ERROR_CODE_DUPLICATE_DEVICE_ATTRIBUTE; + } else { + return imageConfigMapper.insertSelective(imageConfig); + } + }else { + logger.error("======addImageConfig ERROR_CODE_LACK_NECESSARY_DATA"); + return Constants.ERROR_CODE_LACK_NECESSARY_DATA; + } + + } else { + logger.error("======addImageConfig ERROR_CODE_EMPTY_OBJ"); + return Constants.ERROR_CODE_EMPTY_OBJ; + } + + } + + @Override + public int deleteImageConfig(Long id) { + return imageConfigMapper.deleteByPrimaryKey(id); + } + + @Override + public int updateImageConfig(ImageConfig imageConfig) { + // 判断同一个设备stcd的是否有同名称属性 + if (null != imageConfig) { + Long id = imageConfig.getId(); + String stcd = imageConfig.getStcd(); + String name = imageConfig.getName(); + if (null == id) { + return Constants.ERROR_CODE_UPDATE_DEVICE_NOT_EXIST; + }else { + ImageConfig ic = imageConfigMapper.selectByPrimaryKey(id); + if (null == ic) { + return Constants.ERROR_CODE_UPDATE_DEVICE_NOT_EXIST; + } + } + //如果根据stcd 和 name 查询到的记录id 和传入id相等,可更新,否则不可更新,属性重复错误 + if (!StringUtils.isBlank(stcd) && !StringUtils.isBlank(name)) { + ImageConfigExample example = new ImageConfigExample(); + ImageConfigExample.Criteria criteria = example.createCriteria(); + criteria.andStcdEqualTo(stcd); + criteria.andNameEqualTo(name); + List imageConfigs = imageConfigMapper.selectByExample(example); + for(ImageConfig iConfig : imageConfigs) { + Long existId = iConfig.getId(); + if (!existId.equals(id)) { + return Constants.ERROR_CODE_DUPLICATE_DEVICE_ATTRIBUTE; + } + } + // 经过检查,放心更新 + return imageConfigMapper.updateByPrimaryKeySelective(imageConfig); + }else { + //也许根据id 来更新某个unit 字段,这个不应该阻止,前端最好保证所有数据字段都传过来。 + return imageConfigMapper.updateByPrimaryKeySelective(imageConfig); + } + + } else { + logger.error("updateImageConfig ERROR_CODE_EMPTY_OBJ"); + return Constants.ERROR_CODE_EMPTY_OBJ; + } + } + + @Override + public ImageConfig selectImageConfig(Long id) { + + return imageConfigMapper.selectByPrimaryKey(id); + } + + @Override + public List selectByExample(ImageConfigExample example) { + + return imageConfigMapper.selectByExample(example); + } + + @Override + public int addImageConfigs(List imageConfigs) { + + return imageConfigMapper.insertImageConfigs(imageConfigs); + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageInfoServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageInfoServiceImpl.java new file mode 100644 index 0000000..60cadfe --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImageInfoServiceImpl.java @@ -0,0 +1,130 @@ +package org.springblade.video_image.imagewall.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.springblade.video_image.imagewall.entity.ImageInfo; +import org.springblade.video_image.imagewall.mapper.ImageInfoMapper; +import org.springblade.video_image.imagewall.service.ImageInfoService; +import org.springblade.video_image.imagewall.util.Constants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +@Service +public class ImageInfoServiceImpl implements ImageInfoService { + + @Autowired + private ImageInfoMapper imageInfoMapper; + + @Value("${file.upload.path}") + private String fileUploadPath; + + @Override + public String addImage(MultipartFile file) { + String dirName = UUIDNoSeparation(); + File uploadPath = new File(fileUploadPath, "imageInfo"); + uploadPath = new File(uploadPath, dirName); + try { + if(!uploadPath.exists()){ + uploadPath.mkdirs(); + } + saveFile(file, uploadPath); + return File.separator+"imageInfo"+File.separator+dirName+File.separator+file.getOriginalFilename(); + }catch (IOException e){ + return ""; + } + } + + /** + * 保存文件,如果后期有要求需要处理重名情况 + * + * @param file 待保存的文件 + * @param uploadPath 上传的路径 + * @throws IOException + */ + private void saveFile(MultipartFile file, File uploadPath) throws IOException { + String originalName = file.getOriginalFilename(); + File path = new File(uploadPath, originalName); + if(!path.exists()){ + path.createNewFile(); + } + FileUtils.copyInputStreamToFile(file.getInputStream(), path); + } + + /** + * 生成uuid不带横杠的 + * + * @return + */ + private String UUIDNoSeparation() { + return UUID.randomUUID().toString().replace("-", ""); + } + + @Override + public List selectNewestImageByDevId(String[] stcds) { + // 根据设备ID集合查询 + return imageInfoMapper.selectNewestImageByDevId(stcds); + } + + @Override + public List selectImagesByDevIdAndTime(String stcd, String startTime, String endTime) { + + return imageInfoMapper.selectImagesByDevIdAndTime(stcd, startTime, endTime); + } + + @Override + public IPage pageQueryImagesByDevIdAndTime(String stcd, String startTime, String endTime, + IPage page) { +// PageBounds pageBounds = new PageBounds(pageParam.getPageNo(), pageParam.getPageSize()); + IPage respList = imageInfoMapper.pageQueryImagesByDevIdAndTime(stcd, startTime, endTime, page); + return respList; + } + + @Override + public int addImageInfo(ImageInfo imageInfo) { + //判断是否有时间重复的 + if (null != imageInfo){ + Date time = imageInfo.getTime(); + if (null == time){ + return Constants.ERROR_CODE_NO_TIME; + } + + String stcd = imageInfo.getStcd(); + String timeStr = time.toString(); + List imageInfos = imageInfoMapper.selectImageInfoByStcdAndTime(stcd, timeStr); + for(ImageInfo image: imageInfos){ + String manualPath = image.getManualpath(); + //如果存在同时刻已经手动上传的图片,返回报错 + if (!StringUtils.isBlank(manualPath)){ + return Constants.ERROR_CODE_DUPLICATE_MANUAL_TIME; + } + } + return imageInfoMapper.insertManualImageInfo(imageInfo); + + }else { + return Constants.ERROR_CODE_EMPTY_OBJ; + } + } + + @Override + public IPage pageQueryManualImagesByDevIdAndTime(String stcd, String startTime, String endTime, IPage page) { + IPage respList = imageInfoMapper.pageQueryManualImagesByDevIdAndTime(stcd, startTime, endTime, page); + + return respList; + } + + @Override + public int deleteImageInfo(long id) { + return imageInfoMapper.deleteByPrimaryKey(id); + } + + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImagePointServiceImpl.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImagePointServiceImpl.java new file mode 100644 index 0000000..bc550ea --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/service/impl/ImagePointServiceImpl.java @@ -0,0 +1,173 @@ +package org.springblade.video_image.imagewall.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.video_image.imagewall.entity.ImageConfigExample; +import org.springblade.video_image.imagewall.entity.ImagePoint; +import org.springblade.video_image.imagewall.mapper.ImageConfigMapper; +import org.springblade.video_image.imagewall.mapper.ImagePointMapper; +import org.springblade.video_image.imagewall.service.ImagePointService; +import org.springblade.video_image.imagewall.util.Constants; +import org.springblade.video_image.imagewall.vo.ImagePointVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class ImagePointServiceImpl extends BaseServiceImpl implements ImagePointService { + + private static Logger logger = LoggerFactory.getLogger(ImagePointServiceImpl.class); + + @Resource + ImagePointMapper imagePointMapper; + + @Resource + ImageConfigMapper imageConfigMapper; + + @Override + public int addImagePoint(ImagePoint imagePoint) { + // 检测是否有编码和名字重复 + if(null != imagePoint) { + String deviceId = imagePoint.getStcd(); + String deviceName = imagePoint.getStnm(); + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + List imagePoints = imagePointMapper.selectList(wrapper); + for(ImagePoint ip : imagePoints) { + String existDevId = ip.getStcd(); + String existDevName = ip.getStnm(); + + if(existDevId.equals(deviceId)) { + logger.error("======addImagePoint ERROR_CODE_DUPLICATE_STCB"); + return Constants.ERROR_CODE_DUPLICATE_STCB; + } + + if(existDevName.equals(deviceName)) { + logger.error("======addImagePoint ERROR_CODE_DUPLICATE_STNM"); + return Constants.ERROR_CODE_DUPLICATE_STNM; + } + } + + //创建新增时将设置创建时间 + if (null != deviceId) { + Date createTime = new Date(); + imagePoint.setCreateTime(createTime); + + int result = imagePointMapper.insert(imagePoint); + return result; + } else { + logger.error("======addImagePoint device id is null"); + return Constants.ERROR_CODE_EMPTY_OBJ; + } + } else { + logger.error("======addImagePoint ERROR_CODE_EMPTY_OBJ"); + return Constants.ERROR_CODE_EMPTY_OBJ; + } + + } + + @Override + public int deleteImagePoint(Long id) { + // 删除point时需要将其关联的配置删除 + if (id!=null) { + int result = imagePointMapper.deleteById(id); + + //删除配置表 + ImageConfigExample example = new ImageConfigExample(); + ImageConfigExample.Criteria criteria = example.createCriteria(); + criteria.andIdEqualTo(id); + int deleteConfig = imageConfigMapper.deleteByExample(example); + logger.debug("deleteImagePoint stcd delete config result is "+ deleteConfig); + + return result; + }else { + logger.error("======deleteImagePoint not found stcd=" + id); + return Constants.ERROR_CODE_DELETE_ITEM_NOT_FOUND; + } + } + + @Override + public int updateImagePoint(ImagePoint imagePoint) { + // 检测是否名字重复 + if(null != imagePoint) { + String deviceName = imagePoint.getStnm(); + String stcd = imagePoint.getStcd(); + // 如果传入的stcd在数据库中不存在,提示更新错误 + LambdaQueryWrapper exp=new LambdaQueryWrapper(); + exp.eq(ImagePoint::getStcd,stcd); + List exitPoints = imagePointMapper.selectList(exp); + if (null == exitPoints || exitPoints.isEmpty()) { + return Constants.ERROR_CODE_UPDATE_DEVICE_NOT_EXIST; + } + + // 如果传入的stcd存在,对比传入名字是否与其他记录名字相同 + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + List imagePoints = imagePointMapper.selectList(wrapper); + for(ImagePoint ip : imagePoints) { + String existDevName = ip.getStnm(); + String existStcd = ip.getStcd(); + // 如果传入来的名字和数据库中的已存在名字相同,并且不是这一条需要更新的记录,即stcd不相等。 + if(existDevName.equals(deviceName) && !existStcd.equals(stcd)) { + logger.error("======updateImagePoint ERROR_CODE_DUPLICATE_STNM"); + return Constants.ERROR_CODE_DUPLICATE_STNM; + } + } + + int result = imagePointMapper.updateById(imagePoint); + return result; + + } else { + logger.error("======updateImagePoint ERROR_CODE_EMPTY_OBJ"); + return Constants.ERROR_CODE_EMPTY_OBJ; + } + } + + @Override + public ImagePoint selectImagePoint(String stcd) { + // 查询过滤逻辑删除的数据 + LambdaQueryWrapper exp=new LambdaQueryWrapper(); + exp.eq(ImagePoint::getStcd,stcd); + List imagePoints = imagePointMapper.selectList(exp); + if ((null != imagePoints) && (imagePoints.size() > 0)) { + //如果找到多个,则返回第一个,有前面的添加去重保证,这里不应该出现多个 + return imagePoints.get(0); + } else { + return null; + } + } + + @Override + public List selelctAllImagePoint() { + + LambdaQueryWrapper exp=new LambdaQueryWrapper(); + List imagePoints = imagePointMapper.selectList(exp); + + return imagePoints; + } + + + @Override + public List selectByExample(LambdaQueryWrapper exp) { + return imagePointMapper.selectList(exp); + } + + + @Override + public IPage pageQueryImagePonit(List stationIds, String stcd, String stnm, + IPage page) { + IPage respList = imagePointMapper.pageQueryImagePonit(stationIds,stcd, stnm, page); + return respList; + } + + @Override + public IPage pageQueryImagePonitOrderBy(List stationIds, String stcd, String stnm, IPage pageParam, String orderByField) { + IPage respList = imagePointMapper.pageQueryImagePonitOrderBy(stationIds,stcd,stnm,pageParam,orderByField); + return respList; + } + +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/Constants.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/Constants.java new file mode 100644 index 0000000..eb3dc31 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/Constants.java @@ -0,0 +1,32 @@ +package org.springblade.video_image.imagewall.util; + +public class Constants { + + //传入空对象 + public static final int ERROR_CODE_EMPTY_OBJ = -1000; + //定义测站设备编码重复 + public static final int ERROR_CODE_DUPLICATE_STCB = -100; + //定义测站设备名称重复 + public static final int ERROR_CODE_DUPLICATE_STNM = -101; + //定义逻辑删除 + public static final Boolean DELETED = true; + //定义逻辑删除 + public static final Boolean NOT_DELETED = false; + //定义没有找到删除的记录 + public static final int ERROR_CODE_DELETE_ITEM_NOT_FOUND = -102; + //定义给同一个设备配置属性名称重复 + public static final int ERROR_CODE_DUPLICATE_DEVICE_ATTRIBUTE = -103; + //定义配置属性数据无效 + public static final int ERROR_CODE_LACK_NECESSARY_DATA = -104; + //定义测站属性数据类型 + public static final String CONSTANT_TYPE = "0"; + public static final String REAL_DATA_TYPE = "1"; + //定义更新测站设备不存在 + public static final int ERROR_CODE_UPDATE_DEVICE_NOT_EXIST = -105; + //未传递时间参数 + public static final int ERROR_CODE_NO_TIME = -106; + //已经存在同一个时刻的手动上传图片 + public static final int ERROR_CODE_DUPLICATE_MANUAL_TIME = -107; + + +} \ No newline at end of file diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/ConvertUtils.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/ConvertUtils.java new file mode 100644 index 0000000..86c534d --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/util/ConvertUtils.java @@ -0,0 +1,43 @@ +package org.springblade.video_image.imagewall.util; + + +public class ConvertUtils { + + public static String errorCodeToMsg(int errorCode) { + String msg = ""; + switch (errorCode) { + case Constants.ERROR_CODE_EMPTY_OBJ: + msg = "空对象操作"; + break; + case Constants.ERROR_CODE_DUPLICATE_STCB: + msg = "重复测站设备编码"; + break; + case Constants.ERROR_CODE_DUPLICATE_STNM: + msg = "重复测站名称"; + break; + case Constants.ERROR_CODE_DELETE_ITEM_NOT_FOUND: + msg = "删除记录没有找到"; + break; + case Constants.ERROR_CODE_DUPLICATE_DEVICE_ATTRIBUTE: + msg = "配置属性名称重复"; + break; + case Constants.ERROR_CODE_LACK_NECESSARY_DATA: + msg = "缺少必要数据"; + break; + case Constants.ERROR_CODE_UPDATE_DEVICE_NOT_EXIST: + msg = "更新测站设备不存在"; + break; + case Constants.ERROR_CODE_NO_TIME: + msg = "请传入时间参数"; + break; + case Constants.ERROR_CODE_DUPLICATE_MANUAL_TIME: + msg = "已经存在当前时刻的手动上传图片"; + break; + default: + msg = "未知错误"; + break; + } + + return msg; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/vo/ImagePointVo.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/vo/ImagePointVo.java new file mode 100644 index 0000000..e14d76e --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/imagewall/vo/ImagePointVo.java @@ -0,0 +1,15 @@ +package org.springblade.video_image.imagewall.vo; + +import org.springblade.video_image.imagewall.entity.ImagePoint; + +public class ImagePointVo extends ImagePoint { + private String deptName; + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } +} diff --git a/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/video/controller/CloudController.java b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/video/controller/CloudController.java new file mode 100644 index 0000000..36c5e05 --- /dev/null +++ b/HZInfo-RIS-PXHD/hzinfo-ris-pxhd-service/video-image-service/src/main/java/org/springblade/video_image/video/controller/CloudController.java @@ -0,0 +1,115 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package org.springblade.video_image.video.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.video_image.video.entity.CloudVideo; +import org.springblade.video_image.video.entity.Video; +import org.springblade.video_image.video.entity.vo.CloudVideoGetterVo; +import org.springblade.video_image.video.entity.vo.CloudVideoSetterVo; +import org.springblade.video_image.video.entity.vo.VideoVo; +import org.springblade.video_image.video.manager.CloudVideoManager; +import org.springblade.video_image.video.service.ICloudVideoTypeService; +import org.springblade.video_image.video.utils.SessionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import javax.servlet.http.HttpSession; + +@RestController +@Api(value = "视频-萤石云接口", tags = "视频-萤石云接口") +@RequestMapping({"/videoImage/cloud"}) +public class CloudController { + @Autowired + private CloudVideoManager cloudManager; + @Autowired + private ICloudVideoTypeService cloudVideoTypeService; + + public CloudController() { + } + + @ApiOperation("删除站点下ID匹配的萤石云视频数据") + @RequestMapping( + value = {"/{id}"}, + method = {RequestMethod.DELETE} + ) + public R deleteById(@PathVariable long id) { + + return R.data(cloudManager.deleteById(SessionUtil.getExistDeptId(), id)); + } + + @RequestMapping( + method = {RequestMethod.POST} + ) + @ApiOperation("在当前站点下新增一条萤石云数据") + public R insert(@ModelAttribute CloudVideoSetterVo cloudVo) { + CloudVideo video = this.cloudManager.insert(SessionUtil.getExistDeptId(), cloudVo.toVideo()); + return R.data(CloudVideoGetterVo.from(video)); + } + + @RequestMapping( + method = {RequestMethod.PUT} + ) + @ApiOperation("更新当前站点下ID匹配的一条萤石云数据") + public R update(@ModelAttribute CloudVideoSetterVo cloudVo) { + + return R.data( + (CloudVideoGetterVo)this.cloudManager.update(SessionUtil.getExistDeptId(), cloudVo.toVideo()).map(CloudVideoGetterVo::from).orElseThrow(() -> { + return this.exception(cloudVo.getId()); + })); + } + + @RequestMapping( + value = {"/{pointId}/list/page"}, + method = {RequestMethod.GET} + ) + @ApiOperation("获取当前站点下, 指定监测点及其子节点下的所有萤石云视频列表") + public R searchList(@ApiParam(value = "监测点ID",required = true) @PathVariable long pointId, + @ApiParam("是否启用") @RequestParam(required = false) Integer inUse, + @ApiParam("搜索文本") @RequestParam(required = false) String content, + @ModelAttribute Query query) { + IPage