diff --git a/.gitignore b/.gitignore
index 882303e..21ce137 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,4 +46,6 @@ packages/
/test/plugin/dist
/test/plugin/workspace
/test/jacoco/classes
-/test/jacoco/*.exec
\ No newline at end of file
+/test/jacoco/*.exec
+
+src/main/resources/static
diff --git a/pom.xml b/pom.xml
index 5f8836f..3a36075 100644
--- a/pom.xml
+++ b/pom.xml
@@ -142,6 +142,11 @@
querydsl-apt
${querydsl.version}
+
+ org.mitre.dsmiley.httpproxy
+ smiley-http-proxy-servlet
+ 1.12.1
+
diff --git a/sql/init.sql b/sql/init.sql
index a78989d..6f644c7 100644
--- a/sql/init.sql
+++ b/sql/init.sql
@@ -1,20 +1,25 @@
-CREATE TABLE `icd_file_config` (
+CREATE TABLE `icd_config_type` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `ied_name` varchar(45) NOT NULL,
- `ldevice_inst` varchar(45) NOT NULL,
- `ln_class` varchar(45) NOT NULL,
- `do_name` varchar(45) NOT NULL,
- `last_name` varchar(45) DEFAULT NULL,
- `table_name` varchar(45) DEFAULT NULL,
- `col_name` varchar(45) DEFAULT NULL,
+ `ied_name` varchar(45) NOT NULL COMMENT 'IED名称',
+ `ldevice_inst` varchar(45) NOT NULL COMMENT '设备类型',
+ `ln_class` varchar(45) NOT NULL COMMENT 'LN类型',
+ `ln_desc` varchar(200) DEFAULT NULL,
+ `table_name` varchar(45) DEFAULT NULL COMMENT '表名',
PRIMARY KEY (`id`),
- KEY `idxKey` (`ied_name`,`ldevice_inst`,`ln_class`,`do_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-CREATE TABLE `icd_file_config_inst` (
+ KEY `idxKey` (`ied_name`,`ldevice_inst`,`ln_class`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ICD配置类型表';
+CREATE TABLE `icd_config_type_att` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `config_id` int(11) NOT NULL,
- `inst` varchar(45) DEFAULT NULL,
- `paramindex` varchar(200) DEFAULT NULL,
- PRIMARY KEY (`id`),
- KEY `idxConfigid` (`config_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `icd_config_type_id` int(11) NOT NULL COMMENT '配置类型表id',
+ `do_name` varchar(45) NOT NULL COMMENT '属性',
+ `param` varchar(200) DEFAULT NULL COMMENT '参数',
+ `description` varchar(200) DEFAULT NULL COMMENT '备注',
+ `col_name` varchar(45) DEFAULT NULL COMMENT '字段名',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ICD配置类型属性表';
+CREATE TABLE `icd_config_type_inst` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `icd_config_type_id` int(11) NOT NULL COMMENT '配置类型表id',
+ `inst` varchar(45) NOT NULL COMMENT '实例',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ICD配置类型实例表';
diff --git a/src/main/java/com/xydl/cac/config/SolrProxyServletConfiguration.java b/src/main/java/com/xydl/cac/config/SolrProxyServletConfiguration.java
new file mode 100644
index 0000000..d108b19
--- /dev/null
+++ b/src/main/java/com/xydl/cac/config/SolrProxyServletConfiguration.java
@@ -0,0 +1,36 @@
+package com.xydl.cac.config;
+
+import org.mitre.dsmiley.httpproxy.ProxyServlet;
+import org.springframework.boot.context.properties.bind.BindResult;
+import org.springframework.boot.context.properties.bind.Binder;
+import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+
+import java.util.Properties;
+
+@Configuration
+public class SolrProxyServletConfiguration implements EnvironmentAware {
+
+ @Bean
+ public ServletRegistrationBean servletRegistrationBean() {
+ Properties properties = (Properties) bindResult.get();
+ ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ProxyServlet(), properties.getProperty("servlet_url"));
+ servletRegistrationBean.addInitParameter(ProxyServlet.P_TARGET_URI, properties.getProperty("target_url"));
+ servletRegistrationBean.addInitParameter(ProxyServlet.P_LOG, properties.getProperty("logging_enabled", "false"));
+ return servletRegistrationBean;
+ }
+
+ private BindResult bindResult;
+
+ @Override
+ public void setEnvironment(Environment environment) {
+ Iterable sources = ConfigurationPropertySources.get(environment);
+ Binder binder = new Binder(sources);
+ BindResult bindResult = binder.bind("proxy.solr", Properties.class);
+ this.bindResult = bindResult;
+ }
+}
diff --git a/src/main/java/com/xydl/cac/controller/BdzController.java b/src/main/java/com/xydl/cac/controller/BdzController.java
index 991f2e4..85eab39 100644
--- a/src/main/java/com/xydl/cac/controller/BdzController.java
+++ b/src/main/java/com/xydl/cac/controller/BdzController.java
@@ -1,6 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.Bdz;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.BdzService;
import io.swagger.annotations.Api;
@@ -40,7 +41,7 @@ public class BdzController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody Bdz item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/controller/IcdConfigController.java b/src/main/java/com/xydl/cac/controller/IcdConfigController.java
index 8b7e2da..e4251d4 100644
--- a/src/main/java/com/xydl/cac/controller/IcdConfigController.java
+++ b/src/main/java/com/xydl/cac/controller/IcdConfigController.java
@@ -77,10 +77,17 @@ public class IcdConfigController extends BasicController {
return Response.success("OK");
}
+ @PostMapping("deleteAtt")
+ @ApiOperation("删除ICD类型属性配置")
+ public Response deleteAtt(@Validated @NotNull(message = "attid不能为空!") Integer attid) {
+ configService.deleteAtt(attid);
+ return Response.success("OK");
+ }
+
@GetMapping("tableList")
@ApiOperation("查询data表名")
- public Response> tableList() throws Exception {
- List result = dataService.getDataTables();
+ public Response> tableList() throws Exception {
+ List result = dataService.getDataTables();
return Response.success(result);
}
@@ -91,4 +98,11 @@ public class IcdConfigController extends BasicController {
return Response.success(result);
}
+ @PostMapping("clearAll")
+ @ApiOperation("清空所有配置")
+ public Response clearAll() throws Exception {
+ configService.clearAll();
+ return Response.success("OK");
+ }
+
}
diff --git a/src/main/java/com/xydl/cac/controller/JgController.java b/src/main/java/com/xydl/cac/controller/JgController.java
index b262c40..3b09309 100644
--- a/src/main/java/com/xydl/cac/controller/JgController.java
+++ b/src/main/java/com/xydl/cac/controller/JgController.java
@@ -1,6 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.Jg;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.JgService;
import io.swagger.annotations.Api;
@@ -40,7 +41,7 @@ public class JgController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody Jg item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/controller/LxController.java b/src/main/java/com/xydl/cac/controller/LxController.java
index 4be5b10..b281184 100644
--- a/src/main/java/com/xydl/cac/controller/LxController.java
+++ b/src/main/java/com/xydl/cac/controller/LxController.java
@@ -1,6 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.Lx;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.LxService;
import io.swagger.annotations.Api;
@@ -40,7 +41,7 @@ public class LxController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody Lx item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/controller/ModevController.java b/src/main/java/com/xydl/cac/controller/ModevController.java
index 655a3e1..8d97447 100644
--- a/src/main/java/com/xydl/cac/controller/ModevController.java
+++ b/src/main/java/com/xydl/cac/controller/ModevController.java
@@ -2,6 +2,7 @@ package com.xydl.cac.controller;
import com.xydl.cac.entity.Modev;
import com.xydl.cac.entity.ModevType;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.ModevService;
import com.xydl.cac.service.ModevTypeService;
@@ -43,7 +44,7 @@ public class ModevController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody Modev item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/controller/ModevTypeController.java b/src/main/java/com/xydl/cac/controller/ModevTypeController.java
index 8e3226f..0eb86d2 100644
--- a/src/main/java/com/xydl/cac/controller/ModevTypeController.java
+++ b/src/main/java/com/xydl/cac/controller/ModevTypeController.java
@@ -1,6 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.ModevType;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.ModevTypeService;
import io.swagger.annotations.Api;
@@ -40,7 +41,7 @@ public class ModevTypeController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody ModevType item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/controller/ParamBindController.java b/src/main/java/com/xydl/cac/controller/ParamBindController.java
index 387b098..f3bf421 100644
--- a/src/main/java/com/xydl/cac/controller/ParamBindController.java
+++ b/src/main/java/com/xydl/cac/controller/ParamBindController.java
@@ -3,6 +3,7 @@ package com.xydl.cac.controller;
import com.xydl.cac.entity.Bdz;
import com.xydl.cac.entity.IcdConfigTypeInst;
import com.xydl.cac.entity.Rptparamindex;
+import com.xydl.cac.model.BindDetail;
import com.xydl.cac.model.BindingModel;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.ParamBindService;
@@ -42,9 +43,43 @@ public class ParamBindController extends BasicController {
@PostMapping("preview")
@ApiOperation("预览")
- public Response> preview(@Validated @RequestBody BindingModel item) throws Exception {
- List result = bindService.preview(item);
+ public Response preview(@Validated @RequestBody BindingModel item) throws Exception {
+ return bindService.preview(item);
+ }
+
+ @PostMapping("bind")
+ @ApiOperation("绑定")
+ public Response bind(@Validated @RequestBody BindingModel item) throws Exception {
+ bindService.bind(item);
+ return Response.success("OK");
+ }
+
+ @PostMapping("unbind")
+ @ApiOperation("解绑")
+ public Response unbind(@Validated @NotNull(message = "eqmid不能为空!") @Param("eqmid") Integer eqmid) throws Exception {
+ bindService.unbind(eqmid);
+ return Response.success("OK");
+ }
+
+ @GetMapping("getBind")
+ @ApiOperation("查询绑定信息")
+ public Response getBind(@Validated @NotNull(message = "eqmid不能为空!") @Param("eqmid") Integer eqmid) throws Exception {
+ BindDetail result = bindService.getBind(eqmid);
return Response.success(result);
}
+ @PostMapping("generateParamindex")
+ @ApiOperation("生成rptparamindex表的相关绑定数据")
+ public Response generateParamindex() throws Exception {
+ String msg = bindService.generateParamindex();
+ return Response.success(msg);
+ }
+
+ @PostMapping("clearAll")
+ @ApiOperation("清空所有绑定")
+ public Response clearAll() throws Exception {
+ bindService.clearAll();
+ return Response.success("OK");
+ }
+
}
diff --git a/src/main/java/com/xydl/cac/controller/ZsbController.java b/src/main/java/com/xydl/cac/controller/ZsbController.java
index 8a23896..83ff7a7 100644
--- a/src/main/java/com/xydl/cac/controller/ZsbController.java
+++ b/src/main/java/com/xydl/cac/controller/ZsbController.java
@@ -1,6 +1,7 @@
package com.xydl.cac.controller;
import com.xydl.cac.entity.Zsb;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.ZsbService;
import io.swagger.annotations.Api;
@@ -40,7 +41,7 @@ public class ZsbController extends BasicController {
@ApiOperation("更新")
public Response update(@Validated @RequestBody Zsb item) throws Exception {
if (item.getId() == null) {
- throw new Exception("ID不能为空!");
+ throw new BusinessException("ID不能为空!");
}
service.update(item);
return Response.success("OK");
diff --git a/src/main/java/com/xydl/cac/entity/Bdz.java b/src/main/java/com/xydl/cac/entity/Bdz.java
index 6e47ce8..bdc8f04 100644
--- a/src/main/java/com/xydl/cac/entity/Bdz.java
+++ b/src/main/java/com/xydl/cac/entity/Bdz.java
@@ -8,7 +8,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;
@@ -26,7 +27,8 @@ public class Bdz {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@ApiModelProperty("名称")
@Column(name = "mc")
private String mc;
diff --git a/src/main/java/com/xydl/cac/entity/IcdConfigType.java b/src/main/java/com/xydl/cac/entity/IcdConfigType.java
index b2bc03c..d8ef1f0 100644
--- a/src/main/java/com/xydl/cac/entity/IcdConfigType.java
+++ b/src/main/java/com/xydl/cac/entity/IcdConfigType.java
@@ -1,6 +1,7 @@
package com.xydl.cac.entity;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -24,15 +25,23 @@ public class IcdConfigType {
@Column(name = "id")
private Integer id;
+ @ApiModelProperty(name = "IED名称")
@Column(name = "ied_name")
private String iedName;
+ @ApiModelProperty(name = "设备类型")
@Column(name = "ldevice_inst")
private String ldeviceInst;
+ @ApiModelProperty(name = "LN类型")
@Column(name = "ln_class")
private String lnClass;
+ @ApiModelProperty(name = "LN类型备注")
+ @Column(name = "ln_desc")
+ private String lnDesc;
+
+ @ApiModelProperty(name = "表名")
@Column(name = "table_name")
private String tableName;
@@ -46,14 +55,15 @@ public class IcdConfigType {
@Transient
private List instList;
- public void addAtt(String doName, String lastname) {
+ public void addAtt(String doName, String desc, String param) {
if (attMap == null) {
attMap = new LinkedHashMap<>();
}
if (!attMap.containsKey(doName)) {
IcdConfigTypeAtt item = IcdConfigTypeAtt.builder()
.doName(doName)
- .lastName(lastname)
+ .description(desc)
+ .param(param)
.build();
attMap.put(doName, item);
}
diff --git a/src/main/java/com/xydl/cac/entity/IcdConfigTypeAtt.java b/src/main/java/com/xydl/cac/entity/IcdConfigTypeAtt.java
index 58fef02..36f79f3 100644
--- a/src/main/java/com/xydl/cac/entity/IcdConfigTypeAtt.java
+++ b/src/main/java/com/xydl/cac/entity/IcdConfigTypeAtt.java
@@ -1,6 +1,7 @@
package com.xydl.cac.entity;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -24,15 +25,23 @@ public class IcdConfigTypeAtt {
@Column(name = "id")
private Integer id;
+ @ApiModelProperty(name = "配置类型表id")
@Column(name = "icd_config_type_id")
private Integer icdConfigTypeId;
+ @ApiModelProperty(name = "属性")
@Column(name = "do_name")
private String doName;
- @Column(name = "last_name")
- private String lastName;
+ @ApiModelProperty(name = "参数")
+ @Column(name = "param")
+ private String param;
+ @ApiModelProperty(name = "备注")
+ @Column(name = "description")
+ private String description;
+
+ @ApiModelProperty(name = "字段名")
@Column(name = "col_name")
private String colName;
diff --git a/src/main/java/com/xydl/cac/entity/IcdConfigTypeInst.java b/src/main/java/com/xydl/cac/entity/IcdConfigTypeInst.java
index 2b983f1..85ba695 100644
--- a/src/main/java/com/xydl/cac/entity/IcdConfigTypeInst.java
+++ b/src/main/java/com/xydl/cac/entity/IcdConfigTypeInst.java
@@ -1,6 +1,7 @@
package com.xydl.cac.entity;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -22,9 +23,11 @@ public class IcdConfigTypeInst {
@Column(name = "id")
private Integer id;
+ @ApiModelProperty(name = "配置类型表id")
@Column(name = "icd_config_type_id")
private Integer icdConfigTypeId;
+ @ApiModelProperty(name = "实例")
@Column(name = "inst")
private String inst;
diff --git a/src/main/java/com/xydl/cac/entity/Jg.java b/src/main/java/com/xydl/cac/entity/Jg.java
index c50912f..d5c0de2 100644
--- a/src/main/java/com/xydl/cac/entity/Jg.java
+++ b/src/main/java/com/xydl/cac/entity/Jg.java
@@ -8,8 +8,9 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;
@@ -27,7 +28,8 @@ public class Jg {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@ApiModelProperty("名称")
@Column(name = "mc")
private String mc;
diff --git a/src/main/java/com/xydl/cac/entity/Lx.java b/src/main/java/com/xydl/cac/entity/Lx.java
index 32ab6e4..5edaec0 100644
--- a/src/main/java/com/xydl/cac/entity/Lx.java
+++ b/src/main/java/com/xydl/cac/entity/Lx.java
@@ -8,7 +8,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
import java.math.BigDecimal;
@Data
@@ -25,7 +26,8 @@ public class Lx {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@ApiModelProperty("名称")
@Column(name = "mc")
private String mc;
diff --git a/src/main/java/com/xydl/cac/entity/Modev.java b/src/main/java/com/xydl/cac/entity/Modev.java
index 07704f3..bbdb522 100644
--- a/src/main/java/com/xydl/cac/entity/Modev.java
+++ b/src/main/java/com/xydl/cac/entity/Modev.java
@@ -8,8 +8,9 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import java.util.Date;
@Data
@@ -26,7 +27,8 @@ public class Modev {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@Column(name = "name")
@ApiModelProperty("监测设备名称")
private String name;
diff --git a/src/main/java/com/xydl/cac/entity/ModevType.java b/src/main/java/com/xydl/cac/entity/ModevType.java
index 874b25b..d555847 100644
--- a/src/main/java/com/xydl/cac/entity/ModevType.java
+++ b/src/main/java/com/xydl/cac/entity/ModevType.java
@@ -7,7 +7,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
@Data
@Builder
@@ -23,11 +24,12 @@ public class ModevType {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@Column(name = "mc")
private String mc;
- @NotEmpty(message = "表名不能为空")
+ @NotBlank(message = "表名不能为空")
@Column(name = "tablename")
private String tablename;
diff --git a/src/main/java/com/xydl/cac/entity/Zsb.java b/src/main/java/com/xydl/cac/entity/Zsb.java
index c493ccb..e0192c8 100644
--- a/src/main/java/com/xydl/cac/entity/Zsb.java
+++ b/src/main/java/com/xydl/cac/entity/Zsb.java
@@ -8,8 +8,9 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;
@@ -27,7 +28,8 @@ public class Zsb {
@Column(name = "id")
private Integer id;
- @NotEmpty(message = "名称不能为空")
+ @NotBlank(message = "名称不能为空")
+ @Size(max = 50, message = "名称长度不能超过50个字符")
@ApiModelProperty("名称")
@Column(name = "mc")
private String mc;
diff --git a/src/main/java/com/xydl/cac/exception/BusinessException.java b/src/main/java/com/xydl/cac/exception/BusinessException.java
new file mode 100644
index 0000000..a5e9710
--- /dev/null
+++ b/src/main/java/com/xydl/cac/exception/BusinessException.java
@@ -0,0 +1,8 @@
+package com.xydl.cac.exception;
+
+public class BusinessException extends Exception {
+
+ public BusinessException(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java b/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java
index 5bd73ed..799db64 100644
--- a/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java
+++ b/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java
@@ -2,6 +2,8 @@ package com.xydl.cac.exception;
import com.xydl.cac.model.Response;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.NestedExceptionUtils;
+import org.springframework.http.converter.HttpMessageConversionException;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
@@ -21,6 +23,19 @@ public class GlobalExceptionHandler {
return Response.fail(message);
}
+ @ExceptionHandler(HttpMessageConversionException.class)
+ public Response handleHttpMessageConversionException(HttpMessageConversionException ex) {
+ String message = "类型转换异常:" + ex.getRootCause().getLocalizedMessage();
+ return Response.fail(message);
+ }
+
+ @ExceptionHandler(BusinessException.class)
+ public Response handleBusinessException(BusinessException ex) {
+ String message = ex.getMessage();
+ log.error(message);
+ return Response.fail(message);
+ }
+
@ExceptionHandler(Exception.class)
public Response handleException(Exception ex) {
log.error("", ex);
diff --git a/src/main/java/com/xydl/cac/filter/UrlFilter.java b/src/main/java/com/xydl/cac/filter/UrlFilter.java
new file mode 100644
index 0000000..1c8afe1
--- /dev/null
+++ b/src/main/java/com/xydl/cac/filter/UrlFilter.java
@@ -0,0 +1,53 @@
+package com.xydl.cac.filter;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.util.PathMatcher;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.List;
+
+@Component
+@Slf4j
+public class UrlFilter extends OncePerRequestFilter {
+
+ PathMatcher pathMatcher = new AntPathMatcher();
+ private List urlWhiteList = Arrays.asList("/swagger-ui/**", "/swagger-resources/**", "/v3/api-docs/**",
+ "/static/**", "/newcac/**");
+
+ @Override
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+ String path = request.getRequestURI();
+ for (String white : urlWhiteList) {
+ if (pathMatcher.match(white, path)) {
+ filterChain.doFilter(request, response);
+ return;
+ }
+ }
+
+ String method = request.getMethod();
+ StringBuilder str = new StringBuilder(method + " " + path + " called");
+ Enumeration params = request.getParameterNames();
+ while (params.hasMoreElements()) {
+ String paramName = params.nextElement();
+ str.append(", ").append(paramName).append("=").append(request.getParameter(paramName));
+ }
+ log.info(str.toString());
+
+ if (path.startsWith("/cac-api/")) {
+ path = path.replace("/cac-api/", "/");
+ request.getRequestDispatcher(path).forward(request, response);
+ return;
+ }
+
+ filterChain.doFilter(request, response);
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/BindDetail.java b/src/main/java/com/xydl/cac/model/BindDetail.java
new file mode 100644
index 0000000..8d207e1
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/BindDetail.java
@@ -0,0 +1,21 @@
+package com.xydl.cac.model;
+
+import com.xydl.cac.entity.IcdConfigTypeAtt;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BindDetail {
+ @ApiModelProperty("eqmid")
+ Integer eqmid;
+ @ApiModelProperty("逻辑设备实例的Id")
+ Integer icdid;
+ @ApiModelProperty("iedName")
+ String iedName;
+ @ApiModelProperty("表字段名")
+ List columnList;
+ @ApiModelProperty("绑定关系")
+ List attList;
+}
diff --git a/src/main/java/com/xydl/cac/model/BindingModel.java b/src/main/java/com/xydl/cac/model/BindingModel.java
index b8b06ae..f04a9f1 100644
--- a/src/main/java/com/xydl/cac/model/BindingModel.java
+++ b/src/main/java/com/xydl/cac/model/BindingModel.java
@@ -12,5 +12,5 @@ public class BindingModel {
Integer eqmid;
@NotNull(message = "逻辑设备实例的Id不能为空")
@ApiModelProperty("逻辑设备实例的Id")
- Integer bindingId;
+ Integer icdid;
}
diff --git a/src/main/java/com/xydl/cac/model/Response.java b/src/main/java/com/xydl/cac/model/Response.java
index e17ba9c..ac57bfa 100644
--- a/src/main/java/com/xydl/cac/model/Response.java
+++ b/src/main/java/com/xydl/cac/model/Response.java
@@ -10,6 +10,7 @@ import java.io.Serializable;
public class Response implements Serializable {
private boolean success;
private String errorMsg;
+ private String warnMsg;
private T data;
public Response(T data) {
diff --git a/src/main/java/com/xydl/cac/repository/ModevRepository.java b/src/main/java/com/xydl/cac/repository/ModevRepository.java
index b75b912..94cd182 100644
--- a/src/main/java/com/xydl/cac/repository/ModevRepository.java
+++ b/src/main/java/com/xydl/cac/repository/ModevRepository.java
@@ -10,6 +10,12 @@ import java.util.List;
@Repository
public interface ModevRepository extends JpaRepository, JpaSpecificationExecutor {
+
List findByZsbid(Integer zsbid);
- List findByZsbidAndName(Integer zsbid,String name);
+
+ List findByZsbidAndName(Integer zsbid, String name);
+
+ List findByIcdidAndIdIsNot(Integer icdid, Integer id);
+
+ List findByIcdidIsNotNull();
}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/service/DataService.java b/src/main/java/com/xydl/cac/service/DataService.java
index ed289d4..d6899d6 100644
--- a/src/main/java/com/xydl/cac/service/DataService.java
+++ b/src/main/java/com/xydl/cac/service/DataService.java
@@ -9,9 +9,11 @@ import java.util.Map;
public interface DataService {
- List getDataTables() throws Exception;
+ List getDataTables() throws Exception;
List getDataTableColumns(String tableName) throws Exception;
OnePage