pert: 增加描述字段

dev
huangfeng 1 year ago
parent 9413f6d5e3
commit 1e1dcec5ea

@ -3,6 +3,7 @@ CREATE TABLE `icd_config_type` (
`ied_name` varchar(45) NOT NULL COMMENT 'IED名称', `ied_name` varchar(45) NOT NULL COMMENT 'IED名称',
`ldevice_inst` varchar(45) NOT NULL COMMENT '设备类型', `ldevice_inst` varchar(45) NOT NULL COMMENT '设备类型',
`ln_class` varchar(45) NOT NULL COMMENT 'LN类型', `ln_class` varchar(45) NOT NULL COMMENT 'LN类型',
`ln_desc` varchar(200) DEFAULT NULL,
`table_name` varchar(45) DEFAULT NULL COMMENT '表名', `table_name` varchar(45) DEFAULT NULL COMMENT '表名',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `idxKey` (`ied_name`,`ldevice_inst`,`ln_class`) KEY `idxKey` (`ied_name`,`ldevice_inst`,`ln_class`)
@ -12,6 +13,7 @@ CREATE TABLE `icd_config_type_att` (
`icd_config_type_id` int(11) NOT NULL COMMENT '配置类型表id', `icd_config_type_id` int(11) NOT NULL COMMENT '配置类型表id',
`do_name` varchar(45) NOT NULL COMMENT '属性', `do_name` varchar(45) NOT NULL COMMENT '属性',
`param` varchar(200) DEFAULT NULL COMMENT '参数', `param` varchar(200) DEFAULT NULL COMMENT '参数',
`description` varchar(200) DEFAULT NULL COMMENT '备注',
`col_name` varchar(45) DEFAULT NULL COMMENT '字段名', `col_name` varchar(45) DEFAULT NULL COMMENT '字段名',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ICD配置类型属性表'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ICD配置类型属性表';

@ -37,6 +37,10 @@ public class IcdConfigType {
@Column(name = "ln_class") @Column(name = "ln_class")
private String lnClass; private String lnClass;
@ApiModelProperty(name = "LN类型备注")
@Column(name = "ln_desc")
private String lnDesc;
@ApiModelProperty(name = "表名") @ApiModelProperty(name = "表名")
@Column(name = "table_name") @Column(name = "table_name")
private String tableName; private String tableName;
@ -51,13 +55,14 @@ public class IcdConfigType {
@Transient @Transient
private List<IcdConfigTypeInst> instList; private List<IcdConfigTypeInst> instList;
public void addAtt(String doName, String param) { public void addAtt(String doName, String desc, String param) {
if (attMap == null) { if (attMap == null) {
attMap = new LinkedHashMap<>(); attMap = new LinkedHashMap<>();
} }
if (!attMap.containsKey(doName)) { if (!attMap.containsKey(doName)) {
IcdConfigTypeAtt item = IcdConfigTypeAtt.builder() IcdConfigTypeAtt item = IcdConfigTypeAtt.builder()
.doName(doName) .doName(doName)
.description(desc)
.param(param) .param(param)
.build(); .build();
attMap.put(doName, item); attMap.put(doName, item);

@ -37,6 +37,10 @@ public class IcdConfigTypeAtt {
@Column(name = "param") @Column(name = "param")
private String param; private String param;
@ApiModelProperty(name = "备注")
@Column(name = "description")
private String description;
@ApiModelProperty(name = "字段名") @ApiModelProperty(name = "字段名")
@Column(name = "col_name") @Column(name = "col_name")
private String colName; private String colName;

@ -60,8 +60,11 @@ public class IcdXmlUtil {
JsonNode lnNode = mapLN.get(lnClass + lnInst); JsonNode lnNode = mapLN.get(lnClass + lnInst);
String lnType = lnNode.get("lnType").asText(); String lnType = lnNode.get("lnType").asText();
String lnDesc = lnNode.get("desc").asText();
JsonNode nodeLNodeType = mapLNodeType.get(lnType); JsonNode nodeLNodeType = mapLNodeType.get(lnType);
String doType = findLNodeType_DO_Type(nodeLNodeType, doName); JsonNode nodeDO = findLNodeType_DO_Node(nodeLNodeType, doName);
String doType = nodeDO.get("type").asText();
String doDesc = nodeDO.get("desc").asText();
JsonNode nodeDOType = mapDOType.get(doType); JsonNode nodeDOType = mapDOType.get(doType);
String lastname = findLastname(nodeDOType, fc, mapDAType); String lastname = findLastname(nodeDOType, fc, mapDAType);
@ -73,12 +76,13 @@ public class IcdXmlUtil {
.iedName(iedName) .iedName(iedName)
.ldeviceInst(ldeviceInst) .ldeviceInst(ldeviceInst)
.lnClass(lnClass) .lnClass(lnClass)
.lnDesc(lnDesc)
.build(); .build();
result.put(key, config); result.put(key, config);
} }
String param = fc + "$" + doName + "$" + lastname; String param = fc + "$" + doName + "$" + lastname;
config.addInst(lnInst); config.addInst(lnInst);
config.addAtt(doName, param); config.addAtt(doName, doDesc, param);
} else if ("ST".equals(fc)) { } else if ("ST".equals(fc)) {
// IcdConfigType config = result.get(key); // IcdConfigType config = result.get(key);
// if (config == null) { // if (config == null) {
@ -137,13 +141,13 @@ public class IcdXmlUtil {
return map; return map;
} }
private static String findLNodeType_DO_Type(JsonNode lnNode, String doName) { private static JsonNode findLNodeType_DO_Node(JsonNode lnNode, String doName) {
String result = ""; JsonNode result = null;
List<JsonNode> doiList = findNodes(lnNode, "DO"); List<JsonNode> doiList = findNodes(lnNode, "DO");
for (JsonNode doiNode : doiList) { for (JsonNode doiNode : doiList) {
String doiName = doiNode.get("name").asText(); String doiName = doiNode.get("name").asText();
if (doiName.equals(doName)) { if (doiName.equals(doName)) {
result = doiNode.get("type").asText(); result = doiNode;
break; break;
} }
} }

@ -0,0 +1,66 @@
package com.xydl.cac.util;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.StringPath;
import org.apache.commons.lang3.StringUtils;
public class SqlEscapeUtil {
/**
*
**/
public static final char ESCAPE = '!';
/**
*
*
* @param param
* @return String
*/
public static String escape(String param) {
if (StringUtils.isNotEmpty(param)) {
String temp = param.replaceAll("/", ESCAPE + "/");
temp = temp.replaceAll("%", ESCAPE + "%");
temp = temp.replaceAll("_", ESCAPE + "_");
temp = temp.replaceAll("'", "''");
return temp.trim();
}
return "";
}
/**
*
*
* @param param
* @return String
*/
public static BooleanExpression escape(StringPath path, String param) {
if (StringUtils.isNotEmpty(param)) {
String temp = param.replaceAll("!", ESCAPE + "!");
temp = temp.replaceAll("%", ESCAPE + "%");
temp = temp.replaceAll("_", ESCAPE + "_");
temp = temp.replaceAll("'", "\\'");
return path.like("%"+ temp.trim() +"%", ESCAPE);
}
return null;
}
public static boolean sqlValidate(String str) {
if (StringUtils.isBlank(str)) {
return false;
}
str = str.toLowerCase();// 统一转为小写
String badStr = "'|exec|and|or|execute|insert|select|delete|update|drop|%|master|truncate|"
+ "declare|sitename|net user|xp_cmdshell|like'|exec|execute|insert|create|drop|"
+ "table|grant|use|group_concat|column_name|information_schema.columns|table_schema|"
+ "select|delete|update|master|truncate|declare|-- |like|//|%";// 过滤掉的sql关键字可以手动添加
String[] badStrs = badStr.split("\\|");
for (String s : badStrs) {
if (str.contains(s)) {
return true;
}
}
return false;
}
}
Loading…
Cancel
Save