优化maat配置下发测试程序中对入阀门的数据中额外添加字段数据正确性的验证

This commit is contained in:
zhangdongxu
2018-11-16 17:32:12 +08:00
parent c92b3691a0
commit 374c439347

View File

@@ -6,6 +6,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@@ -51,6 +52,16 @@ public class MaatTestServiceimpl {
for (ConfigCompile configCompile : configCompileList) { for (ConfigCompile configCompile : configCompileList) {
Integer service = configCompile.getService(); Integer service = configCompile.getService();
MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service);
Map<String, String[]> tapFieldMap = ServiceAndRDBIndexReal.getMaatToValveMap().get(service);
//用于判断是否是入阀门时添加的额外字段
Map<String, String> keyMap = new HashMap<String, String>();
Iterator iterator = tapFieldMap.keySet().iterator();
while (iterator.hasNext()) {
String [] tapFields = tapFieldMap.get(iterator.next().toString());
for (String obj : tapFields) {
keyMap.put(CamelUnderlineUtil.underlineToCamel(obj).toLowerCase(), obj.toLowerCase());
}
}
List<Integer> redisDBList = ServiceAndRDBIndexReal.getRedisDBByService(service); List<Integer> redisDBList = ServiceAndRDBIndexReal.getRedisDBByService(service);
if (ServiceAndRDBIndexReal.isAddASU(service)) { if (ServiceAndRDBIndexReal.isAddASU(service)) {
if (!redisDBList.contains(TAPREDISDB)) { if (!redisDBList.contains(TAPREDISDB)) {
@@ -59,7 +70,7 @@ public class MaatTestServiceimpl {
} }
} }
for (Integer redisDB : redisDBList) { for (Integer redisDB : redisDBList) {
getConfigByKey(redisDB, service, configCompile, maatXmlConfig); getConfigByKey(redisDB, service, configCompile, maatXmlConfig,keyMap);
} }
} }
@@ -68,57 +79,57 @@ public class MaatTestServiceimpl {
} }
public void getConfigByKey(Integer redisDB, Integer service, ConfigCompile configCompile, public void getConfigByKey(Integer redisDB, Integer service, ConfigCompile configCompile,
MaatXmlConfig maatXmlConfig) throws Exception { MaatXmlConfig maatXmlConfig,Map<String, String> keyMap) throws Exception {
if (maatXmlConfig != null && configCompile != null) { if (maatXmlConfig != null && configCompile != null) {
Long compileId = configCompile.getCompileId(); Long compileId = configCompile.getCompileId();
validData(service, 10, compileId, configCompile.getCompileId(), redisDB, null, maatXmlConfig, configCompile, validData(service, 10, compileId, configCompile.getCompileId(), redisDB, null, maatXmlConfig, configCompile,
configCompile); configCompile,keyMap);
List<ConfigGroupRelation> groupRelationList = configCompile.getGroupRelationList(); List<ConfigGroupRelation> groupRelationList = configCompile.getGroupRelationList();
for (ConfigGroupRelation configGroupRelation : groupRelationList) { for (ConfigGroupRelation configGroupRelation : groupRelationList) {
validData(service, 11, compileId, configGroupRelation.getGroupId(), redisDB, null, maatXmlConfig, validData(service, 11, compileId, configGroupRelation.getGroupId(), redisDB, null, maatXmlConfig,
configGroupRelation, configCompile); configGroupRelation, configCompile,keyMap);
} }
List<IpRegion> ipRegionList = configCompile.getIpRegionList(); List<IpRegion> ipRegionList = configCompile.getIpRegionList();
for (IpRegion ipRegion : ipRegionList) { for (IpRegion ipRegion : ipRegionList) {
validData(service, 12, compileId, ipRegion.getRegionId(), redisDB, ipRegion.getTableName(), validData(service, 12, compileId, ipRegion.getRegionId(), redisDB, ipRegion.getTableName(),
maatXmlConfig, ipRegion, configCompile); maatXmlConfig, ipRegion, configCompile,keyMap);
} }
List<NumRegion> numRegionList = configCompile.getNumRegionList(); List<NumRegion> numRegionList = configCompile.getNumRegionList();
for (NumRegion numRegion : numRegionList) { for (NumRegion numRegion : numRegionList) {
validData(service, 13, compileId, numRegion.getRegionId(), redisDB, numRegion.getTableName(), validData(service, 13, compileId, numRegion.getRegionId(), redisDB, numRegion.getTableName(),
maatXmlConfig, numRegion, configCompile); maatXmlConfig, numRegion, configCompile,keyMap);
} }
List<StrRegion> strRegionList = configCompile.getStrRegionList(); List<StrRegion> strRegionList = configCompile.getStrRegionList();
for (StrRegion strRegion : strRegionList) { for (StrRegion strRegion : strRegionList) {
if (strRegion.getDistrict() == null || strRegion.getDistrict().trim().equals("")) { if (strRegion.getDistrict() == null || strRegion.getDistrict().trim().equals("")) {
validData(service, 14, compileId, strRegion.getRegionId(), redisDB, strRegion.getTableName(), validData(service, 14, compileId, strRegion.getRegionId(), redisDB, strRegion.getTableName(),
maatXmlConfig, strRegion, configCompile); maatXmlConfig, strRegion, configCompile,keyMap);
} else { } else {
validData(service, 15, compileId, strRegion.getRegionId(), redisDB, strRegion.getTableName(), validData(service, 15, compileId, strRegion.getRegionId(), redisDB, strRegion.getTableName(),
maatXmlConfig, strRegion, configCompile); maatXmlConfig, strRegion, configCompile,keyMap);
} }
} }
List<DigestRegion> digestRegionList = configCompile.getDigestRegionList(); List<DigestRegion> digestRegionList = configCompile.getDigestRegionList();
for (DigestRegion digestRegion : digestRegionList) { for (DigestRegion digestRegion : digestRegionList) {
validData(service, 16, compileId, digestRegion.getRegionId(), redisDB, digestRegion.getTableName(), validData(service, 16, compileId, digestRegion.getRegionId(), redisDB, digestRegion.getTableName(),
maatXmlConfig, digestRegion, configCompile); maatXmlConfig, digestRegion, configCompile,keyMap);
} }
List<IpRegion> ipClientRangeList = configCompile.getIpClientRangeList(); List<IpRegion> ipClientRangeList = configCompile.getIpClientRangeList();
for (IpRegion ipRegion : ipClientRangeList) { for (IpRegion ipRegion : ipClientRangeList) {
validData(service, 18, compileId, ipRegion.getRegionId(), redisDB, ipRegion.getTableName(), validData(service, 18, compileId, ipRegion.getRegionId(), redisDB, ipRegion.getTableName(),
maatXmlConfig, ipRegion, configCompile); maatXmlConfig, ipRegion, configCompile,keyMap);
} }
} }
} }
public void validData(Integer service, Integer type, Long compileId, Long id, Integer redisDb, String tableName, public void validData(Integer service, Integer type, Long compileId, Long id, Integer redisDb, String tableName,
MaatXmlConfig maatXmlConfig, Object obj, ConfigCompile configCompile) throws Exception { MaatXmlConfig maatXmlConfig, Object obj, ConfigCompile configCompile,Map<String, String> keyMap) throws Exception {
List<MaatXmlExpr> expressionList = maatXmlConfig.getExpressionList(); List<MaatXmlExpr> expressionList = maatXmlConfig.getExpressionList();
String[] valArr = null; String[] valArr = null;
String key = null; String key = null;
@@ -205,7 +216,7 @@ public class MaatTestServiceimpl {
break; break;
} }
} }
if (sysoLog(valArr, valList, obj, redisDb, key, configCompile, service)) { if (sysoLog(valArr, valList, obj, redisDb, key, configCompile, service,keyMap)) {
if (TAPREDISDB == redisDb && type != 10 && type != 11) {// 域配置并且是op_time时在op_time前面添加如下内容 if (TAPREDISDB == redisDb && type != 10 && type != 11) {// 域配置并且是op_time时在op_time前面添加如下内容
Map<String, String[]> map2 = ServiceAndRDBIndexReal.getMaatToValveMap().get(service); Map<String, String[]> map2 = ServiceAndRDBIndexReal.getMaatToValveMap().get(service);
if (map2 != null && map2.size() > 0) { if (map2 != null && map2.size() > 0) {
@@ -249,7 +260,7 @@ public class MaatTestServiceimpl {
} }
private boolean sysoLog(String[] valArr, List<String> valList, Object obj, Integer redisDb, String key, private boolean sysoLog(String[] valArr, List<String> valList, Object obj, Integer redisDb, String key,
ConfigCompile configCompile, Integer service) throws Exception { ConfigCompile configCompile, Integer service,Map<String, String> keyMap) throws Exception {
if (valList == null || valList.size() == 0) { if (valList == null || valList.size() == 0) {
FileUtils.addStrToFile( FileUtils.addStrToFile(
@@ -274,8 +285,8 @@ public class MaatTestServiceimpl {
if (!attrName.toLowerCase().equals("op_time")) { if (!attrName.toLowerCase().equals("op_time")) {
String filedName = CamelUnderlineUtil.underlineToCamel(attrName); String filedName = CamelUnderlineUtil.underlineToCamel(attrName);
String beanVal = null; String beanVal = null;
if (filedName.toLowerCase().equals("service") || filedName.toLowerCase().equals("action") //分发到阀门库添加的额外字段值从编译配置中获取
|| filedName.toLowerCase().equals("userregion")) { if (keyMap.containsKey(filedName.toLowerCase())) {
beanVal = getFieldValueByFieldName(filedName, configCompile); beanVal = getFieldValueByFieldName(filedName, configCompile);
} else { } else {
beanVal = getFieldValueByFieldName(filedName, obj); beanVal = getFieldValueByFieldName(filedName, obj);