|
@ -138,6 +138,81 @@ public class DatacollectService implements IDatacollectService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 字典全转换成中文
|
|
|
*/
|
|
|
private List<JSONObject> translateDictCN(List<JSONObject> list,JSONArray colList,String schemeVersion) throws Exception
|
|
|
{
|
|
|
//获取字典列表
|
|
|
List<DtoDictCol> dictColList = new ArrayList<>();
|
|
|
|
|
|
for(int i=0; i< colList.length();i++)
|
|
|
{
|
|
|
JSONObject col = colList.getJSONObject(i);
|
|
|
String dictId = col.optString("adapterDictId");
|
|
|
if(dictId!=null && dictId.length()>0)
|
|
|
{
|
|
|
String dictType = col.optString("adapterDataType");
|
|
|
String stdMetadataCode = col.optString("stdMetadataCode");
|
|
|
DtoDictCol dictCol = new DtoDictCol();
|
|
|
dictCol.setStdMetadataCode(stdMetadataCode);
|
|
|
dictCol.setStdDictId(dictId);
|
|
|
dictCol.setAdapterDataType(dictType.length() > 0 ? dictType : "1");//默认通过code转换字典
|
|
|
//获取字典数据
|
|
|
List dictString = stdService.getDictByScheme(schemeVersion,dictId);
|
|
|
JSONArray dictAdapterArray = new JSONArray(dictString);
|
|
|
|
|
|
dictCol.setDictList(dictAdapterArray);
|
|
|
dictColList.add(dictCol);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//翻译列表
|
|
|
for(JSONObject data :list)
|
|
|
{
|
|
|
//遍历字典字段
|
|
|
for (DtoDictCol col : dictColList) {
|
|
|
String colNmae = col.getStdMetadataCode();
|
|
|
String oldValue = data.optString(colNmae);
|
|
|
String newValue = translateDictValueCN(oldValue,col.getAdapterDataType(),col.getDictList());
|
|
|
|
|
|
if(newValue!=null && newValue.length()>0)
|
|
|
{
|
|
|
data.put(colNmae,newValue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 转译字典成中文
|
|
|
* @return
|
|
|
*/
|
|
|
private String translateDictValueCN(String oldValue,String type,JSONArray dictAdapterList) throws Exception
|
|
|
{
|
|
|
if(type.equals("0")) //原本就是值
|
|
|
{
|
|
|
return oldValue;
|
|
|
}
|
|
|
|
|
|
|
|
|
//遍历字典数据(编码->名称)
|
|
|
for(int i=0; i< dictAdapterList.length();i++)
|
|
|
{
|
|
|
JSONObject dictItem = dictAdapterList.getJSONObject(i);
|
|
|
if(oldValue!=null && dictItem.has("stdEntryCode")) {
|
|
|
if (oldValue.equals(dictItem.getString("stdEntryCode"))) {
|
|
|
String newValue = dictItem.getString("stdEntryValue"); //名称
|
|
|
return newValue;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return oldValue;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 字典转换
|
|
|
* @param list
|
|
@ -160,7 +235,7 @@ public class DatacollectService implements IDatacollectService {
|
|
|
String stdMetadataCode = col.optString("stdMetadataCode");
|
|
|
DtoDictCol dictCol = new DtoDictCol();
|
|
|
dictCol.setStdMetadataCode(stdMetadataCode);
|
|
|
dictCol.setAdapterDictId(dictId);
|
|
|
dictCol.setStdDictId(dictId);
|
|
|
dictCol.setAdapterDataType(dictType.length()>0?dictType:"1");//默认通过code转换字典
|
|
|
//获取字典数据
|
|
|
List dictString = stdService.getDictByScheme(schemeVersion,dictId);
|
|
@ -215,7 +290,8 @@ public class DatacollectService implements IDatacollectService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return oldValue;
|
|
|
//找不到适配字典数据则返回空
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
|
|
@ -276,7 +352,7 @@ public class DatacollectService implements IDatacollectService {
|
|
|
if(list!=null && list.size()>0)
|
|
|
{
|
|
|
//字典未转换前采集到原始库
|
|
|
boolean b = mongoOrigin.insert(stdDatasetCode,list);
|
|
|
boolean b = mongoOrigin.insert(stdDatasetCode,translateDictCN(list, colList,schemeVersion));
|
|
|
|
|
|
//字典转换
|
|
|
list = translateDict(list, colList,schemeVersion);
|