package com.vci.ubcs.code.service.impl;
|
|
import com.alibaba.cloud.commons.lang.StringUtils;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.thoughtworks.xstream.XStream;
|
import com.thoughtworks.xstream.io.xml.DomDriver;
|
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
|
import com.vci.ubcs.code.dto.CodeOrderDTO;
|
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
|
import com.vci.ubcs.code.entity.CodeBasicSec;
|
import com.vci.ubcs.code.entity.CodeClassify;
|
import com.vci.ubcs.code.entity.DockingLog;
|
import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
|
import com.vci.ubcs.code.service.*;
|
import com.vci.ubcs.code.util.gennerAttrMapUtil;
|
import com.vci.ubcs.code.vo.pagemodel.*;
|
import com.vci.ubcs.code.vo.webserviceModel.apply.*;
|
import com.vci.ubcs.code.vo.webserviceModel.attrmap.*;
|
import com.vci.ubcs.code.vo.webserviceModel.result.json.*;
|
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO;
|
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
|
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultSystemVO;
|
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
|
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import com.vci.ubcs.webservice.annotation.VciWebservice;
|
import com.vci.ubcs.webservice.config.AttributeMapConfig;
|
import lombok.extern.slf4j.Slf4j;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.annotation.Resource;
|
import javax.jws.WebService;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
|
|
/***
|
* 统一接口
|
*/
|
@Service
|
@Slf4j
|
@VciWebservice(path = "/universalInterface")
|
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
@Autowired(required = false)
|
private AttributeMapConfig attributeMapConfig;
|
/**
|
* 缓存服务
|
*/
|
//@Autowired
|
//private RedisService redisService;
|
/**
|
* 主题库分类的服务
|
*/
|
@Autowired(required = false)
|
private ICodeClassifyService classifyService;
|
/**
|
* 主数据引擎的服务
|
*/
|
//@Resource
|
//private MdmEngineService engineService;
|
|
/**
|
* 密级的服务
|
*/
|
|
@Resource
|
private MdmIOService mdmIOService;
|
/***
|
* 集成接口日志服务的配置
|
*/
|
@Resource
|
private IDockingLogeService dockingLogeService;
|
|
private static String separator="##VCI##";
|
private String errorid="0";
|
private String msg="成功";
|
private String objerrorCode="0";
|
private String objerrorMsg="成功";
|
/***
|
* 申请编码接口
|
* @param data 传递的数据参数
|
* @param dataType 标识data是xml格式还是json格式,接口返回数据也是按照这个格式,以下接口类同
|
* @return
|
* @throws Throwable
|
*/
|
@Override
|
public String applyCode(String data, String dataType) throws Throwable {
|
{
|
// String resultStr = "";
|
// String errorid="0";
|
// msg="成功";
|
// objerrorCode="0";
|
// objerrorMsg="成功";
|
// logger.info("申请编码的数据参数:->"+data);
|
// logger.info("申请编码的数据类型:->"+dataType);
|
// String systemId="";
|
// List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
|
// try {
|
// if(StringUtils.isBlank(data)) {
|
// errorid="101";
|
// throw new Throwable("接口参数:传递为空");
|
// }
|
// InterParameterVO interParameterVO =new InterParameterVO();
|
// //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
|
// try {
|
// if ("xml".equals(dataType)) {
|
// XStream xStream = new XStream(new DomDriver());
|
// xStream.processAnnotations(RootDataVO.class);
|
// xStream.autodetectAnnotations(true);
|
// RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data);
|
// interParameterVO.setData(rootDataVO);
|
// } else {
|
// interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class);
|
// }
|
// }catch (Throwable e){
|
// errorid="101";
|
// throw new Throwable("接口参数:传入数据参数解析失败");
|
// }
|
// ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
|
// systemId = interParameterVO.getData().getSystemId();
|
// UserVO userVo = interParameterVO.getData().getUser();
|
// List<ClassfyVO> classVOList = classfysVO.getClassify();
|
// InterParameterVO finalInterParameterVO = interParameterVO;
|
//
|
// //这是账号信息
|
// SessionInfo sessionInfo = new SessionInfo();
|
// sessionInfo.setUserId(userVo.getUserName());
|
// sessionInfo.setUserName(userVo.getTrueName());
|
// sessionInfo.setIp(userVo.getIp());
|
// VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
|
//
|
// String finalSystemId = systemId;
|
// classVOList.stream().forEach(classVO -> {
|
// logger.info("参数:分类COde:" + classVO.getClassCode());
|
// LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
|
// //获取分类信息
|
// try {
|
// String libray = classVO.getLibrary();
|
// CodeClassifyVO codeClassifyVO = getClassfy(classVO);
|
// logger.info("end:分类查询完毕");
|
// //获取分类模板信息
|
// if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
|
// objerrorCode="100";
|
// throw new Throwable ("根据传输的分类,未获取到分类信息");
|
// }
|
// CodeClstemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
|
// if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
|
// objerrorCode="1";
|
// throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板");
|
// }
|
// logger.info("end:模板查询完毕");
|
// ApplyDatasVO applyDatasVO = classVO.getObjects();
|
// DataObjectVO dataObjectVO = new DataObjectVO();
|
// List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
|
// ).collect(Collectors.toList());
|
// this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
|
// logger.info("end:数据组织完毕");
|
// //规则的主键需要去获取
|
// CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
|
// if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
|
// objerrorCode="1";
|
// logger.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
|
// throw new Throwable ("根据传输的分类,未获取分类相关信息");
|
// }
|
// CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
|
// if(ruleVO==null|| StringUtils.isBlank(ruleVO.getOid())){
|
// objerrorCode="102";
|
// throw new Throwable ("根据传输的分类,未获取MDM系统中对应规则");
|
// }
|
// logger.info("end:规则获取完毕");
|
// List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO);
|
// logger.info("end:码段获取完毕");
|
// CodeOrderDTO orderDTO = new CodeOrderDTO();
|
// orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
|
// orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
|
// mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
|
// logger.info("end:申请获取完毕");
|
// } catch (Throwable e) {
|
// XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
|
// xmlResultDataObjectDetailDO.setCode("");
|
// xmlResultDataObjectDetailDO.setId("");
|
// xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
|
// xmlResultDataObjectDetailDO.setMsg("编码申请失败:"+e.getMessage());
|
// resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
|
// e.printStackTrace();
|
// }finally {
|
// XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
|
// resultClassfyVO.setClassCode(classVO.getClassCode());
|
// resultClassfyVO.setLibrary(classVO.getLibrary());
|
// resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
|
// resultClassfyVO.setObjects(resultDataObjectDetailDOs);
|
// resultClassfyVOList.add(resultClassfyVO);
|
// }
|
// });
|
// XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
|
// xmlResultSystemVO.setClassifys(resultClassfyVOList);
|
// xmlResultSystemVO.setMsg(msg);
|
// xmlResultSystemVO.setErrorid(errorid);
|
// resultStr= transferResultXMl(xmlResultSystemVO,dataType);
|
// }catch (Throwable e){
|
// e.printStackTrace();;
|
// msg="申请编码失败:"+e.getMessage();
|
// }finally {
|
// XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
|
// xmlResultSystemVO.setClassifys(resultClassfyVOList);
|
// xmlResultSystemVO.setMsg(msg);
|
// xmlResultSystemVO.setErrorid(errorid);
|
// resultStr= transferResultXMl(xmlResultSystemVO,dataType);
|
// final boolean[] issucess = {true};
|
// if(!errorid.equals("0")) {
|
// issucess[0] = false;
|
// }else {
|
// if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
|
// resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
|
// xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
|
// if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
|
// issucess[0] = false;
|
// msg=objec.getMsg();
|
// }
|
// });
|
// });
|
// }
|
//
|
// }
|
// try {
|
// //记录日志
|
// this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode");
|
// }catch (Throwable e){
|
// e.printStackTrace();
|
// }
|
// }
|
// logger.info("返回参数:"+resultStr);
|
|
return "";
|
}
|
}
|
|
/***
|
* 统一更新接口(更改状态,更改属性信息)接口
|
* @param data
|
* @param dataType
|
* @return
|
* @throws Throwable
|
*/
|
@Override
|
public String syncEditData(String data, String dataType) throws Throwable {
|
|
return null;
|
}
|
|
/***
|
* 分类查询
|
* @param data
|
* @param dataType
|
* @return
|
* @throws Throwable
|
*/
|
@Override
|
public String queryClassify(String data, String dataType) throws Throwable {
|
return null;
|
}
|
|
/***
|
* 数据查询
|
* @param data
|
* @param dataType
|
* @return
|
* @throws Throwable
|
*/
|
@Override
|
public String queryData(String data, String dataType) throws Throwable {
|
return null;
|
}
|
|
@Override
|
public String queryClassifyRule(String data, String datatype) throws Throwable {
|
return null;
|
}
|
|
/***
|
* 查询校验分类信息
|
* @param classfyVO
|
*/
|
private CodeClassifyVO getClassfy(ClassfyVO classfyVO) throws Throwable{
|
CodeClassifyVO classifyVO = new CodeClassifyVO();
|
try {
|
String classCode = classfyVO.getClassCode();
|
String className = classfyVO.getFullclsfNamePath();
|
//根据分类代号查询分类信息
|
if (StringUtils.isNotBlank(classfyVO.getClassCode())) {
|
Map<String, String> conditionMap = new HashMap<>();
|
List<CodeClassify> codeClassifyList = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, classCode));
|
if (!CollectionUtils.isEmpty(codeClassifyList)) {
|
CodeClassify classifyDO = codeClassifyList.get(0);
|
//将DTO转换为DO
|
classifyVO = new CodeClassifyVO();
|
BeanUtilForVCI.copyPropertiesIgnoreCase(classifyDO, classifyVO);
|
if(StringUtils.isBlank(classifyVO.getOid())){
|
throw new Throwable("根据分类代号未查询到相应的分类信息");
|
}
|
}else{
|
throw new Throwable("根据分类代号未查询到相应的分类信息");
|
}
|
} else {
|
//classifyVO = classifyService.getObjectByClsfNamePath(className.replace(separator, "/"));
|
//if(StringUtils.isBlank(classifyVO.getOid())){
|
// throw new Throwable("根据分类名称路径未查询到相应的分类信息");
|
//}
|
}
|
}catch (Throwable e){
|
objerrorCode="100";
|
new Throwable("获取分类信息失败:"+e.getMessage());
|
}
|
return classifyVO;
|
}
|
/***
|
* 根据穿入的参数信息校验码段规则
|
*/
|
private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO) throws Throwable{
|
List<CodeBasicSecVO> codeBasicSecVOS= ruleVO.getSecVOList();
|
Map<String,String> sectionVOMap=new HashMap<>();
|
SectionVOList.stream().forEach(SectionVO->{
|
sectionVOMap.put(SectionVO.getName(),SectionVO.getValue());
|
});
|
List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
|
for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
|
String sectype = codeBasicSecVO.getSecType();
|
if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
|
String name = codeBasicSecVO.getName();
|
String sectypeText = codeBasicSecVO.getSecTypeText();
|
logger.info("码段名称:"+name);
|
logger.info("描述:"+sectypeText);
|
CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
|
if (sectionVOMap.containsKey(name)) {
|
CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
|
String sectypeValue = sectionVOMap.get(name);
|
logger.info("码段值:"+sectypeValue);
|
CodeOrderSecDTO.setSecValue(sectypeValue);
|
codeOrderSecDTOList.add(CodeOrderSecDTO);
|
} else {
|
objerrorCode="101";
|
throw new Throwable("传入的码段规则缺少" + name + "码段");
|
}
|
}
|
}
|
return codeOrderSecDTOList;
|
}
|
/***
|
* 根据属性映射转换编码所需字段
|
*/
|
public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
|
List<ApplyDataVO> applyDataVOList=applyDatasVO.getObject();
|
LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
|
//如果将数据转换成所需要的数据对象
|
Map<String, String> attrMapConfigMap=new HashMap<>();
|
Map<String, String> propMaps=new HashMap<>();
|
try {
|
Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
|
//stringStringMap.put("RLM","D:\\RLM.xml");
|
LibraryDO libraryDO= gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap);
|
List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf();
|
Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
|
if(libPropMaps.containsKey(libray)){
|
List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray);
|
propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
|
}
|
}catch (Throwable e){
|
objerrorCode="1";
|
throw new Throwable("MDM集成属性配置文件读取失败");
|
}
|
LinkedList<String> rowNameList=new LinkedList<>();
|
LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
|
//根据分类模板组织数据
|
final int[] index = {0};
|
try {
|
codeClassifyTemplateAttrVOList.stream().forEach(codeClassifyTemplateAttrVO -> {
|
String attrName = codeClassifyTemplateAttrVO.getName();
|
String field = codeClassifyTemplateAttrVO.getId();
|
rowNameList.add(attrName);
|
filedIndexMap.put(field, index[0]++);
|
});
|
dataObjectVO.setColName(rowNameList);//放入属性
|
attrMapConfigMap.putAll(propMaps);
|
LinkedList<RowDatas> rowDataList = new LinkedList<>();
|
//Map<String, List<ProppertyVO>> dataPropMap = applyDataVOList.stream().collect(Collectors.toMap(ApplyDataVO::getId, ApplyDataVO::getProp, (key1, key2) -> key2));
|
final int[] rowIndex = {0};
|
applyDataVOList.stream().forEach(applyDataVO -> {
|
rowIndex[0]++;
|
RowDatas rowDatas = new RowDatas();
|
rowDatas.setOid(applyDataVO.getId());
|
rowDatas.setCreator(applyDataVO.getCreator());
|
rowDatas.setEditor(applyDataVO.getEditor());
|
rowDatas.setCode(applyDataVO.getCode());
|
rowDatas.setOperation(applyDataVO.getOperate());
|
rowDatas.setStatus(applyDataVO.getStatus());
|
rowDatas.setRowIndex(rowIndex[0] + "");
|
List<ProppertyVO> proppertyVOList = applyDataVO.getProp();
|
|
LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>();
|
Map<String, String> filedValueMap = new HashMap<>();
|
if (!CollectionUtils.isEmpty(proppertyVOList)) {
|
Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2));
|
Map<String, String> keyValueMap = new HashMap<>();
|
//判断attrMapConfigMap是否有值,如果没有则说明基础默认的是编码系统字段
|
if (!CollectionUtils.isEmpty(attrMapConfigMap)) {
|
sourceKeyValueMap.keySet().forEach(sourceKey -> {
|
String dataValue = sourceKeyValueMap.get(sourceKey);
|
if (attrMapConfigMap.containsKey(sourceKey)) {
|
String targetKey = attrMapConfigMap.get(sourceKey);
|
keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue);
|
}
|
});
|
} else {
|
sourceKeyValueMap.forEach((filed,value)->{
|
keyValueMap.put(filed,StringUtils.isBlank(value)?"":value) ;
|
});
|
}
|
|
filedIndexMap.forEach((attrKey, column) -> {
|
String keyValue = "";
|
if (keyValueMap.containsKey(attrKey)) {
|
keyValue =StringUtils.isBlank(keyValueMap.get(attrKey))?"":keyValueMap.get(attrKey);
|
}
|
integerValueMap.put(column, keyValue);
|
filedValueMap.put(attrKey, keyValue);
|
});
|
}
|
rowDatas.setData(integerValueMap);
|
rowDatas.setFiledValue(filedValueMap);
|
rowDataList.add(rowDatas);
|
});
|
dataObjectVO.setRowData(rowDataList);
|
}catch (Throwable e){
|
objerrorCode="1";
|
throw new Throwable("组织数据映射值失败");
|
}
|
}
|
/***
|
* 记录日志信息
|
* @param systemId
|
* @param parmaData
|
* @param result
|
* @return
|
*/
|
private void saveLogs(String systemId,String systemName,String parmaData, String result,boolean isSucess,String msg,String operation){
|
//记录日志信息
|
DockingLog dockingLoge=new DockingLog();
|
//String oid=redisService.getUUIDEveryDay();
|
dockingLoge.setSystemCode(StringUtils.isBlank(systemId)?"-":systemId);//设置系统标识
|
dockingLoge.setSystemName(StringUtils.isBlank(systemName)?"-":systemName);
|
dockingLoge.setMsg(msg);//日志消息
|
dockingLoge.setClassifyId("-");//分类编号
|
dockingLoge.setClassifyName("-");//分类名称
|
dockingLoge.setClassifyOid("-");//分类主键
|
dockingLoge.setUniqueCode("-");//唯一标识
|
dockingLoge.setSystemOid("-");//系统标识
|
// dockingLogeDO.setName(operation);
|
//dockingLogeDO.setOid(oid);//日志主键
|
dockingLoge.setParamString(parmaData);//参数信息
|
dockingLoge.setReturnString(result);//返回信息
|
dockingLoge.setType(operation);//日志操作类型
|
if(isSucess) {
|
dockingLoge.setInterfaceStatus("true");//接口集成状态
|
}else{
|
dockingLoge.setInterfaceStatus("false");//接口集成状态
|
}
|
dockingLogeService.save(dockingLoge);
|
logger.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
|
}
|
|
/***
|
* 数据维护与编码申请返回
|
* @param resultSystemVO
|
* @param dataType
|
* @return
|
*/
|
private String transferResultXMl(XMLResultSystemVO resultSystemVO,String dataType){
|
String resultStr="";
|
if ("xml".equals(dataType)) {
|
//组织返回接口信息
|
XStream xStream = new XStream(new DomDriver());
|
xStream.processAnnotations(XMLResultSystemVO.class);
|
xStream.autodetectAnnotations(true);
|
resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultSystemVO);
|
} else {
|
List<XMLResultClassfyVO> resultClassfyVOList =resultSystemVO.getClassifys();
|
JSONResultDataVO resultDataVO = new JSONResultDataVO();
|
JSONResultSystemVO jsonResultSystemVO = new JSONResultSystemVO();
|
JSONResultClassfysVO jsonResultClassfysVO = new JSONResultClassfysVO();
|
List<JSONResultClassfyVO> jSONResultClassfyVOList = new ArrayList<>();
|
resultClassfyVOList.stream().forEach(resultClassfyVO -> {
|
List<XMLResultDataObjectDetailDO> xmlResultDataObjectDetailDOS = resultClassfyVO.getObjects();
|
List<JSONResultDataObjectDetailDO> JSONResultDataObjectDetailDOList = new ArrayList<>();
|
xmlResultDataObjectDetailDOS.stream().forEach(xmlResultDataObjectDetail -> {
|
JSONResultDataObjectDetailDO jsonResultDataObjectDetail = new JSONResultDataObjectDetailDO();
|
BeanUtilForVCI.copyPropertiesIgnoreCase(xmlResultDataObjectDetail, jsonResultDataObjectDetail);
|
JSONResultDataObjectDetailDOList.add(jsonResultDataObjectDetail);
|
});
|
JSONResultClassfyVO jsonResultClassfyVO = new JSONResultClassfyVO();
|
jsonResultClassfyVO.setClassCode(resultClassfyVO.getClassCode());
|
jsonResultClassfyVO.setLibrary(resultClassfyVO.getLibrary());
|
jsonResultClassfyVO.setFullclsfNamePath(resultClassfyVO.getFullclsfNamePath());
|
JSONResultDataObjectDO JSONResultDataObjectDO = new JSONResultDataObjectDO();
|
JSONResultDataObjectDO.setObject(JSONResultDataObjectDetailDOList);
|
jsonResultClassfyVO.setObjects(JSONResultDataObjectDO);
|
jSONResultClassfyVOList.add(jsonResultClassfyVO);
|
});
|
jsonResultClassfysVO.setClassify(jSONResultClassfyVOList);
|
jsonResultSystemVO.setClassifys(jsonResultClassfysVO);
|
jsonResultSystemVO.setErrorid(resultSystemVO.getErrorid());
|
jsonResultSystemVO.setMsg(resultSystemVO.getMsg());
|
resultDataVO.setData(jsonResultSystemVO);
|
Object object = JSONObject.toJSON(resultDataVO);
|
resultStr = object.toString();
|
|
}
|
return resultStr;
|
}
|
|
|
}
|