Browse Source

遂昌版本替换

遂昌项目
liangfan 6 months ago
parent
commit
ed6cae1da1
  1. 48
      hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGate.java
  2. 14
      hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/IrrBDGateRefData.java
  3. 64
      hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrBsin.java
  4. 62
      hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/entity/StRsrHych.java
  5. 38
      hzims-service-api/base-info-api/src/main/java/com/hnac/hzims/baseinfo/vo/StRsrBsinVo.java
  6. 23
      hzims-service-api/digital-twin-display-api/pom.xml
  7. 6
      hzims-service-api/weather-api/README.md
  8. 165
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/GateInfoController.java
  9. 165
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/controller/StRsrBsinController.java
  10. 16
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateMapper.java
  11. 49
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateMapper.xml
  12. 14
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateRefDataMapper.java
  13. 78
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateRefDataMapper.xml
  14. 15
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrBsinMapper.java
  15. 29
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrBsinMapper.xml
  16. 7
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrHychMapper.java
  17. 5
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrHychMapper.xml
  18. 25
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IGateInfoService.java
  19. 11
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IStRsrBsinService.java
  20. 10
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IStRsrHychService.java
  21. 75
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/GateInfoServiceImpl.java
  22. 19
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/StRsrBsinServiceImpl.java
  23. 23
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/StRsrHychServiceImpl.java
  24. 32
      hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/wrapper/StRsrBsinWrapper.java
  25. 194
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmOreanizationController.java
  26. 21
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmOreanizationMapper.java
  27. 47
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmOreanizationMapper.xml
  28. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_attach.sql
  29. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_info.sql
  30. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_model.sql
  31. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_model_param.sql
  32. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_oreanization.sql
  33. 10
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_param.sql
  34. 32
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmOreanizationService.java
  35. 162
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmOreanizationServiceImpl.java
  36. 33
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mqtt/MessageFlowWranConsumer.java
  37. 191
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/strategy/FlowWarnStrategy.java
  38. 9
      hzims-service/safeproduct/README.md

48
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;
}

14
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;
}

64
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;
}

62
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;
}

38
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;
}
}

23
hzims-service-api/digital-twin-display-api/pom.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hnac.hzims</groupId>
<artifactId>hzims-service-api</artifactId>
<version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>digital-twin-display-api</artifactId>
<packaging>jar</packaging>
<version>${hzims.project.version}</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

6
hzims-service-api/weather-api/README.md

@ -0,0 +1,6 @@
# 工程简介
# 延伸阅读

165
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<IrrBDGate> 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<IrrBDGate> 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<IrrBDGate> 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, "查询成功");
}
}

165
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<IPage<StRsrBsinVo>> pageList(@ApiIgnore @RequestParam Map<String, Object> param, Query query, HttpServletRequest request) {
LambdaQueryWrapper<StRsrBsin> 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<StRsrBsin> 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<StRsrBsinVo>> list(@ApiIgnore @RequestParam Map<String, Object> param, HttpServletRequest request) {
LambdaQueryWrapper<StRsrBsin> 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<StRsrBsin> list = stRsrBsinService.list(wrapper);
return R.data(StRsrBsinWrapper.build().listVO(list));
}
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "详情", notes = "传入stRsrBsin")
public R<Map<String,Object>> detail(StRsrBsin stRsrBsin) {
Map<String,Object> 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<StRsrBsin> wrapper=new LambdaQueryWrapper();
wrapper.eq(StRsrBsin::getRscd,stRsrBsin.getRscd());
List<StRsrBsin> 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) {
boolean temp = stRsrBsinService.deleteLogic(Func.toLongList(ids));
return R.status(temp);
}
}

16
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateMapper.java

@ -0,0 +1,16 @@
package com.hnac.hzims.baseinfo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.baseinfo.entity.IrrBDGate;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IrrBDGateMapper extends BaseMapper<IrrBDGate> {
IPage<IrrBDGate> selectByExample(@Param("example") IrrBDGate example, IPage<IrrBDGate> page);
List<IrrBDGate> selectByExample(@Param("example") IrrBDGate example);
}

49
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateMapper.xml

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.baseinfo.mapper.IrrBDGateMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.baseinfo.entity.IrrBDGate" >
<id column="ID" property="id" jdbcType="BIGINT" />
<result column="STROBE_CODE" property="strobeCode" jdbcType="VARCHAR" />
<result column="WATERGATE_CODE" property="watergateCode" jdbcType="CHAR" />
<result column="PRODUCING_AREA" property="producingArea" jdbcType="VARCHAR" />
<result column="FACTORY" property="factory" jdbcType="VARCHAR" />
<result column="STROBE_TYPE" property="strobeType" jdbcType="CHAR" />
<result column="STROBE_MATERIAL" property="strobeMaterial" jdbcType="CHAR" />
<result column="HEIGHT" property="height" jdbcType="DECIMAL" />
<result column="WIDTH" property="width" jdbcType="DECIMAL" />
<result column="THICKNESS" property="thickness" jdbcType="DECIMAL" />
<result column="MOTIVITY" property="motivity" jdbcType="CHAR" />
<result column="TYPE" property="type" jdbcType="CHAR" />
<result column="VELOCITY" property="velocity" jdbcType="DECIMAL" />
<result column="AREA_CODE" property="areaCode" jdbcType="VARCHAR" />
<result column="LRCD" property="lrcd" jdbcType="VARCHAR" />
<result column="SZHLDM" property="szhldm" jdbcType="VARCHAR" />
<result column="DONGJ" property="dongj" jdbcType="REAL" />
<result column="BEIW" property="beiw" jdbcType="REAL" />
<result column="DISCHARGE" property="discharge" jdbcType="REAL" />
<result column="STCD" property="stcd" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
ID,STROBE_CODE, WATERGATE_CODE, PRODUCING_AREA, FACTORY, STROBE_TYPE, STROBE_MATERIAL,
HEIGHT, WIDTH, THICKNESS, MOTIVITY, TYPE, VELOCITY, AREA_CODE, LRCD, SZHLDM, DONGJ,
BEIW, DISCHARGE,STCD
</sql>
<select id="selectByExample" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from irrbdgate
where is_deleted = 0
<if test="example.createDept!=null">
and CREATE_DEPT like concat(#{example.createDept},'%')
</if>
<if test="example.strobeCode!=null">
and STROBE_CODE = #{example.strobeCode}
</if>
<if test="example.stcd!=null">
and STCD = #{example.stcd}
</if>
</select>
</mapper>

14
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateRefDataMapper.java

@ -0,0 +1,14 @@
package com.hnac.hzims.baseinfo.mapper;
import com.hnac.hzims.baseinfo.entity.IrrBDGateRefData;
public interface IrrBDGateRefDataMapper {
int insertSelective(IrrBDGateRefData record);
int updateByPrimaryKeySelective(IrrBDGateRefData record);
IrrBDGateRefData selectByPrimaryKey(String strobeCode);
int deleteByPrimaryKey(String strobeCode);
}

78
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/IrrBDGateRefDataMapper.xml

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.baseinfo.mapper.IrrBDGateRefDataMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.baseinfo.entity.IrrBDGateRefData" >
<id column="STROBE_CODE" property="strobeCode" jdbcType="CHAR" />
<result column="REFSTCD" property="refstcd" jdbcType="CHAR" />
<result column="REFQPOINT" property="refqpoint" jdbcType="VARCHAR" />
<result column="REFZPOINT" property="refzpoint" jdbcType="CHAR" />
</resultMap>
<sql id="Base_Column_List" >
STROBE_CODE, REFSTCD, REFQPOINT, REFZPOINT
</sql>
<insert id="insertSelective" parameterType="com.hnac.hzims.baseinfo.entity.IrrBDGateRefData" >
insert into irrbdgate_refdata
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="strobeCode != null" >
STROBE_CODE,
</if>
<if test="refstcd != null" >
REFSTCD,
</if>
<if test="refqpoint != null" >
REFQPOINT,
</if>
<if test="refzpoint != null" >
REFZPOINT,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="strobeCode != null" >
#{strobeCode,jdbcType=CHAR},
</if>
<if test="refstcd != null" >
#{refstcd,jdbcType=CHAR},
</if>
<if test="refqpoint != null" >
#{refqpoint,jdbcType=VARCHAR},
</if>
<if test="refzpoint != null" >
#{refzpoint,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.hnac.hzims.baseinfo.entity.IrrBDGateRefData" >
update irrbdgate_refdata
<set >
<if test="refstcd != null" >
REFSTCD = #{refstcd,jdbcType=CHAR},
</if>
<if test="refqpoint != null" >
REFQPOINT = #{refqpoint,jdbcType=VARCHAR},
</if>
<if test="refzpoint != null" >
REFZPOINT = #{refzpoint,jdbcType=CHAR},
</if>
</set>
where STROBE_CODE = #{strobeCode,jdbcType=CHAR}
</update>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from irrbdgate_refdata
where STROBE_CODE = #{strobeCode,jdbcType=CHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from irrbdgate_refdata
where STROBE_CODE = #{strobeCode,jdbcType=CHAR}
</delete>
</mapper>

15
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrBsinMapper.java

@ -0,0 +1,15 @@
package com.hnac.hzims.baseinfo.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.baseinfo.entity.StRsrBsin;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
import java.util.List;
import java.util.Map;
public interface StRsrBsinMapper extends UserDataScopeBaseMapper<StRsrBsin> {
IPage<Map<String,Object>> selectByParam(IPage page, @Param("param") Map<String,Object> param);
List<Map<String,Object>> selectByParam(@Param("param") Map<String,Object> param);
}

29
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrBsinMapper.xml

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.baseinfo.mapper.StRsrBsinMapper">
<select id="selectByParam" resultType="java.util.HashMap">
select bsin.id,bsin.rscd,hych.rsvrtp,bsin.RTUNM,bsin.ESLG,bsin.NRLT,
bsin.GIS_RANGE as gisRange,bsin.rvcd,bsin.stlc,hych.mjfl from st_rsr_bsin bsin
left join st_rsr_hych hych on bsin.rscd=hych.RSCD
WHERE bsin.IS_DELETED = 0
<if test=" param.deptId!=null and param.deptId!='' ">
and bsin.CREATE_DEPT like concat(#{param.deptId},'%')
</if>
<if test=" param.rtunm!=null and param.rtunm!='' ">
and bsin.RTUNM like concat('%',#{param.rtunm},'%')
</if>
<if test=" param.dmtp!=null and param.dmtp!='' ">
and bsin.DMTP=#{param.dmtp}
</if>
<if test=" param.rsfn!=null and param.rsfn!='' ">
and bsin.RSFN=#{param.rsfn}
</if>
<if test=" param.rsvrtp!=null">
and hych.RSVRTP=#{param.rsvrtp}
</if>
<if test=" param.areaCode!=null">
and bsin.ADDVCD like concat(#{param.areaCode},'%')
</if>
</select>
</mapper>

7
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrHychMapper.java

@ -0,0 +1,7 @@
package com.hnac.hzims.baseinfo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.baseinfo.entity.StRsrHych;
public interface StRsrHychMapper extends BaseMapper<StRsrHych> {
}

5
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/mapper/StRsrHychMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.baseinfo.mapper.StRsrHychMapper">
</mapper>

25
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IGateInfoService.java

@ -0,0 +1,25 @@
package com.hnac.hzims.baseinfo.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.baseinfo.entity.IrrBDGate;
import com.hnac.hzims.baseinfo.entity.IrrBDGateRefData;
import java.util.List;
public interface IGateInfoService extends IService<IrrBDGate> {
boolean addGate(IrrBDGate irrBDGate);
int updateGate(IrrBDGate irrBDGate);
IPage<IrrBDGate> selectGate(IrrBDGate irrBDGate, IPage<IrrBDGate> page);
int addGateRef(IrrBDGateRefData irrBDGateRefdata);
int deleteGateRef(String gateCode);
int updateGateRef(IrrBDGateRefData irrBDGateRefdata);
IrrBDGateRefData detailRef(String gateCode);
List<IrrBDGate> list(IrrBDGate irrBDGate);
}

11
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IStRsrBsinService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.baseinfo.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.baseinfo.entity.StRsrBsin;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
import java.util.Map;
public interface IStRsrBsinService extends BaseService<StRsrBsin> {
}

10
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/IStRsrHychService.java

@ -0,0 +1,10 @@
package com.hnac.hzims.baseinfo.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzims.baseinfo.entity.StRsrHych;
public interface IStRsrHychService {
StRsrHych getOne(QueryWrapper<StRsrHych> wrapper);
}

75
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/GateInfoServiceImpl.java

@ -0,0 +1,75 @@
package com.hnac.hzims.baseinfo.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.baseinfo.entity.IrrBDGate;
import com.hnac.hzims.baseinfo.entity.IrrBDGateRefData;
import com.hnac.hzims.baseinfo.mapper.IrrBDGateMapper;
import com.hnac.hzims.baseinfo.mapper.IrrBDGateRefDataMapper;
import com.hnac.hzims.baseinfo.service.IGateInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GateInfoServiceImpl extends ServiceImpl<IrrBDGateMapper, IrrBDGate> implements IGateInfoService {
@Autowired
IrrBDGateMapper irrBDGateMapper;
@Autowired
IrrBDGateRefDataMapper irrBDGateRefDataMapper;
@Override
public boolean addGate(IrrBDGate irrBDGate) {
return this.save(irrBDGate);
}
@Override
public int updateGate(IrrBDGate irrBDGate) {
//编辑时如果站点更换清除之前数据配置
IrrBDGate judgeGate = this.getById(irrBDGate.getId());
this.updateById(irrBDGate);
if (!irrBDGate.getCreateDept().equals(judgeGate.getCreateDept())) {
irrBDGateRefDataMapper.deleteByPrimaryKey(irrBDGate.getStrobeCode());
}
return 1;
}
@Override
public IPage<IrrBDGate> selectGate(IrrBDGate irrBDGate, IPage<IrrBDGate> page) {
IPage<IrrBDGate> 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<IrrBDGate> list(IrrBDGate irrBDGate) {
List<IrrBDGate> irrBDGates = irrBDGateMapper.selectByExample(irrBDGate);
return irrBDGates;
}
}

19
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/StRsrBsinServiceImpl.java

@ -0,0 +1,19 @@
package com.hnac.hzims.baseinfo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.baseinfo.entity.StRsrBsin;
import com.hnac.hzims.baseinfo.mapper.StRsrBsinMapper;
import com.hnac.hzims.baseinfo.service.IStRsrBsinService;
import org.springblade.core.mp.base.BaseServiceImpl;
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 StRsrBsinServiceImpl extends BaseServiceImpl<StRsrBsinMapper, StRsrBsin> implements IStRsrBsinService {
}

23
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/service/impl/StRsrHychServiceImpl.java

@ -0,0 +1,23 @@
package com.hnac.hzims.baseinfo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzims.baseinfo.entity.StRsrHych;
import com.hnac.hzims.baseinfo.mapper.StRsrHychMapper;
import com.hnac.hzims.baseinfo.service.IStRsrHychService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class StRsrHychServiceImpl implements IStRsrHychService {
@Resource
StRsrHychMapper stRsrHychMapper;
@Override
public StRsrHych getOne(QueryWrapper<StRsrHych> wrapper) {
return stRsrHychMapper.selectOne(wrapper);
}
}

32
hzims-service/base-info/src/main/java/com/hnac/hzims/baseinfo/wrapper/StRsrBsinWrapper.java

@ -0,0 +1,32 @@
package com.hnac.hzims.baseinfo.wrapper;
import com.hnac.hzims.baseinfo.entity.StRsrBsin;
import com.hnac.hzims.baseinfo.vo.StRsrBsinVo;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.cache.RegionCache;
import org.springblade.system.entity.Region;
import java.util.Objects;
public class StRsrBsinWrapper extends BaseEntityWrapper<StRsrBsin, StRsrBsinVo> {
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;
}
}

194
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmOreanizationController.java

@ -0,0 +1,194 @@
package com.hnac.hzims.equipment.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hnac.hzims.equipment.entity.EmInfoEntity;
import com.hnac.hzims.equipment.entity.EmTreeNode;
import com.hnac.hzims.equipment.service.IEmInfoService;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.boot.ctrl.BladeController;
import com.hnac.hzims.common.constant.CommonConstant;
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.node.ForestNodeMerger;
import org.springblade.core.tool.node.INode;
import org.springblade.core.tool.node.TreeNode;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import springfox.documentation.annotations.ApiIgnore;
import com.hnac.hzims.equipment.entity.EmOreanizationEntity;
import com.hnac.hzims.equipment.vo.EmOreanizationVO;
import com.hnac.hzims.equipment.wrapper.EmOreanizationWrapper;
import com.hnac.hzims.equipment.service.IEmOreanizationService;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 设备组织控制器
*
* @author moze
*/
@RestController
@AllArgsConstructor
@RequestMapping("/em/oreanization")
@Api(value = "设备组织结构", tags = "设备组织结构")
public class EmOreanizationController extends BladeController {
private final IEmOreanizationService em_oreanizationService;
private final IEmInfoService emInfoService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入ID")
public R<EmOreanizationEntity> detail(@ApiParam(value = "主键", required = true) @RequestParam String id) {
EmOreanizationEntity detail = em_oreanizationService.getById(Func.toLong(id));
return R.data(detail);
}
/**
* 加载当前站点设备的组织结构
*/
/*@GetMapping("/initLoad")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "初始化加载", notes = "加载当前站点设备的组织结构")
public R<List<TreeNode>> init() {
return R.data(em_oreanizationService.initLoad(AuthUtil.getTenantId()));
}*/
@ApiOperation("获取目录树形结构")
@GetMapping("/initLoad")
public R<List<EmTreeNode>> getStructTree() {
return em_oreanizationService.groupTree();
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入em_oreanization")
public R save(@Valid @RequestBody EmOreanizationEntity em_oreanization) {
if (StringUtil.isNotBlank(em_oreanization.getPid() + "")) {
List<EmOreanizationEntity> emOreanizationEntities = em_oreanizationService.list(new QueryWrapper<EmOreanizationEntity>() {{
//eq("PID", em_oreanization.getPid());
eq("NAME", em_oreanization.getName());
}});
if (CollectionUtil.isNotEmpty(emOreanizationEntities)) {
return R.fail("名称已存在!");
}
}
em_oreanization.setSort(em_oreanizationService.sort(em_oreanization.getPid()));
return R.status(em_oreanizationService.save(em_oreanization));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "修改", notes = "传入em_oreanization")
public R update(@Valid @RequestBody EmOreanizationEntity em_oreanization) {
List<EmOreanizationEntity> list = em_oreanizationService.list(new QueryWrapper<EmOreanizationEntity>() {{
eq("ID", em_oreanization.getId());
eq("NAME", em_oreanization.getName());
}});
if (CollectionUtil.isEmpty(list)) {
List<EmOreanizationEntity> emOreanizationEntities = em_oreanizationService.list(new QueryWrapper<EmOreanizationEntity>() {{
eq("PID", em_oreanization.getPid());
eq("NAME", em_oreanization.getName());
}});
if (CollectionUtil.isNotEmpty(emOreanizationEntities)) {
return R.fail("同级名称已存在!");
}
}
return R.status(em_oreanizationService.updateOrg(em_oreanization));
}
/**
* 备用-新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "新增或修改", notes = "传入em_oreanization")
public R submit(@Valid @RequestBody EmOreanizationEntity em_oreanization) {
if (StringUtil.isNotBlank(em_oreanization.getPid() + "")) {
List<EmOreanizationEntity> emOreanizationEntities = em_oreanizationService.list(new QueryWrapper<EmOreanizationEntity>() {{
eq("NAME", em_oreanization.getName());
eq("PID", em_oreanization.getPid());
}});
if (CollectionUtil.isNotEmpty(emOreanizationEntities)) {
return R.fail("同级名称已存在!");
}
}
return R.status(em_oreanizationService.saveOrUpdate(em_oreanization));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
String[] split = ids.split(",");
for (String id : split) {
List<EmOreanizationEntity> isThere = em_oreanizationService.list(new QueryWrapper<EmOreanizationEntity>() {{
eq("PID", id);
}});
if (CollectionUtil.isNotEmpty(isThere)) {
return R.fail("请先删除子组织");
}
List<EmInfoEntity> refOreanization = emInfoService.list(new QueryWrapper<EmInfoEntity>() {{
eq("REF_OREANIZATION", id);
}});
if (CollectionUtil.isNotEmpty(refOreanization)) {
return R.fail("请先删除设备信息");
}
}
return R.status(em_oreanizationService.deleteLogic(Func.toLongList(ids)));
}
/**
* 下移
*/
@PostMapping("/down")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "下移", notes = "传入ID")
public R down(@ApiParam(value = "主键", required = true) @RequestParam String id1, @ApiParam(value = "主键", required = true) @RequestParam String id2) {
return R.status(em_oreanizationService.translocation(Func.toLong(id1), Func.toLong(id2)));
}
/**
* 上移
*/
@PostMapping("/up")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "上移", notes = "传入ID")
public R up(@ApiParam(value = "主键", required = true) @RequestParam String id1, @ApiParam(value = "主键", required = true) @RequestParam String id2) {
return R.status(em_oreanizationService.translocation(Func.toLong(id1), Func.toLong(id2)));
}
}

21
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmOreanizationMapper.java

@ -0,0 +1,21 @@
package com.hnac.hzims.equipment.mapper;
import org.springblade.core.datascope.annotation.UserDataAuth;
import com.hnac.hzims.equipment.entity.EmOreanizationEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
import org.springblade.core.tool.node.TreeNode;
import java.util.List;
/**
* Mapper 接口
*
* @author Chill
*/
public interface EmOreanizationMapper extends UserDataScopeBaseMapper<EmOreanizationEntity> {
@UserDataAuth
List<TreeNode> selectTreeList(String tenantId);
int selectMaxSort(Long pid);
}

47
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmOreanizationMapper.xml

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.equipment.mapper.EmOreanizationMapper">
<!-- 通用查询映射结果 -->
<resultMap id="em_oreanizationResultMap" type="com.hnac.hzims.equipment.entity.EmOreanizationEntity">
<result column="ID" property="id"/>
<result column="PID" property="pid"/>
<result column="STATUS" property="status"/>
<result column="NAME" property="name"/>
<result column="TYPE_CODE" property="typeCode"/>
<result column="SORT" property="sort"/>
<result column="REMARK" property="remark"/>
<result column="TENANT_ID" property="tenantId"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="CREATE_USER" property="createUser"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="CREATE_DEPT" property="createDept"/>
</resultMap>
<select id="selectTreeList" resultType="org.springblade.core.tool.node.TreeNode" parameterType="string">
SELECT
ID AS 'key',
PID AS parentId,
NAME AS title,
ID AS 'value',
Id,
CREATE_USER,
CREATE_DEPT
FROM
HZIMS_EM_OREANIZATION
WHERE IS_DELETED=0
and TENANT_ID = #{tenantId}
ORDER BY
PID,
SORT
</select>
<select id="selectMaxSort" resultType="integer">
SELECT IFNULL(MAX(SORT),0)
FROM HZIMS_EM_OREANIZATION
WHERE PID=#{pid}
</select>
</mapper>

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_attach.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563307857514502', 0, 'equipment', 'em_attach', 'menu', '/equipment/em_attach', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563307857514503', '1369563307857514502', 'em_attach_add', '新增', 'add', '/equipment/em_attach/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563307857514504', '1369563307857514502', 'em_attach_edit', '修改', 'edit', '/equipment/em_attach/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563307857514505', '1369563307857514502', 'em_attach_delete', '删除', 'delete', '/api/equipment/em_attach/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563307857514506', '1369563307857514502', 'em_attach_view', '查看', 'view', '/equipment/em_attach/view', 'file-text', 4, 2, 2, 1, NULL, 0);

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_info.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306376925191', 0, 'equipment', 'em_info', 'menu', '/equipment/em_info', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306376925192', '1369563306376925191', 'em_info_add', '新增', 'add', '/equipment/em_info/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306376925193', '1369563306376925191', 'em_info_edit', '修改', 'edit', '/equipment/em_info/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306376925194', '1369563306376925191', 'em_info_delete', '删除', 'delete', '/api/equipment/em_info/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306376925195', '1369563306376925191', 'em_info_view', '查看', 'view', '/equipment/em_info/view', 'file-text', 4, 2, 2, 1, NULL, 0);

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_model.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369816257129451526', 0, 'equipment', 'em_model', 'menu', '/equipment/em_model', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369816257129451527', '1369816257129451526', 'em_model_add', '新增', 'add', '/equipment/em_model/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369816257129451528', '1369816257129451526', 'em_model_edit', '修改', 'edit', '/equipment/em_model/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369816257129451529', '1369816257129451526', 'em_model_delete', '删除', 'delete', '/api/equipment/em_model/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369816257129451530', '1369816257129451526', 'em_model_view', '查看', 'view', '/equipment/em_model/view', 'file-text', 4, 2, 2, 1, NULL, 0);

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_model_param.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563308268556289', 0, 'equipment', 'em_model_param', 'menu', '/equipment/em_model_param', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563308268556290', '1369563308268556289', 'em_model_param_add', '新增', 'add', '/equipment/em_model_param/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563308268556291', '1369563308268556289', 'em_model_param_edit', '修改', 'edit', '/equipment/em_model_param/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563308268556292', '1369563308268556289', 'em_model_param_delete', '删除', 'delete', '/api/equipment/em_model_param/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563308268556293', '1369563308268556289', 'em_model_param_view', '查看', 'view', '/equipment/em_model_param/view', 'file-text', 4, 2, 2, 1, NULL, 0);

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_oreanization.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563305466761217', 0, 'equipment', 'em_oreanization', 'menu', '/equipment/em_oreanization', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563305466761218', '1369563305466761217', 'em_oreanization_add', '新增', 'add', '/equipment/em_oreanization/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563305466761219', '1369563305466761217', 'em_oreanization_edit', '修改', 'edit', '/equipment/em_oreanization/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563305466761220', '1369563305466761217', 'em_oreanization_delete', '删除', 'delete', '/api/equipment/em_oreanization/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563305466761221', '1369563305466761217', 'em_oreanization_view', '查看', 'view', '/equipment/em_oreanization/view', 'file-text', 4, 2, 2, 1, NULL, 0);

