| | |
| | | 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.classify.*; |
| | | 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.revision.model.TreeQueryObject; |
| | | 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; |
| | | |
| | |
| | | @Slf4j |
| | | @VciWebservice(path = "/universalInterface") |
| | | public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI { |
| | | |
| | | /** |
| | | * 日志 |
| | | */ |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired(required = false) |
| | | private AttributeMapConfig attributeMapConfig; |
| | |
| | | msg="成功"; |
| | | objerrorCode="0"; |
| | | objerrorMsg="成功"; |
| | | logger.info("申请编码的数据参数:->"+data); |
| | | logger.info("申请编码的数据类型:->"+dataType); |
| | | log.info("申请编码的数据参数:->"+data); |
| | | log.info("申请编码的数据类型:->"+dataType); |
| | | String systemId=""; |
| | | List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>(); |
| | | try { |
| | |
| | | |
| | | String finalSystemId = systemId; |
| | | classVOList.stream().forEach(classVO -> { |
| | | logger.info("参数:分类COde:" + classVO.getClassCode()); |
| | | log.info("参数:分类COde:" + classVO.getClassCode()); |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); |
| | | //获取分类信息 |
| | | try { |
| | | String libray = classVO.getLibrary(); |
| | | CodeClassifyVO codeClassifyVO = getClassfy(classVO); |
| | | logger.info("end:分类查询完毕"); |
| | | log.info("end:分类查询完毕"); |
| | | //获取分类模板信息 |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | | objerrorCode="100"; |
| | |
| | | objerrorCode="1"; |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | } |
| | | logger.info("end:模板查询完毕"); |
| | | log.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:数据组织完毕"); |
| | | log.info("end:数据组织完毕"); |
| | | //规则的主键需要去获取 |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ |
| | | objerrorCode="1"; |
| | | logger.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息"); |
| | | log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息"); |
| | | throw new Throwable ("根据传输的分类,未获取分类相关信息"); |
| | | } |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | |
| | | objerrorCode="102"; |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应规则"); |
| | | } |
| | | logger.info("end:规则获取完毕"); |
| | | log.info("end:规则获取完毕"); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO); |
| | | logger.info("end:码段获取完毕"); |
| | | log.info("end:码段获取完毕"); |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段 |
| | | //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs); |
| | | logger.info("end:申请获取完毕"); |
| | | mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs); |
| | | log.info("end:申请获取完毕"); |
| | | } catch (Throwable e) { |
| | | XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); |
| | | xmlResultDataObjectDetailDO.setCode(""); |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | logger.info("返回参数:"+resultStr); |
| | | log.info("返回参数:"+resultStr); |
| | | |
| | | return resultStr; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public String queryClassify(String data, String dataType) throws Throwable { |
| | | return null; |
| | | boolean issucess=false; |
| | | String resultStr = ""; |
| | | String errorid="0"; |
| | | msg="成功"; |
| | | String systemId=""; |
| | | log.info("查询分类的数据参数:->"+data); |
| | | log.info("查询分类的数据类型:->"+dataType); |
| | | ResultClassifyVO resultClassifyVO =new ResultClassifyVO(); |
| | | List<ClassifyVO> classifyVOList=new ArrayList<>(); |
| | | ResultData resultData=new ResultData(); |
| | | try { |
| | | if (StringUtils.isBlank(data)) { |
| | | errorid = "101"; |
| | | throw new Throwable("接口参数:传递为空"); |
| | | } |
| | | QueryClassifyVO queryClassifyVO = new QueryClassifyVO(); |
| | | //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式 |
| | | try { |
| | | if ("xml".equals(dataType)) { |
| | | XStream xStream = new XStream(new DomDriver()); |
| | | xStream.processAnnotations(QueryData.class); |
| | | xStream.autodetectAnnotations(true); |
| | | QueryData queryData = (QueryData) xStream.fromXML(data); |
| | | queryClassifyVO.setData(queryData); |
| | | } else { |
| | | queryClassifyVO = JSONObject.toJavaObject(JSONObject.parseObject(data), QueryClassifyVO.class); |
| | | } |
| | | } catch (Throwable e) { |
| | | errorid = "101"; |
| | | msg="接口参数:传入数据参数解析失败"; |
| | | e.printStackTrace(); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | QueryData queryData=queryClassifyVO.getData(); |
| | | UserVO userVo=queryData.getUser(); |
| | | systemId=queryData.getSystemId(); |
| | | QueryLibraryVO libraryVO= queryData.getLibrary(); |
| | | String libId= libraryVO.getId(); |
| | | List<String> classifyIdList= libraryVO.getClassifyid(); |
| | | List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>(); |
| | | //这是账号信息 |
| | | //这是账号信息 |
| | | if(userVo!=null) { |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | | sessionInfo.setUserName(userVo.getTrueName()); |
| | | sessionInfo.setIp(userVo.getIp()); |
| | | VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | }else{ |
| | | errorid = "101"; |
| | | throw new Throwable("接口参数:账号信息获取失败"); |
| | | } |
| | | if(!CollectionUtils.isEmpty(classifyIdList)){ |
| | | //先简称是否有关联模板,有模板要先删除 |
| | | List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList)); |
| | | codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos); |
| | | }else { |
| | | List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId)); |
| | | String oid= libIdDos.get(0).getOid(); |
| | | TreeQueryObject treeQueryObject=new TreeQueryObject(); |
| | | treeQueryObject.setParentOid(oid); |
| | | treeQueryObject.setQueryAllLevel(true); |
| | | codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject); |
| | | } |
| | | LibraryVO libraryVo=new LibraryVO(); |
| | | libraryVo.setId(libId); |
| | | libraryVo.setName(""); |
| | | if(!CollectionUtils.isEmpty(codeClassifyVOS)){ |
| | | errorid = "0"; |
| | | msg="成功!"; |
| | | codeClassifyVOS.stream().forEach(codeClassifyDO -> { |
| | | ClassifyVO classifyVO=new ClassifyVO(); |
| | | classifyVO.setId(codeClassifyDO.getOid()); |
| | | classifyVO.setLcStatus(codeClassifyDO.getLcStatus()); |
| | | classifyVO.setClassCode(codeClassifyDO.getId()); |
| | | classifyVO.setDescription(codeClassifyDO.getDescription()); |
| | | classifyVO.setName(codeClassifyDO.getName()); |
| | | classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid()); |
| | | classifyVO.setFullPathName(codeClassifyDO.getPath()); |
| | | classifyVOList.add(classifyVO); |
| | | }); |
| | | libraryVo.setClassify(classifyVOList); |
| | | }else{ |
| | | errorid = "100"; |
| | | msg="未查询到相关的分类信息"; |
| | | } |
| | | issucess=true; |
| | | resultData.setLibrary(libraryVo); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | msg="查询分类失败:"+e.getMessage(); |
| | | }finally { |
| | | resultData.setErrorid(errorid); |
| | | resultData.setMsg(msg); |
| | | resultClassifyVO.setResultData(resultData); |
| | | } |
| | | if(dataType.equals("xml")){ |
| | | //组织返回接口信息 |
| | | XStream xStream = new XStream(new DomDriver()); |
| | | xStream.processAnnotations(XMLResultSystemVO.class); |
| | | xStream.autodetectAnnotations(true); |
| | | resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData); |
| | | |
| | | }else{ |
| | | Object object = JSONObject.toJSON(resultClassifyVO); |
| | | resultStr = object.toString(); |
| | | } |
| | | try { |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | | return resultStr; |
| | | } |
| | | |
| | | /*** |
| | |
| | | } |
| | | |
| | | @Override |
| | | public String queryClassifyRule(String data, String datatype) throws Throwable { |
| | | return null; |
| | | public String queryClassifyRule(String data, String dataType) throws Throwable { |
| | | |
| | | boolean issucess=false; |
| | | String resultStr = ""; |
| | | String errorid="0"; |
| | | msg="成功"; |
| | | String systemId=""; |
| | | log.info("查询分类的数据参数:->"+data); |
| | | log.info("查询分类的数据类型:->"+dataType); |
| | | ResultClassifyVO resultClassifyVO =new ResultClassifyVO(); |
| | | List<ClassifyVO> classifyVOList=new ArrayList<>(); |
| | | try { |
| | | if (StringUtils.isBlank(data)) { |
| | | errorid = "101"; |
| | | throw new Throwable("接口参数:传递为空"); |
| | | } |
| | | QueryClassifyVO queryClassifyVO = new QueryClassifyVO(); |
| | | //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式 |
| | | try { |
| | | if ("xml".equals(dataType)) { |
| | | XStream xStream = new XStream(new DomDriver()); |
| | | xStream.processAnnotations(QueryData.class); |
| | | xStream.autodetectAnnotations(true); |
| | | QueryData queryData = (QueryData) xStream.fromXML(data); |
| | | queryClassifyVO.setData(queryData); |
| | | } else { |
| | | queryClassifyVO = JSONObject.toJavaObject(JSONObject.parseObject(data), QueryClassifyVO.class); |
| | | } |
| | | } catch (Throwable e) { |
| | | errorid = "101"; |
| | | msg = "接口参数:传入数据参数解析失败"; |
| | | e.printStackTrace(); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | QueryData queryData=queryClassifyVO.getData(); |
| | | UserVO userVo=queryData.getUser(); |
| | | systemId=queryData.getSystemId(); |
| | | QueryLibraryVO libraryVO= queryData.getLibrary(); |
| | | String libId= libraryVO.getId(); |
| | | List<String> classifyIdList= libraryVO.getClassifyid(); |
| | | List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>(); |
| | | //这是账号信息 |
| | | //这是账号信息 |
| | | if(userVo!=null) { |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | | sessionInfo.setUserName(userVo.getTrueName()); |
| | | sessionInfo.setIp(userVo.getIp()); |
| | | VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | }else{ |
| | | errorid = "101"; |
| | | throw new Throwable("接口参数:账号信息获取失败"); |
| | | } |
| | | if(!CollectionUtils.isEmpty(classifyIdList)){ |
| | | //先简称是否有关联模板,有模板要先删除 |
| | | List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList)); |
| | | codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos); |
| | | }else { |
| | | List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId)); |
| | | String oid= libIdDos.get(0).getOid(); |
| | | TreeQueryObject treeQueryObject=new TreeQueryObject(); |
| | | treeQueryObject.setParentOid(oid); |
| | | treeQueryObject.setQueryAllLevel(true); |
| | | codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject); |
| | | } |
| | | |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | msg="查询分类失败:"+e.getMessage(); |
| | | }finally { |
| | | // resultData.setErrorid(errorid); |
| | | // resultData.setMsg(msg); |
| | | // resultClassifyVO.setResultData(resultData); |
| | | } |
| | | if(dataType.equals("xml")){ |
| | | //组织返回接口信息 |
| | | XStream xStream = new XStream(new DomDriver()); |
| | | xStream.processAnnotations(XMLResultSystemVO.class); |
| | | xStream.autodetectAnnotations(true); |
| | | //resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData); |
| | | |
| | | }else{ |
| | | Object object = JSONObject.toJSON(resultClassifyVO); |
| | | resultStr = object.toString(); |
| | | } |
| | | try { |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | | return resultStr; |
| | | } |
| | | |
| | | /*** |
| | |
| | | if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) { |
| | | String name = codeBasicSecVO.getName(); |
| | | String sectypeText = codeBasicSecVO.getSecTypeText(); |
| | | logger.info("码段名称:"+name); |
| | | logger.info("描述:"+sectypeText); |
| | | log.info("码段名称:"+name); |
| | | log.info("描述:"+sectypeText); |
| | | CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO(); |
| | | if (sectionVOMap.containsKey(name)) { |
| | | CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); |
| | | String sectypeValue = sectionVOMap.get(name); |
| | | logger.info("码段值:"+sectypeValue); |
| | | log.info("码段值:"+sectypeValue); |
| | | CodeOrderSecDTO.setSecValue(sectypeValue); |
| | | codeOrderSecDTOList.add(CodeOrderSecDTO); |
| | | } else { |
| | |
| | | dockingLoge.setInterfaceStatus("false");//接口集成状态 |
| | | } |
| | | dockingLogeService.save(dockingLoge); |
| | | logger.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); |
| | | log.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); |
| | | } |
| | | |
| | | /*** |