| | |
| | | import com.vci.ubcs.code.dto.datapush.result.ResultNodeDataDTO; |
| | | import com.vci.ubcs.code.dto.datapush.result.ResultNodeObjectDTO; |
| | | import com.vci.ubcs.code.entity.*; |
| | | import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum; |
| | | import com.vci.ubcs.code.service.*; |
| | | import com.vci.ubcs.code.util.HttpUtils; |
| | | import com.vci.ubcs.code.util.WsErpClientUtil; |
| | |
| | | |
| | | List<DockingSystemConfig> dockingSystemConfigList = dockingSystemConfigService.list( |
| | | Wrappers.<DockingSystemConfig>query().lambda().eq(DockingSystemConfig::getUsedFlag,"true") |
| | | .eq(DockingSystemConfig::getPushType,type==2?"2":"1"));//2是代表分类推送,1是代表数据推送 |
| | | .eq(DockingSystemConfig::getPushType,type==2?"2":"1").eq(DockingSystemConfig::getDataFlowType, SysIntegrationDataFlowTypeEnum.PUSH.getValue()));//2是代表分类推送,1是代表数据推送 |
| | | |
| | | if(CollectionUtils.isEmpty(dockingSystemConfigList)){ |
| | | String title=type==2?"分类推送":"数据推送"; |
| | |
| | | dockingTask.setClassifyName(classifyname);//数据所在分类名称 |
| | | dockingTask.setSendType(sendtype);//数据推送类型 |
| | | dockingTask.setDataOid(dataoid); |
| | | |
| | | dockingTask.setCreateTime(new Date()); |
| | | dockingTask.setLastModifyTime(new Date()); |
| | | dockingTask.setCreator("sysAdmin"); |
| | | dockingTask.setLastModifier("sysAdmin"); |
| | | //intinfo |
| | | dockingTask.setSysInfoOid(sysIntInfoVOi.getOid());//intinfo的oid |
| | | dockingTask.setSystemOid(sysIntInfoVOi.getSysBaseOid());//系统oid |
| | |
| | | } |
| | | |
| | | if(dockingTask_insert.size()!=0) { |
| | | // dockingTaskService.saveBatch(dockingTask_insert); |
| | | dockingTaskService.saveBatch(dockingTask_insert); |
| | | } |
| | | //dockingTaskDaoI.updateByPrimaryKey方法报错了,所以手写了这个 |
| | | boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE); |
| | |
| | | sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); |
| | | } |
| | | //调用接口 |
| | | callInterface(sendString,dockingSystemConfig,dockingTask); |
| | | callInterface(sendString,dockingSystemConfig,dockingTask,"pushClassifyData"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | |
| | | String classifyoid = dockingTask.getClassifyOid(); |
| | | //查询要推送的数据 |
| | | String btmoid = dockingTask.getBtmOid();//数据btmid |
| | | String code=dockingTask.getId();; |
| | | //表示是主数据 |
| | | CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); |
| | | R<List<Map<String, String>>> r = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); |
| | |
| | | nodeProDTOS.add(nodeProDTO); |
| | | } |
| | | }); |
| | | |
| | | //查询推送接口参数 |
| | | DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid); |
| | | boolean isGroupCodeFlage=false; |
| | | if(dockingSystemConfig!=null) { |
| | | isGroupCodeFlage = StringUtils.isBlank(dockingSystemConfig.getIsGroupCodeFlag())?false: Boolean.getBoolean(dockingSystemConfig.getIsGroupCodeFlag()); |
| | | } |
| | | if(isGroupCodeFlage){ |
| | | code=data.getOrDefault("groupcode",""); |
| | | } |
| | | String[] classCodeLeves = dockingTask.getClassifyId().split(","); |
| | | NodeJosnDTO nodeJosnDTO = new NodeJosnDTO(); |
| | | NodedataDTO nodeDataDTO = new NodedataDTO(); |
| | | NodeObjectDTO nodeObjectDTO = new NodeObjectDTO(); |
| | | nodeObjectDTO.setCode(dockingTask.getId());//设置编码 |
| | | nodeObjectDTO.setCode(code);//设置编码 |
| | | nodeObjectDTO.setClassCode(classCodeLeves[0]); |
| | | nodeObjectDTO.setStatus(data.get("lcstatus")); |
| | | nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); |
| | |
| | | nodeObjectDTOS.add(nodeObjectDTO); |
| | | nodeDataDTO.setObject(nodeObjectDTOS); |
| | | nodeJosnDTO.setData(nodeDataDTO); |
| | | //查询推送接口参数 |
| | | DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid); |
| | | |
| | | String paramType = dockingSystemConfig.getParamType();//xml/json |
| | | if (paramType.equals(DATATYPE_JSON)) { |
| | | Object object = JSONObject.toJSON(nodeJosnDTO); |
| | |
| | | sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); |
| | | } |
| | | //调用接口 |
| | | callInterface(sendString,dockingSystemConfig, dockingTask); |
| | | callInterface(sendString,dockingSystemConfig, dockingTask,"pushData"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | |
| | | * @param dockingTask |
| | | * @throws Throwable |
| | | */ |
| | | private void callInterface(String sendString , DockingSystemConfig dockingSystemConfig,DockingTask dockingTask) throws Throwable{ |
| | | private void callInterface(String sendString , DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws Throwable{ |
| | | String paramString = ""; |
| | | |
| | | String backString = ""; |
| | |
| | | dockingLogeDO.setParamString(paramString); |
| | | dockingLogeDO.setReturnString(backString); |
| | | dockingLogeDO.setInterfaceStatus(isSend?"true":"false"); |
| | | dockingLogeDO.setType(DATA_LOGE_OUT); |
| | | dockingLogeDO.setType(operation); |
| | | dockingLogeDO.setMsg(msg); |
| | | log.error("集成推送数据,systemcode:"+dockingTask.getSystemCode()+",systemname:"+dockingTask.getSystemName()+",url:"+url+",param:"+paramString+",e:"+msg); |
| | | dockingLogeService.save(dockingLogeDO); |
| | |
| | | //全都接收成功的情况下,修改dockingtask sendflag为已发送 |
| | | if(isSend) { |
| | | dockingTask.setSendFlag(MdmDuckingConstant.SEND_FLAG_TRUE); |
| | | dockingTask.setLastModifyTime(new Date()); |
| | | dockingTaskService.updateById(dockingTask); |
| | | } |
| | | } |