10
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/em_param.sql

@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306804744193', 0, 'equipment', 'em_param', 'menu', '/equipment/em_param', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306804744194', '1369563306804744193', 'em_param_add', '新增', 'add', '/equipment/em_param/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306804744195', '1369563306804744193', 'em_param_edit', '修改', 'edit', '/equipment/em_param/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306804744196', '1369563306804744193', 'em_param_delete', '删除', 'delete', '/api/equipment/em_param/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1369563306804744197', '1369563306804744193', 'em_param_view', '查看', 'view', '/equipment/em_param/view', 'file-text', 4, 2, 2, 1, NULL, 0);

32
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmOreanizationService.java

@ -0,0 +1,32 @@
package com.hnac.hzims.equipment.service;
import com.hnac.hzims.equipment.entity.EmTreeNode;
import com.hnac.hzims.equipment.vo.EmOreanizationVO;
import org.springblade.core.mp.base.BaseService;
import com.hnac.hzims.equipment.entity.EmOreanizationEntity;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.node.INode;
import org.springblade.core.tool.node.TreeNode;
import javax.validation.Valid;
import java.util.List;
/**
* 服务类
*
* @author moze
*/
public interface IEmOreanizationService extends BaseService<EmOreanizationEntity> {
List<TreeNode> initLoad(String tenantId);
boolean translocation(long id1, long id2);
boolean updateOrg(@Valid EmOreanizationEntity em_oreanization);
boolean saveOrg(@Valid EmOreanizationEntity em_oreanization);
R<List<EmTreeNode>> groupTree();
Integer sort(Long id);
}

