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 |  121 +++++++++++++++++++++++++++-------------
 1 files changed, 81 insertions(+), 40 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 fcb7bbe..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,8 @@
 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;
 import org.springframework.transaction.annotation.Transactional;
@@ -71,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;
@@ -95,6 +95,7 @@
 @Service
 @Slf4j
 public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService {
+
 	@Value("${dataSyncPush.dataParamName:xmlData}")
 	public String DATA_PARAM_NAME;
 	@Value("${dataSyncPush.dataId:itemid}")
@@ -113,54 +114,80 @@
 
 	@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;
 
 	@Autowired
 	private ICodeClassifyValueService codeClassifyValueService;
+
 	@Autowired(required = false)
 	private AttributeMapConfig attributeMapConfig;
+
 	/***
 	 * resdis缂撳瓨鏈嶅姟
 	 */
 	@Resource
 	private BladeRedis bladeRedis;
+
 	@Resource
 	private IDockingSysIntParamService dockingSysIntParamService;
+
 	@Resource
 	private IDockingSysIntHeaderService dockingSysIntHeaderService;
+
 	@Autowired(required = false)
 	private MdmSearchItemCodeProvider mdmSearchItemCodeProvider;
+
 	@Autowired
 	HttpServletRequest request;
+
 	@Override
 	public void DockingDataSyncScheduing() {
 
@@ -222,6 +249,7 @@
 		});
 		return  R.success("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�");
 	}
+
 	private SearchItemDataVO initData(String status,String itemCode,String mmCode){
 		SearchItemDataVO searchItemDataVO=new SearchItemDataVO();
 		searchItemDataVO.setLastchangedon(new Date());
@@ -258,11 +286,12 @@
 
 		return request;
 	}
+
 	/***
 	 * 鍚屾鍨嬪彿浠e彿
 	 */
 	@Override
-	public void saveItemDataSyncScheduing(String endDate) {
+	public void saveItemDataSyncScheduing(String endDate) throws ServiceException {
 		String paramString="";
 		String backString="鎴愬姛";
 		String msg="鎴愬姛";
@@ -276,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();
@@ -331,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);
@@ -437,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;
@@ -459,7 +483,7 @@
 					}
 				}
 			}else{
-				throw  new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�");
+				throw new Throwable("鎺ュ彛鏈繑鍥炰俊鎭�");
 			}
 		}catch (Throwable e1){
 			e1.printStackTrace();
@@ -474,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());
 		}
 	}
 
@@ -510,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);
 	}
 
 	/***
@@ -574,6 +599,7 @@
 		}
 		return codeOrderSecDTOList;
 	}
+
 	/***
 	 * 璇诲彇灞炴�ф槧灏勯厤缃俊鎭�
 	 * @param systemId
@@ -698,7 +724,8 @@
 			throw new   Throwable("缁勭粐鏁版嵁鏄犲皠鍊煎け璐�");
 		}
 	}
- private void changeObjectToMap(SearchItemUpperCaseDataVO searchItemDataVO, String code, BladeUser user,String operation,List<ApplyDataVO> object){
+
+	private void changeObjectToMap(SearchItemUpperCaseDataVO searchItemDataVO, String code, BladeUser user,String operation,List<ApplyDataVO> object){
 	 ApplyDataVO applyDataVO=new ApplyDataVO();
 	 List<ProppertyVO> propList=new ArrayList<>();
 	 //String status= searchItemDataVO.getStatus();//鏁版嵁鐘舵�� 瀛楃鍨嬶紝鏋氫妇鍊硷紱鍒跺崟锛�0锛涘鎵逛腑锛�1锛涢�氳繃锛�2锛涢┏鍥烇細3锛�
@@ -731,13 +758,15 @@
 	 applyDataVO.setProp(propList);
 	 object.add(applyDataVO);
  }
-  private void initProperty(String key,String text,String value,List<ProppertyVO> propList){
+
+ 	private void initProperty(String key,String text,String value,List<ProppertyVO> propList){
 	ProppertyVO vo=new ProppertyVO();
 	  vo.setKey(key);
 	  vo.setText(StringUtils.isBlank(text)?"":text);
 	  vo.setValue(StringUtils.isBlank(value)?"":value);
 	  propList.add(vo);
   }
+
 	/***
 	 * 鏌ヨredis涓暟鎹紝瀵规瘮鍚庢彃鍏ockingtask
 	 * @param type
@@ -863,7 +892,7 @@
 		for (DockingTask dockingTask:dockingTaskList){
 			//姣忎釜task涓�涓簨鍔★紝寮�鍚�
 			String paramString="";
-			String sendString="";
+			Object sendString="";
 			String backString="";
 			//鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType
 			String systeminfooid = dockingTask.getSysInfoOid();//sysininfo 鐨刼id
@@ -897,8 +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();
+					 Object object = JSONObject.toJSON(jsonRootDataDTO);
+					 sendString = object;
 				}else{
 					//缁勭粐杩斿洖鎺ュ彛淇℃伅
 					XStream xStream = new XStream(new DomDriver());
@@ -915,6 +944,7 @@
 			}
 		}
 	}
+
 	/***
 	 * 鍙戦�佺紪鐮佷富鏁版嵁
 	 */
