From 5dd6f4aa2123671e95907ee19f5925a98983cdc8 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 25 三月 2024 10:05:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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