162
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmOreanizationServiceImpl.java

@ -0,0 +1,162 @@
package com.hnac.hzims.equipment.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzims.equipment.entity.EmTreeNode;
import org.springblade.core.mp.base.BaseServiceImpl;
import com.hnac.hzims.equipment.entity.EmOreanizationEntity;
import com.hnac.hzims.equipment.mapper.EmOreanizationMapper;
import com.hnac.hzims.equipment.service.IEmOreanizationService;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.node.TreeNode;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 服务实现类
*
* @author Chill
*/
@Service
public class EmOreanizationServiceImpl extends BaseServiceImpl<EmOreanizationMapper, EmOreanizationEntity> implements IEmOreanizationService {
@Autowired
private EmOreanizationMapper oreanizationMapper;
@Override
public List<TreeNode> initLoad(String tenantId) {
List<TreeNode> treeList = oreanizationMapper.selectTreeList(tenantId);
return ForestNodeMerger.merge(treeList);
}
@Override
public boolean translocation(long id1, long id2) {
EmOreanizationEntity org1 = this.getById(id1);
EmOreanizationEntity org2 = this.getById(id2);
boolean flag = false;
if(Func.isNotEmpty(org1) && Func.isNotEmpty(org2)){
Integer sort = org1.getSort();
org1.setSort(org2.getSort());
org2.setSort(sort);
List<EmOreanizationEntity> rows = new ArrayList<EmOreanizationEntity>();
rows.add(org1);
rows.add(org2);
flag = this.updateBatchById(rows);
}else {
flag = false;
}
return flag;
}
@Override
public boolean updateOrg(@Valid EmOreanizationEntity em_oreanization) {
EmOreanizationEntity temp = this.getById(em_oreanization.getId());
// 处理序号问题
if(Func.isNotEmpty(temp)
&& temp.getPid() != null
&& em_oreanization.getPid() != null
&& temp.getPid().longValue() != em_oreanization.getPid().longValue()){
int maxSort = oreanizationMapper.selectMaxSort(em_oreanization.getPid()) + 1;
em_oreanization.setSort(maxSort);
return this.updateById(em_oreanization);
}else {
return this.updateById(em_oreanization);
}
}
@Override
public boolean saveOrg(EmOreanizationEntity em_oreanization) {
int maxSort = oreanizationMapper.selectMaxSort(em_oreanization.getPid()) + 1;
em_oreanization.setSort(maxSort);
int cnt = oreanizationMapper.insert(em_oreanization);
return cnt > 0;
}
@Override
public R<List<EmTreeNode>> groupTree() {
QueryWrapper<EmOreanizationEntity> queryWrapper = new QueryWrapper<EmOreanizationEntity>() {{
eq("PID",0);
}};
queryWrapper.orderByAsc("PID","SORT");
//数据库里所有pid为空的为根节点组织
List<EmOreanizationEntity> structs = oreanizationMapper.selectList(queryWrapper);
//查询所有数据 ListAll
QueryWrapper<EmOreanizationEntity> queryWrapper2 = new QueryWrapper<EmOreanizationEntity>() {{
}};
queryWrapper2.orderByAsc("PID","SORT");
List<EmOreanizationEntity> resultList = oreanizationMapper.selectList(queryWrapper2);
//把组织信息换成节点
List<EmTreeNode> rootNodes = new ArrayList<>();
for (EmOreanizationEntity struct : structs) {
EmTreeNode treeNode = new EmTreeNode();
treeNode.setId(struct.getId());
treeNode.setParentId(struct.getPid());
treeNode.setTitle(struct.getName());
treeNode.setLevel(1);
rootNodes.add(groupToNode(treeNode));
}
//生成树
List<EmTreeNode> nodeList = createGroupAndStationTree(resultList, rootNodes);
return R.data(nodeList);
}
@Override
public Integer sort(Long id) {
return oreanizationMapper.selectMaxSort(id) + 1;
}
private EmTreeNode groupToNode(EmTreeNode treeNode) {
if (Objects.isNull(treeNode)) {
return null;
}
return treeNode;
}
public List<EmTreeNode> createGroupAndStationTree(List<EmOreanizationEntity> resultList, List<EmTreeNode> rootNodes) {
if (rootNodes == null || rootNodes.size() < 1) {
return null;
}
//遍历根节点
for (EmTreeNode rootNode : rootNodes) {
//找到子节点
List<EmTreeNode> childNodes = listGroupNodeByPid(resultList,rootNode.getId()+"",rootNode.getLevel());
//如果没有数据了,就跳出循环
if (childNodes == null || childNodes.size() == 0) {
continue;
}
//遍历子节点
rootNode.setChildren(createGroupAndStationTree(resultList, childNodes));
}
return rootNodes;
}
public List<EmTreeNode> listGroupNodeByPid(List<EmOreanizationEntity> resultList, String id,Integer level){
List<EmTreeNode> childNodes = new ArrayList<>();
level = level+1;
for (EmOreanizationEntity struct : resultList) {
EmTreeNode treeNode = new EmTreeNode();
if(id.equals(struct.getPid()+"")){
treeNode.setId(struct.getId());
treeNode.setParentId(struct.getPid());
treeNode.setTitle(struct.getName());
treeNode.setLevel(level);
childNodes.add(treeNode);
}
}
return childNodes;
}
}

