diff --git a/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGate.java b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGate.java
new file mode 100644
index 0000000..4cd7586
--- /dev/null
+++ b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGate.java
@@ -0,0 +1,48 @@
+package com.hnac.hzims.baseinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+@Data
+@TableName("irrbdgate")
+public class IrrBDGate extends BaseEntity {
+ private String strobeCode;
+
+ private String stcd;
+
+ private String watergateCode;
+
+ private String producingArea;
+
+ private String factory;
+
+ private String strobeType;
+
+ private String strobeMaterial;
+
+ private Double height;
+
+ private Double width;
+
+ private Double 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/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGateRefData.java b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGateRefData.java
new file mode 100644
index 0000000..df07289
--- /dev/null
+++ b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGateRefData.java
@@ -0,0 +1,14 @@
+package com.hnac.hzims.baseinfo.entity;
+
+import lombok.Data;
+
+@Data
+public class IrrBDGateRefData {
+ private String strobeCode;
+
+ private String refstcd;
+
+ private String refqpoint;
+
+ private String refzpoint;
+}
diff --git a/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrBsin.java b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrBsin.java
new file mode 100644
index 0000000..1fccf8f
--- /dev/null
+++ b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrBsin.java
@@ -0,0 +1,64 @@
+package com.hnac.hzims.baseinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.core.mp.base.BaseEntity;
+
+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 Double eslg;
+ @ApiModelProperty("北纬")
+ private Double nrlt;
+ @ApiModelProperty("站址")
+ private String stlc;
+ @ApiModelProperty("行政区划码")
+ private String addvcd;
+ @ApiModelProperty("基面名称")
+ private String dtmnm;
+ @ApiModelProperty("基面高程")
+ private Double dtmel;
+ @ApiModelProperty("基面修正值")
+ private Double dtpr;
+ @ApiModelProperty("报汛等级")
+ private String frgrd;
+ @ApiModelProperty("集水面积")
+ private Double drna;
+ @ApiModelProperty("拼音码")
+ private String phcd;
+ @ApiModelProperty("启用标志")
+ private String usfl;
+ @ApiModelProperty("备注")
+ private String comments;
+ @ApiModelProperty("建成时间")
+ private Date buildTime;
+ @ApiModelProperty("最大坝高")
+ private Double maxdmhg;
+ @ApiModelProperty("坝型")
+ private String dmtp;
+ @ApiModelProperty("库区GIS范围")
+ private String gisRange;
+ @ApiModelProperty("水库功能(可多选)")
+ private String rsfn;
+}
diff --git a/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrHych.java b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrHych.java
new file mode 100644
index 0000000..8fd62bd
--- /dev/null
+++ b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrHych.java
@@ -0,0 +1,62 @@
+package com.hnac.hzims.baseinfo.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.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 Double damel;
+ @ApiModelProperty("控制流域面积")
+ private Double cnctar;
+ @ApiModelProperty("校核洪水位")
+ private Double chfl;
+ @ApiModelProperty("设计洪水位")
+ private Double dsfl;
+ @ApiModelProperty("正常高水位")
+ private Double normz;
+ @ApiModelProperty("死水位")
+ private Double ddwz;
+ @ApiModelProperty("汛限水位")
+ private Double mjfl;
+ @ApiModelProperty("兴利水位")
+ private Double actz;
+ @ApiModelProperty("总库容")
+ private Double ttcp;
+ @ApiModelProperty("防洪库容")
+ private Double fldcp;
+ @ApiModelProperty("兴利库容")
+ private Double actcp;
+ @ApiModelProperty("死库容")
+ private Double ddcp;
+ @ApiModelProperty("历史最高库水位")
+ private Double hhrz;
+ @ApiModelProperty("历史最大蓄水量")
+ private Double hmxw;
+ @ApiModelProperty("历史最高库水位(蓄水量)时间")
+ private Date maxleveltime;
+ @ApiModelProperty("低水位告警值")
+ private Double laz;
+ @ApiModelProperty("启动预报流量标准")
+ private Double sfq;
+ @ApiModelProperty("时间戳")
+ private Date moditime;
+ @ApiModelProperty("更新时间")
+ private Date dtuptm;
+
+}
diff --git a/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/vo/StRsrBsinVo.java b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/vo/StRsrBsinVo.java
new file mode 100644
index 0000000..97d49d0
--- /dev/null
+++ b/hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/vo/StRsrBsinVo.java
@@ -0,0 +1,38 @@
+package com.hnac.hzims.baseinfo.vo;
+
+import com.hnac.hzims.baseinfo.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/hzims-service-api/digital-twin-display-api/pom.xml b/hzims-service-api/digital-twin-display-api/pom.xml
new file mode 100644
index 0000000..0ca55dc
--- /dev/null
+++ b/hzims-service-api/digital-twin-display-api/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+ com.hnac.hzims
+ hzims-service-api
+ 4.0.0-SNAPSHOT
+
+
+
+ digital-twin-display-api
+ jar
+ ${hzims.project.version}
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/hzims-service-api/weather-api/README.md b/hzims-service-api/weather-api/README.md
new file mode 100644
index 0000000..0dd908b
--- /dev/null
+++ b/hzims-service-api/weather-api/README.md
@@ -0,0 +1,6 @@
+# 工程简介
+
+
+
+# 延伸阅读
+
diff --git a/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/GateInfoController.java b/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/GateInfoController.java
new file mode 100644
index 0000000..2046359
--- /dev/null
+++ b/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/GateInfoController.java
@@ -0,0 +1,165 @@
+package com.hnac.hzims.baseinfo.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.hnac.hzims.baseinfo.entity.IrrBDGate;
+import com.hnac.hzims.baseinfo.entity.IrrBDGateRefData;
+import com.hnac.hzims.baseinfo.service.IGateInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+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.core.tool.utils.StringUtil;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@RequestMapping("/reservoirBaseInfo/gateInfo")
+@AllArgsConstructor
+@Api(value = "闸门信息", tags = "闸门信息接口")
+public class GateInfoController {
+ 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.setStrobeCode(irrBDGate.getStrobeCode());
+ tmp.setStcd(irrBDGate.getStcd());
+ List page = gateInfoService.list(tmp);
+ if (page != null && !page.isEmpty()) {
+ return R.fail(500, "存在重复的闸门代码为:" + irrBDGate.getStrobeCode() + "的数据");
+ }
+ return R.data(gateInfoService.addGate(irrBDGate));
+ }
+
+ @RequestMapping(value = "remove", method = {RequestMethod.POST})
+ @ResponseBody
+ @ApiOperation("删除闸门")
+ public R deleteGate(@ApiParam(value = "闸门id") @RequestParam Long id) {
+ boolean i = gateInfoService.removeById(id);
+ if (i) {
+ return R.data(true, "删除成功");
+ }
+ return R.fail(500, "不存在此记录");
+ }
+
+ @RequestMapping(value = "updateGate", method = {RequestMethod.POST})
+ @ResponseBody
+ @ApiOperation("修改闸门")
+ public R updateGate(@RequestBody IrrBDGate irrBDGate) {
+
+ irrBDGate.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+ 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, HttpServletRequest request, Query query) {
+ String deptId=request.getHeader("dept-id");
+ if(StringUtil.isEmpty(deptId)) {
+ deptId =AuthUtil.getDeptId();
+ }
+
+ if(StringUtil.isNotBlank(deptId)) {
+ irrBDGate.setCreateDept(Long.valueOf(deptId));
+ }
+
+ 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.setCreateDept(Long.valueOf(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, "查询成功");
+
+
+ }
+}
diff --git a/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/StRsrBsinController.java b/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/StRsrBsinController.java
new file mode 100644
index 0000000..f03b79a
--- /dev/null
+++ b/hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/StRsrBsinController.java
@@ -0,0 +1,165 @@
+package com.hnac.hzims.baseinfo.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.hnac.hzims.baseinfo.entity.StRsrBsin;
+import com.hnac.hzims.baseinfo.entity.StRsrHych;
+import com.hnac.hzims.baseinfo.service.IStRsrBsinService;
+import com.hnac.hzims.baseinfo.service.IStRsrHychService;
+import com.hnac.hzims.baseinfo.vo.StRsrBsinVo;
+import com.hnac.hzims.baseinfo.wrapper.StRsrBsinWrapper;
+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.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/reservoir/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, HttpServletRequest request) {
+ 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"));
+ }
+ String deptId=request.getHeader("dept-id");
+ if(StringUtil.isEmpty(deptId)) {
+ deptId =AuthUtil.getDeptId();
+ }
+ if(StringUtil.isNotBlank(deptId)) {
+ wrapper.like(StRsrBsin::getCreateDept,deptId);
+ }
+ 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, HttpServletRequest request) {
+ 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"));
+ }
+ String deptId = request.getHeader("dept-id");
+ if (StringUtil.isEmpty(deptId)) {
+ deptId = AuthUtil.getDeptId();
+ }
+ if (StringUtil.isNotBlank(deptId)) {
+ wrapper.like(StRsrBsin::getCreateDept, deptId);
+ }
+ List list = stRsrBsinService.list(wrapper);
+ return R.data(StRsrBsinWrapper.build().listVO(list));
+ }
+
+
+
+ /**
+ * 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 3)
+ @ApiOperation(value = "详情", notes = "传入stRsrBsin")
+ public R