From 30f93a0f5615515df2bfe1fdbbadab0308ca0471 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 13 三月 2024 21:50:16 +0800 Subject: [PATCH] 集成相关更改 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 230 ++++++++++++--------------------------------------------- 1 files changed, 49 insertions(+), 181 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java index 9864832..0c617d2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java @@ -3,6 +3,7 @@ import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.shaded.com.google.protobuf.ServiceException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.thoughtworks.xstream.XStream; @@ -50,6 +51,7 @@ import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.starter.web.util.WebUtil; +import com.xkcoding.http.support.Http; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.map.CaseInsensitiveMap; import org.springblade.core.redis.cache.BladeRedis; @@ -59,6 +61,7 @@ import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.stereotype.Service; @@ -72,11 +75,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; -import javax.jws.WebMethod; import javax.servlet.http.HttpServletRequest; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; -import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -115,34 +114,53 @@ @Value("${erp.item.btmName:XHDH}") public String btmName; + + @Value("${erp.item.bearer:bearer: Bearer 7fc32939-0a59-da71-a6e6-6b0d37b53e8a}") + private String ERPXHDHAUTH; + + @Value("${erp.item.url:http://127.0.0.1/api/pp/pp/ext/extend/v1.0}") + private String ERPXHDHURL; + + @Value("${erp.item.tenant:10000}") + private String ERPXHDHTENANT; + + /** * 涓氬姟绫诲瀷鐨勬湇鍔� */ @Autowired private IBtmTypeClient btmTypeClient; + /** * 閫氱敤鏌ヨ */ @Resource private CommonsMapper commonsMapper; + @Resource private MdmEngineService mdmEngineServiceI; + /** * 鎵归噺澶勭悊鐨勬湇鍔� */ @Resource private MdmIOService mdmIOService; + @Resource private IPasswordFreeLoginService passwordFreeLoginService; @Resource private IDockingLogeService dockingLogeService; + @Resource private IDockingDataService dockingDataService; + @Resource private IDockingTaskService dockingTaskService; + @Resource private IDockingSystemConfigService dockingSystemConfigService; + @Resource private ICodeClassifyService codeClassifyService; @@ -273,7 +291,7 @@ * 鍚屾鍨嬪彿浠e彿 */ @Override - public void saveItemDataSyncScheduing(String endDate) { + public void saveItemDataSyncScheduing(String endDate) throws ServiceException { String paramString=""; String backString="鎴愬姛"; String msg="鎴愬姛"; @@ -297,17 +315,15 @@ Map<String,String>searchDataMap= VciBaseUtil.objectToMapString(searchItemParam); try { paramString=JSONObject.toJSON(searchItemParam).toString(); - String res= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam); - SearchItemVO searchItemVO = JSONObject.toJavaObject(JSONObject.parseObject(res), SearchItemVO.class); - /**SearchItemVO searchItemVO=new SearchItemVO(); - List<SearchItemDataVO> data=new ArrayList<>(); - SearchItemDataVO searchItemDataVO1=initData("1","","pro-00001"); - SearchItemDataVO searchItemDataVO2=initData("0","item-00001",""); - data.add(searchItemDataVO1); - data.add(searchItemDataVO2); - //searchItemVO.setData(data); - searchItemVO.setCode("200");**/ - //searchItemVO.setMsg(""); + // TODO: 鏀逛负浣跨敤HttpUtils鏂瑰紡杩涜鐢宠锛屽洜涓虹幇鍦ㄧ敵璇风敤涔嬪墠鐨勬柟寮忎細鎶ラ敊 + LinkedMultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + headers.add("Authorization",ERPXHDHAUTH); + headers.add("X-ECC-Current-Tenant",ERPXHDHTENANT); + headers.add("Accept-Language","zh-CHS"); + headers.add("Content-Type",MediaType.APPLICATION_JSON.toString()); + String res = HttpUtils.request(ERPXHDHURL+"/getppModelByElemNew",paramString,headers, HttpMethod.POST,MediaType.APPLICATION_JSON); + // String res= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam); + SearchItemVO searchItemVO = JSONObject.toJavaObject(JSONObject.parseObject(res), SearchItemVO.class); if (searchItemVO != null) { BladeUser finalUser; paramString = JSONObject.toJSON(searchItemVO).toString(); @@ -453,7 +469,6 @@ } } catch (Throwable e) { e.printStackTrace(); - ; log.error("鏌ヨ澶辫触--->" + e); success = false; backString = "鏌ヨ澶辫触--->" + e; @@ -470,7 +485,7 @@ } } }else{ - throw new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�"); + throw new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�"); } }catch (Throwable e1){ e1.printStackTrace(); @@ -485,8 +500,9 @@ } catch (Throwable e) { e.printStackTrace(); log.error(e.getMessage()); - throw new VciBaseException(e.getMessage()); + throw new ServiceException(e.getMessage()); } + throw new ServiceException(e1.getMessage()); } } @@ -912,9 +928,8 @@ DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid); String paramType = dockingSystemConfig.getParamType();//xml/json if(paramType.equals(DATATYPE_JSON)){ - // Object object = JSONObject.toJSON(jsonRootDataDTO); - // sendString = object.toString(); - sendString = jsonRootDataDTO; + Object object = JSONObject.toJSON(jsonRootDataDTO); + sendString = object; }else{ //缁勭粐杩斿洖鎺ュ彛淇℃伅 XStream xStream = new XStream(new DomDriver()); @@ -940,7 +955,7 @@ for (DockingTask dockingTask:dockingTaskS){ //姣忎釜task涓�涓簨鍔★紝寮�鍚� String paramString=""; - String sendObject=""; + Object sendString=""; String backString=""; try { //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType @@ -1014,16 +1029,17 @@ String paramType = dockingSystemConfig.getParamType();//xml/json if (paramType.equals(DATATYPE_JSON)) { Object object = JSONObject.toJSON(nodeJosnDTO); - sendObject = object.toString(); + //sendString = object.toString(); + sendString = object; } else { //缁勭粐杩斿洖鎺ュ彛淇℃伅 XStream xStream = new XStream(new DomDriver()); xStream.processAnnotations(NodedataDTO.class); xStream.autodetectAnnotations(true); - sendObject = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); + sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); } //璋冪敤鎺ュ彛 - callInterface(sendObject,dockingSystemConfig, dockingTask,"pushData"); + callInterface(sendString,dockingSystemConfig, dockingTask,"pushData"); }catch (Throwable e){ e.printStackTrace(); }finally { @@ -1041,7 +1057,7 @@ private void callInterface(Object sendObject, DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws Throwable{ String paramString = ""; String backString = ""; - String sendString = dockingSystemConfig.getContentType().equals(DATATYPE_JSON) ? JSONObject.toJSON(sendObject).toString():sendObject.toString(); + String sendString = sendObject.toString(); String msg= "" ; String url = dockingSystemConfig.getRequestUrl();//url List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); @@ -1083,160 +1099,12 @@ for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); } - backString = HttpUtils.postByMediaType(url, params, headers,new MediaType(dockingSystemConfig.getContentType())); - } - if(backString.startsWith("\"")){ - backString=backString.substring(backString.indexOf("\"")+1); - } - if(backString.endsWith("\"")){ - backString=backString.substring(0,backString.lastIndexOf("\"")); - } - if(backString.contains("\n")){ - String res="\n"; - backString= backString.replaceAll(res,""); - } - if(backString.contains("\\")){ - String res="\\\\\""; - backString= backString.replaceAll(res,"\"").trim(); - } - }else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver璇锋眰 - MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); - for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { - params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue()); - } - - paramString = sendString; - MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); - for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { - headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); - } - backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000); - - } else {//corba鎺ュ彛 - //paramString=sendString; - // backString = jacorbClient.getBOFactoryService().sendCode(sendString); - } - - ResultJsonDTO resultJsonDTO = new ResultJsonDTO(); - if(returnType.equals(DATATYPE_JSON)){ - resultJsonDTO =JSONObject.toJavaObject(JSONObject.parseObject(backString), ResultJsonDTO.class); - }else { - //缁勭粐杩斿洖鎺ュ彛淇℃伅 - XStream xStream = new XStream(new DomDriver()); - xStream.processAnnotations(ResultNodeDataDTO.class); - xStream.autodetectAnnotations(true); - ResultNodeDataDTO resultNodeDataDTO = (ResultNodeDataDTO) xStream.fromXML(backString); - resultJsonDTO.setData(resultNodeDataDTO); - } - ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData(); - resultNodeObjectDTOS=resultNodeDataDTO.getObject(); - }catch (Throwable e){ - msg="璋冪敤鎺ュ彛澶辫触:"+e.getMessage(); - e.printStackTrace(); - log.error("璋冪敤鎺ュ彛澶辫触:"+e); - // throw new Throwable("璋冪敤鎺ュ彛澶辫触:"+e); - ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO(); - resultNodeObjectDTO.setErroid("1"); - resultNodeObjectDTO.setMsg(msg); - resultNodeObjectDTO.setCode(dockingSystemConfig.getPushType().equalsIgnoreCase("2")?dockingTask.getClassifyId():dockingTask.getId()); - resultNodeObjectDTO.setItemid(dockingTask.getBtmOid()); - resultNodeObjectDTOS.add(resultNodeObjectDTO); - }finally { - boolean isSend = false; - for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){ - String erroid = resultNodeObjectDTO.getErroid(); - msg = resultNodeObjectDTO.getMsg(); - if("0".equals(erroid)){ - isSend = true; - }else if("1".equals(erroid)){ - isSend=false; - }else{ - isSend=false; - } - DockingLog dockingLogeDO = new DockingLog(); - String oid=VciBaseUtil.getPk(); - dockingLogeDO.setOid(oid); - dockingLogeDO.setSystemCode(dockingTask.getSystemCode()); - dockingLogeDO.setSystemName(dockingTask.getSystemName()); - dockingLogeDO.setSystemOid(dockingTask.getSystemOid()); - dockingLogeDO.setClassifyOid(dockingTask.getClassifyOid()); - dockingLogeDO.setClassifyId(dockingTask.getClassifyId()); - dockingLogeDO.setClassifyName(dockingTask.getClassifyName()); - dockingLogeDO.setCreateTime(new Date()); - dockingLogeDO.setId(dockingTask.getId()); - dockingLogeDO.setUniqueCode(dockingTask.getUniqueCode()); - dockingLogeDO.setParamString(paramString); - dockingLogeDO.setReturnString(backString); - dockingLogeDO.setInterfaceStatus(isSend?"true":"false"); - 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); - } - } - } - - /** - * 璋冪敤鎺ュ彛锛屼紶鍙備负JSON鏃朵紶object绫诲瀷 - * @param sendObject - * @param dockingSystemConfig - * @param dockingTask - * @param operation - * @throws Throwable - */ - private void callInterfaceByContentType(Object sendObject, DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation,String sendType) throws Throwable{ - String paramString = ""; - String sendString = sendType.equals(DATATYPE_JSON) ? JSONObject.toJSON(sendObject).toString():sendObject.toString(); - String backString = ""; - String msg=""; - String url = dockingSystemConfig.getRequestUrl();//url - List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); - try { - boolean usedFlag= dockingSystemConfig.getUsedFlag().equals("true")?true:false; - if(!usedFlag){ - throw new Throwable("鎺ュ彛宸茬粡鍋滅敤锛�"); - } - String type = dockingSystemConfig.getInterfaceType().toLowerCase(Locale.ROOT);//get/post/webserver/corba - String paramType = dockingSystemConfig.getParamType();//xml/json - String returnType = dockingSystemConfig.getReturnType();//xml/json - String requestmethod= dockingSystemConfig.getRequestMethod(); - String interfaceFunction = dockingSystemConfig.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕 - String namespace = dockingSystemConfig.getNamespace();//namespace - String soapaction = dockingSystemConfig.getSoapAction();//soapaction - String targName = dockingSystemConfig.getTargetName();//targName - String cxfaxis = dockingSystemConfig.getCxfAxis();//webservice鏄痗xf/axis - //鏌ヨparam - List<DockingSysIntParam> dockingSysIntParamList = dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid,dockingSystemConfig.getOid())); - //鏌ヨheader - List<DockingSysIntHeader> dockingSysIntHeaderList = dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid,dockingSystemConfig.getOid())); - if(type.equals(URLTYPE_HTTP)) { - if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰 - String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString; - //鎷兼帴param - for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { - sendurl = sendurl + "&" + dockingSysIntParam.getParamKey() + "=" + dockingSysIntParam.getParamValue(); - } - paramString = sendurl; - backString = HttpUtils.get(sendurl); - } else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰 - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { - params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue()); - } - params.add(DATA_PARAM_NAME,sendObject); - paramString = params.toString(); - MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); - for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { - headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); - } - // TODO: 2024-02-25鏀癸紝涓轰簡婊¤冻HR浠ュ強鍏朵粬鎯呭喌涓嬫牴鎹瓹ontent-type鐨勭被鍨嬫潵鍙戣姹傦紝骞朵笖param涓殑json鏄渶鍚庣殑鏃跺�欏彂閫佽姹傚啀杞� - backString = HttpUtils.postByMediaType(url, params, headers, MediaType.APPLICATION_FORM_URLENCODED); + backString = HttpUtils.postByMediaType( + url, + params, + headers, + Func.isNotBlank(dockingSystemConfig.getContentType()) ? MediaType.valueOf(dockingSystemConfig.getContentType()):MediaType.APPLICATION_FORM_URLENCODED + ); } if(backString.startsWith("\"")){ backString=backString.substring(backString.indexOf("\"")+1); -- Gitblit v1.9.3