33
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mqtt/MessageFlowWranConsumer.java

@ -0,0 +1,33 @@
package com.hnac.hzims.message_alarm.mqtt;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.message_alarm.entity.MessageResponseData;
import com.hnac.hzims.message_alarm.strategy.FactoryStrategy;
import com.hnac.hzims.message_alarm.strategy.Strategy;
import lombok.extern.slf4j.Slf4j;
import org.springblade.mqtt.customer.IMqttReceive;
import org.springblade.mqtt.customer.annotation.MqttReceive;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
//告警消费主题
@Service
@MqttReceive(topicName = "message_alarm_center/handleFlowWarn")
@Slf4j
public class MessageFlowWranConsumer implements IMqttReceive {//消费(flowAlarm)json数据
@Autowired
FactoryStrategy factoryForStrategy;
@Override
public void handlerMessage(String message) {
log.info("收到告警消息: "+message);
//解析消息 发送消息
MessageResponseData responseData= JSONObject.parseObject(message,MessageResponseData.class);
//获取对应策略
Strategy strategy=factoryForStrategy.getStrategy(responseData.getBodyType());
if(strategy!=null) {//执行
strategy.handleJson(responseData);
}
}
}

191
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/strategy/FlowWarnStrategy.java

@ -0,0 +1,191 @@
package com.hnac.hzims.message_alarm.strategy;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.common.logs.utils.StringUtils;
import com.hnac.hzims.message_alarm.dto.MessageDTO;
import com.hnac.hzims.message_alarm.entity.MessageMonitorObjAttr;
import com.hnac.hzims.message_alarm.entity.MessageResponseData;
import com.hnac.hzims.message_alarm.entity.MessageSendInfo;
import com.hnac.hzims.message_alarm.enums.PushTypeEnum;
import com.hnac.hzims.message_alarm.enums.TemplateTypeEnum;
import com.hnac.hzims.message_alarm.mapper.MessageMonitorObjAttrMapper;
import com.hnac.hzims.message_alarm.service.IMessageStrategyService;
import com.hnac.hzims.message_alarm.util.CheckDataRationalUtil;
import com.hnac.hzims.message_alarm.vo.MessageObjTemplateVo;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.flow.core.entity.BladeFlow;
import org.springblade.flow.core.feign.IFlowClient;
import org.springblade.system.user.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
//告警解析策略
@Component("flowWarn")
@Slf4j
public class FlowWarnStrategy implements Strategy {
@Autowired
IMessageStrategyService messageStrategyService;
@Autowired
IFlowClient flowClient;
@Resource
private MessageMonitorObjAttrMapper messageMonitorObjAttrMapper;
@Override
public void handleJson(MessageResponseData responseData) {
log.info("入参responseData:{}", responseData);
//可执行模板
List<MessageObjTemplateVo> executableTemplate = null;
//解析属性列表数据
List<Map<String, Object>> attrListByObject = CheckDataRationalUtil.parseAttrListByObject(responseData.getData());
if (attrListByObject == null || attrListByObject.isEmpty()) {
return;
}
//查找符合条件的模板
List<MessageObjTemplateVo> list = messageStrategyService.queryMessageObjTemplateVo(responseData.getSchemeId(),
responseData.getDeviceCode(), TemplateTypeEnum.FLOW_WARN.getCode());
log.info("告警模板总个数:" + list.size());
//筛选出可执行的模板
if (list != null && !list.isEmpty()) {
executableTemplate = new ArrayList<>();
//获取数据中的最高级
int highLevel = CheckDataRationalUtil.getHighLevel(attrListByObject);
for (MessageObjTemplateVo vo : list) {
//校验模板与数据属性吻合度
boolean checkAttr = CheckDataRationalUtil.checkAttr(vo, responseData);
if (!checkAttr) {
continue;
}
//对象有属性的 针对自己的等级评价
// 对象不包含属性的 已字段中的最高等级评价
boolean checkObj = CheckDataRationalUtil.checkAlarmObj(vo, attrListByObject, highLevel);
if (!checkObj) {//筛选出可执行的模板
continue;
}
// 替换模板content
String templateContent = buildContent(responseData.getData(), vo.getTemplateContent());
vo.setTemplateContent(templateContent);
executableTemplate.add(vo);
}
log.info("告警模板符合个数:" + executableTemplate.size());
//发送消息+存储消息
for (MessageObjTemplateVo vo : executableTemplate) {
//解析模板内容
String message = CheckDataRationalUtil.parseContent(vo.getTemplateContent(), responseData);
log.info("模板:" + vo.getTemplateTitle() + ",发送告警消息:" + message);
//组装消息
// // 造假数据
// MessageSendInfo info = new MessageSendInfo();
// HashMap<Long, String> map = new HashMap<>();
// map.put(1710229795322830849L, "绿色小水电");
// info.setPerson(map);
// info.setTenantId("20000");
// info.setObjectSource("111");
// info.setPhones("13107280912");
// info.setMessage(message);
// info.setTitle("title");
// info.setObjectCode("JSCZ001");
// info.setSchemeId(1769602788549591042L);
MessageSendInfo info = messageStrategyService.getSendMessageInfo(vo, message);
if (info == null) {
continue;
}
//发送消息
if (PushTypeEnum.SMS.getCode().equals(info.getPushType())) {
// todo 短信配置
// 高板岩一站 电站生态流量预警:核定流量0.02(m³/s),当前日均流量0.017(m³/s),建议生态流量后续9小时的实时流量值不低于0.054(m³/s)
messageStrategyService.sendFlowWarnMessage(message, info.getPhones());
} else {
// messageStrategyService.sendInfo(info);
}
//启动流程实例
if (vo.getProcessKey() != null && !"".equals(vo.getProcessKey().trim())) {//I II III IV 启动流程
Map<String, Object> variables = new HashMap<>();
variables.put("alarm_msg", message);
String processInstanceId = null;
if (vo.getAutoStartProcess() != null && vo.getAutoStartProcess().intValue() == 1) {//自动触发
R<BladeFlow> bladeFlowR = flowClient.startProcessInstanceByKey(vo.getProcessKey(), "message_alarm_center", variables);
processInstanceId = bladeFlowR.getData().getProcessInstanceId();
}
//保存信息
messageStrategyService.saveFlowWarnMessage(info, processInstanceId, vo.getProcessKey(), vo.getAlarmLevel(), JSON.toJSONString(responseData));
} else {//V无需启动流程 需要相关人员确认一下
messageStrategyService.saveFlowWarnMessage(info, null, null, vo.getAlarmLevel(), JSON.toJSONString(responseData));
}
}
}
}
private final static String JOIN_CODE = "、";
/**
* 组装消息模板
*
* @param templateContent 模板
* @param responseData 数据
* @return
*/
private MessageDTO messageMake(String phones, String templateContent, MessageResponseData responseData, List<Map<String, Object>> list) {
MessageDTO messageDto = new MessageDTO();
messageDto.setStation(responseData.getObjectName());
messageDto.setTime(responseData.getCreateDate());
messageDto.setPhone(phones);
Map<String, String> keyToAttr = messageMonitorObjAttrMapper.selectList(new LambdaQueryWrapper<MessageMonitorObjAttr>() {{
eq(MessageMonitorObjAttr::getInstanceCode, responseData.getDeviceCode());
}}).stream().collect(Collectors.toMap(MessageMonitorObjAttr::getAttrCode, MessageMonitorObjAttr::getAttrName));
//拼接所有属性key值
List<String> keyList = CheckDataRationalUtil.getAttrList(templateContent);
//获取对应value值
StringBuilder valueStr = new StringBuilder();
StringBuilder keyStr = new StringBuilder();
for (String key : keyList) {
String tmpKey = key.replaceAll("\\{", "").replaceAll("}", "");
Object value = CheckDataRationalUtil.getDataByKey(tmpKey, list);
if (value != null) {
keyStr.append(getKeyName(keyToAttr, tmpKey));
valueStr.append(value.toString());
valueStr.append(JOIN_CODE);
keyStr.append(JOIN_CODE);
}
}
valueStr.deleteCharAt(valueStr.length() - 1);
keyStr.deleteCharAt(keyStr.length() - 1);
messageDto.setNum(valueStr.toString());
messageDto.setType(keyStr.toString());
log.info("messageMake {}", messageDto);
return messageDto;
}
//获取当前key对应名称
private String getKeyName(Map<String, String> objAttr, String key) {
return StringUtils.isEmpty(objAttr.get(key)) ? "-" : objAttr.get(key);
}
private String buildContent(String data, String templateContent) {
JSONArray array = JSON.parseArray(data);
Map map = JSON.parseObject(array.get(0).toString(), Map.class);
return map.get("suggest").toString();
}
}

9
hzims-service/safeproduct/README.md

@ -0,0 +1,9 @@
## 部署说明
* 視頻監控告警 模块需要跳过token权限校验,视频识别模块python不调用登录
* 視頻監控告警 模块的minio图片链接需要设置文件夹为public。例:
```
# 使用minio client
mc policy set public minio/ims-monitor
```
Loading…
Cancel
Save