@@ -923,7 +953,7 @@
 		for (DockingTask dockingTask:dockingTaskS){
 			//姣忎釜task涓�涓簨鍔★紝寮�鍚�
 			String paramString="";
-			String sendString="";
+			Object sendString="";
 			String backString="";
 			try {
 				//鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType
@@ -997,7 +1027,8 @@
 				String paramType = dockingSystemConfig.getParamType();//xml/json
 				if (paramType.equals(DATATYPE_JSON)) {
 					Object object = JSONObject.toJSON(nodeJosnDTO);
-					sendString = object.toString();
+					//sendString = object.toString();
+					sendString = object;
 				} else {
 					//缁勭粐杩斿洖鎺ュ彛淇℃伅
 					XStream xStream = new XStream(new DomDriver());
@@ -1013,18 +1044,19 @@
 			}
 		}
 	}
+
 	/***
-	 * 璋冪敤鎺ュ彛
-	 * @param sendString
+	 * 璋冪敤鎺ュ彛锛屼紶鍙備负JSON鏃朵紶object绫诲瀷,Content-Type鏀逛负鐣岄潰閰嶇疆鐨�
+	 * @param sendObject
 	 * @param dockingSystemConfig
 	 * @param dockingTask
 	 * @throws Throwable
 	 */
-	private void callInterface(String  sendString , DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws  Throwable{
+	private void callInterface(Object sendObject, DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws  Throwable{
 		String paramString = "";
-
 		String backString = "";
-		String msg="";
+		String sendString = sendObject.toString();
+		String msg= "" ;
 		String url = dockingSystemConfig.getRequestUrl();//url
 		List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>();
 		try {
@@ -1055,17 +1087,22 @@
 					paramString = sendurl;
 					backString = HttpUtils.get(sendurl);
 				} else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰
-					MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+					MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
 					for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) {
 						params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue());
 					}
-					params.add(DATA_PARAM_NAME,sendString);
+					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());
 					}
-					backString = HttpUtils.post(url, params, headers);
+					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);
@@ -1163,6 +1200,7 @@
 			}
 		}
 	}
+
 	/***
 	 * 鏌ヨ闇�瑕侀泦鎴愮殑涓氬姟鏁版嵁浠诲姟
 	 */
@@ -1199,6 +1237,7 @@
 		List<DockingTask> dockingTaskDOS = dockingTaskService.list(queryWrapper);
 		sendpushClsfForService(dockingTaskDOS);
 	}
+
 	public void initSysadmin(){
 		SessionInfo sessionInfo = new SessionInfo();
 		sessionInfo.setUserId("sysAdmin");
@@ -1208,6 +1247,7 @@
 		sessionInfo.setUserSecret(UserSecretEnum.PRIVACY.getValue()+"");
 		WebUtil.setSessionInfo(sessionInfo);
 	}
+
 	/**
 	 * dockingdata鏍规嵁oid淇敼sendflag
 	 * @param oid
@@ -1223,5 +1263,6 @@
 		}
 		return u;
 	}
+
 }
 

--
Gitblit v1.9.3