From 79b61d7f259618ddde73948de8b60e1b07bc7d42 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 22 三月 2024 19:45:46 +0800
Subject: [PATCH] 集成相关更改

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java |  236 +++++++++++++---------------------------------------------
 1 files changed, 53 insertions(+), 183 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 0289569..f7ee151 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;
@@ -111,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;
 
@@ -269,7 +291,7 @@
 	 * 鍚屾鍨嬪彿浠e彿
 	 */
 	@Override
-	public void saveItemDataSyncScheduing(String endDate) {
+	public void saveItemDataSyncScheduing(String endDate) throws ServiceException {
 		String paramString="";
 		String backString="鎴愬姛";
 		String msg="鎴愬姛";
@@ -283,27 +305,25 @@
 			calendar.set(Calendar.HOUR_OF_DAY, 0);
 			calendar.set(Calendar.MINUTE, 0);
 			calendar.set(Calendar.SECOND, 0);
-			log.info("鏌ヨ鏃堕棿------->"+calendar.getTime());
+			log.info("鏌ヨ鏃堕棿------->"+dft.format(new Date()));
 			lastchangedon= dft.format(calendar.getTime());
 		}else{
 			lastchangedon=endDate;
 		}
 		searchItemParam.setLastchangedon(lastchangedon);
 		searchItemParam.setStatus(itemStatus);//
-		Map<String,String>searchDataMap=  VciBaseUtil.objectToMapString(searchItemParam);
+		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();
@@ -338,7 +358,7 @@
 					List<String> itemCodeList = new ArrayList<>();
 					ApplyDatasVO allDatasVO = new ApplyDatasVO();
 					List<ApplyDataVO> allObjectList = new ArrayList<>();
-					if (!CollectionUtils.isEmpty(dataList)) {
+					if (Func.isNotEmpty(dataList)) {
 						dataList.stream().forEach(searchItemDataVO -> {
 							String itemCode = StringUtils.isNotBlank(searchItemDataVO.getPROJECTITEM()) ? searchItemDataVO.getPROJECTITEM() : searchItemDataVO.getMMODELCODE();//椤圭洰浠e彿
 							dataVOMap.put(itemCode, searchItemDataVO);
@@ -444,12 +464,9 @@
 						paramString = Func.isEmpty(paramObject) ? "" : paramObject.toString();
 						Object backObject = JSONObject.toJSON(allResultDataObjectDetailDOS);
 						backString = Func.isEmpty(backObject) ? "" : backObject.toString();
-					}else{
-						throw new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�");
 					}
 				} catch (Throwable e) {
 					e.printStackTrace();
-					;
 					log.error("鏌ヨ澶辫触--->" + e);
 					success = false;
 					backString = "鏌ヨ澶辫触--->" + e;
@@ -466,7 +483,7 @@
 					}
 				}
 			}else{
-				throw  new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�");
+				throw new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�");
 			}
 		}catch (Throwable e1){
 			e1.printStackTrace();
@@ -481,8 +498,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());
 		}
 	}
 
@@ -517,7 +535,7 @@
 			dockingLoge.setInterfaceStatus("false");//鎺ュ彛闆嗘垚鐘舵��
 		}
 		dockingLogeService.save(dockingLoge);
-		log.info("闆嗘垚鎺ㄩ�佹暟鎹垚鍔�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
+		log.info("闆嗘垚鎺ㄩ�佹暟鎹�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
 	}
 
 	/***
@@ -908,9 +926,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());
@@ -936,7 +953,7 @@
 		for (DockingTask dockingTask:dockingTaskS){
 			//姣忎釜task涓�涓簨鍔★紝寮�鍚�
 			String paramString="";
-			String sendObject="";
+			Object sendString="";
 			String backString="";
 			try {
 				//鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType
@@ -1010,16 +1027,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 {
@@ -1037,7 +1055,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<>();
@@ -1079,160 +1097,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