| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |